@clickview/reports 0.90.0-rc.4 → 0.90.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 (64) hide show
  1. package/dist/.vite/manifest.json +210 -210
  2. package/dist/bundles.json +1 -1
  3. package/dist/en.json +1 -1
  4. package/dist/scripts/{med1nnv82.chunk.js → B2NaDejJ2.chunk.js} +2 -2
  5. package/dist/scripts/{med1nnv82.chunk.js.map → B2NaDejJ2.chunk.js.map} +1 -1
  6. package/dist/scripts/{DATsYYMP.chunk.js → B7UvjDWk.chunk.js} +2 -2
  7. package/dist/scripts/{DATsYYMP.chunk.js.map → B7UvjDWk.chunk.js.map} +1 -1
  8. package/dist/scripts/{CGYMpd9x2.chunk.js → BBC0heb12.chunk.js} +2 -2
  9. package/dist/scripts/{CGYMpd9x2.chunk.js.map → BBC0heb12.chunk.js.map} +1 -1
  10. package/dist/scripts/{BcjF3S7y.chunk.js → BBromGRt.chunk.js} +2 -2
  11. package/dist/scripts/{BcjF3S7y.chunk.js.map → BBromGRt.chunk.js.map} +1 -1
  12. package/dist/scripts/{CEM-Xsc32.chunk.js → BM1rCX722.chunk.js} +2 -2
  13. package/dist/scripts/{CEM-Xsc32.chunk.js.map → BM1rCX722.chunk.js.map} +1 -1
  14. package/dist/scripts/{D63nJT6V.chunk.js → BT26h7xG.chunk.js} +2 -2
  15. package/dist/scripts/{D63nJT6V.chunk.js.map → BT26h7xG.chunk.js.map} +1 -1
  16. package/dist/scripts/{B9syewbL.chunk.js → BhnToJrk.chunk.js} +2 -2
  17. package/dist/scripts/{B9syewbL.chunk.js.map → BhnToJrk.chunk.js.map} +1 -1
  18. package/dist/scripts/{CXyHtApp2.chunk.js → Bq-KpJWX2.chunk.js} +2 -2
  19. package/dist/scripts/{CXyHtApp2.chunk.js.map → Bq-KpJWX2.chunk.js.map} +1 -1
  20. package/dist/scripts/{C_gBUP2y2.chunk.js → Bzfy_cw32.chunk.js} +2 -2
  21. package/dist/scripts/{C_gBUP2y2.chunk.js.map → Bzfy_cw32.chunk.js.map} +1 -1
  22. package/dist/scripts/{DGuSwgQf2.chunk.js → C3yKN7vY2.chunk.js} +2 -2
  23. package/dist/scripts/{DGuSwgQf2.chunk.js.map → C3yKN7vY2.chunk.js.map} +1 -1
  24. package/dist/scripts/{DqX2L2fn2.chunk.js → CEL9EOPh2.chunk.js} +2 -2
  25. package/dist/scripts/{DqX2L2fn2.chunk.js.map → CEL9EOPh2.chunk.js.map} +1 -1
  26. package/dist/scripts/{BHwx99h9.chunk.js → COeneeRO.chunk.js} +2 -2
  27. package/dist/scripts/{BHwx99h9.chunk.js.map → COeneeRO.chunk.js.map} +1 -1
  28. package/dist/scripts/{C5nG9HKq2.chunk.js → CiMD5u2s2.chunk.js} +2 -2
  29. package/dist/scripts/{C5nG9HKq2.chunk.js.map → CiMD5u2s2.chunk.js.map} +1 -1
  30. package/dist/scripts/{q1iKm4P4.chunk.js → Coxg-CDT.chunk.js} +2 -2
  31. package/dist/scripts/{q1iKm4P4.chunk.js.map → Coxg-CDT.chunk.js.map} +1 -1
  32. package/dist/scripts/{DKgzSSZ12.chunk.js → D5JcKzGf2.chunk.js} +2 -2
  33. package/dist/scripts/{DKgzSSZ12.chunk.js.map → D5JcKzGf2.chunk.js.map} +1 -1
  34. package/dist/scripts/{DBpZNnAI2.chunk.js → DDXdEuUF2.chunk.js} +2 -2
  35. package/dist/scripts/{DBpZNnAI2.chunk.js.map → DDXdEuUF2.chunk.js.map} +1 -1
  36. package/dist/scripts/{C_nTmCTH2.chunk.js → DLWxPapJ2.chunk.js} +2 -2
  37. package/dist/scripts/{C_nTmCTH2.chunk.js.map → DLWxPapJ2.chunk.js.map} +1 -1
  38. package/dist/scripts/{CeSe3AP62.chunk.js → Da6u6D2M2.chunk.js} +3 -3
  39. package/dist/scripts/{CeSe3AP62.chunk.js.map → Da6u6D2M2.chunk.js.map} +1 -1
  40. package/dist/scripts/{CWVwHN-C2.chunk.js → DhSEOAnJ2.chunk.js} +2 -2
  41. package/dist/scripts/{CWVwHN-C2.chunk.js.map → DhSEOAnJ2.chunk.js.map} +1 -1
  42. package/dist/scripts/{Cv7tjWWS.chunk.js → IG-rboYg.chunk.js} +2 -2
  43. package/dist/scripts/{Cv7tjWWS.chunk.js.map → IG-rboYg.chunk.js.map} +1 -1
  44. package/dist/scripts/{CDx9_B5h2.chunk.js → KkZBQL3G2.chunk.js} +2 -2
  45. package/dist/scripts/{CDx9_B5h2.chunk.js.map → KkZBQL3G2.chunk.js.map} +1 -1
  46. package/dist/scripts/{CCdxPE8F.chunk.js → TJTvGoAZ.chunk.js} +2 -2
  47. package/dist/scripts/{CCdxPE8F.chunk.js.map → TJTvGoAZ.chunk.js.map} +1 -1
  48. package/dist/scripts/{app-F8o5al1q.js → app-DW-nP8r1.js} +3 -3
  49. package/dist/scripts/{app-F8o5al1q.js.map → app-DW-nP8r1.js.map} +1 -1
  50. package/dist/scripts/{DJpo4rMq2.chunk.js → i1FSKHH62.chunk.js} +2 -2
  51. package/dist/scripts/{DJpo4rMq2.chunk.js.map → i1FSKHH62.chunk.js.map} +1 -1
  52. package/dist/scripts/{B_QHbZ3D2.chunk.js → niZatQNI2.chunk.js} +2 -2
  53. package/dist/scripts/{B_QHbZ3D2.chunk.js.map → niZatQNI2.chunk.js.map} +1 -1
  54. package/dist/scripts/{BDLgF915.chunk.js → nup2thXk.chunk.js} +2 -2
  55. package/dist/scripts/{BDLgF915.chunk.js.map → nup2thXk.chunk.js.map} +1 -1
  56. package/dist/scripts/{r68VJd6w.chunk.js → qhfEmD0O.chunk.js} +2 -2
  57. package/dist/scripts/{r68VJd6w.chunk.js.map → qhfEmD0O.chunk.js.map} +1 -1
  58. package/dist/scripts/{J0H9O8cX.chunk.js → t8ONdKoR.chunk.js} +2 -2
  59. package/dist/scripts/{J0H9O8cX.chunk.js.map → t8ONdKoR.chunk.js.map} +1 -1
  60. package/dist/scripts/{CLDXLTBe.chunk.js → v01tmPE-.chunk.js} +2 -2
  61. package/dist/scripts/{CLDXLTBe.chunk.js.map → v01tmPE-.chunk.js.map} +1 -1
  62. package/dist/scripts/{DHz5C_j8.chunk.js → xV42YE03.chunk.js} +2 -2
  63. package/dist/scripts/{DHz5C_j8.chunk.js.map → xV42YE03.chunk.js.map} +1 -1
  64. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{Dr as e,E as t,N as n,at as r,b as i,x as a,y as o}from"./CrTgNROp.chunk.js";import{m as s}from"./Dwe-4MVf.chunk.js";import{t as c}from"./BIVEB8w0.chunk.js";import{t as l}from"./C4rkNAyl.chunk.js";import{t as u}from"./J0H9O8cX.chunk.js";import{_ as d,a as f,dt as p,f as m,i as h,n as g,p as _,r as v,xt as y}from"./app-F8o5al1q.js";import{n as b,r as x,t as S}from"./D63nJT6V.chunk.js";import{t as C}from"./BcjF3S7y.chunk.js";import{n as w}from"./r68VJd6w.chunk.js";import{r as T,t as E}from"./CEM-Xsc32.chunk.js";import{t as D}from"./DGuSwgQf2.chunk.js";var O=e(t()),k=e(r()),A=n(),j=k.forwardRef(({bsPrefix:e,className:t,as:n=`div`,...r},s)=>{let c=a(e,`row`),l=o(),u=i(),d=`${c}-cols`,f=[];return l.forEach(e=>{let t=r[e];delete r[e];let n;typeof t==`object`&&t?{cols:n}=t:n=t;let i=e===u?``:`-${e}`;n!=null&&f.push(`${d}${i}-${n}`)}),(0,A.jsx)(n,{ref:s,...r,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)(p,{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)(p,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{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)(p,{xs:2,className:`d-flex`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-3 ${M.partialShortText}`})}),(0,A.jsx)(p,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})}),(0,A.jsx)(p,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{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)(p,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialLongText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{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)(p,{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)(p,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialMediumText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{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)(p,{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)(p,{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)(p,{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)(p,{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)(v,{className:`bg-white rounded justify-content-center py-5`,children:[(0,A.jsx)(v.Image,{src:y.EmptyStates.Shared.ViewCount,className:`w-25 h-auto`}),(0,A.jsx)(v.Heading,{children:U(`heading`)}),(0,A.jsx)(v.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)(S,{video:e,imageOptions:{size:l.Small},textPosition:b.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:[_.isVideoType(e)&&(0,A.jsx)(x,{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=h();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=f(`video-views`),t=s(u.topStreams(Z,e)),n=C(t.data?.map(e=>e.objectId)??[],d.videos);T(t),g({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:m}),r&&!i&&(0,A.jsx)(W,{})]})}export{Q as SchoolTopVideosView};
2
- //# sourceMappingURL=med1nnv82.chunk.js.map
1
+ import{Dr as e,E as t,N as n,at as r,b as i,x as a,y as o}from"./CrTgNROp.chunk.js";import{m as s}from"./Dwe-4MVf.chunk.js";import{t as c}from"./BIVEB8w0.chunk.js";import{t as l}from"./C4rkNAyl.chunk.js";import{t as u}from"./t8ONdKoR.chunk.js";import{_ as d,a as f,dt as p,f as m,i as h,n as g,p as _,r as v,xt as y}from"./app-DW-nP8r1.js";import{n as b,r as x,t as S}from"./BT26h7xG.chunk.js";import{t as C}from"./BBromGRt.chunk.js";import{n as w}from"./qhfEmD0O.chunk.js";import{r as T,t as E}from"./BM1rCX722.chunk.js";import{t as D}from"./C3yKN7vY2.chunk.js";var O=e(t()),k=e(r()),A=n(),j=k.forwardRef(({bsPrefix:e,className:t,as:n=`div`,...r},s)=>{let c=a(e,`row`),l=o(),u=i(),d=`${c}-cols`,f=[];return l.forEach(e=>{let t=r[e];delete r[e];let n;typeof t==`object`&&t?{cols:n}=t:n=t;let i=e===u?``:`-${e}`;n!=null&&f.push(`${d}${i}-${n}`)}),(0,A.jsx)(n,{ref:s,...r,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)(p,{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)(p,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{xs:5,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-4 ${M.partialShortText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{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)(p,{xs:2,className:`d-flex`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-3 ${M.partialShortText}`})}),(0,A.jsx)(p,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background mx-2 ${M.partialShortText}`})}),(0,A.jsx)(p,{xs:2,className:`d-flex justify-content-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ${M.partialShortText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{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)(p,{xs:3,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialLongText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{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)(p,{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)(p,{xs:2,className:`d-flex align-items-center`,children:(0,A.jsx)(`div`,{className:`partial-loading-background ms-n2 ${M.partialMediumText}`})}),(0,A.jsx)(p,{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)(p,{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)(p,{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)(p,{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)(p,{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)(p,{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)(p,{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)(v,{className:`bg-white rounded justify-content-center py-5`,children:[(0,A.jsx)(v.Image,{src:y.EmptyStates.Shared.ViewCount,className:`w-25 h-auto`}),(0,A.jsx)(v.Heading,{children:U(`heading`)}),(0,A.jsx)(v.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)(S,{video:e,imageOptions:{size:l.Small},textPosition:b.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:[_.isVideoType(e)&&(0,A.jsx)(x,{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=h();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=f(`video-views`),t=s(u.topStreams(Z,e)),n=C(t.data?.map(e=>e.objectId)??[],d.videos);T(t),g({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:m}),r&&!i&&(0,A.jsx)(W,{})]})}export{Q as SchoolTopVideosView};
2
+ //# sourceMappingURL=B2NaDejJ2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"med1nnv82.chunk.js","names":[],"sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../src/shared/components/partial-loading/partial-loading.module.scss","../../src/shared/components/partial-loading/PartialTable.tsx","../../src/shared/components/partial-loading/PartialTableContent.tsx","../../src/apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState.tsx","../../src/apps/videos/components/video-views-table/video-views-table.module.scss","../../src/apps/videos/components/video-views-table/VideoViewsTable.tsx","../../src/apps/videos/views/school-top-videos/SchoolTopVideosView.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;",":local {\n // Table styles\n\n .videoTable {\n height: 62rem;\n }\n\n .interactiveTable {\n height: 57rem;\n }\n\n .userTable {\n height: 14rem;\n }\n\n .header {\n height: 3.825rem\n }\n\n .itemHeader {\n height: 3.825rem\n }\n\n // Item styles\n\n .videoItemContainer {\n height: 8.125rem;\n }\n\n .interactiveItemContainer {\n height: 7.375rem;\n }\n\n .userItemContainer {\n height: 2.5625rem;\n }\n\n .heatMapItemContainer {\n margin-left: 6rem;\n }\n\n .partialAvatar {\n width: $avatar-width;\n height: $avatar-width;\n border-radius: 50%;\n }\n\n .partialNumber {\n width: 2rem;\n height: 1.1rem;\n }\n\n .partialLongText {\n width: 16rem;\n height: 1.1rem;\n }\n\n .partialMediumText {\n width: 10rem;\n height: 1.1rem;\n }\n\n .partialShortText {\n width: 5rem;\n height: 1.1rem;\n }\n\n .partialThumbnail {\n width: 10rem;\n padding-bottom: 56.25%;\n }\n\n .partialHeatMap {\n width: 34rem;\n height: 1.1rem;\n }\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport styles from './partial-loading.module.scss';\n\nconst VideoViewsHeader = (\n <Row className='py-3'>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst InteractivesHeader = (\n <Row className='py-3'>\n <Col xs={5} className='d-flex align-items-center'>\n <div className={`partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center' >\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nconst EngagementUsersHeader = (\n <Row className='py-3'>\n <Col xs={2} className='d-flex'>\n <div className={`partial-loading-background mx-3 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between'>\n <div className={`d-block partial-loading-background ${styles.heatMapItemContainer} ${styles.partialShortText}`} />\n </Col>\n </Row>\n);\n\nfunction getTableVariant(type: TableVariant) {\n switch (type) {\n case 'video-views':\n return {\n headerComponent: VideoViewsHeader,\n tableStyle: styles.videoTable\n };\n\n case 'interactives':\n return {\n headerComponent: InteractivesHeader,\n tableStyle: styles.interactiveTable\n };\n\n case 'engagement-users':\n return {\n headerComponent: EngagementUsersHeader,\n tableStyle: styles.userTable\n };\n\n default:\n return {\n headerComponent: <></>,\n tableStyle: ''\n };\n }\n}\n\nexport type TableVariant = 'video-views' | 'interactives' | 'engagement-users';\n\ninterface PartialTableProps {\n variant?: TableVariant;\n className?: string;\n headerClassName?: string;\n}\n\nexport function PartialTable(props: React.PropsWithChildren<PartialTableProps>): JSX.Element {\n const { headerComponent, tableStyle } = getTableVariant(props.variant);\n\n return (\n <div className={`bg-white rounded ${tableStyle} ${props.className ?? ''}`}>\n <div className={`border-bottom ${styles.header} ${props.headerClassName ?? ''}`}>\n {headerComponent}\n </div>\n {props.children}\n </div>\n );\n}\n","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { TableVariant } from 'shared/components/partial-loading/PartialTable';\n\nimport styles from './partial-loading.module.scss';\n\nfunction VideoItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.videoItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialLongText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialShortText}`} />\n </Col>\n <Col xs={4} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction InteractiveItem(): JSX.Element {\n return (\n <Row className={`py-1 ${styles.interactiveItemContainer}`}>\n <Col xs={1} className='d-flex align-items-center justify-content-center'>\n <div className={`partial-loading-background ${styles.partialNumber}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className='d-block'>\n <div className={`partial-loading-background rounded ${styles.partialThumbnail}`} />\n </div>\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`partial-loading-background ms-n2 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialAvatar}`} />\n </Col>\n <Col xs={2} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialMediumText}`} />\n </Col>\n <Col xs={3} className='d-flex align-items-center'>\n <div className={`d-block partial-loading-background mx-4 ${styles.partialNumber}`} />\n </Col>\n </Row>\n );\n}\n\nfunction EngagementUserItem(): JSX.Element {\n return (\n <Row className={`my-2 ${styles.userItemContainer}`}>\n <Col xs={2} className='d-flex align-items-center '>\n <div className={`partial-loading-background ms-3 ${styles.partialAvatar}`} />\n <div className={`partial-loading-background mx-2 ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`d-block partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={2} className='d-flex justify-content-center align-items-center'>\n <div className={`partial-loading-background ${styles.partialShortText}`} />\n </Col>\n <Col xs={6} className='d-flex justify-content-between align-items-center'>\n <div className={`partial-loading-background ${styles.heatMapItemContainer} ${styles.partialHeatMap}`} />\n </Col>\n </Row>\n );\n}\n\nfunction getPartialItem(type: TableVariant, key: number): JSX.Element {\n switch (type) {\n case 'video-views':\n return <VideoItem key={key} />;\n\n case 'interactives':\n return <InteractiveItem key={key} />;\n\n case 'engagement-users':\n return <EngagementUserItem key={key} />;\n\n default:\n return <></>;\n }\n}\n\ninterface PartialTableContentProps {\n variant: TableVariant;\n itemCount?: number;\n}\n\nPartialTableContent.defaultProps = {\n itemCount: 7\n};\n\nexport function PartialTableContent(props: PartialTableContentProps): JSX.Element {\n return (\n <div className='my-1'>\n {Array(props.itemCount).fill(null).map((_, i) => getPartialItem(props.variant, i))}\n </div>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ReportsImageUrls';\n\nconst namespace = 'reportsVideos.videoViewsTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoViewsTableEmptyState(): JSX.Element {\n return (\n <EmptyState className='bg-white rounded justify-content-center py-5'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Shared.ViewCount}\n className='w-25 h-auto'\n />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info>\n {getPhrase('description')}\n </EmptyState.Info>\n </EmptyState>\n );\n}\n",":local {\n .title,\n .thumbnail {\n min-width: 8rem;\n max-width: 10rem;\n margin-left: auto; \n margin-right: 0;\n }\n\n .seeOverview {\n display: none;\n }\n\n .row:hover {\n background-color: $light-blue;\n text-decoration: none;\n\n .seeOverview {\n display: flex;\n }\n }\n}","import React from 'react';\nimport { Row } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\nimport { Column, HeaderProps, Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useGetAppLinkFilterParams } from 'shared/hooks/UseGetFilterQueryParams';\nimport { TopVideo } from 'shared/interfaces';\n\nimport styles from './video-views-table.module.scss';\n\nconst namespace = 'reportsVideos.videoViewsTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst theme: TableTheme = {\n table: 'bg-white rounded',\n header: 'border-bottom',\n headerCell: 'p-3',\n row: styles.row,\n cell: 'p-3'\n};\n\nexport const COLUMNS: Column<TopVideo>[] = [\n {\n Header: () => (\n <div className='d-flex justify-content-end'>\n #\n </div>\n ),\n accessor: 'object',\n id: 'index',\n Cell: ({ row: { index } }) => (\n <div className='d-flex align-items-center justify-content-end h-100'>\n {index + 1}\n </div>\n ),\n width: 5,\n disableSortBy: true\n },\n {\n Header: (props: HeaderProps<TopVideo>) => (\n <div className={styles.title}>\n <>{getPhrase('title')} {props.renderSortIndicator()}</>\n </div>\n ),\n accessor: 'object',\n id: 'image',\n Cell: ({ value }) => (\n <VideoThumbnail\n video={value}\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n extraClasses={styles.thumbnail}\n newDurationStyle\n size='sm'\n />\n ),\n width: 30,\n hideSortIndicator: true,\n sortType: (rowA: Row<TopVideo>, rowB: Row<TopVideo>) => {\n return rowA.original.object.name?.toLowerCase() > rowB.original.object.name?.toLowerCase() ? 1 : -1;\n }\n },\n {\n accessor: 'object',\n id: 'name',\n Cell: ({ value }) => (\n <div className='d-flex flex-column justify-content-center h-100'>\n {VideoHelper.isVideoType(value) && (\n <VideoSubText\n type='series'\n video={value}\n analyticsOptions={null}\n className='d-inline clamp-1'\n />\n )}\n <span className='text-truncate'>{value.name}</span>\n </div>\n ),\n width: 60,\n disableSortBy: true\n },\n {\n Header: () => <>{getPhrase('contentType')}</>,\n accessor: 'contentType',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n Header: () => <>{getPhrase('views')}</>,\n accessor: 'combinedCount',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center h-100'>\n {value}\n </div>\n ),\n width: 30\n },\n {\n accessor: 'object',\n id: 'see-overview',\n Cell: () => (\n <div className={`${styles.seeOverview} align-items-center h-100 text-info`}>\n {getPhrase('seeAnalytics')}\n </div>\n ),\n width: 25,\n disableSortBy: true\n }\n];\n\ninterface VideoViewsByVideoTableProps {\n videos: TopVideo[];\n getVideoAppLink: (object: VideoTypes, filterQueryParams: FilterQueryParams) => Core.AppLink;\n}\n\nexport function VideoViewsTable(props: VideoViewsByVideoTableProps): JSX.Element {\n const filterQueryParams = useGetAppLinkFilterParams();\n\n function getRowAppLink(row: Row<TopVideo>): Core.AppLink {\n return props.getVideoAppLink(row.original.object, filterQueryParams);\n }\n\n return (\n <Table\n columns={COLUMNS}\n data={props.videos}\n theme={theme}\n getRowAppLink={getRowAppLink}\n enableSort\n />\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nimport { PartialTable } from 'shared/components/partial-loading/PartialTable';\nimport { PartialTableContent } from 'shared/components/partial-loading/PartialTableContent';\nimport { VideoViewsV2Requests } from 'shared/flight-requests/VideoViewsV2Requests';\nimport { useGetRequestFilter } from 'shared/hooks/UseGetFilterQueryParams';\nimport { useSetHeaderTitle } from 'shared/hooks/UseSetHeaderTitle';\nimport { TopVideo, TopVideoV2 } from 'shared/interfaces';\nimport { getSchoolVideoAppLink } from 'shared/utils/ReportsAppLinkUtils';\n\nimport { SchoolVideosNav } from 'apps/videos/components/school-videos-nav/SchoolVideosNav';\nimport { VideoViewsTableEmptyState } from 'apps/videos/components/video-views-table/video-views-table-empty-state/VideoViewsTableEmptyState';\nimport { VideoViewsTable } from 'apps/videos/components/video-views-table/VideoViewsTable';\n\nconst namespace = 'reportsVideos.schoolTopVideosView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst LIMIT = 100;\n\nexport function SchoolTopVideosView(): JSX.Element {\n const requestFilter = useGetRequestFilter('video-views');\n\n const topStreams = Flight.useBasicFetch<TopVideoV2[]>(VideoViewsV2Requests.topStreams(LIMIT, requestFilter));\n\n const videos = useBatchFetch<VideoTypes>(\n topStreams.data?.map(v => v.objectId) ?? [],\n VideoRequests.videos\n );\n\n useHandleObjectError(topStreams);\n\n useSetPageMetadata({ title: getPhrase('videos') });\n useSetHeaderTitle(getPhrase('videos'));\n\n const hasLoaded = (\n topStreams.hasCompleted &&\n !videos.isFetching\n );\n\n const hasVideoViews = !!videos.itemsArr?.length;\n \n const mappedVideos = topStreams.data?.map<TopVideo>(topStream => {\n const video = videos.items?.[topStream?.objectId];\n\n if (!video)\n return null;\n\n return {\n count: topStream.count,\n object: video,\n contentType: topStream.contentType,\n combinedCount: topStream.combinedCount\n };\n }).filter(v => !!v);\n\n return (\n <div className='pb-3'>\n <SchoolVideosNav />\n {!hasLoaded &&\n <PartialTable variant='video-views'>\n <PartialTableContent variant='video-views' />\n </PartialTable>\n }\n {hasLoaded && hasVideoViews &&\n <VideoViewsTable videos={mappedVideos} getVideoAppLink={getSchoolVideoAppLink} />\n }\n {hasLoaded && !hasVideoViews && <VideoViewsTableEmptyState />}\n </div>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"B2NaDejJ2.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{Dr as e,N as t,at as n,ot as r}from"./CrTgNROp.chunk.js";import{i,n as a,o,r as s,v as c}from"./CxNc1BDX.chunk.js";import{t as l}from"./BIVEB8w0.chunk.js";import{n as u}from"./C4rkNAyl.chunk.js";import{i as d,n as f,r as p}from"./J0H9O8cX.chunk.js";import{U as m,g as ee,m as h,x as g}from"./app-F8o5al1q.js";import{n as te,t as _}from"./CPUQYzyc.chunk.js";var v=e(n()),y=function(e){return e.Exchange=`exchange`,e.Streamable=`streamable`,e.MoviesAndTv=`movies_and_tv`,e.Twig=`twig`,e.Espresso=`espresso`,e}({}),b=t();function x(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z`,clipRule:`evenodd`})})}function S(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z`,fill:`currentColor`})})}var C=function(e){return e.Folder=`category`,e.CategoryTree=`category_tree`,e.CustomLibrary=`custom_library`,e.HostedLibrary=`hosted_library`,e.Exchange=`exchange`,e.Workspace=`workspace`,e.Video=`video`,e.Clip=`clip`,e.Interactive=`interactive`,e}({}),w=function(e){return e.Pdf=`pdf`,e.Image=`image`,e.PowerPoint=`powerpoint`,e.Document=`document`,e.Excel=`excel`,e.Zip=`archive`,e.File=`text`,e}({});function T(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z`,fill:`currentColor`})})}function E(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39`,fill:`currentColor`})})}function ne(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z`,fill:`currentColor`})})}function re(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z`,fill:`currentColor`})})}function ie(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z`,fill:`currentColor`})})}function ae(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z`,fill:`currentColor`})})}var D=`shared.shared-utils`,O={mapRatingToClass(e){return e?(e=>{switch(!0){case e<32:return`bg-purple`;case e<48:return`bg-green`;case e<80:return`bg-blue`;case e<96:return`bg-red`;case e<128:return`bg-pink`;case e>=128:return`bg-yellow`;default:return``}})(e):``},mapSourceToDisplayName(e,t){switch(e.type){case C.HostedLibrary:case C.CustomLibrary:return e.name;case C.Exchange:return l.getPhrase(D,`exchange`);case C.Workspace:return l.getPhrase(D,t?`myVideos`:`workspace`);default:return``}},mapSourceToClass(e){switch(e){case C.HostedLibrary:case C.CustomLibrary:return`bg-blue`;case C.Exchange:return`bg-green`;case C.Workspace:default:return`bg-red`}},isInteractive(e){return!!e?.interactives?.data?.length},mapTypeToSvg(e){let t={[w.Pdf]:E,[w.Image]:_,[w.PowerPoint]:ne,[w.Document]:ie,[w.Excel]:T,[w.Zip]:ae,[w.File]:re}[e];return t||=te,t},mapTypeToClass(e){switch(e){case w.Pdf:return`icon-red`;case w.Image:return`icon-purple`;case w.Document:return`icon-blue`;case w.Excel:return`icon-green`;case w.PowerPoint:return`icon-orange`;case w.Zip:return`icon-teal`;case w.File:return`icon-gray`;default:return``}},mapTypeToExtension(e){return e?{pdf:`pdf`,image:`png`,powerpoint:`pptx`}[e.toLowerCase()]:``},mapTypeToName(e){if(!e)return``;switch(e){case w.Pdf:return l.getPhrase(D,`pdf`);case w.Image:return l.getPhrase(D,`image`);case w.Document:return l.getPhrase(D,`document`);case w.Excel:return l.getPhrase(D,`spreadsheet`);case w.PowerPoint:return l.getPhrase(D,`presentation`);case w.Zip:return l.getPhrase(D,`zipArchive`);case w.File:return l.getPhrase(D,`file`);default:return``}}},k=l.encloseNamespace(`shared.badges`),A=function(e){return e.DurationExact=`duration-exact`,e.DurationApproximate=`duration-approximate`,e.Interactive=`interactive`,e.Rating=`rating`,e.ProductionYear=`production-year`,e.Captions=`captions`,e.Status=`status`,e.Trending=`trending`,e.Count=`count`,e.RoundCount=`round-count`,e.Restriction=`restriction`,e.Source=`source`,e}({}),j={xs:i.ExtraSmall,sm:i.Small,std:i.Standard,lg:i.Large},M={xs:`badge-xs`,sm:`badge-sm`,std:`badge-std`,lg:`badge-lg`};function N(e){switch(e){case g.Published:case d.Published:return`bg-success`;case g.Archived:case g.Rejected:case d.Archived:return`bg-danger`;case g.Draft:case d.Draft:return`draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center`;case g.Pending:case g.Processing:return`bg-warning`}}function P(e){return e.includes(y.Streamable)?`px-1 text-nowrap d-flex align-items-center ${ee.streamable}`:e.includes(y.MoviesAndTv)?`bg-indigo text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Exchange)?`bg-orange text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Twig)?`bg-pink text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Espresso)?`bg-navy text-white px-1 text-nowrap d-flex align-items-center`:``}function F(e,t,n){let r=M[n],i=``;return e===`duration-approximate`&&(i=`duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center`),e===`duration-exact`&&(i=`duration-badge`),e===`interactive`&&(i=`interactive-badge`),e===`rating`&&(i=`rating-badge text-shadow ${O.mapRatingToClass(t.value)}`),e===`production-year`&&(i=`production-year-badge text-shadow`),e===`captions`?`p-0`:e===`status`?`badge ${N(t)}`:e===`trending`?`trending-badge px-1 d-flex align-items-center ${r}`:(e===`count`&&(i=`count-badge px-1 rounded`),e===`round-count`&&(i=`round-badge rounded-circle`),e===`restriction`?a(`restriction-badge rounded-pill px-2 d-flex align-items-center`,h.mapRestrictionToClass(t.restrictions)):(e===`source`&&(i=P(t)),a(`badge`,i)))}function I(e,t,n){if(e===`interactive`)return k(`interactive`);if(e===`duration-approximate`)return p.ToDisplayDurationNewStyle(t);if(e===`duration-exact`)return p.ToDisplayDuration(t);if(e===`rating`)return t.code;if(e===`production-year`)return t;if(e===`captions`)return(0,b.jsx)(s,{svg:S});if(e===`status`)return typeof t==`number`?g[t]:t;if(e===`trending`)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{svg:x,size:j[n]}),(0,b.jsx)(`span`,{className:`ps-1`,children:t})]});if(e===`count`||e===`round-count`)return t;if(e===`restriction`)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{svg:h.mapRestrictionToSvg(t.restrictions)}),(0,b.jsx)(`span`,{children:h.mapRestrictionToText(t.restrictions,t.yearGroups)})]});if(e===`source`){let e=t;return e.includes(y.Streamable)?`streamable`:e.includes(y.MoviesAndTv)?`movies + tv`:e.includes(y.Exchange)?`exchange`:e.includes(y.Twig)?`twig`:e.includes(y.Espresso)?`espresso`:`-`}}function L(e,t){return e===`rating`?{title:t.name,placement:`top`}:null}function R(e,t){return typeof t==`boolean`?!!t:e===`rating`?t&&!!t.value:e===`interactive`||e===`captions`?!!t?.length||!!t?.data?.length:e===`status`?typeof t==`number`||typeof t==`string`:!!t}function z(e){let{type:t,data:n,size:r=`std`}=e;if(!R(t,n))return(0,b.jsx)(b.Fragment,{});let i=F(t,n,r);i=`${i} ${e.inline?`d-inline-block`:`d-flex justify-content-center`} ${e.className||``}`;let a=I(t,n,r),s=L(t,n),c=e.inline&&`d-inline-block`;return s?(0,b.jsx)(`div`,{className:`badge-wrapper d-inline`,children:(0,b.jsx)(o,{...s,spanHack:!0,spanHackClassName:c,children:(0,b.jsx)(`span`,{className:i,children:a})})}):(0,b.jsx)(`span`,{className:`${i} badge-wrapper`,children:a})}function B(e={}){let{prevent:t,rootMargin:n,triggerOnce:r=!0}=e,[i,a,o]=f({triggerOnce:r,rootMargin:n});return(t===!0||window.IntersectionObserver===void 0)&&(a=!0,i=null),{ref:i,inView:a,initialized:!!o}}var V={image:`_image_pp6me_1`},H=`500px`,U=`data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=`,W=v.memo(function(e){let{forceLoad:t,extraClasses:n=``,errorFallbackImageSrc:r,preventLoad:i=!1,errorFallbackImageClassName:a,src:o,alt:s,...c}=e,{ref:l,inView:u}=B({rootMargin:H}),[d,f]=v.useState(!1);v.useEffect(()=>{if(!t&&!u||i)return;let e=new Image;return e.onerror=()=>{f(!0),r&&(e.src=r)},e.src=o,()=>e.onerror=null},[u,i]);function p(){return d&&r?r:e.src}if(d&&!r)return(0,b.jsx)(b.Fragment,{});if(!l)return(0,b.jsx)(`img`,{className:`${V.image} ${n} ${d&&a||``}`,alt:s,src:p(),...c});let m={alt:s,...c,...(u||t)&&!i?{src:p()}:{src:U}};return t||(m.ref=l),(0,b.jsx)(`img`,{className:`${V.image} ${n} ${d&&a||``}`,...m})}),G={image:`_image_1himm_1`,thumbnail:`_thumbnail_1himm_13`,tallPoster:`_tallPoster_1himm_16`,cover:`_cover_1himm_19`,banner:`_banner_1himm_22`,poster:`_poster_1himm_25`,pdf:`_pdf_1himm_28`,link:`_link_1himm_31`};function K(e){let t=G.image,n=``;return e.imageType===u.Thumbnails&&(n=`thumbnail ${G.thumbnail}`),e.imageType===u.TallPosters&&(n=G.tallPoster),e.imageType===u.Covers&&(n=G.cover),e.imageType===u.Banners&&(n=G.banner),e.imageType===u.Posters&&(n=G.poster),e.imageType===u.Pdf&&(n=G.pdf),e.imageType===u.Link&&(n=G.link),n&&(t+=` ${n}`),e.className&&(t+=` ${e.className}`),t}function q(e){let{data:t,imageOptions:n,appLink:i,preload:a,preventLoad:o,analyticsOptions:s,analyticsData:l,imageClassName:u,alt:d}=e,f=``;typeof t==`string`?f=t:r.isObject(t)&&(f=t.url);let p=f&&n?m.createUrl(f,n):f;return(0,b.jsx)(`div`,{className:K(e),style:e.imageStyle,children:(0,b.jsxs)(c,{appLink:i,analyticsData:l,analyticsOptions:s,onClick:e.onClick,preventFocus:e.preventFocus,className:e.appLinkClassName,openInNewTab:e.openInNewTab,forcePageLoad:e.forcePageLoad,children:[e.children,p&&(0,b.jsx)(W,{src:p,alt:d,forceLoad:a,preventLoad:o,extraClasses:u,errorFallbackImageSrc:e.errorFallbackImageSrc,errorFallbackImageClassName:e.errorFallbackImageClassName,onLoad:e.onLoad})]})})}var J=[`bg-pink`,`bg-orange`,`bg-green`,`bg-cyan`,`bg-teal`,`bg-blue`,`bg-indigo`,`bg-purple`];function oe(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z`,clipRule:`evenodd`})})}function Y(e){return(0,b.jsx)(`svg`,{...e,viewBox:`0 0 24 21`,children:(0,b.jsx)(`path`,{d:`M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5`,fill:`currentColor`})})}function se(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,d:`M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17`})})}function X(e,t){return t[e.charCodeAt(0)%t.length]}var Z={baseFallbackContainer:`_baseFallbackContainer_14tjv_1`,svgFallbackContainer:`_svgFallbackContainer_14tjv_1`,subjectFallbackContainer:`_subjectFallbackContainer_14tjv_9`,subjectFallbackContainerSmall:`_subjectFallbackContainerSmall_14tjv_18`,subjectFallbackContainerLarge:`_subjectFallbackContainerLarge_14tjv_21`,seriesItemFallback:`_seriesItemFallback_14tjv_24`,playlistItemFallback:`_playlistItemFallback_14tjv_24`,playlistFallback:`_playlistFallback_14tjv_28`,posterFallback:`_posterFallback_14tjv_29`,subjectFallback:`_subjectFallback_14tjv_9`,fallbackThumbnailImage:`_fallbackThumbnailImage_14tjv_47`,videoFallback:`_videoFallback_14tjv_55`,folderFallback:`_folderFallback_14tjv_56`},ce=function(e){return e[e.Playlist=0]=`Playlist`,e[e.PlaylistThumbnail=1]=`PlaylistThumbnail`,e[e.Series=2]=`Series`,e[e.SeriesThumbnail=3]=`SeriesThumbnail`,e[e.Subject=4]=`Subject`,e[e.TallSubject=5]=`TallSubject`,e[e.Video=6]=`Video`,e[e.Folder=7]=`Folder`,e}({});function le(e,t,n){if(t===4){let e=n===0?Z.subjectFallbackContainerLarge:Z.subjectFallbackContainerSmall;return`${Z.subjectFallbackContainer} ${e}`}return e===0?t===3||t===1?`${Z.svgFallbackContainer} rounded-3`:Z.svgFallbackContainer:Z.baseFallbackContainer}function ue(e){return e===3?Z.seriesItemFallback:e===1?Z.playlistItemFallback:e===0?Z.playlistFallback:e===2||e===5?Z.posterFallback:e===4?`${Z.subjectFallback} svg-container d-inline-block`:``}function Q(e){return e===3||e===1?oe:e===0?Y:e===2?se:e===4||e===5?_:null}function de(e){return e===4?i.ExtraLarge:i.Standard}$.defaultProps={mediaType:0,containerClassSize:0};function $(e){let{type:t,mediaType:n,extraClasses:r,containerClassSize:i}=e;if(t===6)return(0,b.jsx)(`div`,{className:`${Z.videoFallback} ${e.extraClasses} bg-light-blue`});if(t===7)return(0,b.jsx)(`div`,{className:`${Z.folderFallback} ${e.extraClasses} ${X(e.name,J)}`});let a=ue(t),o=Q(t),c=de(t),l=`${le(n,t,i)}`;return r&&(l+=` ${e.extraClasses}`),(0,b.jsx)(`div`,{className:l,children:n===0?(0,b.jsx)(s,{svg:o,className:`${a} ${e.svgContainerClassName??``}`,tagName:`div`,size:c}):(0,b.jsx)(`div`,{className:Z.fallbackThumbnailImage,style:{backgroundImage:`url('${o}')`}})})}export{J as a,A as c,S as d,Y as i,E as l,ce as n,q as o,X as r,z as s,$ as t,w as u};
2
- //# sourceMappingURL=DATsYYMP.chunk.js.map
1
+ import{Dr as e,N as t,at as n,ot as r}from"./CrTgNROp.chunk.js";import{i,n as a,o,r as s,v as c}from"./CxNc1BDX.chunk.js";import{t as l}from"./BIVEB8w0.chunk.js";import{n as u}from"./C4rkNAyl.chunk.js";import{i as d,n as f,r as p}from"./t8ONdKoR.chunk.js";import{U as m,g as ee,m as h,x as g}from"./app-DW-nP8r1.js";import{n as te,t as _}from"./CPUQYzyc.chunk.js";var v=e(n()),y=function(e){return e.Exchange=`exchange`,e.Streamable=`streamable`,e.MoviesAndTv=`movies_and_tv`,e.Twig=`twig`,e.Espresso=`espresso`,e}({}),b=t();function x(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z`,clipRule:`evenodd`})})}function S(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z`,fill:`currentColor`})})}var C=function(e){return e.Folder=`category`,e.CategoryTree=`category_tree`,e.CustomLibrary=`custom_library`,e.HostedLibrary=`hosted_library`,e.Exchange=`exchange`,e.Workspace=`workspace`,e.Video=`video`,e.Clip=`clip`,e.Interactive=`interactive`,e}({}),w=function(e){return e.Pdf=`pdf`,e.Image=`image`,e.PowerPoint=`powerpoint`,e.Document=`document`,e.Excel=`excel`,e.Zip=`archive`,e.File=`text`,e}({});function T(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z`,fill:`currentColor`})})}function E(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39`,fill:`currentColor`})})}function ne(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z`,fill:`currentColor`})})}function re(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z`,fill:`currentColor`})})}function ie(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z`,fill:`currentColor`})})}function ae(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{d:`M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z`,fill:`currentColor`})})}var D=`shared.shared-utils`,O={mapRatingToClass(e){return e?(e=>{switch(!0){case e<32:return`bg-purple`;case e<48:return`bg-green`;case e<80:return`bg-blue`;case e<96:return`bg-red`;case e<128:return`bg-pink`;case e>=128:return`bg-yellow`;default:return``}})(e):``},mapSourceToDisplayName(e,t){switch(e.type){case C.HostedLibrary:case C.CustomLibrary:return e.name;case C.Exchange:return l.getPhrase(D,`exchange`);case C.Workspace:return l.getPhrase(D,t?`myVideos`:`workspace`);default:return``}},mapSourceToClass(e){switch(e){case C.HostedLibrary:case C.CustomLibrary:return`bg-blue`;case C.Exchange:return`bg-green`;case C.Workspace:default:return`bg-red`}},isInteractive(e){return!!e?.interactives?.data?.length},mapTypeToSvg(e){let t={[w.Pdf]:E,[w.Image]:_,[w.PowerPoint]:ne,[w.Document]:ie,[w.Excel]:T,[w.Zip]:ae,[w.File]:re}[e];return t||=te,t},mapTypeToClass(e){switch(e){case w.Pdf:return`icon-red`;case w.Image:return`icon-purple`;case w.Document:return`icon-blue`;case w.Excel:return`icon-green`;case w.PowerPoint:return`icon-orange`;case w.Zip:return`icon-teal`;case w.File:return`icon-gray`;default:return``}},mapTypeToExtension(e){return e?{pdf:`pdf`,image:`png`,powerpoint:`pptx`}[e.toLowerCase()]:``},mapTypeToName(e){if(!e)return``;switch(e){case w.Pdf:return l.getPhrase(D,`pdf`);case w.Image:return l.getPhrase(D,`image`);case w.Document:return l.getPhrase(D,`document`);case w.Excel:return l.getPhrase(D,`spreadsheet`);case w.PowerPoint:return l.getPhrase(D,`presentation`);case w.Zip:return l.getPhrase(D,`zipArchive`);case w.File:return l.getPhrase(D,`file`);default:return``}}},k=l.encloseNamespace(`shared.badges`),A=function(e){return e.DurationExact=`duration-exact`,e.DurationApproximate=`duration-approximate`,e.Interactive=`interactive`,e.Rating=`rating`,e.ProductionYear=`production-year`,e.Captions=`captions`,e.Status=`status`,e.Trending=`trending`,e.Count=`count`,e.RoundCount=`round-count`,e.Restriction=`restriction`,e.Source=`source`,e}({}),j={xs:i.ExtraSmall,sm:i.Small,std:i.Standard,lg:i.Large},M={xs:`badge-xs`,sm:`badge-sm`,std:`badge-std`,lg:`badge-lg`};function N(e){switch(e){case g.Published:case d.Published:return`bg-success`;case g.Archived:case g.Rejected:case d.Archived:return`bg-danger`;case g.Draft:case d.Draft:return`draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center`;case g.Pending:case g.Processing:return`bg-warning`}}function P(e){return e.includes(y.Streamable)?`px-1 text-nowrap d-flex align-items-center ${ee.streamable}`:e.includes(y.MoviesAndTv)?`bg-indigo text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Exchange)?`bg-orange text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Twig)?`bg-pink text-white px-1 text-nowrap d-flex align-items-center`:e.includes(y.Espresso)?`bg-navy text-white px-1 text-nowrap d-flex align-items-center`:``}function F(e,t,n){let r=M[n],i=``;return e===`duration-approximate`&&(i=`duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center`),e===`duration-exact`&&(i=`duration-badge`),e===`interactive`&&(i=`interactive-badge`),e===`rating`&&(i=`rating-badge text-shadow ${O.mapRatingToClass(t.value)}`),e===`production-year`&&(i=`production-year-badge text-shadow`),e===`captions`?`p-0`:e===`status`?`badge ${N(t)}`:e===`trending`?`trending-badge px-1 d-flex align-items-center ${r}`:(e===`count`&&(i=`count-badge px-1 rounded`),e===`round-count`&&(i=`round-badge rounded-circle`),e===`restriction`?a(`restriction-badge rounded-pill px-2 d-flex align-items-center`,h.mapRestrictionToClass(t.restrictions)):(e===`source`&&(i=P(t)),a(`badge`,i)))}function I(e,t,n){if(e===`interactive`)return k(`interactive`);if(e===`duration-approximate`)return p.ToDisplayDurationNewStyle(t);if(e===`duration-exact`)return p.ToDisplayDuration(t);if(e===`rating`)return t.code;if(e===`production-year`)return t;if(e===`captions`)return(0,b.jsx)(s,{svg:S});if(e===`status`)return typeof t==`number`?g[t]:t;if(e===`trending`)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{svg:x,size:j[n]}),(0,b.jsx)(`span`,{className:`ps-1`,children:t})]});if(e===`count`||e===`round-count`)return t;if(e===`restriction`)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{svg:h.mapRestrictionToSvg(t.restrictions)}),(0,b.jsx)(`span`,{children:h.mapRestrictionToText(t.restrictions,t.yearGroups)})]});if(e===`source`){let e=t;return e.includes(y.Streamable)?`streamable`:e.includes(y.MoviesAndTv)?`movies + tv`:e.includes(y.Exchange)?`exchange`:e.includes(y.Twig)?`twig`:e.includes(y.Espresso)?`espresso`:`-`}}function L(e,t){return e===`rating`?{title:t.name,placement:`top`}:null}function R(e,t){return typeof t==`boolean`?!!t:e===`rating`?t&&!!t.value:e===`interactive`||e===`captions`?!!t?.length||!!t?.data?.length:e===`status`?typeof t==`number`||typeof t==`string`:!!t}function z(e){let{type:t,data:n,size:r=`std`}=e;if(!R(t,n))return(0,b.jsx)(b.Fragment,{});let i=F(t,n,r);i=`${i} ${e.inline?`d-inline-block`:`d-flex justify-content-center`} ${e.className||``}`;let a=I(t,n,r),s=L(t,n),c=e.inline&&`d-inline-block`;return s?(0,b.jsx)(`div`,{className:`badge-wrapper d-inline`,children:(0,b.jsx)(o,{...s,spanHack:!0,spanHackClassName:c,children:(0,b.jsx)(`span`,{className:i,children:a})})}):(0,b.jsx)(`span`,{className:`${i} badge-wrapper`,children:a})}function B(e={}){let{prevent:t,rootMargin:n,triggerOnce:r=!0}=e,[i,a,o]=f({triggerOnce:r,rootMargin:n});return(t===!0||window.IntersectionObserver===void 0)&&(a=!0,i=null),{ref:i,inView:a,initialized:!!o}}var V={image:`_image_pp6me_1`},H=`500px`,U=`data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=`,W=v.memo(function(e){let{forceLoad:t,extraClasses:n=``,errorFallbackImageSrc:r,preventLoad:i=!1,errorFallbackImageClassName:a,src:o,alt:s,...c}=e,{ref:l,inView:u}=B({rootMargin:H}),[d,f]=v.useState(!1);v.useEffect(()=>{if(!t&&!u||i)return;let e=new Image;return e.onerror=()=>{f(!0),r&&(e.src=r)},e.src=o,()=>e.onerror=null},[u,i]);function p(){return d&&r?r:e.src}if(d&&!r)return(0,b.jsx)(b.Fragment,{});if(!l)return(0,b.jsx)(`img`,{className:`${V.image} ${n} ${d&&a||``}`,alt:s,src:p(),...c});let m={alt:s,...c,...(u||t)&&!i?{src:p()}:{src:U}};return t||(m.ref=l),(0,b.jsx)(`img`,{className:`${V.image} ${n} ${d&&a||``}`,...m})}),G={image:`_image_1himm_1`,thumbnail:`_thumbnail_1himm_13`,tallPoster:`_tallPoster_1himm_16`,cover:`_cover_1himm_19`,banner:`_banner_1himm_22`,poster:`_poster_1himm_25`,pdf:`_pdf_1himm_28`,link:`_link_1himm_31`};function K(e){let t=G.image,n=``;return e.imageType===u.Thumbnails&&(n=`thumbnail ${G.thumbnail}`),e.imageType===u.TallPosters&&(n=G.tallPoster),e.imageType===u.Covers&&(n=G.cover),e.imageType===u.Banners&&(n=G.banner),e.imageType===u.Posters&&(n=G.poster),e.imageType===u.Pdf&&(n=G.pdf),e.imageType===u.Link&&(n=G.link),n&&(t+=` ${n}`),e.className&&(t+=` ${e.className}`),t}function q(e){let{data:t,imageOptions:n,appLink:i,preload:a,preventLoad:o,analyticsOptions:s,analyticsData:l,imageClassName:u,alt:d}=e,f=``;typeof t==`string`?f=t:r.isObject(t)&&(f=t.url);let p=f&&n?m.createUrl(f,n):f;return(0,b.jsx)(`div`,{className:K(e),style:e.imageStyle,children:(0,b.jsxs)(c,{appLink:i,analyticsData:l,analyticsOptions:s,onClick:e.onClick,preventFocus:e.preventFocus,className:e.appLinkClassName,openInNewTab:e.openInNewTab,forcePageLoad:e.forcePageLoad,children:[e.children,p&&(0,b.jsx)(W,{src:p,alt:d,forceLoad:a,preventLoad:o,extraClasses:u,errorFallbackImageSrc:e.errorFallbackImageSrc,errorFallbackImageClassName:e.errorFallbackImageClassName,onLoad:e.onLoad})]})})}var J=[`bg-pink`,`bg-orange`,`bg-green`,`bg-cyan`,`bg-teal`,`bg-blue`,`bg-indigo`,`bg-purple`];function oe(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,fillRule:`evenodd`,d:`M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z`,clipRule:`evenodd`})})}function Y(e){return(0,b.jsx)(`svg`,{...e,viewBox:`0 0 24 21`,children:(0,b.jsx)(`path`,{d:`M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5`,fill:`currentColor`})})}function se(e){return(0,b.jsx)(`svg`,{...e,children:(0,b.jsx)(`path`,{fill:`currentColor`,d:`M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17`})})}function X(e,t){return t[e.charCodeAt(0)%t.length]}var Z={baseFallbackContainer:`_baseFallbackContainer_14tjv_1`,svgFallbackContainer:`_svgFallbackContainer_14tjv_1`,subjectFallbackContainer:`_subjectFallbackContainer_14tjv_9`,subjectFallbackContainerSmall:`_subjectFallbackContainerSmall_14tjv_18`,subjectFallbackContainerLarge:`_subjectFallbackContainerLarge_14tjv_21`,seriesItemFallback:`_seriesItemFallback_14tjv_24`,playlistItemFallback:`_playlistItemFallback_14tjv_24`,playlistFallback:`_playlistFallback_14tjv_28`,posterFallback:`_posterFallback_14tjv_29`,subjectFallback:`_subjectFallback_14tjv_9`,fallbackThumbnailImage:`_fallbackThumbnailImage_14tjv_47`,videoFallback:`_videoFallback_14tjv_55`,folderFallback:`_folderFallback_14tjv_56`},ce=function(e){return e[e.Playlist=0]=`Playlist`,e[e.PlaylistThumbnail=1]=`PlaylistThumbnail`,e[e.Series=2]=`Series`,e[e.SeriesThumbnail=3]=`SeriesThumbnail`,e[e.Subject=4]=`Subject`,e[e.TallSubject=5]=`TallSubject`,e[e.Video=6]=`Video`,e[e.Folder=7]=`Folder`,e}({});function le(e,t,n){if(t===4){let e=n===0?Z.subjectFallbackContainerLarge:Z.subjectFallbackContainerSmall;return`${Z.subjectFallbackContainer} ${e}`}return e===0?t===3||t===1?`${Z.svgFallbackContainer} rounded-3`:Z.svgFallbackContainer:Z.baseFallbackContainer}function ue(e){return e===3?Z.seriesItemFallback:e===1?Z.playlistItemFallback:e===0?Z.playlistFallback:e===2||e===5?Z.posterFallback:e===4?`${Z.subjectFallback} svg-container d-inline-block`:``}function Q(e){return e===3||e===1?oe:e===0?Y:e===2?se:e===4||e===5?_:null}function de(e){return e===4?i.ExtraLarge:i.Standard}$.defaultProps={mediaType:0,containerClassSize:0};function $(e){let{type:t,mediaType:n,extraClasses:r,containerClassSize:i}=e;if(t===6)return(0,b.jsx)(`div`,{className:`${Z.videoFallback} ${e.extraClasses} bg-light-blue`});if(t===7)return(0,b.jsx)(`div`,{className:`${Z.folderFallback} ${e.extraClasses} ${X(e.name,J)}`});let a=ue(t),o=Q(t),c=de(t),l=`${le(n,t,i)}`;return r&&(l+=` ${e.extraClasses}`),(0,b.jsx)(`div`,{className:l,children:n===0?(0,b.jsx)(s,{svg:o,className:`${a} ${e.svgContainerClassName??``}`,tagName:`div`,size:c}):(0,b.jsx)(`div`,{className:Z.fallbackThumbnailImage,style:{backgroundImage:`url('${o}')`}})})}export{J as a,A as c,S as d,Y as i,E as l,ce as n,q as o,X as r,z as s,$ as t,w as u};
2
+ //# sourceMappingURL=B7UvjDWk.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DATsYYMP.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/VideoSource.ts","../../../../libs/shared/src/images/svg/objects/TrendingSvg.tsx","../../../../libs/shared/src/images/svg/status/CloseCaptionBadgeSvg.tsx","../../../../libs/shared/src/enums/MasterObjectTypes.ts","../../../../libs/shared/src/enums/ResourceFileType.ts","../../../../libs/shared/src/images/svg/objects/FileExcelSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePdfSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePptSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileWordSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileZipSvg.tsx","../../../../libs/shared/src/utils/VideoDetailsHelper.ts","../../../../libs/shared/src/components/badges/Badge.tsx","../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/lazy-image.module.scss","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx","../../../../libs/shared/src/components/image/image.module.scss","../../../../libs/shared/src/components/image/BaseImage.tsx","../../../../libs/shared/src/constants/ColourClassNames.ts","../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/utils/getBgColorClass.ts","../../../../libs/shared/src/components/image/image-fallback.module.scss","../../../../libs/shared/src/components/image/ImageFallback.tsx"],"sourcesContent":["export enum VideoSource {\n Exchange = 'exchange',\n Streamable = 'streamable',\n MoviesAndTv = 'movies_and_tv',\n Twig = 'twig',\n Espresso = 'espresso'\n}\n","import React from 'react';\n\nexport function TrendingSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function CloseCaptionBadgeSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","export enum MasterObjectTypes {\n Folder = 'category',\n CategoryTree = 'category_tree',\n CustomLibrary = 'custom_library',\n HostedLibrary = 'hosted_library',\n Exchange = 'exchange',\n Workspace = 'workspace',\n Video = 'video',\n Clip = 'clip',\n Interactive = 'interactive'\n}\n","// File types match metadata for a resource FileApi\nexport enum ResourceFileType {\n Pdf = 'pdf',\n Image = 'image',\n PowerPoint = 'powerpoint',\n Document = 'document',\n Excel = 'excel',\n Zip = 'archive',\n File = 'text'\n}\n","import React from 'react';\n\nexport function FileExcelSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePdfSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePptSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileWordSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileZipSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Library, Video } from 'libs/shared/interfaces';\n\nimport { FileExcelSvg } from '../images/svg/objects/FileExcelSvg';\nimport { FileImgSvg } from '../images/svg/objects/FileImgSvg';\nimport { FilePdfSvg } from '../images/svg/objects/FilePdfSvg';\nimport { FilePptSvg } from '../images/svg/objects/FilePptSvg';\nimport { FileSvg } from '../images/svg/objects/FileSvg';\nimport { FileWordSvg } from '../images/svg/objects/FileWordSvg';\nimport { FileZipSvg } from '../images/svg/objects/FileZipSvg';\nimport { FolderSvg } from '../images/svg/objects/FolderSvg';\n\nconst lang = 'shared.shared-utils';\n\nexport const VideoDetailsHelper = {\n mapRatingToClass(ratingValue: number): string {\n if (!ratingValue) return '';\n\n const ratings = (rating: number): string => {\n switch (true) {\n case (rating < 32):\n return 'bg-purple';\n case (rating < 48):\n return 'bg-green';\n case (rating < 80):\n return 'bg-blue';\n case (rating < 96):\n return 'bg-red';\n case (rating < 128):\n return 'bg-pink';\n case (rating >= 128):\n return 'bg-yellow';\n default:\n return ''; // Handles unrated\n }\n };\n\n return ratings(ratingValue);\n },\n\n mapSourceToDisplayName(library: Library, hasLite?: boolean): string {\n switch (library.type) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return library.name;\n case MasterObjectTypes.Exchange:\n return LanguageService.getPhrase(lang, 'exchange');\n case MasterObjectTypes.Workspace:\n return LanguageService.getPhrase(lang, hasLite ? 'myVideos' : 'workspace');\n default:\n return '';\n }\n },\n\n mapSourceToClass(sourceType: MasterObjectTypes | 'online_supplementary_library'): string {\n switch (sourceType) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return 'bg-blue';\n case MasterObjectTypes.Exchange:\n return 'bg-green';\n case MasterObjectTypes.Workspace:\n default:\n return 'bg-red';\n }\n },\n\n isInteractive(video: Video): boolean {\n return !!video?.interactives?.data?.length;\n },\n\n mapTypeToSvg(type: string): any {\n const types: HashObject = {\n [ResourceFileType.Pdf]: FilePdfSvg,\n [ResourceFileType.Image]: FileImgSvg,\n [ResourceFileType.PowerPoint]: FilePptSvg,\n [ResourceFileType.Document]: FileWordSvg,\n [ResourceFileType.Excel]: FileExcelSvg,\n [ResourceFileType.Zip]: FileZipSvg,\n [ResourceFileType.File]: FileSvg\n };\n\n let mappedType = types[type];\n\n if (!mappedType)\n mappedType = FolderSvg;\n\n return mappedType;\n },\n\n mapTypeToClass(type: string): any {\n switch (type) {\n case ResourceFileType.Pdf:\n return 'icon-red';\n\n case ResourceFileType.Image:\n return 'icon-purple';\n\n case ResourceFileType.Document:\n return 'icon-blue';\n\n case ResourceFileType.Excel:\n return 'icon-green';\n\n case ResourceFileType.PowerPoint:\n return 'icon-orange';\n\n case ResourceFileType.Zip:\n return 'icon-teal';\n\n case ResourceFileType.File:\n return 'icon-gray';\n\n default:\n return '';\n }\n },\n\n mapTypeToExtension(type: string): string {\n if (!type) return '';\n\n const extensions: HashObject = {\n pdf: 'pdf',\n image: 'png',\n powerpoint: 'pptx'\n };\n\n return extensions[type.toLowerCase()];\n },\n\n mapTypeToName(type: string): string {\n if (!type) return '';\n\n switch (type) {\n case ResourceFileType.Pdf: return LanguageService.getPhrase(lang, 'pdf');\n case ResourceFileType.Image: return LanguageService.getPhrase(lang, 'image');\n case ResourceFileType.Document: return LanguageService.getPhrase(lang, 'document');\n case ResourceFileType.Excel: return LanguageService.getPhrase(lang, 'spreadsheet');\n case ResourceFileType.PowerPoint: return LanguageService.getPhrase(lang, 'presentation');\n case ResourceFileType.Zip: return LanguageService.getPhrase(lang, 'zipArchive');\n case ResourceFileType.File: return LanguageService.getPhrase(lang, 'file');\n\n default:\n return '';\n }\n }\n};\n","import * as React from 'react';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { VideoSource } from 'libs/shared/enums/VideoSource';\nimport { TrendingSvg } from 'libs/shared/images/svg/objects/TrendingSvg';\nimport { CloseCaptionBadgeSvg } from 'libs/shared/images/svg/status/CloseCaptionBadgeSvg';\nimport { DashboardStatus, Rating } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './badge.module.scss';\n\nconst namespace = 'shared.badges';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum BadgeType {\n DurationExact = 'duration-exact',\n DurationApproximate = 'duration-approximate',\n Interactive = 'interactive',\n Rating = 'rating',\n ProductionYear = 'production-year',\n Captions = 'captions',\n Status = 'status',\n Trending = 'trending',\n Count = 'count',\n RoundCount = 'round-count',\n Restriction = 'restriction',\n Source = 'source'\n}\n\ntype BadgeSize = 'xs' | 'sm' | 'std' | 'lg';\n\ninterface BadgeProps {\n type: BadgeType;\n data: any;\n inline?: boolean;\n className?: string;\n /**\n * Only Trending badge supports this attribute atm\n */\n size?: BadgeSize;\n}\n\ninterface TooltipOptions {\n placement: Placement;\n title: string;\n}\n\nconst badgeSvgContainerSizeMap: {[key in BadgeSize]: SvgContainerSize } = {\n xs: SvgContainerSize.ExtraSmall,\n sm: SvgContainerSize.Small,\n std: SvgContainerSize.Standard,\n lg: SvgContainerSize.Large\n};\n\nconst badgeSizeClassNameMap: {[key in BadgeSize]: string } = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n std: 'badge-std',\n lg: 'badge-lg'\n};\n\nfunction getStatusClassName(status: CurationStatus | DashboardStatus): string {\n switch (status) {\n case CurationStatus.Published:\n case DashboardStatus.Published:\n return 'bg-success';\n\n case CurationStatus.Archived:\n case CurationStatus.Rejected:\n case DashboardStatus.Archived:\n return 'bg-danger';\n\n case CurationStatus.Draft:\n case DashboardStatus.Draft:\n return 'draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n case CurationStatus.Pending:\n case CurationStatus.Processing:\n return 'bg-warning';\n }\n}\n\nfunction getSourceClassName(sources: VideoSource[]): string {\n if (sources.includes(VideoSource.Streamable))\n return `px-1 text-nowrap d-flex align-items-center ${styles.streamable}`;\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'bg-indigo text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Exchange))\n return 'bg-orange text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Twig))\n return `bg-pink text-white px-1 text-nowrap d-flex align-items-center`;\n\n if (sources.includes(VideoSource.Espresso))\n return `bg-navy text-white px-1 text-nowrap d-flex align-items-center`;\n\n return '';\n}\n\nfunction getClassName(type: BadgeType, data: any, size: BadgeSize): string {\n const baseClass = 'badge';\n const sizeClass = badgeSizeClassNameMap[size];\n\n let typeClass = '';\n\n if (type === BadgeType.DurationApproximate)\n typeClass = 'duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n if (type === BadgeType.DurationExact)\n typeClass = 'duration-badge';\n\n if (type === BadgeType.Interactive)\n typeClass = 'interactive-badge';\n\n if (type === BadgeType.Rating)\n typeClass = `rating-badge text-shadow ${VideoDetailsHelper.mapRatingToClass((data as Rating).value)}`;\n\n if (type === BadgeType.ProductionYear)\n typeClass = 'production-year-badge text-shadow';\n\n if (type === BadgeType.Captions)\n return 'p-0';\n\n if (type === BadgeType.Status)\n return `badge ${getStatusClassName(data)}`;\n\n if (type === BadgeType.Trending)\n return `trending-badge px-1 d-flex align-items-center ${sizeClass}`;\n\n if (type === BadgeType.Count)\n typeClass = 'count-badge px-1 rounded';\n\n if (type === BadgeType.RoundCount)\n typeClass = 'round-badge rounded-circle';\n\n if (type === BadgeType.Restriction) {\n const restrictionBgClass = RestrictionHelper.mapRestrictionToClass(data.restrictions);\n return classNames('restriction-badge rounded-pill px-2 d-flex align-items-center', restrictionBgClass);\n }\n \n if (type === BadgeType.Source)\n typeClass = getSourceClassName(data);\n\n return classNames(baseClass, typeClass);\n}\n\nfunction getBadgeContent(type: BadgeType, data: any, size: BadgeSize): string | JSX.Element {\n if (type === BadgeType.Interactive)\n return getPhrase('interactive');\n\n if (type === BadgeType.DurationApproximate)\n return DurationHelper.ToDisplayDurationNewStyle(data);\n\n if (type === BadgeType.DurationExact)\n return DurationHelper.ToDisplayDuration(data);\n\n if (type === BadgeType.Rating)\n return (data as Rating).code; // data expected to be a rating object\n\n if (type === BadgeType.ProductionYear)\n return data; // data should be the production year\n\n if (type === BadgeType.Captions)\n return <SvgContainer svg={CloseCaptionBadgeSvg} />;\n\n if (type === BadgeType.Status) {\n if (typeof(data) === 'number') {\n return CurationStatus[data];\n }\n return data;\n }\n\n if (type === BadgeType.Trending)\n return (\n <>\n <SvgContainer svg={TrendingSvg} size={badgeSvgContainerSizeMap[size]} />\n <span className='ps-1'>{data}</span>\n </>\n );\n\n if (type === BadgeType.Count || type === BadgeType.RoundCount)\n return data;\n\n if (type === BadgeType.Restriction)\n return (\n <>\n <SvgContainer\n svg={RestrictionHelper.mapRestrictionToSvg(data.restrictions)}\n />\n <span>\n {RestrictionHelper.mapRestrictionToText(data.restrictions, data.yearGroups)}\n </span>\n </>\n );\n\n if (type === BadgeType.Source) {\n const sources = data as VideoSource[];\n\n if (sources.includes(VideoSource.Streamable))\n return 'streamable';\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'movies + tv';\n\n if (sources.includes(VideoSource.Exchange))\n return 'exchange';\n\n if (sources.includes(VideoSource.Twig))\n return 'twig';\n\n if (sources.includes(VideoSource.Espresso))\n return 'espresso';\n\n return '-';\n }\n}\n\nfunction getTooltip(type: BadgeType, data: any): TooltipOptions {\n if (type === BadgeType.Rating)\n return {\n title: (data as Rating).name,\n placement: 'top'\n };\n\n return null;\n}\n\nfunction hasData(type: BadgeType, data: any): boolean {\n if (typeof(data) === 'boolean')\n return !!data;\n\n if (type === BadgeType.Rating)\n return data && !!(data as Rating).value;\n\n if (type === BadgeType.Interactive)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Captions)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Status)\n return typeof(data) === 'number' || typeof(data) === 'string';\n\n return !!data;\n}\n\nexport function Badge(props: BadgeProps): JSX.Element {\n const { type, data, size = 'std' } = props;\n \n if (!hasData(type, data))\n return <></>;\n\n let className = getClassName(type, data, size);\n className = `${className} ${props.inline ? 'd-inline-block' : 'd-flex justify-content-center'} ${props.className || ''}`;\n const content = getBadgeContent(type, data, size);\n const tooltip = getTooltip(type, data);\n const spanHackClassName = props.inline && 'd-inline-block';\n\n if (tooltip) {\n return (\n <div className='badge-wrapper d-inline'>\n <Tooltip {...tooltip} spanHack spanHackClassName={spanHackClassName}>\n <span className={className}>{content}</span>\n </Tooltip>\n </div>\n );\n }\n\n return <span className={`${className} badge-wrapper`}>{content}</span>;\n}\n","import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}\n",":local {\n .image {\n width: 100%;\n height: 100%;\n }\n}\n","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});\n",":local {\n .image {\n position: relative;\n width: 100%;\n height: 100%;\n\n :global(img) {\n position: absolute;\n top: 0; \n bottom: 0; \n left: 0; \n right: 0;\n }\n }\n\n // Aspect Ratios\n .thumbnail {\n padding-bottom: 56.25%;\n }\n\n .tallPoster {\n padding-bottom: 177.77778%;\n }\n\n .cover {\n padding-bottom: 100%;\n }\n\n .banner {\n padding-bottom: 18.50%\n }\n\n .poster {\n padding-bottom: 150%;\n }\n\n .pdf {\n :global(img) {\n height: auto;\n }\n }\n\n .link {\n :global(img) {\n width: auto;\n margin: 0 auto;\n }\n }\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { Image } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './image.module.scss';\n\nfunction getImageClassName(props: BaseImageProps): string {\n let className = styles.image;\n\n let imageTypeClassName = '';\n\n if (props.imageType === ImageType.Thumbnails)\n imageTypeClassName = `thumbnail ${styles.thumbnail}`;\n\n if (props.imageType === ImageType.TallPosters)\n imageTypeClassName = styles.tallPoster;\n\n if (props.imageType === ImageType.Covers)\n imageTypeClassName = styles.cover;\n\n if (props.imageType === ImageType.Banners)\n imageTypeClassName = styles.banner;\n\n if (props.imageType === ImageType.Posters)\n imageTypeClassName = styles.poster;\n\n if (props.imageType === ImageType.Pdf)\n imageTypeClassName = styles.pdf;\n\n if (props.imageType === ImageType.Link)\n imageTypeClassName = styles.link;\n\n if (imageTypeClassName)\n className += ` ${imageTypeClassName}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return className;\n}\n\ninterface BaseImageProps {\n data: Image | string;\n imageOptions?: ImageOptions;\n appLink?: Core.AppLink;\n imageType?: ImageType;\n className?: string;\n imageClassName?: string;\n imageStyle?: HashObject;\n preload?: boolean;\n preventLoad?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n alt?: string;\n preventFocus?: boolean;\n appLinkClassName?: string;\n onClick?: () => void;\n onLoad?: () => void;\n openInNewTab?: boolean;\n forcePageLoad?: boolean;\n}\n\nexport function BaseImage(props: React.PropsWithChildren<BaseImageProps>): React.ReactElement {\n const {\n data,\n imageOptions,\n appLink,\n preload,\n preventLoad,\n analyticsOptions,\n analyticsData,\n imageClassName,\n alt\n } = props;\n\n let url = '';\n\n if (typeof data === 'string') {\n url = data;\n } else if (ObjectHelper.isObject(data)) {\n url = data.url;\n }\n\n const imageUrl = (url && imageOptions) ? ImageHelper.createUrl(url, imageOptions) : url;\n\n return (\n <div className={getImageClassName(props)} style={props.imageStyle}>\n <AppLink\n appLink={appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n onClick={props.onClick}\n preventFocus={props.preventFocus}\n className={props.appLinkClassName}\n openInNewTab={props.openInNewTab}\n forcePageLoad={props.forcePageLoad}\n >\n {props.children}\n {imageUrl && (\n <LazyImage\n src={imageUrl}\n alt={alt}\n forceLoad={preload}\n preventLoad={preventLoad}\n extraClasses={imageClassName}\n errorFallbackImageSrc={props.errorFallbackImageSrc}\n errorFallbackImageClassName={props.errorFallbackImageClassName}\n onLoad={props.onLoad}\n />\n )}\n </AppLink>\n </div>\n );\n}\n\n","/**\n * Use this instead of the list below if you need to render the clickview logo\n * on the background you're rendering.\n */\nexport const LOGO_SAFE_BG_CLASS_NAMES = [\n 'bg-green',\n 'bg-cyan',\n 'bg-teal',\n 'bg-blue',\n 'bg-indigo',\n 'bg-purple'\n];\n\nexport const BG_COLOUR_CLASS_NAMES = [\n 'bg-pink',\n 'bg-orange',\n ...LOGO_SAFE_BG_CLASS_NAMES\n];\n","import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","export function getBgColorClass(name: string, classNames: string[]): string {\n return classNames[name.charCodeAt(0) % classNames.length];\n}\n\nexport function getDeterministicBgColorClass(name: string, classNames: string[]): string {\n const sum = name\n .split('')\n .reduce(\n (acc, char) => acc + char.charCodeAt(0),\n 0\n );\n \n return classNames[sum % classNames.length];\n}\n",":local {\n .baseFallbackContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n .svgFallbackContainer {\n @extend .baseFallbackContainer;\n background-color: $gray-100;\n }\n\n .subjectFallbackContainer {\n background-color: $gray-100;\n height: 100%;\n border-top-left-radius: $border-radius-lg;\n border-bottom-left-radius: $border-radius-lg;\n\n position: absolute;\n top: 0;\n left: 0;\n\n &Small {\n width: 2rem;\n }\n\n &Large {\n width: 5rem;\n }\n }\n\n .seriesItemFallback, .playlistItemFallback {\n @extend %icon;\n width: 3.75rem;\n height: 3.75rem;\n }\n\n .playlistFallback,\n .posterFallback { // poster fallback is used by series' & and subjects tall poster's\n @extend %icon;\n width: 7.5rem;\n height: 7.5rem;\n\n svg {\n width: 100%;\n height: 100%;\n }\n }\n\n .subjectFallback {\n @extend %icon;\n }\n\n %icon {\n position: absolute;\n top: 50%;\n left: 50%;\n color: $gray-400;\n transform: translate3D(-50%, -50%, 0);\n transition: opacity 100ms ease-in-out;\n }\n\n .fallbackThumbnailImage {\n padding: map-get($spacers, 1);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n }\n\n .videoFallback,\n .folderFallback {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n}","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large ?\n styles.subjectFallbackContainerLarge :\n styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize;\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg ?\n (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"B7UvjDWk.chunk.js","names":[],"sources":["../../../../libs/shared/src/enums/VideoSource.ts","../../../../libs/shared/src/images/svg/objects/TrendingSvg.tsx","../../../../libs/shared/src/images/svg/status/CloseCaptionBadgeSvg.tsx","../../../../libs/shared/src/enums/MasterObjectTypes.ts","../../../../libs/shared/src/enums/ResourceFileType.ts","../../../../libs/shared/src/images/svg/objects/FileExcelSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePdfSvg.tsx","../../../../libs/shared/src/images/svg/objects/FilePptSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileWordSvg.tsx","../../../../libs/shared/src/images/svg/objects/FileZipSvg.tsx","../../../../libs/shared/src/utils/VideoDetailsHelper.ts","../../../../libs/shared/src/components/badges/Badge.tsx","../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/lazy-image.module.scss","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx","../../../../libs/shared/src/components/image/image.module.scss","../../../../libs/shared/src/components/image/BaseImage.tsx","../../../../libs/shared/src/constants/ColourClassNames.ts","../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/utils/getBgColorClass.ts","../../../../libs/shared/src/components/image/image-fallback.module.scss","../../../../libs/shared/src/components/image/ImageFallback.tsx"],"sourcesContent":["export enum VideoSource {\n Exchange = 'exchange',\n Streamable = 'streamable',\n MoviesAndTv = 'movies_and_tv',\n Twig = 'twig',\n Espresso = 'espresso'\n}\n","import React from 'react';\n\nexport function TrendingSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M15.333 7.333a.667.667 0 1 0 0 1.334h2.39L13 13.39l-2.862-2.862a.667.667 0 0 0-.943 0l-5 5a.667.667 0 1 0 .943.942l4.529-4.528 2.862 2.862c.26.26.682.26.942 0l5.196-5.196V12A.667.667 0 0 0 20 12V8a.667.667 0 0 0-.667-.666z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function CloseCaptionBadgeSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M7.5 5A2.5 2.5 0 0 0 5 7.5v9A2.5 2.5 0 0 0 7.5 19h9a2.5 2.5 0 0 0 2.5-2.5v-9A2.5 2.5 0 0 0 16.5 5zm0-1h9A3.5 3.5 0 0 1 20 7.5v9a3.5 3.5 0 0 1-3.5 3.5h-9A3.5 3.5 0 0 1 4 16.5v-9A3.5 3.5 0 0 1 7.5 4M11 9a.5.5 0 1 1 0 1H9.5A1.5 1.5 0 0 0 8 11.5v1A1.5 1.5 0 0 0 9.5 14H11a.5.5 0 1 1 0 1H9.5A2.5 2.5 0 0 1 7 12.5v-1A2.5 2.5 0 0 1 9.5 9zm5 0a.5.5 0 1 1 0 1h-1.5a1.5 1.5 0 0 0-1.5 1.5v1a1.5 1.5 0 0 0 1.5 1.5H16a.5.5 0 1 1 0 1h-1.5a2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 14.5 9z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","export enum MasterObjectTypes {\n Folder = 'category',\n CategoryTree = 'category_tree',\n CustomLibrary = 'custom_library',\n HostedLibrary = 'hosted_library',\n Exchange = 'exchange',\n Workspace = 'workspace',\n Video = 'video',\n Clip = 'clip',\n Interactive = 'interactive'\n}\n","// File types match metadata for a resource FileApi\nexport enum ResourceFileType {\n Pdf = 'pdf',\n Image = 'image',\n PowerPoint = 'powerpoint',\n Document = 'document',\n Excel = 'excel',\n Zip = 'archive',\n File = 'text'\n}\n","import React from 'react';\n\nexport function FileExcelSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.09 7-2.3-3.4h1.82l1.4 2.28 1.45-2.28h1.72l-2.29 3.41 2.49 3.73h-1.87l-1.56-2.47-1.59 2.47H8.6z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePdfSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.833 15.006c-.328.765-.657 1.316-.997 1.619-.35.312-.762.394-1.138.15a1.4 1.4 0 0 1-.358-.322c-.298-.402-.194-.843.165-1.2.228-.227.563-.433.983-.63.226-.106.466-.204.706-.292q.213-.539.43-1.205a42 42 0 0 0 .866-3.123c-.435-.563-.75-1.057-.924-1.473-.28-.67-.211-1.242.372-1.494.56-.24 1.047-.086 1.307.391.17.312.234.736.231 1.26a8 8 0 0 1-.086 1.088q.238.293.513.606a31 31 0 0 0 1.73 1.81 14 14 0 0 0 .863.761q.697-.106 1.213-.105c.947.002 1.554.319 1.415 1.079-.107.585-.514.888-1.06.834-.365-.036-.781-.224-1.259-.532a9 9 0 0 1-.538-.38 21 21 0 0 0-.944.191q-.586.131-1.22.3a45 45 0 0 0-2.27.667M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm4.43 8.39q-.104.315-.207.606l.055-.016a46 46 0 0 1 1.608-.459 34 34 0 0 1 1.538-.37 16 16 0 0 1-.378-.35 32 32 0 0 1-1.882-1.98l-.083.32a39 39 0 0 1-.652 2.248zm-2.157 2.603q.18-.162.382-.51a2.4 2.4 0 0 0-.553.37c-.092.092-.09.086-.083.096a.5.5 0 0 0 .138.116c.017.01.025.01.116-.072m7.434-2.3q-.07 0-.146.002c.242.132.443.209.585.223.11.011.118.005.146-.145.005-.027-.095-.079-.585-.08m-5.36-5.49q.098.235.283.53v-.05c.003-.393-.044-.696-.128-.85-.046-.086-.063-.091-.23-.02-.04.018-.05.092.075.39'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FilePptSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5.07 6.96h1.22q.27 0 .52-.04a1.2 1.2 0 0 0 .44-.155.84.84 0 0 0 .305-.325q.115-.21.115-.55t-.115-.55a.84.84 0 0 0-.305-.325 1.2 1.2 0 0 0-.44-.155 3 3 0 0 0-.52-.04h-1.22zM9.5 8.6h3.22q.67 0 1.14.195t.765.515.43.73a2.7 2.7 0 0 1 0 1.695q-.135.415-.43.735a2.1 2.1 0 0 1-.765.515q-.47.195-1.14.195h-1.65v2.56H9.5z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h7l6 5v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m6.586 1H6v14h12V9.414zM13 10h3.5a.5.5 0 1 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 1 1 1 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileWordSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm8.77 10.74h-1.56L12 10.88h-.02l-1.19 4.86H9.2L7.31 8.6h1.57l1.13 4.86h.02l1.24-4.86h1.47l1.22 4.92h.02l1.17-4.92h1.54z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function FileZipSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M6 4h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m0 1v14h12V5zm5 0h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1zm-1 1h1v1h-1zm1 1h1v1h-1z'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Library, Video } from 'libs/shared/interfaces';\n\nimport { FileExcelSvg } from '../images/svg/objects/FileExcelSvg';\nimport { FileImgSvg } from '../images/svg/objects/FileImgSvg';\nimport { FilePdfSvg } from '../images/svg/objects/FilePdfSvg';\nimport { FilePptSvg } from '../images/svg/objects/FilePptSvg';\nimport { FileSvg } from '../images/svg/objects/FileSvg';\nimport { FileWordSvg } from '../images/svg/objects/FileWordSvg';\nimport { FileZipSvg } from '../images/svg/objects/FileZipSvg';\nimport { FolderSvg } from '../images/svg/objects/FolderSvg';\n\nconst lang = 'shared.shared-utils';\n\nexport const VideoDetailsHelper = {\n mapRatingToClass(ratingValue: number): string {\n if (!ratingValue) return '';\n\n const ratings = (rating: number): string => {\n switch (true) {\n case (rating < 32):\n return 'bg-purple';\n case (rating < 48):\n return 'bg-green';\n case (rating < 80):\n return 'bg-blue';\n case (rating < 96):\n return 'bg-red';\n case (rating < 128):\n return 'bg-pink';\n case (rating >= 128):\n return 'bg-yellow';\n default:\n return ''; // Handles unrated\n }\n };\n\n return ratings(ratingValue);\n },\n\n mapSourceToDisplayName(library: Library, hasLite?: boolean): string {\n switch (library.type) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return library.name;\n case MasterObjectTypes.Exchange:\n return LanguageService.getPhrase(lang, 'exchange');\n case MasterObjectTypes.Workspace:\n return LanguageService.getPhrase(lang, hasLite ? 'myVideos' : 'workspace');\n default:\n return '';\n }\n },\n\n mapSourceToClass(sourceType: MasterObjectTypes | 'online_supplementary_library'): string {\n switch (sourceType) {\n case MasterObjectTypes.HostedLibrary:\n case MasterObjectTypes.CustomLibrary:\n return 'bg-blue';\n case MasterObjectTypes.Exchange:\n return 'bg-green';\n case MasterObjectTypes.Workspace:\n default:\n return 'bg-red';\n }\n },\n\n isInteractive(video: Video): boolean {\n return !!video?.interactives?.data?.length;\n },\n\n mapTypeToSvg(type: string): any {\n const types: HashObject = {\n [ResourceFileType.Pdf]: FilePdfSvg,\n [ResourceFileType.Image]: FileImgSvg,\n [ResourceFileType.PowerPoint]: FilePptSvg,\n [ResourceFileType.Document]: FileWordSvg,\n [ResourceFileType.Excel]: FileExcelSvg,\n [ResourceFileType.Zip]: FileZipSvg,\n [ResourceFileType.File]: FileSvg\n };\n\n let mappedType = types[type];\n\n if (!mappedType)\n mappedType = FolderSvg;\n\n return mappedType;\n },\n\n mapTypeToClass(type: string): any {\n switch (type) {\n case ResourceFileType.Pdf:\n return 'icon-red';\n\n case ResourceFileType.Image:\n return 'icon-purple';\n\n case ResourceFileType.Document:\n return 'icon-blue';\n\n case ResourceFileType.Excel:\n return 'icon-green';\n\n case ResourceFileType.PowerPoint:\n return 'icon-orange';\n\n case ResourceFileType.Zip:\n return 'icon-teal';\n\n case ResourceFileType.File:\n return 'icon-gray';\n\n default:\n return '';\n }\n },\n\n mapTypeToExtension(type: string): string {\n if (!type) return '';\n\n const extensions: HashObject = {\n pdf: 'pdf',\n image: 'png',\n powerpoint: 'pptx'\n };\n\n return extensions[type.toLowerCase()];\n },\n\n mapTypeToName(type: string): string {\n if (!type) return '';\n\n switch (type) {\n case ResourceFileType.Pdf: return LanguageService.getPhrase(lang, 'pdf');\n case ResourceFileType.Image: return LanguageService.getPhrase(lang, 'image');\n case ResourceFileType.Document: return LanguageService.getPhrase(lang, 'document');\n case ResourceFileType.Excel: return LanguageService.getPhrase(lang, 'spreadsheet');\n case ResourceFileType.PowerPoint: return LanguageService.getPhrase(lang, 'presentation');\n case ResourceFileType.Zip: return LanguageService.getPhrase(lang, 'zipArchive');\n case ResourceFileType.File: return LanguageService.getPhrase(lang, 'file');\n\n default:\n return '';\n }\n }\n};\n","import * as React from 'react';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { VideoSource } from 'libs/shared/enums/VideoSource';\nimport { TrendingSvg } from 'libs/shared/images/svg/objects/TrendingSvg';\nimport { CloseCaptionBadgeSvg } from 'libs/shared/images/svg/status/CloseCaptionBadgeSvg';\nimport { DashboardStatus, Rating } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './badge.module.scss';\n\nconst namespace = 'shared.badges';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum BadgeType {\n DurationExact = 'duration-exact',\n DurationApproximate = 'duration-approximate',\n Interactive = 'interactive',\n Rating = 'rating',\n ProductionYear = 'production-year',\n Captions = 'captions',\n Status = 'status',\n Trending = 'trending',\n Count = 'count',\n RoundCount = 'round-count',\n Restriction = 'restriction',\n Source = 'source'\n}\n\ntype BadgeSize = 'xs' | 'sm' | 'std' | 'lg';\n\ninterface BadgeProps {\n type: BadgeType;\n data: any;\n inline?: boolean;\n className?: string;\n /**\n * Only Trending badge supports this attribute atm\n */\n size?: BadgeSize;\n}\n\ninterface TooltipOptions {\n placement: Placement;\n title: string;\n}\n\nconst badgeSvgContainerSizeMap: {[key in BadgeSize]: SvgContainerSize } = {\n xs: SvgContainerSize.ExtraSmall,\n sm: SvgContainerSize.Small,\n std: SvgContainerSize.Standard,\n lg: SvgContainerSize.Large\n};\n\nconst badgeSizeClassNameMap: {[key in BadgeSize]: string } = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n std: 'badge-std',\n lg: 'badge-lg'\n};\n\nfunction getStatusClassName(status: CurationStatus | DashboardStatus): string {\n switch (status) {\n case CurationStatus.Published:\n case DashboardStatus.Published:\n return 'bg-success';\n\n case CurationStatus.Archived:\n case CurationStatus.Rejected:\n case DashboardStatus.Archived:\n return 'bg-danger';\n\n case CurationStatus.Draft:\n case DashboardStatus.Draft:\n return 'draft-badge px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n case CurationStatus.Pending:\n case CurationStatus.Processing:\n return 'bg-warning';\n }\n}\n\nfunction getSourceClassName(sources: VideoSource[]): string {\n if (sources.includes(VideoSource.Streamable))\n return `px-1 text-nowrap d-flex align-items-center ${styles.streamable}`;\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'bg-indigo text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Exchange))\n return 'bg-orange text-white px-1 text-nowrap d-flex align-items-center';\n\n if (sources.includes(VideoSource.Twig))\n return `bg-pink text-white px-1 text-nowrap d-flex align-items-center`;\n\n if (sources.includes(VideoSource.Espresso))\n return `bg-navy text-white px-1 text-nowrap d-flex align-items-center`;\n\n return '';\n}\n\nfunction getClassName(type: BadgeType, data: any, size: BadgeSize): string {\n const baseClass = 'badge';\n const sizeClass = badgeSizeClassNameMap[size];\n\n let typeClass = '';\n\n if (type === BadgeType.DurationApproximate)\n typeClass = 'duration-badge-new px-2 rounded-pill text-nowrap d-flex align-items-center';\n\n if (type === BadgeType.DurationExact)\n typeClass = 'duration-badge';\n\n if (type === BadgeType.Interactive)\n typeClass = 'interactive-badge';\n\n if (type === BadgeType.Rating)\n typeClass = `rating-badge text-shadow ${VideoDetailsHelper.mapRatingToClass((data as Rating).value)}`;\n\n if (type === BadgeType.ProductionYear)\n typeClass = 'production-year-badge text-shadow';\n\n if (type === BadgeType.Captions)\n return 'p-0';\n\n if (type === BadgeType.Status)\n return `badge ${getStatusClassName(data)}`;\n\n if (type === BadgeType.Trending)\n return `trending-badge px-1 d-flex align-items-center ${sizeClass}`;\n\n if (type === BadgeType.Count)\n typeClass = 'count-badge px-1 rounded';\n\n if (type === BadgeType.RoundCount)\n typeClass = 'round-badge rounded-circle';\n\n if (type === BadgeType.Restriction) {\n const restrictionBgClass = RestrictionHelper.mapRestrictionToClass(data.restrictions);\n return classNames('restriction-badge rounded-pill px-2 d-flex align-items-center', restrictionBgClass);\n }\n \n if (type === BadgeType.Source)\n typeClass = getSourceClassName(data);\n\n return classNames(baseClass, typeClass);\n}\n\nfunction getBadgeContent(type: BadgeType, data: any, size: BadgeSize): string | JSX.Element {\n if (type === BadgeType.Interactive)\n return getPhrase('interactive');\n\n if (type === BadgeType.DurationApproximate)\n return DurationHelper.ToDisplayDurationNewStyle(data);\n\n if (type === BadgeType.DurationExact)\n return DurationHelper.ToDisplayDuration(data);\n\n if (type === BadgeType.Rating)\n return (data as Rating).code; // data expected to be a rating object\n\n if (type === BadgeType.ProductionYear)\n return data; // data should be the production year\n\n if (type === BadgeType.Captions)\n return <SvgContainer svg={CloseCaptionBadgeSvg} />;\n\n if (type === BadgeType.Status) {\n if (typeof(data) === 'number') {\n return CurationStatus[data];\n }\n return data;\n }\n\n if (type === BadgeType.Trending)\n return (\n <>\n <SvgContainer svg={TrendingSvg} size={badgeSvgContainerSizeMap[size]} />\n <span className='ps-1'>{data}</span>\n </>\n );\n\n if (type === BadgeType.Count || type === BadgeType.RoundCount)\n return data;\n\n if (type === BadgeType.Restriction)\n return (\n <>\n <SvgContainer\n svg={RestrictionHelper.mapRestrictionToSvg(data.restrictions)}\n />\n <span>\n {RestrictionHelper.mapRestrictionToText(data.restrictions, data.yearGroups)}\n </span>\n </>\n );\n\n if (type === BadgeType.Source) {\n const sources = data as VideoSource[];\n\n if (sources.includes(VideoSource.Streamable))\n return 'streamable';\n\n if (sources.includes(VideoSource.MoviesAndTv))\n return 'movies + tv';\n\n if (sources.includes(VideoSource.Exchange))\n return 'exchange';\n\n if (sources.includes(VideoSource.Twig))\n return 'twig';\n\n if (sources.includes(VideoSource.Espresso))\n return 'espresso';\n\n return '-';\n }\n}\n\nfunction getTooltip(type: BadgeType, data: any): TooltipOptions {\n if (type === BadgeType.Rating)\n return {\n title: (data as Rating).name,\n placement: 'top'\n };\n\n return null;\n}\n\nfunction hasData(type: BadgeType, data: any): boolean {\n if (typeof(data) === 'boolean')\n return !!data;\n\n if (type === BadgeType.Rating)\n return data && !!(data as Rating).value;\n\n if (type === BadgeType.Interactive)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Captions)\n return !!data?.length || !!data?.data?.length;\n\n if (type === BadgeType.Status)\n return typeof(data) === 'number' || typeof(data) === 'string';\n\n return !!data;\n}\n\nexport function Badge(props: BadgeProps): JSX.Element {\n const { type, data, size = 'std' } = props;\n \n if (!hasData(type, data))\n return <></>;\n\n let className = getClassName(type, data, size);\n className = `${className} ${props.inline ? 'd-inline-block' : 'd-flex justify-content-center'} ${props.className || ''}`;\n const content = getBadgeContent(type, data, size);\n const tooltip = getTooltip(type, data);\n const spanHackClassName = props.inline && 'd-inline-block';\n\n if (tooltip) {\n return (\n <div className='badge-wrapper d-inline'>\n <Tooltip {...tooltip} spanHack spanHackClassName={spanHackClassName}>\n <span className={className}>{content}</span>\n </Tooltip>\n </div>\n );\n }\n\n return <span className={`${className} badge-wrapper`}>{content}</span>;\n}\n","import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}\n",":local {\n .image {\n width: 100%;\n height: 100%;\n }\n}\n","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});\n",":local {\n .image {\n position: relative;\n width: 100%;\n height: 100%;\n\n :global(img) {\n position: absolute;\n top: 0; \n bottom: 0; \n left: 0; \n right: 0;\n }\n }\n\n // Aspect Ratios\n .thumbnail {\n padding-bottom: 56.25%;\n }\n\n .tallPoster {\n padding-bottom: 177.77778%;\n }\n\n .cover {\n padding-bottom: 100%;\n }\n\n .banner {\n padding-bottom: 18.50%\n }\n\n .poster {\n padding-bottom: 150%;\n }\n\n .pdf {\n :global(img) {\n height: auto;\n }\n }\n\n .link {\n :global(img) {\n width: auto;\n margin: 0 auto;\n }\n }\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { Image } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './image.module.scss';\n\nfunction getImageClassName(props: BaseImageProps): string {\n let className = styles.image;\n\n let imageTypeClassName = '';\n\n if (props.imageType === ImageType.Thumbnails)\n imageTypeClassName = `thumbnail ${styles.thumbnail}`;\n\n if (props.imageType === ImageType.TallPosters)\n imageTypeClassName = styles.tallPoster;\n\n if (props.imageType === ImageType.Covers)\n imageTypeClassName = styles.cover;\n\n if (props.imageType === ImageType.Banners)\n imageTypeClassName = styles.banner;\n\n if (props.imageType === ImageType.Posters)\n imageTypeClassName = styles.poster;\n\n if (props.imageType === ImageType.Pdf)\n imageTypeClassName = styles.pdf;\n\n if (props.imageType === ImageType.Link)\n imageTypeClassName = styles.link;\n\n if (imageTypeClassName)\n className += ` ${imageTypeClassName}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return className;\n}\n\ninterface BaseImageProps {\n data: Image | string;\n imageOptions?: ImageOptions;\n appLink?: Core.AppLink;\n imageType?: ImageType;\n className?: string;\n imageClassName?: string;\n imageStyle?: HashObject;\n preload?: boolean;\n preventLoad?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n alt?: string;\n preventFocus?: boolean;\n appLinkClassName?: string;\n onClick?: () => void;\n onLoad?: () => void;\n openInNewTab?: boolean;\n forcePageLoad?: boolean;\n}\n\nexport function BaseImage(props: React.PropsWithChildren<BaseImageProps>): React.ReactElement {\n const {\n data,\n imageOptions,\n appLink,\n preload,\n preventLoad,\n analyticsOptions,\n analyticsData,\n imageClassName,\n alt\n } = props;\n\n let url = '';\n\n if (typeof data === 'string') {\n url = data;\n } else if (ObjectHelper.isObject(data)) {\n url = data.url;\n }\n\n const imageUrl = (url && imageOptions) ? ImageHelper.createUrl(url, imageOptions) : url;\n\n return (\n <div className={getImageClassName(props)} style={props.imageStyle}>\n <AppLink\n appLink={appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n onClick={props.onClick}\n preventFocus={props.preventFocus}\n className={props.appLinkClassName}\n openInNewTab={props.openInNewTab}\n forcePageLoad={props.forcePageLoad}\n >\n {props.children}\n {imageUrl && (\n <LazyImage\n src={imageUrl}\n alt={alt}\n forceLoad={preload}\n preventLoad={preventLoad}\n extraClasses={imageClassName}\n errorFallbackImageSrc={props.errorFallbackImageSrc}\n errorFallbackImageClassName={props.errorFallbackImageClassName}\n onLoad={props.onLoad}\n />\n )}\n </AppLink>\n </div>\n );\n}\n\n","/**\n * Use this instead of the list below if you need to render the clickview logo\n * on the background you're rendering.\n */\nexport const LOGO_SAFE_BG_CLASS_NAMES = [\n 'bg-green',\n 'bg-cyan',\n 'bg-teal',\n 'bg-blue',\n 'bg-indigo',\n 'bg-purple'\n];\n\nexport const BG_COLOUR_CLASS_NAMES = [\n 'bg-pink',\n 'bg-orange',\n ...LOGO_SAFE_BG_CLASS_NAMES\n];\n","import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","export function getBgColorClass(name: string, classNames: string[]): string {\n return classNames[name.charCodeAt(0) % classNames.length];\n}\n\nexport function getDeterministicBgColorClass(name: string, classNames: string[]): string {\n const sum = name\n .split('')\n .reduce(\n (acc, char) => acc + char.charCodeAt(0),\n 0\n );\n \n return classNames[sum % classNames.length];\n}\n",":local {\n .baseFallbackContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n .svgFallbackContainer {\n @extend .baseFallbackContainer;\n background-color: $gray-100;\n }\n\n .subjectFallbackContainer {\n background-color: $gray-100;\n height: 100%;\n border-top-left-radius: $border-radius-lg;\n border-bottom-left-radius: $border-radius-lg;\n\n position: absolute;\n top: 0;\n left: 0;\n\n &Small {\n width: 2rem;\n }\n\n &Large {\n width: 5rem;\n }\n }\n\n .seriesItemFallback, .playlistItemFallback {\n @extend %icon;\n width: 3.75rem;\n height: 3.75rem;\n }\n\n .playlistFallback,\n .posterFallback { // poster fallback is used by series' & and subjects tall poster's\n @extend %icon;\n width: 7.5rem;\n height: 7.5rem;\n\n svg {\n width: 100%;\n height: 100%;\n }\n }\n\n .subjectFallback {\n @extend %icon;\n }\n\n %icon {\n position: absolute;\n top: 50%;\n left: 50%;\n color: $gray-400;\n transform: translate3D(-50%, -50%, 0);\n transition: opacity 100ms ease-in-out;\n }\n\n .fallbackThumbnailImage {\n padding: map-get($spacers, 1);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n }\n\n .videoFallback,\n .folderFallback {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n}","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large ?\n styles.subjectFallbackContainerLarge :\n styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize;\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg ?\n (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{N as e,at as t}from"./CrTgNROp.chunk.js";import{m as n,n as r}from"./Dwe-4MVf.chunk.js";import{t as i}from"./o2slFZEB.chunk.js";import{t as a}from"./Dsv_eF8a.chunk.js";import{t as o}from"./2zJwW9wb.chunk.js";import{n as s}from"./28VvvkVW.chunk.js";import{t as c}from"./BIVEB8w0.chunk.js";import{S as l,a as u,n as d,r as f,xt as p}from"./app-F8o5al1q.js";import{a as m,i as h,n as g,s as _,t as v}from"./B9syewbL.chunk.js";import{n as y,t as b}from"./r68VJd6w.chunk.js";import{i as x,t as S}from"./B_QHbZ3D2.chunk.js";t();var C=o(),w={logins(e,t,n,r){return{url:s.urlBuilder(`{gateway}/v1/analytics/logins`,{...e,timeOffset:a.getTimezoneOffset()}),key:b(`logins`,e),normalize:!1,success:t,error:n,always:r}}},T=e(),E={image:`_image_zpxv9_1`},D=c.encloseNamespace(`reportsShared.schoolLoginsByGroupCardEmptyState`);function O(){return(0,T.jsxs)(f,{className:`flex-grow-1 justify-content-center`,children:[(0,T.jsx)(f.Image,{src:p.EmptyStates.Shared.School,className:E.image}),(0,T.jsx)(f.Heading,{className:`h6`,children:D(`heading`)}),(0,T.jsx)(f.Info,{className:`w-100`,children:D(`description`)})]})}var k=`logins.schoolLoginsByGroupCard`;function A(){let e=u(`logins`),t=n(w.logins(e)),i=l(),a=e=>e===`Unknown`||e===null?`Staff`:e,o=g(t.data?.yearGroupCount?.map(e=>({name:a(e.name),count:e.count}))),s=o?.reduce((e,t)=>e+t.y,0);return(0,T.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:o?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`h2`,{className:`h6 mb-1`,children:(0,T.jsx)(r,{namespace:k,phrase:i?`totalLoginsTertiary`:`totalLogins`,options:{logins:s}})}),o.length?(0,T.jsx)(C.Scrollbars,{className:`position-relative`,children:(0,T.jsx)(`div`,{className:`position-absolute w-100`,children:(0,T.jsx)(_,{data:o})})}):(0,T.jsx)(O,{})]}):(0,T.jsx)(`div`,{className:`partial-loading-background w-50`,children:`\xA0`})})}var j={MONTH:35,YEAR:365},M={day:`YYYY-MM-DD`,month:`YYYY-MM`,year:`YYYY`},N={day:`D MMM`,month:`MMM`,year:`YYYY`};function P(e){let t=a.diffBetween(e.end,e.start,`day`);return t>j.YEAR?`year`:t>j.MONTH?`month`:`day`}function F(e,t){let n=[],r=a.convertUTCToLocal(e.start),i=a.convertUTCToLocal(e.end),o=a.format(r,M[t]);for(;!a.isAfter(o,i,t);)n.push(o),o=a.format(a.add(o,1,t),M[t]);return n}function I(e,t){if(!e)return null;let n=P(t),r=F(t,n),o={};e.forEach(e=>{if(!e.userType)return;let t=`groupedDateWatched`in e&&e.groupedDateWatched||`groupedLoggedOn`in e&&e.groupedLoggedOn,r=a.format(a.convertUTCToLocal(t),M[n]);o[e.userType]=o[e.userType]??{},o[e.userType][r]=o[e.userType][r]??0,o[e.userType][r]+=e.count});let s=Object.keys(o);return s.length?{categories:r.map(e=>a.format(e,N[n])),data:i.sortBy(s.map(e=>({name:m(e),type:`line`,data:r.map(t=>o[e][t]??0),color:h(e)})),`name`)}:{categories:r.map(e=>a.format(e,N[n])),data:[]}}var L=`logins.schoolLoginsByMonthCard`;function R(){let e=u(`logins`),t=I(n(w.logins(e)).data?.data,e);return(0,T.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3 position-relative`,children:t?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`h2`,{className:`position-absolute h6 mb-1`,children:(0,T.jsx)(r,{namespace:L,phrase:`loginActivity`})}),(0,T.jsx)(v,{categories:t.categories,data:t.data})]}):(0,T.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}var z={column2:`_column2_1cfp0_1`,column1:`_column1_1cfp0_1`},B=c.encloseNamespace(`logins.schoolLoginOverview`);function V(){return d({title:B(`title`)}),y(B(`title`)),x(S()),(0,T.jsx)(`div`,{children:(0,T.jsxs)(`div`,{className:`d-flex gap-3`,children:[(0,T.jsx)(`div`,{className:`${z.column1}`,children:(0,T.jsx)(A,{})}),(0,T.jsx)(`div`,{className:`${z.column2}`,children:(0,T.jsx)(R,{})})]})})}export{V as SchoolLoginOverview};
2
- //# sourceMappingURL=CGYMpd9x2.chunk.js.map
1
+ import{N as e,at as t}from"./CrTgNROp.chunk.js";import{m as n,n as r}from"./Dwe-4MVf.chunk.js";import{t as i}from"./o2slFZEB.chunk.js";import{t as a}from"./Dsv_eF8a.chunk.js";import{t as o}from"./2zJwW9wb.chunk.js";import{n as s}from"./28VvvkVW.chunk.js";import{t as c}from"./BIVEB8w0.chunk.js";import{S as l,a as u,n as d,r as f,xt as p}from"./app-DW-nP8r1.js";import{a as m,i as h,n as g,s as _,t as v}from"./BhnToJrk.chunk.js";import{n as y,t as b}from"./qhfEmD0O.chunk.js";import{i as x,t as S}from"./niZatQNI2.chunk.js";t();var C=o(),w={logins(e,t,n,r){return{url:s.urlBuilder(`{gateway}/v1/analytics/logins`,{...e,timeOffset:a.getTimezoneOffset()}),key:b(`logins`,e),normalize:!1,success:t,error:n,always:r}}},T=e(),E={image:`_image_zpxv9_1`},D=c.encloseNamespace(`reportsShared.schoolLoginsByGroupCardEmptyState`);function O(){return(0,T.jsxs)(f,{className:`flex-grow-1 justify-content-center`,children:[(0,T.jsx)(f.Image,{src:p.EmptyStates.Shared.School,className:E.image}),(0,T.jsx)(f.Heading,{className:`h6`,children:D(`heading`)}),(0,T.jsx)(f.Info,{className:`w-100`,children:D(`description`)})]})}var k=`logins.schoolLoginsByGroupCard`;function A(){let e=u(`logins`),t=n(w.logins(e)),i=l(),a=e=>e===`Unknown`||e===null?`Staff`:e,o=g(t.data?.yearGroupCount?.map(e=>({name:a(e.name),count:e.count}))),s=o?.reduce((e,t)=>e+t.y,0);return(0,T.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white overflow-hidden rounded pt-3 px-3`,children:o?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`h2`,{className:`h6 mb-1`,children:(0,T.jsx)(r,{namespace:k,phrase:i?`totalLoginsTertiary`:`totalLogins`,options:{logins:s}})}),o.length?(0,T.jsx)(C.Scrollbars,{className:`position-relative`,children:(0,T.jsx)(`div`,{className:`position-absolute w-100`,children:(0,T.jsx)(_,{data:o})})}):(0,T.jsx)(O,{})]}):(0,T.jsx)(`div`,{className:`partial-loading-background w-50`,children:`\xA0`})})}var j={MONTH:35,YEAR:365},M={day:`YYYY-MM-DD`,month:`YYYY-MM`,year:`YYYY`},N={day:`D MMM`,month:`MMM`,year:`YYYY`};function P(e){let t=a.diffBetween(e.end,e.start,`day`);return t>j.YEAR?`year`:t>j.MONTH?`month`:`day`}function F(e,t){let n=[],r=a.convertUTCToLocal(e.start),i=a.convertUTCToLocal(e.end),o=a.format(r,M[t]);for(;!a.isAfter(o,i,t);)n.push(o),o=a.format(a.add(o,1,t),M[t]);return n}function I(e,t){if(!e)return null;let n=P(t),r=F(t,n),o={};e.forEach(e=>{if(!e.userType)return;let t=`groupedDateWatched`in e&&e.groupedDateWatched||`groupedLoggedOn`in e&&e.groupedLoggedOn,r=a.format(a.convertUTCToLocal(t),M[n]);o[e.userType]=o[e.userType]??{},o[e.userType][r]=o[e.userType][r]??0,o[e.userType][r]+=e.count});let s=Object.keys(o);return s.length?{categories:r.map(e=>a.format(e,N[n])),data:i.sortBy(s.map(e=>({name:m(e),type:`line`,data:r.map(t=>o[e][t]??0),color:h(e)})),`name`)}:{categories:r.map(e=>a.format(e,N[n])),data:[]}}var L=`logins.schoolLoginsByMonthCard`;function R(){let e=u(`logins`),t=I(n(w.logins(e)).data?.data,e);return(0,T.jsx)(`div`,{className:`d-flex flex-column h-100 bg-white rounded p-3 position-relative`,children:t?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`h2`,{className:`position-absolute h6 mb-1`,children:(0,T.jsx)(r,{namespace:L,phrase:`loginActivity`})}),(0,T.jsx)(v,{categories:t.categories,data:t.data})]}):(0,T.jsx)(`div`,{className:`partial-loading-background w-25`,children:`\xA0`})})}var z={column2:`_column2_1cfp0_1`,column1:`_column1_1cfp0_1`},B=c.encloseNamespace(`logins.schoolLoginOverview`);function V(){return d({title:B(`title`)}),y(B(`title`)),x(S()),(0,T.jsx)(`div`,{children:(0,T.jsxs)(`div`,{className:`d-flex gap-3`,children:[(0,T.jsx)(`div`,{className:`${z.column1}`,children:(0,T.jsx)(A,{})}),(0,T.jsx)(`div`,{className:`${z.column2}`,children:(0,T.jsx)(R,{})})]})})}export{V as SchoolLoginOverview};
2
+ //# sourceMappingURL=BBC0heb12.chunk.js.map