@clickview/lite 0.104.0-rc.6 → 0.104.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/.vite/manifest.json +807 -806
  2. package/dist/bundles.json +1 -1
  3. package/dist/en.json +1 -1
  4. package/dist/scripts/{Dnz8CbEu.chunk.js → -QIG2ZHc.chunk.js} +3 -3
  5. package/dist/scripts/{Dnz8CbEu.chunk.js.map → -QIG2ZHc.chunk.js.map} +1 -1
  6. package/dist/scripts/{CEv1_bDW.chunk.js → -brFp4w1.chunk.js} +2 -2
  7. package/dist/scripts/{CEv1_bDW.chunk.js.map → -brFp4w1.chunk.js.map} +1 -1
  8. package/dist/scripts/{CX6c7KRp2.chunk.js → 0mx04bmJ2.chunk.js} +2 -2
  9. package/dist/scripts/{CX6c7KRp2.chunk.js.map → 0mx04bmJ2.chunk.js.map} +1 -1
  10. package/dist/scripts/{CMHxOVI7.chunk.js → 41LJfkjO.chunk.js} +2 -2
  11. package/dist/scripts/{CMHxOVI7.chunk.js.map → 41LJfkjO.chunk.js.map} +1 -1
  12. package/dist/scripts/{BBWnpWNB2.chunk.js → 7uvJMXC12.chunk.js} +2 -2
  13. package/dist/scripts/{BBWnpWNB2.chunk.js.map → 7uvJMXC12.chunk.js.map} +1 -1
  14. package/dist/scripts/{CaCm4N_d2.chunk.js → B-HfRX562.chunk.js} +2 -2
  15. package/dist/scripts/{CaCm4N_d2.chunk.js.map → B-HfRX562.chunk.js.map} +1 -1
  16. package/dist/scripts/{D9wxi5or2.chunk.js → B2_RD6Px2.chunk.js} +2 -2
  17. package/dist/scripts/{D9wxi5or2.chunk.js.map → B2_RD6Px2.chunk.js.map} +1 -1
  18. package/dist/scripts/{DSPMbDdF.chunk.js → B3_lC6bW.chunk.js} +2 -2
  19. package/dist/scripts/{DSPMbDdF.chunk.js.map → B3_lC6bW.chunk.js.map} +1 -1
  20. package/dist/scripts/{8JGe5Ug_2.chunk.js → B5GEXNkP2.chunk.js} +2 -2
  21. package/dist/scripts/{8JGe5Ug_2.chunk.js.map → B5GEXNkP2.chunk.js.map} +1 -1
  22. package/dist/scripts/{0Fek4oFk.chunk.js → BLE8DLAY.chunk.js} +2 -2
  23. package/dist/scripts/{0Fek4oFk.chunk.js.map → BLE8DLAY.chunk.js.map} +1 -1
  24. package/dist/scripts/{BgPye7Nd2.chunk.js → BRt-Kdnn2.chunk.js} +2 -2
  25. package/dist/scripts/{BgPye7Nd2.chunk.js.map → BRt-Kdnn2.chunk.js.map} +1 -1
  26. package/dist/scripts/BTWmC6pW.chunk.js +5 -0
  27. package/dist/scripts/BTWmC6pW.chunk.js.map +1 -0
  28. package/dist/scripts/{D3ncynN72.chunk.js → BVBpDZoT2.chunk.js} +3 -3
  29. package/dist/scripts/{D3ncynN72.chunk.js.map → BVBpDZoT2.chunk.js.map} +1 -1
  30. package/dist/scripts/{5PKjjI4Y.chunk.js → BapoiGsj.chunk.js} +2 -2
  31. package/dist/scripts/{5PKjjI4Y.chunk.js.map → BapoiGsj.chunk.js.map} +1 -1
  32. package/dist/scripts/{CNfmLVE82.chunk.js → Bc1JT5Y-2.chunk.js} +2 -2
  33. package/dist/scripts/{CNfmLVE82.chunk.js.map → Bc1JT5Y-2.chunk.js.map} +1 -1
  34. package/dist/scripts/{cDv6zuhh.chunk.js → BhE5KhcC.chunk.js} +2 -2
  35. package/dist/scripts/{cDv6zuhh.chunk.js.map → BhE5KhcC.chunk.js.map} +1 -1
  36. package/dist/scripts/{Bzk4AwVx2.chunk.js → BncgzKKQ2.chunk.js} +2 -2
  37. package/dist/scripts/{Bzk4AwVx2.chunk.js.map → BncgzKKQ2.chunk.js.map} +1 -1
  38. package/dist/scripts/{CV-fOLNI2.chunk.js → Bpf3Tyy12.chunk.js} +2 -2
  39. package/dist/scripts/{CV-fOLNI2.chunk.js.map → Bpf3Tyy12.chunk.js.map} +1 -1
  40. package/dist/scripts/{DPZnaz74.chunk.js → C1OiUBQI.chunk.js} +2 -2
  41. package/dist/scripts/{DPZnaz74.chunk.js.map → C1OiUBQI.chunk.js.map} +1 -1
  42. package/dist/scripts/{B1TqilLB.chunk.js → C6z8ii6C.chunk.js} +2 -2
  43. package/dist/scripts/{B1TqilLB.chunk.js.map → C6z8ii6C.chunk.js.map} +1 -1
  44. package/dist/scripts/{fMgBORUX.chunk.js → C8x-QH43.chunk.js} +2 -2
  45. package/dist/scripts/{fMgBORUX.chunk.js.map → C8x-QH43.chunk.js.map} +1 -1
  46. package/dist/scripts/{BiWUSyJr.chunk.js → CAkqvKfy.chunk.js} +2 -2
  47. package/dist/scripts/{BiWUSyJr.chunk.js.map → CAkqvKfy.chunk.js.map} +1 -1
  48. package/dist/scripts/{CjOMeOwb2.chunk.js → CGv0OFnc2.chunk.js} +2 -2
  49. package/dist/scripts/{CjOMeOwb2.chunk.js.map → CGv0OFnc2.chunk.js.map} +1 -1
  50. package/dist/scripts/{B82m7K0U.chunk.js → CJGWbJ4m.chunk.js} +2 -2
  51. package/dist/scripts/{B82m7K0U.chunk.js.map → CJGWbJ4m.chunk.js.map} +1 -1
  52. package/dist/scripts/{D-iyHqNw2.chunk.js → CLvImDXv2.chunk.js} +3 -3
  53. package/dist/scripts/{D-iyHqNw2.chunk.js.map → CLvImDXv2.chunk.js.map} +1 -1
  54. package/dist/scripts/{Cqq1N9xw.chunk.js → CM8248d7.chunk.js} +2 -2
  55. package/dist/scripts/{Cqq1N9xw.chunk.js.map → CM8248d7.chunk.js.map} +1 -1
  56. package/dist/scripts/Cr6TXzQQ2.chunk.js.map +1 -1
  57. package/dist/scripts/{B_TE5XUR2.chunk.js → CvilnM0u2.chunk.js} +2 -2
  58. package/dist/scripts/{B_TE5XUR2.chunk.js.map → CvilnM0u2.chunk.js.map} +1 -1
  59. package/dist/scripts/{AEOAlemi.chunk.js → Cwocc8uV.chunk.js} +2 -2
  60. package/dist/scripts/{AEOAlemi.chunk.js.map → Cwocc8uV.chunk.js.map} +1 -1
  61. package/dist/scripts/{Bld7iWR52.chunk.js → D-pn0sNx2.chunk.js} +2 -2
  62. package/dist/scripts/{Bld7iWR52.chunk.js.map → D-pn0sNx2.chunk.js.map} +1 -1
  63. package/dist/scripts/{Cyit3dMk.chunk.js → D78QEASE.chunk.js} +2 -2
  64. package/dist/scripts/{Cyit3dMk.chunk.js.map → D78QEASE.chunk.js.map} +1 -1
  65. package/dist/scripts/{Dtag-27K.chunk.js → DER8311r.chunk.js} +2 -2
  66. package/dist/scripts/{Dtag-27K.chunk.js.map → DER8311r.chunk.js.map} +1 -1
  67. package/dist/scripts/{CAD-W-lP.chunk.js → DFFJpTVB.chunk.js} +2 -2
  68. package/dist/scripts/{CAD-W-lP.chunk.js.map → DFFJpTVB.chunk.js.map} +1 -1
  69. package/dist/scripts/{CmnbQiBA.chunk.js → DSZaceCq.chunk.js} +2 -2
  70. package/dist/scripts/{CmnbQiBA.chunk.js.map → DSZaceCq.chunk.js.map} +1 -1
  71. package/dist/scripts/{CfNYFxJl2.chunk.js → D_1m0b_a2.chunk.js} +2 -2
  72. package/dist/scripts/{CfNYFxJl2.chunk.js.map → D_1m0b_a2.chunk.js.map} +1 -1
  73. package/dist/scripts/{-KvTbeQV.chunk.js → DhcRnxkp.chunk.js} +2 -2
  74. package/dist/scripts/{-KvTbeQV.chunk.js.map → DhcRnxkp.chunk.js.map} +1 -1
  75. package/dist/scripts/{DKDWcWxk.chunk.js → Dqn0sInF.chunk.js} +2 -2
  76. package/dist/scripts/{DKDWcWxk.chunk.js.map → Dqn0sInF.chunk.js.map} +1 -1
  77. package/dist/scripts/{DICsRDM42.chunk.js → Dz8KlJhf2.chunk.js} +2 -2
  78. package/dist/scripts/{DICsRDM42.chunk.js.map → Dz8KlJhf2.chunk.js.map} +1 -1
  79. package/dist/scripts/{D0b_r0MV.chunk.js → KjTtF4IH.chunk.js} +2 -2
  80. package/dist/scripts/{D0b_r0MV.chunk.js.map → KjTtF4IH.chunk.js.map} +1 -1
  81. package/dist/scripts/{CAs2Sere2.chunk.js → MW7W80HY2.chunk.js} +2 -2
  82. package/dist/scripts/{CAs2Sere2.chunk.js.map → MW7W80HY2.chunk.js.map} +1 -1
  83. package/dist/scripts/{CwFYdvvA.chunk.js → Okf3Hn0s.chunk.js} +2 -2
  84. package/dist/scripts/{CwFYdvvA.chunk.js.map → Okf3Hn0s.chunk.js.map} +1 -1
  85. package/dist/scripts/{Dt5731Ay.chunk.js → _lqYS5Jx.chunk.js} +2 -2
  86. package/dist/scripts/{Dt5731Ay.chunk.js.map → _lqYS5Jx.chunk.js.map} +1 -1
  87. package/dist/scripts/{app-DxHnJ6f2.js → app-H3wSQ-PR.js} +4 -4
  88. package/dist/scripts/{app-DxHnJ6f2.js.map → app-H3wSQ-PR.js.map} +1 -1
  89. package/dist/scripts/{Bkp6sdnZ2.chunk.js → dVOiGqhu2.chunk.js} +2 -2
  90. package/dist/scripts/{Bkp6sdnZ2.chunk.js.map → dVOiGqhu2.chunk.js.map} +1 -1
  91. package/dist/scripts/{B3AhKFfz.chunk.js → ftYw2FVB.chunk.js} +2 -2
  92. package/dist/scripts/{B3AhKFfz.chunk.js.map → ftYw2FVB.chunk.js.map} +1 -1
  93. package/dist/scripts/{DyE6EUDb.chunk.js → kjRiUKIL.chunk.js} +2 -2
  94. package/dist/scripts/{DyE6EUDb.chunk.js.map → kjRiUKIL.chunk.js.map} +1 -1
  95. package/dist/scripts/{B3y60nT5.chunk.js → pDWQ8Uj5.chunk.js} +2 -2
  96. package/dist/scripts/{B3y60nT5.chunk.js.map → pDWQ8Uj5.chunk.js.map} +1 -1
  97. package/dist/scripts/{BCqRKj1E2.chunk.js → s6NJOjzU2.chunk.js} +2 -2
  98. package/dist/scripts/{BCqRKj1E2.chunk.js.map → s6NJOjzU2.chunk.js.map} +1 -1
  99. package/package.json +1 -1
  100. package/dist/scripts/DCT6XY8t.chunk.js +0 -5
  101. package/dist/scripts/DCT6XY8t.chunk.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import"./DAXXjFlN.chunk.js";import{t as e}from"./CQyJ7YGa.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{u as r}from"./BX0wDJmp.chunk.js";import{t as i}from"./CqrjHjAN.chunk.js";import{t as a}from"./CgCqPbjJ.chunk.js";import{t as o}from"./D_gWf2lC.chunk.js";import{t as s}from"./dLd5d3X22.chunk.js";import{t as c}from"./C6-aC3vu.chunk.js";import{n as l,t as u}from"./BGhJ8TEx.chunk.js";import{c as d}from"./BDsN9PWe2.chunk.js";import{t as f}from"./D1LXi_Ni.chunk.js";import"./B-cF1RO-.chunk.js";import{t as p}from"./DpIVDfRB2.chunk.js";import{i as m,o as h}from"./yme6Tx6K2.chunk.js";import{t as g}from"./DDmUhpUA.chunk.js";import{i as _,t as v}from"./0O76oUkQ.chunk.js";import{t as y}from"./-KvTbeQV.chunk.js";t();var b=n(),x=e.encloseNamespace(`shared.insightsHeatmap`);function S(e){let[t]=s(a.ANONYMISE_USERS);g();let n=r(i.currentUser()),S=r(p.interactiveMetadata()),C=r(o.config()),w=d.getAudienceAppLinkParams(),T=d.getDateRangeAppLinkParams(),E=r(p.aggregateHeatmap()),D=r(p.individualHeatmap()),O=r(p.users()),k=r(p.videoViews()),A=r(S.data&&u.createViewKey(`GRWx6w`,l.Share));c({title:S.data?x(`pageTitle`,{video:S.data?.name}):null});let j=!!n.data&&!!k.data&&!!S.data&&!!E.data&&!!A.data&&!!O.data,M=!!D.data;if(!j)return(0,b.jsx)(b.Fragment,{});let N={...w,...T},P=e.type===f.Open?m:h;return(0,b.jsxs)(`div`,{className:`px-3`,children:[(0,b.jsx)(_,{video:S.data,tabs:v(S.data?.id,`heatmap`,N,e.type),dateRangeAppLinkParams:T,share:{...P,objectId:S.data?.id},yearGroups:[],markingRequired:e.type!==f.Open,isDemo:!0,hasData:!0}),(0,b.jsx)(y,{aggregateEngagement:E.data,individualEngagement:D.data?.data,yearGroups:k.data?.yearGroupCount,config:C.data,users:O.data,viewKey:A.data,hasDataLoaded:j,tableDataLoaded:M,anonymiseUsers:t,hideStaffResults:!1})]})}export{S as InsightsHeatmapDemoView};
