@clickview/reports 0.86.0-rc.0 → 0.87.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/.vite/manifest.json +304 -295
  2. package/dist/bundles.json +1 -1
  3. package/dist/en.json +1 -1
  4. package/dist/scripts/{BV2ee_KR.chunk.js → 28JMpJbt.chunk.js} +2 -2
  5. package/dist/scripts/{BV2ee_KR.chunk.js.map → 28JMpJbt.chunk.js.map} +1 -1
  6. package/dist/scripts/{CglHgfcX.chunk.js → BLzQ085A.chunk.js} +2 -2
  7. package/dist/scripts/{CglHgfcX.chunk.js.map → BLzQ085A.chunk.js.map} +1 -1
  8. package/dist/scripts/{BWJBtdAK2.chunk.js → BOGodQXj2.chunk.js} +2 -2
  9. package/dist/scripts/{BWJBtdAK2.chunk.js.map → BOGodQXj2.chunk.js.map} +1 -1
  10. package/dist/scripts/{dMt3Yeox.chunk.js → BQLCt3Ad.chunk.js} +4 -4
  11. package/dist/scripts/{dMt3Yeox.chunk.js.map → BQLCt3Ad.chunk.js.map} +1 -1
  12. package/dist/scripts/{oPoOD_J-2.chunk.js → BQcTfbZm2.chunk.js} +2 -2
  13. package/dist/scripts/{oPoOD_J-2.chunk.js.map → BQcTfbZm2.chunk.js.map} +1 -1
  14. package/dist/scripts/BSV_W0cK.chunk.js.map +1 -1
  15. package/dist/scripts/{PLyhtHwt2.chunk.js → BYLD2f9R2.chunk.js} +2 -2
  16. package/dist/scripts/{PLyhtHwt2.chunk.js.map → BYLD2f9R2.chunk.js.map} +1 -1
  17. package/dist/scripts/B_HlStqa2.chunk.js +2 -0
  18. package/dist/scripts/B_HlStqa2.chunk.js.map +1 -0
  19. package/dist/scripts/{Cv9H330A2.chunk.js → BbTaGrM02.chunk.js} +2 -2
  20. package/dist/scripts/{Cv9H330A2.chunk.js.map → BbTaGrM02.chunk.js.map} +1 -1
  21. package/dist/scripts/{B2L2H3g9.chunk.js → Bn4Go0UF.chunk.js} +2 -2
  22. package/dist/scripts/{B2L2H3g9.chunk.js.map → Bn4Go0UF.chunk.js.map} +1 -1
  23. package/dist/scripts/{DQamsoU_2.chunk.js → Bs_S7mFn2.chunk.js} +2 -2
  24. package/dist/scripts/{DQamsoU_2.chunk.js.map → Bs_S7mFn2.chunk.js.map} +1 -1
  25. package/dist/scripts/{BHTp9hJG.chunk.js → BxKrer6h.chunk.js} +2 -2
  26. package/dist/scripts/{BHTp9hJG.chunk.js.map → BxKrer6h.chunk.js.map} +1 -1
  27. package/dist/scripts/{DsnkNBu62.chunk.js → C1m-1G6w2.chunk.js} +2 -2
  28. package/dist/scripts/{DsnkNBu62.chunk.js.map → C1m-1G6w2.chunk.js.map} +1 -1
  29. package/dist/scripts/{CmiQpwgd2.chunk.js → C2ZUZoNE2.chunk.js} +2 -2
  30. package/dist/scripts/{CmiQpwgd2.chunk.js.map → C2ZUZoNE2.chunk.js.map} +1 -1
  31. package/dist/scripts/{BVgajZti.chunk.js → C7rNnvPs.chunk.js} +2 -2
  32. package/dist/scripts/{BVgajZti.chunk.js.map → C7rNnvPs.chunk.js.map} +1 -1
  33. package/dist/scripts/{BQjyL0qS2.chunk.js → CItOH7dg2.chunk.js} +2 -2
  34. package/dist/scripts/{BQjyL0qS2.chunk.js.map → CItOH7dg2.chunk.js.map} +1 -1
  35. package/dist/scripts/{CudCJxPc2.chunk.js → CKTy7NJ92.chunk.js} +2 -2
  36. package/dist/scripts/{CudCJxPc2.chunk.js.map → CKTy7NJ92.chunk.js.map} +1 -1
  37. package/dist/scripts/CZQnIbqt.chunk.js +1 -0
  38. package/dist/scripts/CfPosTww.chunk.js +2 -0
  39. package/dist/scripts/CfPosTww.chunk.js.map +1 -0
  40. package/dist/scripts/{DcKDIHY92.chunk.js → CkS0imTk2.chunk.js} +3 -3
  41. package/dist/scripts/CkS0imTk2.chunk.js.map +1 -0
  42. package/dist/scripts/{CMQlrOon2.chunk.js → CllvFALa2.chunk.js} +2 -2
  43. package/dist/scripts/{CMQlrOon2.chunk.js.map → CllvFALa2.chunk.js.map} +1 -1
  44. package/dist/scripts/{Chh-4QFk.chunk.js → CqVCiInU.chunk.js} +2 -2
  45. package/dist/scripts/{Chh-4QFk.chunk.js.map → CqVCiInU.chunk.js.map} +1 -1
  46. package/dist/scripts/{D4_Ou9e_.chunk.js → DFxl2xgU.chunk.js} +2 -2
  47. package/dist/scripts/{D4_Ou9e_.chunk.js.map → DFxl2xgU.chunk.js.map} +1 -1
  48. package/dist/scripts/{CPw6bsFu2.chunk.js → DK50VHUW2.chunk.js} +2 -2
  49. package/dist/scripts/{CPw6bsFu2.chunk.js.map → DK50VHUW2.chunk.js.map} +1 -1
  50. package/dist/scripts/{D68hdbWD2.chunk.js → DfhaG70Z2.chunk.js} +3 -3
  51. package/dist/scripts/{D68hdbWD2.chunk.js.map → DfhaG70Z2.chunk.js.map} +1 -1
  52. package/dist/scripts/DkXQWig4.chunk.js +2 -0
  53. package/dist/scripts/DkXQWig4.chunk.js.map +1 -0
  54. package/dist/scripts/{BPVl1Je7.chunk.js → DldsJ3cq.chunk.js} +2 -2
  55. package/dist/scripts/{BPVl1Je7.chunk.js.map → DldsJ3cq.chunk.js.map} +1 -1
  56. package/dist/scripts/{cBssbttB.chunk.js → Du87dvla.chunk.js} +2 -2
  57. package/dist/scripts/{cBssbttB.chunk.js.map → Du87dvla.chunk.js.map} +1 -1
  58. package/dist/scripts/{Dj68Q14w.chunk.js → DuQ74iFu.chunk.js} +2 -2
  59. package/dist/scripts/{Dj68Q14w.chunk.js.map → DuQ74iFu.chunk.js.map} +1 -1
  60. package/dist/scripts/{BCPzswJq.chunk.js → DxBCBFh3.chunk.js} +2 -2
  61. package/dist/scripts/{BCPzswJq.chunk.js.map → DxBCBFh3.chunk.js.map} +1 -1
  62. package/dist/scripts/SNiCkvSP.chunk.js +2 -0
  63. package/dist/scripts/SNiCkvSP.chunk.js.map +1 -0
  64. package/dist/scripts/{D3WnBGZG.chunk.js → WxjzAHzM.chunk.js} +2 -2
  65. package/dist/scripts/{D3WnBGZG.chunk.js.map → WxjzAHzM.chunk.js.map} +1 -1
  66. package/dist/scripts/ao_3LgdP.chunk.js +1 -0
  67. package/dist/scripts/{app-cakVQEAF.js → app-BeoBow2q.js} +6 -6
  68. package/dist/scripts/app-BeoBow2q.js.map +1 -0
  69. package/dist/scripts/{DrBRL2aF.chunk.js → rdbFZIyT.chunk.js} +2 -2
  70. package/dist/scripts/{DrBRL2aF.chunk.js.map → rdbFZIyT.chunk.js.map} +1 -1
  71. package/dist/scripts/{CFA2yuiv.chunk.js → rtCrJwRm.chunk.js} +2 -2
  72. package/dist/scripts/{CFA2yuiv.chunk.js.map → rtCrJwRm.chunk.js.map} +1 -1
  73. package/dist/scripts/{BLy0WwGy.chunk.js → yklF-2M1.chunk.js} +2 -2
  74. package/dist/scripts/{BLy0WwGy.chunk.js.map → yklF-2M1.chunk.js.map} +1 -1
  75. package/package.json +1 -1
  76. package/dist/scripts/296Drw6z.chunk.js +0 -2
  77. package/dist/scripts/296Drw6z.chunk.js.map +0 -1
  78. package/dist/scripts/CyRTALRJ.chunk.js +0 -1
  79. package/dist/scripts/DNKj09Lh2.chunk.js +0 -2
  80. package/dist/scripts/DNKj09Lh2.chunk.js.map +0 -1
  81. package/dist/scripts/DcKDIHY92.chunk.js.map +0 -1
  82. package/dist/scripts/DhJ5lhcc.chunk.js +0 -2
  83. package/dist/scripts/DhJ5lhcc.chunk.js.map +0 -1
  84. package/dist/scripts/Dm7M2BT8.chunk.js +0 -1
  85. package/dist/scripts/app-cakVQEAF.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{E as e,Kn as t,P as n,b as r,st as i,x as a,y as o}from"./BSV_W0cK.chunk.js";import{d as s}from"./DLiesDxa.chunk.js";import{t as c}from"./Bqlm3yF_.chunk.js";import{t as l}from"./H5KLIhR_.chunk.js";import{t as u}from"./07ZZlAWY.chunk.js";import{t as d}from"./DmGbjBUG.chunk.js";import{t as f}from"./DHk1ZJ0C.chunk.js";import{t as p}from"./Du_kaCuU.chunk.js";import{h as m,l as h,n as g,r as _,u as v}from"./app-cakVQEAF.js";import{n as y,r as b,t as x}from"./CmiQpwgd2.chunk.js";import{t as S}from"./PLyhtHwt2.chunk.js";import{t as C}from"./Cv9H330A2.chunk.js";import{n as w}from"./BWJBtdAK2.chunk.js";import{r as T,t as E}from"./BVgajZti.chunk.js";import{t as D}from"./D3WnBGZG.chunk.js";var O=t(e()),k=t(i()),A=n(),j=k.forwardRef(({bsPrefix:e,className:t,as:n=`div`,...i},s)=>{let c=a(e,`row`),l=o(),u=r(),d=`${c}-cols`,f=[];return l.forEach(e=>{let t=i[e];delete i[e];let n;typeof t==`object`&&t?{cols:n}=t:n=t;let r=e===u?``:`-${e}`;n!=null&&f.push(`${d}${r}-${n}`)}),(0,A.jsx)(n,{ref:s,...i,className:(0,O.default)(t,c,...f)})});j.displayName=`Row`;var M={videoTable:`_videoTable_14eqw_1`,interactiveTable:`_interactiveTable_14eqw_4`,userTable:`_userTable_14eqw_7`,header:`_header_14eqw_10`,itemHeader:`_itemHeader_14eqw_13`,videoItemContainer:`_videoItemContainer_14eqw_16`,interactiveItemContainer:`_interactiveItemContainer_14eqw_19`,userItemContainer:`_userItemContainer_14eqw_22`,heatMapItemContainer:`_heatMapItemContainer_14eqw_25`,partialAvatar:`_partialAvatar_14eqw_28`,partialNumber:`_partialNumber_14eqw_33`,partialLongText:`_partialLongText_14eqw_37`,partialMediumText:`_partialMediumText_14eqw_41`,partialShortText:`_partialShortText_14eqw_45`,partialThumbnail:`_partialThumbnail_14eqw_49`,partialHeatMap:`_partialHeatMap_14eqw_53`},N=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:4,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})})]}),P=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})})]}),F=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:2,className:`d-flex`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-3 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:6,className:`d-flex justify-content-between`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background ${M.heatMapItemContainer} ${M.partialShortText}`})})]});function I(e){switch(e){case`video-views`:return{headerComponent:N,tableStyle:M.videoTable};case`interactives`:return{headerComponent:P,tableStyle:M.interactiveTable};case`engagement-users`:return{headerComponent:F,tableStyle:M.userTable};default:return{headerComponent:(0,A.jsx)(A.Fragment,{}),tableStyle:``}}}function L(e){let{headerComponent:t,tableStyle:n}=I(e.variant);return(0,A.jsxs)(`div`,{className:`bg-white rounded ${n} ${e.className??``}`,children:[(0,A.jsx)(`div`,{className:`border-bottom ${M.header} ${e.headerClassName??``}`,children:t}),e.children]})}function R(){return(0,A.jsxs)(j,{className:`py-1 ${M.videoItemContainer}`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block`,children:(0,A.jsx)(`div`,{className:`partial-loading-background rounded ${M.partialThumbnail}`})})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialLongText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:4,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialNumber}`})})]})}function z(){return(0,A.jsxs)(j,{className:`py-1 ${M.interactiveItemContainer}`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block`,children:(0,A.jsx)(`div`,{className:`partial-loading-background rounded ${M.partialThumbnail}`})})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialMediumText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialAvatar}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialMediumText}`})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialNumber}`})})]})}function B(){return(0,A.jsxs)(j,{className:`my-2 ${M.userItemContainer}`,children:[(0,A.jsxs)(u,{xs:2,className:`d-flex align-items-center `,children:[(0,A.jsx)(`div`,{className:`partial-loading-background ms-3 ${M.partialAvatar}`}),(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})]}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:6,className:`d-flex justify-content-between align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.heatMapItemContainer} ${M.partialHeatMap}`})})]})}function V(e,t){switch(e){case`video-views`:return(0,A.jsx)(R,{},t);case`interactives`:return(0,A.jsx)(z,{},t);case`engagement-users`:return(0,A.jsx)(B,{},t);default:return(0,A.jsx)(A.Fragment,{})}}H.defaultProps={itemCount:7};function H(e){return(0,A.jsx)(`div`,{className:`my-1`,children:Array(e.itemCount).fill(null).map((t,n)=>V(e.variant,n))})}var U=c.encloseNamespace(`reportsVideos.videoViewsTableEmptyState`);function W(){return(0,A.jsxs)(p,{className:`bg-white rounded justify-content-center py-5`,children:[(0,A.jsx)(p.Image,{src:l.EmptyStates.Shared.ViewCount,className:`w-25 h-auto`}),(0,A.jsx)(p.Heading,{children:U(`heading`)}),(0,A.jsx)(p.Info,{children:U(`description`)})]})}var G={title:`_title_3yzlb_1`,thumbnail:`_thumbnail_3yzlb_2`,seeOverview:`_seeOverview_3yzlb_8`,row:`_row_3yzlb_11`},K=c.encloseNamespace(`reportsVideos.videoViewsTable`),q={table:`bg-white rounded`,header:`border-bottom`,headerCell:`p-3`,row:G.row,cell:`p-3`},J=[{Header:()=>(0,A.jsx)(`div`,{className:`d-flex justify-content-end`,children:`#`}),accessor:`object`,id:`index`,Cell:({row:{index:e}})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center justify-content-end h-100`,children:e+1}),width:5,disableSortBy:!0},{Header:e=>(0,A.jsx)(`div`,{className:G.title,children:(0,A.jsxs)(A.Fragment,{children:[K(`title`),` `,e.renderSortIndicator()]})}),accessor:`object`,id:`image`,Cell:({value:e})=>(0,A.jsx)(x,{video:e,imageOptions:{size:f.Small},textPosition:y.Independent,type:`cosmetic`,hideMask:!0,extraClasses:G.thumbnail,newDurationStyle:!0,size:`sm`}),width:30,hideSortIndicator:!0,sortType:(e,t)=>e.original.object.name?.toLowerCase()>t.original.object.name?.toLowerCase()?1:-1},{accessor:`object`,id:`name`,Cell:({value:e})=>(0,A.jsxs)(`div`,{className:`d-flex flex-column justify-content-center h-100`,children:[v.isVideoType(e)&&(0,A.jsx)(b,{type:`series`,video:e,analyticsOptions:null,className:`d-inline clamp-1`}),(0,A.jsx)(`span`,{className:`text-truncate`,children:e.name})]}),width:60,disableSortBy:!0},{Header:()=>(0,A.jsx)(A.Fragment,{children:K(`contentType`)}),accessor:`contentType`,Cell:({value:e})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center h-100`,children:e}),width:30},{Header:()=>(0,A.jsx)(A.Fragment,{children:K(`views`)}),accessor:`combinedCount`,Cell:({value:e})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center h-100`,children:e}),width:30},{accessor:`object`,id:`see-overview`,Cell:()=>(0,A.jsx)(`div`,{className:`${G.seeOverview} align-items-center h-100 text-info`,children:K(`seeAnalytics`)}),width:25,disableSortBy:!0}];function Y(e){let t=g();function n(n){return e.getVideoAppLink(n.original.object,t)}return(0,A.jsx)(E,{columns:J,data:e.videos,theme:q,getRowAppLink:n,enableSort:!0})}var X=c.encloseNamespace(`reportsVideos.schoolTopVideosView`),Z=100;function Q(){let e=_(`video-views`),t=s(S.topStreams(Z,e)),n=C(t.data?.map(e=>e.objectId)??[],m.videos);T(t),d({title:X(`videos`)}),w(X(`videos`));let r=t.hasCompleted&&!n.isFetching,i=!!n.itemsArr?.length,a=t.data?.map(e=>{let t=n.items?.[e?.objectId];return t?{count:e.count,object:t,contentType:e.contentType,combinedCount:e.combinedCount}:null}).filter(e=>!!e);return(0,A.jsxs)(`div`,{className:`pb-3`,children:[(0,A.jsx)(D,{}),!r&&(0,A.jsx)(L,{variant:`video-views`,children:(0,A.jsx)(H,{variant:`video-views`})}),r&&i&&(0,A.jsx)(Y,{videos:a,getVideoAppLink:h}),r&&!i&&(0,A.jsx)(W,{})]})}export{Q as SchoolTopVideosView};
2
- //# sourceMappingURL=DrBRL2aF.chunk.js.map
1
+ import{E as e,Kn as t,P as n,b as r,st as i,x as a,y as o}from"./BSV_W0cK.chunk.js";import{d as s}from"./DLiesDxa.chunk.js";import{t as c}from"./Bqlm3yF_.chunk.js";import{t as l}from"./H5KLIhR_.chunk.js";import{t as u}from"./07ZZlAWY.chunk.js";import{t as d}from"./DmGbjBUG.chunk.js";import{t as f}from"./DHk1ZJ0C.chunk.js";import{t as p}from"./Du_kaCuU.chunk.js";import{h as m,l as h,n as g,r as _,u as v}from"./app-BeoBow2q.js";import{n as y,r as b,t as x}from"./C2ZUZoNE2.chunk.js";import{t as S}from"./BYLD2f9R2.chunk.js";import{t as C}from"./BbTaGrM02.chunk.js";import{n as w}from"./BOGodQXj2.chunk.js";import{r as T,t as E}from"./C7rNnvPs.chunk.js";import{t as D}from"./WxjzAHzM.chunk.js";var O=t(e()),k=t(i()),A=n(),j=k.forwardRef(({bsPrefix:e,className:t,as:n=`div`,...i},s)=>{let c=a(e,`row`),l=o(),u=r(),d=`${c}-cols`,f=[];return l.forEach(e=>{let t=i[e];delete i[e];let n;typeof t==`object`&&t?{cols:n}=t:n=t;let r=e===u?``:`-${e}`;n!=null&&f.push(`${d}${r}-${n}`)}),(0,A.jsx)(n,{ref:s,...i,className:(0,O.default)(t,c,...f)})});j.displayName=`Row`;var M={videoTable:`_videoTable_14eqw_1`,interactiveTable:`_interactiveTable_14eqw_4`,userTable:`_userTable_14eqw_7`,header:`_header_14eqw_10`,itemHeader:`_itemHeader_14eqw_13`,videoItemContainer:`_videoItemContainer_14eqw_16`,interactiveItemContainer:`_interactiveItemContainer_14eqw_19`,userItemContainer:`_userItemContainer_14eqw_22`,heatMapItemContainer:`_heatMapItemContainer_14eqw_25`,partialAvatar:`_partialAvatar_14eqw_28`,partialNumber:`_partialNumber_14eqw_33`,partialLongText:`_partialLongText_14eqw_37`,partialMediumText:`_partialMediumText_14eqw_41`,partialShortText:`_partialShortText_14eqw_45`,partialThumbnail:`_partialThumbnail_14eqw_49`,partialHeatMap:`_partialHeatMap_14eqw_53`},N=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:4,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})})]}),P=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})})]}),F=(0,A.jsxs)(j,{className:`py-3`,children:[(0,A.jsx)(u,{xs:2,className:`d-flex`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-3 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:6,className:`d-flex justify-content-between`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background ${M.heatMapItemContainer} ${M.partialShortText}`})})]});function I(e){switch(e){case`video-views`:return{headerComponent:N,tableStyle:M.videoTable};case`interactives`:return{headerComponent:P,tableStyle:M.interactiveTable};case`engagement-users`:return{headerComponent:F,tableStyle:M.userTable};default:return{headerComponent:(0,A.jsx)(A.Fragment,{}),tableStyle:``}}}function L(e){let{headerComponent:t,tableStyle:n}=I(e.variant);return(0,A.jsxs)(`div`,{className:`bg-white rounded ${n} ${e.className??``}`,children:[(0,A.jsx)(`div`,{className:`border-bottom ${M.header} ${e.headerClassName??``}`,children:t}),e.children]})}function R(){return(0,A.jsxs)(j,{className:`py-1 ${M.videoItemContainer}`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block`,children:(0,A.jsx)(`div`,{className:`partial-loading-background rounded ${M.partialThumbnail}`})})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialLongText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:4,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialNumber}`})})]})}function z(){return(0,A.jsxs)(j,{className:`py-1 ${M.interactiveItemContainer}`,children:[(0,A.jsx)(u,{xs:1,className:`d-flex align-items-center justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialNumber}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block`,children:(0,A.jsx)(`div`,{className:`partial-loading-background rounded ${M.partialThumbnail}`})})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialMediumText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialAvatar}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialMediumText}`})}),(0,A.jsx)(u,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background mx-4 ${M.partialNumber}`})})]})}function B(){return(0,A.jsxs)(j,{className:`my-2 ${M.userItemContainer}`,children:[(0,A.jsxs)(u,{xs:2,className:`d-flex align-items-center `,children:[(0,A.jsx)(`div`,{className:`partial-loading-background ms-3 ${M.partialAvatar}`}),(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})]}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center align-items-center`,children:(0,A.jsx)(`div`,{className:`d-block partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:2,className:`d-flex justify-content-center align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(u,{xs:6,className:`d-flex justify-content-between align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.heatMapItemContainer} ${M.partialHeatMap}`})})]})}function V(e,t){switch(e){case`video-views`:return(0,A.jsx)(R,{},t);case`interactives`:return(0,A.jsx)(z,{},t);case`engagement-users`:return(0,A.jsx)(B,{},t);default:return(0,A.jsx)(A.Fragment,{})}}H.defaultProps={itemCount:7};function H(e){return(0,A.jsx)(`div`,{className:`my-1`,children:Array(e.itemCount).fill(null).map((t,n)=>V(e.variant,n))})}var U=c.encloseNamespace(`reportsVideos.videoViewsTableEmptyState`);function W(){return(0,A.jsxs)(p,{className:`bg-white rounded justify-content-center py-5`,children:[(0,A.jsx)(p.Image,{src:l.EmptyStates.Shared.ViewCount,className:`w-25 h-auto`}),(0,A.jsx)(p.Heading,{children:U(`heading`)}),(0,A.jsx)(p.Info,{children:U(`description`)})]})}var G={title:`_title_3yzlb_1`,thumbnail:`_thumbnail_3yzlb_2`,seeOverview:`_seeOverview_3yzlb_8`,row:`_row_3yzlb_11`},K=c.encloseNamespace(`reportsVideos.videoViewsTable`),q={table:`bg-white rounded`,header:`border-bottom`,headerCell:`p-3`,row:G.row,cell:`p-3`},J=[{Header:()=>(0,A.jsx)(`div`,{className:`d-flex justify-content-end`,children:`#`}),accessor:`object`,id:`index`,Cell:({row:{index:e}})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center justify-content-end h-100`,children:e+1}),width:5,disableSortBy:!0},{Header:e=>(0,A.jsx)(`div`,{className:G.title,children:(0,A.jsxs)(A.Fragment,{children:[K(`title`),` `,e.renderSortIndicator()]})}),accessor:`object`,id:`image`,Cell:({value:e})=>(0,A.jsx)(x,{video:e,imageOptions:{size:f.Small},textPosition:y.Independent,type:`cosmetic`,hideMask:!0,extraClasses:G.thumbnail,newDurationStyle:!0,size:`sm`}),width:30,hideSortIndicator:!0,sortType:(e,t)=>e.original.object.name?.toLowerCase()>t.original.object.name?.toLowerCase()?1:-1},{accessor:`object`,id:`name`,Cell:({value:e})=>(0,A.jsxs)(`div`,{className:`d-flex flex-column justify-content-center h-100`,children:[v.isVideoType(e)&&(0,A.jsx)(b,{type:`series`,video:e,analyticsOptions:null,className:`d-inline clamp-1`}),(0,A.jsx)(`span`,{className:`text-truncate`,children:e.name})]}),width:60,disableSortBy:!0},{Header:()=>(0,A.jsx)(A.Fragment,{children:K(`contentType`)}),accessor:`contentType`,Cell:({value:e})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center h-100`,children:e}),width:30},{Header:()=>(0,A.jsx)(A.Fragment,{children:K(`views`)}),accessor:`combinedCount`,Cell:({value:e})=>(0,A.jsx)(`div`,{className:`d-flex align-items-center h-100`,children:e}),width:30},{accessor:`object`,id:`see-overview`,Cell:()=>(0,A.jsx)(`div`,{className:`${G.seeOverview} align-items-center h-100 text-info`,children:K(`seeAnalytics`)}),width:25,disableSortBy:!0}];function Y(e){let t=g();function n(n){return e.getVideoAppLink(n.original.object,t)}return(0,A.jsx)(E,{columns:J,data:e.videos,theme:q,getRowAppLink:n,enableSort:!0})}var X=c.encloseNamespace(`reportsVideos.schoolTopVideosView`),Z=100;function Q(){let e=_(`video-views`),t=s(S.topStreams(Z,e)),n=C(t.data?.map(e=>e.objectId)??[],m.videos);T(t),d({title:X(`videos`)}),w(X(`videos`));let r=t.hasCompleted&&!n.isFetching,i=!!n.itemsArr?.length,a=t.data?.map(e=>{let t=n.items?.[e?.objectId];return t?{count:e.count,object:t,contentType:e.contentType,combinedCount:e.combinedCount}:null}).filter(e=>!!e);return(0,A.jsxs)(`div`,{className:`pb-3`,children:[(0,A.jsx)(D,{}),!r&&(0,A.jsx)(L,{variant:`video-views`,children:(0,A.jsx)(H,{variant:`video-views`})}),r&&i&&(0,A.jsx)(Y,{videos:a,getVideoAppLink:h}),r&&!i&&(0,A.jsx)(W,{})]})}export{Q as SchoolTopVideosView};
2
+ //# sourceMappingURL=rdbFZIyT.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DrBRL2aF.chunk.js","names":[],"sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../src/shared/components/partial-loading/partial-loading.module.scss","../../src/shared/components/partial-loading/PartialTable.tsx","../../src/shared/components/partial-loading/PartialTableContent.tsx","../../src/apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState.tsx","../../src/apps/videos/components/video-views-table/video-views-table.module.scss","../../src/apps/videos/components/video-views-table/VideoViewsTable.tsx","../../src/apps/videos/views/school-top-videos/SchoolTopVideosView.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;",":local {\n // Table styles\n\n .videoTable {\n height: 62rem;\n }\n\n .interactiveTable {\n height: 57rem;\n }\n\n .userTable {\n height: 14rem;\n }\n\n .header {\n height: 3.825rem\n }\n\n .itemHeader {\n height: 3.825rem\n }\n\n // Item styles\n\n .videoItemContainer {\n height: 8.125rem;\n }\n\n .interactiveItemContainer {\n height: 7.375rem;\n }\n\n .userItemContainer {\n height: 2.5625rem;\n }\n\n .heatMapItemContainer {\n margin-left: 6rem;\n }\n\n .partialAvatar {\n width: $avatar-width;\n height: $avatar-width;\n border-radius: 50%;\n }\n\n .partialNumber {\n width: 2rem;\n height: 1.1rem;\n }\n\n .partialLongText {\n width: 16rem;\n height: 1.1rem;\n }\n\n .partialMediumText {\n width: 10rem;\n height: 1.1rem;\n }\n\n .partialShortText {\n width: 5rem;\n height: 1.1rem;\n }\n\n .partialThumbnail {\n width: 10rem;\n padding-bottom: 56.25%;\n }\n\n .partialHeatMap {\n width: 34rem;\n height: 1.1rem;\n }\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport styles from './partial-loading.module.scss';\n\nconst VideoViewsHeader = (\n <Row className='py-3'>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst InteractivesHeader = (\n <Row className='py-3'>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst EngagementUsersHeader = (\n <Row className='py-3'>\n <Col xs={2} className='d-flex'>\n <div className={`partial-loading-background mx-3 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between'>\n <div className={`d-block partial-loading-background ${styles.heatMapItemContainer} ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nfunction getTableVariant(type: TableVariant) {\n switch (type) {\n case 'video-views':\n return {\n headerComponent: VideoViewsHeader,\n tableStyle: styles.videoTable\n };\n\n case 'interactives':\n return {\n headerComponent: InteractivesHeader,\n tableStyle: styles.interactiveTable\n };\n\n case 'engagement-users':\n return {\n headerComponent: EngagementUsersHeader,\n tableStyle: styles.userTable\n };\n\n default:\n return {\n headerComponent: <></>,\n tableStyle: ''\n };\n }\n}\n\nexport type TableVariant = 'video-views' | 'interactives' | 'engagement-users';\n\ninterface PartialTableProps {\n variant?: TableVariant;\n className?: string;\n headerClassName?: string;\n}\n\nexport function PartialTable(props: React.PropsWithChildren<PartialTableProps>): JSX.Element {\n const { headerComponent, tableStyle } = getTableVariant(props.variant);\n\n return (\n <div className={`bg-white rounded ${tableStyle} ${props.className ?? ''}`}>\n <div className={`border-bottom ${styles.header} ${props.headerClassName ?? ''}`}>\n {headerComponent}\n </div>\n {props.children}\n </div>\n );\n}\n","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { TableVariant } from 'shared/components/partial-loading/PartialTable';\n\nimport styles from './partial-loading.module.scss';\n\nfunction VideoItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.videoItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialLongText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction InteractiveItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.interactiveItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialAvatar}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction EngagementUserItem(): JSX.Element {\n return (\n <Row className={`my-2 ${styles.userItemContainer}`}>\n <Col xs={2} className='d-flex align-items-center '>\n <div className={`partial-loading-background ms-3 ${styles.partialAvatar}`} />\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`d-block partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between align-items-center'>\n <div className={`partial-loading-background ${styles.heatMapItemContainer} ${styles.partialHeatMap}`} />\n </Col>\n </Row>\n );\n}\n\nfunction getPartialItem(type: TableVariant, key: number): JSX.Element {\n switch (type) {\n case 'video-views':\n return <VideoItem key={key} />;\n\n case 'interactives':\n return <InteractiveItem key={key} />;\n\n case 'engagement-users':\n return <EngagementUserItem key={key} />;\n\n default:\n return <></>;\n }\n}\n\ninterface PartialTableContentProps {\n variant: TableVariant;\n itemCount?: number;\n}\n\nPartialTableContent.defaultProps = {\n itemCount: 7\n};\n\nexport function PartialTableContent(props: PartialTableContentProps): JSX.Element {\n return (\n <div className='my-1'>\n {Array(props.itemCount).fill(null).map((_, i) => getPartialItem(props.variant, i))}\n </div>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nconst namespace = 'reportsVideos.videoViewsTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoViewsTableEmptyState(): JSX.Element {\n return (\n <EmptyState className='bg-white rounded justify-content-center py-5'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.ViewCount}\n className='w-25 h-auto'\n />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n",":local {\n .title,\n .thumbnail {\n min-width: 8rem;\n max-width: 10rem;\n margin-left: auto; \n margin-right: 0;\n }\n\n .seeOverview {\n display: none;\n }\n\n .row:hover {\n background-color: $light-blue;\n text-decoration: none;\n\n .seeOverview {\n display: flex;\n }\n }\n}","import React from 'react';\nimport { Row } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\nimport { Column, HeaderProps, Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useGetAppLinkFilterParams } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopVideo } from 'shared/interfaces';\n\nimport styles from './video-views-table.module.scss';\n\nconst namespace = 'reportsVideos.videoViewsTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst theme: TableTheme = {\n table: 'bg-white rounded',\n header: 'border-bottom',\n headerCell: 'p-3',\n row: styles.row,\n cell: 'p-3'\n};\n\nexport const COLUMNS: Column<TopVideo>[] = [\n {\n Header: () => (\n <div className='d-flex justify-content-end'>\n #\n </div>\n ),\n accessor: 'object',\n id: 'index',\n Cell: ({ row: { index } }) => (\n <div className='d-flex align-items-center justify-content-end h-100'>\n {index + 1}\n </div>\n ),\n width: 5,\n disableSortBy: true\n },\n {\n Header: (props: HeaderProps<TopVideo>) => (\n <div className={styles.title}>\n <>{getPhrase('title')} {props.renderSortIndicator()}</>\n </div>\n ),\n accessor: 'object',\n id: 'image',\n Cell: ({ value }) => (\n <VideoThumbnail\n video={value}\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n extraClasses={styles.thumbnail}\n newDurationStyle\n size='sm'\n />\n ),\n width: 30,\n hideSortIndicator: true,\n sortType: (rowA: Row<TopVideo>, rowB: Row<TopVideo>) => {\n return rowA.original.object.name?.toLowerCase() > rowB.original.object.name?.toLowerCase() ? 1 : -1;\n }\n },\n {\n accessor: 'object',\n id: 'name',\n Cell: ({ value }) => (\n <div className='d-flex flex-column justify-content-center h-100'>\n {VideoHelper.isVideoType(value) && (\n <VideoSubText\n type='series'\n video={value}\n analyticsOptions={null}\n className='d-inline clamp-1'\n />\n )}\n <span className='text-truncate'>{value.name}</span>\n </div>\n ),\n width: 60,\n disableSortBy: true\n },\n {\n Header: () => <>{getPhrase('contentType')}</>,\n accessor: 'contentType',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n Header: () => <>{getPhrase('views')}</>,\n accessor: 'combinedCount',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n accessor: 'object',\n id: 'see-overview',\n Cell: () => (\n <div className={`${styles.seeOverview} align-items-center h-100 text-info`}>\n {getPhrase('seeAnalytics')}\n </div>\n ),\n width: 25,\n disableSortBy: true\n }\n];\n\ninterface VideoViewsByVideoTableProps {\n videos: TopVideo[];\n getVideoAppLink: (object: VideoTypes, filterQueryParams: FilterQueryParams) => Core.AppLink;\n}\n\nexport function VideoViewsTable(props: VideoViewsByVideoTableProps): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n function getRowAppLink(row: Row<TopVideo>): Core.AppLink {\n return props.getVideoAppLink(row.original.object, filterQueryParams);\n }\n\n return (\n <Table\n columns={COLUMNS}\n data={props.videos}\n theme={theme}\n getRowAppLink={getRowAppLink}\n enableSort\n />\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nimport { PartialTable } from 'shared/components/partial-loading/PartialTable';\nimport { PartialTableContent } from 'shared/components/partial-loading/PartialTableContent';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { TopVideo, TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { SchoolVideosNav } from 'apps/videos/components/school-videos-nav/SchoolVideosNav';\nimport { VideoViewsTableEmptyState } from 'apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState';\nimport { VideoViewsTable } from 'apps/videos/components/video-views-table/VideoViewsTable';\n\nconst namespace = 'reportsVideos.schoolTopVideosView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 100;\n\nexport function SchoolTopVideosView(): JSX.Element {\n const requestFilter = useGetRequestFilter('video-views');\n\n const topStreams = Flight.useBasicFetch<TopVideoV2[]>(VideoViewsV2Requests.topStreams(LIMIT, requestFilter));\n\n const videos = useBatchFetch<VideoTypes>(\n topStreams.data?.map(v => v.objectId) ?? [],\n VideoRequests.videos\n );\n\n useHandleObjectError(topStreams);\n\n useSetPageMetadata({ title: getPhrase('videos') });\n useSetHeaderTitle(getPhrase('videos'));\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n const hasVideoViews = !!videos.itemsArr?.length;\n \n const mappedVideos = topStreams.data?.map<TopVideo>(topStream => {\n const video = videos.items?.[topStream?.objectId];\n\n if (!video)\n return null;\n\n return {\n count: topStream.count,\n object: video,\n contentType: topStream.contentType,\n combinedCount: topStream.combinedCount\n };\n }).filter(v => !!v);\n\n return (\n <div className='pb-3'>\n <SchoolVideosNav />\n {!hasLoaded &&\n <PartialTable variant='video-views'>\n <PartialTableContent variant='video-views' />\n </PartialTable>\n }\n {hasLoaded && hasVideoViews &&\n <VideoViewsTable videos={mappedVideos} getVideoAppLink={getSchoolVideoAppLink} />\n }\n {hasLoaded && !hasVideoViews && <VideoViewsTableEmptyState />}\n </div>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"mtBAMM,EAAmB,EAAM,YAAY,CACzC,WACA,YAEA,GAAI,EAAY,MAChB,GAAG,GACF,IAAQ,CACT,IAAM,EAAoB,EAAmB,EAAU,MAAM,CACvD,EAAc,GAAyB,CACvC,EAAgB,GAA2B,CAC3C,EAAa,GAAG,EAAkB,OAClC,EAAU,EAAE,CAelB,OAdA,EAAY,QAAQ,GAAY,CAC9B,IAAM,EAAY,EAAM,GACxB,OAAO,EAAM,GACb,IAAI,EACqB,OAAO,GAAc,UAA1C,EACD,SAEG,EAEJ,EAAO,EAET,IAAM,EAAQ,IAAa,EAAiC,GAAjB,IAAI,IAC3C,GAAQ,MAAM,EAAQ,KAAK,GAAG,IAAa,EAAM,GAAG,IAAO,EAC/D,EACkB,EAAA,EAAA,KAAK,EAAW,CAC7B,MACL,GAAG,EACH,WAAA,EAAA,EAAA,SAAsB,EAAW,EAAmB,GAAG,EAAO,CAC/D,CAAC,EACF,CACF,EAAI,YAAc,+rBEjCZ,GACJ,EAAA,EAAA,MAAC,EAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,6DACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,8BAA8B,EAAO,gBAAmB,CAAA,CACpE,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,8BAA8B,EAAO,mBAAsB,CAAA,CACvE,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,mBAAsB,CAAA,CACpF,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,mBAAsB,CAAA,CACpF,CAAA,IAIJ,GACJ,EAAA,EAAA,MAAC,EAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,mCAAmC,EAAO,mBAAsB,CAAA,CAC5E,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,mBAAsB,CAAA,CACpF,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,mBAAsB,CAAA,CACpF,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,mBAAsB,CAAA,CACpF,CAAA,IAIJ,GACJ,EAAA,EAAA,MAAC,EAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,mBACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,mCAAmC,EAAO,mBAAsB,CAAA,CAC5E,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,0CACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,mCAAmC,EAAO,mBAAsB,CAAA,CAC5E,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,0CACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,8BAA8B,EAAO,mBAAsB,CAAA,CACvE,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,2CACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,sCAAsC,EAAO,qBAAqB,GAAG,EAAO,mBAAsB,CAAA,CAC9G,CAAA,IAIV,SAAS,EAAgB,EAAoB,CAC3C,OAAQ,EAAR,CACE,IAAK,cACH,MAAO,CACL,gBAAiB,EACjB,WAAY,EAAO,WACpB,CAEH,IAAK,eACH,MAAO,CACL,gBAAiB,EACjB,WAAY,EAAO,iBACpB,CAEH,IAAK,mBACH,MAAO,CACL,gBAAiB,EACjB,WAAY,EAAO,UACpB,CAEH,QACE,MAAO,CACL,iBAAiB,EAAA,EAAA,KAAA,EAAA,SAAA,EAAK,CAAA,CACtB,WAAY,GACb,EAYP,SAAgB,EAAa,EAAgE,CAC3F,GAAM,CAAE,kBAAiB,cAAe,EAAgB,EAAM,QAAQ,CAEtE,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,oBAAoB,EAAW,GAAG,EAAM,WAAa,cAArE,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,iBAAiB,EAAO,OAAO,GAAG,EAAM,iBAAmB,cACxE,EACG,CAAA,CACL,EAAM,SAAA,GC7Fb,SAAS,GAAyB,CAChC,OACE,EAAA,EAAA,MAAC,EAAD,CAAK,UAAW,QAAQ,EAAO,8BAA/B,EACE,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,6DACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,8BAA8B,EAAO,gBAAmB,CAAA,CACpE,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,oBACb,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,sCAAsC,EAAO,mBAAsB,CAAA,CAC/E,CAAA,CACF,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,oCAAoC,EAAO,kBAAqB,CAAA,CAC5E,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,mBAAsB,CAAA,CACpF,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,gBAAmB,CAAA,CACjF,CAAA,IAKZ,SAAS,GAA+B,CACtC,OACE,EAAA,EAAA,MAAC,EAAD,CAAK,UAAW,QAAQ,EAAO,oCAA/B,EACE,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,6DACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,8BAA8B,EAAO,gBAAmB,CAAA,CACpE,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,oBACb,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,sCAAsC,EAAO,mBAAsB,CAAA,CAC/E,CAAA,CACF,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,oCAAoC,EAAO,oBAAuB,CAAA,CAC9E,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,gBAAmB,CAAA,CACjF,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,oBAAuB,CAAA,CACrF,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,2CAA2C,EAAO,gBAAmB,CAAA,CACjF,CAAA,IAKZ,SAAS,GAAkC,CACzC,OACE,EAAA,EAAA,MAAC,EAAD,CAAK,UAAW,QAAQ,EAAO,6BAA/B,EACE,EAAA,EAAA,MAAC,EAAD,CAAK,GAAI,EAAG,UAAU,sCAAtB,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,mCAAmC,EAAO,gBAAmB,CAAA,EAC7E,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,mCAAmC,EAAO,mBAAsB,CAAA,CAAA,IAElF,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,6DACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,sCAAsC,EAAO,mBAAsB,CAAA,CAC/E,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,6DACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,8BAA8B,EAAO,mBAAsB,CAAA,CACvE,CAAA,EACN,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAG,UAAU,8DACpB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,8BAA8B,EAAO,qBAAqB,GAAG,EAAO,iBAAoB,CAAA,CACpG,CAAA,IAKZ,SAAS,EAAe,EAAoB,EAA0B,CACpE,OAAQ,EAAR,CACE,IAAK,cACH,OAAO,EAAA,EAAA,KAAC,EAAD,EAAuB,CAAP,EAAO,CAEhC,IAAK,eACH,OAAO,EAAA,EAAA,KAAC,EAAD,EAA6B,CAAP,EAAO,CAEtC,IAAK,mBACH,OAAO,EAAA,EAAA,KAAC,EAAD,EAAgC,CAAP,EAAO,CAEzC,QACE,OAAO,EAAA,EAAA,KAAA,EAAA,SAAA,EAAK,CAAA,EASlB,EAAoB,aAAe,CACjC,UAAW,EACZ,CAED,SAAgB,EAAoB,EAA8C,CAChF,OACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,gBACZ,MAAM,EAAM,UAAU,CAAC,KAAK,KAAK,CAAC,KAAK,EAAG,IAAM,EAAe,EAAM,QAAS,EAAE,CAAA,CAC7E,CAAA,CClGV,IAAM,EAAY,EAAgB,iBADhB,0CAC2C,CAE7D,SAAgB,GAAyC,CACvD,OACE,EAAA,EAAA,MAAC,EAAD,CAAY,UAAU,wDAAtB,EACE,EAAA,EAAA,KAAC,EAAW,MAAZ,CACE,IAAK,EAAU,YAAY,OAAO,UAClC,UAAU,cACV,CAAA,EACF,EAAA,EAAA,KAAC,EAAW,QAAZ,CAAA,SACG,EAAU,UAAU,CACF,CAAA,EACrB,EAAA,EAAA,KAAC,EAAW,KAAZ,CAAA,SACG,EAAU,cAAc,CACT,CAAA,CACP,wHEHX,EAAY,EAAgB,iBADhB,gCAC2C,CAEvD,EAAoB,CACxB,MAAO,mBACP,OAAQ,gBACR,WAAY,MACZ,IAAK,EAAO,IACZ,KAAM,MACP,CAEY,EAA8B,CACzC,CACE,YACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,sCAA6B,IAEtC,CAAA,CAER,SAAU,SACV,GAAI,QACJ,MAAO,CAAE,IAAK,CAAE,aACd,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,+DACZ,EAAQ,EACL,CAAA,CAER,MAAO,EACP,cAAe,GAChB,CACD,CACE,OAAS,IACP,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,gBACrB,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,CAAG,EAAU,QAAQ,CAAC,IAAE,EAAM,qBAAA,CAAyB,CAAA,CAAA,CACnD,CAAA,CAER,SAAU,SACV,GAAI,QACJ,MAAO,CAAE,YACP,EAAA,EAAA,KAAC,EAAD,CACE,MAAO,EACP,aAAc,CAAE,KAAM,EAAU,MAAO,CACvC,aAAc,EAAsB,YACpC,KAAK,WACL,SAAA,GACA,aAAc,EAAO,UACrB,iBAAA,GACA,KAAK,KACL,CAAA,CAEJ,MAAO,GACP,kBAAmB,GACnB,UAAW,EAAqB,IACvB,EAAK,SAAS,OAAO,MAAM,aAAa,CAAG,EAAK,SAAS,OAAO,MAAM,aAAa,CAAG,EAAI,GAEpG,CACD,CACE,SAAU,SACV,GAAI,OACJ,MAAO,CAAE,YACP,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,2DAAf,CACG,EAAY,YAAY,EAAM,GAC7B,EAAA,EAAA,KAAC,EAAD,CACE,KAAK,SACL,MAAO,EACP,iBAAkB,KAClB,UAAU,mBACV,CAAA,EAEJ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,yBAAiB,EAAM,KAAY,CAAA,CAAA,GAGvD,MAAO,GACP,cAAe,GAChB,CACD,CACE,YAAc,EAAA,EAAA,KAAA,EAAA,SAAA,CAAA,SAAG,EAAU,cAAc,CAAI,CAAA,CAC7C,SAAU,cACV,MAAO,CAAE,YACP,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2CACZ,EACG,CAAA,CAER,MAAO,GACR,CACD,CACE,YAAc,EAAA,EAAA,KAAA,EAAA,SAAA,CAAA,SAAG,EAAU,QAAQ,CAAI,CAAA,CACvC,SAAU,gBACV,MAAO,CAAE,YACP,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2CACZ,EACG,CAAA,CAER,MAAO,GACR,CACD,CACE,SAAU,SACV,GAAI,eACJ,UACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,YAAY,8CACnC,EAAU,eAAA,CACP,CAAA,CAER,MAAO,GACP,cAAe,IAElB,CAOD,SAAgB,EAAgB,EAAiD,CAC/E,IAAM,EAAoB,GAA2B,CAErD,SAAS,EAAc,EAAkC,CACvD,OAAO,EAAM,gBAAgB,EAAI,SAAS,OAAQ,EAAkB,CAGtE,OACE,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EACT,KAAM,EAAM,OACL,QACQ,gBACf,WAAA,GACA,CAAA,CCzHN,IAAM,EAAY,EAAgB,iBADhB,oCAC2C,CAEvD,EAAQ,IAEd,SAAgB,GAAmC,CACjD,IAAM,EAAgB,EAAoB,cAAc,CAElD,EAAa,EAAmC,EAAqB,WAAW,EAAO,EAAc,CAAC,CAEtG,EAAS,EACb,EAAW,MAAM,IAAI,GAAK,EAAE,SAAS,EAAI,EAAE,CAC3C,EAAc,OACf,CAED,EAAqB,EAAW,CAEhC,EAAmB,CAAE,MAAO,EAAU,SAAS,CAAE,CAAC,CAClD,EAAkB,EAAU,SAAS,CAAC,CAEtC,IAAM,EACJ,EAAW,cACX,CAAC,EAAO,WAGJ,EAAgB,CAAC,CAAC,EAAO,UAAU,OAEnC,EAAe,EAAW,MAAM,IAAc,GAAa,CAC/D,IAAM,EAAQ,EAAO,QAAQ,GAAW,UAKxC,OAHK,EAGE,CACL,MAAO,EAAU,MACjB,OAAQ,EACR,YAAa,EAAU,YACvB,cAAe,EAAU,cAC1B,CAPQ,MAQT,CAAC,OAAO,GAAK,CAAC,CAAC,EAAE,CAEnB,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,KAAC,EAAD,EAAmB,CAAA,CAClB,CAAC,IACA,EAAA,EAAA,KAAC,EAAD,CAAc,QAAQ,wBACpB,EAAA,EAAA,KAAC,EAAD,CAAqB,QAAQ,cAAgB,CAAA,CAChC,CAAA,CAEhB,GAAa,IACZ,EAAA,EAAA,KAAC,EAAD,CAAiB,OAAQ,EAAc,gBAAiB,EAAyB,CAAA,CAElF,GAAa,CAAC,IAAiB,EAAA,EAAA,KAAC,EAAD,EAA6B,CAAA,CACzD"}
1
+ {"version":3,"file":"rdbFZIyT.chunk.js","names":[],"sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../src/shared/components/partial-loading/partial-loading.module.scss","../../src/shared/components/partial-loading/PartialTable.tsx","../../src/shared/components/partial-loading/PartialTableContent.tsx","../../src/apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState.tsx","../../src/apps/videos/components/video-views-table/video-views-table.module.scss","../../src/apps/videos/components/video-views-table/VideoViewsTable.tsx","../../src/apps/videos/views/school-top-videos/SchoolTopVideosView.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;",":local {\n // Table styles\n\n .videoTable {\n height: 62rem;\n }\n\n .interactiveTable {\n height: 57rem;\n }\n\n .userTable {\n height: 14rem;\n }\n\n .header {\n height: 3.825rem\n }\n\n .itemHeader {\n height: 3.825rem\n }\n\n // Item styles\n\n .videoItemContainer {\n height: 8.125rem;\n }\n\n .interactiveItemContainer {\n height: 7.375rem;\n }\n\n .userItemContainer {\n height: 2.5625rem;\n }\n\n .heatMapItemContainer {\n margin-left: 6rem;\n }\n\n .partialAvatar {\n width: $avatar-width;\n height: $avatar-width;\n border-radius: 50%;\n }\n\n .partialNumber {\n width: 2rem;\n height: 1.1rem;\n }\n\n .partialLongText {\n width: 16rem;\n height: 1.1rem;\n }\n\n .partialMediumText {\n width: 10rem;\n height: 1.1rem;\n }\n\n .partialShortText {\n width: 5rem;\n height: 1.1rem;\n }\n\n .partialThumbnail {\n width: 10rem;\n padding-bottom: 56.25%;\n }\n\n .partialHeatMap {\n width: 34rem;\n height: 1.1rem;\n }\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport styles from './partial-loading.module.scss';\n\nconst VideoViewsHeader = (\n <Row className='py-3'>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst InteractivesHeader = (\n <Row className='py-3'>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst EngagementUsersHeader = (\n <Row className='py-3'>\n <Col xs={2} className='d-flex'>\n <div className={`partial-loading-background mx-3 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between'>\n <div className={`d-block partial-loading-background ${styles.heatMapItemContainer} ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nfunction getTableVariant(type: TableVariant) {\n switch (type) {\n case 'video-views':\n return {\n headerComponent: VideoViewsHeader,\n tableStyle: styles.videoTable\n };\n\n case 'interactives':\n return {\n headerComponent: InteractivesHeader,\n tableStyle: styles.interactiveTable\n };\n\n case 'engagement-users':\n return {\n headerComponent: EngagementUsersHeader,\n tableStyle: styles.userTable\n };\n\n default:\n return {\n headerComponent: <></>,\n tableStyle: ''\n };\n }\n}\n\nexport type TableVariant = 'video-views' | 'interactives' | 'engagement-users';\n\ninterface PartialTableProps {\n variant?: TableVariant;\n className?: string;\n headerClassName?: string;\n}\n\nexport function PartialTable(props: React.PropsWithChildren<PartialTableProps>): JSX.Element {\n const { headerComponent, tableStyle } = getTableVariant(props.variant);\n\n return (\n <div className={`bg-white rounded ${tableStyle} ${props.className ?? ''}`}>\n <div className={`border-bottom ${styles.header} ${props.headerClassName ?? ''}`}>\n {headerComponent}\n </div>\n {props.children}\n </div>\n );\n}\n","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { TableVariant } from 'shared/components/partial-loading/PartialTable';\n\nimport styles from './partial-loading.module.scss';\n\nfunction VideoItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.videoItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialLongText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction InteractiveItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.interactiveItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialAvatar}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction EngagementUserItem(): JSX.Element {\n return (\n <Row className={`my-2 ${styles.userItemContainer}`}>\n <Col xs={2} className='d-flex align-items-center '>\n <div className={`partial-loading-background ms-3 ${styles.partialAvatar}`} />\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`d-block partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between align-items-center'>\n <div className={`partial-loading-background ${styles.heatMapItemContainer} ${styles.partialHeatMap}`} />\n </Col>\n </Row>\n );\n}\n\nfunction getPartialItem(type: TableVariant, key: number): JSX.Element {\n switch (type) {\n case 'video-views':\n return <VideoItem key={key} />;\n\n case 'interactives':\n return <InteractiveItem key={key} />;\n\n case 'engagement-users':\n return <EngagementUserItem key={key} />;\n\n default:\n return <></>;\n }\n}\n\ninterface PartialTableContentProps {\n variant: TableVariant;\n itemCount?: number;\n}\n\nPartialTableContent.defaultProps = {\n itemCount: 7\n};\n\nexport function PartialTableContent(props: PartialTableContentProps): JSX.Element {\n return (\n <div className='my-1'>\n {Array(props.itemCount).fill(null).map((_, i) => getPartialItem(props.variant, i))}\n </div>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nconst namespace = 'reportsVideos.videoViewsTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoViewsTableEmptyState(): JSX.Element {\n return (\n <EmptyState className='bg-white rounded justify-content-center py-5'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.ViewCount}\n className='w-25 h-auto'\n />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n",":local {\n .title,\n .thumbnail {\n min-width: 8rem;\n max-width: 10rem;\n margin-left: auto; \n margin-right: 0;\n }\n\n .seeOverview {\n display: none;\n }\n\n .row:hover {\n background-color: $light-blue;\n text-decoration: none;\n\n .seeOverview {\n display: flex;\n }\n }\n}","import React from 'react';\nimport { Row } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\nimport { Column, HeaderProps, Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useGetAppLinkFilterParams } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopVideo } from 'shared/interfaces';\n\nimport styles from './video-views-table.module.scss';\n\nconst namespace = 'reportsVideos.videoViewsTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst theme: TableTheme = {\n table: 'bg-white rounded',\n header: 'border-bottom',\n headerCell: 'p-3',\n row: styles.row,\n cell: 'p-3'\n};\n\nexport const COLUMNS: Column<TopVideo>[] = [\n {\n Header: () => (\n <div className='d-flex justify-content-end'>\n #\n </div>\n ),\n accessor: 'object',\n id: 'index',\n Cell: ({ row: { index } }) => (\n <div className='d-flex align-items-center justify-content-end h-100'>\n {index + 1}\n </div>\n ),\n width: 5,\n disableSortBy: true\n },\n {\n Header: (props: HeaderProps<TopVideo>) => (\n <div className={styles.title}>\n <>{getPhrase('title')} {props.renderSortIndicator()}</>\n </div>\n ),\n accessor: 'object',\n id: 'image',\n Cell: ({ value }) => (\n <VideoThumbnail\n video={value}\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n extraClasses={styles.thumbnail}\n newDurationStyle\n size='sm'\n />\n ),\n width: 30,\n hideSortIndicator: true,\n sortType: (rowA: Row<TopVideo>, rowB: Row<TopVideo>) => {\n return rowA.original.object.name?.toLowerCase() > rowB.original.object.name?.toLowerCase() ? 1 : -1;\n }\n },\n {\n accessor: 'object',\n id: 'name',\n Cell: ({ value }) => (\n <div className='d-flex flex-column justify-content-center h-100'>\n {VideoHelper.isVideoType(value) && (\n <VideoSubText\n type='series'\n video={value}\n analyticsOptions={null}\n className='d-inline clamp-1'\n />\n )}\n <span className='text-truncate'>{value.name}</span>\n </div>\n ),\n width: 60,\n disableSortBy: true\n },\n {\n Header: () => <>{getPhrase('contentType')}</>,\n accessor: 'contentType',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n Header: () => <>{getPhrase('views')}</>,\n accessor: 'combinedCount',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n accessor: 'object',\n id: 'see-overview',\n Cell: () => (\n <div className={`${styles.seeOverview} align-items-center h-100 text-info`}>\n {getPhrase('seeAnalytics')}\n </div>\n ),\n width: 25,\n disableSortBy: true\n }\n];\n\ninterface VideoViewsByVideoTableProps {\n videos: TopVideo[];\n getVideoAppLink: (object: VideoTypes, filterQueryParams: FilterQueryParams) => Core.AppLink;\n}\n\nexport function VideoViewsTable(props: VideoViewsByVideoTableProps): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n function getRowAppLink(row: Row<TopVideo>): Core.AppLink {\n return props.getVideoAppLink(row.original.object, filterQueryParams);\n }\n\n return (\n <Table\n columns={COLUMNS}\n data={props.videos}\n theme={theme}\n getRowAppLink={getRowAppLink}\n enableSort\n />\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nimport { PartialTable } from 'shared/components/partial-loading/PartialTable';\nimport { PartialTableContent } from 'shared/components/partial-loading/PartialTableContent';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { TopVideo, TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { SchoolVideosNav } from 'apps/videos/components/school-videos-nav/SchoolVideosNav';\nimport { VideoViewsTableEmptyState } from 'apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState';\nimport { VideoViewsTable } from 'apps/videos/components/video-views-table/VideoViewsTable';\n\nconst namespace = 'reportsVideos.schoolTopVideosView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 100;\n\nexport function SchoolTopVideosView(): JSX.Element {\n const requestFilter = useGetRequestFilter('video-views');\n\n const topStreams = Flight.useBasicFetch<TopVideoV2[]>(VideoViewsV2Requests.topStreams(LIMIT, requestFilter));\n\n const videos = useBatchFetch<VideoTypes>(\n topStreams.data?.map(v => v.objectId) ?? [],\n VideoRequests.videos\n );\n\n useHandleObjectError(topStreams);\n\n useSetPageMetadata({ title: getPhrase('videos') });\n useSetHeaderTitle(getPhrase('videos'));\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n const hasVideoViews = !!videos.itemsArr?.length;\n \n const mappedVideos = topStreams.data?.map<TopVideo>(topStream => {\n const video = videos.items?.[topStream?.objectId];\n\n if (!video)\n return null;\n\n return {\n count: topStream.count,\n object: video,\n contentType: topStream.contentType,\n combinedCount: topStream.combinedCount\n };\n }).filter(v => !!v);\n\n return (\n <div className='pb-3'>\n <SchoolVideosNav />\n {!hasLoaded &&\n <PartialTable variant='video-views'>\n <PartialTableContent variant='video-views' />\n </PartialTable>\n }\n {hasLoaded && hasVideoViews &&\n <VideoViewsTable videos={mappedVideos} getVideoAppLink={getSchoolVideoAppLink} />\n }\n {hasLoaded && !hasVideoViews && <VideoViewsTableEmptyState />}\n </div>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{P as e,en as t,st as n}from"./BSV_W0cK.chunk.js";import{d as r,n as i}from"./DLiesDxa.chunk.js";import{r as a}from"./BmJ66zOA.chunk.js";import{t as o}from"./Bqlm3yF_.chunk.js";import{n as s,r as c,t as l}from"./H5KLIhR_.chunk.js";import{t as u}from"./Du_kaCuU.chunk.js";import{r as d}from"./app-cakVQEAF.js";import{t as f}from"./PLyhtHwt2.chunk.js";import{a as p,d as m,i as h,l as g,o as _,u as v}from"./DcKDIHY92.chunk.js";n();var y=e(),b={chart:{spacing:[20,0,4,0]},title:{text:null},tooltip:{enabled:!1},credits:{enabled:!1},yAxis:{gridLineWidth:0,labels:{enabled:!1},title:{text:null},endOnTick:!0,tickAmount:10},xAxis:{lineWidth:0,labels:{style:{...g,textOverflow:`none`,wordBreak:`break-word`}}},legend:{enabled:!1},plotOptions:{column:{borderRadius:4,dataLabels:{enabled:!0,style:g,inside:!1,crop:!1,overflow:`allow`},groupPadding:0,minPointLength:8}},series:[{type:`column`,label:{enabled:!1},states:{hover:{enabled:!1}}}]},x=(e,t,n)=>({...b,xAxis:{...b.xAxis,categories:e,labels:{...b.xAxis.labels,useHTML:!0,formatter:function(){return m(this.value,n)}}},series:[{type:`column`,label:{enabled:!1},states:{hover:{enabled:!1}},data:t}]});function S(e){return(0,y.jsx)(v,{options:x(e.data.map(e=>e.name),e.data,e.labelAnnotations),annotations:e.labelAnnotations,className:`h-100`,containerProps:{className:`h-100`}})}var C={image:`_image_1a110_1`},w=o.encloseNamespace(`reportsShared.totalViewsByRoleCardEmptyState`);function T(){return(0,y.jsxs)(u,{className:`flex-grow-1 justify-content-center`,children:[(0,y.jsx)(u.Image,{src:l.EmptyStates.Shared.Ticket,className:C.image}),(0,y.jsx)(u.Heading,{className:`h6`,children:w(`heading`)}),(0,y.jsx)(u.Info,{className:`w-100`,children:w(`description`)})]})}var E=`reportsShared.videoViewsByRoleCard`,D=o.encloseNamespace(E);function O(e){let n=d(`video-views`),o=r(e.videoId?f.videoAggregation(e.videoId,`user_type`,n):f.aggregation(`user_type`,n));function l(e){return e?e.reduce((e,t)=>{let n=[a.System,`255`].includes(t.name)?null:t.name,r=e.find(e=>e.name===n);return r?r.count+=t.count:e.push({name:n,count:t.count}),e},[]).map(e=>({name:p(e.name),y:e.count,color:h(e.name)})).sort((e,t)=>_(e.name,t.name)):null}let u=l(o.data);return(0,y.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3`,children:u?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`h2`,{className:`h6 mb-3`,children:(0,y.jsx)(i,{namespace:E,phrase:`videoViews`})}),u.length?(0,y.jsx)(`div`,{className:`flex-grow-1 position-relative`,children:(0,y.jsx)(`div`,{className:`position-absolute w-100 h-100`,children:(0,y.jsx)(S,{data:u,labelAnnotations:{"Classroom views":{onClick:()=>{t.trigger({application:c.DEFAULT,action:s.Default.CLASSROOM_VIEWS_POPUP})},tooltip:D(`classroomViewsSettings`)}}})})}):(0,y.jsx)(T,{})]}):(0,y.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}export{S as n,O as t};
2
- //# sourceMappingURL=CFA2yuiv.chunk.js.map
1
+ import{P as e,en as t,st as n}from"./BSV_W0cK.chunk.js";import{d as r,n as i}from"./DLiesDxa.chunk.js";import{r as a}from"./BmJ66zOA.chunk.js";import{t as o}from"./Bqlm3yF_.chunk.js";import{n as s,r as c,t as l}from"./H5KLIhR_.chunk.js";import{t as u}from"./Du_kaCuU.chunk.js";import{r as d}from"./app-BeoBow2q.js";import{t as f}from"./BYLD2f9R2.chunk.js";import{a as p,d as m,i as h,l as g,o as _,u as v}from"./CkS0imTk2.chunk.js";n();var y=e(),b={chart:{spacing:[20,0,4,0]},title:{text:null},tooltip:{enabled:!1},credits:{enabled:!1},yAxis:{gridLineWidth:0,labels:{enabled:!1},title:{text:null},endOnTick:!0,tickAmount:10},xAxis:{lineWidth:0,labels:{style:{...g,textOverflow:`none`,wordBreak:`break-word`}}},legend:{enabled:!1},plotOptions:{column:{borderRadius:4,dataLabels:{enabled:!0,style:g,inside:!1,crop:!1,overflow:`allow`},groupPadding:0,minPointLength:8}},series:[{type:`column`,label:{enabled:!1},states:{hover:{enabled:!1}}}]},x=(e,t,n)=>({...b,xAxis:{...b.xAxis,categories:e,labels:{...b.xAxis.labels,useHTML:!0,formatter:function(){return m(this.value,n)}}},series:[{type:`column`,label:{enabled:!1},states:{hover:{enabled:!1}},data:t}]});function S(e){return(0,y.jsx)(v,{options:x(e.data.map(e=>e.name),e.data,e.labelAnnotations),annotations:e.labelAnnotations,className:`h-100`,containerProps:{className:`h-100`}})}var C={image:`_image_1a110_1`},w=o.encloseNamespace(`reportsShared.totalViewsByRoleCardEmptyState`);function T(){return(0,y.jsxs)(u,{className:`flex-grow-1 justify-content-center`,children:[(0,y.jsx)(u.Image,{src:l.EmptyStates.Shared.Ticket,className:C.image}),(0,y.jsx)(u.Heading,{className:`h6`,children:w(`heading`)}),(0,y.jsx)(u.Info,{className:`w-100`,children:w(`description`)})]})}var E=`reportsShared.videoViewsByRoleCard`,D=o.encloseNamespace(E);function O(e){let n=d(`video-views`),o=r(e.videoId?f.videoAggregation(e.videoId,`user_type`,n):f.aggregation(`user_type`,n));function l(e){return e?e.reduce((e,t)=>{let n=[a.System,`255`].includes(t.name)?null:t.name,r=e.find(e=>e.name===n);return r?r.count+=t.count:e.push({name:n,count:t.count}),e},[]).map(e=>({name:p(e.name),y:e.count,color:h(e.name)})).sort((e,t)=>_(e.name,t.name)):null}let u=l(o.data);return(0,y.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3`,children:u?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`h2`,{className:`h6 mb-3`,children:(0,y.jsx)(i,{namespace:E,phrase:`videoViews`})}),u.length?(0,y.jsx)(`div`,{className:`flex-grow-1 position-relative`,children:(0,y.jsx)(`div`,{className:`position-absolute w-100 h-100`,children:(0,y.jsx)(S,{data:u,labelAnnotations:{"Classroom views":{onClick:()=>{t.trigger({application:c.DEFAULT,action:s.Default.CLASSROOM_VIEWS_POPUP})},tooltip:D(`classroomViewsSettings`)}}})})}):(0,y.jsx)(T,{})]}):(0,y.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}export{S as n,O as t};
2
+ //# sourceMappingURL=rtCrJwRm.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CFA2yuiv.chunk.js","names":[],"sources":["../../src/shared/components/column-chart/ColumnChart.tsx","../../src/shared/views/overview-cards/video-views-by-role-card/empty-state/total-views-by-role-card-empty-state.module.scss","../../src/shared/views/overview-cards/video-views-by-role-card/empty-state/TotalViewsByRoleCardEmptyState.tsx","../../src/shared/views/overview-cards/video-views-by-role-card/VideoViewsByRoleCardView.tsx"],"sourcesContent":["import React from 'react';\nimport Highcharts from 'highcharts';\n\nimport { AnnotatedChart, formatAnnotatedLabel, LabelAnnotations } from 'shared/components/annotated-chart/AnnotatedChart';\nimport { CHART_FONT_STYLES } from 'shared/constants/ChartStyles';\n\nconst STATIC_COLUMN_CHART_OPTIONS: Highcharts.Options = {\n chart: {\n spacing: [ 20, 0, 4, 0 ]\n },\n title: {\n text: null\n },\n tooltip: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n yAxis: {\n gridLineWidth: 0,\n labels: {\n enabled: false\n },\n title: {\n text: null\n },\n endOnTick: true,\n tickAmount: 10\n },\n xAxis: {\n lineWidth: 0,\n labels: {\n style: {\n ...CHART_FONT_STYLES,\n textOverflow: 'none',\n wordBreak: 'break-word'\n }\n }\n },\n legend: {\n enabled: false\n },\n plotOptions: {\n column: {\n borderRadius: 4,\n dataLabels: {\n enabled: true,\n style: CHART_FONT_STYLES,\n inside: false,\n crop: false,\n overflow: 'allow'\n },\n groupPadding: 0,\n minPointLength: 8\n }\n },\n series: [{\n type: 'column',\n label: {\n enabled: false\n },\n states: {\n hover: {\n enabled: false\n }\n }\n }]\n};\n\nconst getChartOptions = (\n categories: string[],\n data: Highcharts.PointOptionsObject[],\n labelAnnotations?: LabelAnnotations\n): Highcharts.Options => ({\n ...STATIC_COLUMN_CHART_OPTIONS,\n xAxis: {\n ...STATIC_COLUMN_CHART_OPTIONS.xAxis,\n categories,\n labels: {\n ...(STATIC_COLUMN_CHART_OPTIONS.xAxis as Highcharts.XAxisOptions).labels,\n useHTML: true,\n // Must be a function and not an arrow function to access `this.value`\n formatter: function () {\n return formatAnnotatedLabel(this.value as string, labelAnnotations);\n }\n }\n },\n series: [{\n type: 'column',\n label: {\n enabled: false\n },\n states: {\n hover: {\n enabled: false\n }\n },\n data\n }]\n});\n\ninterface ColumnChartProps {\n data: Highcharts.PointOptionsObject[];\n labelAnnotations?: LabelAnnotations;\n}\n\nexport function ColumnChart(props: ColumnChartProps) {\n const chartOptions = getChartOptions(props.data.map(data => data.name as string), props.data, props.labelAnnotations);\n\n return (\n <AnnotatedChart\n options={chartOptions}\n annotations={props.labelAnnotations}\n className='h-100'\n containerProps={{ className: 'h-100' }}\n />\n );\n}\n",":local {\n .image {\n width: 12.5rem;\n height: auto;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nimport styles from './total-views-by-role-card-empty-state.module.scss';\n\nconst namespace = 'reportsShared.totalViewsByRoleCardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function TotalViewsByRoleCardEmptyState() {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.Ticket}\n className={styles.image}\n />\n <EmptyState.Heading className='h6'>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info className='w-100'>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { GroupedAnalyticsCount } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\n\nimport { ColumnChart } from 'shared/components/column-chart/ColumnChart';\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { compareGroupNames } from 'shared/utils/GroupSortUtils';\nimport { mapUserTypeToChartColour, mapUserTypeToChartLabel } from 'shared/utils/UserUtils';\nimport { TotalViewsByRoleCardEmptyState } from 'shared/views/overview-cards/video-views-by-role-card/empty-state/TotalViewsByRoleCardEmptyState';\n\nconst namespace = 'reportsShared.videoViewsByRoleCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface VideoViewsByRoleCardProps {\n videoId?: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function VideoViewsByRoleCardView(props: VideoViewsByRoleCardProps) {\n const requestFilter = useGetRequestFilter('video-views');\n\n const viewsByGroup = Flight.useBasicFetch<GroupedAnalyticsCount[]>(props.videoId ?\n VideoViewsV2Requests.videoAggregation(props.videoId, 'user_type', requestFilter) :\n VideoViewsV2Requests.aggregation('user_type', requestFilter));\n\n function getChartData(views: GroupedAnalyticsCount[]): Highcharts.PointOptionsObject[] {\n if (!views) return null;\n\n // Bucketing System user data as Anonymous\n const mergedViews = views.reduce((acc, val) => {\n const key = [ UserGroup.System, '255' ].includes(val.name) ? null : val.name;\n const existing = acc.find(v => v.name === key);\n\n if (existing)\n existing.count += val.count;\n else\n acc.push({ name: key, count: val.count });\n\n return acc;\n }, []);\n\n return mergedViews.map(group => ({\n name: mapUserTypeToChartLabel(group.name),\n y: group.count,\n color: mapUserTypeToChartColour(group.name as UserGroup)\n })).sort((a, b) => compareGroupNames(a.name, b.name));\n }\n\n const chartData = getChartData(viewsByGroup.data);\n\n return (\n <div className='d-flex flex-column h-100 bg-white rounded p-3'>\n {chartData ?\n <>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='videoViews' /></h2>\n\n {chartData.length ?\n <div className='flex-grow-1 position-relative'>\n <div className='position-absolute w-100 h-100'>\n <ColumnChart data={chartData} labelAnnotations={{\n 'Classroom views': {\n onClick: () => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.DEFAULT,\n action: Actions.Default.CLASSROOM_VIEWS_POPUP\n });\n },\n tooltip: getPhrase('classroomViewsSettings')\n }\n }} />\n </div>\n </div> :\n <TotalViewsByRoleCardEmptyState />\n }\n </> :\n <div className='partial-loading-background w-25'>&nbsp;</div>\n }\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"rtCrJwRm.chunk.js","names":[],"sources":["../../src/shared/components/column-chart/ColumnChart.tsx","../../src/shared/views/overview-cards/video-views-by-role-card/empty-state/total-views-by-role-card-empty-state.module.scss","../../src/shared/views/overview-cards/video-views-by-role-card/empty-state/TotalViewsByRoleCardEmptyState.tsx","../../src/shared/views/overview-cards/video-views-by-role-card/VideoViewsByRoleCardView.tsx"],"sourcesContent":["import React from 'react';\nimport Highcharts from 'highcharts';\n\nimport { AnnotatedChart, formatAnnotatedLabel, LabelAnnotations } from 'shared/components/annotated-chart/AnnotatedChart';\nimport { CHART_FONT_STYLES } from 'shared/constants/ChartStyles';\n\nconst STATIC_COLUMN_CHART_OPTIONS: Highcharts.Options = {\n chart: {\n spacing: [ 20, 0, 4, 0 ]\n },\n title: {\n text: null\n },\n tooltip: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n yAxis: {\n gridLineWidth: 0,\n labels: {\n enabled: false\n },\n title: {\n text: null\n },\n endOnTick: true,\n tickAmount: 10\n },\n xAxis: {\n lineWidth: 0,\n labels: {\n style: {\n ...CHART_FONT_STYLES,\n textOverflow: 'none',\n wordBreak: 'break-word'\n }\n }\n },\n legend: {\n enabled: false\n },\n plotOptions: {\n column: {\n borderRadius: 4,\n dataLabels: {\n enabled: true,\n style: CHART_FONT_STYLES,\n inside: false,\n crop: false,\n overflow: 'allow'\n },\n groupPadding: 0,\n minPointLength: 8\n }\n },\n series: [{\n type: 'column',\n label: {\n enabled: false\n },\n states: {\n hover: {\n enabled: false\n }\n }\n }]\n};\n\nconst getChartOptions = (\n categories: string[],\n data: Highcharts.PointOptionsObject[],\n labelAnnotations?: LabelAnnotations\n): Highcharts.Options => ({\n ...STATIC_COLUMN_CHART_OPTIONS,\n xAxis: {\n ...STATIC_COLUMN_CHART_OPTIONS.xAxis,\n categories,\n labels: {\n ...(STATIC_COLUMN_CHART_OPTIONS.xAxis as Highcharts.XAxisOptions).labels,\n useHTML: true,\n // Must be a function and not an arrow function to access `this.value`\n formatter: function () {\n return formatAnnotatedLabel(this.value as string, labelAnnotations);\n }\n }\n },\n series: [{\n type: 'column',\n label: {\n enabled: false\n },\n states: {\n hover: {\n enabled: false\n }\n },\n data\n }]\n});\n\ninterface ColumnChartProps {\n data: Highcharts.PointOptionsObject[];\n labelAnnotations?: LabelAnnotations;\n}\n\nexport function ColumnChart(props: ColumnChartProps) {\n const chartOptions = getChartOptions(props.data.map(data => data.name as string), props.data, props.labelAnnotations);\n\n return (\n <AnnotatedChart\n options={chartOptions}\n annotations={props.labelAnnotations}\n className='h-100'\n containerProps={{ className: 'h-100' }}\n />\n );\n}\n",":local {\n .image {\n width: 12.5rem;\n height: auto;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nimport styles from './total-views-by-role-card-empty-state.module.scss';\n\nconst namespace = 'reportsShared.totalViewsByRoleCardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function TotalViewsByRoleCardEmptyState() {\n return (\n <EmptyState className='flex-grow-1 justify-content-center'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.Ticket}\n className={styles.image}\n />\n <EmptyState.Heading className='h6'>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info className='w-100'>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { GroupedAnalyticsCount } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\n\nimport { ColumnChart } from 'shared/components/column-chart/ColumnChart';\nimport { Actions } from 'shared/constants/ReportsActions';\nimport { AppChannels } from 'shared/constants/ReportsRadioChannels';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { compareGroupNames } from 'shared/utils/GroupSortUtils';\nimport { mapUserTypeToChartColour, mapUserTypeToChartLabel } from 'shared/utils/UserUtils';\nimport { TotalViewsByRoleCardEmptyState } from 'shared/views/overview-cards/video-views-by-role-card/empty-state/TotalViewsByRoleCardEmptyState';\n\nconst namespace = 'reportsShared.videoViewsByRoleCard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface VideoViewsByRoleCardProps {\n videoId?: string;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function VideoViewsByRoleCardView(props: VideoViewsByRoleCardProps) {\n const requestFilter = useGetRequestFilter('video-views');\n\n const viewsByGroup = Flight.useBasicFetch<GroupedAnalyticsCount[]>(props.videoId ?\n VideoViewsV2Requests.videoAggregation(props.videoId, 'user_type', requestFilter) :\n VideoViewsV2Requests.aggregation('user_type', requestFilter));\n\n function getChartData(views: GroupedAnalyticsCount[]): Highcharts.PointOptionsObject[] {\n if (!views) return null;\n\n // Bucketing System user data as Anonymous\n const mergedViews = views.reduce((acc, val) => {\n const key = [ UserGroup.System, '255' ].includes(val.name) ? null : val.name;\n const existing = acc.find(v => v.name === key);\n\n if (existing)\n existing.count += val.count;\n else\n acc.push({ name: key, count: val.count });\n\n return acc;\n }, []);\n\n return mergedViews.map(group => ({\n name: mapUserTypeToChartLabel(group.name),\n y: group.count,\n color: mapUserTypeToChartColour(group.name as UserGroup)\n })).sort((a, b) => compareGroupNames(a.name, b.name));\n }\n\n const chartData = getChartData(viewsByGroup.data);\n\n return (\n <div className='d-flex flex-column h-100 bg-white rounded p-3'>\n {chartData ?\n <>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='videoViews' /></h2>\n\n {chartData.length ?\n <div className='flex-grow-1 position-relative'>\n <div className='position-absolute w-100 h-100'>\n <ColumnChart data={chartData} labelAnnotations={{\n 'Classroom views': {\n onClick: () => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.DEFAULT,\n action: Actions.Default.CLASSROOM_VIEWS_POPUP\n });\n },\n tooltip: getPhrase('classroomViewsSettings')\n }\n }} />\n </div>\n </div> :\n <TotalViewsByRoleCardEmptyState />\n }\n </> :\n <div className='partial-loading-background w-25'>&nbsp;</div>\n }\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{P as e,Wn as t,st as n}from"./BSV_W0cK.chunk.js";import{i as r,r as i}from"./COrUmz0l.chunk.js";import{n as a}from"./BmJ66zOA.chunk.js";import{a as o,s}from"./Chh-4QFk.chunk.js";import{t as c}from"./Bqlm3yF_.chunk.js";import{D as l}from"./app-cakVQEAF.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 _=e();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=t(((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=BLy0WwGy.chunk.js.map
1
+ import{P as e,Wn as t,st as n}from"./BSV_W0cK.chunk.js";import{i as r,r as i}from"./COrUmz0l.chunk.js";import{n as a}from"./BmJ66zOA.chunk.js";import{a as o,s}from"./CqVCiInU.chunk.js";import{t as c}from"./Bqlm3yF_.chunk.js";import{D as l}from"./app-BeoBow2q.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 _=e();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=t(((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=yklF-2M1.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BLy0WwGy.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":"yklF-2M1.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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/reports",
3
- "version": "0.86.0-rc.0",
3
+ "version": "0.87.0-rc.0",
4
4
  "description": "ClickView Reports",
5
5
  "main": "dist/reports-app.js",
6
6
  "scripts": {
@@ -1,2 +0,0 @@
1
- import{N as e,Q as t,Wt as n,Yt as r,z as i}from"./BSV_W0cK.chunk.js";import{i as a}from"./DVHj6R3-.chunk.js";import{a as o,b as s,d as c,h as l}from"./DLiesDxa.chunk.js";import{t as u}from"./BDdd6NA7.chunk.js";var d={get(e,t){return e?.[t]?.value},getCustomerSettingsRequest(e,t){return e?.isAuthenticated?m.customerSettings(t?.success,t?.error):m._publicCustomerSettings(t?.success,t?.error)},getUserSettingsRequest(e,t){return e?.isAuthenticated?m.userSettings(t?.success,t?.error):m._publicUserSettings(t?.success,t?.error)},formatSettings(e){return e.reduce((e,t)=>(e[t.name]=t,e),{})}},f=[{name:`new_classification_view`,value:!0},{name:`must_complete_onboarding`,value:!1},{name:`has_completed_onboarding`,value:!0},{name:`has_displayed_presentation_switcher_spotlight`,value:!0},{name:`has_curated_discover_dashboards`,value:!0},{name:`has_special_event_calendar`,value:!0},{name:`new_movies_and_tv`,value:!0},{name:`has_partner_profiles`,value:!0}],p=()=>(r.throw(new n(`SettingRequests.setPublicFormatSettings must be called before using public requests in SettingRequests`)),null),m={setPublicFormatSettings(e){e&&(p=e)},organisationSettings(e,t,n){return{key:`settings:organisation:${e}`,url:`{gateway}/v1/organisations/${e}/settings`,normalizeOptions:{idAttribute:`name`},formatData:d.formatSettings,success:t,error:n}},customerSetting(e,t,n){return{key:`settings:customer:${e}`,url:`{gateway}/v1/customers/me/settings?type=${e}`,normalizeOptions:{idAttribute:`name`},formatData:e=>u.first(e),success:t,error:n}},customerSettings(e,t){return{key:`customer:settings`,url:`{gateway}/v1/customers/me/settings?(customerSettings)`,normalizeOptions:{idAttribute:`name`},formatData:d.formatSettings,success:e,error:t}},_publicCustomerSettings(e,t){return{key:`customer:settings`,url:`simulated:/api/domain/v3/settings/public`,normalizeOptions:{idAttribute:`name`},formatData:p,success:e,error:t,successResponse:()=>f}},_publicUserSettings(e,t){return{key:`user:settings`,url:`simulated:/api/domain/v3/settings/public`,normalizeOptions:{idAttribute:`name`},formatData:p,success:e,error:t,successResponse:()=>f}},userSetting(e,t,n){return{key:`settings:user:${e}`,url:`{gateway}/v1/customers/me/settings?type=${e}`,normalizeOptions:{idAttribute:`name`},formatData:e=>u.first(e),success:t,error:n}},userSettings(e,t){return{key:`user:settings`,url:`{gateway}/v1/users/me/settings?(userSettings)`,normalizeOptions:{idAttribute:`name`},formatData:d.formatSettings,success:e,error:t}},updateUserSetting(e,t,n,r){return{key:`update:user:setting:${e.name}`,url:`{gateway}/v1/users/me/settings`,data:e,type:s.PUT,formatData:()=>e,normalizeOptions:{idAttribute:`name`},success:t,error:n,always:r}},updateCustomerSetting(e,t,n,r){return{key:`update:customer:setting:${e.name}`,url:`{gateway}/v1/customers/me/settings`,data:e,type:s.PUT,formatData:()=>e,normalizeOptions:{idAttribute:`name`},success:t,error:n,always:r}}},h=function(e){return e.MustCompleteOnboarding=`must_complete_onboarding`,e.StudentWorkspaceSharing=`student_ws_sharing`,e.StudentToStudentMessaging=`student_to_student_messaging`,e.HideResourcesForStudents=`hide_resources_for_students`,e.LibraryReview=`library_review`,e.SchoolMessaging=`school_messaging`,e.LegacyTvNaming=`legacy_tv_naming`,e.HideHostedLibraries=`hide_hosted_libraries`,e.MaxCustomLibraries=`max_custom_libraries`,e.AutoCaptioning=`auto_captioning`,e.Topics=`subjects`,e.NewDashboards=`new_dashboards`,e.ShareToGoogleClassroom=`share_to_google_classroom`,e.ShareToMicrosoftTeams=`share_to_microsoft_teams`,e.DefaultPlaybackQuality=`playback_quality_default`,e.DefaultLocalCachePlaybackQuality=`playback_quality_local_cache_default`,e.EnableSubtitlesDefault=`playback_subtitles_enabled_default`,e.LTI=`lti`,e.HasNewClassificationView=`new_classification_view`,e.HasCuratedDiscoverDashboards=`has_curated_discover_dashboards`,e.HasLiteSearchDropdown=`has_lite_search_dropdown`,e.HasSpecialEventCalendar=`has_special_event_calendar`,e.PreviewVideos=`preview_videos`,e.DomainSettings=`domain_settings`,e.InviteColleague=`invite_colleague`,e.ExchangeTvProductOption=`exchange_tv_product_option`,e.MyVideosFolders=`my_videos_folders`,e.TvRegion=`tv_region`,e.ShareOverrideRestrictions=`share_override_restrictions`,e.HasTopicDirectories=`has_topic_directories`,e.MessageFrequencyOption=`message_frequency`,e.HasTopicVideoListFeature=`has_topic_video_list_feature`,e.HasManageGrouPermissions=`has_manage_group_permissions`,e.ExperimentalInteractiveQuestions=`experimental_interactive_questions`,e.PublicInteractiveAttempts=`public_interactive_attempts`,e.HasClassrooms=`has_classrooms`,e.HasNewSearch=`has_new_search`,e.HasPlayPageTranscript=`has_play_page_transcript`,e.HasShareFlowV2=`has_share_flow_v2`,e.HasPartnerProfiles=`has_partner_profiles`,e.PreferredTheme=`preferred_theme`,e.HasHubEntry=`has_hub_entry`,e.HasEnabledViviPlayback=`has_enabled_vivi_playback`,e.HasEnabledViviStudentCasting=`has_enabled_vivi_student_casting`,e.HasEnabledAppleTvPlayback=`has_enabled_apple_tv_playback`,e.HasDisplayedTutorialVideosProductTip=`has_displayed_tutorial_videos_spotlight`,e.HasDismissedAnalyticsTutorial=`has_dismissed_analytics_tutorial`,e.HasDismissedOpenClassroomsTutorial=`has_dismissed_open_classrooms_tutorial`,e.HasDismissedSearchAndDiscoverTutorial=`has_dismissed_search_and_discover_tutorial`,e.HasDismissedClassroomsTutorial=`has_dismissed_classrooms_tutorial`,e.HasDismissedMySharesTutorial=`has_dismissed_my_shares_tutorial`,e.HasDismissedMyVideosTutorial=`has_dismissed_my_videos_tutorial`,e.HasDismissedPlaylistsTutorial=`has_dismissed_playlists_tutorial`,e.ShowExchangeSearchResultsUser=`show_exchange_search_results_user`,e.UserEnabledPreviewVideos=`user_enabled_preview_videos`,e.LiteUpgradeTypeCustomer=`lite_upgrade_type_customer`,e.PolicyEndTime=`policy_end_time`,e.ReferralCount=`referral_count`,e.HasCompletedOnboardingV1=`has_completed_onboarding`,e.BulkOnboardingPreferencesState=`bulk_onboarding_preferences_state`,e.HasCompletedOnboardingV2=`has_completed_onboarding_v2`,e.HasExitedOnboarding=`has_exited_onboarding`,e.HasCompletedOnboardingStepSelectRole=`has_completed_onboarding_step_select_role`,e.HasCompletedOnboardingStepSchoolLevel=`has_completed_onboarding_step_school_level`,e.HasCompletedOnboardingStepAudiencePreferences=`has_completed_onboarding_step_audience_preferences`,e.HasCompletedOnboardingStepSelectCurriculum=`has_completed_onboarding_step_select_curriculum`,e.HasCompletedOnboardingStepSubjects=`has_completed_onboarding_step_subjects`,e.StudentInteractives=`student_interactives`,e.ExpandSchoolLibrary=`expand_school_library`,e.PrimaryProduct=`primary_product`,e.ImmediateFeedbackInteractives=`immediate_feedback_interactives`,e.LiteStudentCustomLibraries=`lite_student_custom_libraries`,e.HasEnabledRostering=`has_enabled_rostering`,e.DefaultCitationStyle=`default_citation_style`,e.HasStudentReach=`has_student_reach`,e.StudentReachClassroomSize=`student_reach_classroom_size`,e.SchoolStartTime=`school_start_time`,e.SchoolEndTime=`school_end_time`,e.Timezone=`timezone_iana`,e.ClickViewLive=`clickview_live`,e.HasStudentLowerPresentations=`students_lower_presentations`,e}({}),g=n=>{let r=c(a.currentUser()),s=c(r.hasCompleted&&d.getCustomerSettingsRequest(r.data)),u=c(r.hasCompleted&&d.getUserSettingsRequest(r.data)),f=l(),p=!!s.hasCompleted&&!!u.hasCompleted,g=e=>{if(!p||s.hasError||u.hasError)return null;let t=s.data?.[e];if(t)return t?.value;let n=u.data?.[e];return n?n?.value:null};function _(e,t,n,r,i){return e===`user`?m.updateUserSetting(t,n,r,i):m.updateCustomerSetting(t,n,r,i)}let v=(r,a,s,c,l)=>{function u(){e.logUserAction({name:a.name,value:a.value},{location:n,entity:i.UserSetting,actionType:t.Edit}),s?.()}o(f,_(r,a,u,c,l))},y=(e,t)=>new Promise((n,r)=>{v(e,t,n,r)}),b=(e,t,n,r)=>v(`user`,e,t,n,r),x=(e,t,n,r)=>v(`customer`,e,t,n,r),S=e=>y(`user`,e),C=e=>y(`customer`,e);function w(){return r.data?.isAuthenticated?g(h.HasTopicDirectories):!0}return{isLoadingSettings:!p,updateUserSetting:b,updateUserSettingAsync:S,updateCustomerSetting:x,updateCustomerSettingAsync:C,userSettings:u,shareToGoogleClassroom:g(h.ShareToGoogleClassroom),shareToMicrosoftTeams:g(h.ShareToMicrosoftTeams),hasLti:g(h.LTI),defaultPlaybackQuality:g(h.DefaultPlaybackQuality),defaultLocalCachePlaybackQuality:g(h.DefaultLocalCachePlaybackQuality),enableSubtitlesDefault:g(h.EnableSubtitlesDefault),hasCompletedOnboardingV1:g(h.HasCompletedOnboardingV1),hasCompletedOnboardingV2:g(h.HasCompletedOnboardingV2),liteUpgradeTypeCustomer:g(h.LiteUpgradeTypeCustomer),hasNewClassificationView:g(h.HasNewClassificationView),hasCuratedDiscoverDashboards:g(h.HasCuratedDiscoverDashboards),hasSpecialEventCalendar:g(h.HasSpecialEventCalendar),hasLiteSearchDropdown:g(h.HasLiteSearchDropdown),policyEndTime:g(h.PolicyEndTime),bulkOnboardingPreferencesState:g(h.BulkOnboardingPreferencesState),hasOnlineTopics:g(h.Topics),hasPreviewVideos:g(h.PreviewVideos),hasUserEnabledPreviewVideos:g(h.UserEnabledPreviewVideos),domainSettings:g(h.DomainSettings),inviteColleague:g(h.InviteColleague),myVideosFolders:g(h.MyVideosFolders),exchangeTvProductOption:g(h.ExchangeTvProductOption),messageFrequencyOption:g(h.MessageFrequencyOption),tvRegion:g(h.TvRegion),preferredTheme:g(h.PreferredTheme),hasHubEntry:g(h.HasHubEntry),hasEnabledViviStudentCasting:g(h.HasEnabledViviStudentCasting),hasEnabledViviPlayback:g(h.HasEnabledViviPlayback),hasEnabledAppleTvPlayback:g(h.HasEnabledAppleTvPlayback),hasDisplayedTutorialVideosProductTip:g(h.HasDisplayedTutorialVideosProductTip),hasDismissedAnalyticsTutorial:g(h.HasDismissedAnalyticsTutorial),hasDismissedOpenClassroomsTutorial:g(h.HasDismissedOpenClassroomsTutorial),hasDismissedSearchAndDiscoverTutorial:g(h.HasDismissedSearchAndDiscoverTutorial),hasDismissedClassroomsTutorial:g(h.HasDismissedClassroomsTutorial),hasDismissedMySharesTutorial:g(h.HasDismissedMySharesTutorial),hasDismissedMyVideosTutorial:g(h.HasDismissedMyVideosTutorial),hasDismissedPlaylistsTutorial:g(h.HasDismissedPlaylistsTutorial),showExchangeSearchResults:g(h.ShowExchangeSearchResultsUser),shareOverrideRestrictions:g(h.ShareOverrideRestrictions),hasTopicDirectories:w(),hasTopicVideoListFeature:g(h.HasTopicVideoListFeature),hasManageGroupPermissions:g(h.HasManageGrouPermissions),experimentalInteractiveQuestions:g(h.ExperimentalInteractiveQuestions),hasClassrooms:g(h.HasClassrooms),hasNewSearch:g(h.HasNewSearch),hasPlayPageTranscript:g(h.HasPlayPageTranscript),hasShareFlowV2:g(h.HasShareFlowV2),referralCount:g(h.ReferralCount),hasPartnerProfiles:g(h.HasPartnerProfiles),defaultCitationStyle:g(h.DefaultCitationStyle),hasStudentReach:g(h.HasStudentReach),studentReachClassroomSize:g(h.StudentReachClassroomSize),schoolStartTime:g(h.SchoolStartTime),schoolEndTime:g(h.SchoolEndTime),timezone:g(h.Timezone),clickViewLive:g(h.ClickViewLive),hasStudentLowerPresentations:g(h.HasStudentLowerPresentations)}};export{h as n,m as r,g as t};
2
- //# sourceMappingURL=296Drw6z.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"296Drw6z.chunk.js","names":[],"sources":["../../../../libs/shared/src/utils/SettingsHelper.ts","../../../../libs/shared/src/flight-requests/simulated/PublicSettingResponse.json","../../../../libs/shared/src/flight-requests/SettingRequests.ts","../../../../libs/shared/src/enums/SettingName.ts","../../../../libs/shared/src/hooks/useSettings.ts"],"sourcesContent":["import { Flight } from 'libs/common/react/index';\n\nimport { SettingName, SettingsLookup } from 'libs/shared/enums/SettingName';\n\nimport { SettingRequests } from '../flight-requests/SettingRequests';\nimport { CurrentUser, EntitySetting } from '../interfaces';\n\ninterface GetCustomerRequestOptions {\n success?: (data: SettingsLookup) => void;\n error?: () => void;\n}\n\nexport const SettingsHelper = {\n get<TValue = any>(settings: SettingsLookup, name: SettingName): TValue {\n return settings?.[name]?.value;\n },\n\n /**\n * Used to get public or authenticated customer request\n */\n getCustomerSettingsRequest(\n currentUser: CurrentUser,\n options?: GetCustomerRequestOptions\n ): Flight.Request | Flight.SimulatedRequest {\n if (currentUser?.isAuthenticated)\n return SettingRequests.customerSettings(options?.success, options?.error);\n\n return SettingRequests._publicCustomerSettings(options?.success, options?.error);\n },\n\n /**\n * Used to get public or authenticated user request\n */\n getUserSettingsRequest(\n currentUser: CurrentUser,\n options?: GetCustomerRequestOptions\n ): Flight.Request | Flight.SimulatedRequest {\n if (currentUser?.isAuthenticated)\n return SettingRequests.userSettings(options?.success, options?.error);\n\n return SettingRequests._publicUserSettings(options?.success, options?.error);\n },\n\n formatSettings(settings: Array<EntitySetting<any>>): SettingsLookup {\n return settings.reduce((acc: SettingsLookup, setting) => {\n acc[setting.name] = setting;\n return acc;\n }, {} as SettingsLookup);\n }\n};\n","[\n {\n \"name\": \"new_classification_view\",\n \"value\": true\n },\n {\n \"name\": \"must_complete_onboarding\",\n \"value\": false\n },\n {\n \"name\": \"has_completed_onboarding\",\n \"value\": true\n },\n {\n \"name\": \"has_displayed_presentation_switcher_spotlight\",\n \"value\": true\n },\n {\n \"name\": \"has_curated_discover_dashboards\",\n \"value\": true\n },\n {\n \"name\": \"has_special_event_calendar\",\n \"value\": true\n },\n {\n \"name\": \"new_movies_and_tv\",\n \"value\": true\n },\n {\n \"name\": \"has_partner_profiles\",\n \"value\": true\n }\n]","import { ErrorHelper } from 'libs/common/backbone/core';\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { DevError } from 'libs/common/backbone/errors/DevError';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName, SettingsLookup } from 'libs/shared/enums/SettingName';\nimport { EntitySetting } from 'libs/shared/interfaces';\n\nimport { SettingsHelper } from '../utils/SettingsHelper';\n\nimport PublicSettingResponse from './simulated/PublicSettingResponse.json';\n\ntype FormatSettingsFunc = (settings: Array<EntitySetting<any>>) => SettingsLookup | [];\n\n/**\n * This function is used to format settings data for public settings requests.\n * It allows us to control if we want to filter out any settings before using the default\n * `PublicSettingResponse` data in each public facing projects like Lite and Streamable Learning.\n */\nlet formatPublicSettings: any = (): any => {\n ErrorHelper.throw(\n new DevError('SettingRequests.setPublicFormatSettings must be called before using public requests in SettingRequests')\n );\n\n return null;\n};\n \nexport interface UpdateSettingRequest<TValue = any> {\n displayName?: string;\n name: SettingName;\n value: TValue;\n kind: SettingKind;\n}\n\nexport const SettingRequests = {\n setPublicFormatSettings(func: FormatSettingsFunc): void {\n if (!func)\n return;\n\n formatPublicSettings = func;\n },\n\n organisationSettings(\n id: string,\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `settings:organisation:${id}`,\n url: `{gateway}/v1/organisations/${id}/settings`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: SettingsHelper.formatSettings,\n success,\n error\n };\n },\n\n customerSetting(\n name: SettingName,\n success?: (data: EntitySetting<any>) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `settings:customer:${name}`,\n url: `{gateway}/v1/customers/me/settings?type=${name}`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: (data: EntitySetting[]) => {\n return ArrayHelper.first(data);\n },\n success,\n error\n };\n },\n \n customerSettings(\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `customer:settings`,\n url: `{gateway}/v1/customers/me/settings?(customerSettings)`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: SettingsHelper.formatSettings,\n success,\n error\n };\n },\n\n /**\n * This is only used to fetch hardcoded public settings for the customer \n */\n _publicCustomerSettings(\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.SimulatedRequest {\n return {\n key: `customer:settings`,\n url: `simulated:/api/domain/v3/settings/public`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: formatPublicSettings,\n success,\n error,\n successResponse: () => PublicSettingResponse\n };\n },\n\n /**\n * This is only used to fetch hardcoded public settings for the user \n */\n _publicUserSettings(\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.SimulatedRequest {\n return {\n key: `user:settings`,\n url: `simulated:/api/domain/v3/settings/public`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: formatPublicSettings,\n success,\n error,\n successResponse: () => PublicSettingResponse\n };\n },\n\n userSetting(\n name: SettingName,\n success?: (data: EntitySetting<any>) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `settings:user:${name}`,\n url: `{gateway}/v1/customers/me/settings?type=${name}`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: (data: EntitySetting[]) => {\n return ArrayHelper.first(data);\n },\n success,\n error\n };\n },\n\n userSettings(\n success?: (data: SettingsLookup) => void,\n error?: () => void\n ): Flight.Request {\n return {\n key: `user:settings`,\n url: `{gateway}/v1/users/me/settings?(userSettings)`,\n normalizeOptions: {\n idAttribute: 'name'\n },\n formatData: SettingsHelper.formatSettings,\n success,\n error\n };\n },\n\n updateUserSetting<TValue = any>(\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:user:setting:${data.name}`,\n url: `{gateway}/v1/users/me/settings`,\n data,\n type: HttpVerbs.PUT,\n formatData: () => data,\n normalizeOptions: {\n idAttribute: 'name'\n },\n success,\n error,\n always\n };\n },\n\n updateCustomerSetting<TValue = any>(\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:customer:setting:${data.name}`,\n url: `{gateway}/v1/customers/me/settings`,\n data,\n type: HttpVerbs.PUT,\n formatData: () => data,\n normalizeOptions: {\n idAttribute: 'name'\n },\n success,\n error,\n always\n };\n }\n};\n","import { EntitySetting } from 'libs/shared/interfaces';\n\nexport type SettingsLookup = {\n [key in SettingName]: EntitySetting<any>;\n};\n\nexport enum SettingName {\n // Customer settings\n MustCompleteOnboarding = 'must_complete_onboarding',\n StudentWorkspaceSharing = 'student_ws_sharing',\n StudentToStudentMessaging = 'student_to_student_messaging',\n HideResourcesForStudents = 'hide_resources_for_students',\n LibraryReview = 'library_review',\n SchoolMessaging = 'school_messaging',\n LegacyTvNaming = 'legacy_tv_naming',\n HideHostedLibraries = 'hide_hosted_libraries',\n MaxCustomLibraries = 'max_custom_libraries',\n AutoCaptioning = 'auto_captioning',\n Topics = 'subjects',\n NewDashboards = 'new_dashboards',\n ShareToGoogleClassroom = 'share_to_google_classroom',\n ShareToMicrosoftTeams = 'share_to_microsoft_teams',\n DefaultPlaybackQuality = 'playback_quality_default',\n DefaultLocalCachePlaybackQuality = 'playback_quality_local_cache_default',\n EnableSubtitlesDefault = 'playback_subtitles_enabled_default',\n LTI = 'lti',\n HasNewClassificationView = 'new_classification_view',\n HasCuratedDiscoverDashboards = 'has_curated_discover_dashboards',\n HasLiteSearchDropdown = 'has_lite_search_dropdown',\n HasSpecialEventCalendar = 'has_special_event_calendar',\n PreviewVideos = 'preview_videos',\n DomainSettings = 'domain_settings',\n InviteColleague = 'invite_colleague',\n ExchangeTvProductOption = 'exchange_tv_product_option',\n MyVideosFolders = 'my_videos_folders',\n TvRegion = 'tv_region',\n ShareOverrideRestrictions = 'share_override_restrictions',\n HasTopicDirectories = 'has_topic_directories',\n MessageFrequencyOption = 'message_frequency',\n HasTopicVideoListFeature = 'has_topic_video_list_feature',\n HasManageGrouPermissions = 'has_manage_group_permissions',\n ExperimentalInteractiveQuestions = 'experimental_interactive_questions',\n PublicInteractiveAttempts = 'public_interactive_attempts',\n HasClassrooms = 'has_classrooms',\n HasNewSearch = 'has_new_search',\n HasPlayPageTranscript = 'has_play_page_transcript',\n HasShareFlowV2 = 'has_share_flow_v2',\n HasPartnerProfiles = 'has_partner_profiles',\n PreferredTheme = 'preferred_theme',\n HasHubEntry = 'has_hub_entry',\n\n // Devices\n HasEnabledViviPlayback = 'has_enabled_vivi_playback',\n HasEnabledViviStudentCasting = 'has_enabled_vivi_student_casting',\n HasEnabledAppleTvPlayback = 'has_enabled_apple_tv_playback',\n\n // Product tips\n HasDisplayedTutorialVideosProductTip = 'has_displayed_tutorial_videos_spotlight',\n\n // Tutorial Video Highlight\n HasDismissedAnalyticsTutorial = 'has_dismissed_analytics_tutorial',\n HasDismissedOpenClassroomsTutorial = 'has_dismissed_open_classrooms_tutorial',\n HasDismissedSearchAndDiscoverTutorial = 'has_dismissed_search_and_discover_tutorial',\n HasDismissedClassroomsTutorial = 'has_dismissed_classrooms_tutorial',\n HasDismissedMySharesTutorial = 'has_dismissed_my_shares_tutorial',\n HasDismissedMyVideosTutorial = 'has_dismissed_my_videos_tutorial',\n HasDismissedPlaylistsTutorial = 'has_dismissed_playlists_tutorial',\n\n // User settings\n ShowExchangeSearchResultsUser = 'show_exchange_search_results_user',\n UserEnabledPreviewVideos = 'user_enabled_preview_videos',\n\n // Lite Upgrade - We keep this setting around to know if a customer went through the list upgrade\n LiteUpgradeTypeCustomer = 'lite_upgrade_type_customer',\n\n // Trials\n PolicyEndTime = 'policy_end_time',\n ReferralCount = 'referral_count',\n\n // Onboarding - V1\n HasCompletedOnboardingV1 = 'has_completed_onboarding', // This is deprecated for the new product\n BulkOnboardingPreferencesState = 'bulk_onboarding_preferences_state',\n\n // Onboarding - V2\n HasCompletedOnboardingV2 = 'has_completed_onboarding_v2',\n HasExitedOnboarding = 'has_exited_onboarding',\n HasCompletedOnboardingStepSelectRole = 'has_completed_onboarding_step_select_role',\n HasCompletedOnboardingStepSchoolLevel = 'has_completed_onboarding_step_school_level',\n HasCompletedOnboardingStepAudiencePreferences = 'has_completed_onboarding_step_audience_preferences',\n HasCompletedOnboardingStepSelectCurriculum = 'has_completed_onboarding_step_select_curriculum',\n HasCompletedOnboardingStepSubjects = 'has_completed_onboarding_step_subjects',\n\n StudentInteractives = 'student_interactives',\n ExpandSchoolLibrary = 'expand_school_library',\n PrimaryProduct = 'primary_product',\n ImmediateFeedbackInteractives = 'immediate_feedback_interactives',\n LiteStudentCustomLibraries = 'lite_student_custom_libraries',\n\n // Organisation level\n HasEnabledRostering = 'has_enabled_rostering',\n\n // Citations\n DefaultCitationStyle = 'default_citation_style',\n\n // Reports\n HasStudentReach = 'has_student_reach',\n StudentReachClassroomSize = 'student_reach_classroom_size',\n SchoolStartTime = 'school_start_time',\n SchoolEndTime = 'school_end_time',\n Timezone = 'timezone_iana',\n\n ClickViewLive = 'clickview_live',\n HasStudentLowerPresentations = 'students_lower_presentations'\n}\n","import { useDispatch } from 'react-redux';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { BulkOnboardingPreferencesState } from 'libs/shared/enums/BulkOnboardingPreferencesState';\nimport { SettingName, SettingsLookup } from 'libs/shared/enums/SettingName';\nimport { SettingRequests, UpdateSettingRequest } from 'libs/shared/flight-requests/SettingRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, DefaultPlaybackQuality, EntitySetting } from 'libs/shared/interfaces';\nimport { ExchangeTvProductOption } from 'libs/shared/interfaces/ExchangeTvProductOption';\nimport { MessageFrequencyOption } from 'libs/shared/interfaces/models/MessageFrequencyOption';\nimport { PreferredTheme } from 'libs/shared/interfaces/PreferredTheme';\n\nimport { SettingsHelper } from '../utils/SettingsHelper';\n\ntype SettingType = 'user' | 'customer';\n\n/**\n * Location context is only required if you're using updateSetting() or you need log analytics;\n */\nexport const useSettings = (locationContext: LocationContext | null) => {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const customerSettings = Flight.useBasicFetch<SettingsLookup>(\n currentUser.hasCompleted &&\n SettingsHelper.getCustomerSettingsRequest(currentUser.data)\n );\n\n const userSettings = Flight.useBasicFetch<SettingsLookup>(\n currentUser.hasCompleted &&\n SettingsHelper.getUserSettingsRequest(currentUser.data)\n );\n\n const dispatch = useDispatch();\n\n const hasLoaded = !!customerSettings.hasCompleted && !!userSettings.hasCompleted;\n\n const getSetting = <TValue = any>(name: SettingName): TValue | null => {\n if (!hasLoaded)\n return null;\n\n if (customerSettings.hasError || userSettings.hasError)\n return null;\n\n const customerSetting = customerSettings.data?.[name] as EntitySetting<TValue>;\n\n if (customerSetting)\n return customerSetting?.value;\n\n const userSetting = userSettings.data?.[name] as EntitySetting<TValue>;\n\n if (userSetting)\n return userSetting?.value;\n\n return null;\n };\n\n function _getRequest<TValue>(\n type: SettingType,\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n if (type === 'user')\n return SettingRequests.updateUserSetting(data, success, error, always);\n\n return SettingRequests.updateCustomerSetting(data, success, error, always);\n }\n\n const _updateSetting = <TValue = any>(\n type: SettingType,\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ) => {\n function onSuccess(): void {\n AnalyticsHelper.logUserAction({\n name: data.name,\n value: data.value\n }, {\n location: locationContext,\n entity: EntityType.UserSetting,\n actionType: UserAction.Edit\n });\n\n success?.();\n }\n\n Flight.fetch(dispatch, _getRequest(type, data, onSuccess, error, always));\n };\n\n const _updateSettingAsync = <TValue = any>(\n type: SettingType,\n data: UpdateSettingRequest<TValue>\n ): Promise<void> => {\n return new Promise((resolve, reject) => {\n _updateSetting(\n type,\n data,\n resolve,\n reject\n );\n });\n };\n\n const updateUserSetting = <TValue = any>(\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ) => _updateSetting('user', data, success, error, always);\n\n const updateCustomerSetting = <TValue = any>(\n data: UpdateSettingRequest<TValue>,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ) => _updateSetting('customer', data, success, error, always);\n\n const updateUserSettingAsync = <TValue = any>(\n data: UpdateSettingRequest<TValue>\n ): Promise<void> => _updateSettingAsync('user', data);\n \n const updateCustomerSettingAsync = <TValue = any>(\n data: UpdateSettingRequest<TValue>\n ): Promise<void> => _updateSettingAsync('customer', data);\n \n /**\n * AU, US, and UK have access to this, but international doesn't.\n * This means anon users also have access, which is why this custom\n * function is needed.\n */\n function hasTopicDirectories(): boolean {\n if (currentUser.data?.isAuthenticated)\n return getSetting<boolean>(SettingName.HasTopicDirectories);\n\n return true;\n }\n\n return {\n isLoadingSettings: !hasLoaded,\n updateUserSetting,\n updateUserSettingAsync,\n updateCustomerSetting,\n updateCustomerSettingAsync,\n userSettings,\n shareToGoogleClassroom: getSetting<boolean>(SettingName.ShareToGoogleClassroom),\n shareToMicrosoftTeams: getSetting<boolean>(SettingName.ShareToMicrosoftTeams),\n hasLti: getSetting<boolean>(SettingName.LTI),\n defaultPlaybackQuality: getSetting<DefaultPlaybackQuality>(SettingName.DefaultPlaybackQuality),\n defaultLocalCachePlaybackQuality: getSetting<DefaultPlaybackQuality>(SettingName.DefaultLocalCachePlaybackQuality),\n enableSubtitlesDefault: getSetting<boolean>(SettingName.EnableSubtitlesDefault),\n hasCompletedOnboardingV1: getSetting<boolean>(SettingName.HasCompletedOnboardingV1),\n hasCompletedOnboardingV2: getSetting<boolean>(SettingName.HasCompletedOnboardingV2),\n\n liteUpgradeTypeCustomer: getSetting<string>(SettingName.LiteUpgradeTypeCustomer),\n\n hasNewClassificationView: getSetting<boolean>(SettingName.HasNewClassificationView),\n hasCuratedDiscoverDashboards: getSetting<boolean>(SettingName.HasCuratedDiscoverDashboards),\n hasSpecialEventCalendar: getSetting<boolean>(SettingName.HasSpecialEventCalendar),\n hasLiteSearchDropdown: getSetting<boolean>(SettingName.HasLiteSearchDropdown),\n policyEndTime: getSetting<string>(SettingName.PolicyEndTime),\n bulkOnboardingPreferencesState: (\n getSetting<BulkOnboardingPreferencesState>(SettingName.BulkOnboardingPreferencesState)\n ),\n hasOnlineTopics: getSetting<boolean>(SettingName.Topics),\n hasPreviewVideos: getSetting<boolean>(SettingName.PreviewVideos),\n hasUserEnabledPreviewVideos: getSetting<boolean>(SettingName.UserEnabledPreviewVideos),\n domainSettings: getSetting<boolean>(SettingName.DomainSettings),\n inviteColleague: getSetting<boolean>(SettingName.InviteColleague),\n myVideosFolders: getSetting<boolean>(SettingName.MyVideosFolders),\n exchangeTvProductOption: getSetting<ExchangeTvProductOption>(SettingName.ExchangeTvProductOption),\n messageFrequencyOption: getSetting<MessageFrequencyOption>(SettingName.MessageFrequencyOption),\n tvRegion: getSetting<string>(SettingName.TvRegion),\n preferredTheme: getSetting<PreferredTheme>(SettingName.PreferredTheme),\n hasHubEntry: getSetting<boolean>(SettingName.HasHubEntry),\n\n // Devices\n hasEnabledViviStudentCasting: getSetting<boolean>(SettingName.HasEnabledViviStudentCasting),\n hasEnabledViviPlayback: getSetting<boolean>(SettingName.HasEnabledViviPlayback),\n hasEnabledAppleTvPlayback: getSetting<boolean>(SettingName.HasEnabledAppleTvPlayback),\n\n // Product tips\n hasDisplayedTutorialVideosProductTip: getSetting<boolean>(SettingName.HasDisplayedTutorialVideosProductTip),\n\n // Tutorial video highlight\n hasDismissedAnalyticsTutorial: getSetting<boolean>(SettingName.HasDismissedAnalyticsTutorial),\n hasDismissedOpenClassroomsTutorial: getSetting<boolean>(SettingName.HasDismissedOpenClassroomsTutorial),\n hasDismissedSearchAndDiscoverTutorial: getSetting<boolean>(SettingName.HasDismissedSearchAndDiscoverTutorial),\n hasDismissedClassroomsTutorial: getSetting<boolean>(SettingName.HasDismissedClassroomsTutorial),\n hasDismissedMySharesTutorial: getSetting<boolean>(SettingName.HasDismissedMySharesTutorial),\n hasDismissedMyVideosTutorial: getSetting<boolean>(SettingName.HasDismissedMyVideosTutorial),\n hasDismissedPlaylistsTutorial: getSetting<boolean>(SettingName.HasDismissedPlaylistsTutorial),\n\n // This has to be enabled both on the customer and user level for exchange results to show\n showExchangeSearchResults: getSetting<boolean>(SettingName.ShowExchangeSearchResultsUser),\n shareOverrideRestrictions:\n getSetting<boolean>(SettingName.ShareOverrideRestrictions),\n hasTopicDirectories: hasTopicDirectories(),\n hasTopicVideoListFeature: getSetting<boolean>(SettingName.HasTopicVideoListFeature),\n hasManageGroupPermissions: getSetting<boolean>(SettingName.HasManageGrouPermissions),\n experimentalInteractiveQuestions:\n getSetting<boolean>(SettingName.ExperimentalInteractiveQuestions),\n hasClassrooms: getSetting<boolean>(SettingName.HasClassrooms),\n hasNewSearch: getSetting<boolean>(SettingName.HasNewSearch),\n hasPlayPageTranscript: getSetting<boolean>(SettingName.HasPlayPageTranscript),\n hasShareFlowV2: getSetting<boolean>(SettingName.HasShareFlowV2),\n referralCount: getSetting<number>(SettingName.ReferralCount),\n hasPartnerProfiles: getSetting<boolean>(SettingName.HasPartnerProfiles),\n\n defaultCitationStyle: getSetting<string>(SettingName.DefaultCitationStyle),\n\n hasStudentReach: getSetting<boolean>(SettingName.HasStudentReach),\n studentReachClassroomSize: getSetting<number>(SettingName.StudentReachClassroomSize),\n schoolStartTime: getSetting<string>(SettingName.SchoolStartTime),\n schoolEndTime: getSetting<string>(SettingName.SchoolEndTime),\n timezone: getSetting<string>(SettingName.Timezone),\n clickViewLive: getSetting<boolean>(SettingName.ClickViewLive),\n hasStudentLowerPresentations: getSetting<boolean>(SettingName.HasStudentLowerPresentations)\n };\n};\n\nexport type SettingsHash = Partial<ReturnType<typeof useSettings>>;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- import{n as e}from"./B2L2H3g9.chunk.js";export{e as GenerateReportView};
@@ -1,2 +0,0 @@
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,en as c,et as l,nn as u,st as d,z as f}from"./BSV_W0cK.chunk.js";import{i as ee,r as te,t as p,v as m}from"./COrUmz0l.chunk.js";import{i as ne}from"./DVHj6R3-.chunk.js";import{d as h,n as g}from"./DLiesDxa.chunk.js";import{n as re,s as ie}from"./CammdB53.chunk.js";import{t as ae}from"./BmJ66zOA.chunk.js";import{n as _}from"./CNQKHXPY.chunk.js";import{i as v,o as oe}from"./Chh-4QFk.chunk.js";import{t as y}from"./BXBnJv6U.chunk.js";import{t as b}from"./Bqlm3yF_.chunk.js";import{n as x,t as S}from"./296Drw6z.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"./DmGbjBUG.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-cakVQEAF.js";import{i as N,n as P,r as F,t as I}from"./CmiQpwgd2.chunk.js";import{t as L}from"./PLyhtHwt2.chunk.js";import{t as R}from"./Cv9H330A2.chunk.js";import{m as z}from"./DcKDIHY92.chunk.js";import{n as ge,t as _e}from"./oPoOD_J-2.chunk.js";import{n as ve,t as ye}from"./BWJBtdAK2.chunk.js";import{n as be,t as xe}from"./CMQlrOon2.chunk.js";import{t as Se}from"./CPw6bsFu2.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:l.Complete},U={actionType:r.Click,descriptor:e.ViewOriginalVideo,workflowPhase:l.Complete,entity:f.Thumbnail,location:a.VideoHighlight,eventVersion:o.V1},Ee={actionType:r.Click,location:a.VideoHighlight,entity:f.AppLink,workflowPhase:l.Complete,descriptor:e.OpenInClickView,eventVersion:o.V1},De={actionType:r.Click,descriptor:i.SeeMore,workflowPhase:l.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`?u.PageLoad(e,!0):c.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=DNKj09Lh2.chunk.js.map