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

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 +200 -200
  2. package/dist/bundles.json +1 -1
  3. package/dist/en.json +1 -1
  4. package/dist/scripts/{D_FEtk4z.chunk.js → 4ViYfbV7.chunk.js} +2 -2
  5. package/dist/scripts/{D_FEtk4z.chunk.js.map → 4ViYfbV7.chunk.js.map} +1 -1
  6. package/dist/scripts/{CkUPoXTo.chunk.js → 4gz8eG_F.chunk.js} +2 -2
  7. package/dist/scripts/{CkUPoXTo.chunk.js.map → 4gz8eG_F.chunk.js.map} +1 -1
  8. package/dist/scripts/{DNagXaPV2.chunk.js → 4mtEyuqT2.chunk.js} +2 -2
  9. package/dist/scripts/{DNagXaPV2.chunk.js.map → 4mtEyuqT2.chunk.js.map} +1 -1
  10. package/dist/scripts/{CPrWMnN-.chunk.js → 7M6FzdyD.chunk.js} +2 -2
  11. package/dist/scripts/{CPrWMnN-.chunk.js.map → 7M6FzdyD.chunk.js.map} +1 -1
  12. package/dist/scripts/{D3Pl0-fQ.chunk.js → BJOOjdj2.chunk.js} +2 -2
  13. package/dist/scripts/{D3Pl0-fQ.chunk.js.map → BJOOjdj2.chunk.js.map} +1 -1
  14. package/dist/scripts/{B9ojUSnp2.chunk.js → BL1X9vs52.chunk.js} +2 -2
  15. package/dist/scripts/{B9ojUSnp2.chunk.js.map → BL1X9vs52.chunk.js.map} +1 -1
  16. package/dist/scripts/{BN2Jc0_B.chunk.js → BLzRzOyq.chunk.js} +2 -2
  17. package/dist/scripts/{BN2Jc0_B.chunk.js.map → BLzRzOyq.chunk.js.map} +1 -1
  18. package/dist/scripts/{CNihWz772.chunk.js → BU8DxGLM2.chunk.js} +2 -2
  19. package/dist/scripts/{CNihWz772.chunk.js.map → BU8DxGLM2.chunk.js.map} +1 -1
  20. package/dist/scripts/{B-CXShcb2.chunk.js → BXWs2cI72.chunk.js} +2 -2
  21. package/dist/scripts/{B-CXShcb2.chunk.js.map → BXWs2cI72.chunk.js.map} +1 -1
  22. package/dist/scripts/{Re7SHmEB2.chunk.js → Bl13dT192.chunk.js} +2 -2
  23. package/dist/scripts/{Re7SHmEB2.chunk.js.map → Bl13dT192.chunk.js.map} +1 -1
  24. package/dist/scripts/{CBswLW82.chunk.js → Bzx4bLV8.chunk.js} +2 -2
  25. package/dist/scripts/{CBswLW82.chunk.js.map → Bzx4bLV8.chunk.js.map} +1 -1
  26. package/dist/scripts/{4QdmE5x_2.chunk.js → CKKR2-wU2.chunk.js} +2 -2
  27. package/dist/scripts/{4QdmE5x_2.chunk.js.map → CKKR2-wU2.chunk.js.map} +1 -1
  28. package/dist/scripts/{s20CYII_2.chunk.js → CcjJpEaF2.chunk.js} +2 -2
  29. package/dist/scripts/{s20CYII_2.chunk.js.map → CcjJpEaF2.chunk.js.map} +1 -1
  30. package/dist/scripts/{B-DINEq3.chunk.js → Ch4Y5yk4.chunk.js} +2 -2
  31. package/dist/scripts/{B-DINEq3.chunk.js.map → Ch4Y5yk4.chunk.js.map} +1 -1
  32. package/dist/scripts/{DqAzhF3o.chunk.js → CitsW6ql.chunk.js} +2 -2
  33. package/dist/scripts/{DqAzhF3o.chunk.js.map → CitsW6ql.chunk.js.map} +1 -1
  34. package/dist/scripts/{iTyahUCH2.chunk.js → CowQEpZQ2.chunk.js} +2 -2
  35. package/dist/scripts/{iTyahUCH2.chunk.js.map → CowQEpZQ2.chunk.js.map} +1 -1
  36. package/dist/scripts/{DxrgOF1-.chunk.js → D2gRMPGY.chunk.js} +2 -2
  37. package/dist/scripts/{DxrgOF1-.chunk.js.map → D2gRMPGY.chunk.js.map} +1 -1
  38. package/dist/scripts/{BabEuLsF2.chunk.js → DDS7ndOq2.chunk.js} +2 -2
  39. package/dist/scripts/{BabEuLsF2.chunk.js.map → DDS7ndOq2.chunk.js.map} +1 -1
  40. package/dist/scripts/{_gzWinH7.chunk.js → DE24b7R6.chunk.js} +2 -2
  41. package/dist/scripts/{_gzWinH7.chunk.js.map → DE24b7R6.chunk.js.map} +1 -1
  42. package/dist/scripts/{CYgv1ISo2.chunk.js → DNY9inGn2.chunk.js} +2 -2
  43. package/dist/scripts/{CYgv1ISo2.chunk.js.map → DNY9inGn2.chunk.js.map} +1 -1
  44. package/dist/scripts/{DQY7SaMp2.chunk.js → DPJbiCR02.chunk.js} +3 -3
  45. package/dist/scripts/{DQY7SaMp2.chunk.js.map → DPJbiCR02.chunk.js.map} +1 -1
  46. package/dist/scripts/{BuFRt1UM.chunk.js → DWQdiwUw.chunk.js} +2 -2
  47. package/dist/scripts/{BuFRt1UM.chunk.js.map → DWQdiwUw.chunk.js.map} +1 -1
  48. package/dist/scripts/{DzTraroE2.chunk.js → DbSzdDBS2.chunk.js} +2 -2
  49. package/dist/scripts/{DzTraroE2.chunk.js.map → DbSzdDBS2.chunk.js.map} +1 -1
  50. package/dist/scripts/{NiiRK9j-2.chunk.js → Dj87pb142.chunk.js} +2 -2
  51. package/dist/scripts/{NiiRK9j-2.chunk.js.map → Dj87pb142.chunk.js.map} +1 -1
  52. package/dist/scripts/{DSNTuwQi2.chunk.js → EvtCZWZL2.chunk.js} +2 -2
  53. package/dist/scripts/{DSNTuwQi2.chunk.js.map → EvtCZWZL2.chunk.js.map} +1 -1
  54. package/dist/scripts/{Cdbg16A92.chunk.js → PSwC3iEf2.chunk.js} +2 -2
  55. package/dist/scripts/{Cdbg16A92.chunk.js.map → PSwC3iEf2.chunk.js.map} +1 -1
  56. package/dist/scripts/{B3UVC04b.chunk.js → TzLygaBE.chunk.js} +2 -2
  57. package/dist/scripts/{B3UVC04b.chunk.js.map → TzLygaBE.chunk.js.map} +1 -1
  58. package/dist/scripts/{app-jxJcaenU.js → app-B1NVV4PT.js} +3 -3
  59. package/dist/scripts/{app-jxJcaenU.js.map → app-B1NVV4PT.js.map} +1 -1
  60. package/dist/scripts/{CsoT7dzm.chunk.js → fh6sbun-.chunk.js} +2 -2
  61. package/dist/scripts/{CsoT7dzm.chunk.js.map → fh6sbun-.chunk.js.map} +1 -1
  62. package/dist/scripts/{s1EOR8_G2.chunk.js → kAYY_iVY2.chunk.js} +2 -2
  63. package/dist/scripts/{s1EOR8_G2.chunk.js.map → kAYY_iVY2.chunk.js.map} +1 -1
  64. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{N as e,P as t,at as n}from"./CrTgNROp.chunk.js";import{x as r}from"./CxNc1BDX.chunk.js";import{t as i}from"./o2slFZEB.chunk.js";import{at as a}from"./app-jxJcaenU.js";n();var o=e();function s(e){let n=e.buttons.map(t=>({buttonText:t.text,className:t.className,onClick:()=>{t.success?r.isFunction(e.onDone)&&e.onDone():r.isFunction(e.onFail)&&e.onFail(),e.closePopup()},type:t.type,close:t.close}));return n=i.sortBy(n,`close`),(0,o.jsxs)(a,{title:e.title,closePopup:e.closePopup,children:[(0,o.jsx)(`p`,{dangerouslySetInnerHTML:{__html:t.sanitize(e.text)}}),(0,o.jsx)(`div`,{className:`d-flex justify-content-end border-top pt-3 px-3 mx-n3`,children:n.map((e,t)=>(0,o.jsx)(`button`,{className:e.className,onClick:e.onClick,type:e.type,children:e.buttonText},t))})]})}export{s as DialogView};