2
- //# sourceMappingURL=BBWnpWNB2.chunk.js.map
1
+ import"./DAXXjFlN.chunk.js";import{t as e}from"./CQyJ7YGa.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{u as r}from"./BX0wDJmp.chunk.js";import{t as i}from"./CqrjHjAN.chunk.js";import{t as a}from"./CgCqPbjJ.chunk.js";import{t as o}from"./D_gWf2lC.chunk.js";import{t as s}from"./dLd5d3X22.chunk.js";import{t as c}from"./C6-aC3vu.chunk.js";import{n as l,t as u}from"./BGhJ8TEx.chunk.js";import{c as d}from"./BDsN9PWe2.chunk.js";import{t as f}from"./D1LXi_Ni.chunk.js";import"./B-cF1RO-.chunk.js";import{t as p}from"./DpIVDfRB2.chunk.js";import{i as m,o as h}from"./yme6Tx6K2.chunk.js";import{t as g}from"./DDmUhpUA.chunk.js";import{i as _,t as v}from"./0O76oUkQ.chunk.js";import{t as y}from"./DhcRnxkp.chunk.js";t();var b=n(),x=e.encloseNamespace(`shared.insightsHeatmap`);function S(e){let[t]=s(a.ANONYMISE_USERS);g();let n=r(i.currentUser()),S=r(p.interactiveMetadata()),C=r(o.config()),w=d.getAudienceAppLinkParams(),T=d.getDateRangeAppLinkParams(),E=r(p.aggregateHeatmap()),D=r(p.individualHeatmap()),O=r(p.users()),k=r(p.videoViews()),A=r(S.data&&u.createViewKey(`GRWx6w`,l.Share));c({title:S.data?x(`pageTitle`,{video:S.data?.name}):null});let j=!!n.data&&!!k.data&&!!S.data&&!!E.data&&!!A.data&&!!O.data,M=!!D.data;if(!j)return(0,b.jsx)(b.Fragment,{});let N={...w,...T},P=e.type===f.Open?m:h;return(0,b.jsxs)(`div`,{className:`px-3`,children:[(0,b.jsx)(_,{video:S.data,tabs:v(S.data?.id,`heatmap`,N,e.type),dateRangeAppLinkParams:T,share:{...P,objectId:S.data?.id},yearGroups:[],markingRequired:e.type!==f.Open,isDemo:!0,hasData:!0}),(0,b.jsx)(y,{aggregateEngagement:E.data,individualEngagement:D.data?.data,yearGroups:k.data?.yearGroupCount,config:C.data,users:O.data,viewKey:A.data,hasDataLoaded:j,tableDataLoaded:M,anonymiseUsers:t,hideStaffResults:!1})]})}export{S as InsightsHeatmapDemoView};
2
+ //# sourceMappingURL=7uvJMXC12.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BBWnpWNB2.chunk.js","names":[],"sources":["../../src/apps/my-shares/views/demo/heatmap/InsightsHeatmapDemoView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\n\nimport { VideoViewEventResponse } from 'libs/shared/apps/analytics/interfaces/VideoViewEvent';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { ShareType } from 'libs/shared/apps/share/enums/ShareType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, Engagement, IndividualEngagementResponse, InteractiveMetadata, PlayerViewKey } from 'libs/shared/interfaces';\nimport { AnonUser } from 'libs/shared/interfaces/models/interactive-results/AnonUser';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nimport { InsightsHeader } from 'apps/my-shares/components/insights-header/InsightsHeader';\nimport { InsightsHeatmap } from 'apps/my-shares/components/insights-heatmap/InsightsHeatmap';\nimport { DEMO_INTERACTIVE_ID } from 'apps/my-shares/constants/DemoInsights';\nimport { DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE, DEMO_INSIGHTS_SHARE } from 'apps/my-shares/constants/MySharesDemoInsights';\nimport { getInsightsDemoInteractiveTabs } from 'apps/my-shares/utils/InsightsAppLinkUtils';\n\nconst namespace = 'shared.insightsHeatmap';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsHeatmapDemoViewProps {\n type?: ShareType;\n}\n\nexport function InsightsHeatmapDemoView(props: InsightsHeatmapDemoViewProps) {\n const [anonymiseUsers] = useViewModel<boolean>(ViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<InteractiveMetadata>(\n InsightsDemoRequests.interactiveMetadata()\n );\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n\n const aggregateEngagement = Flight.useBasicFetch<Engagement>(\n InsightsDemoRequests.aggregateHeatmap()\n );\n\n const individualEngagement = Flight.useBasicFetch<IndividualEngagementResponse>(\n InsightsDemoRequests.individualHeatmap()\n );\n\n const users = Flight.useBasicFetch<AnonUser[]>(InsightsDemoRequests.users());\n\n const videoViews = Flight.useBasicFetch<VideoViewEventResponse>(InsightsDemoRequests.videoViews());\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(video.data &&\n PlayerRequests.createViewKey(DEMO_INTERACTIVE_ID, MediaIdType.Share));\n\n useSetPageMetadata({ title: video.data ? getPhrase('pageTitle', { video: video.data?.name }) : null });\n\n const hasDataLoaded =\n !!currentUser.data &&\n !!videoViews.data &&\n !!video.data &&\n !!aggregateEngagement.data &&\n !!viewKey.data &&\n !!users.data;\n\n const tableDataLoaded = !!individualEngagement.data;\n\n if (!hasDataLoaded)\n return <></>;\n\n const params = {\n ...audienceAppLinkParams,\n ...dateRangeAppLinkParams\n };\n\n const share = props.type === ShareType.Open ? DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE : DEMO_INSIGHTS_SHARE;\n\n return (\n <div className='px-3'>\n <InsightsHeader\n video={video.data}\n tabs={getInsightsDemoInteractiveTabs(video.data?.id, 'heatmap', params, props.type)}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n share={{\n ...share,\n objectId: video.data?.id\n }}\n yearGroups={[]}\n markingRequired={props.type !== ShareType.Open}\n isDemo\n hasData\n />\n\n <InsightsHeatmap\n aggregateEngagement={aggregateEngagement.data}\n individualEngagement={individualEngagement.data?.data}\n yearGroups={videoViews.data?.yearGroupCount}\n config={config.data}\n users={users.data}\n viewKey={viewKey.data}\n hasDataLoaded={hasDataLoaded}\n tableDataLoaded={tableDataLoaded}\n anonymiseUsers={anonymiseUsers}\n hideStaffResults={false}\n />\n </div>\n );\n}\n"],"mappings":"kwBA4BM,EAAY,EAAgB,iBAAiB,wBAAS,EAM5D,SAAgB,EAAwB,EAAqC,CAC3E,GAAM,CAAC,GAAkB,EAAsB,EAAc,eAAe,EAE5E,EAAoB,EAEpB,IAAM,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAQ,EACZ,EAAqB,oBAAoB,CAC3C,EAEM,EAAS,EAA6B,EAAe,OAAO,CAAC,EAE7D,EAAwB,EAAsB,yBAAyB,EACvE,EAAyB,EAAsB,0BAA0B,EAEzE,EAAsB,EAC1B,EAAqB,iBAAiB,CACxC,EAEM,EAAuB,EAC3B,EAAqB,kBAAkB,CACzC,EAEM,EAAQ,EAAiC,EAAqB,MAAM,CAAC,EAErE,EAAa,EAA6C,EAAqB,WAAW,CAAC,EAE3F,EAAU,EAAoC,EAAM,MACxD,EAAe,cAAA,SAAmC,EAAY,KAAK,CAAC,EAEtE,EAAmB,CAAE,MAAO,EAAM,KAAO,EAAU,YAAa,CAAE,MAAO,EAAM,MAAM,IAAK,CAAC,EAAI,IAAK,CAAC,EAErG,IAAM,EACJ,CAAC,CAAC,EAAY,MACd,CAAC,CAAC,EAAW,MACb,CAAC,CAAC,EAAM,MACR,CAAC,CAAC,EAAoB,MACtB,CAAC,CAAC,EAAQ,MACV,CAAC,CAAC,EAAM,KAEJ,EAAkB,CAAC,CAAC,EAAqB,KAE/C,GAAI,CAAC,EACH,OAAO,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,EAEb,IAAM,EAAS,CACb,GAAG,EACH,GAAG,CACL,EAEM,EAAQ,EAAM,OAAS,EAAU,KAAO,EAAqC,EAEnF,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAO,EAAM,KACb,KAAM,EAA+B,EAAM,MAAM,GAAI,UAAW,EAAQ,EAAM,IAAI,EAC1D,yBACxB,MAAO,CACL,GAAG,EACH,SAAU,EAAM,MAAM,EACxB,EACA,WAAY,CAAC,EACb,gBAAiB,EAAM,OAAS,EAAU,KAC1C,OAAA,GACA,QAAA,EACD,CAAA,GAED,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,oBAAqB,EAAoB,KACzC,qBAAsB,EAAqB,MAAM,KACjD,WAAY,EAAW,MAAM,eAC7B,OAAQ,EAAO,KACf,MAAO,EAAM,KACb,QAAS,EAAQ,KACF,gBACE,kBACD,iBAChB,iBAAkB,EACnB,CAAA,CACE,GAET"}
1
+ {"version":3,"file":"7uvJMXC12.chunk.js","names":[],"sources":["../../src/apps/my-shares/views/demo/heatmap/InsightsHeatmapDemoView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\n\nimport { VideoViewEventResponse } from 'libs/shared/apps/analytics/interfaces/VideoViewEvent';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { ShareType } from 'libs/shared/apps/share/enums/ShareType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, Engagement, IndividualEngagementResponse, InteractiveMetadata, PlayerViewKey } from 'libs/shared/interfaces';\nimport { AnonUser } from 'libs/shared/interfaces/models/interactive-results/AnonUser';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nimport { InsightsHeader } from 'apps/my-shares/components/insights-header/InsightsHeader';\nimport { InsightsHeatmap } from 'apps/my-shares/components/insights-heatmap/InsightsHeatmap';\nimport { DEMO_INTERACTIVE_ID } from 'apps/my-shares/constants/DemoInsights';\nimport { DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE, DEMO_INSIGHTS_SHARE } from 'apps/my-shares/constants/MySharesDemoInsights';\nimport { getInsightsDemoInteractiveTabs } from 'apps/my-shares/utils/InsightsAppLinkUtils';\n\nconst namespace = 'shared.insightsHeatmap';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsHeatmapDemoViewProps {\n type?: ShareType;\n}\n\nexport function InsightsHeatmapDemoView(props: InsightsHeatmapDemoViewProps) {\n const [anonymiseUsers] = useViewModel<boolean>(ViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<InteractiveMetadata>(\n InsightsDemoRequests.interactiveMetadata()\n );\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n\n const aggregateEngagement = Flight.useBasicFetch<Engagement>(\n InsightsDemoRequests.aggregateHeatmap()\n );\n\n const individualEngagement = Flight.useBasicFetch<IndividualEngagementResponse>(\n InsightsDemoRequests.individualHeatmap()\n );\n\n const users = Flight.useBasicFetch<AnonUser[]>(InsightsDemoRequests.users());\n\n const videoViews = Flight.useBasicFetch<VideoViewEventResponse>(InsightsDemoRequests.videoViews());\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(video.data &&\n PlayerRequests.createViewKey(DEMO_INTERACTIVE_ID, MediaIdType.Share));\n\n useSetPageMetadata({ title: video.data ? getPhrase('pageTitle', { video: video.data?.name }) : null });\n\n const hasDataLoaded =\n !!currentUser.data &&\n !!videoViews.data &&\n !!video.data &&\n !!aggregateEngagement.data &&\n !!viewKey.data &&\n !!users.data;\n\n const tableDataLoaded = !!individualEngagement.data;\n\n if (!hasDataLoaded)\n return <></>;\n\n const params = {\n ...audienceAppLinkParams,\n ...dateRangeAppLinkParams\n };\n\n const share = props.type === ShareType.Open ? DEMO_INSIGHTS_OPEN_CLASSROOM_SHARE : DEMO_INSIGHTS_SHARE;\n\n return (\n <div className='px-3'>\n <InsightsHeader\n video={video.data}\n tabs={getInsightsDemoInteractiveTabs(video.data?.id, 'heatmap', params, props.type)}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n share={{\n ...share,\n objectId: video.data?.id\n }}\n yearGroups={[]}\n markingRequired={props.type !== ShareType.Open}\n isDemo\n hasData\n />\n\n <InsightsHeatmap\n aggregateEngagement={aggregateEngagement.data}\n individualEngagement={individualEngagement.data?.data}\n yearGroups={videoViews.data?.yearGroupCount}\n config={config.data}\n users={users.data}\n viewKey={viewKey.data}\n hasDataLoaded={hasDataLoaded}\n tableDataLoaded={tableDataLoaded}\n anonymiseUsers={anonymiseUsers}\n hideStaffResults={false}\n />\n </div>\n );\n}\n"],"mappings":"kwBA4BM,EAAY,EAAgB,iBAAiB,wBAAS,EAM5D,SAAgB,EAAwB,EAAqC,CAC3E,GAAM,CAAC,GAAkB,EAAsB,EAAc,eAAe,EAE5E,EAAoB,EAEpB,IAAM,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAQ,EACZ,EAAqB,oBAAoB,CAC3C,EAEM,EAAS,EAA6B,EAAe,OAAO,CAAC,EAE7D,EAAwB,EAAsB,yBAAyB,EACvE,EAAyB,EAAsB,0BAA0B,EAEzE,EAAsB,EAC1B,EAAqB,iBAAiB,CACxC,EAEM,EAAuB,EAC3B,EAAqB,kBAAkB,CACzC,EAEM,EAAQ,EAAiC,EAAqB,MAAM,CAAC,EAErE,EAAa,EAA6C,EAAqB,WAAW,CAAC,EAE3F,EAAU,EAAoC,EAAM,MACxD,EAAe,cAAA,SAAmC,EAAY,KAAK,CAAC,EAEtE,EAAmB,CAAE,MAAO,EAAM,KAAO,EAAU,YAAa,CAAE,MAAO,EAAM,MAAM,IAAK,CAAC,EAAI,IAAK,CAAC,EAErG,IAAM,EACJ,CAAC,CAAC,EAAY,MACd,CAAC,CAAC,EAAW,MACb,CAAC,CAAC,EAAM,MACR,CAAC,CAAC,EAAoB,MACtB,CAAC,CAAC,EAAQ,MACV,CAAC,CAAC,EAAM,KAEJ,EAAkB,CAAC,CAAC,EAAqB,KAE/C,GAAI,CAAC,EACH,OAAO,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,EAEb,IAAM,EAAS,CACb,GAAG,EACH,GAAG,CACL,EAEM,EAAQ,EAAM,OAAS,EAAU,KAAO,EAAqC,EAEnF,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,gBAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAO,EAAM,KACb,KAAM,EAA+B,EAAM,MAAM,GAAI,UAAW,EAAQ,EAAM,IAAI,EAC1D,yBACxB,MAAO,CACL,GAAG,EACH,SAAU,EAAM,MAAM,EACxB,EACA,WAAY,CAAC,EACb,gBAAiB,EAAM,OAAS,EAAU,KAC1C,OAAA,GACA,QAAA,EACD,CAAA,GAED,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,oBAAqB,EAAoB,KACzC,qBAAsB,EAAqB,MAAM,KACjD,WAAY,EAAW,MAAM,eAC7B,OAAQ,EAAO,KACf,MAAO,EAAM,KACb,QAAS,EAAQ,KACF,gBACE,kBACD,iBAChB,iBAAkB,EACnB,CAAA,CACE,GAET"}
@@ -1,2 +1,2 @@
1
- import"./DAXXjFlN.chunk.js";import{t as e}from"./DMnm3Ewv.chunk.js";import{n as t}from"./B785hxeE.chunk.js";import{t as n}from"./C2w0pmFW.chunk.js";import{t as r}from"./wrLrTezN.chunk.js";import{u as i}from"./BX0wDJmp.chunk.js";import{y as a}from"./NlCAcBdo.chunk.js";import{t as o}from"./xwiwWcv12.chunk.js";import{t as s}from"./DbSUQ2A12.chunk.js";import{t as c}from"./BC8PeYqm.chunk.js";import{t as l}from"./CqrjHjAN.chunk.js";import{t as u}from"./D_gWf2lC.chunk.js";import{n as d,t as f}from"./C6-aC3vu.chunk.js";import{n as p,t as m}from"./BGhJ8TEx.chunk.js";import{t as h}from"./7LGxCHGV.chunk.js";import{t as g}from"./Bbv3vbm7.chunk.js";import{t as _}from"./B3gsVN-_.chunk.js";import{r as v}from"./D-iyHqNw2.chunk.js";import{t as y}from"./CgW21-1J.chunk.js";import{n as b}from"./ChnNWPOK2.chunk.js";import{t as x}from"./C9XBZFiR.chunk.js";import{t as S}from"./BnuuRu_J2.chunk.js";import{t as C}from"./CC5Dr9aG.chunk.js";import{t as w}from"./BYaCUOEW2.chunk.js";import{t as T}from"./DNuJUXpr2.chunk.js";import{n as E,r as D,t as O}from"./CX6c7KRp2.chunk.js";n();var k=r(),A={notFound:y,forbidden:{privacy:g}};function j(e){return e?._parentClip||e?._parentVideo}function M(n){let{hasPermissions:r}=_(),g=i(u.config()),y=i(l.token()),M=i(l.currentUser()),N=i(M.data?.isAuthenticated&&o.yearGroups(M.data.customerId)),P=i(c.interactiveMetadata(n.id)),F=D(),I=i(P.statusCode===e.Forbidden&&c.interactiveMetadata(n.id,s.StripMetadata)),L=i(F&&P.data&&c.interactive(P.data.interactiveId)),R=i(F&&P.data&&c.videoInteractives(j(P.data).id)),z=w(),B=i(m.createViewKey(n.id,p.MasterObject)),V=v({video:P.data,context:n.queryParams.context,contextId:n.queryParams.contextId,moviesAndTv:n.queryParams.mtv,currentUser:M.data}),{commonVideoProps:H,hasCommonVideoPropsCompleted:U}=S({locationContext:F?a.PreviewInteractive:a.PlayInteractive,mtv:n.queryParams.mtv});b({id:n.id,app:`interactives`}),x(P,A,{forbidden:!0}),h(I),f(d.getInteractiveMetadata({content:P.data})),T(V.videos??[]);let W=C({name:P.data?.name});return P.data&&g.hasCompleted&&M.hasCompleted&&(!F||L.hasCompleted)&&B.hasCompleted&&y.hasCompleted&&U?F?(0,k.jsx)(O,{currentUser:M.data,queryParams:n.queryParams,interactive:P.data,interactives:R.data?.data,isPreviewPreventScrubbingEnabled:L.data.preventScrubbing,audiences:z.data,relatedVideos:V,canManageVideoAccess:r(t.ManageVideoAccess),breadcrumbs:W,token:y.data,commonVideoProps:H}):(0,k.jsx)(E,{interactive:P.data,currentUser:M.data,config:g.data,yearGroups:N.data,audiences:z.data,queryParams:n.queryParams,viewKey:B.data,relatedVideos:V,startTime:n.queryParams?.t??n.queryParams?.startTime,token:y.data,commonVideoProps:H}):(0,k.jsx)(k.Fragment,{})}export{M as InteractiveView};
2
- //# sourceMappingURL=CaCm4N_d2.chunk.js.map
1
+ import"./DAXXjFlN.chunk.js";import{t as e}from"./DMnm3Ewv.chunk.js";import{n as t}from"./B785hxeE.chunk.js";import{t as n}from"./C2w0pmFW.chunk.js";import{t as r}from"./wrLrTezN.chunk.js";import{u as i}from"./BX0wDJmp.chunk.js";import{y as a}from"./NlCAcBdo.chunk.js";import{t as o}from"./xwiwWcv12.chunk.js";import{t as s}from"./DbSUQ2A12.chunk.js";import{t as c}from"./BC8PeYqm.chunk.js";import{t as l}from"./CqrjHjAN.chunk.js";import{t as u}from"./D_gWf2lC.chunk.js";import{n as d,t as f}from"./C6-aC3vu.chunk.js";import{n as p,t as m}from"./BGhJ8TEx.chunk.js";import{t as h}from"./7LGxCHGV.chunk.js";import{t as g}from"./Bbv3vbm7.chunk.js";import{t as _}from"./B3gsVN-_.chunk.js";import{r as v}from"./CLvImDXv2.chunk.js";import{t as y}from"./CgW21-1J.chunk.js";import{n as b}from"./ChnNWPOK2.chunk.js";import{t as x}from"./C9XBZFiR.chunk.js";import{t as S}from"./BnuuRu_J2.chunk.js";import{t as C}from"./CC5Dr9aG.chunk.js";import{t as w}from"./BYaCUOEW2.chunk.js";import{t as T}from"./DNuJUXpr2.chunk.js";import{n as E,r as D,t as O}from"./0mx04bmJ2.chunk.js";n();var k=r(),A={notFound:y,forbidden:{privacy:g}};function j(e){return e?._parentClip||e?._parentVideo}function M(n){let{hasPermissions:r}=_(),g=i(u.config()),y=i(l.token()),M=i(l.currentUser()),N=i(M.data?.isAuthenticated&&o.yearGroups(M.data.customerId)),P=i(c.interactiveMetadata(n.id)),F=D(),I=i(P.statusCode===e.Forbidden&&c.interactiveMetadata(n.id,s.StripMetadata)),L=i(F&&P.data&&c.interactive(P.data.interactiveId)),R=i(F&&P.data&&c.videoInteractives(j(P.data).id)),z=w(),B=i(m.createViewKey(n.id,p.MasterObject)),V=v({video:P.data,context:n.queryParams.context,contextId:n.queryParams.contextId,moviesAndTv:n.queryParams.mtv,currentUser:M.data}),{commonVideoProps:H,hasCommonVideoPropsCompleted:U}=S({locationContext:F?a.PreviewInteractive:a.PlayInteractive,mtv:n.queryParams.mtv});b({id:n.id,app:`interactives`}),x(P,A,{forbidden:!0}),h(I),f(d.getInteractiveMetadata({content:P.data})),T(V.videos??[]);let W=C({name:P.data?.name});return P.data&&g.hasCompleted&&M.hasCompleted&&(!F||L.hasCompleted)&&B.hasCompleted&&y.hasCompleted&&U?F?(0,k.jsx)(O,{currentUser:M.data,queryParams:n.queryParams,interactive:P.data,interactives:R.data?.data,isPreviewPreventScrubbingEnabled:L.data.preventScrubbing,audiences:z.data,relatedVideos:V,canManageVideoAccess:r(t.ManageVideoAccess),breadcrumbs:W,token:y.data,commonVideoProps:H}):(0,k.jsx)(E,{interactive:P.data,currentUser:M.data,config:g.data,yearGroups:N.data,audiences:z.data,queryParams:n.queryParams,viewKey:B.data,relatedVideos:V,startTime:n.queryParams?.t??n.queryParams?.startTime,token:y.data,commonVideoProps:H}):(0,k.jsx)(k.Fragment,{})}export{M as InteractiveView};
2
+ //# sourceMappingURL=B-HfRX562.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CaCm4N_d2.chunk.js","names":[],"sources":["../../src/apps/interactives/views/interactive-view/InteractiveView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveCollection, InteractiveMetadata, PlayerViewKey, Video, YearGroup } from 'libs/shared/interfaces';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShouldPreviewInteractive } from 'shared/hooks/useShouldPreviewInteractive';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { PlayInteractive } from 'apps/interactives/components/play-interactive/PlayInteractive';\nimport { PreviewInteractive } from 'apps/interactives/components/preview-interactive/PreviewInteractive';\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nfunction getSourceVideo(interactive?: InteractiveMetadata): Clip | Video {\n return interactive?._parentClip || interactive?._parentVideo;\n}\ninterface InteractiveViewProps {\n id: string;\n queryParams: PlayViewQueryParams;\n}\n\nexport function InteractiveView(props: InteractiveViewProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.id)\n );\n const shouldPreviewInteractive = useShouldPreviewInteractive();\n const strippedInteractiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n interactiveMetadata.statusCode === HttpStatus.Forbidden &&\n InteractiveRequests.interactiveMetadata(props.id, PermissionFilterOption.StripMetadata)\n );\n const interactive = Flight.useBasicFetch<Interactive>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.videoInteractives(getSourceVideo(interactiveMetadata.data).id)\n );\n \n const audiences = usePresentationAudiences();\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.id, MediaIdType.MasterObject));\n\n const relatedVideos = useGetRelatedVideos({\n video: interactiveMetadata.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n\n const locationContext = shouldPreviewInteractive ?\n LocationContext.PreviewInteractive :\n LocationContext.PlayInteractive;\n \n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext, mtv: props.queryParams.mtv });\n\n useDeepLinks({ id: props.id, app: 'interactives' });\n\n useHandleObjectError(interactiveMetadata, videoErrors, { forbidden: true });\n useCannotConsumeError(strippedInteractiveMetadata);\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n\n const breadcrumbs = useBreadcrumbs({ name: interactiveMetadata.data?.name });\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!shouldPreviewInteractive || interactive.hasCompleted) &&\n viewKey.hasCompleted &&\n token.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n if (shouldPreviewInteractive) {\n return (\n <PreviewInteractive\n currentUser={currentUser.data}\n queryParams={props.queryParams}\n interactive={interactiveMetadata.data}\n interactives={interactives.data?.data}\n isPreviewPreventScrubbingEnabled={interactive.data.preventScrubbing}\n audiences={audiences.data}\n relatedVideos={relatedVideos}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n breadcrumbs={breadcrumbs}\n token={token.data}\n commonVideoProps={commonVideoProps}\n />\n );\n }\n\n return (\n <PlayInteractive\n interactive={interactiveMetadata.data}\n currentUser={currentUser.data}\n config={config.data}\n yearGroups={yearGroups.data}\n audiences={audiences.data}\n queryParams={props.queryParams}\n viewKey={viewKey.data}\n relatedVideos={relatedVideos}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n token={token.data}\n commonVideoProps={commonVideoProps}\n />\n );\n}\n"],"mappings":"sjCAqCM,EAAc,CAClB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAEA,SAAS,EAAe,EAAiD,CACvE,OAAO,GAAa,aAAe,GAAa,YAClD,CAMA,SAAgB,EAAgB,EAA0C,CACxE,GAAM,CAAE,kBAAmB,EAAe,EAEpC,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAQ,EAAgC,EAAa,MAAM,CAAC,EAC5D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAa,EACjB,EAAY,MAAM,iBAAmB,EAAiB,WAAW,EAAY,KAAK,UAAU,CAC9F,EAEM,EAAsB,EAC1B,EAAoB,oBAAoB,EAAM,EAAE,CAClD,EACM,EAA2B,EAA4B,EACvD,EAA8B,EAClC,EAAoB,aAAe,EAAW,WAC5C,EAAoB,oBAAoB,EAAM,GAAI,EAAuB,aAAa,CAC1F,EACM,EAAc,EAClB,GAA4B,EAAoB,MAChD,EAAoB,YAAY,EAAoB,KAAK,aAAa,CACxE,EACM,EAAe,EACnB,GAA4B,EAAoB,MAChD,EAAoB,kBAAkB,EAAe,EAAoB,IAAI,CAAC,CAAC,EAAE,CACnF,EAEM,EAAY,EAAyB,EACrC,EAAU,EAAoC,EAAe,cAAc,EAAM,GAAI,EAAY,YAAY,CAAC,EAE9G,EAAgB,EAAoB,CACxC,MAAO,EAAoB,KAC3B,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,YAAa,EAAM,YAAY,IAC/B,YAAa,EAAY,IAC3B,CAAC,EAMK,CACJ,mBACA,gCACE,EAAoB,CAAE,gBAPF,EACtB,EAAgB,mBAChB,EAAgB,gBAKyB,IAAK,EAAM,YAAY,GAAI,CAAC,EAEvE,EAAa,CAAE,GAAI,EAAM,GAAI,IAAK,cAAe,CAAC,EAElD,EAAqB,EAAqB,EAAa,CAAE,UAAW,EAAK,CAAC,EAC1E,EAAsB,CAA2B,EACjD,EAAmB,EAAmB,uBAAuB,CAAE,QAAS,EAAoB,IAAK,CAAC,CAAC,EAEnG,EAAc,EAAc,QAAU,CAAC,CAAC,EAExC,IAAM,EAAc,EAAe,CAAE,KAAM,EAAoB,MAAM,IAAK,CAAC,EAiC3E,OA9BE,EAAoB,MACpB,EAAO,cACP,EAAY,eACX,CAAC,GAA4B,EAAY,eAC1C,EAAQ,cACR,EAAM,cACN,EAME,GAEA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,YAAa,EAAM,YACnB,YAAa,EAAoB,KACjC,aAAc,EAAa,MAAM,KACjC,iCAAkC,EAAY,KAAK,iBACnD,UAAW,EAAU,KACN,gBACf,qBAAsB,EAAe,EAAe,iBAAiB,EACxD,cACb,MAAO,EAAM,KACK,kBACnB,CAAA,GAKH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAoB,KACjC,YAAa,EAAY,KACzB,OAAQ,EAAO,KACf,WAAY,EAAW,KACvB,UAAW,EAAU,KACrB,YAAa,EAAM,YACnB,QAAS,EAAQ,KACF,gBACf,UAAW,EAAM,aAAa,GAAK,EAAM,aAAa,UACtD,MAAO,EAAM,KACK,kBACnB,CAAA,GAjCM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAmCf"}
1
+ {"version":3,"file":"B-HfRX562.chunk.js","names":[],"sources":["../../src/apps/interactives/views/interactive-view/InteractiveView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveCollection, InteractiveMetadata, PlayerViewKey, Video, YearGroup } from 'libs/shared/interfaces';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShouldPreviewInteractive } from 'shared/hooks/useShouldPreviewInteractive';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { PlayInteractive } from 'apps/interactives/components/play-interactive/PlayInteractive';\nimport { PreviewInteractive } from 'apps/interactives/components/preview-interactive/PreviewInteractive';\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nfunction getSourceVideo(interactive?: InteractiveMetadata): Clip | Video {\n return interactive?._parentClip || interactive?._parentVideo;\n}\ninterface InteractiveViewProps {\n id: string;\n queryParams: PlayViewQueryParams;\n}\n\nexport function InteractiveView(props: InteractiveViewProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.id)\n );\n const shouldPreviewInteractive = useShouldPreviewInteractive();\n const strippedInteractiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n interactiveMetadata.statusCode === HttpStatus.Forbidden &&\n InteractiveRequests.interactiveMetadata(props.id, PermissionFilterOption.StripMetadata)\n );\n const interactive = Flight.useBasicFetch<Interactive>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.videoInteractives(getSourceVideo(interactiveMetadata.data).id)\n );\n \n const audiences = usePresentationAudiences();\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(PlayerRequests.createViewKey(props.id, MediaIdType.MasterObject));\n\n const relatedVideos = useGetRelatedVideos({\n video: interactiveMetadata.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n\n const locationContext = shouldPreviewInteractive ?\n LocationContext.PreviewInteractive :\n LocationContext.PlayInteractive;\n \n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext, mtv: props.queryParams.mtv });\n\n useDeepLinks({ id: props.id, app: 'interactives' });\n\n useHandleObjectError(interactiveMetadata, videoErrors, { forbidden: true });\n useCannotConsumeError(strippedInteractiveMetadata);\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n\n const breadcrumbs = useBreadcrumbs({ name: interactiveMetadata.data?.name });\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!shouldPreviewInteractive || interactive.hasCompleted) &&\n viewKey.hasCompleted &&\n token.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n if (shouldPreviewInteractive) {\n return (\n <PreviewInteractive\n currentUser={currentUser.data}\n queryParams={props.queryParams}\n interactive={interactiveMetadata.data}\n interactives={interactives.data?.data}\n isPreviewPreventScrubbingEnabled={interactive.data.preventScrubbing}\n audiences={audiences.data}\n relatedVideos={relatedVideos}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n breadcrumbs={breadcrumbs}\n token={token.data}\n commonVideoProps={commonVideoProps}\n />\n );\n }\n\n return (\n <PlayInteractive\n interactive={interactiveMetadata.data}\n currentUser={currentUser.data}\n config={config.data}\n yearGroups={yearGroups.data}\n audiences={audiences.data}\n queryParams={props.queryParams}\n viewKey={viewKey.data}\n relatedVideos={relatedVideos}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n token={token.data}\n commonVideoProps={commonVideoProps}\n />\n );\n}\n"],"mappings":"sjCAqCM,EAAc,CAClB,SAAU,EACV,UAAW,CACT,QAAS,CACX,CACF,EAEA,SAAS,EAAe,EAAiD,CACvE,OAAO,GAAa,aAAe,GAAa,YAClD,CAMA,SAAgB,EAAgB,EAA0C,CACxE,GAAM,CAAE,kBAAmB,EAAe,EAEpC,EAAS,EAA6B,EAAe,OAAO,CAAC,EAC7D,EAAQ,EAAgC,EAAa,MAAM,CAAC,EAC5D,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAa,EACjB,EAAY,MAAM,iBAAmB,EAAiB,WAAW,EAAY,KAAK,UAAU,CAC9F,EAEM,EAAsB,EAC1B,EAAoB,oBAAoB,EAAM,EAAE,CAClD,EACM,EAA2B,EAA4B,EACvD,EAA8B,EAClC,EAAoB,aAAe,EAAW,WAC5C,EAAoB,oBAAoB,EAAM,GAAI,EAAuB,aAAa,CAC1F,EACM,EAAc,EAClB,GAA4B,EAAoB,MAChD,EAAoB,YAAY,EAAoB,KAAK,aAAa,CACxE,EACM,EAAe,EACnB,GAA4B,EAAoB,MAChD,EAAoB,kBAAkB,EAAe,EAAoB,IAAI,CAAC,CAAC,EAAE,CACnF,EAEM,EAAY,EAAyB,EACrC,EAAU,EAAoC,EAAe,cAAc,EAAM,GAAI,EAAY,YAAY,CAAC,EAE9G,EAAgB,EAAoB,CACxC,MAAO,EAAoB,KAC3B,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,YAAa,EAAM,YAAY,IAC/B,YAAa,EAAY,IAC3B,CAAC,EAMK,CACJ,mBACA,gCACE,EAAoB,CAAE,gBAPF,EACtB,EAAgB,mBAChB,EAAgB,gBAKyB,IAAK,EAAM,YAAY,GAAI,CAAC,EAEvE,EAAa,CAAE,GAAI,EAAM,GAAI,IAAK,cAAe,CAAC,EAElD,EAAqB,EAAqB,EAAa,CAAE,UAAW,EAAK,CAAC,EAC1E,EAAsB,CAA2B,EACjD,EAAmB,EAAmB,uBAAuB,CAAE,QAAS,EAAoB,IAAK,CAAC,CAAC,EAEnG,EAAc,EAAc,QAAU,CAAC,CAAC,EAExC,IAAM,EAAc,EAAe,CAAE,KAAM,EAAoB,MAAM,IAAK,CAAC,EAiC3E,OA9BE,EAAoB,MACpB,EAAO,cACP,EAAY,eACX,CAAC,GAA4B,EAAY,eAC1C,EAAQ,cACR,EAAM,cACN,EAME,GAEA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,YAAa,EAAM,YACnB,YAAa,EAAoB,KACjC,aAAc,EAAa,MAAM,KACjC,iCAAkC,EAAY,KAAK,iBACnD,UAAW,EAAU,KACN,gBACf,qBAAsB,EAAe,EAAe,iBAAiB,EACxD,cACb,MAAO,EAAM,KACK,kBACnB,CAAA,GAKH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAoB,KACjC,YAAa,EAAY,KACzB,OAAQ,EAAO,KACf,WAAY,EAAW,KACvB,UAAW,EAAU,KACrB,YAAa,EAAM,YACnB,QAAS,EAAQ,KACF,gBACf,UAAW,EAAM,aAAa,GAAK,EAAM,aAAa,UACtD,MAAO,EAAM,KACK,kBACnB,CAAA,GAjCM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAmCf"}
@@ -1,2 +1,2 @@
1
- import{o as e}from"./DAXXjFlN.chunk.js";import{_ as t,y as n}from"./BftnFbcr.chunk.js";import"./DFZS3Ffo.chunk.js";import{t as r}from"./CQyJ7YGa.chunk.js";import{t as i}from"./C2w0pmFW.chunk.js";import{t as a}from"./wrLrTezN.chunk.js";import{u as o}from"./BX0wDJmp.chunk.js";import{t as s}from"./C1SLt-ar.chunk.js";import{l as c,y as l,z as u}from"./NlCAcBdo.chunk.js";import{i as d,r as f,t as p}from"./Cr6TXzQQ2.chunk.js";import{n as m}from"./CmcCVXi32.chunk.js";import{t as h}from"./DGmmTRu72.chunk.js";import{t as ee}from"./CqrjHjAN.chunk.js";import{t as g}from"./XIE88U01.chunk.js";import{t as _}from"./7-GJWRH82.chunk.js";import{n as v}from"./C0exjRXJ.chunk.js";import{t as y}from"./BJZXCSV9.chunk.js";import{t as b}from"./C6-aC3vu.chunk.js";import{t as x}from"./B3gsVN-_.chunk.js";import{t as S}from"./BugRosaL2.chunk.js";import{n as C}from"./CpFtf-tI2.chunk.js";import{t as w}from"./5ONJSThP.chunk.js";import{t as T}from"./C7GcQtj3.chunk.js";import{t as E}from"./DewCxv4i.chunk.js";import{t as D}from"./B8gP8YoA.chunk.js";import{t as O}from"./fm4MaUp7.chunk.js";import{t as k}from"./BnuuRu_J2.chunk.js";import{o as te}from"./CpgHBpMp.chunk.js";import{n as A,t as j}from"./By1soXyj.chunk.js";import{n as M,t as N}from"./CvtZ8ZFA2.chunk.js";import{t as P}from"./BCqRKj1E2.chunk.js";var F=e(i()),I=a(),L=`contentPartner.contentPartnerIndexDashboardEmptyState`;function R(e){return(0,I.jsxs)(y,{children:[e.image&&(0,I.jsx)(y.Image,{src:e.image}),(0,I.jsx)(y.Heading,{children:(0,I.jsx)(C,{namespace:L,phrase:`heading`,options:{letterFilter:e.letterFilter}})}),(0,I.jsx)(y.Info,{children:(0,I.jsx)(C,{namespace:L,phrase:`info`})})]})}function z(e){let t=s.sortBy(e.dashboard?.widgets,`index`),{isEmptyWidget:n,setEmptyWidget:r}=A(t);function i(n,r,i,a){if(!t.length)return;let o=f.getWidgetParams(r,i,f.getDashboardTargetType(e.dashboard),void 0,void 0,{params:e.queryParams});return e.getWidgetContentRequest(n,o,i,a)}let a=t.every(e=>n(e.id));return!t.length||a?(0,I.jsx)(R,{image:e.emptyStateImage,letterFilter:e.queryParams?.letterPrefix}):(0,I.jsx)(`div`,{className:`mt-3`,children:t.map((t,n)=>(0,I.jsx)(P,{dashboardTarget:m.DiscoverPartnerProfiles,index:n,item:t,infiniteFetch:e.dashboard.widgets.length-1===n,getName:e=>e.name,getWidgetMetadata:e=>e.metadata,appLinks:e.widgetAppLinks,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps,audiences:e.audiences,setIsEmpty:e=>r(t.id,e),getCursor:e=>e.cursor,getRequest:e=>i(t.id,t.widgetId,t.templateId,e),hasLocalPermissions:e.hasLocalPermissions,currentUser:e.currentUser,availablePresentations:e.availablePresentations,settingsHash:e.settings,getContent:e=>e.content,resultsTransformers:p.getWidgetResultsTransformers(),isEmptyPredicate:e=>Array.isArray(e)&&Array.isArray(e[0]?.content)&&!e[0]?.content?.length,getSelectedItems:null,getSeeMoreAppLink:null,appLinkOptions:null},t.id))})}var B={pillTabSelector:`_pillTabSelector_1d8n6_1`},V=`Custom`,H=[V,`#`,`A`,`B`,`C`,`D`,`E`,`F`,`G`,`H`,`I`,`J`,`K`,`L`,`M`,`N`,`O`,`P`,`Q`,`R`,`S`,`T`,`U`,`V`,`W`,`X`,`Y`,`Z`],U={"#":`0`},W={actionType:u.Click,entity:c.Url,location:l.MagicTabs};function G(e,t){if(!e)return;if(e===`0`)return`#`;let n=H.find(t=>t.toUpperCase()===e.toUpperCase());if(!(n===`Custom`&&!t))return n}function K(e){return H.map(t=>{if(t===`Custom`&&!e.showCustom)return;let r=e.getItemAppLink(U[t]??t);return{name:t,appLink:r,active:e.selected===t,analyticsData:{name:t,url:n.getHref(r)},analyticsOptions:W}}).filter(Boolean)}function q(e){let t=K({selected:G(e.selected,e.showCustom),showCustom:e.showCustom,getItemAppLink:e.getItemAppLink});return(0,I.jsx)(`div`,{className:v(e.noMarginBottom?`mb-0`:`mb-3`,e.className),children:(0,I.jsx)(O,{tabs:t,className:B.pillTabSelector,enableSmallScreenSupport:e.enableSmallScreenSupport,formatDisplayText:e.formatDisplayText,forceSmallScreenDropdown:e.forceSmallScreenDropdown})})}var J=function(e){return e.RecentlyUpdated=`lastupdated`,e.ATOZ=`name`,e.Newest=`datecreated`,e}({}),Y={[J.RecentlyUpdated]:`Recently Updated`,[J.ATOZ]:`A to Z`,[J.Newest]:`Newest`};function X(e){return(0,I.jsx)(`select`,{id:`widget-sort-selector`,disabled:e.disabled,className:`form-select`,value:e.selected,onChange:t=>e.onSortChange(t.target.value),children:Object.entries(Y).map(([e,t])=>(0,I.jsx)(`option`,{value:e,children:t},e))})}function Z(e){return!e||e.length!==1?V:e}function ne(e){return e?Object.values(J).find(t=>t.toLowerCase()===e.toLowerCase())??J.RecentlyUpdated:J.RecentlyUpdated}function re(e){let{letter:t,sort:n}=e;return{selectedLetter:Z(t),selectedSort:ne(n)}}var Q=`contentPartners.discover`,$=r.encloseNamespace(Q);function ie(e){if(e!==`Custom`)return e}function ae(e){return e===`Custom`?$(`featuredChannels`):e}function oe(e){let{dashboard:t,selectedLetter:n}=e;if(t)return n===`Custom`?t:{...t,widgets:t.widgets.filter(e=>e.widgetId===d.ContentPartners)}}function se(e){let{selectedLetter:r,selectedSort:i}=re({letter:e.letter,sort:e.sort});b({title:$(`pageTitle`),description:$(`pageDescription`)});let a=w(),s=a.md||a.sm||a.xs,c=o(ee.currentUser()),u=M({location:N.VideoItem,presentationSlug:null}),{commonVideoProps:d}=k({locationContext:l.VideoThumbnail}),{hasPermissions:f,hasLocalPermissions:p}=x(),v=h(null),{availablePresentations:y}=T(),{dashboard:O}=D({targetType:m.DiscoverPartnerProfiles,queryParams:{}});function A(e,t,n,r){return E.dashboardWidgetContent(e,t,n,void 0,{cursor:r??void 0})}F.useEffect(()=>{!O.hasCompleted||O.data||t.throw(new g)},[O.data,O.hasCompleted]);let P=F.useCallback(({forceSmallScreenDropdown:e})=>(0,I.jsx)(q,{showCustom:!0,noMarginBottom:!0,selected:r,getItemAppLink:e=>S.getPartnerHomeAppLink({letter:ie(e)}),formatDisplayText:ae,forceSmallScreenDropdown:e}),[r]),L=oe({dashboard:O.data,selectedLetter:r}),R={letterPrefix:r===`Custom`?void 0:r,sort:r===`Custom`?void 0:i};function B(e){let t=e===J.RecentlyUpdated?void 0:e;n.trigger(S.getPartnerHomeAppLink({letter:R.letterPrefix,sort:t}))}return O.hasCompleted?(0,I.jsxs)(`div`,{className:`bg-white px-3`,children:[(0,I.jsxs)(`div`,{className:`d-flex d-md-block flex-column mb-4 gap-4`,children:[(0,I.jsxs)(`div`,{className:`d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-md-3 gap-3`,children:[(0,I.jsx)(`h1`,{className:`h2 mb-0`,children:(0,I.jsx)(C,{namespace:Q,phrase:`headerTitle`})}),(0,I.jsxs)(`div`,{className:`d-flex flex-column flex-md-row gap-3`,children:[s&&(0,I.jsx)(P,{forceSmallScreenDropdown:!0}),(0,I.jsx)(X,{selected:i,onSortChange:B,disabled:r===V})]})]}),!s&&(0,I.jsx)(P,{})]}),(0,I.jsx)(`div`,{className:`mb-4`,children:(0,I.jsx)(te.Provider,{value:u,children:(0,I.jsx)(z,{currentUser:c.data,availablePresentations:y,dashboard:L,getWidgetContentRequest:A,commonVideoProps:d,hasPermissions:f,hasLocalPermissions:p,settings:v,widgetAppLinks:j(c.data),queryParams:R,emptyStateImage:_.EmptyStates.WATCH_HISTORY},r)})})]}):(0,I.jsx)(I.Fragment,{})}export{se as ContentPartnersDiscoverView};
2
- //# sourceMappingURL=D9wxi5or2.chunk.js.map
1
+ import{o as e}from"./DAXXjFlN.chunk.js";import{_ as t,y as n}from"./BftnFbcr.chunk.js";import"./DFZS3Ffo.chunk.js";import{t as r}from"./CQyJ7YGa.chunk.js";import{t as i}from"./C2w0pmFW.chunk.js";import{t as a}from"./wrLrTezN.chunk.js";import{u as o}from"./BX0wDJmp.chunk.js";import{t as s}from"./C1SLt-ar.chunk.js";import{l as c,y as l,z as u}from"./NlCAcBdo.chunk.js";import{i as d,r as f,t as p}from"./Cr6TXzQQ2.chunk.js";import{n as m}from"./CmcCVXi32.chunk.js";import{t as h}from"./DGmmTRu72.chunk.js";import{t as ee}from"./CqrjHjAN.chunk.js";import{t as g}from"./XIE88U01.chunk.js";import{t as _}from"./7-GJWRH82.chunk.js";import{n as v}from"./C0exjRXJ.chunk.js";import{t as y}from"./BJZXCSV9.chunk.js";import{t as b}from"./C6-aC3vu.chunk.js";import{t as x}from"./B3gsVN-_.chunk.js";import{t as S}from"./BugRosaL2.chunk.js";import{n as C}from"./CpFtf-tI2.chunk.js";import{t as w}from"./5ONJSThP.chunk.js";import{t as T}from"./C7GcQtj3.chunk.js";import{t as E}from"./DewCxv4i.chunk.js";import{t as D}from"./B8gP8YoA.chunk.js";import{t as O}from"./fm4MaUp7.chunk.js";import{t as k}from"./BnuuRu_J2.chunk.js";import{o as te}from"./CpgHBpMp.chunk.js";import{n as A,t as j}from"./By1soXyj.chunk.js";import{n as M,t as N}from"./CvtZ8ZFA2.chunk.js";import{t as P}from"./s6NJOjzU2.chunk.js";var F=e(i()),I=a(),L=`contentPartner.contentPartnerIndexDashboardEmptyState`;function R(e){return(0,I.jsxs)(y,{children:[e.image&&(0,I.jsx)(y.Image,{src:e.image}),(0,I.jsx)(y.Heading,{children:(0,I.jsx)(C,{namespace:L,phrase:`heading`,options:{letterFilter:e.letterFilter}})}),(0,I.jsx)(y.Info,{children:(0,I.jsx)(C,{namespace:L,phrase:`info`})})]})}function z(e){let t=s.sortBy(e.dashboard?.widgets,`index`),{isEmptyWidget:n,setEmptyWidget:r}=A(t);function i(n,r,i,a){if(!t.length)return;let o=f.getWidgetParams(r,i,f.getDashboardTargetType(e.dashboard),void 0,void 0,{params:e.queryParams});return e.getWidgetContentRequest(n,o,i,a)}let a=t.every(e=>n(e.id));return!t.length||a?(0,I.jsx)(R,{image:e.emptyStateImage,letterFilter:e.queryParams?.letterPrefix}):(0,I.jsx)(`div`,{className:`mt-3`,children:t.map((t,n)=>(0,I.jsx)(P,{dashboardTarget:m.DiscoverPartnerProfiles,index:n,item:t,infiniteFetch:e.dashboard.widgets.length-1===n,getName:e=>e.name,getWidgetMetadata:e=>e.metadata,appLinks:e.widgetAppLinks,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps,audiences:e.audiences,setIsEmpty:e=>r(t.id,e),getCursor:e=>e.cursor,getRequest:e=>i(t.id,t.widgetId,t.templateId,e),hasLocalPermissions:e.hasLocalPermissions,currentUser:e.currentUser,availablePresentations:e.availablePresentations,settingsHash:e.settings,getContent:e=>e.content,resultsTransformers:p.getWidgetResultsTransformers(),isEmptyPredicate:e=>Array.isArray(e)&&Array.isArray(e[0]?.content)&&!e[0]?.content?.length,getSelectedItems:null,getSeeMoreAppLink:null,appLinkOptions:null},t.id))})}var B={pillTabSelector:`_pillTabSelector_1d8n6_1`},V=`Custom`,H=[V,`#`,`A`,`B`,`C`,`D`,`E`,`F`,`G`,`H`,`I`,`J`,`K`,`L`,`M`,`N`,`O`,`P`,`Q`,`R`,`S`,`T`,`U`,`V`,`W`,`X`,`Y`,`Z`],U={"#":`0`},W={actionType:u.Click,entity:c.Url,location:l.MagicTabs};function G(e,t){if(!e)return;if(e===`0`)return`#`;let n=H.find(t=>t.toUpperCase()===e.toUpperCase());if(!(n===`Custom`&&!t))return n}function K(e){return H.map(t=>{if(t===`Custom`&&!e.showCustom)return;let r=e.getItemAppLink(U[t]??t);return{name:t,appLink:r,active:e.selected===t,analyticsData:{name:t,url:n.getHref(r)},analyticsOptions:W}}).filter(Boolean)}function q(e){let t=K({selected:G(e.selected,e.showCustom),showCustom:e.showCustom,getItemAppLink:e.getItemAppLink});return(0,I.jsx)(`div`,{className:v(e.noMarginBottom?`mb-0`:`mb-3`,e.className),children:(0,I.jsx)(O,{tabs:t,className:B.pillTabSelector,enableSmallScreenSupport:e.enableSmallScreenSupport,formatDisplayText:e.formatDisplayText,forceSmallScreenDropdown:e.forceSmallScreenDropdown})})}var J=function(e){return e.RecentlyUpdated=`lastupdated`,e.ATOZ=`name`,e.Newest=`datecreated`,e}({}),Y={[J.RecentlyUpdated]:`Recently Updated`,[J.ATOZ]:`A to Z`,[J.Newest]:`Newest`};function X(e){return(0,I.jsx)(`select`,{id:`widget-sort-selector`,disabled:e.disabled,className:`form-select`,value:e.selected,onChange:t=>e.onSortChange(t.target.value),children:Object.entries(Y).map(([e,t])=>(0,I.jsx)(`option`,{value:e,children:t},e))})}function Z(e){return!e||e.length!==1?V:e}function ne(e){return e?Object.values(J).find(t=>t.toLowerCase()===e.toLowerCase())??J.RecentlyUpdated:J.RecentlyUpdated}function re(e){let{letter:t,sort:n}=e;return{selectedLetter:Z(t),selectedSort:ne(n)}}var Q=`contentPartners.discover`,$=r.encloseNamespace(Q);function ie(e){if(e!==`Custom`)return e}function ae(e){return e===`Custom`?$(`featuredChannels`):e}function oe(e){let{dashboard:t,selectedLetter:n}=e;if(t)return n===`Custom`?t:{...t,widgets:t.widgets.filter(e=>e.widgetId===d.ContentPartners)}}function se(e){let{selectedLetter:r,selectedSort:i}=re({letter:e.letter,sort:e.sort});b({title:$(`pageTitle`),description:$(`pageDescription`)});let a=w(),s=a.md||a.sm||a.xs,c=o(ee.currentUser()),u=M({location:N.VideoItem,presentationSlug:null}),{commonVideoProps:d}=k({locationContext:l.VideoThumbnail}),{hasPermissions:f,hasLocalPermissions:p}=x(),v=h(null),{availablePresentations:y}=T(),{dashboard:O}=D({targetType:m.DiscoverPartnerProfiles,queryParams:{}});function A(e,t,n,r){return E.dashboardWidgetContent(e,t,n,void 0,{cursor:r??void 0})}F.useEffect(()=>{!O.hasCompleted||O.data||t.throw(new g)},[O.data,O.hasCompleted]);let P=F.useCallback(({forceSmallScreenDropdown:e})=>(0,I.jsx)(q,{showCustom:!0,noMarginBottom:!0,selected:r,getItemAppLink:e=>S.getPartnerHomeAppLink({letter:ie(e)}),formatDisplayText:ae,forceSmallScreenDropdown:e}),[r]),L=oe({dashboard:O.data,selectedLetter:r}),R={letterPrefix:r===`Custom`?void 0:r,sort:r===`Custom`?void 0:i};function B(e){let t=e===J.RecentlyUpdated?void 0:e;n.trigger(S.getPartnerHomeAppLink({letter:R.letterPrefix,sort:t}))}return O.hasCompleted?(0,I.jsxs)(`div`,{className:`bg-white px-3`,children:[(0,I.jsxs)(`div`,{className:`d-flex d-md-block flex-column mb-4 gap-4`,children:[(0,I.jsxs)(`div`,{className:`d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-md-3 gap-3`,children:[(0,I.jsx)(`h1`,{className:`h2 mb-0`,children:(0,I.jsx)(C,{namespace:Q,phrase:`headerTitle`})}),(0,I.jsxs)(`div`,{className:`d-flex flex-column flex-md-row gap-3`,children:[s&&(0,I.jsx)(P,{forceSmallScreenDropdown:!0}),(0,I.jsx)(X,{selected:i,onSortChange:B,disabled:r===V})]})]}),!s&&(0,I.jsx)(P,{})]}),(0,I.jsx)(`div`,{className:`mb-4`,children:(0,I.jsx)(te.Provider,{value:u,children:(0,I.jsx)(z,{currentUser:c.data,availablePresentations:y,dashboard:L,getWidgetContentRequest:A,commonVideoProps:d,hasPermissions:f,hasLocalPermissions:p,settings:v,widgetAppLinks:j(c.data),queryParams:R,emptyStateImage:_.EmptyStates.WATCH_HISTORY},r)})})]}):(0,I.jsx)(I.Fragment,{})}export{se as ContentPartnersDiscoverView};
2
+ //# sourceMappingURL=B2_RD6Px2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"D9wxi5or2.chunk.js","names":[],"sources":["../../../../libs/shared/src/apps/content-partners/components/content-partner-index-dashboard/empty-states/content-partner-index-dashboard-empty-state/ContentPartnerIndexDashboardEmptyState.tsx","../../../../libs/shared/src/apps/content-partners/components/content-partner-index-dashboard/ContentPartnerIndexDashboard.tsx","../../../../libs/shared/src/components/letters-bar/letters-bar.module.scss","../../../../libs/shared/src/components/letters-bar/LettersBar.tsx","../../src/apps/content-partners/enums/WidgetSort.ts","../../src/apps/content-partners/components/widget-sort-selector/WidgetSortSelector.tsx","../../src/apps/content-partners/utils/getContentPartnerParams.ts","../../src/apps/content-partners/views/content-partners-discover/ContentPartnersDiscoverView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'contentPartner.contentPartnerIndexDashboardEmptyState';\n\ninterface ContentPartnerIndexDashboardEmptyStateProps {\n image?: string;\n letterFilter?: string;\n}\n\nexport function ContentPartnerIndexDashboardEmptyState(\n props: ContentPartnerIndexDashboardEmptyStateProps\n): JSX.Element {\n return (\n <EmptyState>\n {props.image &&\n <EmptyState.Image src={props.image} />\n }\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' options={{ letterFilter: props.letterFilter }} />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n );\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { InfiniteWidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/InfiniteWidgetContainerView';\nimport { AllPartnerProfileWidgetTemplates } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { useEmptyWidgets } from 'libs/shared/hooks/useEmptyWidgets';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CuratedDashboard, CuratedWidget, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport { ContentPartnerIndexDashboardEmptyState } from './empty-states/content-partner-index-dashboard-empty-state/ContentPartnerIndexDashboardEmptyState';\n\ninterface ContentPartnerIndexDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n cursor?: string\n ) => Flight.Request;\n commonVideoProps: CommonVideoProps;\n isReadonly?: boolean;\n widgetAppLinks?: AllPartnerProfileWidgetTemplates['appLinks'];\n scrollToWidgetId?: string;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n settings?: AllPartnerProfileWidgetTemplates['settings'];\n audiences?: PresentationAudience[];\n queryParams?: CuratedWidgetQueryParams;\n currentUser: CurrentUser;\n availablePresentations: Presentation[];\n emptyStateImage?: string;\n}\n\nexport function ContentPartnerIndexDashboard(props: ContentPartnerIndexDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n const { isEmptyWidget, setEmptyWidget } = useEmptyWidgets(widgets);\n\n function getWidgetContentRequest(\n id: string,\n widgetTypeId: WidgetTypeId,\n template: WidgetTemplate,\n cursor?: string\n ): Flight.Request {\n if (!widgets.length) return;\n\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard),\n undefined,\n undefined,\n { params: props.queryParams }\n );\n\n return props.getWidgetContentRequest(id, params, template, cursor);\n }\n\n const isContentPartnerWidgetEmpty = widgets.every(\n widget => isEmptyWidget(widget.id)\n );\n\n if (!widgets.length || isContentPartnerWidgetEmpty)\n return (\n <ContentPartnerIndexDashboardEmptyState\n image={props.emptyStateImage}\n letterFilter={props.queryParams?.letterPrefix}\n />\n );\n \n return (\n <div className='mt-3'>\n {widgets.map((widget, idx) => (\n <InfiniteWidgetContainerView<CuratedWidget, CuratedWidget, AllPartnerProfileWidgetTemplates>\n dashboardTarget={DashboardTargetType.DiscoverPartnerProfiles}\n key={widget.id}\n index={idx}\n item={widget}\n\n infiniteFetch={props.dashboard.widgets.length - 1 === idx}\n getName={widget => widget.name}\n getWidgetMetadata={w => w.metadata}\n appLinks={props.widgetAppLinks}\n hasPermissions={props.hasPermissions}\n commonVideoProps={props.commonVideoProps}\n audiences={props.audiences}\n setIsEmpty={isEmpty => setEmptyWidget(widget.id, isEmpty)}\n getCursor={w => w.cursor}\n getRequest={cursor => getWidgetContentRequest(widget.id, widget.widgetId, widget.templateId, cursor)}\n hasLocalPermissions={props.hasLocalPermissions}\n currentUser={props.currentUser}\n availablePresentations={props.availablePresentations}\n settingsHash={props.settings}\n getContent={w => w.content}\n resultsTransformers={WidgetHelper.getWidgetResultsTransformers()}\n isEmptyPredicate={items => (\n Array.isArray(items) && Array.isArray(items[0]?.content) && !items[0]?.content?.length\n )}\n getSelectedItems={null}\n getSeeMoreAppLink={null}\n appLinkOptions={null}\n />\n ))}\n </div>\n );\n}\n",":local {\n .pillTabSelector {\n ul {\n width: 100%;\n display: flex!important;\n }\n\n li {\n min-width: 0!important;\n flex-grow: 1;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport styles from './letters-bar.module.scss';\n\nexport const CUSTOM_LETTER_TEMPLATE = 'Custom';\n\nexport const ALPHABET = [\n CUSTOM_LETTER_TEMPLATE,\n '#',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n] as const;\n\ntype LetterBarOptions = typeof ALPHABET[number];\n\nconst LetterParamMap: {[key in LetterBarOptions]?: string } = {\n '#': '0'\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\nfunction getSelectedAlphabet(selected: string, showCustom: boolean): LetterBarOptions | undefined {\n if (!selected)\n return;\n \n if (selected === '0')\n return '#';\n\n const alphabet = ALPHABET.find(letter => letter.toUpperCase() === selected.toUpperCase());\n\n if (alphabet === CUSTOM_LETTER_TEMPLATE && !showCustom)\n return;\n\n return alphabet;\n}\n\ninterface GenerateTabsOptions {\n selected: string;\n showCustom: boolean;\n getItemAppLink: (letter: string) => Core.AppLink;\n}\n\nfunction generateTabs(options: GenerateTabsOptions): PillTab[] {\n return ALPHABET.map(letter => {\n if (letter === CUSTOM_LETTER_TEMPLATE && !options.showCustom)\n return;\n\n const appLink = options.getItemAppLink(LetterParamMap[letter] ?? letter);\n\n return {\n name: letter,\n appLink,\n active: options.selected === letter,\n analyticsData: {\n name: letter,\n url: Core.AppLinkHelper.getHref(appLink)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n };\n }).filter(Boolean);\n}\n\ninterface LettersBarProps {\n selected: string;\n getItemAppLink: (letter: string) => Core.AppLink;\n showCustom?: boolean;\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n className?: string;\n noMarginBottom?: boolean;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function LettersBar(props: LettersBarProps): JSX.Element {\n const localSelected = getSelectedAlphabet(props.selected, props.showCustom);\n\n const tabs = generateTabs({\n selected: localSelected,\n showCustom: props.showCustom,\n getItemAppLink: props.getItemAppLink\n });\n \n return (\n <div className={classNames(props.noMarginBottom ? 'mb-0' : 'mb-3', props.className)}>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTabSelector}\n enableSmallScreenSupport={props.enableSmallScreenSupport}\n formatDisplayText={props.formatDisplayText}\n forceSmallScreenDropdown={props.forceSmallScreenDropdown}\n />\n </div>\n );\n}\n","export enum WidgetSort {\n RecentlyUpdated = 'lastupdated',\n ATOZ = 'name',\n Newest = 'datecreated'\n}\n","import React from 'react';\n\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\n\nconst WidgetSortLabel: Record<WidgetSort, string> = {\n [WidgetSort.RecentlyUpdated]: 'Recently Updated',\n [WidgetSort.ATOZ]: 'A to Z',\n [WidgetSort.Newest]: 'Newest'\n};\n\ninterface WidgetSortSelectorProps {\n disabled?: boolean;\n selected: WidgetSort;\n onSortChange: (sort: WidgetSort) => void;\n}\n\nexport function WidgetSortSelector(props: WidgetSortSelectorProps): JSX.Element {\n return (\n <select\n id='widget-sort-selector'\n disabled={props.disabled}\n className='form-select'\n value={props.selected}\n onChange={e => props.onSortChange(e.target.value as WidgetSort)}\n >\n {Object.entries(WidgetSortLabel).map(([ key, value ]) => (\n <option key={key} value={key}>{value}</option>\n ))}\n </select>\n );\n}\n","import { CUSTOM_LETTER_TEMPLATE } from 'libs/shared/components/letters-bar/LettersBar';\n\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\n\nfunction getSelectedLetter(letter: string) {\n if (!letter || letter.length !== 1)\n return CUSTOM_LETTER_TEMPLATE;\n\n return letter;\n}\n\nfunction getSelectedSort(sort: string) {\n if (!sort)\n return WidgetSort.RecentlyUpdated;\n\n return Object.values(WidgetSort).find(s => s.toLowerCase() === sort.toLowerCase()) ?? WidgetSort.RecentlyUpdated;\n}\n\ninterface GetContentPartnerParamsOptions {\n letter?: string;\n sort?: string;\n}\n\nexport function getContentPartnerParams(options: GetContentPartnerParamsOptions) {\n const { letter, sort } = options;\n\n return {\n selectedLetter: getSelectedLetter(letter),\n selectedSort: getSelectedSort(sort)\n };\n}\n","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ContentPartnerIndexDashboard } from 'libs/shared/apps/content-partners/components/content-partner-index-dashboard/ContentPartnerIndexDashboard';\nimport { CUSTOM_LETTER_TEMPLATE, LettersBar } from 'libs/shared/components/letters-bar/LettersBar';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CuratedDashboard, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useAvailablePresentations } from 'shared/hooks/presentations/useAvailablePresentations';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { ContentPartnerAppLinkHelper } from 'shared/utils/ContentPartnerAppLinkHelper';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\n\nimport { WidgetSortSelector } from 'apps/content-partners/components/widget-sort-selector/WidgetSortSelector';\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\nimport { getContentPartnerParams } from 'apps/content-partners/utils/getContentPartnerParams';\nimport { getContentPartnerWidgetAppLinks } from 'apps/content-partners/utils/getContentPartnerWidgetAppLinks';\n\nconst namespace = 'contentPartners.discover';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ContentPartnersDiscoverViewProps {\n letter?: string;\n sort?: string;\n}\n\nfunction getParamLetter(letter: string) {\n if (letter === CUSTOM_LETTER_TEMPLATE)\n return;\n\n return letter;\n}\n\nfunction formatText(letter: string) {\n if (letter === CUSTOM_LETTER_TEMPLATE)\n return getPhrase('featuredChannels');\n \n return letter;\n}\n\ninterface GetDashboardOptions {\n dashboard: CuratedDashboard;\n selectedLetter: string;\n}\n\n/**\n * If the selected letter is not 'Featured' we filter the\n * dashboard to only include the content partners widgets\n */\nfunction getDashboard(options: GetDashboardOptions) {\n const { dashboard, selectedLetter } = options;\n \n if (!dashboard)\n return;\n \n if (selectedLetter === CUSTOM_LETTER_TEMPLATE)\n return dashboard;\n\n return { ...dashboard, widgets: dashboard.widgets.filter(w => w.widgetId === WidgetTypeId.ContentPartners) };\n}\n\nexport function ContentPartnersDiscoverView(props: ContentPartnersDiscoverViewProps): JSX.Element {\n const {\n selectedLetter,\n selectedSort\n } = getContentPartnerParams({\n letter: props.letter,\n sort: props.sort\n });\n \n useSetPageMetadata({\n title: getPhrase('pageTitle'),\n description: getPhrase('pageDescription')\n });\n\n const breakpoints = useBreakpoints();\n const isMdAndDown = breakpoints.md || breakpoints.sm || breakpoints.xs;\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, presentationSlug: null });\n const { commonVideoProps } = useCommonVideoProps({\n locationContext: LocationContext.VideoThumbnail\n });\n\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const settings = useSettings(null);\n\n const { availablePresentations } = useAvailablePresentations();\n\n const { dashboard } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.DiscoverPartnerProfiles,\n queryParams: {}\n });\n\n function getWidgetContentRequest(\n id: string,\n params: CuratedWidgetQueryParams,\n template: WidgetTemplate,\n cursor?: string\n ): Flight.Request {\n return DashboardRequests.dashboardWidgetContent(id, params, template, undefined, { cursor: cursor ?? undefined });\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n const ChannelLettersBar = React.useCallback(({\n forceSmallScreenDropdown\n }: {\n forceSmallScreenDropdown?: boolean\n }): JSX.Element => (\n <LettersBar\n showCustom\n noMarginBottom\n selected={selectedLetter}\n getItemAppLink={(letter: string) =>\n ContentPartnerAppLinkHelper.getPartnerHomeAppLink({ letter: getParamLetter(letter) })\n }\n formatDisplayText={formatText}\n forceSmallScreenDropdown={forceSmallScreenDropdown}\n />\n ), [selectedLetter]);\n \n const filteredDashboard = getDashboard({ dashboard: dashboard.data, selectedLetter });\n \n /**\n * We only want to sort / add letter prefix to api request\n * if the selected letter is not 'Featured'\n */\n const queryParams: CuratedWidgetQueryParams = {\n letterPrefix: selectedLetter === CUSTOM_LETTER_TEMPLATE ? undefined : selectedLetter,\n sort: selectedLetter === CUSTOM_LETTER_TEMPLATE ? undefined : selectedSort\n };\n\n function handleSortChange(sort: WidgetSort) {\n const sortParam = sort === WidgetSort.RecentlyUpdated ? undefined : sort;\n AppLinkHelper.trigger(\n ContentPartnerAppLinkHelper.getPartnerHomeAppLink({\n letter: queryParams.letterPrefix,\n sort: sortParam\n })\n );\n }\n\n const loaded = dashboard.hasCompleted;\n\n if (!loaded)\n return <></>;\n\n return (\n <div className='bg-white px-3'>\n <div className='d-flex d-md-block flex-column mb-4 gap-4'>\n <div className='d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-md-3 gap-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='headerTitle' />\n </h1>\n <div className='d-flex flex-column flex-md-row gap-3'>\n {isMdAndDown && <ChannelLettersBar forceSmallScreenDropdown />}\n <WidgetSortSelector\n selected={selectedSort}\n onSortChange={handleSortChange}\n disabled={selectedLetter === CUSTOM_LETTER_TEMPLATE}\n />\n </div>\n </div>\n {!isMdAndDown && <ChannelLettersBar />}\n </div>\n\n <div className='mb-4'>\n <VideoActionsContext.Provider value={videoActions}>\n <ContentPartnerIndexDashboard\n // Need to re-render the dashboard when the letter changes\n key={selectedLetter}\n \n currentUser={currentUser.data}\n availablePresentations={availablePresentations}\n dashboard={filteredDashboard}\n getWidgetContentRequest={getWidgetContentRequest}\n commonVideoProps={commonVideoProps}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n settings={settings}\n widgetAppLinks={getContentPartnerWidgetAppLinks(currentUser.data)}\n queryParams={queryParams}\n emptyStateImage={ImageUrls.EmptyStates.WATCH_HISTORY}\n />\n </VideoActionsContext.Provider>\n </div>\n \n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"B2_RD6Px2.chunk.js","names":[],"sources":["../../../../libs/shared/src/apps/content-partners/components/content-partner-index-dashboard/empty-states/content-partner-index-dashboard-empty-state/ContentPartnerIndexDashboardEmptyState.tsx","../../../../libs/shared/src/apps/content-partners/components/content-partner-index-dashboard/ContentPartnerIndexDashboard.tsx","../../../../libs/shared/src/components/letters-bar/letters-bar.module.scss","../../../../libs/shared/src/components/letters-bar/LettersBar.tsx","../../src/apps/content-partners/enums/WidgetSort.ts","../../src/apps/content-partners/components/widget-sort-selector/WidgetSortSelector.tsx","../../src/apps/content-partners/utils/getContentPartnerParams.ts","../../src/apps/content-partners/views/content-partners-discover/ContentPartnersDiscoverView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'contentPartner.contentPartnerIndexDashboardEmptyState';\n\ninterface ContentPartnerIndexDashboardEmptyStateProps {\n image?: string;\n letterFilter?: string;\n}\n\nexport function ContentPartnerIndexDashboardEmptyState(\n props: ContentPartnerIndexDashboardEmptyStateProps\n): JSX.Element {\n return (\n <EmptyState>\n {props.image &&\n <EmptyState.Image src={props.image} />\n }\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' options={{ letterFilter: props.letterFilter }} />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n );\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { InfiniteWidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/InfiniteWidgetContainerView';\nimport { AllPartnerProfileWidgetTemplates } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { useEmptyWidgets } from 'libs/shared/hooks/useEmptyWidgets';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CuratedDashboard, CuratedWidget, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport { ContentPartnerIndexDashboardEmptyState } from './empty-states/content-partner-index-dashboard-empty-state/ContentPartnerIndexDashboardEmptyState';\n\ninterface ContentPartnerIndexDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n cursor?: string\n ) => Flight.Request;\n commonVideoProps: CommonVideoProps;\n isReadonly?: boolean;\n widgetAppLinks?: AllPartnerProfileWidgetTemplates['appLinks'];\n scrollToWidgetId?: string;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n settings?: AllPartnerProfileWidgetTemplates['settings'];\n audiences?: PresentationAudience[];\n queryParams?: CuratedWidgetQueryParams;\n currentUser: CurrentUser;\n availablePresentations: Presentation[];\n emptyStateImage?: string;\n}\n\nexport function ContentPartnerIndexDashboard(props: ContentPartnerIndexDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n const { isEmptyWidget, setEmptyWidget } = useEmptyWidgets(widgets);\n\n function getWidgetContentRequest(\n id: string,\n widgetTypeId: WidgetTypeId,\n template: WidgetTemplate,\n cursor?: string\n ): Flight.Request {\n if (!widgets.length) return;\n\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard),\n undefined,\n undefined,\n { params: props.queryParams }\n );\n\n return props.getWidgetContentRequest(id, params, template, cursor);\n }\n\n const isContentPartnerWidgetEmpty = widgets.every(\n widget => isEmptyWidget(widget.id)\n );\n\n if (!widgets.length || isContentPartnerWidgetEmpty)\n return (\n <ContentPartnerIndexDashboardEmptyState\n image={props.emptyStateImage}\n letterFilter={props.queryParams?.letterPrefix}\n />\n );\n \n return (\n <div className='mt-3'>\n {widgets.map((widget, idx) => (\n <InfiniteWidgetContainerView<CuratedWidget, CuratedWidget, AllPartnerProfileWidgetTemplates>\n dashboardTarget={DashboardTargetType.DiscoverPartnerProfiles}\n key={widget.id}\n index={idx}\n item={widget}\n\n infiniteFetch={props.dashboard.widgets.length - 1 === idx}\n getName={widget => widget.name}\n getWidgetMetadata={w => w.metadata}\n appLinks={props.widgetAppLinks}\n hasPermissions={props.hasPermissions}\n commonVideoProps={props.commonVideoProps}\n audiences={props.audiences}\n setIsEmpty={isEmpty => setEmptyWidget(widget.id, isEmpty)}\n getCursor={w => w.cursor}\n getRequest={cursor => getWidgetContentRequest(widget.id, widget.widgetId, widget.templateId, cursor)}\n hasLocalPermissions={props.hasLocalPermissions}\n currentUser={props.currentUser}\n availablePresentations={props.availablePresentations}\n settingsHash={props.settings}\n getContent={w => w.content}\n resultsTransformers={WidgetHelper.getWidgetResultsTransformers()}\n isEmptyPredicate={items => (\n Array.isArray(items) && Array.isArray(items[0]?.content) && !items[0]?.content?.length\n )}\n getSelectedItems={null}\n getSeeMoreAppLink={null}\n appLinkOptions={null}\n />\n ))}\n </div>\n );\n}\n",":local {\n .pillTabSelector {\n ul {\n width: 100%;\n display: flex!important;\n }\n\n li {\n min-width: 0!important;\n flex-grow: 1;\n }\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport styles from './letters-bar.module.scss';\n\nexport const CUSTOM_LETTER_TEMPLATE = 'Custom';\n\nexport const ALPHABET = [\n CUSTOM_LETTER_TEMPLATE,\n '#',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n] as const;\n\ntype LetterBarOptions = typeof ALPHABET[number];\n\nconst LetterParamMap: {[key in LetterBarOptions]?: string } = {\n '#': '0'\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\nfunction getSelectedAlphabet(selected: string, showCustom: boolean): LetterBarOptions | undefined {\n if (!selected)\n return;\n \n if (selected === '0')\n return '#';\n\n const alphabet = ALPHABET.find(letter => letter.toUpperCase() === selected.toUpperCase());\n\n if (alphabet === CUSTOM_LETTER_TEMPLATE && !showCustom)\n return;\n\n return alphabet;\n}\n\ninterface GenerateTabsOptions {\n selected: string;\n showCustom: boolean;\n getItemAppLink: (letter: string) => Core.AppLink;\n}\n\nfunction generateTabs(options: GenerateTabsOptions): PillTab[] {\n return ALPHABET.map(letter => {\n if (letter === CUSTOM_LETTER_TEMPLATE && !options.showCustom)\n return;\n\n const appLink = options.getItemAppLink(LetterParamMap[letter] ?? letter);\n\n return {\n name: letter,\n appLink,\n active: options.selected === letter,\n analyticsData: {\n name: letter,\n url: Core.AppLinkHelper.getHref(appLink)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n };\n }).filter(Boolean);\n}\n\ninterface LettersBarProps {\n selected: string;\n getItemAppLink: (letter: string) => Core.AppLink;\n showCustom?: boolean;\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n className?: string;\n noMarginBottom?: boolean;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function LettersBar(props: LettersBarProps): JSX.Element {\n const localSelected = getSelectedAlphabet(props.selected, props.showCustom);\n\n const tabs = generateTabs({\n selected: localSelected,\n showCustom: props.showCustom,\n getItemAppLink: props.getItemAppLink\n });\n \n return (\n <div className={classNames(props.noMarginBottom ? 'mb-0' : 'mb-3', props.className)}>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTabSelector}\n enableSmallScreenSupport={props.enableSmallScreenSupport}\n formatDisplayText={props.formatDisplayText}\n forceSmallScreenDropdown={props.forceSmallScreenDropdown}\n />\n </div>\n );\n}\n","export enum WidgetSort {\n RecentlyUpdated = 'lastupdated',\n ATOZ = 'name',\n Newest = 'datecreated'\n}\n","import React from 'react';\n\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\n\nconst WidgetSortLabel: Record<WidgetSort, string> = {\n [WidgetSort.RecentlyUpdated]: 'Recently Updated',\n [WidgetSort.ATOZ]: 'A to Z',\n [WidgetSort.Newest]: 'Newest'\n};\n\ninterface WidgetSortSelectorProps {\n disabled?: boolean;\n selected: WidgetSort;\n onSortChange: (sort: WidgetSort) => void;\n}\n\nexport function WidgetSortSelector(props: WidgetSortSelectorProps): JSX.Element {\n return (\n <select\n id='widget-sort-selector'\n disabled={props.disabled}\n className='form-select'\n value={props.selected}\n onChange={e => props.onSortChange(e.target.value as WidgetSort)}\n >\n {Object.entries(WidgetSortLabel).map(([ key, value ]) => (\n <option key={key} value={key}>{value}</option>\n ))}\n </select>\n );\n}\n","import { CUSTOM_LETTER_TEMPLATE } from 'libs/shared/components/letters-bar/LettersBar';\n\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\n\nfunction getSelectedLetter(letter: string) {\n if (!letter || letter.length !== 1)\n return CUSTOM_LETTER_TEMPLATE;\n\n return letter;\n}\n\nfunction getSelectedSort(sort: string) {\n if (!sort)\n return WidgetSort.RecentlyUpdated;\n\n return Object.values(WidgetSort).find(s => s.toLowerCase() === sort.toLowerCase()) ?? WidgetSort.RecentlyUpdated;\n}\n\ninterface GetContentPartnerParamsOptions {\n letter?: string;\n sort?: string;\n}\n\nexport function getContentPartnerParams(options: GetContentPartnerParamsOptions) {\n const { letter, sort } = options;\n\n return {\n selectedLetter: getSelectedLetter(letter),\n selectedSort: getSelectedSort(sort)\n };\n}\n","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ContentPartnerIndexDashboard } from 'libs/shared/apps/content-partners/components/content-partner-index-dashboard/ContentPartnerIndexDashboard';\nimport { CUSTOM_LETTER_TEMPLATE, LettersBar } from 'libs/shared/components/letters-bar/LettersBar';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CuratedDashboard, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useAvailablePresentations } from 'shared/hooks/presentations/useAvailablePresentations';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { ContentPartnerAppLinkHelper } from 'shared/utils/ContentPartnerAppLinkHelper';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\n\nimport { WidgetSortSelector } from 'apps/content-partners/components/widget-sort-selector/WidgetSortSelector';\nimport { WidgetSort } from 'apps/content-partners/enums/WidgetSort';\nimport { getContentPartnerParams } from 'apps/content-partners/utils/getContentPartnerParams';\nimport { getContentPartnerWidgetAppLinks } from 'apps/content-partners/utils/getContentPartnerWidgetAppLinks';\n\nconst namespace = 'contentPartners.discover';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ContentPartnersDiscoverViewProps {\n letter?: string;\n sort?: string;\n}\n\nfunction getParamLetter(letter: string) {\n if (letter === CUSTOM_LETTER_TEMPLATE)\n return;\n\n return letter;\n}\n\nfunction formatText(letter: string) {\n if (letter === CUSTOM_LETTER_TEMPLATE)\n return getPhrase('featuredChannels');\n \n return letter;\n}\n\ninterface GetDashboardOptions {\n dashboard: CuratedDashboard;\n selectedLetter: string;\n}\n\n/**\n * If the selected letter is not 'Featured' we filter the\n * dashboard to only include the content partners widgets\n */\nfunction getDashboard(options: GetDashboardOptions) {\n const { dashboard, selectedLetter } = options;\n \n if (!dashboard)\n return;\n \n if (selectedLetter === CUSTOM_LETTER_TEMPLATE)\n return dashboard;\n\n return { ...dashboard, widgets: dashboard.widgets.filter(w => w.widgetId === WidgetTypeId.ContentPartners) };\n}\n\nexport function ContentPartnersDiscoverView(props: ContentPartnersDiscoverViewProps): JSX.Element {\n const {\n selectedLetter,\n selectedSort\n } = getContentPartnerParams({\n letter: props.letter,\n sort: props.sort\n });\n \n useSetPageMetadata({\n title: getPhrase('pageTitle'),\n description: getPhrase('pageDescription')\n });\n\n const breakpoints = useBreakpoints();\n const isMdAndDown = breakpoints.md || breakpoints.sm || breakpoints.xs;\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, presentationSlug: null });\n const { commonVideoProps } = useCommonVideoProps({\n locationContext: LocationContext.VideoThumbnail\n });\n\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const settings = useSettings(null);\n\n const { availablePresentations } = useAvailablePresentations();\n\n const { dashboard } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.DiscoverPartnerProfiles,\n queryParams: {}\n });\n\n function getWidgetContentRequest(\n id: string,\n params: CuratedWidgetQueryParams,\n template: WidgetTemplate,\n cursor?: string\n ): Flight.Request {\n return DashboardRequests.dashboardWidgetContent(id, params, template, undefined, { cursor: cursor ?? undefined });\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n const ChannelLettersBar = React.useCallback(({\n forceSmallScreenDropdown\n }: {\n forceSmallScreenDropdown?: boolean\n }): JSX.Element => (\n <LettersBar\n showCustom\n noMarginBottom\n selected={selectedLetter}\n getItemAppLink={(letter: string) =>\n ContentPartnerAppLinkHelper.getPartnerHomeAppLink({ letter: getParamLetter(letter) })\n }\n formatDisplayText={formatText}\n forceSmallScreenDropdown={forceSmallScreenDropdown}\n />\n ), [selectedLetter]);\n \n const filteredDashboard = getDashboard({ dashboard: dashboard.data, selectedLetter });\n \n /**\n * We only want to sort / add letter prefix to api request\n * if the selected letter is not 'Featured'\n */\n const queryParams: CuratedWidgetQueryParams = {\n letterPrefix: selectedLetter === CUSTOM_LETTER_TEMPLATE ? undefined : selectedLetter,\n sort: selectedLetter === CUSTOM_LETTER_TEMPLATE ? undefined : selectedSort\n };\n\n function handleSortChange(sort: WidgetSort) {\n const sortParam = sort === WidgetSort.RecentlyUpdated ? undefined : sort;\n AppLinkHelper.trigger(\n ContentPartnerAppLinkHelper.getPartnerHomeAppLink({\n letter: queryParams.letterPrefix,\n sort: sortParam\n })\n );\n }\n\n const loaded = dashboard.hasCompleted;\n\n if (!loaded)\n return <></>;\n\n return (\n <div className='bg-white px-3'>\n <div className='d-flex d-md-block flex-column mb-4 gap-4'>\n <div className='d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-md-3 gap-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='headerTitle' />\n </h1>\n <div className='d-flex flex-column flex-md-row gap-3'>\n {isMdAndDown && <ChannelLettersBar forceSmallScreenDropdown />}\n <WidgetSortSelector\n selected={selectedSort}\n onSortChange={handleSortChange}\n disabled={selectedLetter === CUSTOM_LETTER_TEMPLATE}\n />\n </div>\n </div>\n {!isMdAndDown && <ChannelLettersBar />}\n </div>\n\n <div className='mb-4'>\n <VideoActionsContext.Provider value={videoActions}>\n <ContentPartnerIndexDashboard\n // Need to re-render the dashboard when the letter changes\n key={selectedLetter}\n \n currentUser={currentUser.data}\n availablePresentations={availablePresentations}\n dashboard={filteredDashboard}\n getWidgetContentRequest={getWidgetContentRequest}\n commonVideoProps={commonVideoProps}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n settings={settings}\n widgetAppLinks={getContentPartnerWidgetAppLinks(currentUser.data)}\n queryParams={queryParams}\n emptyStateImage={ImageUrls.EmptyStates.WATCH_HISTORY}\n />\n </VideoActionsContext.Provider>\n </div>\n \n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import"./DAXXjFlN.chunk.js";import{n as e}from"./B785hxeE.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{u as r}from"./BX0wDJmp.chunk.js";import{y as i}from"./NlCAcBdo.chunk.js";import{t as a}from"./DGmmTRu72.chunk.js";import{t as o}from"./DZssmXj6.chunk.js";import{t as s}from"./BC8PeYqm.chunk.js";import{t as c}from"./LoQS6GjP.chunk.js";import{t as l}from"./CqrjHjAN.chunk.js";import{n as u,t as d}from"./C6-aC3vu.chunk.js";import{t as f}from"./7LGxCHGV.chunk.js";import{t as p}from"./B3gsVN-_.chunk.js";import{l as m,r as h}from"./D-iyHqNw2.chunk.js";import{t as g}from"./Dfw0sxVt2.chunk.js";import{t as _}from"./C1loT8MD2.chunk.js";import{n as v}from"./ChnNWPOK2.chunk.js";import{t as y}from"./BnuuRu_J2.chunk.js";import{t as b}from"./CC5Dr9aG.chunk.js";import{t as x}from"./BYaCUOEW2.chunk.js";import{t as S}from"./DNuJUXpr2.chunk.js";import{v as C}from"./Bld7iWR52.chunk.js";import{t as w}from"./B_TE5XUR2.chunk.js";t();var T=n();function E(t){let{hasProduct:n}=g(),{commonVideoProps:E,hasCommonVideoPropsCompleted:D}=y({locationContext:i.VideoThumbnail}),{hasPermissions:O}=p(),{hasTopicDirectories:k,hasPlayPageTranscript:A}=a(null),j=C(),M=r(l.currentUser()),N=r(o.sharedClip(t.objectId,t.shareId)),P=_({objectId:N.data?.id,objectTypeId:N.data?.typeId}),F=r(!!N.data?._parentVideo&&c.video(N.data._parentVideo.id)),I=r(!!N.data?._parentVideo?.id&&P.canViewClips&&o.videoClips(N.data._parentVideo.id)),L=r(P.canViewInteractives&&s.videoInteractives(t.objectId)),R=h({video:F.data,context:t.queryParams.context,contextId:t.queryParams.contextId,moviesAndTv:t.queryParams.mtv,currentUser:M.data}),z=x(),B=m(t.objectId);d(u.getClipMetadata({content:N.data})),S(R.videos??[]),f(N),v({id:t.objectId,app:`clips`,shareId:t.shareId});let V=b({name:N.data?.name});return N.data&&M.hasCompleted&&B.hasCompleted&&D?(0,T.jsx)(w,{shareId:t.shareId,clip:N.data,clips:I.data?.data,interactives:L.data?.data,currentUser:M.data,relatedVideos:R,hasProduct:n,queryParams:t.queryParams,audiences:z.data,canManageVideoAccess:O(e.ManageVideoAccess),pointsOfInterest:B?.items,featureAccess:P,tableOfContentsId:t.queryParams?.tocId,shouldShowSideTableOfContents:j,breadcrumbs:V,commonVideoProps:E,hasTopicDirectories:k,hasTheatreMode:A}):(0,T.jsx)(T.Fragment,{})}export{E as PlaySharedClipView};
2
- //# sourceMappingURL=DSPMbDdF.chunk.js.map
1
+ import"./DAXXjFlN.chunk.js";import{n as e}from"./B785hxeE.chunk.js";import{t}from"./C2w0pmFW.chunk.js";import{t as n}from"./wrLrTezN.chunk.js";import{u as r}from"./BX0wDJmp.chunk.js";import{y as i}from"./NlCAcBdo.chunk.js";import{t as a}from"./DGmmTRu72.chunk.js";import{t as o}from"./DZssmXj6.chunk.js";import{t as s}from"./BC8PeYqm.chunk.js";import{t as c}from"./LoQS6GjP.chunk.js";import{t as l}from"./CqrjHjAN.chunk.js";import{n as u,t as d}from"./C6-aC3vu.chunk.js";import{t as f}from"./7LGxCHGV.chunk.js";import{t as p}from"./B3gsVN-_.chunk.js";import{l as m,r as h}from"./CLvImDXv2.chunk.js";import{t as g}from"./Dfw0sxVt2.chunk.js";import{t as _}from"./C1loT8MD2.chunk.js";import{n as v}from"./ChnNWPOK2.chunk.js";import{t as y}from"./BnuuRu_J2.chunk.js";import{t as b}from"./CC5Dr9aG.chunk.js";import{t as x}from"./BYaCUOEW2.chunk.js";import{t as S}from"./DNuJUXpr2.chunk.js";import{v as C}from"./D-pn0sNx2.chunk.js";import{t as w}from"./CvilnM0u2.chunk.js";t();var T=n();function E(t){let{hasProduct:n}=g(),{commonVideoProps:E,hasCommonVideoPropsCompleted:D}=y({locationContext:i.VideoThumbnail}),{hasPermissions:O}=p(),{hasTopicDirectories:k,hasPlayPageTranscript:A}=a(null),j=C(),M=r(l.currentUser()),N=r(o.sharedClip(t.objectId,t.shareId)),P=_({objectId:N.data?.id,objectTypeId:N.data?.typeId}),F=r(!!N.data?._parentVideo&&c.video(N.data._parentVideo.id)),I=r(!!N.data?._parentVideo?.id&&P.canViewClips&&o.videoClips(N.data._parentVideo.id)),L=r(P.canViewInteractives&&s.videoInteractives(t.objectId)),R=h({video:F.data,context:t.queryParams.context,contextId:t.queryParams.contextId,moviesAndTv:t.queryParams.mtv,currentUser:M.data}),z=x(),B=m(t.objectId);d(u.getClipMetadata({content:N.data})),S(R.videos??[]),f(N),v({id:t.objectId,app:`clips`,shareId:t.shareId});let V=b({name:N.data?.name});return N.data&&M.hasCompleted&&B.hasCompleted&&D?(0,T.jsx)(w,{shareId:t.shareId,clip:N.data,clips:I.data?.data,interactives:L.data?.data,currentUser:M.data,relatedVideos:R,hasProduct:n,queryParams:t.queryParams,audiences:z.data,canManageVideoAccess:O(e.ManageVideoAccess),pointsOfInterest:B?.items,featureAccess:P,tableOfContentsId:t.queryParams?.tocId,shouldShowSideTableOfContents:j,breadcrumbs:V,commonVideoProps:E,hasTopicDirectories:k,hasTheatreMode:A}):(0,T.jsx)(T.Fragment,{})}export{E as PlaySharedClipView};
2
+ //# sourceMappingURL=B3_lC6bW.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSPMbDdF.chunk.js","names":[],"sources":["../../src/apps/share/views/play-shared-clip/PlaySharedClipView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Clip, ClipCollection, CurrentUser, InteractiveCollection, Video } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/hooks/useShouldShowTableOfContents';\nimport { PlayClip } from 'shared/views/play-clip/components/play-clip/PlayClip';\n\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function PlaySharedClipView(props: ShareLinkViewProps): React.ReactElement {\n const { hasProduct } = useProducts();\n\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n const { hasPermissions } = usePermissions();\n const { hasTopicDirectories, hasPlayPageTranscript } = useSettings(null);\n\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.sharedClip(props.objectId, props.shareId));\n\n const featureAccess = useVideoFeatureAccess({\n objectId: clip.data?.id,\n objectTypeId: clip.data?.typeId\n });\n \n const video = Flight.useBasicFetch<Video>(!!clip.data?._parentVideo &&\n VideoRequests.video(clip.data._parentVideo.id));\n const childClips = Flight.useBasicFetch<ClipCollection>(\n !!clip.data?._parentVideo?.id && featureAccess.canViewClips && ClipRequests.videoClips(clip.data._parentVideo.id)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.objectId)\n );\n \n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const audiences = usePresentationAudiences();\n const pointsOfInterest = useFetchPointsOfInterest(props.objectId);\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({ content: clip.data }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(clip);\n useDeepLinks({ id: props.objectId, app: 'clips', shareId: props.shareId });\n\n const breadcrumbs = useBreadcrumbs({ name: clip.data?.name });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n pointsOfInterest.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayClip\n shareId={props.shareId}\n clip={clip.data}\n clips={childClips.data?.data}\n interactives={interactives.data?.data}\n currentUser={currentUser.data}\n relatedVideos={relatedVideos}\n hasProduct={hasProduct}\n queryParams={props.queryParams}\n audiences={audiences.data}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n pointsOfInterest={pointsOfInterest?.items}\n featureAccess={featureAccess}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n breadcrumbs={breadcrumbs}\n commonVideoProps={commonVideoProps}\n hasTopicDirectories={hasTopicDirectories}\n hasTheatreMode={hasPlayPageTranscript}\n />\n );\n}\n"],"mappings":"q9BAgCA,SAAgB,EAAmB,EAA+C,CAChF,GAAM,CAAE,cAAe,EAAY,EAE7B,CACJ,mBACA,gCACE,EAAoB,CAAE,gBAAiB,EAAgB,cAAe,CAAC,EACrE,CAAE,kBAAmB,EAAe,EACpC,CAAE,sBAAqB,yBAA0B,EAAY,IAAI,EAEjE,EAAgC,EAAiC,EAEjE,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAO,EAA2B,EAAa,WAAW,EAAM,SAAU,EAAM,OAAO,CAAC,EAExF,EAAgB,EAAsB,CAC1C,SAAU,EAAK,MAAM,GACrB,aAAc,EAAK,MAAM,MAC3B,CAAC,EAEK,EAAQ,EAA4B,CAAC,CAAC,EAAK,MAAM,cACrD,EAAc,MAAM,EAAK,KAAK,aAAa,EAAE,CAAC,EAC1C,EAAa,EACjB,CAAC,CAAC,EAAK,MAAM,cAAc,IAAM,EAAc,cAAgB,EAAa,WAAW,EAAK,KAAK,aAAa,EAAE,CAClH,EACM,EAAe,EACnB,EAAc,qBAAuB,EAAoB,kBAAkB,EAAM,QAAQ,CAC3F,EAEM,EAAgB,EAAoB,CACxC,MAAO,EAAM,KACb,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,YAAa,EAAM,YAAY,IAC/B,YAAa,EAAY,IAC3B,CAAC,EACK,EAAY,EAAyB,EACrC,EAAmB,EAAyB,EAAM,QAAQ,EAEhE,EAAmB,EAAmB,gBAAgB,CAAE,QAAS,EAAK,IAAK,CAAC,CAAC,EAE7E,EAAc,EAAc,QAAU,CAAC,CAAC,EACxC,EAAsB,CAAI,EAC1B,EAAa,CAAE,GAAI,EAAM,SAAU,IAAK,QAAS,QAAS,EAAM,OAAQ,CAAC,EAEzE,IAAM,EAAc,EAAe,CAAE,KAAM,EAAK,MAAM,IAAK,CAAC,EAY5D,OATE,EAAK,MACL,EAAY,cACZ,EAAiB,cACjB,GAOA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAM,QACf,KAAM,EAAK,KACX,MAAO,EAAW,MAAM,KACxB,aAAc,EAAa,MAAM,KACjC,YAAa,EAAY,KACV,gBACH,aACZ,YAAa,EAAM,YACnB,UAAW,EAAU,KACrB,qBAAsB,EAAe,EAAe,iBAAiB,EACrE,iBAAkB,GAAkB,MACrB,gBACf,kBAAmB,EAAM,aAAa,MACP,gCAClB,cACK,mBACG,sBACrB,eAAgB,CACjB,CAAA,GAtBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAwBf"}
1
+ {"version":3,"file":"B3_lC6bW.chunk.js","names":[],"sources":["../../src/apps/share/views/play-shared-clip/PlaySharedClipView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Clip, ClipCollection, CurrentUser, InteractiveCollection, Video } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/hooks/useShouldShowTableOfContents';\nimport { PlayClip } from 'shared/views/play-clip/components/play-clip/PlayClip';\n\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function PlaySharedClipView(props: ShareLinkViewProps): React.ReactElement {\n const { hasProduct } = useProducts();\n\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n const { hasPermissions } = usePermissions();\n const { hasTopicDirectories, hasPlayPageTranscript } = useSettings(null);\n\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.sharedClip(props.objectId, props.shareId));\n\n const featureAccess = useVideoFeatureAccess({\n objectId: clip.data?.id,\n objectTypeId: clip.data?.typeId\n });\n \n const video = Flight.useBasicFetch<Video>(!!clip.data?._parentVideo &&\n VideoRequests.video(clip.data._parentVideo.id));\n const childClips = Flight.useBasicFetch<ClipCollection>(\n !!clip.data?._parentVideo?.id && featureAccess.canViewClips && ClipRequests.videoClips(clip.data._parentVideo.id)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.objectId)\n );\n \n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const audiences = usePresentationAudiences();\n const pointsOfInterest = useFetchPointsOfInterest(props.objectId);\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({ content: clip.data }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(clip);\n useDeepLinks({ id: props.objectId, app: 'clips', shareId: props.shareId });\n\n const breadcrumbs = useBreadcrumbs({ name: clip.data?.name });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n pointsOfInterest.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayClip\n shareId={props.shareId}\n clip={clip.data}\n clips={childClips.data?.data}\n interactives={interactives.data?.data}\n currentUser={currentUser.data}\n relatedVideos={relatedVideos}\n hasProduct={hasProduct}\n queryParams={props.queryParams}\n audiences={audiences.data}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n pointsOfInterest={pointsOfInterest?.items}\n featureAccess={featureAccess}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n breadcrumbs={breadcrumbs}\n commonVideoProps={commonVideoProps}\n hasTopicDirectories={hasTopicDirectories}\n hasTheatreMode={hasPlayPageTranscript}\n />\n );\n}\n"],"mappings":"q9BAgCA,SAAgB,EAAmB,EAA+C,CAChF,GAAM,CAAE,cAAe,EAAY,EAE7B,CACJ,mBACA,gCACE,EAAoB,CAAE,gBAAiB,EAAgB,cAAe,CAAC,EACrE,CAAE,kBAAmB,EAAe,EACpC,CAAE,sBAAqB,yBAA0B,EAAY,IAAI,EAEjE,EAAgC,EAAiC,EAEjE,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAO,EAA2B,EAAa,WAAW,EAAM,SAAU,EAAM,OAAO,CAAC,EAExF,EAAgB,EAAsB,CAC1C,SAAU,EAAK,MAAM,GACrB,aAAc,EAAK,MAAM,MAC3B,CAAC,EAEK,EAAQ,EAA4B,CAAC,CAAC,EAAK,MAAM,cACrD,EAAc,MAAM,EAAK,KAAK,aAAa,EAAE,CAAC,EAC1C,EAAa,EACjB,CAAC,CAAC,EAAK,MAAM,cAAc,IAAM,EAAc,cAAgB,EAAa,WAAW,EAAK,KAAK,aAAa,EAAE,CAClH,EACM,EAAe,EACnB,EAAc,qBAAuB,EAAoB,kBAAkB,EAAM,QAAQ,CAC3F,EAEM,EAAgB,EAAoB,CACxC,MAAO,EAAM,KACb,QAAS,EAAM,YAAY,QAC3B,UAAW,EAAM,YAAY,UAC7B,YAAa,EAAM,YAAY,IAC/B,YAAa,EAAY,IAC3B,CAAC,EACK,EAAY,EAAyB,EACrC,EAAmB,EAAyB,EAAM,QAAQ,EAEhE,EAAmB,EAAmB,gBAAgB,CAAE,QAAS,EAAK,IAAK,CAAC,CAAC,EAE7E,EAAc,EAAc,QAAU,CAAC,CAAC,EACxC,EAAsB,CAAI,EAC1B,EAAa,CAAE,GAAI,EAAM,SAAU,IAAK,QAAS,QAAS,EAAM,OAAQ,CAAC,EAEzE,IAAM,EAAc,EAAe,CAAE,KAAM,EAAK,MAAM,IAAK,CAAC,EAY5D,OATE,EAAK,MACL,EAAY,cACZ,EAAiB,cACjB,GAOA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAM,QACf,KAAM,EAAK,KACX,MAAO,EAAW,MAAM,KACxB,aAAc,EAAa,MAAM,KACjC,YAAa,EAAY,KACV,gBACH,aACZ,YAAa,EAAM,YACnB,UAAW,EAAU,KACrB,qBAAsB,EAAe,EAAe,iBAAiB,EACrE,iBAAkB,GAAkB,MACrB,gBACf,kBAAmB,EAAM,aAAa,MACP,gCAClB,cACK,mBACG,sBACrB,eAAgB,CACjB,CAAA,GAtBM,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,CAwBf"}
@@ -1,2 +1,2 @@
1
- import"./DAXXjFlN.chunk.js";import{t as e}from"./snXCXfT6.chunk.js";import{t}from"./CQyJ7YGa.chunk.js";import{t as n}from"./C2w0pmFW.chunk.js";import{t as r}from"./wrLrTezN.chunk.js";import{t as i}from"./CmcCVXi32.chunk.js";import{n as a}from"./C0exjRXJ.chunk.js";import{t as o}from"./CSl1Z1eB.chunk.js";import{t as s}from"./CHL4nrKG.chunk.js";import{s as c}from"./DCT6XY8t.chunk.js";import{t as l}from"./pP_cpHCu2.chunk.js";n();var u={[i.Archived]:{svg:l,svgColorClassName:`text-secondary`,actionName:`Archive`,statusName:`Archived`},[i.Draft]:{svg:s,svgColorClassName:``,actionName:`Draft`,statusName:`Draft`},[i.Published]:{svg:o,svgColorClassName:`text-success`,actionName:`Publish`,statusName:`Published`}},d={badge:`_badge_1fgi1_1`,draftLight:`_draftLight_1fgi1_5`,draftDark:`_draftDark_1fgi1_10`,published:`_published_1fgi1_15`,archived:`_archived_1fgi1_20`},f=r();function p(e){let t=`rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${d.badge}`;switch(e.status){case i.Published:t+=` ${d.published}`;break;case i.Archived:t+=` ${d.archived}`;break;case i.Draft:t+=` ${e.darkMode?d.draftDark:d.draftLight}`;break}return e.wrapperClassName&&(t+=` ${e.wrapperClassName}`),t}function m(t){let{statusName:n,svg:r}=u[t.status];return(0,f.jsxs)(`div`,{className:p(t),children:[(0,f.jsx)(e,{svg:r}),(0,f.jsx)(`div`,{children:n})]})}var h={stickyWrapper:`_stickyWrapper_190fb_1`,channelBanner:`_channelBanner_190fb_8`,badgeWrapper:`_badgeWrapper_190fb_14`,badge:`_badge_190fb_14`},g=t.encloseNamespace(`shared.classificationPreviewBanner`),_={company:g(`companyTitle`),topic:g(`topicTitle`),channel:g(`channelTitle`)},v={company:h.stickyWrapper,topic:h.stickyWrapper,channel:h.channelBanner};function y(e){return(0,f.jsxs)(`div`,{className:a(`py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded`,v[e.type]),children:[(0,f.jsx)(`div`,{className:a(`position-absolute d-flex`,h.badgeWrapper),children:(0,f.jsx)(m,{status:e.status,wrapperClassName:h.badge,darkMode:!0})}),(0,f.jsx)(`div`,{className:`flex-grow-1`,children:(0,f.jsxs)(`h1`,{className:`text-center my-3 h5`,children:[(0,f.jsx)(c,{emoji:`👀`}),_[e.type]]})})]})}export{y as t};
2
- //# sourceMappingURL=8JGe5Ug_2.chunk.js.map
1
+ import"./DAXXjFlN.chunk.js";import{t as e}from"./snXCXfT6.chunk.js";import{t}from"./CQyJ7YGa.chunk.js";import{t as n}from"./C2w0pmFW.chunk.js";import{t as r}from"./wrLrTezN.chunk.js";import{t as i}from"./CmcCVXi32.chunk.js";import{n as a}from"./C0exjRXJ.chunk.js";import{t as o}from"./CSl1Z1eB.chunk.js";import{t as s}from"./CHL4nrKG.chunk.js";import{s as c}from"./BTWmC6pW.chunk.js";import{t as l}from"./pP_cpHCu2.chunk.js";n();var u={[i.Archived]:{svg:l,svgColorClassName:`text-secondary`,actionName:`Archive`,statusName:`Archived`},[i.Draft]:{svg:s,svgColorClassName:``,actionName:`Draft`,statusName:`Draft`},[i.Published]:{svg:o,svgColorClassName:`text-success`,actionName:`Publish`,statusName:`Published`}},d={badge:`_badge_1fgi1_1`,draftLight:`_draftLight_1fgi1_5`,draftDark:`_draftDark_1fgi1_10`,published:`_published_1fgi1_15`,archived:`_archived_1fgi1_20`},f=r();function p(e){let t=`rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${d.badge}`;switch(e.status){case i.Published:t+=` ${d.published}`;break;case i.Archived:t+=` ${d.archived}`;break;case i.Draft:t+=` ${e.darkMode?d.draftDark:d.draftLight}`;break}return e.wrapperClassName&&(t+=` ${e.wrapperClassName}`),t}function m(t){let{statusName:n,svg:r}=u[t.status];return(0,f.jsxs)(`div`,{className:p(t),children:[(0,f.jsx)(e,{svg:r}),(0,f.jsx)(`div`,{children:n})]})}var h={stickyWrapper:`_stickyWrapper_190fb_1`,channelBanner:`_channelBanner_190fb_8`,badgeWrapper:`_badgeWrapper_190fb_14`,badge:`_badge_190fb_14`},g=t.encloseNamespace(`shared.classificationPreviewBanner`),_={company:g(`companyTitle`),topic:g(`topicTitle`),channel:g(`channelTitle`)},v={company:h.stickyWrapper,topic:h.stickyWrapper,channel:h.channelBanner};function y(e){return(0,f.jsxs)(`div`,{className:a(`py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded`,v[e.type]),children:[(0,f.jsx)(`div`,{className:a(`position-absolute d-flex`,h.badgeWrapper),children:(0,f.jsx)(m,{status:e.status,wrapperClassName:h.badge,darkMode:!0})}),(0,f.jsx)(`div`,{className:`flex-grow-1`,children:(0,f.jsxs)(`h1`,{className:`text-center my-3 h5`,children:[(0,f.jsx)(c,{emoji:`👀`}),_[e.type]]})})]})}export{y as t};
2
+ //# sourceMappingURL=B5GEXNkP2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"8JGe5Ug_2.chunk.js","names":[],"sources":["../../../../libs/shared/src/apps/subjects/constants/DashboardStatusConfig.ts","../../../../libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/dashboard-status-badge.module.scss","../../../../libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge.tsx","../../../../libs/shared/src/apps/subjects/components/preview-banner/preview-banner.module.scss","../../../../libs/shared/src/apps/subjects/components/preview-banner/PreviewBanner.tsx"],"sourcesContent":["import { EditSvg } from 'libs/shared/images/svg/actions/EditSvg';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\nimport { ArchiveSvg } from 'libs/shared/images/svg/objects/ArchiveSvg';\nimport { DashboardStatus } from 'libs/shared/interfaces/models/Dashboard';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\ninterface DashboardStatusConfigType {\n statusName: string;\n actionName: string;\n svg: SvgIcon;\n svgColorClassName: string;\n}\n\nexport const DashboardStatusConfig: Record<DashboardStatus, DashboardStatusConfigType> = {\n [DashboardStatus.Archived]: {\n svg: ArchiveSvg,\n svgColorClassName: 'text-secondary',\n actionName: 'Archive',\n statusName: 'Archived'\n },\n [DashboardStatus.Draft]: {\n svg: EditSvg,\n svgColorClassName: '',\n actionName: 'Draft',\n statusName: 'Draft'\n },\n [DashboardStatus.Published]: {\n svg: VisibleOnSvg,\n svgColorClassName: 'text-success',\n actionName: 'Publish',\n statusName: 'Published'\n }\n};\n",":local {\n .badge {\n gap: map-get($spacers, 1);\n padding-right: 1rem;\n\n &.draftLight {\n color: $gray-800;\n border: 0.0625rem solid $gray-800;\n background-color: rgba($gray-800, 0.05);\n }\n\n &.draftDark {\n color: $gray-300;\n border: 0.0625rem solid $gray-300;\n background-color: rgba($gray-300, 0.05);\n }\n\n &.published {\n color: $success;\n border: 0.0625rem solid $success;\n background-color: rgba($success, 0.05);\n }\n\n &.archived {\n color: $danger;\n border: 0.0625rem solid $danger;\n background-color: rgba($danger, 0.05);\n }\n }\n}","import React from 'react';\n\nimport { DashboardStatusConfig } from 'libs/shared/apps/subjects/constants/DashboardStatusConfig';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './dashboard-status-badge.module.scss';\n\nfunction getClassName(props: DashboardStatusBadgeProps): string {\n let className = `rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${styles.badge}`;\n\n switch (props.status) {\n case DashboardStatus.Published:\n className += ` ${styles.published}`;\n break;\n case DashboardStatus.Archived:\n className += ` ${styles.archived}`;\n break;\n case DashboardStatus.Draft:\n className += ` ${props.darkMode ? styles.draftDark : styles.draftLight}`;\n break;\n }\n\n if (props.wrapperClassName)\n className += ` ${props.wrapperClassName}`;\n\n return className;\n}\n\ninterface DashboardStatusBadgeProps {\n status: DashboardStatus;\n darkMode?: boolean;\n wrapperClassName?: string;\n}\n\nexport function DashboardStatusBadge(props: DashboardStatusBadgeProps): JSX.Element {\n const { statusName, svg } = DashboardStatusConfig[props.status];\n\n return (\n <div className={getClassName(props)}>\n <SvgContainer svg={svg} />\n <div>{statusName}</div>\n </div>\n );\n}\n",":local {\n .stickyWrapper {\n position: absolute;\n top: -10rem;\n z-index: 3;\n width: calc(100% - 1rem);\n height: 5rem;\n }\n\n .channelBanner {\n position: absolute;\n z-index: 3;\n top: -15rem;\n width: calc(100% - 4.5rem);\n }\n\n .badgeWrapper {\n height: 100%;\n top: 0;\n left: 1.5rem;\n flex-direction: column;\n justify-content: center;\n }\n\n .badge {\n height: 60%;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { DashboardStatusBadge } from 'libs/shared/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge';\nimport { EmojiText } from 'libs/shared/components/emoji-text/EmojiText';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './preview-banner.module.scss';\n\nconst namespace = 'shared.classificationPreviewBanner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype PreviewBannerType = 'company' | 'topic' | 'channel';\n\ninterface PreviewBannerProps {\n status: DashboardStatus;\n type: PreviewBannerType;\n}\n\nconst typeToTitle: {[key in PreviewBannerType]: string } = {\n company: getPhrase('companyTitle'),\n topic: getPhrase('topicTitle'),\n channel: getPhrase('channelTitle')\n};\n\nconst typeToClassName: {[key in PreviewBannerType]: string } = {\n company: styles.stickyWrapper,\n topic: styles.stickyWrapper,\n channel: styles.channelBanner\n};\n\nexport function PreviewBanner(props: PreviewBannerProps): JSX.Element {\n return (\n <div className={\n classNames('py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded', typeToClassName[props.type])\n }>\n <div className={classNames('position-absolute d-flex', styles.badgeWrapper)}>\n <DashboardStatusBadge status={props.status} wrapperClassName={styles.badge} darkMode />\n </div>\n <div className='flex-grow-1'>\n <h1 className='text-center my-3 h5'>\n <EmojiText emoji='👀' />\n {typeToTitle[props.type]}\n </h1>\n </div>\n </div>\n );\n}\n"],"mappings":"6aAaA,IAAa,EAA4E,EACtF,EAAgB,UAAW,CAC1B,IAAK,EACL,kBAAmB,iBACnB,WAAY,UACZ,WAAY,UACd,GACC,EAAgB,OAAQ,CACvB,IAAK,EACL,kBAAmB,GACnB,WAAY,QACZ,WAAY,OACd,GACC,EAAgB,WAAY,CAC3B,IAAK,EACL,kBAAmB,eACnB,WAAY,UACZ,WAAY,WACd,CACF,kKExBA,SAAS,EAAa,EAA0C,CAC9D,IAAI,EAAY,qEAAqE,EAAO,QAE5F,OAAQ,EAAM,OAAd,CACE,KAAK,EAAgB,UACnB,GAAa,IAAI,EAAO,YACxB,MACF,KAAK,EAAgB,SACnB,GAAa,IAAI,EAAO,WACxB,MACF,KAAK,EAAgB,MACnB,GAAa,IAAI,EAAM,SAAW,EAAO,UAAY,EAAO,aAC5D,KACJ,CAKA,OAHI,EAAM,mBACR,GAAa,IAAI,EAAM,oBAElB,CACT,CAQA,SAAgB,EAAqB,EAA+C,CAClF,GAAM,CAAE,aAAY,OAAQ,EAAsB,EAAM,QAExD,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAa,CAAK,WAAlC,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAmB,KAAM,CAAA,GACzB,EAAA,EAAA,IAAA,CAAC,MAAD,CAAA,SAAM,CAAgB,CAAA,CACnB,GAET,qJEhCM,EAAY,EAAgB,iBAAiB,oCAAS,EAStD,EAAqD,CACzD,QAAS,EAAU,cAAc,EACjC,MAAO,EAAU,YAAY,EAC7B,QAAS,EAAU,cAAc,CACnC,EAEM,EAAyD,CAC7D,QAAS,EAAO,cAChB,MAAO,EAAO,cACd,QAAS,EAAO,aAClB,EAEA,SAAgB,EAAc,EAAwC,CACpE,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UACH,EAAW,4EAA6E,EAAgB,EAAM,KAAK,WADrH,EAGE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAW,2BAA4B,EAAO,YAAY,YACxE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAsB,OAAQ,EAAM,OAAQ,iBAAkB,EAAO,MAAO,SAAA,EAAU,CAAA,CACnF,CAAA,GACL,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,wBACb,EAAA,EAAA,KAAA,CAAC,KAAD,CAAI,UAAU,+BAAd,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,MAAM,IAAM,CAAA,EACtB,EAAY,EAAM,KACjB,GACD,CAAA,CACF,GAET"}
1
+ {"version":3,"file":"B5GEXNkP2.chunk.js","names":[],"sources":["../../../../libs/shared/src/apps/subjects/constants/DashboardStatusConfig.ts","../../../../libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/dashboard-status-badge.module.scss","../../../../libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge.tsx","../../../../libs/shared/src/apps/subjects/components/preview-banner/preview-banner.module.scss","../../../../libs/shared/src/apps/subjects/components/preview-banner/PreviewBanner.tsx"],"sourcesContent":["import { EditSvg } from 'libs/shared/images/svg/actions/EditSvg';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\nimport { ArchiveSvg } from 'libs/shared/images/svg/objects/ArchiveSvg';\nimport { DashboardStatus } from 'libs/shared/interfaces/models/Dashboard';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\ninterface DashboardStatusConfigType {\n statusName: string;\n actionName: string;\n svg: SvgIcon;\n svgColorClassName: string;\n}\n\nexport const DashboardStatusConfig: Record<DashboardStatus, DashboardStatusConfigType> = {\n [DashboardStatus.Archived]: {\n svg: ArchiveSvg,\n svgColorClassName: 'text-secondary',\n actionName: 'Archive',\n statusName: 'Archived'\n },\n [DashboardStatus.Draft]: {\n svg: EditSvg,\n svgColorClassName: '',\n actionName: 'Draft',\n statusName: 'Draft'\n },\n [DashboardStatus.Published]: {\n svg: VisibleOnSvg,\n svgColorClassName: 'text-success',\n actionName: 'Publish',\n statusName: 'Published'\n }\n};\n",":local {\n .badge {\n gap: map-get($spacers, 1);\n padding-right: 1rem;\n\n &.draftLight {\n color: $gray-800;\n border: 0.0625rem solid $gray-800;\n background-color: rgba($gray-800, 0.05);\n }\n\n &.draftDark {\n color: $gray-300;\n border: 0.0625rem solid $gray-300;\n background-color: rgba($gray-300, 0.05);\n }\n\n &.published {\n color: $success;\n border: 0.0625rem solid $success;\n background-color: rgba($success, 0.05);\n }\n\n &.archived {\n color: $danger;\n border: 0.0625rem solid $danger;\n background-color: rgba($danger, 0.05);\n }\n }\n}","import React from 'react';\n\nimport { DashboardStatusConfig } from 'libs/shared/apps/subjects/constants/DashboardStatusConfig';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './dashboard-status-badge.module.scss';\n\nfunction getClassName(props: DashboardStatusBadgeProps): string {\n let className = `rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${styles.badge}`;\n\n switch (props.status) {\n case DashboardStatus.Published:\n className += ` ${styles.published}`;\n break;\n case DashboardStatus.Archived:\n className += ` ${styles.archived}`;\n break;\n case DashboardStatus.Draft:\n className += ` ${props.darkMode ? styles.draftDark : styles.draftLight}`;\n break;\n }\n\n if (props.wrapperClassName)\n className += ` ${props.wrapperClassName}`;\n\n return className;\n}\n\ninterface DashboardStatusBadgeProps {\n status: DashboardStatus;\n darkMode?: boolean;\n wrapperClassName?: string;\n}\n\nexport function DashboardStatusBadge(props: DashboardStatusBadgeProps): JSX.Element {\n const { statusName, svg } = DashboardStatusConfig[props.status];\n\n return (\n <div className={getClassName(props)}>\n <SvgContainer svg={svg} />\n <div>{statusName}</div>\n </div>\n );\n}\n",":local {\n .stickyWrapper {\n position: absolute;\n top: -10rem;\n z-index: 3;\n width: calc(100% - 1rem);\n height: 5rem;\n }\n\n .channelBanner {\n position: absolute;\n z-index: 3;\n top: -15rem;\n width: calc(100% - 4.5rem);\n }\n\n .badgeWrapper {\n height: 100%;\n top: 0;\n left: 1.5rem;\n flex-direction: column;\n justify-content: center;\n }\n\n .badge {\n height: 60%;\n }\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { DashboardStatusBadge } from 'libs/shared/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge';\nimport { EmojiText } from 'libs/shared/components/emoji-text/EmojiText';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './preview-banner.module.scss';\n\nconst namespace = 'shared.classificationPreviewBanner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype PreviewBannerType = 'company' | 'topic' | 'channel';\n\ninterface PreviewBannerProps {\n status: DashboardStatus;\n type: PreviewBannerType;\n}\n\nconst typeToTitle: {[key in PreviewBannerType]: string } = {\n company: getPhrase('companyTitle'),\n topic: getPhrase('topicTitle'),\n channel: getPhrase('channelTitle')\n};\n\nconst typeToClassName: {[key in PreviewBannerType]: string } = {\n company: styles.stickyWrapper,\n topic: styles.stickyWrapper,\n channel: styles.channelBanner\n};\n\nexport function PreviewBanner(props: PreviewBannerProps): JSX.Element {\n return (\n <div className={\n classNames('py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded', typeToClassName[props.type])\n }>\n <div className={classNames('position-absolute d-flex', styles.badgeWrapper)}>\n <DashboardStatusBadge status={props.status} wrapperClassName={styles.badge} darkMode />\n </div>\n <div className='flex-grow-1'>\n <h1 className='text-center my-3 h5'>\n <EmojiText emoji='👀' />\n {typeToTitle[props.type]}\n </h1>\n </div>\n </div>\n );\n}\n"],"mappings":"6aAaA,IAAa,EAA4E,EACtF,EAAgB,UAAW,CAC1B,IAAK,EACL,kBAAmB,iBACnB,WAAY,UACZ,WAAY,UACd,GACC,EAAgB,OAAQ,CACvB,IAAK,EACL,kBAAmB,GACnB,WAAY,QACZ,WAAY,OACd,GACC,EAAgB,WAAY,CAC3B,IAAK,EACL,kBAAmB,eACnB,WAAY,UACZ,WAAY,WACd,CACF,kKExBA,SAAS,EAAa,EAA0C,CAC9D,IAAI,EAAY,qEAAqE,EAAO,QAE5F,OAAQ,EAAM,OAAd,CACE,KAAK,EAAgB,UACnB,GAAa,IAAI,EAAO,YACxB,MACF,KAAK,EAAgB,SACnB,GAAa,IAAI,EAAO,WACxB,MACF,KAAK,EAAgB,MACnB,GAAa,IAAI,EAAM,SAAW,EAAO,UAAY,EAAO,aAC5D,KACJ,CAKA,OAHI,EAAM,mBACR,GAAa,IAAI,EAAM,oBAElB,CACT,CAQA,SAAgB,EAAqB,EAA+C,CAClF,GAAM,CAAE,aAAY,OAAQ,EAAsB,EAAM,QAExD,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAa,CAAK,WAAlC,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAmB,KAAM,CAAA,GACzB,EAAA,EAAA,IAAA,CAAC,MAAD,CAAA,SAAM,CAAgB,CAAA,CACnB,GAET,qJEhCM,EAAY,EAAgB,iBAAiB,oCAAS,EAStD,EAAqD,CACzD,QAAS,EAAU,cAAc,EACjC,MAAO,EAAU,YAAY,EAC7B,QAAS,EAAU,cAAc,CACnC,EAEM,EAAyD,CAC7D,QAAS,EAAO,cAChB,MAAO,EAAO,cACd,QAAS,EAAO,aAClB,EAEA,SAAgB,EAAc,EAAwC,CACpE,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UACH,EAAW,4EAA6E,EAAgB,EAAM,KAAK,WADrH,EAGE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAW,2BAA4B,EAAO,YAAY,YACxE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAsB,OAAQ,EAAM,OAAQ,iBAAkB,EAAO,MAAO,SAAA,EAAU,CAAA,CACnF,CAAA,GACL,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,wBACb,EAAA,EAAA,KAAA,CAAC,KAAD,CAAI,UAAU,+BAAd,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,MAAM,IAAM,CAAA,EACtB,EAAY,EAAM,KACjB,GACD,CAAA,CACF,GAET"}
@@ -1,2 +1,2 @@
1
- import{n as e}from"./XBYhZGTN.chunk.js";import{m as t}from"./DKDWcWxk.chunk.js";var n={getInteractiveTrack(e,t){let n=e.addTextTrack(`metadata`,`interactive`),r=t.additionalData.interactive,i=t.additionalData.clipData?.startTime;return r.timepoints.forEach(e=>{let t=e.visibleAt/1e3,r=e.visibleFor?t+e.visibleFor/1e3:t+1;i&&(t+=i,r+=i),e.interactions?.length&&n.addCue({startTime:Math.max(.001,t-.001),endTime:r,text:e.id})}),n}},r=t.getComponent(`Button`),i=class extends r{constructor(t,n){super(t,n),this.timepoint_=n.timepoint,this.time_=n.timepoint.visibleAt/1e3;let r=n.timepoint.interactions[0];r||this.hide();let{bgClassName:i}=e.getTypeInfo(r.typeId);this.$(`.vjs-icon-placeholder`).classList.add(i),this.controlText(r.name),this.update()}buildCSSClass(){return`cv-interactive-bar-item ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass()},{...n,tabindex:0})}update(){let e=this.player_.duration(),t=this.time_/e;this.el().style.left=t*100+`%`,t>100||t<0?this.hide():this.show()}handleClick(e){e.stopPropagation(),this.player_.currentTime(this.time_)}},a=t.getComponent(`Component`),o=class extends a{constructor(e,t){super(e,t),this.track_=t.track,this.interactive_=t.interactive,this.onDurationChange=this.onDurationChange.bind(this),this.createInteractionItems=this.createInteractionItems.bind(this),this.createInteractionItems(),this.track_.on(`cv:cuechange`,this.createInteractionItems),this.player_.on(`durationchange`,this.onDurationChange),this.player_.on(`dispose`,()=>{this.track_.off(`cv:cuechange`),this.player_.off(`durationchange`,this.onDurationChange)})}buildCSSClass(){return`cv-interactive-bar-items ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass()},n)}update(){this.children_.forEach(e=>{e.update()})}createInteractionItems(){if(this.track_){[...this.children_].forEach(e=>{this.removeChild(e)});for(let e=0;e<this.track_.cues.length;e++){let t=this.track_.cues[e],n=this.getTimepointById(t.text);!n||!n.interactions?.length||this.addChild(new i(this.player_,{timepoint:n}))}}}onDurationChange(){this.update()}getTimepointById(e){return this.interactive_.timepoints?.find(t=>t.id.toString()===e.toString())}};export{n,o as t};
2
- //# sourceMappingURL=0Fek4oFk.chunk.js.map
1
+ import{n as e}from"./XBYhZGTN.chunk.js";import{m as t}from"./Dqn0sInF.chunk.js";var n={getInteractiveTrack(e,t){let n=e.addTextTrack(`metadata`,`interactive`),r=t.additionalData.interactive,i=t.additionalData.clipData?.startTime;return r.timepoints.forEach(e=>{let t=e.visibleAt/1e3,r=e.visibleFor?t+e.visibleFor/1e3:t+1;i&&(t+=i,r+=i),e.interactions?.length&&n.addCue({startTime:Math.max(.001,t-.001),endTime:r,text:e.id})}),n}},r=t.getComponent(`Button`),i=class extends r{constructor(t,n){super(t,n),this.timepoint_=n.timepoint,this.time_=n.timepoint.visibleAt/1e3;let r=n.timepoint.interactions[0];r||this.hide();let{bgClassName:i}=e.getTypeInfo(r.typeId);this.$(`.vjs-icon-placeholder`).classList.add(i),this.controlText(r.name),this.update()}buildCSSClass(){return`cv-interactive-bar-item ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass()},{...n,tabindex:0})}update(){let e=this.player_.duration(),t=this.time_/e;this.el().style.left=t*100+`%`,t>100||t<0?this.hide():this.show()}handleClick(e){e.stopPropagation(),this.player_.currentTime(this.time_)}},a=t.getComponent(`Component`),o=class extends a{constructor(e,t){super(e,t),this.track_=t.track,this.interactive_=t.interactive,this.onDurationChange=this.onDurationChange.bind(this),this.createInteractionItems=this.createInteractionItems.bind(this),this.createInteractionItems(),this.track_.on(`cv:cuechange`,this.createInteractionItems),this.player_.on(`durationchange`,this.onDurationChange),this.player_.on(`dispose`,()=>{this.track_.off(`cv:cuechange`),this.player_.off(`durationchange`,this.onDurationChange)})}buildCSSClass(){return`cv-interactive-bar-items ${super.buildCSSClass()}`}createEl(e,t,n){return super.createEl(e,{...t,className:this.buildCSSClass()},n)}update(){this.children_.forEach(e=>{e.update()})}createInteractionItems(){if(this.track_){[...this.children_].forEach(e=>{this.removeChild(e)});for(let e=0;e<this.track_.cues.length;e++){let t=this.track_.cues[e],n=this.getTimepointById(t.text);!n||!n.interactions?.length||this.addChild(new i(this.player_,{timepoint:n}))}}}onDurationChange(){this.update()}getTimepointById(e){return this.interactive_.timepoints?.find(t=>t.id.toString()===e.toString())}};export{n,o as t};
2
+ //# sourceMappingURL=BLE8DLAY.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"0Fek4oFk.chunk.js","names":[],"sources":["../../../player/src/utils/interactive-track-helper.ts","../../../player/src/plugins/interactive-plugin/components/seek-bar/interactive-bar-item.ts","../../../player/src/plugins/interactive-plugin/components/seek-bar/interactive-bar-items.ts"],"sourcesContent":["import { VideoJsPlayer } from 'video.js';\n\nimport { Interactive } from 'libs/shared/interfaces';\n\nimport { PlaybackObject } from 'projects/player/interfaces/models/PlaybackObject';\n\nexport const InteractiveTrackHelper = {\n getInteractiveTrack(player: VideoJsPlayer, playbackObject: PlaybackObject): TextTrack {\n const track = player.addTextTrack('metadata', 'interactive') as unknown as TextTrack;\n\n const interactive = playbackObject.additionalData.interactive as Interactive;\n const clipOffset = playbackObject.additionalData.clipData?.startTime;\n\n interactive.timepoints.forEach(t => {\n let startTime = t.visibleAt / 1000;\n let endTime = t.visibleFor ? startTime + (t.visibleFor / 1000) : startTime + 1;\n\n if (clipOffset) {\n startTime += clipOffset;\n endTime += clipOffset;\n }\n\n if (!t.interactions?.length)\n return;\n\n track.addCue({\n // Handles calling currentTime() with the exact time of the timepoint\n startTime: Math.max(0.001, startTime - 0.001),\n endTime,\n text: t.id\n } as any);\n });\n\n return track;\n }\n};\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { Timepoint } from 'libs/shared/interfaces';\nimport { InteractionTypeHelper } from 'libs/shared/utils/interaction-type-helper/InteractionTypeHelper';\n\nimport './interactive-bar-item.scss';\n\nconst Component = videojs.getComponent('Button');\n\ninterface InteractiveBarItemOptions extends videojs.ComponentOptions {\n timepoint: Timepoint;\n}\n\nexport class InteractiveBarItem extends Component {\n private timepoint_: Timepoint;\n private time_: number;\n\n constructor(player: VideoJsPlayer, options: InteractiveBarItemOptions) {\n super(player, options);\n\n this.timepoint_ = options.timepoint;\n this.time_ = options.timepoint.visibleAt / 1000;\n\n const firstInteraction = options.timepoint.interactions[0];\n\n // if we have no interaction, hide this timepoint\n if (!firstInteraction)\n this.hide();\n\n const { bgClassName } = InteractionTypeHelper.getTypeInfo(firstInteraction.typeId);\n this.$('.vjs-icon-placeholder').classList.add(bgClassName);\n\n // set the control text to the interaction name for screen readers\n this.controlText(firstInteraction.name);\n\n this.update();\n }\n\n public buildCSSClass(): string {\n return `cv-interactive-bar-item ${super.buildCSSClass()}`;\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): HTMLButtonElement {\n const el = super.createEl(tagName, {\n ...properties,\n className: this.buildCSSClass()\n }, {\n ...attributes,\n tabindex: 0\n });\n\n return el;\n }\n\n public update(): void {\n const duration = this.player_.duration();\n const width = this.time_ / duration;\n\n (this.el() as HTMLElement).style.left = (width * 100) + '%';\n\n // hide items outside of bounds\n if (width > 100 || width < 0)\n this.hide();\n else\n this.show();\n }\n\n public handleClick(e: Event): void {\n e.stopPropagation();\n this.player_.currentTime(this.time_);\n }\n}\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { Interactive, Timepoint } from 'libs/shared/interfaces';\n\nimport { InteractiveBarItem } from './interactive-bar-item';\n\nimport './interactive-bar-items.scss';\n\nconst Component = videojs.getComponent('Component');\n\ninterface InteractiveBarItemsOptions extends videojs.SliderOptions {\n track: TextTrack;\n interactive: Interactive;\n}\n\nexport class InteractiveBarItems extends Component {\n private track_: TextTrack;\n private interactive_: Interactive;\n\n constructor(player: VideoJsPlayer, options: InteractiveBarItemsOptions) {\n super(player, options);\n\n this.track_ = options.track;\n this.interactive_ = options.interactive;\n\n this.onDurationChange = this.onDurationChange.bind(this);\n this.createInteractionItems = this.createInteractionItems.bind(this);\n\n this.createInteractionItems();\n\n (this.track_ as any).on('cv:cuechange', this.createInteractionItems);\n\n this.player_.on('durationchange', this.onDurationChange);\n this.player_.on('dispose', () => {\n (this.track_ as any).off('cv:cuechange');\n\n this.player_.off('durationchange', this.onDurationChange);\n });\n }\n\n public buildCSSClass(): string {\n return `cv-interactive-bar-items ${super.buildCSSClass()}`;\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): Element {\n return super.createEl(tagName, {\n ...properties,\n className: this.buildCSSClass()\n }, attributes);\n }\n\n public update(): void {\n this.children_.forEach((child: InteractiveBarItem) => {\n child.update();\n });\n }\n\n private createInteractionItems(): void {\n if (!this.track_)\n return;\n\n /**\n * Removing existing children\n *\n * We have to clone the array here otherwise\n * the forEach only removes every 2nd item\n */\n [...this.children_].forEach(child => {\n this.removeChild(child);\n });\n\n for (let i = 0; i < this.track_.cues.length; i++) {\n const cue = this.track_.cues[i] as any;\n const timepoint = this.getTimepointById(cue.text);\n\n if (!timepoint || !timepoint.interactions?.length)\n continue;\n\n this.addChild(new InteractiveBarItem(this.player_, {\n timepoint: timepoint\n }));\n }\n }\n\n private onDurationChange(): void {\n this.update();\n }\n\n private getTimepointById(id: string): Timepoint | null {\n return this.interactive_.timepoints?.find(t => t.id.toString() === id.toString());\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"BLE8DLAY.chunk.js","names":[],"sources":["../../../player/src/utils/interactive-track-helper.ts","../../../player/src/plugins/interactive-plugin/components/seek-bar/interactive-bar-item.ts","../../../player/src/plugins/interactive-plugin/components/seek-bar/interactive-bar-items.ts"],"sourcesContent":["import { VideoJsPlayer } from 'video.js';\n\nimport { Interactive } from 'libs/shared/interfaces';\n\nimport { PlaybackObject } from 'projects/player/interfaces/models/PlaybackObject';\n\nexport const InteractiveTrackHelper = {\n getInteractiveTrack(player: VideoJsPlayer, playbackObject: PlaybackObject): TextTrack {\n const track = player.addTextTrack('metadata', 'interactive') as unknown as TextTrack;\n\n const interactive = playbackObject.additionalData.interactive as Interactive;\n const clipOffset = playbackObject.additionalData.clipData?.startTime;\n\n interactive.timepoints.forEach(t => {\n let startTime = t.visibleAt / 1000;\n let endTime = t.visibleFor ? startTime + (t.visibleFor / 1000) : startTime + 1;\n\n if (clipOffset) {\n startTime += clipOffset;\n endTime += clipOffset;\n }\n\n if (!t.interactions?.length)\n return;\n\n track.addCue({\n // Handles calling currentTime() with the exact time of the timepoint\n startTime: Math.max(0.001, startTime - 0.001),\n endTime,\n text: t.id\n } as any);\n });\n\n return track;\n }\n};\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { Timepoint } from 'libs/shared/interfaces';\nimport { InteractionTypeHelper } from 'libs/shared/utils/interaction-type-helper/InteractionTypeHelper';\n\nimport './interactive-bar-item.scss';\n\nconst Component = videojs.getComponent('Button');\n\ninterface InteractiveBarItemOptions extends videojs.ComponentOptions {\n timepoint: Timepoint;\n}\n\nexport class InteractiveBarItem extends Component {\n private timepoint_: Timepoint;\n private time_: number;\n\n constructor(player: VideoJsPlayer, options: InteractiveBarItemOptions) {\n super(player, options);\n\n this.timepoint_ = options.timepoint;\n this.time_ = options.timepoint.visibleAt / 1000;\n\n const firstInteraction = options.timepoint.interactions[0];\n\n // if we have no interaction, hide this timepoint\n if (!firstInteraction)\n this.hide();\n\n const { bgClassName } = InteractionTypeHelper.getTypeInfo(firstInteraction.typeId);\n this.$('.vjs-icon-placeholder').classList.add(bgClassName);\n\n // set the control text to the interaction name for screen readers\n this.controlText(firstInteraction.name);\n\n this.update();\n }\n\n public buildCSSClass(): string {\n return `cv-interactive-bar-item ${super.buildCSSClass()}`;\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): HTMLButtonElement {\n const el = super.createEl(tagName, {\n ...properties,\n className: this.buildCSSClass()\n }, {\n ...attributes,\n tabindex: 0\n });\n\n return el;\n }\n\n public update(): void {\n const duration = this.player_.duration();\n const width = this.time_ / duration;\n\n (this.el() as HTMLElement).style.left = (width * 100) + '%';\n\n // hide items outside of bounds\n if (width > 100 || width < 0)\n this.hide();\n else\n this.show();\n }\n\n public handleClick(e: Event): void {\n e.stopPropagation();\n this.player_.currentTime(this.time_);\n }\n}\n","import videojs, { VideoJsPlayer } from 'video.js';\n\nimport { Interactive, Timepoint } from 'libs/shared/interfaces';\n\nimport { InteractiveBarItem } from './interactive-bar-item';\n\nimport './interactive-bar-items.scss';\n\nconst Component = videojs.getComponent('Component');\n\ninterface InteractiveBarItemsOptions extends videojs.SliderOptions {\n track: TextTrack;\n interactive: Interactive;\n}\n\nexport class InteractiveBarItems extends Component {\n private track_: TextTrack;\n private interactive_: Interactive;\n\n constructor(player: VideoJsPlayer, options: InteractiveBarItemsOptions) {\n super(player, options);\n\n this.track_ = options.track;\n this.interactive_ = options.interactive;\n\n this.onDurationChange = this.onDurationChange.bind(this);\n this.createInteractionItems = this.createInteractionItems.bind(this);\n\n this.createInteractionItems();\n\n (this.track_ as any).on('cv:cuechange', this.createInteractionItems);\n\n this.player_.on('durationchange', this.onDurationChange);\n this.player_.on('dispose', () => {\n (this.track_ as any).off('cv:cuechange');\n\n this.player_.off('durationchange', this.onDurationChange);\n });\n }\n\n public buildCSSClass(): string {\n return `cv-interactive-bar-items ${super.buildCSSClass()}`;\n }\n\n public createEl(tagName?: string, properties?: any, attributes?: any): Element {\n return super.createEl(tagName, {\n ...properties,\n className: this.buildCSSClass()\n }, attributes);\n }\n\n public update(): void {\n this.children_.forEach((child: InteractiveBarItem) => {\n child.update();\n });\n }\n\n private createInteractionItems(): void {\n if (!this.track_)\n return;\n\n /**\n * Removing existing children\n *\n * We have to clone the array here otherwise\n * the forEach only removes every 2nd item\n */\n [...this.children_].forEach(child => {\n this.removeChild(child);\n });\n\n for (let i = 0; i < this.track_.cues.length; i++) {\n const cue = this.track_.cues[i] as any;\n const timepoint = this.getTimepointById(cue.text);\n\n if (!timepoint || !timepoint.interactions?.length)\n continue;\n\n this.addChild(new InteractiveBarItem(this.player_, {\n timepoint: timepoint\n }));\n }\n }\n\n private onDurationChange(): void {\n this.update();\n }\n\n private getTimepointById(id: string): Timepoint | null {\n return this.interactive_.timepoints?.find(t => t.id.toString() === id.toString());\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{o as e}from"./DAXXjFlN.chunk.js";import{t}from"./snXCXfT6.chunk.js";import{_ as n,y as r}from"./BftnFbcr.chunk.js";import"./DFZS3Ffo.chunk.js";import{n as i}from"./B785hxeE.chunk.js";import{t as a}from"./CQyJ7YGa.chunk.js";import{t as o}from"./C2w0pmFW.chunk.js";import{t as s}from"./wrLrTezN.chunk.js";import{t as c}from"./BXTI9cmX.chunk.js";import{u as l}from"./BX0wDJmp.chunk.js";import{t as u}from"./C1SLt-ar.chunk.js";import{U as d,l as f,o as p,y as m,z as h}from"./NlCAcBdo.chunk.js";import{i as g,n as _,r as v,t as y}from"./Cr6TXzQQ2.chunk.js";import{n as b,t as x}from"./CmcCVXi32.chunk.js";import{t as ee}from"./DGmmTRu72.chunk.js";import{t as S}from"./DZX1tZ-D2.chunk.js";import{t as C}from"./CqrjHjAN.chunk.js";import{t as w}from"./eoAypzU3.chunk.js";import{t as T}from"./XIE88U01.chunk.js";import{t as te}from"./7-GJWRH82.chunk.js";import{t as E}from"./BJZXCSV9.chunk.js";import{n as D,t as O}from"./C6-aC3vu.chunk.js";import{t as k}from"./B3gsVN-_.chunk.js";import{t as A}from"./B_-pJtOI2.chunk.js";import{n as j}from"./CpFtf-tI2.chunk.js";import{t as M}from"./CCdnFnNP.chunk.js";import{t as N}from"./De16zmhB.chunk.js";import{t as ne}from"./DewCxv4i.chunk.js";import{t as re}from"./B8gP8YoA.chunk.js";import{t as ie}from"./IgoS6DLn2.chunk.js";import{t as P}from"./tmS8JSuZ.chunk.js";import{t as F}from"./DzgAvoez.chunk.js";import{t as I}from"./BnuuRu_J2.chunk.js";import{t as L}from"./DDiorDZl.chunk.js";import{t as R}from"./CY_30Xdt.chunk.js";import{o as z}from"./CpgHBpMp.chunk.js";import{n as B,t as V}from"./By1soXyj.chunk.js";import{t as H}from"./CC5Dr9aG.chunk.js";import{r as U}from"./yk6K0dmz2.chunk.js";import{n as W,t as G}from"./CvtZ8ZFA2.chunk.js";import{t as K}from"./BCqRKj1E2.chunk.js";import{t as q}from"./C8aOMmXJ2.chunk.js";import{t as J}from"./8JGe5Ug_2.chunk.js";import{t as ae}from"./BwBWuxjr2.chunk.js";var oe=e(o()),Y=s();function se(e){let n=L.getPartnerLinkByType(e.partnerProfile?.links,`website`,L.makeUTMs({slug:e.partnerProfile._slug.value})),r=S.getHostname(n)??n;return(0,Y.jsx)(`div`,{className:`mt-3`,children:(0,Y.jsx)(q,{children:()=>(0,Y.jsxs)(`p`,{className:`mb-0`,children:[n&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,className:`position-relative d-inline-block ps-4 mb-2 me-2`,children:[(0,Y.jsx)(t,{svg:N,className:`svg-container position-absolute top-50 start-0 translate-middle-y`}),(0,Y.jsx)(`span`,{className:`ps-1`,children:r})]}),(0,Y.jsx)(`span`,{className:`mb-2 me-2`,children:`•`})]}),e.partnerProfile.description]})})})}var X=`contentPartners.contentPartnerDashboardComingSoon`,ce=a.encloseNamespace(X);function le(e){return(0,Y.jsxs)(E,{children:[(0,Y.jsx)(E.Image,{src:e.comingSoonImageUrl,altText:ce(`description`,{partnerName:e.partnerName})}),(0,Y.jsx)(E.Heading,{children:(0,Y.jsx)(j,{namespace:X,phrase:`heading`})}),(0,Y.jsx)(E.Info,{children:(0,Y.jsx)(j,{namespace:X,phrase:`description`,options:{partnerName:e.partnerName}})})]})}var Z=`contentPartners.contentPartnerDashboardContentRegion`,Q=a.encloseNamespace(Z);function ue(e){return(0,Y.jsxs)(E,{children:[(0,Y.jsx)(E.Image,{src:e.contentRegionImageUrl,altText:Q(`imageAlt`)}),(0,Y.jsx)(E.Heading,{children:(0,Y.jsx)(j,{namespace:Z,phrase:`heading`})}),(0,Y.jsx)(E.Cta,{text:Q(`cta`),appLink:e.contentRegionButtonLink,className:`btn btn-dark`})]})}var $=`contentPartners.contentPartnerDashboardNoContent`,de=a.encloseNamespace($);function fe(e){return(0,Y.jsxs)(E,{children:[(0,Y.jsx)(E.Image,{src:e.noContentImageUrl,altText:de(`description`)}),(0,Y.jsx)(E.Heading,{children:(0,Y.jsx)(j,{namespace:$,phrase:`heading`})}),(0,Y.jsx)(E.Info,{children:(0,Y.jsx)(j,{namespace:$,phrase:`description`})})]})}var pe={"coming-soon":le,"content-region":ue,"no-content":fe};function me(e){let t=pe[e.type];return(0,Y.jsx)(t,{...e})}var he=[g.ContentPartnerVideos];function ge(e,t){let n=e[t];return n?he.includes(n.widgetId)&&t===e.length-1:!1}function _e(e){let t=u.sortBy(e.dashboard?.widgets,`index`),{emptyWidgets:n,setEmptyWidget:r}=B(t);function a(t,n,r,i){let a=v.getWidgetParams(n,r,v.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,a,r,void 0,i)}function o(){if(!e.isInContentRegion)return`content-region`;if(e.isComingSoon||e.dashboard.status===x.Archived&&!e.isReadonly)return`coming-soon`;if(e.dashboard.status===x.Draft&&!e.isPreviewing)return!1;if(!t?.length)return`no-content`;let r=Object.values(n);return r.length>0&&r.every(e=>!!e)?`no-content`:!1}let s=L.getPartnerBannerInfo(e.partnerProfile),c=o(),l=(!c||c===`content-region`)&&e.partnerProfile.description;return(0,Y.jsxs)(Y.Fragment,{children:[!!t.length&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(R,{type:`partner-profile`,partnerBannerType:L.getPartnerBannerType(e.partnerProfile),heading:s.heading,blockColourClass:s.blockColourClass,logo:s.logo,logoBgColour:s.logoBgColour,banner:s.banner,imageCdnUrl:e.commonVideoProps.imageCdnUrl,actions:e.getBannerActions?.(),onClickSignUp:e.onClickSignUp,isAuthenticated:e.isAuthenticated,videoUrl:e.partnerProfile._videobanner?.value?.url,websiteUrl:L.getPartnerLinkByType(e.partnerProfile?.links,`website`,L.makeUTMs({slug:e.partnerProfile._slug.value})),isStudent:e.hasPermissions(i.StudentExperience),log:e.log}),(0,Y.jsxs)(`div`,{className:`py-3 mb-3 border-bottom`,children:[(0,Y.jsx)(F,{breadcrumbs:e.breadcrumbs}),l&&(0,Y.jsx)(se,{partnerProfile:e.partnerProfile})]}),(0,Y.jsx)(`div`,{className:`mt-3`,children:!c&&t.map((n,i)=>(0,Y.jsx)(K,{dashboardTarget:b.PartnerProfile,index:i,item:n,infiniteFetch:ge(t,i),getName:e=>e.name,getWidgetMetadata:e=>e.metadata,appLinks:e.widgetAppLinks,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps,audiences:e.audiences,setIsEmpty:e=>r(n.id,e),getCursor:e=>e.cursor,getRequest:e=>a(n.id,n.widgetId,n.templateId,e),hasLocalPermissions:e.hasLocalPermissions,settingsHash:e.settings,getContent:e=>e.content,resultsTransformers:y.getWidgetResultsTransformers(),onClickSearchAllVideos:e.onClickSearchAllVideos,getSeeMoreAppLink:e.getSeeMoreAppLink,isEmptyPredicate:e=>Array.isArray(e)&&Array.isArray(e[0]?.content)&&!e[0]?.content?.length,getSelectedItems:null,appLinkOptions:null},n.id))})]}),c&&(0,Y.jsx)(me,{type:c,partnerName:e.partnerProfile.name,comingSoonImageUrl:e.emptyImageUrl,contentRegionImageUrl:e.emptyImageUrl,contentRegionButtonLink:e.widgetAppLinks?.partnerHome?.(),noContentImageUrl:e.emptyImageUrl})]})}function ve(){return{"click-video-banner-controls":{isValid:()=>!0,analyticsOptions:{actionType:h.Click,entity:f.PartnerProfile,descriptor:p.VideoBannerControls,location:m.ContentPartnerDashboardVideoBanner}},"click-video-banner-sign-up":{isValid:()=>!0,analyticsOptions:{actionType:h.Click,entity:f.PartnerProfile,workflowPhase:d.Start,descriptor:p.VideoBannerSignUp,location:m.ContentPartnerDashboardVideoBanner}}}}function ye(e){let{getData:t,log:n}=P({analyticsOptions:e.analyticsOptions,baseData:e.data,config:ve(),shouldLog:e.shouldLog??!0});return{log:n,getData:t}}var be=a.encloseNamespace(`contentPartners.dashboard`);function xe(e){let t=l(C.currentUser()),i=ie(e.slug),a=W({location:G.VideoItem,presentationSlug:null}),{log:o}=ye({data:{entity:{id:i.data?.id,name:i.data?.name,contentRegion:t.data?.contentRegion}},analyticsOptions:{entity:f.PartnerProfile,location:m.ContentPartnerDashboard}});ae({app:`channels`,id:i.data?.id,metadata:{conversionSuffix:i.data?.name}});let{openInCurationStudioLabel:s,isUserCurator:u,getOpenInCurationStudioLink:d}=U(),{commonVideoProps:p}=I({locationContext:m.VideoThumbnail}),{hasPermissions:h,hasLocalPermissions:g}=k(),v=ee(null),{dashboard:y,isPreviewing:x}=re({targetType:b.PartnerProfile,partnerProfileSlug:e.slug,queryParams:e.queryParams});O(D.getDefaultMetadata({title:i.data?.name,phraseContext:{phraseHandler:be,titlePhrase:`pageTitle`,descriptionPhrase:`pageDescription`},allowIndexing:!0}));let S=H({name:i.data?.name});oe.useEffect(()=>{!y.hasCompleted||y.data||n.throw(new T)},[y.data,y.hasCompleted]);let E=V(t.data,{channelId:i.data?.id,presentationSlug:null});function j(){return u?[{label:s,href:d(y.data?.typeId,y.data?.id),openInNewTab:!0}]:[]}function N(e,t,n,r,i){return ne.dashboardWidgetContent(e,t,n,r,{cursor:i})}function P(e){return _[e.widgetId]?.getCollectionAppLink?.(E,e.content)??null}function F(e){o?.({type:`click-video-banner-sign-up`,email:e}),r.trigger(M.getSignUpAppLink({email:e}))}let R=i.hasCompleted&&y.hasCompleted,B=A.isBot(),K=x?!0:L.isInContentRegion(i.data,t.data?.contentRegion,t.data?.isAuthenticated);function q(){r.trigger({application:c.SEARCH,action:w.Search.HOME,params:{scopeId:i.data?.id}})}return R?(0,Y.jsx)(`div`,{className:`bg-white px-4 position-relative`,children:(0,Y.jsxs)(z.Provider,{value:a,children:[!!(x&&y.data)&&(0,Y.jsx)(J,{status:y.data.status,type:`channel`}),(0,Y.jsx)(_e,{dashboard:y.data,partnerProfile:i.data,getWidgetContentRequest:N,commonVideoProps:p,breadcrumbs:S,getBannerActions:j,hasPermissions:h,hasLocalPermissions:g,settings:v,widgetAppLinks:E,emptyImageUrl:te.EmptyStates.WATCH_HISTORY,isBot:B,lazyLoad:!B,isAuthenticated:t.data?.isAuthenticated,isInContentRegion:K,onClickSignUp:F,isPreviewing:x,onClickSearchAllVideos:q,getSeeMoreAppLink:P,log:o})]})}):(0,Y.jsx)(Y.Fragment,{})}export{xe as ContentPartnersDashboardView};
2
- //# sourceMappingURL=BgPye7Nd2.chunk.js.map
1
+ import{o as e}from"./DAXXjFlN.chunk.js";import{t}from"./snXCXfT6.chunk.js";import{_ as n,y as r}from"./BftnFbcr.chunk.js";import"./DFZS3Ffo.chunk.js";import{n as i}from"./B785hxeE.chunk.js";import{t as a}from"./CQyJ7YGa.chunk.js";import{t as o}from"./C2w0pmFW.chunk.js";import{t as s}from"./wrLrTezN.chunk.js";import{t as c}from"./BXTI9cmX.chunk.js";import{u as l}from"./BX0wDJmp.chunk.js";import{t as u}from"./C1SLt-ar.chunk.js";import{U as d,l as f,o as p,y as m,z as h}from"./NlCAcBdo.chunk.js";import{i as g,n as _,r as v,t as y}from"./Cr6TXzQQ2.chunk.js";import{n as b,t as x}from"./CmcCVXi32.chunk.js";import{t as ee}from"./DGmmTRu72.chunk.js";import{t as S}from"./DZX1tZ-D2.chunk.js";import{t as C}from"./CqrjHjAN.chunk.js";import{t as w}from"./eoAypzU3.chunk.js";import{t as T}from"./XIE88U01.chunk.js";import{t as te}from"./7-GJWRH82.chunk.js";import{t as E}from"./BJZXCSV9.chunk.js";import{n as D,t as O}from"./C6-aC3vu.chunk.js";import{t as k}from"./B3gsVN-_.chunk.js";import{t as A}from"./B_-pJtOI2.chunk.js";import{n as j}from"./CpFtf-tI2.chunk.js";import{t as M}from"./CCdnFnNP.chunk.js";import{t as N}from"./De16zmhB.chunk.js";import{t as ne}from"./DewCxv4i.chunk.js";import{t as re}from"./B8gP8YoA.chunk.js";import{t as ie}from"./IgoS6DLn2.chunk.js";import{t as P}from"./tmS8JSuZ.chunk.js";import{t as F}from"./DzgAvoez.chunk.js";import{t as I}from"./BnuuRu_J2.chunk.js";import{t as L}from"./DDiorDZl.chunk.js";import{t as R}from"./CY_30Xdt.chunk.js";import{o as z}from"./CpgHBpMp.chunk.js";import{n as B,t as V}from"./By1soXyj.chunk.js";import{t as H}from"./CC5Dr9aG.chunk.js";import{r as U}from"./yk6K0dmz2.chunk.js";import{n as W,t as G}from"./CvtZ8ZFA2.chunk.js";import{t as K}from"./s6NJOjzU2.chunk.js";import{t as q}from"./C8aOMmXJ2.chunk.js";import{t as J}from"./B5GEXNkP2.chunk.js";import{t as ae}from"./BwBWuxjr2.chunk.js";var oe=e(o()),Y=s();function se(e){let n=L.getPartnerLinkByType(e.partnerProfile?.links,`website`,L.makeUTMs({slug:e.partnerProfile._slug.value})),r=S.getHostname(n)??n;return(0,Y.jsx)(`div`,{className:`mt-3`,children:(0,Y.jsx)(q,{children:()=>(0,Y.jsxs)(`p`,{className:`mb-0`,children:[n&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,className:`position-relative d-inline-block ps-4 mb-2 me-2`,children:[(0,Y.jsx)(t,{svg:N,className:`svg-container position-absolute top-50 start-0 translate-middle-y`}),(0,Y.jsx)(`span`,{className:`ps-1`,children:r})]}),(0,Y.jsx)(`span`,{className:`mb-2 me-2`,children:`•`})]}),e.partnerProfile.description]})})})}var X=`contentPartners.contentPartnerDashboardComingSoon`,ce=a.encloseNamespace(X);function le(e){return(0,Y.jsxs)(E,{children:[(0,Y.jsx)(E.Image,{src:e.comingSoonImageUrl,altText:ce(`description`,{partnerName:e.partnerName})}),(0,Y.jsx)(E.Heading,{children:(0,Y.jsx)(j,{namespace:X,phrase:`heading`})}),(0,Y.jsx)(E.Info,{children:(0,Y.jsx)(j,{namespace:X,phrase:`description`,options:{partnerName:e.partnerName}})})]})}var Z=`contentPartners.contentPartnerDashboardContentRegion`,Q=a.encloseNamespace(Z);function ue(e){return(0,Y.jsxs)(E,{children:[(0,Y.jsx)(E.Image,{src:e.contentRegionImageUrl,altText:Q(`imageAlt`)}),(0,Y.jsx)(E.Heading,{children:(0,Y.jsx)(j,{namespace:Z,phrase:`heading`})}),(0,Y.jsx)(E.Cta,{text:Q(`cta`),appLink:e.contentRegionButtonLink,className:`btn btn-dark`})]})}var $=`contentPartners.contentPartnerDashboardNoContent`,de=a.encloseNamespace($);function fe(e){return(0,Y.jsxs)(E,{children:[(0,Y.jsx)(E.Image,{src:e.noContentImageUrl,altText:de(`description`)}),(0,Y.jsx)(E.Heading,{children:(0,Y.jsx)(j,{namespace:$,phrase:`heading`})}),(0,Y.jsx)(E.Info,{children:(0,Y.jsx)(j,{namespace:$,phrase:`description`})})]})}var pe={"coming-soon":le,"content-region":ue,"no-content":fe};function me(e){let t=pe[e.type];return(0,Y.jsx)(t,{...e})}var he=[g.ContentPartnerVideos];function ge(e,t){let n=e[t];return n?he.includes(n.widgetId)&&t===e.length-1:!1}function _e(e){let t=u.sortBy(e.dashboard?.widgets,`index`),{emptyWidgets:n,setEmptyWidget:r}=B(t);function a(t,n,r,i){let a=v.getWidgetParams(n,r,v.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,a,r,void 0,i)}function o(){if(!e.isInContentRegion)return`content-region`;if(e.isComingSoon||e.dashboard.status===x.Archived&&!e.isReadonly)return`coming-soon`;if(e.dashboard.status===x.Draft&&!e.isPreviewing)return!1;if(!t?.length)return`no-content`;let r=Object.values(n);return r.length>0&&r.every(e=>!!e)?`no-content`:!1}let s=L.getPartnerBannerInfo(e.partnerProfile),c=o(),l=(!c||c===`content-region`)&&e.partnerProfile.description;return(0,Y.jsxs)(Y.Fragment,{children:[!!t.length&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(R,{type:`partner-profile`,partnerBannerType:L.getPartnerBannerType(e.partnerProfile),heading:s.heading,blockColourClass:s.blockColourClass,logo:s.logo,logoBgColour:s.logoBgColour,banner:s.banner,imageCdnUrl:e.commonVideoProps.imageCdnUrl,actions:e.getBannerActions?.(),onClickSignUp:e.onClickSignUp,isAuthenticated:e.isAuthenticated,videoUrl:e.partnerProfile._videobanner?.value?.url,websiteUrl:L.getPartnerLinkByType(e.partnerProfile?.links,`website`,L.makeUTMs({slug:e.partnerProfile._slug.value})),isStudent:e.hasPermissions(i.StudentExperience),log:e.log}),(0,Y.jsxs)(`div`,{className:`py-3 mb-3 border-bottom`,children:[(0,Y.jsx)(F,{breadcrumbs:e.breadcrumbs}),l&&(0,Y.jsx)(se,{partnerProfile:e.partnerProfile})]}),(0,Y.jsx)(`div`,{className:`mt-3`,children:!c&&t.map((n,i)=>(0,Y.jsx)(K,{dashboardTarget:b.PartnerProfile,index:i,item:n,infiniteFetch:ge(t,i),getName:e=>e.name,getWidgetMetadata:e=>e.metadata,appLinks:e.widgetAppLinks,hasPermissions:e.hasPermissions,commonVideoProps:e.commonVideoProps,audiences:e.audiences,setIsEmpty:e=>r(n.id,e),getCursor:e=>e.cursor,getRequest:e=>a(n.id,n.widgetId,n.templateId,e),hasLocalPermissions:e.hasLocalPermissions,settingsHash:e.settings,getContent:e=>e.content,resultsTransformers:y.getWidgetResultsTransformers(),onClickSearchAllVideos:e.onClickSearchAllVideos,getSeeMoreAppLink:e.getSeeMoreAppLink,isEmptyPredicate:e=>Array.isArray(e)&&Array.isArray(e[0]?.content)&&!e[0]?.content?.length,getSelectedItems:null,appLinkOptions:null},n.id))})]}),c&&(0,Y.jsx)(me,{type:c,partnerName:e.partnerProfile.name,comingSoonImageUrl:e.emptyImageUrl,contentRegionImageUrl:e.emptyImageUrl,contentRegionButtonLink:e.widgetAppLinks?.partnerHome?.(),noContentImageUrl:e.emptyImageUrl})]})}function ve(){return{"click-video-banner-controls":{isValid:()=>!0,analyticsOptions:{actionType:h.Click,entity:f.PartnerProfile,descriptor:p.VideoBannerControls,location:m.ContentPartnerDashboardVideoBanner}},"click-video-banner-sign-up":{isValid:()=>!0,analyticsOptions:{actionType:h.Click,entity:f.PartnerProfile,workflowPhase:d.Start,descriptor:p.VideoBannerSignUp,location:m.ContentPartnerDashboardVideoBanner}}}}function ye(e){let{getData:t,log:n}=P({analyticsOptions:e.analyticsOptions,baseData:e.data,config:ve(),shouldLog:e.shouldLog??!0});return{log:n,getData:t}}var be=a.encloseNamespace(`contentPartners.dashboard`);function xe(e){let t=l(C.currentUser()),i=ie(e.slug),a=W({location:G.VideoItem,presentationSlug:null}),{log:o}=ye({data:{entity:{id:i.data?.id,name:i.data?.name,contentRegion:t.data?.contentRegion}},analyticsOptions:{entity:f.PartnerProfile,location:m.ContentPartnerDashboard}});ae({app:`channels`,id:i.data?.id,metadata:{conversionSuffix:i.data?.name}});let{openInCurationStudioLabel:s,isUserCurator:u,getOpenInCurationStudioLink:d}=U(),{commonVideoProps:p}=I({locationContext:m.VideoThumbnail}),{hasPermissions:h,hasLocalPermissions:g}=k(),v=ee(null),{dashboard:y,isPreviewing:x}=re({targetType:b.PartnerProfile,partnerProfileSlug:e.slug,queryParams:e.queryParams});O(D.getDefaultMetadata({title:i.data?.name,phraseContext:{phraseHandler:be,titlePhrase:`pageTitle`,descriptionPhrase:`pageDescription`},allowIndexing:!0}));let S=H({name:i.data?.name});oe.useEffect(()=>{!y.hasCompleted||y.data||n.throw(new T)},[y.data,y.hasCompleted]);let E=V(t.data,{channelId:i.data?.id,presentationSlug:null});function j(){return u?[{label:s,href:d(y.data?.typeId,y.data?.id),openInNewTab:!0}]:[]}function N(e,t,n,r,i){return ne.dashboardWidgetContent(e,t,n,r,{cursor:i})}function P(e){return _[e.widgetId]?.getCollectionAppLink?.(E,e.content)??null}function F(e){o?.({type:`click-video-banner-sign-up`,email:e}),r.trigger(M.getSignUpAppLink({email:e}))}let R=i.hasCompleted&&y.hasCompleted,B=A.isBot(),K=x?!0:L.isInContentRegion(i.data,t.data?.contentRegion,t.data?.isAuthenticated);function q(){r.trigger({application:c.SEARCH,action:w.Search.HOME,params:{scopeId:i.data?.id}})}return R?(0,Y.jsx)(`div`,{className:`bg-white px-4 position-relative`,children:(0,Y.jsxs)(z.Provider,{value:a,children:[!!(x&&y.data)&&(0,Y.jsx)(J,{status:y.data.status,type:`channel`}),(0,Y.jsx)(_e,{dashboard:y.data,partnerProfile:i.data,getWidgetContentRequest:N,commonVideoProps:p,breadcrumbs:S,getBannerActions:j,hasPermissions:h,hasLocalPermissions:g,settings:v,widgetAppLinks:E,emptyImageUrl:te.EmptyStates.WATCH_HISTORY,isBot:B,lazyLoad:!B,isAuthenticated:t.data?.isAuthenticated,isInContentRegion:K,onClickSignUp:F,isPreviewing:x,onClickSearchAllVideos:q,getSeeMoreAppLink:P,log:o})]})}):(0,Y.jsx)(Y.Fragment,{})}export{xe as ContentPartnersDashboardView};
2
+ //# sourceMappingURL=BRt-Kdnn2.chunk.js.map