2
- //# sourceMappingURL=D_FEtk4z.chunk.js.map
1
+ import{N as e,P as t,at as n}from"./CrTgNROp.chunk.js";import{x as r}from"./CxNc1BDX.chunk.js";import{t as i}from"./o2slFZEB.chunk.js";import{at as a}from"./app-B1NVV4PT.js";n();var o=e();function s(e){let n=e.buttons.map(t=>({buttonText:t.text,className:t.className,onClick:()=>{t.success?r.isFunction(e.onDone)&&e.onDone():r.isFunction(e.onFail)&&e.onFail(),e.closePopup()},type:t.type,close:t.close}));return n=i.sortBy(n,`close`),(0,o.jsxs)(a,{title:e.title,closePopup:e.closePopup,children:[(0,o.jsx)(`p`,{dangerouslySetInnerHTML:{__html:t.sanitize(e.text)}}),(0,o.jsx)(`div`,{className:`d-flex justify-content-end border-top pt-3 px-3 mx-n3`,children:n.map((e,t)=>(0,o.jsx)(`button`,{className:e.className,onClick:e.onClick,type:e.type,children:e.buttonText},t))})]})}export{s as DialogView};
2
+ //# sourceMappingURL=4ViYfbV7.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"D_FEtk4z.chunk.js","names":[],"sources":["../../../../libs/shared/src/views/dialog/DialogView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { DialogOptions, PopupViewProps } from 'libs/shared/interfaces';\n\ninterface DialogViewProps extends DialogOptions {\n onDone?: () => void;\n onFail?: () => void;\n}\n\ntype PropTypes = React.PropsWithChildren<DialogViewProps & PopupViewProps>;\n\nexport function DialogView(props: PropTypes): React.ReactElement {\n let buttons = props.buttons.map(b => {\n const onClick = () => {\n if (b.success)\n FunctionHelper.isFunction(props.onDone) && props.onDone();\n else\n FunctionHelper.isFunction(props.onFail) && props.onFail();\n\n props.closePopup();\n };\n\n return {\n buttonText: b.text,\n className: b.className,\n onClick,\n type: b.type,\n close: b.close\n };\n });\n\n /**\n * The dismiss action should always be on the left side of the popup\n */\n buttons = ArrayHelper.sortBy(buttons, 'close');\n\n return (\n <Popup title={props.title} closePopup={props.closePopup}>\n <p dangerouslySetInnerHTML={{ __html: TextHelper.sanitize(props.text) }} />\n <div className='d-flex justify-content-end border-top pt-3 px-3 mx-n3'>\n {buttons.map((b, idx) => (\n <button key={idx} className={b.className} onClick={b.onClick} type={b.type}>\n {b.buttonText}\n </button>\n ))}\n </div>\n </Popup>\n );\n}\n"],"mappings":"4LAgBA,SAAgB,EAAW,EAAsC,CAC/D,IAAI,EAAU,EAAM,QAAQ,IAAI,IAUvB,CACL,WAAY,EAAE,KACd,UAAW,EAAE,UACb,YAZoB,CAChB,EAAE,QACJ,EAAe,WAAW,EAAM,MAAM,GAAK,EAAM,OAAO,EAExD,EAAe,WAAW,EAAM,MAAM,GAAK,EAAM,OAAO,EAE1D,EAAM,WAAW,CACnB,EAME,KAAM,EAAE,KACR,MAAO,EAAE,KACX,EACD,EAOD,MAFA,GAAU,EAAY,OAAO,EAAS,OAAO,GAG3C,EAAA,EAAA,KAAA,CAAC,EAAD,CAAO,MAAO,EAAM,MAAO,WAAY,EAAM,oBAA7C,EACE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,wBAAyB,CAAE,OAAQ,EAAW,SAAS,EAAM,IAAI,CAAE,CAAI,CAAA,GAC1E,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iEACZ,EAAQ,KAAK,EAAG,KACf,EAAA,EAAA,IAAA,CAAC,SAAD,CAAkB,UAAW,EAAE,UAAW,QAAS,EAAE,QAAS,KAAM,EAAE,cACnE,EAAE,UACG,EAFK,CAEL,CACT,CACE,CAAA,CACA,GAEX"}
1
+ {"version":3,"file":"4ViYfbV7.chunk.js","names":[],"sources":["../../../../libs/shared/src/views/dialog/DialogView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { DialogOptions, PopupViewProps } from 'libs/shared/interfaces';\n\ninterface DialogViewProps extends DialogOptions {\n onDone?: () => void;\n onFail?: () => void;\n}\n\ntype PropTypes = React.PropsWithChildren<DialogViewProps & PopupViewProps>;\n\nexport function DialogView(props: PropTypes): React.ReactElement {\n let buttons = props.buttons.map(b => {\n const onClick = () => {\n if (b.success)\n FunctionHelper.isFunction(props.onDone) && props.onDone();\n else\n FunctionHelper.isFunction(props.onFail) && props.onFail();\n\n props.closePopup();\n };\n\n return {\n buttonText: b.text,\n className: b.className,\n onClick,\n type: b.type,\n close: b.close\n };\n });\n\n /**\n * The dismiss action should always be on the left side of the popup\n */\n buttons = ArrayHelper.sortBy(buttons, 'close');\n\n return (\n <Popup title={props.title} closePopup={props.closePopup}>\n <p dangerouslySetInnerHTML={{ __html: TextHelper.sanitize(props.text) }} />\n <div className='d-flex justify-content-end border-top pt-3 px-3 mx-n3'>\n {buttons.map((b, idx) => (\n <button key={idx} className={b.className} onClick={b.onClick} type={b.type}>\n {b.buttonText}\n </button>\n ))}\n </div>\n </Popup>\n );\n}\n"],"mappings":"4LAgBA,SAAgB,EAAW,EAAsC,CAC/D,IAAI,EAAU,EAAM,QAAQ,IAAI,IAUvB,CACL,WAAY,EAAE,KACd,UAAW,EAAE,UACb,YAZoB,CAChB,EAAE,QACJ,EAAe,WAAW,EAAM,MAAM,GAAK,EAAM,OAAO,EAExD,EAAe,WAAW,EAAM,MAAM,GAAK,EAAM,OAAO,EAE1D,EAAM,WAAW,CACnB,EAME,KAAM,EAAE,KACR,MAAO,EAAE,KACX,EACD,EAOD,MAFA,GAAU,EAAY,OAAO,EAAS,OAAO,GAG3C,EAAA,EAAA,KAAA,CAAC,EAAD,CAAO,MAAO,EAAM,MAAO,WAAY,EAAM,oBAA7C,EACE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,wBAAyB,CAAE,OAAQ,EAAW,SAAS,EAAM,IAAI,CAAE,CAAI,CAAA,GAC1E,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iEACZ,EAAQ,KAAK,EAAG,KACf,EAAA,EAAA,IAAA,CAAC,SAAD,CAAkB,UAAW,EAAE,UAAW,QAAS,EAAE,QAAS,KAAM,EAAE,cACnE,EAAE,UACG,EAFK,CAEL,CACT,CACE,CAAA,CACA,GAEX"}
@@ -1,2 +1,2 @@
1
- import{Dr as e,at as t}from"./CrTgNROp.chunk.js";import{n}from"./HeoWyBUD.chunk.js";import{I as r}from"./app-jxJcaenU.js";var i=e(t());function a(e){let[,t]=n(r.HEADER_TITLE);(0,i.useEffect)(()=>(t(e),()=>{t(null)}),[e])}function o(e,t,n){if(!t)return e;let r=`${e}:${t.start}:${t.end}`,i=Array.isArray(t.userId)?t.userId.sort().join(`:`):t.userId,a=Array.isArray(t.groupId)?t.groupId.sort().join(`:`):t.groupId,o=Array.isArray(t.customerId)?t.customerId.sort().join(`:`):t.customerId;return i&&(r+=`:${i}`),a&&(r+=`:${a}`),o&&(r+=`:${o}`),t.classroomSize&&(r+=`:cs${t.classroomSize}`),t.schoolStartTime&&(r+=`:ss${t.schoolStartTime}`),t.schoolEndTime&&(r+=`:se${t.schoolEndTime}`),t.timezone&&(r+=`:tz${t.timezone}`),n&&(r+=`:${n}`),r}export{a as n,o as t};
2
- //# sourceMappingURL=CkUPoXTo.chunk.js.map
1
+ import{Dr as e,at as t}from"./CrTgNROp.chunk.js";import{n}from"./HeoWyBUD.chunk.js";import{I as r}from"./app-B1NVV4PT.js";var i=e(t());function a(e){let[,t]=n(r.HEADER_TITLE);(0,i.useEffect)(()=>(t(e),()=>{t(null)}),[e])}function o(e,t,n){if(!t)return e;let r=`${e}:${t.start}:${t.end}`,i=Array.isArray(t.userId)?t.userId.sort().join(`:`):t.userId,a=Array.isArray(t.groupId)?t.groupId.sort().join(`:`):t.groupId,o=Array.isArray(t.customerId)?t.customerId.sort().join(`:`):t.customerId;return i&&(r+=`:${i}`),a&&(r+=`:${a}`),o&&(r+=`:${o}`),t.classroomSize&&(r+=`:cs${t.classroomSize}`),t.schoolStartTime&&(r+=`:ss${t.schoolStartTime}`),t.schoolEndTime&&(r+=`:se${t.schoolEndTime}`),t.timezone&&(r+=`:tz${t.timezone}`),n&&(r+=`:${n}`),r}export{a as n,o as t};
2
+ //# sourceMappingURL=4gz8eG_F.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CkUPoXTo.chunk.js","names":[],"sources":["../../src/shared/hooks/UseSetHeaderTitle.ts","../../../../libs/shared/src/utils/AnalyticsRequestUtils.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\n\nexport function useSetHeaderTitle(title?: string): void {\n const [ , setTitle ] = useViewModel<string>(ViewModelKeys.HEADER_TITLE);\n\n useEffect(() => {\n setTitle(title);\n\n return () => {\n setTitle(null);\n };\n }, [title]);\n}\n","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, extra?: string): string {\n if (!filter)\n return baseKey;\n\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n const customerIdKey = Array.isArray(filter.customerId) ? filter.customerId.sort().join(':') : filter.customerId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (customerIdKey)\n key += `:${customerIdKey}`;\n\n if (filter.classroomSize)\n key += `:cs${filter.classroomSize}`;\n\n if (filter.schoolStartTime)\n key += `:ss${filter.schoolStartTime}`;\n\n if (filter.schoolEndTime)\n key += `:se${filter.schoolEndTime}`;\n\n if (filter.timezone)\n key += `:tz${filter.timezone}`;\n\n if (extra)\n key += `:${extra}`;\n\n return key;\n}\n"],"mappings":"uIAMA,SAAgB,EAAkB,EAAsB,CACtD,GAAM,EAAI,GAAa,EAAqB,EAAc,YAAY,GAEtE,EAAA,EAAA,UAAA,MACE,EAAS,CAAK,MAED,CACX,EAAS,IAAI,CACf,GACC,CAAC,CAAK,CAAC,CACZ,CCdA,SAAgB,EAAuB,EAAiB,EAAgC,EAAwB,CAC9G,GAAI,CAAC,EACH,OAAO,EAET,IAAI,EAAM,GAAG,EAAQ,GAAG,EAAO,MAAM,GAAG,EAAO,MAEzC,EAAY,MAAM,QAAQ,EAAO,MAAM,EAAI,EAAO,OAAO,KAAK,CAAC,CAAC,KAAK,GAAG,EAAI,EAAO,OACnF,EAAa,MAAM,QAAQ,EAAO,OAAO,EAAI,EAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,GAAG,EAAI,EAAO,QACtF,EAAgB,MAAM,QAAQ,EAAO,UAAU,EAAI,EAAO,WAAW,KAAK,CAAC,CAAC,KAAK,GAAG,EAAI,EAAO,WA0BrG,OAxBI,IACF,GAAO,IAAI,KAET,IACF,GAAO,IAAI,KAET,IACF,GAAO,IAAI,KAET,EAAO,gBACT,GAAO,MAAM,EAAO,iBAElB,EAAO,kBACT,GAAO,MAAM,EAAO,mBAElB,EAAO,gBACT,GAAO,MAAM,EAAO,iBAElB,EAAO,WACT,GAAO,MAAM,EAAO,YAElB,IACF,GAAO,IAAI,KAEN,CACT"}
1
+ {"version":3,"file":"4gz8eG_F.chunk.js","names":[],"sources":["../../src/shared/hooks/UseSetHeaderTitle.ts","../../../../libs/shared/src/utils/AnalyticsRequestUtils.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ViewModelKeys } from 'shared/constants/ReportsViewModels';\n\nexport function useSetHeaderTitle(title?: string): void {\n const [ , setTitle ] = useViewModel<string>(ViewModelKeys.HEADER_TITLE);\n\n useEffect(() => {\n setTitle(title);\n\n return () => {\n setTitle(null);\n };\n }, [title]);\n}\n","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, extra?: string): string {\n if (!filter)\n return baseKey;\n\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n const customerIdKey = Array.isArray(filter.customerId) ? filter.customerId.sort().join(':') : filter.customerId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (customerIdKey)\n key += `:${customerIdKey}`;\n\n if (filter.classroomSize)\n key += `:cs${filter.classroomSize}`;\n\n if (filter.schoolStartTime)\n key += `:ss${filter.schoolStartTime}`;\n\n if (filter.schoolEndTime)\n key += `:se${filter.schoolEndTime}`;\n\n if (filter.timezone)\n key += `:tz${filter.timezone}`;\n\n if (extra)\n key += `:${extra}`;\n\n return key;\n}\n"],"mappings":"uIAMA,SAAgB,EAAkB,EAAsB,CACtD,GAAM,EAAI,GAAa,EAAqB,EAAc,YAAY,GAEtE,EAAA,EAAA,UAAA,MACE,EAAS,CAAK,MAED,CACX,EAAS,IAAI,CACf,GACC,CAAC,CAAK,CAAC,CACZ,CCdA,SAAgB,EAAuB,EAAiB,EAAgC,EAAwB,CAC9G,GAAI,CAAC,EACH,OAAO,EAET,IAAI,EAAM,GAAG,EAAQ,GAAG,EAAO,MAAM,GAAG,EAAO,MAEzC,EAAY,MAAM,QAAQ,EAAO,MAAM,EAAI,EAAO,OAAO,KAAK,CAAC,CAAC,KAAK,GAAG,EAAI,EAAO,OACnF,EAAa,MAAM,QAAQ,EAAO,OAAO,EAAI,EAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,GAAG,EAAI,EAAO,QACtF,EAAgB,MAAM,QAAQ,EAAO,UAAU,EAAI,EAAO,WAAW,KAAK,CAAC,CAAC,KAAK,GAAG,EAAI,EAAO,WA0BrG,OAxBI,IACF,GAAO,IAAI,KAET,IACF,GAAO,IAAI,KAET,IACF,GAAO,IAAI,KAET,EAAO,gBACT,GAAO,MAAM,EAAO,iBAElB,EAAO,kBACT,GAAO,MAAM,EAAO,mBAElB,EAAO,gBACT,GAAO,MAAM,EAAO,iBAElB,EAAO,WACT,GAAO,MAAM,EAAO,YAElB,IACF,GAAO,IAAI,KAEN,CACT"}
@@ -1,2 +1,2 @@
1
- import{N as e,at as t}from"./CrTgNROp.chunk.js";import{t as n}from"./app-jxJcaenU.js";t();var r=e();function i({error:e}){return(0,r.jsx)(n,{error:e})}export{i as NotFoundView};
2
- //# sourceMappingURL=DNagXaPV2.chunk.js.map
1
+ import{N as e,at as t}from"./CrTgNROp.chunk.js";import{t as n}from"./app-B1NVV4PT.js";t();var r=e();function i({error:e}){return(0,r.jsx)(n,{error:e})}export{i as NotFoundView};
2
+ //# sourceMappingURL=4mtEyuqT2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DNagXaPV2.chunk.js","names":[],"sources":["../../src/apps/default/views/not-found/ReportsNotFoundView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { ErrorView } from 'apps/default/views/error/ReportsErrorView';\n\ninterface NotFoundViewProps {\n error: ErrorPageError;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function NotFoundView({ error }: NotFoundViewProps): React.ReactElement {\n return <ErrorView error={error} />;\n}\n"],"mappings":"oGAWA,SAAgB,EAAa,CAAE,SAAgD,CAC7E,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkB,OAAQ,CAAA,CACnC"}
1
+ {"version":3,"file":"4mtEyuqT2.chunk.js","names":[],"sources":["../../src/apps/default/views/not-found/ReportsNotFoundView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { ErrorView } from 'apps/default/views/error/ReportsErrorView';\n\ninterface NotFoundViewProps {\n error: ErrorPageError;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function NotFoundView({ error }: NotFoundViewProps): React.ReactElement {\n return <ErrorView error={error} />;\n}\n"],"mappings":"oGAWA,SAAgB,EAAa,CAAE,SAAgD,CAC7E,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkB,OAAQ,CAAA,CACnC"}
@@ -1,2 +1,2 @@
1
- import{Dr as e,Sr as t,at as n,on as r}from"./CrTgNROp.chunk.js";import{n as i}from"./28VvvkVW.chunk.js";import{t as a}from"./CkUPoXTo.chunk.js";var o=function(e){return e.Draft=`Draft`,e.Published=`Published`,e.Archived=`Archived`,e}({}),s=function(e){return e.Discover=`discover`,e.Classification=`classification`,e.ClassificationDirectory=`classification-directory`,e.ClassificationCurriculum=`classification-curriculum`,e.MoviesAndTv=`movies-and-tv`,e.Company=`company`,e.Search=`search`,e.PartnerProfile=`partner-profile`,e.PartnerProfileHub=`partner-profile-hub`,e.DiscoverPartnerProfiles=`discover-partner-profiles`,e}({});r();var c=(e,t,n)=>{e=e.toString();let r=t-e.length;return r<=0?e:Array(r+1).join(n)+e},l={ToDisplayDuration(e,n){if(!t(e))return``;let r=new Date(e),i=r.getUTCHours(),a=c(r.getUTCMinutes(),2,`0`),o=c(r.getUTCSeconds(),2,`0`);return n||i>0?`${i}:${a}:${o}`:`${a}:${o}`},ToDisplayDurationNewStyle(e,n){if(!t(e))return``;let r=new Date(e),i=r.getUTCHours(),a=r.getUTCMinutes(),o=r.getUTCSeconds();if((i>0||a>0)&&o>=30&&(a+=1,a>=60&&(i+=1,a=0)),i>0){let e=i>1?`hrs`:`hr`;return a>0?n&&o>0?`${i}${e} ${a}m ${o}s`:`${i}${e} ${a}m `:`${i} ${e}`}return a>0?n&&o>0?`${a}m ${o}s`:`${a}m`:`${o}s`},ToDisplayTimeRange(e,n){if(!t(e)||!t(n))return``;let r=new Date(n).getUTCHours()>0;return`${l.ToDisplayDuration(e,r)} - ${l.ToDisplayDuration(n,r)}`}},u=e(n(),1),d=new Map,f=new WeakMap,p=0,m=void 0;function h(e){return e?f.has(e)?f.get(e):(p+=1,f.set(e,p.toString()),f.get(e)):`0`}function g(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t===`root`?h(e.root):e[t]}`).toString()}function _(e){let t=g(e),n=d.get(t);if(!n){let r=new Map,i,a=new IntersectionObserver(t=>{t.forEach(t=>{var n;let a=t.isIntersecting&&i.some(e=>t.intersectionRatio>=e);e.trackVisibility&&t.isVisible===void 0&&(t.isVisible=a),(n=r.get(t.target))==null||n.forEach(e=>{e(a,t)})})},e);i=a.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:a,elements:r},d.set(t,n)}return n}function v(e,t,n={},r=m){if(window.IntersectionObserver===void 0&&r!==void 0){let i=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold==`number`?n.threshold:0,time:0,boundingClientRect:i,intersectionRect:i,rootBounds:i}),()=>{}}let{id:i,observer:a,elements:o}=_(n),s=o.get(e)||[];return o.has(e)||o.set(e,s),s.push(t),a.observe(e),function(){s.splice(s.indexOf(t),1),s.length===0&&(o.delete(e),a.unobserve(e)),o.size===0&&(a.disconnect(),d.delete(i))}}u.Component;function y({threshold:e,delay:t,trackVisibility:n,rootMargin:r,root:i,triggerOnce:a,skip:o,initialInView:s,fallbackInView:c,onChange:l}={}){let[d,f]=u.useState(null),p=u.useRef(),[m,h]=u.useState({inView:!!s,entry:void 0});p.current=l,u.useEffect(()=>{if(o||!d)return;let s;return s=v(d,(e,t)=>{h({inView:e,entry:t}),p.current&&p.current(e,t),t.isIntersecting&&a&&s&&(s(),s=void 0)},{root:i,rootMargin:r,threshold:e,trackVisibility:n,delay:t},c),()=>{s&&s()}},[Array.isArray(e)?e.toString():e,d,i,r,a,o,n,c,t]);let g=m.entry?.target,_=u.useRef();!d&&g&&!a&&!o&&_.current!==g&&(_.current=g,h({inView:!!s,entry:void 0}));let y=[f,m.inView,m.entry];return y.ref=y[0],y.inView=y[1],y.entry=y[2],y}function b(e){let{userId:t,customerId:n,...r}=e;return{...r,uid:t,cid:n}}var x={aggregation(e,t){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${e}`,b(t)),key:a(`video:views:v2:aggregation`,t,e),normalize:!1}},videoAggregation(e,t,n){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/videos/${e}/aggregation/${t}`,b(n)),key:a(`video:views:v2:aggregation:${e}`,n,t),normalize:!1}},aggregationChart(e,t){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${e}/chart`,b(t)),key:a(`video:views:v2:aggregation:chart`,t,e),normalize:!1}},videoAggregationChart(e,t,n){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/videos/${e}/aggregation/${t}/chart`,b(n)),key:a(`video:views:v2:aggregation:chart:${e}`,n,t),normalize:!1}},topStreams(e,t){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/top`,{...b(t),limit:e}),key:a(`video:views:v2:top:streams:${e}`,t),normalize:!1}},videoHeatMap(e,t,n){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/videos/${e}/heat-map`,{...b(t),cursor:n}),key:a(`video:views:v2:heatmap:${e}`,t,n),normalize:!1}},videoHeatMapAggregation(e,t){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/videos/${e}/aggregation/heat-map`,b(t)),key:a(`video:views:v2:aggregation:heatmap:${e}`,t),normalize:!1}}};export{s as a,o as i,y as n,l as r,x as t};
2
- //# sourceMappingURL=CPrWMnN-.chunk.js.map
1
+ import{Dr as e,Sr as t,at as n,on as r}from"./CrTgNROp.chunk.js";import{n as i}from"./28VvvkVW.chunk.js";import{t as a}from"./4gz8eG_F.chunk.js";var o=function(e){return e.Draft=`Draft`,e.Published=`Published`,e.Archived=`Archived`,e}({}),s=function(e){return e.Discover=`discover`,e.Classification=`classification`,e.ClassificationDirectory=`classification-directory`,e.ClassificationCurriculum=`classification-curriculum`,e.MoviesAndTv=`movies-and-tv`,e.Company=`company`,e.Search=`search`,e.PartnerProfile=`partner-profile`,e.PartnerProfileHub=`partner-profile-hub`,e.DiscoverPartnerProfiles=`discover-partner-profiles`,e}({});r();var c=(e,t,n)=>{e=e.toString();let r=t-e.length;return r<=0?e:Array(r+1).join(n)+e},l={ToDisplayDuration(e,n){if(!t(e))return``;let r=new Date(e),i=r.getUTCHours(),a=c(r.getUTCMinutes(),2,`0`),o=c(r.getUTCSeconds(),2,`0`);return n||i>0?`${i}:${a}:${o}`:`${a}:${o}`},ToDisplayDurationNewStyle(e,n){if(!t(e))return``;let r=new Date(e),i=r.getUTCHours(),a=r.getUTCMinutes(),o=r.getUTCSeconds();if((i>0||a>0)&&o>=30&&(a+=1,a>=60&&(i+=1,a=0)),i>0){let e=i>1?`hrs`:`hr`;return a>0?n&&o>0?`${i}${e} ${a}m ${o}s`:`${i}${e} ${a}m `:`${i} ${e}`}return a>0?n&&o>0?`${a}m ${o}s`:`${a}m`:`${o}s`},ToDisplayTimeRange(e,n){if(!t(e)||!t(n))return``;let r=new Date(n).getUTCHours()>0;return`${l.ToDisplayDuration(e,r)} - ${l.ToDisplayDuration(n,r)}`}},u=e(n(),1),d=new Map,f=new WeakMap,p=0,m=void 0;function h(e){return e?f.has(e)?f.get(e):(p+=1,f.set(e,p.toString()),f.get(e)):`0`}function g(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t===`root`?h(e.root):e[t]}`).toString()}function _(e){let t=g(e),n=d.get(t);if(!n){let r=new Map,i,a=new IntersectionObserver(t=>{t.forEach(t=>{var n;let a=t.isIntersecting&&i.some(e=>t.intersectionRatio>=e);e.trackVisibility&&t.isVisible===void 0&&(t.isVisible=a),(n=r.get(t.target))==null||n.forEach(e=>{e(a,t)})})},e);i=a.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:a,elements:r},d.set(t,n)}return n}function v(e,t,n={},r=m){if(window.IntersectionObserver===void 0&&r!==void 0){let i=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold==`number`?n.threshold:0,time:0,boundingClientRect:i,intersectionRect:i,rootBounds:i}),()=>{}}let{id:i,observer:a,elements:o}=_(n),s=o.get(e)||[];return o.has(e)||o.set(e,s),s.push(t),a.observe(e),function(){s.splice(s.indexOf(t),1),s.length===0&&(o.delete(e),a.unobserve(e)),o.size===0&&(a.disconnect(),d.delete(i))}}u.Component;function y({threshold:e,delay:t,trackVisibility:n,rootMargin:r,root:i,triggerOnce:a,skip:o,initialInView:s,fallbackInView:c,onChange:l}={}){let[d,f]=u.useState(null),p=u.useRef(),[m,h]=u.useState({inView:!!s,entry:void 0});p.current=l,u.useEffect(()=>{if(o||!d)return;let s;return s=v(d,(e,t)=>{h({inView:e,entry:t}),p.current&&p.current(e,t),t.isIntersecting&&a&&s&&(s(),s=void 0)},{root:i,rootMargin:r,threshold:e,trackVisibility:n,delay:t},c),()=>{s&&s()}},[Array.isArray(e)?e.toString():e,d,i,r,a,o,n,c,t]);let g=m.entry?.target,_=u.useRef();!d&&g&&!a&&!o&&_.current!==g&&(_.current=g,h({inView:!!s,entry:void 0}));let y=[f,m.inView,m.entry];return y.ref=y[0],y.inView=y[1],y.entry=y[2],y}var b=`Streamable Learning content`,x=`ClickView Live content`;function S(e){return Array.isArray(e)?e.map(e=>e.contentType===b?{...e,contentType:x}:e):e}function C(e){let{userId:t,customerId:n,...r}=e;return{...r,uid:t,cid:n}}var w={aggregation(e,t){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${e}`,C(t)),key:a(`video:views:v2:aggregation`,t,e),normalize:!1}},videoAggregation(e,t,n){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/videos/${e}/aggregation/${t}`,C(n)),key:a(`video:views:v2:aggregation:${e}`,n,t),normalize:!1}},aggregationChart(e,t){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${e}/chart`,C(t)),key:a(`video:views:v2:aggregation:chart`,t,e),normalize:!1}},videoAggregationChart(e,t,n){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/videos/${e}/aggregation/${t}/chart`,C(n)),key:a(`video:views:v2:aggregation:chart:${e}`,n,t),normalize:!1}},topStreams(e,t){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/top`,{...C(t),limit:e}),key:a(`video:views:v2:top:streams:${e}`,t),normalize:!1,formatData:S}},videoHeatMap(e,t,n){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/videos/${e}/heat-map`,{...C(t),cursor:n}),key:a(`video:views:v2:heatmap:${e}`,t,n),normalize:!1}},videoHeatMapAggregation(e,t){return{url:i.urlBuilder(`{gateway}/v2/analytics/streams/videos/${e}/aggregation/heat-map`,C(t)),key:a(`video:views:v2:aggregation:heatmap:${e}`,t),normalize:!1}}};export{s as a,o as i,y as n,l as r,w as t};
2
+ //# sourceMappingURL=7M6FzdyD.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CPrWMnN-.chunk.js","names":[],"sources":["../../../../libs/shared/src/interfaces/models/Dashboard.ts","../../../../libs/shared/src/utils/DurationHelper.ts","../../../../../node_modules/react-intersection-observer/index.mjs","../../src/shared/flight-requests/VideoViewsV2Requests.ts"],"sourcesContent":["import { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { CustomerType } from 'libs/shared/enums/CustomerType';\nimport { LibraryType } from 'libs/shared/enums/LibraryType';\nimport {\n BaseObject,\n BasePaginatedCollection,\n CuratedWidget,\n CuratedWidgetContent,\n CuratedWidgetData\n} from 'libs/shared/interfaces';\n\nexport enum DashboardLearningLevel {\n Any = 'Any',\n Level_1 = 'Level_1',\n Level_2 = 'Level_2',\n Level_3 = 'Level_3',\n Level_4 = 'Level_4'\n}\n\nexport enum DashboardUserType {\n Any = 'Any',\n Staff = 'Staff',\n Learner = 'Learner'\n}\n\nexport enum DashboardStatus {\n Draft = 'Draft',\n Published = 'Published',\n Archived = 'Archived'\n}\n\nexport interface Dashboard extends BaseObject {\n libraryType: LibraryType;\n customerType: CustomerType;\n userRole: number;\n}\n\nexport interface CuratedDashboardMetadata {\n systemGenerated?: boolean;\n channelId?: string;\n}\n\nexport interface CuratedDashboard<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BaseObject {\n contentRegion: ContentRegion;\n description: string;\n learningLevel: DashboardLearningLevel;\n userType: DashboardUserType;\n status: DashboardStatus;\n target: string;\n widgets: CuratedWidget<TWidgetData, TWidgetContent>[];\n metadata: CuratedDashboardMetadata;\n datePublished: string;\n}\n\nexport interface CuratedDashboardCollection<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BasePaginatedCollection<CuratedDashboard<TWidgetData, TWidgetContent>> {}\n\n/**\n * Dashboard identification below\n */\nexport enum DashboardTargetType {\n Discover = 'discover',\n Classification = 'classification',\n ClassificationDirectory = 'classification-directory',\n ClassificationCurriculum = 'classification-curriculum',\n MoviesAndTv = 'movies-and-tv',\n Company = 'company',\n Search = 'search',\n PartnerProfile = 'partner-profile',\n PartnerProfileHub = 'partner-profile-hub',\n DiscoverPartnerProfiles = 'discover-partner-profiles'\n}\n\ninterface DiscoverDashboardInfo {\n targetType: DashboardTargetType.Discover;\n presentationId: string;\n}\n\nexport interface ClassificationDashboardInfo {\n targetType: DashboardTargetType.Classification;\n classificationId: string;\n}\n\nexport interface ClassificationDirectoryInfo {\n targetType: DashboardTargetType.ClassificationDirectory;\n classificationId: string;\n}\n\nexport interface ClassificationCurriculumInfo {\n targetType: DashboardTargetType.ClassificationCurriculum;\n classificationId: string;\n}\n\ninterface MoviesAndTvDashboardInfo {\n targetType: DashboardTargetType.MoviesAndTv;\n presentationId: string;\n}\n\nexport interface CompanyDashboardInfo {\n targetType: DashboardTargetType.Company;\n companyId: string;\n presentationId: string;\n}\n\nexport interface PartnerProfileDashboardInfo {\n targetType: DashboardTargetType.PartnerProfile;\n slug: string;\n}\n\nexport interface PartnerProfileHubDashboardInfo {\n targetType: DashboardTargetType.PartnerProfileHub;\n}\n\nexport interface PartnerProfileDiscoverDashboardInfo {\n targetType: DashboardTargetType.DiscoverPartnerProfiles;\n}\n\nexport type DashboardTargetInfo =\n | DiscoverDashboardInfo |\n ClassificationDashboardInfo |\n ClassificationDirectoryInfo |\n ClassificationCurriculumInfo |\n MoviesAndTvDashboardInfo |\n CompanyDashboardInfo |\n PartnerProfileDashboardInfo |\n PartnerProfileHubDashboardInfo |\n PartnerProfileDiscoverDashboardInfo;\nexport interface UnknownDashboardTargetInfo {\n targetType: DashboardTargetType;\n presentationId: string;\n classificationId: string;\n companyId: string;\n slug: string;\n}\n","import * as _ from 'underscore';\n\nconst padLeft = (value: string | number, totalLength: number, padChar: string) => {\n value = value.toString();\n\n const diff = totalLength - value.length;\n\n if (diff <= 0)\n return value;\n\n return new Array(diff + 1).join(padChar) + value;\n};\n\nconst DurationHelper = {\n /**\n * Copypasta from Online. Feel free to improve it if you see fit - Sha\n */\n ToDisplayDuration(milliseconds: number, showAll?: boolean): string {\n if (!_.isNumber(milliseconds))\n return '';\n \n const time = new Date(milliseconds);\n \n const h = time.getUTCHours();\n const m = padLeft(time.getUTCMinutes(), 2, '0');\n const s = padLeft(time.getUTCSeconds(), 2, '0');\n \n if (showAll || h > 0) {\n return `${h}:${m}:${s}`;\n }\n \n return `${m}:${s}`;\n },\n\n ToDisplayDurationNewStyle(milliseconds: number, includeSeconds?: boolean): string {\n if (!_.isNumber(milliseconds))\n return '';\n\n const time = new Date(milliseconds);\n\n let h = time.getUTCHours();\n let m = time.getUTCMinutes();\n const s = time.getUTCSeconds();\n\n // Round up 1m when >= 30s\n if ((h > 0 || m > 0) && s >= 30) {\n m = m + 1;\n // Handle minute overflow (e.g., 59m + 1 = 60m -> 1hr)\n if (m >= 60) {\n h = h + 1;\n m = 0;\n }\n }\n \n if (h > 0) {\n const hourUnit = h > 1 ? 'hrs' : 'hr';\n\n if (m > 0) {\n if (includeSeconds && s > 0) {\n return `${h}${hourUnit} ${m}m ${s}s`;\n }\n\n return `${h}${hourUnit} ${m}m `;\n }\n \n return `${h} ${hourUnit}`;\n }\n\n if (m > 0) {\n if (includeSeconds && s > 0) {\n return `${m}m ${s}s`;\n }\n\n return `${m}m`;\n }\n\n return `${s}s`;\n },\n\n ToDisplayTimeRange(startMilliseconds: number, endMilliseconds: number) {\n if (!_.isNumber(startMilliseconds) || !_.isNumber(endMilliseconds))\n return '';\n\n const showAll = new Date(endMilliseconds).getUTCHours() > 0;\n\n return `${DurationHelper.ToDisplayDuration(startMilliseconds, showAll)} - ${DurationHelper.ToDisplayDuration(endMilliseconds, showAll)}`;\n }\n};\n\nexport { DurationHelper };\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root)\n return \"0\";\n if (RootIds.has(root))\n return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip)\n return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef();\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref)\n return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current)\n callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef();\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map","\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { StreamAggregationType } from 'libs/shared/apps/analytics/interfaces/StreamAggregationType';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\n/**\n * Becasue the V2 endpoints take the user context,\n * userId and customerId cannot be used for these values so instead\n * we are using uid and cid - sha\n */\nfunction formatFilter(filter: AnalyticsRequestFilter) {\n const { userId, customerId, ...rest } = filter;\n return { ...rest, uid: userId, cid: customerId };\n}\n\nexport const VideoViewsV2Requests = {\n aggregation(\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${type}`, formatFilter(filter)),\n key: getAnalyticsRequestKey('video:views:v2:aggregation', filter, type),\n normalize: false\n };\n },\n\n videoAggregation(\n videoId: string,\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/aggregation/${type}`, formatFilter(filter)),\n key: getAnalyticsRequestKey(`video:views:v2:aggregation:${videoId}`, filter, type),\n normalize: false\n };\n },\n\n aggregationChart(\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${type}/chart`, formatFilter(filter)),\n key: getAnalyticsRequestKey('video:views:v2:aggregation:chart', filter, type),\n normalize: false\n };\n },\n\n videoAggregationChart(\n videoId: string,\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/aggregation/${type}/chart`, formatFilter(filter)),\n key: getAnalyticsRequestKey(`video:views:v2:aggregation:chart:${videoId}`, filter, type),\n normalize: false\n };\n },\n\n topStreams(limit: number, filter: AnalyticsRequestFilter): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/top`, { ...formatFilter(filter), limit }),\n key: getAnalyticsRequestKey(`video:views:v2:top:streams:${limit}`, filter),\n normalize: false\n };\n },\n\n videoHeatMap(\n videoId: string,\n filter: AnalyticsRequestFilter,\n cursor?: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/heat-map`, { ...formatFilter(filter), cursor }),\n key: getAnalyticsRequestKey(`video:views:v2:heatmap:${videoId}`, filter, cursor),\n normalize: false\n };\n },\n\n videoHeatMapAggregation(\n videoId: string,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/aggregation/heat-map`, formatFilter(filter)),\n key: getAnalyticsRequestKey(`video:views:v2:aggregation:heatmap:${videoId}`, filter),\n normalize: false\n };\n }\n};\n"],"x_google_ignoreList":[2],"mappings":"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"}
1
+ {"version":3,"file":"7M6FzdyD.chunk.js","names":[],"sources":["../../../../libs/shared/src/interfaces/models/Dashboard.ts","../../../../libs/shared/src/utils/DurationHelper.ts","../../../../../node_modules/react-intersection-observer/index.mjs","../../src/shared/flight-requests/VideoViewsV2Requests.ts"],"sourcesContent":["import { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { CustomerType } from 'libs/shared/enums/CustomerType';\nimport { LibraryType } from 'libs/shared/enums/LibraryType';\nimport {\n BaseObject,\n BasePaginatedCollection,\n CuratedWidget,\n CuratedWidgetContent,\n CuratedWidgetData\n} from 'libs/shared/interfaces';\n\nexport enum DashboardLearningLevel {\n Any = 'Any',\n Level_1 = 'Level_1',\n Level_2 = 'Level_2',\n Level_3 = 'Level_3',\n Level_4 = 'Level_4'\n}\n\nexport enum DashboardUserType {\n Any = 'Any',\n Staff = 'Staff',\n Learner = 'Learner'\n}\n\nexport enum DashboardStatus {\n Draft = 'Draft',\n Published = 'Published',\n Archived = 'Archived'\n}\n\nexport interface Dashboard extends BaseObject {\n libraryType: LibraryType;\n customerType: CustomerType;\n userRole: number;\n}\n\nexport interface CuratedDashboardMetadata {\n systemGenerated?: boolean;\n channelId?: string;\n}\n\nexport interface CuratedDashboard<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BaseObject {\n contentRegion: ContentRegion;\n description: string;\n learningLevel: DashboardLearningLevel;\n userType: DashboardUserType;\n status: DashboardStatus;\n target: string;\n widgets: CuratedWidget<TWidgetData, TWidgetContent>[];\n metadata: CuratedDashboardMetadata;\n datePublished: string;\n}\n\nexport interface CuratedDashboardCollection<\n TWidgetData extends CuratedWidgetData = CuratedWidgetData,\n TWidgetContent extends CuratedWidgetContent = CuratedWidgetContent\n> extends BasePaginatedCollection<CuratedDashboard<TWidgetData, TWidgetContent>> {}\n\n/**\n * Dashboard identification below\n */\nexport enum DashboardTargetType {\n Discover = 'discover',\n Classification = 'classification',\n ClassificationDirectory = 'classification-directory',\n ClassificationCurriculum = 'classification-curriculum',\n MoviesAndTv = 'movies-and-tv',\n Company = 'company',\n Search = 'search',\n PartnerProfile = 'partner-profile',\n PartnerProfileHub = 'partner-profile-hub',\n DiscoverPartnerProfiles = 'discover-partner-profiles'\n}\n\ninterface DiscoverDashboardInfo {\n targetType: DashboardTargetType.Discover;\n presentationId: string;\n}\n\nexport interface ClassificationDashboardInfo {\n targetType: DashboardTargetType.Classification;\n classificationId: string;\n}\n\nexport interface ClassificationDirectoryInfo {\n targetType: DashboardTargetType.ClassificationDirectory;\n classificationId: string;\n}\n\nexport interface ClassificationCurriculumInfo {\n targetType: DashboardTargetType.ClassificationCurriculum;\n classificationId: string;\n}\n\ninterface MoviesAndTvDashboardInfo {\n targetType: DashboardTargetType.MoviesAndTv;\n presentationId: string;\n}\n\nexport interface CompanyDashboardInfo {\n targetType: DashboardTargetType.Company;\n companyId: string;\n presentationId: string;\n}\n\nexport interface PartnerProfileDashboardInfo {\n targetType: DashboardTargetType.PartnerProfile;\n slug: string;\n}\n\nexport interface PartnerProfileHubDashboardInfo {\n targetType: DashboardTargetType.PartnerProfileHub;\n}\n\nexport interface PartnerProfileDiscoverDashboardInfo {\n targetType: DashboardTargetType.DiscoverPartnerProfiles;\n}\n\nexport type DashboardTargetInfo =\n | DiscoverDashboardInfo |\n ClassificationDashboardInfo |\n ClassificationDirectoryInfo |\n ClassificationCurriculumInfo |\n MoviesAndTvDashboardInfo |\n CompanyDashboardInfo |\n PartnerProfileDashboardInfo |\n PartnerProfileHubDashboardInfo |\n PartnerProfileDiscoverDashboardInfo;\nexport interface UnknownDashboardTargetInfo {\n targetType: DashboardTargetType;\n presentationId: string;\n classificationId: string;\n companyId: string;\n slug: string;\n}\n","import * as _ from 'underscore';\n\nconst padLeft = (value: string | number, totalLength: number, padChar: string) => {\n value = value.toString();\n\n const diff = totalLength - value.length;\n\n if (diff <= 0)\n return value;\n\n return new Array(diff + 1).join(padChar) + value;\n};\n\nconst DurationHelper = {\n /**\n * Copypasta from Online. Feel free to improve it if you see fit - Sha\n */\n ToDisplayDuration(milliseconds: number, showAll?: boolean): string {\n if (!_.isNumber(milliseconds))\n return '';\n \n const time = new Date(milliseconds);\n \n const h = time.getUTCHours();\n const m = padLeft(time.getUTCMinutes(), 2, '0');\n const s = padLeft(time.getUTCSeconds(), 2, '0');\n \n if (showAll || h > 0) {\n return `${h}:${m}:${s}`;\n }\n \n return `${m}:${s}`;\n },\n\n ToDisplayDurationNewStyle(milliseconds: number, includeSeconds?: boolean): string {\n if (!_.isNumber(milliseconds))\n return '';\n\n const time = new Date(milliseconds);\n\n let h = time.getUTCHours();\n let m = time.getUTCMinutes();\n const s = time.getUTCSeconds();\n\n // Round up 1m when >= 30s\n if ((h > 0 || m > 0) && s >= 30) {\n m = m + 1;\n // Handle minute overflow (e.g., 59m + 1 = 60m -> 1hr)\n if (m >= 60) {\n h = h + 1;\n m = 0;\n }\n }\n \n if (h > 0) {\n const hourUnit = h > 1 ? 'hrs' : 'hr';\n\n if (m > 0) {\n if (includeSeconds && s > 0) {\n return `${h}${hourUnit} ${m}m ${s}s`;\n }\n\n return `${h}${hourUnit} ${m}m `;\n }\n \n return `${h} ${hourUnit}`;\n }\n\n if (m > 0) {\n if (includeSeconds && s > 0) {\n return `${m}m ${s}s`;\n }\n\n return `${m}m`;\n }\n\n return `${s}s`;\n },\n\n ToDisplayTimeRange(startMilliseconds: number, endMilliseconds: number) {\n if (!_.isNumber(startMilliseconds) || !_.isNumber(endMilliseconds))\n return '';\n\n const showAll = new Date(endMilliseconds).getUTCHours() > 0;\n\n return `${DurationHelper.ToDisplayDuration(startMilliseconds, showAll)} - ${DurationHelper.ToDisplayDuration(endMilliseconds, showAll)}`;\n }\n};\n\nexport { DurationHelper };\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root)\n return \"0\";\n if (RootIds.has(root))\n return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip)\n return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef();\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref)\n return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current)\n callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef();\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map","\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { StreamAggregationType } from 'libs/shared/apps/analytics/interfaces/StreamAggregationType';\nimport { AnalyticsRequestFilter } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nimport { TopVideoV2 } from 'shared/interfaces';\n\nconst LEGACY_CV_LIVE_CONTENT_TYPE = 'Streamable Learning content';\nconst CV_LIVE_CONTENT_TYPE = 'ClickView Live content';\n\n/**\n * The Videoviews API still reports ClickView Live streams under the product's\n * former name, so relabel them before they are rendered.\n */\nfunction formatCvLiveContentType(data: TopVideoV2[]): TopVideoV2[] {\n if (!Array.isArray(data)) return data;\n\n return data.map(video => (\n video.contentType === LEGACY_CV_LIVE_CONTENT_TYPE ?\n { ...video, contentType: CV_LIVE_CONTENT_TYPE } :\n video\n ));\n}\n\n/**\n * Becasue the V2 endpoints take the user context,\n * userId and customerId cannot be used for these values so instead\n * we are using uid and cid - sha\n */\nfunction formatFilter(filter: AnalyticsRequestFilter) {\n const { userId, customerId, ...rest } = filter;\n return { ...rest, uid: userId, cid: customerId };\n}\n\nexport const VideoViewsV2Requests = {\n aggregation(\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${type}`, formatFilter(filter)),\n key: getAnalyticsRequestKey('video:views:v2:aggregation', filter, type),\n normalize: false\n };\n },\n\n videoAggregation(\n videoId: string,\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/aggregation/${type}`, formatFilter(filter)),\n key: getAnalyticsRequestKey(`video:views:v2:aggregation:${videoId}`, filter, type),\n normalize: false\n };\n },\n\n aggregationChart(\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/aggregation/${type}/chart`, formatFilter(filter)),\n key: getAnalyticsRequestKey('video:views:v2:aggregation:chart', filter, type),\n normalize: false\n };\n },\n\n videoAggregationChart(\n videoId: string,\n type: StreamAggregationType,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/aggregation/${type}/chart`, formatFilter(filter)),\n key: getAnalyticsRequestKey(`video:views:v2:aggregation:chart:${videoId}`, filter, type),\n normalize: false\n };\n },\n\n topStreams(limit: number, filter: AnalyticsRequestFilter): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/top`, { ...formatFilter(filter), limit }),\n key: getAnalyticsRequestKey(`video:views:v2:top:streams:${limit}`, filter),\n normalize: false,\n formatData: formatCvLiveContentType\n };\n },\n\n videoHeatMap(\n videoId: string,\n filter: AnalyticsRequestFilter,\n cursor?: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/heat-map`, { ...formatFilter(filter), cursor }),\n key: getAnalyticsRequestKey(`video:views:v2:heatmap:${videoId}`, filter, cursor),\n normalize: false\n };\n },\n\n videoHeatMapAggregation(\n videoId: string,\n filter: AnalyticsRequestFilter\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v2/analytics/streams/videos/${videoId}/aggregation/heat-map`, formatFilter(filter)),\n key: getAnalyticsRequestKey(`video:views:v2:aggregation:heatmap:${videoId}`, filter),\n normalize: false\n };\n }\n};\n"],"x_google_ignoreList":[2],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{N as e,Tr as t,at as n}from"./CrTgNROp.chunk.js";import{i as r,r as i}from"./CxNc1BDX.chunk.js";import{t as a}from"./BIVEB8w0.chunk.js";import{Ft as o,H as s,j as c}from"./app-jxJcaenU.js";var l=t(((e,t)=>{function n(){return t.exports=n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.exports.__esModule=!0,t.exports.default=t.exports,n.apply(null,arguments)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),u={colours:`amber.apricot.aqua.azure.black.blue.bronze.brown.chocolate.copper.coral.cream.crimson.cyan.emerald.gold.green.grey.indigo.ivory.jade.lavender.lime.maroon.mint.navy.olive.orange.peach.pink.plum.purple.red.rose.ruby.sage.salmon.sapphire.scarlet.silver.sky.teal.turquoise.violet.white.yellow`.split(`.`),animals:`aardvark.albatross.alligator.alpaca.ant.anteater.antelope.ape.armadillo.baboon.badger.bat.bear.beaver.bee.beetle.bison.blackbird.boar.bobcat.bonobo.buffalo.butterfly.camel.canary.capybara.caribou.cat.caterpillar.chameleon.cheetah.chimpanzee.chinchilla.chipmunk.clownfish.cockatoo.cougar.cow.coyote.crab.crane.crocodile.crow.deer.dingo.dog.dolphin.donkey.dove.dragonfly.duck.eagle.elephant.elk.emu.falcon.ferret.finch.firefly.fish.flamingo.fox.frog.gazelle.gecko.gerbil.giraffe.goat.goldfish.goose.gorilla.grasshopper.gull.hamster.hare.hawk.hedgehog.heron.hippopotamus.horse.hummingbird.iguana.impala.jaguar.jellyfish.kangaroo.kingfisher.kiwi.koala.koi.ladybug.lemur.leopard.lion.lizard.llama.lobster.lynx.macaw.magpie.manatee.mandrill.marlin.meerkat.mole.mongoose.monkey.moose.mouse.mule.narwhal.newt.nightingale.ocelot.octopus.orangutan.orca.ostrich.otter.owl.ox.panda.panther.parakeet.parrot.peacock.pelican.penguin.pheasant.pigeon.platypus.pony.porcupine.possum.pufferfish.puffin.puma.quail.rabbit.raccoon.raven.reindeer.rhinoceros.roadrunner.robin.rooster.salamander.salmon.seahorse.seal.shark.sheep.sloth.snail.snake.sparrow.squid.squirrel.starfish.stingray.stork.swallow.swan.swordfish.tapir.tiger.toad.tortoise.toucan.trout.tuna.turtle.wallaby.walrus.weasel.whale.wildebeest.wolf.wolverine.woodpecker.yak.zebra`.split(`.`)},d=a.encloseNamespace(`shared.analyticsUtils`);function f(e){return e.charAt(0).toUpperCase()+e.slice(1)}function p(e){if(!e)return 0;let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t|=0}return Math.abs(t)}function m(e,t){let n=Math.floor(new Date().getMinutes()/5),r=p(`${e||t}-${n}`),i=u.colours[r%u.colours.length],a=u.animals[Math.floor(r/u.colours.length)%u.animals.length];return`${f(i)} ${f(a)}`}function h(e,t){return e?t?m(e.id,e.sessionId):e.deleted?d(`deleted`):o.getFullName(e)||d(`anonUser`):d(`anonUser`)}n();var g=e();function _(e){return(0,g.jsx)(`svg`,{...e,children:(0,g.jsx)(`path`,{d:`m16.837 9.842-1.138-3.678a1.65 1.65 0 0 0-.887-1.01 1.67 1.67 0 0 0-1.348-.02l-1.14.486a.8.8 0 0 1-.647 0l-1.14-.488a1.67 1.67 0 0 0-1.348.021 1.65 1.65 0 0 0-.887 1.01L7.164 9.842a7.17 7.17 0 0 0-3.062 1.85.41.41 0 0 0 .314.683h15.17c.162 0 .31-.094.376-.241a.41.41 0 0 0-.064-.44 7.17 7.17 0 0 0-3.061-1.852M9.094 6.404a.836.836 0 0 1 1.117-.516l1.135.484c.416.181.89.181 1.306 0l1.137-.485a.836.836 0 0 1 1.117.516l.976 3.153a16.17 16.17 0 0 0-7.764 0zm-3.59 5.148c1.455-1.019 3.866-1.645 6.497-1.645a14.5 14.5 0 0 1 4.41.651c.74.229 1.444.563 2.087.994zm9.807 1.645a2.9 2.9 0 0 0-2.508 1.447 1.61 1.61 0 0 0-1.604 0c-.763-1.323-2.425-1.835-3.807-1.173s-2.016 2.272-1.452 3.69a2.93 2.93 0 0 0 3.6 1.704 2.906 2.906 0 0 0 1.968-3.445.88.88 0 0 1 .986 0 2.87 2.87 0 0 0 1.269 3.088 2.91 2.91 0 0 0 3.351-.176c.966-.762 1.341-2.048.935-3.204s-1.505-1.932-2.738-1.93m-6.62 4.936c-1.143 0-2.07-.92-2.07-2.056s.927-2.057 2.07-2.057 2.069.92 2.069 2.057a2.065 2.065 0 0 1-2.07 2.056m6.62 0c-1.142 0-2.069-.92-2.069-2.056s.927-2.057 2.07-2.057 2.068.92 2.068 2.057a2.065 2.065 0 0 1-2.069 2.056`,fill:`currentColor`})})}var v={iconCircle:`_iconCircle_186sk_1`,dot:`_dot_186sk_8`};function y(e){let t=e.type===`anon`;return e.type===`student-reach`?(0,g.jsx)(`div`,{className:`position-relative h-100 w-100`,children:(0,g.jsx)(`div`,{className:`${v.iconCircle} bg-orange text-light ${e.extraClasses||``}`,children:(0,g.jsx)(i,{svg:c,size:e.anonymousSvgSize||r.Large,className:`svg-container w-100 h-100`})})}):t?(0,g.jsxs)(`div`,{className:`position-relative h-100 w-100`,children:[(0,g.jsx)(`div`,{className:`${v.iconCircle} bg-gray-700 text-light ${e.extraClasses||``}`,children:(0,g.jsx)(i,{svg:_,size:e.anonymousSvgSize||r.Large,className:`svg-container w-100 h-100`})}),e.showDot&&(0,g.jsx)(`div`,{className:`${v.dot} rounded-circle bg-danger`})]}):(0,g.jsx)(s,{imageCdnUrl:e.imageCdnUrl,initials:e.initials,imageUrl:e.imageUrl,extraClasses:e.extraClasses,showDot:e.showDot,anonymiseUsers:e.anonymiseUsers})}export{h as n,l as r,y as t};
2
- //# sourceMappingURL=D3Pl0-fQ.chunk.js.map
1
+ import{N as e,Tr as t,at as n}from"./CrTgNROp.chunk.js";import{i as r,r as i}from"./CxNc1BDX.chunk.js";import{t as a}from"./BIVEB8w0.chunk.js";import{Ft as o,H as s,j as c}from"./app-B1NVV4PT.js";var l=t(((e,t)=>{function n(){return t.exports=n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.exports.__esModule=!0,t.exports.default=t.exports,n.apply(null,arguments)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),u={colours:`amber.apricot.aqua.azure.black.blue.bronze.brown.chocolate.copper.coral.cream.crimson.cyan.emerald.gold.green.grey.indigo.ivory.jade.lavender.lime.maroon.mint.navy.olive.orange.peach.pink.plum.purple.red.rose.ruby.sage.salmon.sapphire.scarlet.silver.sky.teal.turquoise.violet.white.yellow`.split(`.`),animals:`aardvark.albatross.alligator.alpaca.ant.anteater.antelope.ape.armadillo.baboon.badger.bat.bear.beaver.bee.beetle.bison.blackbird.boar.bobcat.bonobo.buffalo.butterfly.camel.canary.capybara.caribou.cat.caterpillar.chameleon.cheetah.chimpanzee.chinchilla.chipmunk.clownfish.cockatoo.cougar.cow.coyote.crab.crane.crocodile.crow.deer.dingo.dog.dolphin.donkey.dove.dragonfly.duck.eagle.elephant.elk.emu.falcon.ferret.finch.firefly.fish.flamingo.fox.frog.gazelle.gecko.gerbil.giraffe.goat.goldfish.goose.gorilla.grasshopper.gull.hamster.hare.hawk.hedgehog.heron.hippopotamus.horse.hummingbird.iguana.impala.jaguar.jellyfish.kangaroo.kingfisher.kiwi.koala.koi.ladybug.lemur.leopard.lion.lizard.llama.lobster.lynx.macaw.magpie.manatee.mandrill.marlin.meerkat.mole.mongoose.monkey.moose.mouse.mule.narwhal.newt.nightingale.ocelot.octopus.orangutan.orca.ostrich.otter.owl.ox.panda.panther.parakeet.parrot.peacock.pelican.penguin.pheasant.pigeon.platypus.pony.porcupine.possum.pufferfish.puffin.puma.quail.rabbit.raccoon.raven.reindeer.rhinoceros.roadrunner.robin.rooster.salamander.salmon.seahorse.seal.shark.sheep.sloth.snail.snake.sparrow.squid.squirrel.starfish.stingray.stork.swallow.swan.swordfish.tapir.tiger.toad.tortoise.toucan.trout.tuna.turtle.wallaby.walrus.weasel.whale.wildebeest.wolf.wolverine.woodpecker.yak.zebra`.split(`.`)},d=a.encloseNamespace(`shared.analyticsUtils`);function f(e){return e.charAt(0).toUpperCase()+e.slice(1)}function p(e){if(!e)return 0;let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t|=0}return Math.abs(t)}function m(e,t){let n=Math.floor(new Date().getMinutes()/5),r=p(`${e||t}-${n}`),i=u.colours[r%u.colours.length],a=u.animals[Math.floor(r/u.colours.length)%u.animals.length];return`${f(i)} ${f(a)}`}function h(e,t){return e?t?m(e.id,e.sessionId):e.deleted?d(`deleted`):o.getFullName(e)||d(`anonUser`):d(`anonUser`)}n();var g=e();function _(e){return(0,g.jsx)(`svg`,{...e,children:(0,g.jsx)(`path`,{d:`m16.837 9.842-1.138-3.678a1.65 1.65 0 0 0-.887-1.01 1.67 1.67 0 0 0-1.348-.02l-1.14.486a.8.8 0 0 1-.647 0l-1.14-.488a1.67 1.67 0 0 0-1.348.021 1.65 1.65 0 0 0-.887 1.01L7.164 9.842a7.17 7.17 0 0 0-3.062 1.85.41.41 0 0 0 .314.683h15.17c.162 0 .31-.094.376-.241a.41.41 0 0 0-.064-.44 7.17 7.17 0 0 0-3.061-1.852M9.094 6.404a.836.836 0 0 1 1.117-.516l1.135.484c.416.181.89.181 1.306 0l1.137-.485a.836.836 0 0 1 1.117.516l.976 3.153a16.17 16.17 0 0 0-7.764 0zm-3.59 5.148c1.455-1.019 3.866-1.645 6.497-1.645a14.5 14.5 0 0 1 4.41.651c.74.229 1.444.563 2.087.994zm9.807 1.645a2.9 2.9 0 0 0-2.508 1.447 1.61 1.61 0 0 0-1.604 0c-.763-1.323-2.425-1.835-3.807-1.173s-2.016 2.272-1.452 3.69a2.93 2.93 0 0 0 3.6 1.704 2.906 2.906 0 0 0 1.968-3.445.88.88 0 0 1 .986 0 2.87 2.87 0 0 0 1.269 3.088 2.91 2.91 0 0 0 3.351-.176c.966-.762 1.341-2.048.935-3.204s-1.505-1.932-2.738-1.93m-6.62 4.936c-1.143 0-2.07-.92-2.07-2.056s.927-2.057 2.07-2.057 2.069.92 2.069 2.057a2.065 2.065 0 0 1-2.07 2.056m6.62 0c-1.142 0-2.069-.92-2.069-2.056s.927-2.057 2.07-2.057 2.068.92 2.068 2.057a2.065 2.065 0 0 1-2.069 2.056`,fill:`currentColor`})})}var v={iconCircle:`_iconCircle_186sk_1`,dot:`_dot_186sk_8`};function y(e){let t=e.type===`anon`;return e.type===`student-reach`?(0,g.jsx)(`div`,{className:`position-relative h-100 w-100`,children:(0,g.jsx)(`div`,{className:`${v.iconCircle} bg-orange text-light ${e.extraClasses||``}`,children:(0,g.jsx)(i,{svg:c,size:e.anonymousSvgSize||r.Large,className:`svg-container w-100 h-100`})})}):t?(0,g.jsxs)(`div`,{className:`position-relative h-100 w-100`,children:[(0,g.jsx)(`div`,{className:`${v.iconCircle} bg-gray-700 text-light ${e.extraClasses||``}`,children:(0,g.jsx)(i,{svg:_,size:e.anonymousSvgSize||r.Large,className:`svg-container w-100 h-100`})}),e.showDot&&(0,g.jsx)(`div`,{className:`${v.dot} rounded-circle bg-danger`})]}):(0,g.jsx)(s,{imageCdnUrl:e.imageCdnUrl,initials:e.initials,imageUrl:e.imageUrl,extraClasses:e.extraClasses,showDot:e.showDot,anonymiseUsers:e.anonymiseUsers})}export{h as n,l as r,y as t};
2
+ //# sourceMappingURL=BJOOjdj2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"D3Pl0-fQ.chunk.js","names":[],"sources":["../../../../../node_modules/@babel/runtime/helpers/extends.js","../../../../libs/shared/src/apps/analytics/utils/anon-name-dictionaries.json","../../../../libs/shared/src/apps/analytics/utils/AnonymiseUserUtils.ts","../../../../libs/shared/src/images/svg/objects/AnonymousSvg.tsx","../../../../libs/shared/src/components/engagement-avatar/engagement-avatar.module.scss","../../../../libs/shared/src/components/engagement-avatar/EngagementAvatar.tsx"],"sourcesContent":["function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","{\n \"colours\": [\n \"amber\",\n \"apricot\",\n \"aqua\",\n \"azure\",\n \"black\",\n \"blue\",\n \"bronze\",\n \"brown\",\n \"chocolate\",\n \"copper\",\n \"coral\",\n \"cream\",\n \"crimson\",\n \"cyan\",\n \"emerald\",\n \"gold\",\n \"green\",\n \"grey\",\n \"indigo\",\n \"ivory\",\n \"jade\",\n \"lavender\",\n \"lime\",\n \"maroon\",\n \"mint\",\n \"navy\",\n \"olive\",\n \"orange\",\n \"peach\",\n \"pink\",\n \"plum\",\n \"purple\",\n \"red\",\n \"rose\",\n \"ruby\",\n \"sage\",\n \"salmon\",\n \"sapphire\",\n \"scarlet\",\n \"silver\",\n \"sky\",\n \"teal\",\n \"turquoise\",\n \"violet\",\n \"white\",\n \"yellow\"\n ],\n \"animals\": [\n \"aardvark\", \"albatross\", \"alligator\", \"alpaca\", \"ant\", \"anteater\", \"antelope\", \"ape\", \"armadillo\",\n \"baboon\", \"badger\", \"bat\", \"bear\", \"beaver\", \"bee\", \"beetle\", \"bison\", \"blackbird\", \"boar\", \"bobcat\", \"bonobo\", \"buffalo\", \"butterfly\",\n \"camel\", \"canary\", \"capybara\", \"caribou\", \"cat\", \"caterpillar\", \"chameleon\",\n \"cheetah\", \"chimpanzee\", \"chinchilla\", \"chipmunk\", \"clownfish\", \"cockatoo\", \"cougar\", \"cow\", \"coyote\",\n \"crab\", \"crane\", \"crocodile\", \"crow\",\n \"deer\", \"dingo\", \"dog\", \"dolphin\", \"donkey\", \"dove\", \"dragonfly\", \"duck\",\n \"eagle\", \"elephant\", \"elk\", \"emu\",\n \"falcon\", \"ferret\", \"finch\", \"firefly\", \"fish\", \"flamingo\", \"fox\", \"frog\",\n \"gazelle\", \"gecko\", \"gerbil\", \"giraffe\", \"goat\", \"goldfish\", \"goose\", \"gorilla\", \"grasshopper\", \"gull\",\n \"hamster\", \"hare\", \"hawk\", \"hedgehog\", \"heron\", \"hippopotamus\", \"horse\", \"hummingbird\",\n \"iguana\", \"impala\",\n \"jaguar\", \"jellyfish\",\n \"kangaroo\", \"kingfisher\", \"kiwi\", \"koala\", \"koi\",\n \"ladybug\", \"lemur\", \"leopard\", \"lion\", \"lizard\", \"llama\", \"lobster\", \"lynx\",\n \"macaw\", \"magpie\", \"manatee\", \"mandrill\", \"marlin\", \"meerkat\", \"mole\", \"mongoose\", \"monkey\", \"moose\", \"mouse\", \"mule\",\n \"narwhal\", \"newt\", \"nightingale\",\n \"ocelot\", \"octopus\", \"orangutan\", \"orca\", \"ostrich\", \"otter\", \"owl\", \"ox\",\n \"panda\", \"panther\", \"parakeet\", \"parrot\", \"peacock\", \"pelican\", \"penguin\", \"pheasant\", \"pigeon\", \"platypus\",\n \"pony\", \"porcupine\", \"possum\", \"pufferfish\", \"puffin\", \"puma\",\n \"quail\",\n \"rabbit\", \"raccoon\", \"raven\", \"reindeer\", \"rhinoceros\", \"roadrunner\", \"robin\", \"rooster\",\n \"salamander\", \"salmon\", \"seahorse\", \"seal\", \"shark\", \"sheep\", \"sloth\", \"snail\", \"snake\", \"sparrow\",\n \"squid\", \"squirrel\", \"starfish\", \"stingray\", \"stork\", \"swallow\", \"swan\", \"swordfish\",\n \"tapir\", \"tiger\", \"toad\", \"tortoise\", \"toucan\", \"trout\", \"tuna\", \"turtle\",\n \"wallaby\", \"walrus\", \"weasel\", \"whale\", \"wildebeest\", \"wolf\", \"wolverine\", \"woodpecker\",\n \"yak\",\n \"zebra\"\n ]\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnonUser } from 'libs/shared/interfaces/models/interactive-results/AnonUser';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport dictionaries from './anon-name-dictionaries.json';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction capitalize(word: string): string {\n return word.charAt(0).toUpperCase() + word.slice(1);\n}\n\nfunction stringToSeed(input: string): number {\n if (!input)\n return 0;\n\n // Simple hash function (DJB2-like) for browsers\n let hash = 0;\n for (let i = 0; i < input.length; i++) {\n const char = input.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash |= 0; // Convert to 32bit integer\n }\n return Math.abs(hash);\n}\n\nfunction generateAnonName(userId: string, sessionId: string): string {\n /**\n * Generate a seed that is unique to each user but changes every 5 minutes.\n *\n * We use a seed so that if the same user's name is anonymised multiple times\n * in quick succession (e.g. multiple renders), the same name will be returned each time.\n *\n * We change the seed every 5 minutes so that students don't always have the same name.\n */\n const bucket = Math.floor((new Date()).getMinutes() / 5);\n const seed = stringToSeed(`${userId || sessionId}-${bucket}`);\n // Treat the seed as a mixed-radix number: the low \"digit\" (mod) picks the colour, the next\n // \"digit\" (quotient) picks the animal. This decorrelates the two indices so every pair is\n // reachable and consecutive seeds cycle through all colours before the animal advances.\n const colour = dictionaries.colours[seed % dictionaries.colours.length];\n const animal = dictionaries.animals[Math.floor(seed / dictionaries.colours.length) % dictionaries.animals.length];\n return `${capitalize(colour)} ${capitalize(animal)}`;\n}\n\nexport function anonymiseUserName(user: AnonUser, shouldAnonymise: boolean): string {\n if (!user) {\n return getPhrase('anonUser');\n }\n\n if (!shouldAnonymise) {\n if (user.deleted)\n return getPhrase('deleted');\n\n return UserHelper.getFullName(user) || getPhrase('anonUser');\n }\n\n return generateAnonName(user.id, user.sessionId);\n}\n","import React from 'react';\n\nexport function AnonymousSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}\n >\n <path\n d='m16.837 9.842-1.138-3.678a1.65 1.65 0 0 0-.887-1.01 1.67 1.67 0 0 0-1.348-.02l-1.14.486a.8.8 0 0 1-.647 0l-1.14-.488a1.67 1.67 0 0 0-1.348.021 1.65 1.65 0 0 0-.887 1.01L7.164 9.842a7.17 7.17 0 0 0-3.062 1.85.41.41 0 0 0 .314.683h15.17c.162 0 .31-.094.376-.241a.41.41 0 0 0-.064-.44 7.17 7.17 0 0 0-3.061-1.852M9.094 6.404a.836.836 0 0 1 1.117-.516l1.135.484c.416.181.89.181 1.306 0l1.137-.485a.836.836 0 0 1 1.117.516l.976 3.153a16.17 16.17 0 0 0-7.764 0zm-3.59 5.148c1.455-1.019 3.866-1.645 6.497-1.645a14.5 14.5 0 0 1 4.41.651c.74.229 1.444.563 2.087.994zm9.807 1.645a2.9 2.9 0 0 0-2.508 1.447 1.61 1.61 0 0 0-1.604 0c-.763-1.323-2.425-1.835-3.807-1.173s-2.016 2.272-1.452 3.69a2.93 2.93 0 0 0 3.6 1.704 2.906 2.906 0 0 0 1.968-3.445.88.88 0 0 1 .986 0 2.87 2.87 0 0 0 1.269 3.088 2.91 2.91 0 0 0 3.351-.176c.966-.762 1.341-2.048.935-3.204s-1.505-1.932-2.738-1.93m-6.62 4.936c-1.143 0-2.07-.92-2.07-2.056s.927-2.057 2.07-2.057 2.069.92 2.069 2.057a2.065 2.065 0 0 1-2.07 2.056m6.62 0c-1.142 0-2.069-.92-2.069-2.056s.927-2.057 2.07-2.057 2.068.92 2.068 2.057a2.065 2.065 0 0 1-2.069 2.056'\n fill='currentColor'\n />\n </svg>\n );\n}\n",":local {\n .iconCircle {\n border-radius: 50%;\n width: 100%;\n height: 100%;\n text-align: center;\n line-height: 100%;\n }\n\n .dot {\n position: absolute;\n top: -0.1rem;\n right: -0.1rem;\n width: 0.8rem;\n height: 0.8rem;\n }\n}\n","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { AnonymousSvg } from 'libs/shared/images/svg/objects/AnonymousSvg';\nimport { GroupSvg } from 'libs/shared/images/svg/objects/GroupSvg';\nimport { EngagementType } from 'libs/shared/interfaces';\n\nimport styles from './engagement-avatar.module.scss';\n\ninterface EngagementAvatarProps {\n imageCdnUrl: string;\n initials: string;\n imageUrl?: string;\n extraClasses?: string;\n showDot?: boolean;\n anonymiseUsers?: boolean;\n /** When set, determines the avatar icon based on engagement type. */\n type?: EngagementType;\n anonymousSvgSize?: SvgContainerSize;\n}\n\nexport function EngagementAvatar(props: EngagementAvatarProps): JSX.Element {\n const isAnonymous = props.type === 'anon';\n const isClassroomViews = props.type === 'student-reach';\n\n if (isClassroomViews) {\n return (\n <div className='position-relative h-100 w-100'>\n <div className={`${styles.iconCircle} bg-orange text-light ${props.extraClasses || ''}`}>\n <SvgContainer\n svg={GroupSvg}\n size={props.anonymousSvgSize || SvgContainerSize.Large}\n className='svg-container w-100 h-100'\n />\n </div>\n </div>\n );\n }\n\n if (isAnonymous) {\n return (\n <div className='position-relative h-100 w-100'>\n <div className={`${styles.iconCircle} bg-gray-700 text-light ${props.extraClasses || ''}`}>\n <SvgContainer\n svg={AnonymousSvg}\n size={props.anonymousSvgSize || SvgContainerSize.Large}\n className='svg-container w-100 h-100'\n />\n </div>\n {props.showDot && <div className={`${styles.dot} rounded-circle bg-danger`} />}\n </div>\n );\n }\n\n return (\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.initials}\n imageUrl={props.imageUrl}\n extraClasses={props.extraClasses}\n showDot={props.showDot}\n anonymiseUsers={props.anonymiseUsers}\n />\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"BJOOjdj2.chunk.js","names":[],"sources":["../../../../../node_modules/@babel/runtime/helpers/extends.js","../../../../libs/shared/src/apps/analytics/utils/anon-name-dictionaries.json","../../../../libs/shared/src/apps/analytics/utils/AnonymiseUserUtils.ts","../../../../libs/shared/src/images/svg/objects/AnonymousSvg.tsx","../../../../libs/shared/src/components/engagement-avatar/engagement-avatar.module.scss","../../../../libs/shared/src/components/engagement-avatar/EngagementAvatar.tsx"],"sourcesContent":["function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","{\n \"colours\": [\n \"amber\",\n \"apricot\",\n \"aqua\",\n \"azure\",\n \"black\",\n \"blue\",\n \"bronze\",\n \"brown\",\n \"chocolate\",\n \"copper\",\n \"coral\",\n \"cream\",\n \"crimson\",\n \"cyan\",\n \"emerald\",\n \"gold\",\n \"green\",\n \"grey\",\n \"indigo\",\n \"ivory\",\n \"jade\",\n \"lavender\",\n \"lime\",\n \"maroon\",\n \"mint\",\n \"navy\",\n \"olive\",\n \"orange\",\n \"peach\",\n \"pink\",\n \"plum\",\n \"purple\",\n \"red\",\n \"rose\",\n \"ruby\",\n \"sage\",\n \"salmon\",\n \"sapphire\",\n \"scarlet\",\n \"silver\",\n \"sky\",\n \"teal\",\n \"turquoise\",\n \"violet\",\n \"white\",\n \"yellow\"\n ],\n \"animals\": [\n \"aardvark\", \"albatross\", \"alligator\", \"alpaca\", \"ant\", \"anteater\", \"antelope\", \"ape\", \"armadillo\",\n \"baboon\", \"badger\", \"bat\", \"bear\", \"beaver\", \"bee\", \"beetle\", \"bison\", \"blackbird\", \"boar\", \"bobcat\", \"bonobo\", \"buffalo\", \"butterfly\",\n \"camel\", \"canary\", \"capybara\", \"caribou\", \"cat\", \"caterpillar\", \"chameleon\",\n \"cheetah\", \"chimpanzee\", \"chinchilla\", \"chipmunk\", \"clownfish\", \"cockatoo\", \"cougar\", \"cow\", \"coyote\",\n \"crab\", \"crane\", \"crocodile\", \"crow\",\n \"deer\", \"dingo\", \"dog\", \"dolphin\", \"donkey\", \"dove\", \"dragonfly\", \"duck\",\n \"eagle\", \"elephant\", \"elk\", \"emu\",\n \"falcon\", \"ferret\", \"finch\", \"firefly\", \"fish\", \"flamingo\", \"fox\", \"frog\",\n \"gazelle\", \"gecko\", \"gerbil\", \"giraffe\", \"goat\", \"goldfish\", \"goose\", \"gorilla\", \"grasshopper\", \"gull\",\n \"hamster\", \"hare\", \"hawk\", \"hedgehog\", \"heron\", \"hippopotamus\", \"horse\", \"hummingbird\",\n \"iguana\", \"impala\",\n \"jaguar\", \"jellyfish\",\n \"kangaroo\", \"kingfisher\", \"kiwi\", \"koala\", \"koi\",\n \"ladybug\", \"lemur\", \"leopard\", \"lion\", \"lizard\", \"llama\", \"lobster\", \"lynx\",\n \"macaw\", \"magpie\", \"manatee\", \"mandrill\", \"marlin\", \"meerkat\", \"mole\", \"mongoose\", \"monkey\", \"moose\", \"mouse\", \"mule\",\n \"narwhal\", \"newt\", \"nightingale\",\n \"ocelot\", \"octopus\", \"orangutan\", \"orca\", \"ostrich\", \"otter\", \"owl\", \"ox\",\n \"panda\", \"panther\", \"parakeet\", \"parrot\", \"peacock\", \"pelican\", \"penguin\", \"pheasant\", \"pigeon\", \"platypus\",\n \"pony\", \"porcupine\", \"possum\", \"pufferfish\", \"puffin\", \"puma\",\n \"quail\",\n \"rabbit\", \"raccoon\", \"raven\", \"reindeer\", \"rhinoceros\", \"roadrunner\", \"robin\", \"rooster\",\n \"salamander\", \"salmon\", \"seahorse\", \"seal\", \"shark\", \"sheep\", \"sloth\", \"snail\", \"snake\", \"sparrow\",\n \"squid\", \"squirrel\", \"starfish\", \"stingray\", \"stork\", \"swallow\", \"swan\", \"swordfish\",\n \"tapir\", \"tiger\", \"toad\", \"tortoise\", \"toucan\", \"trout\", \"tuna\", \"turtle\",\n \"wallaby\", \"walrus\", \"weasel\", \"whale\", \"wildebeest\", \"wolf\", \"wolverine\", \"woodpecker\",\n \"yak\",\n \"zebra\"\n ]\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnonUser } from 'libs/shared/interfaces/models/interactive-results/AnonUser';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport dictionaries from './anon-name-dictionaries.json';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction capitalize(word: string): string {\n return word.charAt(0).toUpperCase() + word.slice(1);\n}\n\nfunction stringToSeed(input: string): number {\n if (!input)\n return 0;\n\n // Simple hash function (DJB2-like) for browsers\n let hash = 0;\n for (let i = 0; i < input.length; i++) {\n const char = input.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash |= 0; // Convert to 32bit integer\n }\n return Math.abs(hash);\n}\n\nfunction generateAnonName(userId: string, sessionId: string): string {\n /**\n * Generate a seed that is unique to each user but changes every 5 minutes.\n *\n * We use a seed so that if the same user's name is anonymised multiple times\n * in quick succession (e.g. multiple renders), the same name will be returned each time.\n *\n * We change the seed every 5 minutes so that students don't always have the same name.\n */\n const bucket = Math.floor((new Date()).getMinutes() / 5);\n const seed = stringToSeed(`${userId || sessionId}-${bucket}`);\n // Treat the seed as a mixed-radix number: the low \"digit\" (mod) picks the colour, the next\n // \"digit\" (quotient) picks the animal. This decorrelates the two indices so every pair is\n // reachable and consecutive seeds cycle through all colours before the animal advances.\n const colour = dictionaries.colours[seed % dictionaries.colours.length];\n const animal = dictionaries.animals[Math.floor(seed / dictionaries.colours.length) % dictionaries.animals.length];\n return `${capitalize(colour)} ${capitalize(animal)}`;\n}\n\nexport function anonymiseUserName(user: AnonUser, shouldAnonymise: boolean): string {\n if (!user) {\n return getPhrase('anonUser');\n }\n\n if (!shouldAnonymise) {\n if (user.deleted)\n return getPhrase('deleted');\n\n return UserHelper.getFullName(user) || getPhrase('anonUser');\n }\n\n return generateAnonName(user.id, user.sessionId);\n}\n","import React from 'react';\n\nexport function AnonymousSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}\n >\n <path\n d='m16.837 9.842-1.138-3.678a1.65 1.65 0 0 0-.887-1.01 1.67 1.67 0 0 0-1.348-.02l-1.14.486a.8.8 0 0 1-.647 0l-1.14-.488a1.67 1.67 0 0 0-1.348.021 1.65 1.65 0 0 0-.887 1.01L7.164 9.842a7.17 7.17 0 0 0-3.062 1.85.41.41 0 0 0 .314.683h15.17c.162 0 .31-.094.376-.241a.41.41 0 0 0-.064-.44 7.17 7.17 0 0 0-3.061-1.852M9.094 6.404a.836.836 0 0 1 1.117-.516l1.135.484c.416.181.89.181 1.306 0l1.137-.485a.836.836 0 0 1 1.117.516l.976 3.153a16.17 16.17 0 0 0-7.764 0zm-3.59 5.148c1.455-1.019 3.866-1.645 6.497-1.645a14.5 14.5 0 0 1 4.41.651c.74.229 1.444.563 2.087.994zm9.807 1.645a2.9 2.9 0 0 0-2.508 1.447 1.61 1.61 0 0 0-1.604 0c-.763-1.323-2.425-1.835-3.807-1.173s-2.016 2.272-1.452 3.69a2.93 2.93 0 0 0 3.6 1.704 2.906 2.906 0 0 0 1.968-3.445.88.88 0 0 1 .986 0 2.87 2.87 0 0 0 1.269 3.088 2.91 2.91 0 0 0 3.351-.176c.966-.762 1.341-2.048.935-3.204s-1.505-1.932-2.738-1.93m-6.62 4.936c-1.143 0-2.07-.92-2.07-2.056s.927-2.057 2.07-2.057 2.069.92 2.069 2.057a2.065 2.065 0 0 1-2.07 2.056m6.62 0c-1.142 0-2.069-.92-2.069-2.056s.927-2.057 2.07-2.057 2.068.92 2.068 2.057a2.065 2.065 0 0 1-2.069 2.056'\n fill='currentColor'\n />\n </svg>\n );\n}\n",":local {\n .iconCircle {\n border-radius: 50%;\n width: 100%;\n height: 100%;\n text-align: center;\n line-height: 100%;\n }\n\n .dot {\n position: absolute;\n top: -0.1rem;\n right: -0.1rem;\n width: 0.8rem;\n height: 0.8rem;\n }\n}\n","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { AnonymousSvg } from 'libs/shared/images/svg/objects/AnonymousSvg';\nimport { GroupSvg } from 'libs/shared/images/svg/objects/GroupSvg';\nimport { EngagementType } from 'libs/shared/interfaces';\n\nimport styles from './engagement-avatar.module.scss';\n\ninterface EngagementAvatarProps {\n imageCdnUrl: string;\n initials: string;\n imageUrl?: string;\n extraClasses?: string;\n showDot?: boolean;\n anonymiseUsers?: boolean;\n /** When set, determines the avatar icon based on engagement type. */\n type?: EngagementType;\n anonymousSvgSize?: SvgContainerSize;\n}\n\nexport function EngagementAvatar(props: EngagementAvatarProps): JSX.Element {\n const isAnonymous = props.type === 'anon';\n const isClassroomViews = props.type === 'student-reach';\n\n if (isClassroomViews) {\n return (\n <div className='position-relative h-100 w-100'>\n <div className={`${styles.iconCircle} bg-orange text-light ${props.extraClasses || ''}`}>\n <SvgContainer\n svg={GroupSvg}\n size={props.anonymousSvgSize || SvgContainerSize.Large}\n className='svg-container w-100 h-100'\n />\n </div>\n </div>\n );\n }\n\n if (isAnonymous) {\n return (\n <div className='position-relative h-100 w-100'>\n <div className={`${styles.iconCircle} bg-gray-700 text-light ${props.extraClasses || ''}`}>\n <SvgContainer\n svg={AnonymousSvg}\n size={props.anonymousSvgSize || SvgContainerSize.Large}\n className='svg-container w-100 h-100'\n />\n </div>\n {props.showDot && <div className={`${styles.dot} rounded-circle bg-danger`} />}\n </div>\n );\n }\n\n return (\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.initials}\n imageUrl={props.imageUrl}\n extraClasses={props.extraClasses}\n showDot={props.showDot}\n anonymiseUsers={props.anonymiseUsers}\n />\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Dr as e,H as t,M as n,N as r,Q as i,R as a,X as o,at as s}from"./CrTgNROp.chunk.js";import{g as c,n as l}from"./Dwe-4MVf.chunk.js";import{t as u}from"./BIVEB8w0.chunk.js";import{S as d,Z as f,at as p,u as m}from"./app-jxJcaenU.js";import{t as h}from"./B0BRYUl5.chunk.js";var g=e(s()),_=r(),v=`reports.removeLogo`,y=u.encloseNamespace(v);function b(e){let[r,s]=g.useState(!1),u=c(),b=h(),x=d();async function S(){s(!0);try{await u(m.removeLogo(e.customerId,e.logoId)),b.success(y(x?`successTertiary`:`success`)),n.logUserAction({id:e.logoId},{actionType:o.Remove,entity:a.Logo,workflowPhase:i.Complete,location:t.Popup}),e.closePopup()}catch{b.success(y(x?`errorTertiary`:`error`)),s(!1)}}return(0,_.jsxs)(p,{closePopup:e.closePopup,title:y(x?`removeSchoolCrestTertiary`:`removeSchoolCrest`),children:[(0,_.jsx)(`p`,{children:(0,_.jsx)(l,{namespace:v,phrase:x?`areYouSureTertiary`:`areYouSure`})}),(0,_.jsxs)(f,{children:[(0,_.jsx)(f.Cancel,{onClick:e.closePopup}),(0,_.jsx)(f.Submit,{onClick:S,text:y(`remove`),showSpinner:r,variant:`danger`})]})]})}export{b as RemoveLogoView};
2
- //# sourceMappingURL=B9ojUSnp2.chunk.js.map
1
+ import{Dr as e,H as t,M as n,N as r,Q as i,R as a,X as o,at as s}from"./CrTgNROp.chunk.js";import{g as c,n as l}from"./Dwe-4MVf.chunk.js";import{t as u}from"./BIVEB8w0.chunk.js";import{S as d,Z as f,at as p,u as m}from"./app-B1NVV4PT.js";import{t as h}from"./B0BRYUl5.chunk.js";var g=e(s()),_=r(),v=`reports.removeLogo`,y=u.encloseNamespace(v);function b(e){let[r,s]=g.useState(!1),u=c(),b=h(),x=d();async function S(){s(!0);try{await u(m.removeLogo(e.customerId,e.logoId)),b.success(y(x?`successTertiary`:`success`)),n.logUserAction({id:e.logoId},{actionType:o.Remove,entity:a.Logo,workflowPhase:i.Complete,location:t.Popup}),e.closePopup()}catch{b.success(y(x?`errorTertiary`:`error`)),s(!1)}}return(0,_.jsxs)(p,{closePopup:e.closePopup,title:y(x?`removeSchoolCrestTertiary`:`removeSchoolCrest`),children:[(0,_.jsx)(`p`,{children:(0,_.jsx)(l,{namespace:v,phrase:x?`areYouSureTertiary`:`areYouSure`})}),(0,_.jsxs)(f,{children:[(0,_.jsx)(f.Cancel,{onClick:e.closePopup}),(0,_.jsx)(f.Submit,{onClick:S,text:y(`remove`),showSpinner:r,variant:`danger`})]})]})}export{b as RemoveLogoView};
2
+ //# sourceMappingURL=BL1X9vs52.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"B9ojUSnp2.chunk.js","names":[],"sources":["../../src/shared/views/remove-logo/RemoveLogoView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { LogoRequests } from 'shared/flight-requests/LogoRequests';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\n\nconst namespace = 'reports.removeLogo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface RemoveLogoViewProps extends PopupViewProps {\n logoId: string;\n customerId: string;\n}\n\nexport function RemoveLogoView(props: RemoveLogoViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n const isTertiary = useIsTertiary();\n\n async function onClickRemove(): Promise<void> {\n setShowSpinner(true);\n\n try {\n await fetchAsync(LogoRequests.removeLogo(props.customerId, props.logoId));\n\n alerts.success(getPhrase(isTertiary ? 'successTertiary' : 'success'));\n\n AnalyticsHelper.logUserAction({\n id: props.logoId\n }, {\n actionType: UserAction.Remove,\n entity: EntityType.Logo,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n\n props.closePopup();\n } catch {\n alerts.success(getPhrase(isTertiary ? 'errorTertiary' : 'error'));\n setShowSpinner(false);\n }\n }\n\n return (\n <Popup\n closePopup={props.closePopup}\n title={isTertiary ? getPhrase('removeSchoolCrestTertiary') : getPhrase('removeSchoolCrest')}\n >\n <p><Text namespace={namespace} phrase={isTertiary ? 'areYouSureTertiary' : 'areYouSure'} /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n onClick={onClickRemove}\n text={getPhrase('remove')}\n showSpinner={showSpinner}\n variant='danger'\n />\n </PopupButtons>\n </Popup>\n );\n}\n"],"mappings":"ySAiBM,EAAY,qBACZ,EAAY,EAAgB,iBAAiB,CAAS,EAO5D,SAAgB,EAAe,EAAyC,CACtE,GAAM,CAAE,EAAa,GAAA,EAAyB,SAAS,EAAK,EAEtD,EAAa,EAAwB,EAErC,EAAS,EAAU,EACnB,EAAa,EAAc,EAEjC,eAAe,GAA+B,CAC5C,EAAe,EAAI,EAEnB,GAAI,CACF,MAAM,EAAW,EAAa,WAAW,EAAM,WAAY,EAAM,MAAM,CAAC,EAExE,EAAO,QAAQ,EAAU,EAAa,kBAAoB,SAAS,CAAC,EAEpE,EAAgB,cAAc,CAC5B,GAAI,EAAM,MACZ,EAAG,CACD,WAAY,EAAW,OACvB,OAAQ,EAAW,KACnB,cAAe,EAAc,SAC7B,SAAU,EAAgB,KAC5B,CAAC,EAED,EAAM,WAAW,CACnB,MAAQ,CACN,EAAO,QAAQ,EAAU,EAAa,gBAAkB,OAAO,CAAC,EAChE,EAAe,EAAK,CACtB,CACF,CAEA,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,WAAY,EAAM,WAClB,MAAoB,EAAb,EAAuB,4BAAyC,mBAAmB,WAF5F,EAIE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAA,UAAG,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,YAAW,OAAQ,EAAa,qBAAuB,YAAe,CAAA,CAAI,CAAA,GAE9F,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAa,OAAd,CAAqB,QAAS,EAAM,UAAa,CAAA,GACjD,EAAA,EAAA,IAAA,CAAC,EAAa,OAAd,CACE,QAAS,EACT,KAAM,EAAU,QAAQ,EACX,cACb,QAAQ,QACT,CAAA,CACW,CAAA,CAAA,CACT,GAEX"}
1
+ {"version":3,"file":"BL1X9vs52.chunk.js","names":[],"sources":["../../src/shared/views/remove-logo/RemoveLogoView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { LogoRequests } from 'shared/flight-requests/LogoRequests';\nimport { useIsTertiary } from 'shared/hooks/useIsTertiary';\n\nconst namespace = 'reports.removeLogo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface RemoveLogoViewProps extends PopupViewProps {\n logoId: string;\n customerId: string;\n}\n\nexport function RemoveLogoView(props: RemoveLogoViewProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n const isTertiary = useIsTertiary();\n\n async function onClickRemove(): Promise<void> {\n setShowSpinner(true);\n\n try {\n await fetchAsync(LogoRequests.removeLogo(props.customerId, props.logoId));\n\n alerts.success(getPhrase(isTertiary ? 'successTertiary' : 'success'));\n\n AnalyticsHelper.logUserAction({\n id: props.logoId\n }, {\n actionType: UserAction.Remove,\n entity: EntityType.Logo,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n\n props.closePopup();\n } catch {\n alerts.success(getPhrase(isTertiary ? 'errorTertiary' : 'error'));\n setShowSpinner(false);\n }\n }\n\n return (\n <Popup\n closePopup={props.closePopup}\n title={isTertiary ? getPhrase('removeSchoolCrestTertiary') : getPhrase('removeSchoolCrest')}\n >\n <p><Text namespace={namespace} phrase={isTertiary ? 'areYouSureTertiary' : 'areYouSure'} /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n onClick={onClickRemove}\n text={getPhrase('remove')}\n showSpinner={showSpinner}\n variant='danger'\n />\n </PopupButtons>\n </Popup>\n );\n}\n"],"mappings":"ySAiBM,EAAY,qBACZ,EAAY,EAAgB,iBAAiB,CAAS,EAO5D,SAAgB,EAAe,EAAyC,CACtE,GAAM,CAAE,EAAa,GAAA,EAAyB,SAAS,EAAK,EAEtD,EAAa,EAAwB,EAErC,EAAS,EAAU,EACnB,EAAa,EAAc,EAEjC,eAAe,GAA+B,CAC5C,EAAe,EAAI,EAEnB,GAAI,CACF,MAAM,EAAW,EAAa,WAAW,EAAM,WAAY,EAAM,MAAM,CAAC,EAExE,EAAO,QAAQ,EAAU,EAAa,kBAAoB,SAAS,CAAC,EAEpE,EAAgB,cAAc,CAC5B,GAAI,EAAM,MACZ,EAAG,CACD,WAAY,EAAW,OACvB,OAAQ,EAAW,KACnB,cAAe,EAAc,SAC7B,SAAU,EAAgB,KAC5B,CAAC,EAED,EAAM,WAAW,CACnB,MAAQ,CACN,EAAO,QAAQ,EAAU,EAAa,gBAAkB,OAAO,CAAC,EAChE,EAAe,EAAK,CACtB,CACF,CAEA,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,WAAY,EAAM,WAClB,MAAoB,EAAb,EAAuB,4BAAyC,mBAAmB,WAF5F,EAIE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAA,UAAG,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,YAAW,OAAQ,EAAa,qBAAuB,YAAe,CAAA,CAAI,CAAA,GAE9F,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAa,OAAd,CAAqB,QAAS,EAAM,UAAa,CAAA,GACjD,EAAA,EAAA,IAAA,CAAC,EAAa,OAAd,CACE,QAAS,EACT,KAAM,EAAU,QAAQ,EACX,cACb,QAAQ,QACT,CAAA,CACW,CAAA,CAAA,CACT,GAEX"}
@@ -1,4 +1,4 @@
1
- import{Dr as e,H as t,Ht as n,L as r,M as i,N as a,P as o,R as s,X as c,at as l,ot as u,qt as d}from"./CrTgNROp.chunk.js";import{i as f,n as p,o as m,r as h,v as g,x as _,y as v}from"./CxNc1BDX.chunk.js";import{n as y}from"./Dwe-4MVf.chunk.js";import{t as b}from"./o2slFZEB.chunk.js";import{t as x}from"./Dsv_eF8a.chunk.js";import{n as S}from"./2zJwW9wb.chunk.js";import{t as C}from"./BIVEB8w0.chunk.js";import{n as w,t as T}from"./C4rkNAyl.chunk.js";import{Bt as E,Ft as ee,H as te,P as ne,U as re,g as ie,h as ae,l as oe,m as se,p as D,x as ce}from"./app-jxJcaenU.js";import{t as le}from"./B0BRYUl5.chunk.js";import{n as ue,t as de}from"./H_O7s2Jf.chunk.js";import{t as fe}from"./B7c58l3o.chunk.js";import{a as pe,c as O,d as me,i as he,l as ge,n as _e,o as ve,r as ye,s as k,t as be,u as A}from"./B-DINEq3.chunk.js";import{a as xe,i as Se,o as Ce,r as we}from"./B3UVC04b.chunk.js";var j=e(l()),M=a(),Te={subText:`_subText_5u663_1`,sm:`_sm_5u663_4`};function Ee(e){let t=`text-uppercase text-truncate mb-0 ${Te.subText} ${e.className}`;return e.appLink?(0,M.jsx)(g,{className:t,appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,title:e.title,ariaLabel:e.ariaLabel,children:e.children}):(0,M.jsx)(`div`,{className:t,title:e.title,"aria-label":e.ariaLabel,children:e.children})}function De(e){let t=`d-flex align-items-center badge-list ${ie.minHeight}`;return e.className&&(t+=` ${e.className}`),(0,M.jsx)(`div`,{className:t,children:e.children})}function Oe(e){return(0,M.jsx)(`svg`,{...e,children:(0,M.jsx)(`path`,{fill:`currentColor`,d:`M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805m.812-10.7.001-.004.007-.022.03-.097a5.83 5.83 0 0 1 .744-1.463c.565-.798 1.428-1.532 2.72-1.532 2.03 0 3.516 1.72 3.516 3.866 0 1.445-.713 2.686-2.089 4.119-.944.984-2.151 2.01-3.579 3.224-.575.49-1.187 1.01-1.832 1.57-.645-.56-1.257-1.08-1.832-1.57-1.428-1.214-2.635-2.24-3.58-3.224C5.214 12.11 4.5 10.869 4.5 9.423c0-2.146 1.487-3.865 3.517-3.865 1.29 0 2.154.734 2.719 1.532a5.8 5.8 0 0 1 .774 1.56l.007.022v.004a.5.5 0 0 0 .965 0`})})}function ke(e){return(0,M.jsx)(`svg`,{...e,children:(0,M.jsx)(`path`,{fill:`currentColor`,fillOpacity:.9,d:`M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805`})})}var N={isFavouritedByCurrentUser(e){return e?.favouritedBy?.data.length===1},isFavouritedByUser(e,t){return!!b.findWhere(e?.favouritedBy?.data,{id:t?.id})},updateVideoState(e,t,n){return{id:e.id,favouritedBy:{data:n?[{id:t.id}]:[],pagination:{limit:25,cursors:{next:``,previous:``}}}}},showFavouriteButton(e,t){return D.getCanBeConsumed(e)?.canConsume?!!(t||E.isTabletOrMobile()||N.isFavouritedByCurrentUser(e)):!1}},P={favourited:`_favourited_19h9u_1`,favouriteButton:`_favouriteButton_19h9u_1`,heart:`_heart_19h9u_5`,heartOutline:`_heartOutline_19h9u_16`},Ae=C.encloseNamespace(`shared.favouriteButton`);function je(e){let t=le(),n=N.isFavouritedByCurrentUser(e.video),[r,i]=j.useState(n);j.useEffect(()=>{i(n)},[n]);let a=`d-flex align-items-center justify-content-center cursor-pointer ${P.favouriteButton} ${r?P.favourited:``}`;e.className&&(a+=` ${e.className}`);function o(){let n=!r;function a(){function r(){return D.isClip(e.video)?n?`favouriteClipError`:`unfavouriteClipError`:D.isInteractive(e.video)?n?`favouriteInteractiveError`:`unfavouriteInteractiveError`:n?`favouriteVideoError`:`unfavouriteVideoError`}t.error(Ae(r())),i(!n)}i(n),e.setFavourite(e.video,n,null,a,e.analyticsData,e.analyticsOptions)}return!_.isFunction(e.setFavourite)||!_.isFunction(e.canFavourite)||!e.canFavourite(e.video)?(0,M.jsx)(M.Fragment,{}):(0,M.jsxs)(v,{className:a,onClick:o,tabIndex:e.preventFocus?-1:void 0,children:[(0,M.jsx)(h,{svg:ke,className:`svg-container ${P.heart}`}),(0,M.jsx)(h,{svg:Oe,className:`svg-container ${P.heartOutline}`})]})}function Me(e){let t=D.getVideoProgress(e.video),n=t&&e.video.duration&&t/e.video.duration*1e5;return n?(0,M.jsx)(`div`,{className:`bg-primary h-100`,style:{width:`${n}%`}}):(0,M.jsx)(M.Fragment,{})}var Ne={bottomBar:`_bottomBar_575p1_1`};function Pe(e){return D.isVideo(e.video)?(0,M.jsx)(`div`,{className:Ne.bottomBar,children:(0,M.jsx)(Me,{video:e.video})}):(0,M.jsx)(M.Fragment,{})}var Fe=`d-inline-block svg-container`,Ie=`span`;function Le(e){let{children:t,className:n=Fe,tagName:r=Ie,size:i=f.Standard,onClick:a,title:o,tooltipPlacement:s=`right`}=e,c=r,l={className:`${n} svg-container ${i}`,onClick:_.isFunction(a)?a:null};return o?(0,M.jsx)(m,{title:o,placement:s,children:(0,M.jsx)(c,{...l,children:t})}):(0,M.jsx)(c,{...l,children:t})}var F={std:`_std_hibpg_1`,sm:`_sm_hibpg_5`,stdIcon:`_stdIcon_hibpg_10`,smIcon:`_smIcon_hibpg_21`};function Re(e){return!D.isInteractive(e.video)&&!D.isClip(e.video)||!e.video._liteOwner&&!e.video._curationTags?.value?.isClickViewCurated?(0,M.jsx)(M.Fragment,{}):e.video._curationTags?.value?.isClickViewCurated?(0,M.jsx)(`div`,{className:`${e.size===`sm`?F.sm:F.std} me-1 rounded-circle position-relative bg-white`,children:(0,M.jsx)(Le,{className:e.size===`sm`?F.smIcon:F.stdIcon,children:(0,M.jsx)(oe,{})})}):(0,M.jsx)(`div`,{className:`${e.size===`sm`?F.sm:F.std} me-1`,children:(0,M.jsx)(te,{imageCdnUrl:e.imageCdnUrl,initials:ee.getInitials(e.video._liteOwner.name,e.video._liteOwner.surname),imageUrl:e.video._liteOwner.avatar?.url})})}var ze={pluginHover:`_pluginHover_wpoz0_1`},Be=`shared.pluginHover`;function Ve(e){return!e.isPlugin||e.isPluginPopup?(0,M.jsx)(M.Fragment,{}):(0,M.jsx)(g,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,onClick:e.onClick,className:`
1
+ import{Dr as e,H as t,Ht as n,L as r,M as i,N as a,P as o,R as s,X as c,at as l,ot as u,qt as d}from"./CrTgNROp.chunk.js";import{i as f,n as p,o as m,r as h,v as g,x as _,y as v}from"./CxNc1BDX.chunk.js";import{n as y}from"./Dwe-4MVf.chunk.js";import{t as b}from"./o2slFZEB.chunk.js";import{t as x}from"./Dsv_eF8a.chunk.js";import{n as S}from"./2zJwW9wb.chunk.js";import{t as C}from"./BIVEB8w0.chunk.js";import{n as w,t as T}from"./C4rkNAyl.chunk.js";import{Bt as E,Ft as ee,H as te,P as ne,U as re,g as ie,h as ae,l as oe,m as se,p as D,x as ce}from"./app-B1NVV4PT.js";import{t as le}from"./B0BRYUl5.chunk.js";import{n as ue,t as de}from"./H_O7s2Jf.chunk.js";import{t as fe}from"./B7c58l3o.chunk.js";import{a as pe,c as O,d as me,i as he,l as ge,n as _e,o as ve,r as ye,s as k,t as be,u as A}from"./Ch4Y5yk4.chunk.js";import{a as xe,i as Se,o as Ce,r as we}from"./TzLygaBE.chunk.js";var j=e(l()),M=a(),Te={subText:`_subText_5u663_1`,sm:`_sm_5u663_4`};function Ee(e){let t=`text-uppercase text-truncate mb-0 ${Te.subText} ${e.className}`;return e.appLink?(0,M.jsx)(g,{className:t,appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,title:e.title,ariaLabel:e.ariaLabel,children:e.children}):(0,M.jsx)(`div`,{className:t,title:e.title,"aria-label":e.ariaLabel,children:e.children})}function De(e){let t=`d-flex align-items-center badge-list ${ie.minHeight}`;return e.className&&(t+=` ${e.className}`),(0,M.jsx)(`div`,{className:t,children:e.children})}function Oe(e){return(0,M.jsx)(`svg`,{...e,children:(0,M.jsx)(`path`,{fill:`currentColor`,d:`M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805m.812-10.7.001-.004.007-.022.03-.097a5.83 5.83 0 0 1 .744-1.463c.565-.798 1.428-1.532 2.72-1.532 2.03 0 3.516 1.72 3.516 3.866 0 1.445-.713 2.686-2.089 4.119-.944.984-2.151 2.01-3.579 3.224-.575.49-1.187 1.01-1.832 1.57-.645-.56-1.257-1.08-1.832-1.57-1.428-1.214-2.635-2.24-3.58-3.224C5.214 12.11 4.5 10.869 4.5 9.423c0-2.146 1.487-3.865 3.517-3.865 1.29 0 2.154.734 2.719 1.532a5.8 5.8 0 0 1 .774 1.56l.007.022v.004a.5.5 0 0 0 .965 0`})})}function ke(e){return(0,M.jsx)(`svg`,{...e,children:(0,M.jsx)(`path`,{fill:`currentColor`,fillOpacity:.9,d:`M11.67 19.376a.5.5 0 0 0 .66 0c.732-.64 1.435-1.239 2.1-1.805 1.453-1.235 2.722-2.314 3.703-3.335 1.443-1.504 2.367-2.984 2.367-4.812 0-2.588-1.83-4.866-4.517-4.866-1.736 0-2.865 1.008-3.535 1.954a7 7 0 0 0-.448.733 7 7 0 0 0-.448-.733c-.67-.946-1.8-1.954-3.535-1.954C5.33 4.558 3.5 6.836 3.5 9.424c0 1.828.924 3.308 2.367 4.812.98 1.02 2.25 2.1 3.703 3.335.665.566 1.368 1.165 2.1 1.805`})})}var N={isFavouritedByCurrentUser(e){return e?.favouritedBy?.data.length===1},isFavouritedByUser(e,t){return!!b.findWhere(e?.favouritedBy?.data,{id:t?.id})},updateVideoState(e,t,n){return{id:e.id,favouritedBy:{data:n?[{id:t.id}]:[],pagination:{limit:25,cursors:{next:``,previous:``}}}}},showFavouriteButton(e,t){return D.getCanBeConsumed(e)?.canConsume?!!(t||E.isTabletOrMobile()||N.isFavouritedByCurrentUser(e)):!1}},P={favourited:`_favourited_19h9u_1`,favouriteButton:`_favouriteButton_19h9u_1`,heart:`_heart_19h9u_5`,heartOutline:`_heartOutline_19h9u_16`},Ae=C.encloseNamespace(`shared.favouriteButton`);function je(e){let t=le(),n=N.isFavouritedByCurrentUser(e.video),[r,i]=j.useState(n);j.useEffect(()=>{i(n)},[n]);let a=`d-flex align-items-center justify-content-center cursor-pointer ${P.favouriteButton} ${r?P.favourited:``}`;e.className&&(a+=` ${e.className}`);function o(){let n=!r;function a(){function r(){return D.isClip(e.video)?n?`favouriteClipError`:`unfavouriteClipError`:D.isInteractive(e.video)?n?`favouriteInteractiveError`:`unfavouriteInteractiveError`:n?`favouriteVideoError`:`unfavouriteVideoError`}t.error(Ae(r())),i(!n)}i(n),e.setFavourite(e.video,n,null,a,e.analyticsData,e.analyticsOptions)}return!_.isFunction(e.setFavourite)||!_.isFunction(e.canFavourite)||!e.canFavourite(e.video)?(0,M.jsx)(M.Fragment,{}):(0,M.jsxs)(v,{className:a,onClick:o,tabIndex:e.preventFocus?-1:void 0,children:[(0,M.jsx)(h,{svg:ke,className:`svg-container ${P.heart}`}),(0,M.jsx)(h,{svg:Oe,className:`svg-container ${P.heartOutline}`})]})}function Me(e){let t=D.getVideoProgress(e.video),n=t&&e.video.duration&&t/e.video.duration*1e5;return n?(0,M.jsx)(`div`,{className:`bg-primary h-100`,style:{width:`${n}%`}}):(0,M.jsx)(M.Fragment,{})}var Ne={bottomBar:`_bottomBar_575p1_1`};function Pe(e){return D.isVideo(e.video)?(0,M.jsx)(`div`,{className:Ne.bottomBar,children:(0,M.jsx)(Me,{video:e.video})}):(0,M.jsx)(M.Fragment,{})}var Fe=`d-inline-block svg-container`,Ie=`span`;function Le(e){let{children:t,className:n=Fe,tagName:r=Ie,size:i=f.Standard,onClick:a,title:o,tooltipPlacement:s=`right`}=e,c=r,l={className:`${n} svg-container ${i}`,onClick:_.isFunction(a)?a:null};return o?(0,M.jsx)(m,{title:o,placement:s,children:(0,M.jsx)(c,{...l,children:t})}):(0,M.jsx)(c,{...l,children:t})}var F={std:`_std_hibpg_1`,sm:`_sm_hibpg_5`,stdIcon:`_stdIcon_hibpg_10`,smIcon:`_smIcon_hibpg_21`};function Re(e){return!D.isInteractive(e.video)&&!D.isClip(e.video)||!e.video._liteOwner&&!e.video._curationTags?.value?.isClickViewCurated?(0,M.jsx)(M.Fragment,{}):e.video._curationTags?.value?.isClickViewCurated?(0,M.jsx)(`div`,{className:`${e.size===`sm`?F.sm:F.std} me-1 rounded-circle position-relative bg-white`,children:(0,M.jsx)(Le,{className:e.size===`sm`?F.smIcon:F.stdIcon,children:(0,M.jsx)(oe,{})})}):(0,M.jsx)(`div`,{className:`${e.size===`sm`?F.sm:F.std} me-1`,children:(0,M.jsx)(te,{imageCdnUrl:e.imageCdnUrl,initials:ee.getInitials(e.video._liteOwner.name,e.video._liteOwner.surname),imageUrl:e.video._liteOwner.avatar?.url})})}var ze={pluginHover:`_pluginHover_wpoz0_1`},Be=`shared.pluginHover`;function Ve(e){return!e.isPlugin||e.isPluginPopup?(0,M.jsx)(M.Fragment,{}):(0,M.jsx)(g,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,onClick:e.onClick,className:`
2
2
  position-absolute top-0 start-0 end-0 bottom-0 opacity-0 cursor-pointer
3
3
  ${ze.pluginHover}
4
4
  ${e.className?e.className:``}
@@ -7,4 +7,4 @@ import{Dr as e,H as t,Ht as n,L as r,M as i,N as a,P as o,R as s,X as c,at as l,
7
7
  p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer
8
8
  text-decoration-none ${e.theme?.container} ${q.tag} ${e.active?q.active:``}
9
9
  `,children:(0,M.jsx)(Ct,{...e})}):(0,M.jsx)(`div`,{className:`p-1 pe-2 rounded-pill d-inline-flex align-items-center ${e.theme?.container} ${q.tag} ${q.disabled}`,children:(0,M.jsx)(Ct,{...e})})}function Ct(e){return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(h,{className:`${q.icon} rounded-circle bg-${e.iconVariant} text-white`,svg:e.svg}),(0,M.jsx)(`span`,{className:`ps-1 text-nowrap user-select-none ${e.theme?.tabLabel}`,children:e.text})]})}function wt(e){return(0,M.jsx)(`svg`,{...e,children:(0,M.jsx)(`path`,{fill:`currentColor`,d:`M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024`})})}var Tt=`shared.classroomGuideTag`;function Et(e){return!e.video||D.isInteractive(e.video)||D.isClip(e.video)||!e.video._hasCurriculumLinks?.value?(0,M.jsx)(M.Fragment,{}):(0,M.jsx)(St,{theme:{container:`classroom-guide-tag`,tabLabel:`classroom-guide-tag-label`},svg:wt,iconVariant:`navy`,text:C.getPhrase(Tt,`curriculum`),appLink:e.appLink,appLinkAnalyticsData:{videoGuidanceType:`curriculum`,...D.getAnalyticsData(e.video),...e.analyticsData},appLinkAnalyticsOptions:{actionType:c.Click,entity:D.getAnalyticsEntity(e.video),...e.analyticsOptions}})}var Dt=`shared.interactivesTag`;function Ot(e){if(!D.showInteractivesGuidance(e.video))return(0,M.jsx)(M.Fragment,{});let t=!D.isInteractive(e.video)&&(e.video.interactives?.data.length||0);return(0,M.jsx)(St,{svg:Qe,iconVariant:`green`,text:C.getPhrase(Dt,`interactives`,{smartCount:t}),appLink:e.appLink,appLinkAnalyticsData:{videoGuidanceType:`interactive`,videoGuidanceTotalItems:t,...D.getAnalyticsData(e.video),...e.analyticsData},appLinkAnalyticsOptions:{actionType:c.Click,entity:D.getAnalyticsEntity(e.video),...e.analyticsOptions}})}var kt=`shared.resourcesTag`;function At(e){return D.isInteractive(e)?0:(e.resources?.data.length||0)+(e.links?.data.length||0)}function jt(e){if(!D.showResourcesGuidance(e.video))return(0,M.jsx)(M.Fragment,{});let t=At(e.video);return(0,M.jsx)(St,{svg:$e,iconVariant:`indigo`,text:C.getPhrase(kt,`resources`,{smartCount:t}),appLink:e.appLink,appLinkAnalyticsData:{videoGuidanceType:`resource`,videoGuidanceTotalItems:t,...D.getAnalyticsData(e.video),...e.analyticsData},appLinkAnalyticsOptions:{actionType:c.Click,entity:D.getAnalyticsEntity(e.video),...e.analyticsOptions}})}function Mt(e){let t=D.showInteractivesGuidance(e.video)&&D.showResourcesGuidance(e.video),n=e.commonVideoProps.features.showClassroomGuide(e.video);return(0,M.jsxs)(`div`,{className:`${e.containerClassName} ${t?e.responsiveClassName:``}`,children:[n&&(0,M.jsx)(Et,{appLink:e.commonVideoProps.getClassroomGuideAppLink?.(e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}),(0,M.jsx)(jt,{appLink:e.commonVideoProps.getResourceGuidanceAppLink?.(e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions}),(0,M.jsx)(Ot,{appLink:e.commonVideoProps.getInteractiveGuidanceAppLink?.(e.video.id,e.video.typeId),video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions})]})}var Nt={button:`_button_tlbos_1`},Pt=`shared.removeVideoButton`;function Ft(e){return(0,M.jsx)(`div`,{className:`me-2`,children:(0,M.jsx)(m,{title:e.removeButtonTooltip||C.getPhrase(Pt,`removeFromRow`),spanHack:!0,children:(0,M.jsx)(v,{onClick:e.onClickRemove,className:`d-flex align-items-center justify-content-center ${Nt.button}`,tabIndex:e.preventFocus?-1:void 0,children:(0,M.jsx)(h,{svg:ne,className:`svg-container ${Nt.heart}`})})})})}var J={topLeftContainer:`_topLeftContainer_1t9d5_1`,details:`_details_1t9d5_7`,isHovering:`_isHovering_1t9d5_11`,videoGuidanceTags:`_videoGuidanceTags_1t9d5_14`,responsiveGuidance:`_responsiveGuidance_1t9d5_21`,dropdown:`_dropdown_1t9d5_27`,show:`_show_1t9d5_31`,topRightContainer:`_topRightContainer_1t9d5_35`},It=e=>{let{video:t,appLink:n,imageOptions:i,preload:a,isHovering:o}=e,{hoverToPlay:s}=e.commonVideoProps,l=u.isObject(n?.params)?n?.params:{},{canNavigate:d,canConsume:f}=D.getCanBeConsumed(t);j.useEffect(()=>()=>{e.cleanPortalNode?.()},[]);function p(t){t.preventDefault(),e.onClickRemove?.()}let h=`position-relative bg-white`;e.extraClasses&&(h+=` ${e.extraClasses}`),o&&(h+=` rounded-3 shadow-lg`);let g={...e.analyticsOptions,entity:D.getAnalyticsEntity(t)},v=e.isHovering&&f&&s,y=N.showFavouriteButton(e.video,o);function b(){return _.isFunction(e.onClickRemove)?E.isTabletOrMobile()?!0:o:!1}let x={...e.analyticsData,id:t.id,name:t.name},S={...g,actionType:c.Click,descriptor:r.Thumbnail};return(0,M.jsxs)(`div`,{className:h,children:[(0,M.jsxs)(`div`,{className:J.topRightContainer,children:[b()&&(0,M.jsx)(Ft,{onClickRemove:p,removeButtonTooltip:e.removeButtonTooltip,preventFocus:!0}),y&&(0,M.jsx)(je,{setFavourite:e.commonVideoProps.setFavourite,canFavourite:e.commonVideoProps.canFavourite,video:t,analyticsData:e.analyticsData,analyticsOptions:g,preventFocus:!0}),!d&&(0,M.jsx)(m,{title:D.getPrivacyReasoning(e.video),spanHack:!0,spanHackClassName:``,children:(0,M.jsx)(Ue,{})})]}),(0,M.jsxs)(`div`,{className:`position-relative`,children:[(0,M.jsx)(Ve,{isPlugin:e.commonVideoProps.isPlugin,isPluginPopup:e.commonVideoProps.isPluginPopup,className:o?`rounded-top-3`:`rounded-3`,onClick:()=>e.cleanPortalNode?.(),appLink:d?n:null,analyticsData:x,analyticsOptions:S}),(0,M.jsxs)(ve,{onClick:()=>e.cleanPortalNode?.(),data:D.getThumbnail(t),appLink:d?n:null,imageType:w.Thumbnails,imageOptions:i,preload:a,alt:(`series`in t&&t.series?.name?`${t.series.name}: `:``)+t.name,analyticsData:x,analyticsOptions:S,preventFocus:!e.hideTitle,appLinkClassName:`position-absolute top-0 start-0 h-100 w-100 overflow-hidden ${o?`rounded-top-3`:`rounded-3`}`,imageClassName:o?`rounded-top-3`:`rounded-3`,children:[(0,M.jsx)(be,{type:_e.Video}),(0,M.jsxs)(`div`,{className:`p-absolute w-100 h-100 text-white`,children:[(0,M.jsxs)(`div`,{className:`${J.topLeftContainer} d-flex flex-no-wrap`,children:[e.showOwner&&(0,M.jsx)(Re,{video:t,imageCdnUrl:e.commonVideoProps.imageCdnUrl}),(0,M.jsx)(U,{video:t}),(0,M.jsx)(I,{video:t,companyLogoFallbackUrl:e.commonVideoProps.getCompanyLogoFallbackUrl?.(t)})]}),(0,M.jsx)(mt,{video:e.video,audience:e.audience,hideRating:e.hideRating,hideDuration:e.hideDuration}),(0,M.jsx)(Pe,{video:e.video})]})]}),v&&(0,M.jsx)(nt,{objectId:e.video.id,objectTypeId:e.video.typeId,mode:`hover`,shareId:e.shareId,context:l.context,contextId:l.contextId,moviesAndTv:l.mtv,location:`popout-video`,onRemoveVideo:e.onClickRemove,appLink:d?n:null},e.video.id)]}),!o&&!e.hideTitle&&(0,M.jsx)(xt,{...e}),(0,M.jsx)(`div`,{className:`${J.details} ${o?`${J.isHovering} box-shadow`:``}`,children:o&&(0,M.jsx)(M.Fragment,{children:(0,M.jsxs)(`div`,{className:`${o?J.videoGuidanceTags:``}`,children:[(0,M.jsx)(xt,{...e}),e.showVideoGuidance&&o&&(0,M.jsx)(Mt,{commonVideoProps:e.commonVideoProps,video:e.video,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,responsiveClassName:J.responsiveGuidance,containerClassName:`d-flex justify-content-start align-items-center pt-2`})]})})})]})};function Lt(e){return(0,M.jsx)(M.Fragment,{children:(0,M.jsx)(dt,{hoverableComponent:It,componentProps:e,fixedHoverWidth:400,minHoverWidth:400,analyticsData:{...e.analyticsData,id:e.video.id,name:e.video.name},analyticsOptions:{...e.analyticsOptions,entity:D.getAnalyticsEntity(e.video)}})})}function Rt(e){return(0,M.jsx)(`svg`,{...e,children:(0,M.jsx)(`path`,{fillRule:`evenodd`,d:`M0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12M9 7.498c0-.551.387-.756.847-.469l7.306 4.567c.468.292.46.77 0 1.058l-7.306 4.567c-.468.292-.847.074-.847-.47z`,fill:`currentColor`})})}var Y={mask:`_mask_tn7nt_1`,small:`_small_tn7nt_10`,video:`_video_tn7nt_10`,playlist:`_playlist_tn7nt_18`,maskContainer:`_maskContainer_tn7nt_28`,constantIconMaskContainer:`_constantIconMaskContainer_tn7nt_35`},zt=function(e){return e[e.Video=0]=`Video`,e[e.Playlist=1]=`Playlist`,e[e.Series=2]=`Series`,e}({});function Bt(e){return e===0?Y.video:e===1?Y.playlist:``}function Vt(e,t=!1){return e===0?t?Rt:rt:null}Ht.defaults={size:`md`};function Ht(e){let{type:t,size:n,alwaysShowIcon:r}=e,i=Bt(t),a=Vt(t,r);return(0,M.jsxs)(`div`,{className:`${r?Y.constantIconMaskContainer:Y.maskContainer} ${n===`sm`?Y.small:``}`,children:[(0,M.jsx)(`div`,{className:Y.mask}),(0,M.jsx)(h,{svg:a,className:i})]})}function Ut(e){return(0,M.jsx)(`svg`,{...e,children:(0,M.jsx)(`path`,{d:`M18.783 5.192c.264.283.291.775.06 1.098l-8.91 12.444a.6.6 0 0 1-.457.266.58.58 0 0 1-.471-.228l-3.819-4.666a.905.905 0 0 1 0-1.1c.249-.304.652-.304.9 0l3.338 4.078 8.46-11.818c.232-.324.634-.356.899-.074`,fill:`currentColor`})})}var X={unchecked:`_unchecked_1n862_1`,outline:`_outline_1n862_5`,checked:`_checked_1n862_20`,checkMark:`_checkMark_1n862_27`};Wt.defaultProps={style:`filled`};function Wt(e){let[t,n]=j.useState(e.status===`Complete`);j.useEffect(()=>{n(e.status===`Complete`)},[e.status]);let r=`cursor-pointer rounded-circle ${t?X.checked:X.unchecked}`;e.className&&(r+=` ${e.className}`),e.style===`outline`&&(r+=` ${X.outline}`);function i(){return!!e.status&&e.status!==`None`&&_.isFunction(e.setStatus)}function a(){let r=!t;n(r);let i=r?`Complete`:`Incomplete`;e.setStatus(i).catch(()=>{n(!r)})}return i()?(0,M.jsx)(v,{className:r,onClick:a,disabled:e.disabled,children:(0,M.jsx)(h,{svg:Ut,className:`svg-container ${X.checkMark}`})}):(0,M.jsx)(M.Fragment,{})}var Z={container:`_container_mn7d4_1`,cvIcon:`_cvIcon_mn7d4_7`,action:`_action_mn7d4_10`};function Gt(e){return!!(!D.getCanBeConsumed(e.video)?.canConsume||_.isFunction(e.setFavourite)&&_.isFunction(e.canFavourite)||_.isFunction(e.setCheckMarkStatus))}function Kt(e){let{canNavigate:t}=D.getCanBeConsumed(e.video);return t?Gt(e)?(0,M.jsxs)(`div`,{className:`${Z.container} d-flex align-items-center`,children:[(0,M.jsx)(je,{setFavourite:e.setFavourite,canFavourite:e.canFavourite,video:e.video,className:Z.action,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,preventFocus:!0}),(0,M.jsx)(Wt,{status:e.checkMarkStatus,setStatus:e.setCheckMarkStatus,className:Z.action})]}):(0,M.jsx)(M.Fragment,{}):(0,M.jsx)(`div`,{className:Z.container,children:(0,M.jsx)(Ue,{size:e.size})})}var Q=function(e){return e[e.Below=1]=`Below`,e[e.Overlay=2]=`Overlay`,e[e.Independent=3]=`Independent`,e}({}),$={titleOverlay:`_titleOverlay_f9p1o_1`,clip:`_clip_f9p1o_11`,large:`_large_f9p1o_15`,interactive:`_interactive_f9p1o_18`,titleBelow:`_titleBelow_f9p1o_25`,overlayContainer:`_overlayContainer_f9p1o_29`,topLeftContainer:`_topLeftContainer_f9p1o_36`,gradient:`_gradient_f9p1o_42`},qt=`shared.staticVideoThumbnail`;function Jt(e){let{type:n,video:r,textPosition:i}=e,a=n===`static`,o=i===Q.Overlay,{canNavigate:s}=D.getCanBeConsumed(e.video),c=``;return o?(c=$.titleOverlay,s&&(D.isClip(r)&&(c+=` `+$.clip),D.isInteractive(r)&&(c+=` `+$.interactive))):c=$.titleBelow,(0,M.jsxs)(`div`,{className:c,children:[D.isVideo(r)&&(0,M.jsx)(z,{type:a?e.commonVideoProps.getSubTextType?.(e.video):`series`,className:o?`text-shadow clamp-1`:`clamp-2`,video:r,appLink:a&&!o?e.commonVideoProps.getSubTextAppLink?.(e.video):null,analyticsOptions:{location:t.VideoThumbnail}}),o||!s||!a?(0,M.jsx)(`span`,{className:`h6 text-reset clamp-1`,children:(0,M.jsx)(K,{video:r,title:r.name??C.getPhrase(qt,`videoUnavailable`),showNewVideoIndicator:a&&e.commonVideoProps.showNewVideoIndicator,showPadlock:a&&!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience})}):(0,M.jsx)(g,{className:`h6 text-reset clamp-2`,appLink:e.appLink,children:(0,M.jsx)(K,{video:r,showNewVideoIndicator:e.commonVideoProps.showNewVideoIndicator,showPadlock:!e.commonVideoProps.hasStudentExperience&&!e.commonVideoProps.hasGuestExperience})})]})}function Yt(e){let{type:t,video:n,textPosition:i,imageOptions:a,preload:o,alwaysShowIcon:s}=e,l=`commonVideoProps`in e&&e.commonVideoProps?.hoverToPlay,d=t===`static`,f=d&&u.isObject(e.appLink?.params)?e.appLink?.params:{},[p,h]=de(),[g,_]=ue({delay:100}),{canNavigate:v,canConsume:y}=D.getCanBeConsumed(n);function b(e){p.current=e,g.current=e}let x=d&&_&&y&&l;function S(){if(d)return!e.disableFavourite&&e.commonVideoProps.canFavourite?.(e.video)&&N.showFavouriteButton(n,h)}function C(){let t=`position-relative`;return t+=d&&e.appLink&&v?` cursor-pointer`:``,e.extraClasses&&(t+=` ${e.extraClasses}`),i===Q.Overlay&&(t+=` rounded overflow-hidden`),t}function T(){let t=`overflow-hidden ${e.size===`sm`?`rounded`:`rounded-3`}`;return e.imageClassName&&(t+=` ${e.imageClassName}`),i===Q.Overlay&&(t+=` ${$.gradient}`),t}let E=d?{...e.analyticsOptions,entity:D.getAnalyticsEntity(n)}:{},ee=d&&!!e.appLink&&!e.hideMask&&v,te=d?D.getPrivacyReasoning(e.video,e.showSignIn):``,ne=d?{...e.analyticsData,id:n.id,name:n.name}:{},re={...E,actionType:c.Click,descriptor:r.Thumbnail};return(0,M.jsxs)(m,{title:te,spanHack:!0,spanHackClassName:``,children:[(0,M.jsxs)(`div`,{className:C(),ref:b,children:[d&&(0,M.jsx)(Ve,{isPlugin:e.commonVideoProps.isPlugin,isPluginPopup:e.commonVideoProps.isPluginPopup,className:e.size===`sm`?`rounded`:`rounded-3`,appLink:v?e.appLink:null,analyticsData:ne,analyticsOptions:re}),(0,M.jsx)(Kt,{video:n,checkMarkStatus:!d&&e.checkMarkStatus,setCheckMarkStatus:!d&&e.setCheckMarkStatus,setFavourite:d&&e.commonVideoProps.setFavourite,canFavourite:S,analyticsData:d&&e.analyticsData,analyticsOptions:d&&E,size:e.size}),(0,M.jsxs)(ve,{data:D.getThumbnail(n),appLink:d&&v?e.appLink:null,onClick:d&&v?e.onClick:void 0,imageType:w.Thumbnails,imageOptions:a,preload:o,className:T(),alt:(`series`in n&&n.series?.name?`${n.series.name}: `:``)+n.name,analyticsData:ne,analyticsOptions:re,preventFocus:!0,openInNewTab:e.openInNewTab,forcePageLoad:e.forcePageLoad,children:[ee&&(0,M.jsx)(Ht,{type:zt.Video,size:e.size,alwaysShowIcon:s}),(0,M.jsx)(be,{type:_e.Video}),(0,M.jsxs)(`div`,{className:$.overlayContainer,children:[i===Q.Overlay&&(0,M.jsx)(Jt,{...e}),(0,M.jsxs)(`div`,{className:`${$.topLeftContainer} d-flex flex-no-wrap`,children:[d&&e.showOwner&&(0,M.jsx)(Re,{video:n,imageCdnUrl:e.commonVideoProps.imageCdnUrl}),!e.hideVideoTypeBadge&&(0,M.jsx)(U,{video:n,size:e.size}),d&&(0,M.jsx)(I,{video:n,companyLogoFallbackUrl:e.commonVideoProps.getCompanyLogoFallbackUrl?.(n),size:e.size})]}),!e.hideBottomBar&&(0,M.jsx)(Pe,{video:n}),(0,M.jsx)(mt,{video:e.video,audience:e.audience,hideRating:e.hideRating,hideDuration:e.hideDuration,newDurationStyle:e.newDurationStyle,size:e.size})]})]}),x&&(0,M.jsx)(nt,{objectId:e.video.id,objectTypeId:e.video.typeId,mode:`hover`,shareId:d&&e.shareId,context:f.context,contextId:f.contextId,moviesAndTv:f.mtv,appLink:d&&v?e.appLink:null},e.video.id)]}),i===Q.Below&&(0,M.jsx)(Jt,{...e})]})}Xt.defaultProps={hideRating:!0,size:`md`,showOwner:!0};function Xt(e){switch(e.type){case`static`:return(0,M.jsx)(Yt,{...e});case`cosmetic`:return(0,M.jsx)(Yt,{...e});case`expandable`:return(0,M.jsx)(at,{...e});case`popout`:return(0,M.jsx)(Lt,{...e});default:return}}export{Ee as i,Q as n,z as r,Xt as t};
10
- //# sourceMappingURL=BN2Jc0_B.chunk.js.map
10
+ //# sourceMappingURL=BLzRzOyq.chunk.js.map