@clickview/exchange 0.56.0 → 0.56.1-dev.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.
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{PswrCgft.chunk.js → 044iq0d1.chunk.js} +2 -2
- package/dist/scripts/{PswrCgft.chunk.js.map → 044iq0d1.chunk.js.map} +1 -1
- package/dist/scripts/{CoBxE0Ze.chunk.js → 6ucD94id.chunk.js} +2 -2
- package/dist/scripts/{CoBxE0Ze.chunk.js.map → 6ucD94id.chunk.js.map} +1 -1
- package/dist/scripts/{Bf33xjOw.chunk.js → B-PNdHqp.chunk.js} +2 -2
- package/dist/scripts/{Bf33xjOw.chunk.js.map → B-PNdHqp.chunk.js.map} +1 -1
- package/dist/scripts/{BsN5hGdn.chunk.js → B2zOyhnx.chunk.js} +2 -2
- package/dist/scripts/{BsN5hGdn.chunk.js.map → B2zOyhnx.chunk.js.map} +1 -1
- package/dist/scripts/{D36WobW6.chunk.js → B3cy6PVV.chunk.js} +2 -2
- package/dist/scripts/{D36WobW6.chunk.js.map → B3cy6PVV.chunk.js.map} +1 -1
- package/dist/scripts/{DaLZ0a8R.chunk.js → B3e4NkXy.chunk.js} +2 -2
- package/dist/scripts/{DaLZ0a8R.chunk.js.map → B3e4NkXy.chunk.js.map} +1 -1
- package/dist/scripts/{CucQidno.chunk.js → B4mwlW3k.chunk.js} +2 -2
- package/dist/scripts/{CucQidno.chunk.js.map → B4mwlW3k.chunk.js.map} +1 -1
- package/dist/scripts/{BrWxbCy6.chunk.js → BC8oIL4t.chunk.js} +2 -2
- package/dist/scripts/{BrWxbCy6.chunk.js.map → BC8oIL4t.chunk.js.map} +1 -1
- package/dist/scripts/{BolzEYoc.chunk.js → BDoSZnIa.chunk.js} +2 -2
- package/dist/scripts/{BolzEYoc.chunk.js.map → BDoSZnIa.chunk.js.map} +1 -1
- package/dist/scripts/{dZRQM-hv.chunk.js → BGg12SDH.chunk.js} +2 -2
- package/dist/scripts/{dZRQM-hv.chunk.js.map → BGg12SDH.chunk.js.map} +1 -1
- package/dist/scripts/{DiCC-7dB.chunk.js → BI6c50Jh.chunk.js} +2 -2
- package/dist/scripts/{DiCC-7dB.chunk.js.map → BI6c50Jh.chunk.js.map} +1 -1
- package/dist/scripts/{BDLmm9HB.chunk.js → BSIHfhEC.chunk.js} +2 -2
- package/dist/scripts/{BDLmm9HB.chunk.js.map → BSIHfhEC.chunk.js.map} +1 -1
- package/dist/scripts/BWIFX-Ik.chunk.js +2 -0
- package/dist/scripts/{zNwtPBUz.chunk.js.map → BWIFX-Ik.chunk.js.map} +1 -1
- package/dist/scripts/{DSFKTxPl.chunk.js → BWnE7KAO.chunk.js} +2 -2
- package/dist/scripts/{DSFKTxPl.chunk.js.map → BWnE7KAO.chunk.js.map} +1 -1
- package/dist/scripts/{De7o0fUe.chunk.js → Be3-ohNT.chunk.js} +3 -3
- package/dist/scripts/{De7o0fUe.chunk.js.map → Be3-ohNT.chunk.js.map} +1 -1
- package/dist/scripts/BlQxOSJi.chunk.js +2 -0
- package/dist/scripts/{BDys2rrG.chunk.js.map → BlQxOSJi.chunk.js.map} +1 -1
- package/dist/scripts/{D1uhKPP8.chunk.js → BoCG3rE6.chunk.js} +2 -2
- package/dist/scripts/{D1uhKPP8.chunk.js.map → BoCG3rE6.chunk.js.map} +1 -1
- package/dist/scripts/{BUlwG-06.chunk.js → BpW5Hw5z.chunk.js} +2 -2
- package/dist/scripts/{BUlwG-06.chunk.js.map → BpW5Hw5z.chunk.js.map} +1 -1
- package/dist/scripts/{Bj3FQ5Ya.chunk.js → BtTTlrnZ.chunk.js} +2 -2
- package/dist/scripts/{Bj3FQ5Ya.chunk.js.map → BtTTlrnZ.chunk.js.map} +1 -1
- package/dist/scripts/{B1tVxL6y.chunk.js → ButpMiJ1.chunk.js} +2 -2
- package/dist/scripts/{B1tVxL6y.chunk.js.map → ButpMiJ1.chunk.js.map} +1 -1
- package/dist/scripts/{C4ROYls7.chunk.js → By50Y4fi.chunk.js} +2 -2
- package/dist/scripts/{C4ROYls7.chunk.js.map → By50Y4fi.chunk.js.map} +1 -1
- package/dist/scripts/{Ddk3CuwQ.chunk.js → C3YXHQU-.chunk.js} +2 -2
- package/dist/scripts/{Ddk3CuwQ.chunk.js.map → C3YXHQU-.chunk.js.map} +1 -1
- package/dist/scripts/{C7toqgJ9.chunk.js → C3jPyokw.chunk.js} +2 -2
- package/dist/scripts/{C7toqgJ9.chunk.js.map → C3jPyokw.chunk.js.map} +1 -1
- package/dist/scripts/{UxXf3AJv.chunk.js → C5DBZwej.chunk.js} +2 -2
- package/dist/scripts/{UxXf3AJv.chunk.js.map → C5DBZwej.chunk.js.map} +1 -1
- package/dist/scripts/{C4F_pZyv.chunk.js → C6BGhDq3.chunk.js} +2 -2
- package/dist/scripts/{C4F_pZyv.chunk.js.map → C6BGhDq3.chunk.js.map} +1 -1
- package/dist/scripts/C6x-ZqLl.chunk.js +2 -0
- package/dist/scripts/{0mGPhW9k.chunk.js.map → C6x-ZqLl.chunk.js.map} +1 -1
- package/dist/scripts/{Bt6iO6Kj.chunk.js → CFa8QduK.chunk.js} +2 -2
- package/dist/scripts/{Bt6iO6Kj.chunk.js.map → CFa8QduK.chunk.js.map} +1 -1
- package/dist/scripts/{C3oO96po.chunk.js → CG6eaNuu.chunk.js} +2 -2
- package/dist/scripts/{C3oO96po.chunk.js.map → CG6eaNuu.chunk.js.map} +1 -1
- package/dist/scripts/{h9ujBzqa.chunk.js → CHFINytM.chunk.js} +2 -2
- package/dist/scripts/{h9ujBzqa.chunk.js.map → CHFINytM.chunk.js.map} +1 -1
- package/dist/scripts/{CWrjr29e.chunk.js → CHzv4hsQ.chunk.js} +2 -2
- package/dist/scripts/{CWrjr29e.chunk.js.map → CHzv4hsQ.chunk.js.map} +1 -1
- package/dist/scripts/{Cn9Jwmkc.chunk.js → CV6qoMzB.chunk.js} +2 -2
- package/dist/scripts/{Cn9Jwmkc.chunk.js.map → CV6qoMzB.chunk.js.map} +1 -1
- package/dist/scripts/{EAS5-0G3.chunk.js → CVca5RIC.chunk.js} +2 -2
- package/dist/scripts/{EAS5-0G3.chunk.js.map → CVca5RIC.chunk.js.map} +1 -1
- package/dist/scripts/CWRjbtTx.chunk.js +2 -0
- package/dist/scripts/{Cfw5zASx.chunk.js.map → CWRjbtTx.chunk.js.map} +1 -1
- package/dist/scripts/{B86gu8do.chunk.js → CX1XQ05a.chunk.js} +2 -2
- package/dist/scripts/{B86gu8do.chunk.js.map → CX1XQ05a.chunk.js.map} +1 -1
- package/dist/scripts/{BoyiBqIK.chunk.js → CYrSeREi.chunk.js} +2 -2
- package/dist/scripts/{BoyiBqIK.chunk.js.map → CYrSeREi.chunk.js.map} +1 -1
- package/dist/scripts/{CA2wPtyp.chunk.js → C_AYa87x.chunk.js} +2 -2
- package/dist/scripts/{CA2wPtyp.chunk.js.map → C_AYa87x.chunk.js.map} +1 -1
- package/dist/scripts/{B0OGvFw2.chunk.js → CbOOCRVJ.chunk.js} +2 -2
- package/dist/scripts/{B0OGvFw2.chunk.js.map → CbOOCRVJ.chunk.js.map} +1 -1
- package/dist/scripts/{9xHo2Cwe.chunk.js → CinRjwth.chunk.js} +2 -2
- package/dist/scripts/{9xHo2Cwe.chunk.js.map → CinRjwth.chunk.js.map} +1 -1
- package/dist/scripts/{oxlQycmi.chunk.js → CjXJ8oFf.chunk.js} +2 -2
- package/dist/scripts/{oxlQycmi.chunk.js.map → CjXJ8oFf.chunk.js.map} +1 -1
- package/dist/scripts/{C_hVa7Ra.chunk.js → CkEsSdbO.chunk.js} +2 -2
- package/dist/scripts/{C_hVa7Ra.chunk.js.map → CkEsSdbO.chunk.js.map} +1 -1
- package/dist/scripts/{BzaGFUjc.chunk.js → CmWKgt7c.chunk.js} +2 -2
- package/dist/scripts/{BzaGFUjc.chunk.js.map → CmWKgt7c.chunk.js.map} +1 -1
- package/dist/scripts/{BRCI_rEH.chunk.js → Co6EjRu3.chunk.js} +2 -2
- package/dist/scripts/{BRCI_rEH.chunk.js.map → Co6EjRu3.chunk.js.map} +1 -1
- package/dist/scripts/{D2RVG0Pu.chunk.js → Cqky1Knl.chunk.js} +2 -2
- package/dist/scripts/{D2RVG0Pu.chunk.js.map → Cqky1Knl.chunk.js.map} +1 -1
- package/dist/scripts/{C0CSgPvj.chunk.js → CsaYiq-6.chunk.js} +2 -2
- package/dist/scripts/{C0CSgPvj.chunk.js.map → CsaYiq-6.chunk.js.map} +1 -1
- package/dist/scripts/{DqAsIeVB.chunk.js → Ct-hl94f.chunk.js} +2 -2
- package/dist/scripts/{DqAsIeVB.chunk.js.map → Ct-hl94f.chunk.js.map} +1 -1
- package/dist/scripts/{kpU1ILSr.chunk.js → CwuTuPLO.chunk.js} +2 -2
- package/dist/scripts/{kpU1ILSr.chunk.js.map → CwuTuPLO.chunk.js.map} +1 -1
- package/dist/scripts/{-hO5xjbU.chunk.js → Cy191NLr.chunk.js} +2 -2
- package/dist/scripts/{-hO5xjbU.chunk.js.map → Cy191NLr.chunk.js.map} +1 -1
- package/dist/scripts/{BswE1yhG.chunk.js → CzBvFLUu.chunk.js} +2 -2
- package/dist/scripts/{BswE1yhG.chunk.js.map → CzBvFLUu.chunk.js.map} +1 -1
- package/dist/scripts/{BZnDGuzQ.chunk.js → DCGOcoWo.chunk.js} +2 -2
- package/dist/scripts/{BZnDGuzQ.chunk.js.map → DCGOcoWo.chunk.js.map} +1 -1
- package/dist/scripts/{DIFawdym.chunk.js → DEfSuFug.chunk.js} +2 -2
- package/dist/scripts/{DIFawdym.chunk.js.map → DEfSuFug.chunk.js.map} +1 -1
- package/dist/scripts/{B67qUxbj.chunk.js → DFNZXjHy.chunk.js} +2 -2
- package/dist/scripts/{B67qUxbj.chunk.js.map → DFNZXjHy.chunk.js.map} +1 -1
- package/dist/scripts/{Cliq624L.chunk.js → DGDSZYW9.chunk.js} +2 -2
- package/dist/scripts/{Cliq624L.chunk.js.map → DGDSZYW9.chunk.js.map} +1 -1
- package/dist/scripts/{W3L3GnYz.chunk.js → DLxCyfTf.chunk.js} +2 -2
- package/dist/scripts/{W3L3GnYz.chunk.js.map → DLxCyfTf.chunk.js.map} +1 -1
- package/dist/scripts/{DeC-NkSi.chunk.js → DQ7Osv3q.chunk.js} +2 -2
- package/dist/scripts/{DeC-NkSi.chunk.js.map → DQ7Osv3q.chunk.js.map} +1 -1
- package/dist/scripts/{mj8E03dO.chunk.js → DRDYq9ZL.chunk.js} +2 -2
- package/dist/scripts/{mj8E03dO.chunk.js.map → DRDYq9ZL.chunk.js.map} +1 -1
- package/dist/scripts/{oWzYOkEl.chunk.js → DSQI-Jdp.chunk.js} +2 -2
- package/dist/scripts/{oWzYOkEl.chunk.js.map → DSQI-Jdp.chunk.js.map} +1 -1
- package/dist/scripts/{CMoQks36.chunk.js → DSwVduDL.chunk.js} +2 -2
- package/dist/scripts/{CMoQks36.chunk.js.map → DSwVduDL.chunk.js.map} +1 -1
- package/dist/scripts/{Bn31qbi-.chunk.js → DUmKCSoR.chunk.js} +2 -2
- package/dist/scripts/{Bn31qbi-.chunk.js.map → DUmKCSoR.chunk.js.map} +1 -1
- package/dist/scripts/{B2pkApo6.chunk.js → DVisFoDC.chunk.js} +2 -2
- package/dist/scripts/{B2pkApo6.chunk.js.map → DVisFoDC.chunk.js.map} +1 -1
- package/dist/scripts/{aYbKmndA.chunk.js → DWtr2GDr.chunk.js} +2 -2
- package/dist/scripts/{aYbKmndA.chunk.js.map → DWtr2GDr.chunk.js.map} +1 -1
- package/dist/scripts/{CKJlxYxE.chunk.js → DXeWv8xM.chunk.js} +2 -2
- package/dist/scripts/{CKJlxYxE.chunk.js.map → DXeWv8xM.chunk.js.map} +1 -1
- package/dist/scripts/{CD7xQQSj.chunk.js → DZZlWrzc.chunk.js} +2 -2
- package/dist/scripts/{CD7xQQSj.chunk.js.map → DZZlWrzc.chunk.js.map} +1 -1
- package/dist/scripts/D_yZCyl0.chunk.js +2 -0
- package/dist/scripts/{nYKnuiKr.chunk.js.map → D_yZCyl0.chunk.js.map} +1 -1
- package/dist/scripts/{Dbdf7QGx.chunk.js → Da9-cwkH.chunk.js} +2 -2
- package/dist/scripts/{Dbdf7QGx.chunk.js.map → Da9-cwkH.chunk.js.map} +1 -1
- package/dist/scripts/{B9Zy84TP.chunk.js → DdJUaS75.chunk.js} +2 -2
- package/dist/scripts/{B9Zy84TP.chunk.js.map → DdJUaS75.chunk.js.map} +1 -1
- package/dist/scripts/{DVd5A_3v.chunk.js → DhNUjn7p.chunk.js} +2 -2
- package/dist/scripts/{DVd5A_3v.chunk.js.map → DhNUjn7p.chunk.js.map} +1 -1
- package/dist/scripts/{C6_0NPy2.chunk.js → Dhpe3VD3.chunk.js} +2 -2
- package/dist/scripts/{C6_0NPy2.chunk.js.map → Dhpe3VD3.chunk.js.map} +1 -1
- package/dist/scripts/DiJ1txP6.chunk.js +2 -0
- package/dist/scripts/{VBw4HYiM.chunk.js.map → DiJ1txP6.chunk.js.map} +1 -1
- package/dist/scripts/{C5UlFqqr.chunk.js → DjeFO5jj.chunk.js} +2 -2
- package/dist/scripts/{C5UlFqqr.chunk.js.map → DjeFO5jj.chunk.js.map} +1 -1
- package/dist/scripts/{C37FAa5c.chunk.js → Dn7S7HZe.chunk.js} +2 -2
- package/dist/scripts/{C37FAa5c.chunk.js.map → Dn7S7HZe.chunk.js.map} +1 -1
- package/dist/scripts/{BQEr0IGt.chunk.js → Duy0OOKL.chunk.js} +2 -2
- package/dist/scripts/{BQEr0IGt.chunk.js.map → Duy0OOKL.chunk.js.map} +1 -1
- package/dist/scripts/{DEvwqrCo.chunk.js → DxLg_mEO.chunk.js} +2 -2
- package/dist/scripts/{DEvwqrCo.chunk.js.map → DxLg_mEO.chunk.js.map} +1 -1
- package/dist/scripts/{D9ECiiu8.chunk.js → HYIMjXwZ.chunk.js} +2 -2
- package/dist/scripts/{D9ECiiu8.chunk.js.map → HYIMjXwZ.chunk.js.map} +1 -1
- package/dist/scripts/{9gPNCjBk.chunk.js → J651bFfk.chunk.js} +2 -2
- package/dist/scripts/{9gPNCjBk.chunk.js.map → J651bFfk.chunk.js.map} +1 -1
- package/dist/scripts/{Y40qqQUW.chunk.js → JZmjeIJo.chunk.js} +2 -2
- package/dist/scripts/{Y40qqQUW.chunk.js.map → JZmjeIJo.chunk.js.map} +1 -1
- package/dist/scripts/{BJG50MLZ.chunk.js → SI_6LGjL.chunk.js} +2 -2
- package/dist/scripts/{BJG50MLZ.chunk.js.map → SI_6LGjL.chunk.js.map} +1 -1
- package/dist/scripts/{CiXtVo-A.chunk.js → Wfuxh2YT.chunk.js} +2 -2
- package/dist/scripts/Wfuxh2YT.chunk.js.map +1 -0
- package/dist/scripts/{BvfTundg.chunk.js → Y2CHWdPG.chunk.js} +2 -2
- package/dist/scripts/{BvfTundg.chunk.js.map → Y2CHWdPG.chunk.js.map} +1 -1
- package/dist/scripts/{B57_c_CS.chunk.js → Y5a0i_3c.chunk.js} +2 -2
- package/dist/scripts/{B57_c_CS.chunk.js.map → Y5a0i_3c.chunk.js.map} +1 -1
- package/dist/scripts/{app-BwZTeN0O.js → app-cabh1nNK.js} +3 -3
- package/dist/scripts/{app-BwZTeN0O.js.map → app-cabh1nNK.js.map} +1 -1
- package/dist/scripts/{CW89a4Mj.chunk.js → b-AUm3ni.chunk.js} +2 -2
- package/dist/scripts/{CW89a4Mj.chunk.js.map → b-AUm3ni.chunk.js.map} +1 -1
- package/dist/scripts/{DToTQA1H.chunk.js → fqbX9HRm.chunk.js} +2 -2
- package/dist/scripts/{DToTQA1H.chunk.js.map → fqbX9HRm.chunk.js.map} +1 -1
- package/dist/scripts/{DLQTbn-d.chunk.js → oVMIGZTl.chunk.js} +2 -2
- package/dist/scripts/{DLQTbn-d.chunk.js.map → oVMIGZTl.chunk.js.map} +1 -1
- package/dist/scripts/{D9BoZZhI.chunk.js → tbYGeGLS.chunk.js} +2 -2
- package/dist/scripts/{D9BoZZhI.chunk.js.map → tbYGeGLS.chunk.js.map} +1 -1
- package/dist/scripts/{xWtPEEJC.chunk.js → uGV8Ulpl.chunk.js} +2 -2
- package/dist/scripts/{xWtPEEJC.chunk.js.map → uGV8Ulpl.chunk.js.map} +1 -1
- package/dist/scripts/{CNiWunhi.chunk.js → uyrSls2s.chunk.js} +2 -2
- package/dist/scripts/{CNiWunhi.chunk.js.map → uyrSls2s.chunk.js.map} +1 -1
- package/dist/scripts/{DXtSLojN.chunk.js → vJWLdqFY.chunk.js} +2 -2
- package/dist/scripts/{DXtSLojN.chunk.js.map → vJWLdqFY.chunk.js.map} +1 -1
- package/dist/scripts/{4sHzAWaU.chunk.js → wlWC_CCa.chunk.js} +2 -2
- package/dist/scripts/{4sHzAWaU.chunk.js.map → wlWC_CCa.chunk.js.map} +1 -1
- package/dist/scripts/wmclIpxx.chunk.js +2 -0
- package/dist/scripts/{JVT9lUoz.chunk.js.map → wmclIpxx.chunk.js.map} +1 -1
- package/dist/scripts/{o-4-XLY2.chunk.js → zBOmHm2e.chunk.js} +2 -2
- package/dist/scripts/{o-4-XLY2.chunk.js.map → zBOmHm2e.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/0mGPhW9k.chunk.js +0 -2
- package/dist/scripts/BDys2rrG.chunk.js +0 -2
- package/dist/scripts/Cfw5zASx.chunk.js +0 -2
- package/dist/scripts/CiXtVo-A.chunk.js.map +0 -1
- package/dist/scripts/JVT9lUoz.chunk.js +0 -2
- package/dist/scripts/VBw4HYiM.chunk.js +0 -2
- package/dist/scripts/nYKnuiKr.chunk.js +0 -2
- package/dist/scripts/zNwtPBUz.chunk.js +0 -2
- package/vite.config.ts +0 -6
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{U as j,ap as y,ae as L,af as S,j as a,aq as v,ar as w,R as C,as as _,w as m,B as u,at as p,r as N}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{U as j,ap as y,ae as L,af as S,j as a,aq as v,ar as w,R as C,as as _,w as m,B as u,at as p,r as N}from"./app-cabh1nNK.js";import{C as A}from"./CbOOCRVJ.chunk.js";import{A as T}from"./CFa8QduK.chunk.js";import{D as E}from"./6ucD94id.chunk.js";import{B as D}from"./JZmjeIJo.chunk.js";import{I as B,a as H,u as I}from"./DRDYq9ZL.chunk.js";const $="_actions_1psxq_1",q="_actionsContainer_1psxq_14",z="_ownerLogo_1psxq_24",P="_dropStyle_1psxq_33",O="_dragStyle_1psxq_38",d={actions:$,actionsContainer:q,ownerLogo:z,dropStyle:P,dragStyle:O};function U(e){var i,r,f,h,b,F;const s=e.folder.thumbnail?j.urlBuilder(e.folder.thumbnail.url,{size:y.Small}):null,t=(h=(f=(r=(i=e.folder)==null?void 0:i.libraries)==null?void 0:r.data)==null?void 0:f[0])==null?void 0:h.owner,n=e.showOwnerLogo&&((b=t==null?void 0:t.logo)!=null&&b.url)?j.urlBuilder(t.logo.url,{size:y.Small}):null,l=(F=e.getFolderActions)==null?void 0:F.call(e,e.folder),o=e.analyticsData?{id:e.folder.id.toString(),name:e.folder.name,...e.analyticsData}:void 0,c=e.analyticsOptions?{actionType:S.Click,entity:L.Folder,...e.analyticsOptions}:void 0;return a.jsx(E,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:d.dropStyle,dragStyle:d.dragStyle,children:a.jsxs("div",{className:"position-relative",children:[a.jsxs(v,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name,analyticsData:o,analyticsOptions:c,children:[a.jsx(D,{data:s,imageType:w.Thumbnails,imageClassName:"rounded-top-lg",children:a.jsx(B,{name:e.folder.name,type:H.Folder,extraClasses:"rounded-top-lg"})}),a.jsx("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2",children:a.jsx("span",{className:"text-truncate d-block",children:e.folder.name})})]}),(l==null?void 0:l.length)&&a.jsx(T,{actions:l,className:d.actionsContainer,actionsDropdownClassName:d.actions,dropdownToggleSvgSize:null}),!!n&&a.jsx("img",{src:n,className:`rounded-circle ${d.ownerLogo}`,alt:`${t==null?void 0:t.name} logo`,title:(t==null?void 0:t.name)||""})]})})}const g="libraries.folderList",k="has:expanded:library:folders";function R(){const e=p();return e.xxl||e.xl||e.lg?6:e.md?4:3}G.defaultProps={showHeading:!0};function G(e){const[s,t]=C.useState(_.get(k)||!1),n=e.expandFolders||s,l=R();function o(){t(!n),_.set(k,!n)}const c=n?e.folders:e.folders.slice(0,l),i=e.folders.length>l&&!e.expandFolders;return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[e.showHeading&&a.jsxs(m,{className:`d-inline-flex align-items-center mb-2 px-2 ${i?"":"cursor-default"}`,onClick:o,children:[i&&a.jsx(A,{direction:n?"down":"right"}),a.jsx("h2",{className:"h4 mb-0",children:a.jsx(u,{namespace:g,phrase:"folders",options:{count:e.folders.length}})})]}),!!(!n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeAll",options:{count:e.folders.length}})})}),!!(n&&i)&&a.jsx("div",{className:"d-flex justify-content-end justify-self-end px-2",children:a.jsx(m,{onClick:o,className:"text-dark hover-text-underline d-inline-block",children:a.jsx(u,{namespace:g,phrase:"seeLess"})})}),e.extraButtons?e.extraButtons:a.jsx(a.Fragment,{})]}),a.jsx("div",{className:"row mx-1",children:c.map(r=>a.jsx("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:a.jsx(U,{folder:r,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop})},r.id))})]})}const K="_partialFolderHeading_1surw_1",M="_partialFolderThumbnail_1surw_4",V="_partialFolderName_1surw_7",x={partialFolderHeading:K,partialFolderThumbnail:M,partialFolderName:V},W=()=>a.jsxs("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3",children:[a.jsx("div",{className:`${x.partialFolderThumbnail} partial-loading-background rounded-top-lg`}),a.jsx("div",{className:`${x.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`,children:" "})]});function ae({count:e=3}){return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:`${x.partialFolderHeading} h4 mb-2 partial-loading-background`,children:" "}),a.jsx("div",{className:"row mx-n1",children:Array(e).fill(null).map((s,t)=>a.jsx(W,{},t))})]})}function le(e,s){const t=e,n=s,l=I(e&&(o=>t(o).key));return N.useEffect(()=>{l&&l.shouldInitialFetch&&s&&n()},[l==null?void 0:l.shouldInitialFetch,s]),N.useEffect(()=>{!l||!l.nextCursor||l.isFetching||!s||n(l.nextCursor)},[l==null?void 0:l.nextCursor,l==null?void 0:l.isFetching,s]),l}export{G as F,ae as P,le as u};
|
|
2
|
+
//# sourceMappingURL=CzBvFLUu.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BswE1yhG.chunk.js","sources":["../../../../libs/shared/src/components/library-folder/LibraryFolder.tsx","../../../../libs/shared/src/components/folder-list/FolderList.tsx","../../../../libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","../../../../libs/shared/src/hooks/UseFetchAll.ts"],"sourcesContent":["import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.module.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n showOwnerLogo?: boolean;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n analyticsOptions?: AnalyticsOptions;\n analyticsData?: HashObject;\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const owner = props.folder?.libraries?.data?.[0]?.owner;\n const ownerLogoUrl = props.showOwnerLogo && !!owner?.logo?.url\n ? UrlHelper.urlBuilder(owner.logo.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n const analyticsData = props.analyticsData ? {\n id: props.folder.id.toString(),\n name: props.folder.name,\n ...props.analyticsData\n } : undefined;\n\n const analyticsOptions = props.analyticsOptions ? {\n actionType: UserAction.Click,\n entity: EntityType.Folder,\n\n ...props.analyticsOptions\n } : undefined;\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n {!!ownerLogoUrl &&\n <img src={ownerLogoUrl} className={`rounded-circle ${styles.ownerLogo}`} alt={`${owner?.name} logo`} title={owner?.name || ''} />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolder(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolder}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","import React from 'react';\n\nimport styles from './partial-folder-list.module.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n \n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}> </div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { SelectAllPagesResult, useSelectAllPages } from './UseSelectAllPages';\n\n/**\n * Hook to fetch all pages of a collection.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useFetchAll<T = BaseObject>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false\n): SelectAllPagesResult<T> {\n const getRequestFn = getRequest as (cursor?: string) => Flight.Request;\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n const response = useSelectAllPages<T>(getRequest && ((cursor?: string) => getRequestFn(cursor).key));\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext)\n fetchNextFn();\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response || !response.nextCursor || response.isFetching || !fetchNext)\n return;\n\n fetchNextFn(response.nextCursor);\n }, [ response?.nextCursor, response?.isFetching, fetchNext ]);\n\n return response;\n}"],"names":["LibraryFolder","props","thumbnailUrl","UrlHelper","ImageSize","owner","_d","_c","_b","_a","ownerLogoUrl","_e","actions","_f","analyticsData","analyticsOptions","UserAction","EntityType","jsx","DragDropMoveWrapper","styles","jsxs","AppLink","BaseImage","ImageType","ImageFallback","ImageFallbackType","Actions","namespace","EXPANDED_FOLDERS_KEY","useGetFolderLimit","breakpoints","useBreakpoints","FolderList","_hasExpandedFolders","setHasExpandedFolders","React","LocalStorageHelper","hasExpandedFolders","folderLimit","onToggleFolder","displayableFolders","canToggleCollapsedView","Fragment","DivButton","Caret","Text","f","PartialFolder","PartialFolderList","count","_","i","useFetchAll","getRequest","fetchNext","getRequestFn","fetchNextFn","response","useSelectAllPages","cursor","useEffect"],"mappings":"8hBA4BO,SAASA,EAAcC,EAAwC,iBACpE,MAAMC,EAAeD,EAAM,OAAO,UAC9BE,EAAU,WAAWF,EAAM,OAAO,UAAU,IAAK,CAAE,KAAMG,EAAU,KAAA,CAAO,EAC1E,KAEEC,GAAQC,GAAAC,GAAAC,GAAAC,EAAAR,EAAM,SAAN,YAAAQ,EAAc,YAAd,YAAAD,EAAyB,OAAzB,YAAAD,EAAgC,KAAhC,YAAAD,EAAoC,MAC5CI,EAAeT,EAAM,iBAAmBU,EAAAN,GAAA,YAAAA,EAAO,OAAP,MAAAM,EAAa,KACvDR,EAAU,WAAWE,EAAM,KAAK,IAAK,CAAE,KAAMD,EAAU,KAAA,CAAO,EAC9D,KAEEQ,GAAUC,EAAAZ,EAAM,mBAAN,YAAAY,EAAA,KAAAZ,EAAyBA,EAAM,QAEzCa,EAAgBb,EAAM,cAAgB,CAC1C,GAAIA,EAAM,OAAO,GAAG,SAAA,EACpB,KAAMA,EAAM,OAAO,KACnB,GAAGA,EAAM,aAAA,EACP,OAEEc,EAAmBd,EAAM,iBAAmB,CAChD,WAAYe,EAAW,MACvB,OAAQC,EAAW,OAEnB,GAAGhB,EAAM,gBAAA,EACP,OAEJ,OACEiB,EAAAA,IAACC,EAAA,CACC,UAAWlB,EAAM,MAAQ,CAAE,GAAIA,EAAM,OAAO,GAAI,KAAMA,EAAM,MAAA,EAC5D,UAAWA,EAAM,MAAQ,CAAE,GAAIA,EAAM,OAAO,GAAI,KAAMA,EAAM,MAAA,EAC5D,SAAUmB,EAAO,UACjB,UAAWA,EAAO,UAElB,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,oBACb,SAAA,CAAAA,EAAAA,KAACC,EAAA,CACC,UAAU,yCACV,QAASrB,EAAM,WAAWA,EAAM,MAAM,EACtC,MAAOA,EAAM,OAAO,KACpB,cAAAa,EACA,iBAAAC,EAEA,SAAA,CAAAG,EAAAA,IAACK,EAAA,CACC,KAAMrB,EACN,UAAWsB,EAAU,WACrB,eAAe,iBAEf,SAAAN,EAAAA,IAACO,EAAA,CACC,KAAMxB,EAAM,OAAO,KACnB,KAAMyB,EAAkB,OACxB,aAAa,gBAAA,CAAA,CACf,CAAA,EAEFR,EAAAA,IAAC,KAAA,CAAG,UAAU,yGACZ,SAAAA,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAyB,SAAAjB,EAAM,OAAO,IAAA,CAAK,CAAA,CAC7D,CAAA,CAAA,CAAA,GAEDW,GAAA,YAAAA,EAAS,SACRM,EAAAA,IAACS,EAAA,CACC,QAAAf,EACA,UAAWQ,EAAO,iBAClB,yBAA0BA,EAAO,QAEjC,sBAAuB,IAAA,CAAA,EAG1B,CAAC,CAACV,GACDQ,EAAAA,IAAC,OAAI,IAAKR,EAAc,UAAW,kBAAkBU,EAAO,SAAS,GAAI,IAAK,GAAGf,GAAA,YAAAA,EAAO,IAAI,QAAS,OAAOA,GAAA,YAAAA,EAAO,OAAQ,EAAA,CAAI,CAAA,CAAA,CAEnI,CAAA,CAAA,CAGN,CCrFA,MAAMuB,EAAY,uBAEZC,EAAuB,+BAE7B,SAASC,GAA4B,CACnC,MAAMC,EAAcC,EAAA,EAEpB,OAAID,EAAY,KAAOA,EAAY,IAAMA,EAAY,GAC5C,EAELA,EAAY,GACP,EAEF,CACT,CAaAE,EAAW,aAAe,CACxB,YAAa,EACf,EAEO,SAASA,EAAWhC,EAAqC,CAC9D,KAAM,CAAEiC,EAAqBC,CAAsB,EAAIC,EAAM,SAC3DC,EAAmB,IAAIR,CAAoB,GAAK,EAAA,EAG5CS,EAAqBrC,EAAM,eAAiBiC,EAE5CK,EAAcT,EAAA,EAEpB,SAASU,GAAuB,CAC9BL,EAAsB,CAACG,CAAkB,EACzCD,EAAmB,IAAIR,EAAsB,CAACS,CAAkB,CAClE,CAEA,MAAMG,EAAqBH,EAAqBrC,EAAM,QAAUA,EAAM,QAAQ,MAAM,EAAGsC,CAAW,EAE5FG,EAAyBzC,EAAM,QAAQ,OAASsC,GAAe,CAACtC,EAAM,cAE5E,OACEoB,EAAAA,KAAAsB,WAAA,CACE,SAAA,CAAAtB,EAAAA,KAAC,MAAA,CAAI,UAAU,oDACZ,SAAA,CAAApB,EAAM,aACLoB,EAAAA,KAACuB,EAAA,CACC,UAAW,8CAA+CF,EAA4C,GAAnB,gBAAqB,GACxG,QAASF,EAER,SAAA,CAAAE,GACCxB,EAAAA,IAAC2B,EAAA,CAAM,UAAWP,EAAqB,OAAS,QAAS,QAE1D,KAAA,CAAG,UAAU,UACZ,SAAApB,EAAAA,IAAC4B,GAAK,UAAAlB,EAAsB,OAAO,UAAU,QAAS,CAAE,MAAO3B,EAAM,QAAQ,MAAA,EAAU,CAAA,CACzF,CAAA,CAAA,CAAA,EAIH,CAAC,EAAE,CAACqC,GAAsBI,IACzBxB,EAAAA,IAAC,MAAA,CAAI,UAAU,mDACb,SAAAA,EAAAA,IAAC0B,EAAA,CAAU,QAASJ,EAAgB,UAAU,gDAC5C,SAAAtB,EAAAA,IAAC4B,EAAA,CAAK,UAAAlB,EAAsB,OAAO,SAAS,QAAS,CAAE,MAAO3B,EAAM,QAAQ,MAAA,CAAO,CAAG,CAAA,CACxF,EACF,EAED,CAAC,EAAEqC,GAAsBI,UACvB,MAAA,CAAI,UAAU,mDACb,SAAAxB,EAAAA,IAAC0B,EAAA,CAAU,QAASJ,EAAgB,UAAU,gDAC5C,SAAAtB,EAAAA,IAAC4B,EAAA,CAAK,UAAAlB,EAAsB,OAAO,UAAU,EAC/C,CAAA,CACF,EAGD3B,EAAM,aAAeA,EAAM,aAAeiB,EAAAA,IAAAyB,EAAAA,SAAA,CAAA,CAAE,CAAA,EAC/C,EAEAzB,EAAAA,IAAC,MAAA,CAAI,UAAU,WACZ,SAAAuB,EAAmB,IAAIM,GACtB7B,EAAAA,IAAC,MAAA,CAAe,UAAU,oCACxB,SAAAA,EAAAA,IAAClB,EAAA,CACC,OAAQ+C,EACR,WAAY9C,EAAM,WAClB,iBAAkBA,EAAM,iBACxB,KAAMA,EAAM,KACZ,KAAMA,EAAM,IAAA,CAAA,GANN8C,EAAE,EAQZ,CACD,CAAA,CACH,CAAA,EACF,CAEJ,oLC5GMC,EAAgB,IACpB3B,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACb,SAAA,CAAAH,MAAC,MAAA,CAAI,UAAW,GAAGE,EAAO,sBAAsB,6CAA8C,QAC7F,MAAA,CAAI,UAAW,GAAGA,EAAO,iBAAiB,wFAAyF,SAAA,GAAA,CAEpI,CAAA,EACF,EAGK,SAAS6B,GAAkB,CAAE,MAAAC,EAAQ,GAAuC,CACjF,OACE7B,EAAAA,KAAAsB,WAAA,CACE,SAAA,CAAAzB,EAAAA,IAAC,OAAI,UAAW,GAAGE,EAAO,oBAAoB,sCAAuC,SAAA,IAAM,QAC1F,MAAA,CAAI,UAAU,YACZ,SAAA,MAAM8B,CAAK,EAAE,KAAK,IAAI,EAAE,IAAI,CAACC,EAAGC,UAAOJ,EAAA,CAAA,EAAmBI,CAAG,CAAE,CAAA,CAClE,CAAA,EACF,CAEJ,CCLO,SAASC,GACdC,EACAC,EACyB,CACzB,MAAMC,EAAeF,EACfG,EAAcF,EAEdG,EAAWC,EAAqBL,IAAgBM,GAAoBJ,EAAaI,CAAM,EAAE,IAAI,EAEnGC,OAAAA,EAAAA,UAAU,IAAM,CACTH,GAGDA,EAAS,oBAAsBH,GACjCE,EAAA,CACJ,EAAG,CAAEC,GAAA,YAAAA,EAAU,mBAAoBH,CAAU,CAAC,EAE9CM,EAAAA,UAAU,IAAM,CACV,CAACH,GAAY,CAACA,EAAS,YAAcA,EAAS,YAAc,CAACH,GAGjEE,EAAYC,EAAS,UAAU,CACjC,EAAG,CAAEA,GAAA,YAAAA,EAAU,WAAYA,GAAA,YAAAA,EAAU,WAAYH,CAAU,CAAC,EAErDG,CACT"}
|
|
1
|
+
{"version":3,"file":"CzBvFLUu.chunk.js","sources":["../../../../libs/shared/src/components/library-folder/LibraryFolder.tsx","../../../../libs/shared/src/components/folder-list/FolderList.tsx","../../../../libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","../../../../libs/shared/src/hooks/UseFetchAll.ts"],"sourcesContent":["import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.module.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n showOwnerLogo?: boolean;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n analyticsOptions?: AnalyticsOptions;\n analyticsData?: HashObject;\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const owner = props.folder?.libraries?.data?.[0]?.owner;\n const ownerLogoUrl = props.showOwnerLogo && !!owner?.logo?.url\n ? UrlHelper.urlBuilder(owner.logo.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n const analyticsData = props.analyticsData ? {\n id: props.folder.id.toString(),\n name: props.folder.name,\n ...props.analyticsData\n } : undefined;\n\n const analyticsOptions = props.analyticsOptions ? {\n actionType: UserAction.Click,\n entity: EntityType.Folder,\n\n ...props.analyticsOptions\n } : undefined;\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n {!!ownerLogoUrl &&\n <img src={ownerLogoUrl} className={`rounded-circle ${styles.ownerLogo}`} alt={`${owner?.name} logo`} title={owner?.name || ''} />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolder(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolder}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolder} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","import React from 'react';\n\nimport styles from './partial-folder-list.module.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n \n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}> </div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { SelectAllPagesResult, useSelectAllPages } from './UseSelectAllPages';\n\n/**\n * Hook to fetch all pages of a collection.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useFetchAll<T = BaseObject>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false\n): SelectAllPagesResult<T> {\n const getRequestFn = getRequest as (cursor?: string) => Flight.Request;\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n const response = useSelectAllPages<T>(getRequest && ((cursor?: string) => getRequestFn(cursor).key));\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext)\n fetchNextFn();\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response || !response.nextCursor || response.isFetching || !fetchNext)\n return;\n\n fetchNextFn(response.nextCursor);\n }, [ response?.nextCursor, response?.isFetching, fetchNext ]);\n\n return response;\n}"],"names":["LibraryFolder","props","thumbnailUrl","UrlHelper","ImageSize","owner","_d","_c","_b","_a","ownerLogoUrl","_e","actions","_f","analyticsData","analyticsOptions","UserAction","EntityType","jsx","DragDropMoveWrapper","styles","jsxs","AppLink","BaseImage","ImageType","ImageFallback","ImageFallbackType","Actions","namespace","EXPANDED_FOLDERS_KEY","useGetFolderLimit","breakpoints","useBreakpoints","FolderList","_hasExpandedFolders","setHasExpandedFolders","React","LocalStorageHelper","hasExpandedFolders","folderLimit","onToggleFolder","displayableFolders","canToggleCollapsedView","Fragment","DivButton","Caret","Text","f","PartialFolder","PartialFolderList","count","_","i","useFetchAll","getRequest","fetchNext","getRequestFn","fetchNextFn","response","useSelectAllPages","cursor","useEffect"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as g,ad as l,ae as m,af as E,A as n,L as i,a as s,b as c}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as g,ad as l,ae as m,af as E,A as n,L as i,a as s,b as c}from"./app-cabh1nNK.js";import{P as x}from"./CV6qoMzB.chunk.js";const r="exchange.exchangeTabs",e=i.encloseNamespace(r),a={categories:{application:c.EXCHANGE,action:s.Exchange.INDEX},mostRecent:{application:c.EXCHANGE,action:s.Exchange.MOST_RECENT}},o={actionType:E.Click,entity:m.Url,location:l.MagicTabs};function h(p){const{active:t}=p;return g.jsx(x,{tabs:[{name:e("categories"),appLink:a.categories,active:t==="categories",analyticsData:{name:e("categories"),url:n.getHref(a.categories)},analyticsOptions:o},{name:e("mostRecent"),appLink:a.mostRecent,active:t==="most-recent",analyticsData:{name:i.getPhrase(r,"mostRecent"),url:n.getHref(a.mostRecent)},analyticsOptions:o}]})}export{h as E};
|
|
2
|
+
//# sourceMappingURL=DCGOcoWo.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DCGOcoWo.chunk.js","sources":["../../src/apps/exchange/components/exchange-tabs/ExchangeTabs.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APP_LINKS = {\n categories: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n },\n mostRecent: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.MOST_RECENT\n }\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\ninterface ExchangeTabs {\n active: 'categories' | 'most-recent' | 'featured-channels';\n}\n\nexport function ExchangeTabs(props: ExchangeTabs): JSX.Element {\n const { active } = props;\n\n return (\n <PillTabSelector\n tabs={[{\n name: getPhrase('categories'),\n appLink: APP_LINKS.categories,\n active: active === 'categories',\n analyticsData: {\n name: getPhrase('categories'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.categories)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }, {\n name: getPhrase('mostRecent'),\n appLink: APP_LINKS.mostRecent,\n active: active === 'most-recent',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'mostRecent'),\n url: Core.AppLinkHelper.getHref(APP_LINKS.mostRecent)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n }]}\n />\n );\n}"],"names":["namespace","getPhrase","LanguageService","APP_LINKS","AppChannels","Actions","ANALYTICS_OPTIONS","UserAction","EntityType","LocationContext","ExchangeTabs","props","active","jsx","PillTabSelector","Core.AppLinkHelper"],"mappings":"kIAYA,MAAMA,EAAY,wBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAEtDG,EAAY,CAChB,WAAY,CACV,YAAaC,EAAY,SACzB,OAAQC,EAAQ,SAAS,KAAA,EAE3B,WAAY,CACV,YAAaD,EAAY,SACzB,OAAQC,EAAQ,SAAS,WAAA,CAE7B,EAEMC,EAAoB,CACxB,WAAYC,EAAW,MACvB,OAAQC,EAAW,IACnB,SAAUC,EAAgB,SAC5B,EAMO,SAASC,EAAaC,EAAkC,CAC7D,KAAM,CAAE,OAAAC,GAAWD,EAEnB,OACEE,EAAAA,IAACC,EAAA,CACC,KAAM,CAAC,CACL,KAAMb,EAAU,YAAY,EAC5B,QAASE,EAAU,WACnB,OAAQS,IAAW,aACnB,cAAe,CACb,KAAMX,EAAU,YAAY,EAC5B,IAAKc,EAAmB,QAAQZ,EAAU,UAAU,CAAA,EAEtD,iBAAkBG,CAAA,EACjB,CACD,KAAML,EAAU,YAAY,EAC5B,QAASE,EAAU,WACnB,OAAQS,IAAW,cACnB,cAAe,CACb,KAAMV,EAAgB,UAAUF,EAAW,YAAY,EACvD,IAAKe,EAAmB,QAAQZ,EAAU,UAAU,CAAA,EAEtD,iBAAkBG,CAAA,CACnB,CAAA,CAAA,CAGP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as r,aO as n}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{_ as r,aO as n}from"./app-cabh1nNK.js";function v(e,t){const[o,i]=r(`exchange:preview:${e}`,t?n.getPreviousRoute():void 0);return{previewContext:o,clearPreviewContext:()=>i(void 0)}}export{v as u};
|
|
2
|
+
//# sourceMappingURL=DEfSuFug.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DEfSuFug.chunk.js","sources":["../../src/apps/exchange/hooks/usePreviewContext.ts"],"sourcesContent":["import { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\ninterface ContentViewModel {\n appLink: Core.AppLink;\n}\n\nexport function usePreviewContext(videoId: string, init: boolean) {\n const [ previewContext, setViewModel ] = useViewModel<ContentViewModel>(\n `exchange:preview:${videoId}`,\n init ? ContextService.getPreviousRoute() : undefined\n );\n\n return {\n previewContext,\n clearPreviewContext: () => setViewModel(undefined)\n };\n}"],"names":["usePreviewContext","videoId","init","previewContext","setViewModel","useViewModel","ContextService"],"mappings":"8CASO,SAASA,EAAkBC,EAAiBC,EAAe,CAChE,KAAM,CAAEC,EAAgBC,CAAa,EAAIC,EACvC,oBAAoBJ,CAAO,GAC3BC,EAAOI,EAAe,mBAAqB,MAAA,EAG7C,MAAO,CACL,eAAAH,EACA,oBAAqB,IAAMC,EAAa,MAAS,CAAA,CAErD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,am as i,B as d,x as n,L as c,G as o,aK as r,a3 as m,P as x,aD as u}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as e,am as i,B as d,x as n,L as c,G as o,aK as r,a3 as m,P as x,aD as u}from"./app-cabh1nNK.js";const h="_myVideosButton_5ybcl_1",y={myVideosButton:h},a="shared.alreadyAdded",j=c.encloseNamespace(a);function g(s){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mx-auto w-75 mt-1 mb-2",children:e.jsx("img",{src:i.General.CONFETTI,className:"img-fluid",draggable:!1})}),e.jsxs("div",{className:"text-center pb-3",children:[e.jsx("h4",{children:s.alreadyAdded?e.jsx(d,{namespace:a,phrase:"alreadyAdded"}):e.jsx(d,{namespace:a,phrase:"successfullyAdded"})}),!s.alreadyAdded&&e.jsx("p",{children:e.jsx(d,{namespace:a,phrase:"successfullyAddedDescription"})})]}),e.jsxs(n,{children:[e.jsx(n.Cancel,{text:j(s.alreadyAdded?"addAnyway":"close"),onClick:s.onClickClose,variant:"link"}),e.jsxs("a",{href:`${s.liteUrl}${s.videoId?"/videos/"+s.videoId:"/my-videos"}`,className:`${y.myVideosButton} btn btn-dark d-flex align-items-center`,children:[e.jsx("span",{className:"me-1",children:e.jsx(d,{namespace:a,phrase:s.videoId?"watchVideo":"myVideos"})}),e.jsx(o,{svg:r})]})]})]})}const A="shared.alreadyAdded",v=c.encloseNamespace(A);function p(s){const{alreadyAdded:l}=s.params,t=m(u.config());return e.jsx(x,{title:v("title"),closePopup:s.closePopup,children:e.jsx(g,{liteUrl:t.data.liteUrl,alreadyAdded:l,onClickClose:s.closePopup})})}export{p as TvAlreadyAddedView};
|
|
2
|
+
//# sourceMappingURL=DFNZXjHy.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DFNZXjHy.chunk.js","sources":["../../src/shared/components/already-added/AlreadyAdded.tsx","../../src/apps/tv/views/tv-already-added/TvAlreadyAddedView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './already-added.module.scss';\n\nconst namespace = 'shared.alreadyAdded';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AlreadyAddedProps {\n liteUrl: string;\n videoId?: string;\n alreadyAdded?: boolean;\n onClickClose: () => void;\n}\n\nexport function AlreadyAdded(props: AlreadyAddedProps) {\n return (\n <>\n <div className='mx-auto w-75 mt-1 mb-2'>\n <img src={ImageUrls.General.CONFETTI} className='img-fluid' draggable={false} />\n </div>\n\n <div className='text-center pb-3'>\n <h4>\n {props.alreadyAdded\n ? <Text namespace={namespace} phrase={'alreadyAdded'} />\n : <Text namespace={namespace} phrase={'successfullyAdded'} />\n }\n </h4>\n {!props.alreadyAdded && <p><Text namespace={namespace} phrase='successfullyAddedDescription' /></p>}\n </div>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase(props.alreadyAdded ? 'addAnyway' : 'close')}\n onClick={props.onClickClose}\n variant='link'\n />\n <a\n href={`${props.liteUrl}${props.videoId ? '/videos/' + props.videoId : '/my-videos'}`}\n className={`${styles.myVideosButton} btn btn-dark d-flex align-items-center`}\n >\n <span className='me-1'>\n <Text namespace={namespace} phrase={props.videoId ? 'watchVideo' : 'myVideos'} />\n </span>\n <SvgContainer svg={NewWindowSvg} />\n </a>\n </PopupButtons>\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { Config, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { AlreadyAdded } from 'shared/components/already-added/AlreadyAdded';\n\nconst namespace = 'shared.alreadyAdded';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvAlreadyAddedViewProps extends PopupViewProps {\n params: HashObject;\n}\n\nexport function TvAlreadyAddedView(props: TvAlreadyAddedViewProps): JSX.Element {\n const { alreadyAdded } = props.params;\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n >\n <AlreadyAdded\n liteUrl={config.data.liteUrl}\n alreadyAdded={alreadyAdded}\n onClickClose={props.closePopup}\n />\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","AlreadyAdded","props","jsxs","Fragment","jsx","ImageUrls","Text","PopupButtons","styles","SvgContainer","NewWindowSvg","TvAlreadyAddedView","alreadyAdded","config","Flight.useBasicFetch","ConfigRequests","Popup"],"mappings":"gKAaMA,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EASrD,SAASG,EAAaC,EAA0B,CACrD,OACEC,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,yBACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,IAAKC,EAAU,QAAQ,SAAU,UAAU,YAAY,UAAW,GAAO,EAChF,EAEAH,EAAAA,KAAC,MAAA,CAAI,UAAU,mBACb,SAAA,CAAAE,MAAC,KAAA,CACE,SAAAH,EAAM,aACHG,EAAAA,IAACE,aAAKT,EAAsB,OAAQ,cAAA,CAAgB,EACpDO,EAAAA,IAACE,EAAA,CAAA,UAAKT,EAAsB,OAAQ,oBAAqB,EAE/D,EACC,CAACI,EAAM,cAAgBG,MAAC,IAAA,CAAE,eAACE,EAAA,CAAA,UAAKT,EAAsB,OAAO,8BAAA,CAA+B,CAAA,CAAE,CAAA,EACjG,SAECU,EAAA,CACC,SAAA,CAAAH,EAAAA,IAACG,EAAa,OAAb,CACC,KAAMT,EAAUG,EAAM,aAAe,YAAc,OAAO,EAC1D,QAASA,EAAM,aACf,QAAQ,MAAA,CAAA,EAEVC,EAAAA,KAAC,IAAA,CACC,KAAM,GAAGD,EAAM,OAAO,GAAGA,EAAM,QAAU,WAAaA,EAAM,QAAU,YAAY,GAClF,UAAW,GAAGO,EAAO,cAAc,0CAEnC,SAAA,CAAAJ,EAAAA,IAAC,OAAA,CAAK,UAAU,OACd,SAAAA,EAAAA,IAACE,EAAA,CAAA,UAAKT,EAAsB,OAAQI,EAAM,QAAU,aAAe,UAAA,CAAY,EACjF,EACAG,EAAAA,IAACK,EAAA,CAAa,IAAKC,CAAA,CAAc,CAAA,CAAA,CAAA,CACnC,CAAA,CACF,CAAA,EACF,CAEJ,CC9CA,MAAMb,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAMrD,SAASc,EAAmBV,EAA6C,CAC9E,KAAM,CAAE,aAAAW,GAAiBX,EAAM,OAEzBY,EAASC,EAA6BC,EAAe,QAAQ,EAEnE,OACEX,EAAAA,IAACY,EAAA,CACC,MAAOlB,EAAU,OAAO,EACxB,WAAYG,EAAM,WAElB,SAAAG,EAAAA,IAACJ,EAAA,CACC,QAASa,EAAO,KAAK,QACrB,aAAAD,EACA,aAAcX,EAAM,UAAA,CAAA,CACtB,CAAA,CAGN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{aB as n,as as g,Z as f,H as u,U as l}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{aB as n,as as g,Z as f,H as u,U as l}from"./app-cabh1nNK.js";var v=(e=>(e[e.AllResults=0]="AllResults",e[e.Subtitles=1]="Subtitles",e[e.TitleAndDescription=2]="TitleAndDescription",e))(v||{});function k(){const e=g.get("cv:holiday:dates");return f.isObject(e)?e:{startMonth:12,startDay:15,endMonth:1,endDay:6}}const D={getFormattedDateRange(e,r){return`${n.format(e,"Do MMMM YYYY")} - ${n.format(r,"Do MMMM YYYY")}`},getDateBroadcastParams(e){const r=a=>n.format(a,"YYYY-MM-DD"),t=r(new Date);switch(e){case"yesterday":return{from:r(n.subtract(t,1,"day")),to:t};case"last-week":return{from:r(n.subtract(t,7,"days")),to:t};case"last-2-weeks":return{from:r(n.subtract(t,14,"days")),to:t}}},isHolidayPeriod(){const{startMonth:e,startDay:r,endMonth:t,endDay:a}=k(),s=new Date,o=s.getMonth()+1,i=s.getDate();return o===e&&i>=r||o===t&&i<=a}},z={regions(){return{url:"/api/tv/api/v2/regions",key:"tv:regions",normalize:!1}},region(e){return{url:`/api/tv/api/v2/regions/${e}`,key:`tv:region:${e}`,normalize:!1}},dateRange(e){return{url:`/api/tv/api/v2/regions/${e}/daterange`,key:`tv:region:${e}:daterange`,normalize:!1}},channels(e){return{url:l.urlBuilder("/api/tv/api/v2/channels",{region:e}),key:`tv:channels:${e}`,normalize:!1,formatData:r=>r.sort((t,a)=>t.sortOrder-a.sortOrder)}},payTvChannels(){return{url:"/api/tv/v1/pay-tv/channels/all",key:"pay:tv:channels",normalize:!1}},programsByChannel(e,r,t,a){const s=l.urlBuilder(`/api/tv/api/v3/regions/${e}/channels/programs`,{channel:r,startDate:t,endDate:a}),o=["tv:programs:by:channel",e,r,t,a].join(":");return{url:s,key:o,normalize:!1}},programsByLetter(e,r,t,a){const s=l.urlBuilder("/api/tv/api/v2/Programs",{regionCode:e,startsWith:r,startDate:t,endDate:a}),o=["tv:programs:by:letter",e,r,t,a].join(":");return{url:s,key:o,normalize:!1}},program(e){return{url:`/api/tv/api/v3/programs/${e}`,key:`tv:programs:${e}`,normalize:!1}},search(e,r,t){const{query:a,dateBroadcast:s,...o}=r,i=t||1,d=o.filter||v.AllResults,c=l.urlBuilder("/api/tv/api/v4/search",{region:e,query:a,filter:d,...D.getDateBroadcastParams(s),...o,page:i,size:25}),m=Object.values({filter:d,dateBroadcast:s,...o}).join(":"),y=["tv:search",a,e,m,i].join(":");return{url:c,key:y,normalize:!1,formatData:p=>(p.page=i,p)}},addFullVideo(e,r){return{url:"/api/tv/api/v2/workspace/video",key:"tv:add:full:video",normalize:!1,type:u.POST,data:e,invalidationKeys:`tv:workspace:video:${r}`}},addAdFreeVideo(e,r){return{url:l.urlBuilder(`/api/tv/v4/programs/${e.id}/ad-free`,{customerId:e.customerId,userId:e.userId}),key:"tv:add:ad:free:video",normalize:!1,type:u.POST,invalidationKeys:`tv:workspace:video:${r}`}},adFreeCredits(e,r,t){const a=new Date;a.setHours(0,0,0,0),a.setMinutes(a.getMinutes()+a.getTimezoneOffset());const s=n.add(a,1,"day");return{url:l.urlBuilder("/api/tv/v4/user-requests",{userId:e,customerId:r,regionCode:t,from:n.convertUTCToLocal(a).toISOString(),to:n.convertUTCToLocal(s).toISOString()}),key:"tv:add:free:credits",normalize:!1}},createAdFreeRequest(e){return{url:l.urlBuilder("/api/tv/v4/user-requests/ad-free",{userId:e.userId,customerId:e.customerId}),key:"tv:create:add:free:request",normalize:!1,type:u.POST,data:{programId:e.programId,regionCode:e.regionCode},invalidationKeys:["tv:add:free:credits"]}},workspaceVideo(e,r,t){return{url:l.urlBuilder(`/api/tv/v4/workspace/programs/${e}`,{userId:r,customerId:t}),key:`tv:workspace:video:${e}`}},requestProgram(e){return{url:"/api/tv/v1/pay-tv/user-requests",key:"tv:request:program",type:u.POST,data:e}},requestProgramUk(e){return{url:"/api/tv/api/v1/user-requests/program",key:"tv:request:program:uk",type:u.POST,data:e}}};export{z as T,D as a};
|
|
2
|
+
//# sourceMappingURL=DGDSZYW9.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cliq624L.chunk.js","sources":["../../src/apps/tv/interfaces/enums/TvSearchFilter.ts","../../src/apps/tv/utils/TvUtils.ts","../../src/apps/tv/flight-requests/TvRequests.ts"],"sourcesContent":["export enum TvSearchFilter {\n AllResults = 0,\n Subtitles = 1,\n TitleAndDescription = 2\n}","import { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n\nfunction getHolidayDates() {\n const cvHolidayOverride = LocalStorageHelper.get('cv:holiday:dates');\n\n if (ObjectHelper.isObject(cvHolidayOverride))\n return cvHolidayOverride;\n\n return {\n // Dec 15th\n startMonth: 12,\n startDay: 15,\n // Jan 6th\n endMonth: 1,\n endDay: 6\n };\n}\n\nexport const TvUtils = {\n getFormattedDateRange(startDate: string, endDate: string) {\n return `${DateHelper.format(startDate, 'Do MMMM YYYY')} - ${DateHelper.format(endDate, 'Do MMMM YYYY')}`;\n },\n getDateBroadcastParams(dateBroadcast: string) {\n const format = (date: Date) => DateHelper.format(date, 'YYYY-MM-DD');\n const todayDate = format(new Date());\n\n switch (dateBroadcast) {\n case 'yesterday':\n return {\n from: format(DateHelper.subtract(todayDate, 1, 'day')),\n to: todayDate\n };\n case 'last-week':\n return {\n from: format(DateHelper.subtract(todayDate, 7, 'days')),\n to: todayDate\n };\n case 'last-2-weeks':\n return {\n from: format(DateHelper.subtract(todayDate, 14, 'days')),\n to: todayDate\n };\n }\n },\n isHolidayPeriod(): boolean {\n const { startMonth, startDay, endMonth, endDay } = getHolidayDates();\n\n const today = new Date();\n const month = today.getMonth() + 1;\n const day = today.getDate();\n\n return ((month === startMonth && day >= startDay) || (month === endMonth && day <= endDay));\n }\n};\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TvSearchFilter } from 'apps/tv/interfaces/enums/TvSearchFilter';\nimport { AddAdFreeVideoRequest } from 'apps/tv/interfaces/requests/AddAdFreeVideoRequest';\nimport { AddFullVideoRequest } from 'apps/tv/interfaces/requests/AddFullVideoRequest';\nimport { AdFreeRequest } from 'apps/tv/interfaces/requests/AdFreeRequest';\nimport { RequestProgramRequest, RequestProgramUkRequest } from 'apps/tv/interfaces/requests/RequestProgramRequest';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nexport const TvRequests = {\n regions(): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions`,\n key: `tv:regions`,\n normalize: false\n };\n },\n\n region(region: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions/${region}`,\n key: `tv:region:${region}`,\n normalize: false\n };\n },\n\n dateRange(region: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions/${region}/daterange`,\n key: `tv:region:${region}:daterange`,\n normalize: false\n };\n },\n\n channels(region: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/api/v2/channels`, { region }),\n key: `tv:channels:${region}`,\n normalize: false,\n formatData: (data: any[]) => {\n return data.sort((a: any, b: any) => (a.sortOrder - b.sortOrder));\n }\n };\n },\n\n payTvChannels(): Flight.Request {\n return {\n url: '/api/tv/v1/pay-tv/channels/all',\n key: 'pay:tv:channels',\n normalize: false\n };\n },\n\n programsByChannel(\n region: string,\n channel: string,\n startDate: string,\n endDate: string\n ): Flight.Request {\n const url = UrlHelper.urlBuilder(`/api/tv/api/v3/regions/${region}/channels/programs`, {\n channel,\n startDate,\n endDate\n });\n\n const key = [ 'tv:programs:by:channel', region, channel, startDate, endDate ].join(':');\n\n return {\n url,\n key,\n normalize: false\n };\n },\n\n programsByLetter(\n regionCode: string,\n startsWith: string,\n startDate: string,\n endDate: string\n ): Flight.Request {\n const url = UrlHelper.urlBuilder(`/api/tv/api/v2/Programs`, {\n regionCode,\n startsWith,\n startDate,\n endDate\n });\n\n const key = [ 'tv:programs:by:letter', regionCode, startsWith, startDate, endDate ].join(':');\n\n return {\n url,\n key,\n normalize: false\n };\n },\n\n program(\n id: string\n ): Flight.Request {\n return {\n url: `/api/tv/api/v3/programs/${id}`,\n key: `tv:programs:${id}`,\n normalize: false\n };\n },\n\n search(\n region: string,\n queryParams: HashObject,\n pageParam: number\n ): Flight.Request {\n const { query, dateBroadcast, ...filters } = queryParams;\n const page = pageParam || 1;\n const filter = filters.filter || TvSearchFilter.AllResults;\n\n const url = UrlHelper.urlBuilder(`/api/tv/api/v4/search`, {\n region,\n query,\n filter,\n ...TvUtils.getDateBroadcastParams(dateBroadcast),\n ...filters,\n page,\n size: 25\n });\n\n const filterKeys = Object.values({ filter, dateBroadcast, ...filters }).join(':');\n const key = [ 'tv:search', query, region, filterKeys, page ].join(':');\n\n return {\n url,\n key,\n normalize: false,\n formatData: (data: any) => {\n data.page = page;\n return data;\n }\n };\n },\n\n addFullVideo(data: AddFullVideoRequest, id: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/workspace/video`,\n key: 'tv:add:full:video',\n normalize: false,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: `tv:workspace:video:${id}`\n };\n },\n\n addAdFreeVideo(data: AddAdFreeVideoRequest, id: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/programs/${data.id}/ad-free`, { customerId: data.customerId, userId: data.userId }),\n key: 'tv:add:ad:free:video',\n normalize: false,\n type: HttpVerbs.POST,\n invalidationKeys: `tv:workspace:video:${id}`\n };\n },\n\n adFreeCredits(\n userId: string,\n customerId: string,\n regionCode: string\n ): Flight.Request {\n // Start of today's date, offset by the local timezone.\n const from = new Date();\n from.setHours(0, 0, 0, 0);\n from.setMinutes(from.getMinutes() + from.getTimezoneOffset());\n\n const to = DateHelper.add(from, 1, 'day');\n\n const url = UrlHelper.urlBuilder(`/api/tv/v4/user-requests`, {\n userId,\n customerId,\n regionCode,\n from: DateHelper.convertUTCToLocal(from).toISOString(),\n to: DateHelper.convertUTCToLocal(to).toISOString()\n });\n\n return {\n url,\n key: 'tv:add:free:credits',\n normalize: false\n };\n },\n\n createAdFreeRequest(data: AdFreeRequest): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/user-requests/ad-free`, { userId: data.userId, customerId: data.customerId }),\n key: 'tv:create:add:free:request',\n normalize: false,\n type: HttpVerbs.POST,\n data: {\n programId: data.programId,\n regionCode: data.regionCode\n },\n invalidationKeys: ['tv:add:free:credits']\n };\n },\n\n workspaceVideo(videoId: string, userId: string, customerId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/workspace/programs/${videoId}`, { userId, customerId }),\n key: `tv:workspace:video:${videoId}`\n };\n },\n\n requestProgram(data: RequestProgramRequest) {\n return {\n url: `/api/tv/v1/pay-tv/user-requests`,\n key: 'tv:request:program',\n type: HttpVerbs.POST,\n data\n };\n },\n\n requestProgramUk(data: RequestProgramUkRequest) {\n return {\n url: `/api/tv/api/v1/user-requests/program`,\n key: 'tv:request:program:uk',\n type: HttpVerbs.POST,\n data\n };\n }\n};"],"names":["TvSearchFilter","getHolidayDates","cvHolidayOverride","LocalStorageHelper","ObjectHelper","TvUtils","startDate","endDate","DateHelper","dateBroadcast","format","date","todayDate","startMonth","startDay","endMonth","endDay","today","month","day","TvRequests","region","UrlHelper","data","a","b","channel","url","key","regionCode","startsWith","id","queryParams","pageParam","query","filters","page","filter","filterKeys","HttpVerbs","userId","customerId","from","to","videoId"],"mappings":"oEAAO,IAAKA,GAAAA,IACVA,EAAAA,EAAA,WAAa,CAAA,EAAb,aACAA,EAAAA,EAAA,UAAY,CAAA,EAAZ,YACAA,EAAAA,EAAA,oBAAsB,CAAA,EAAtB,sBAHUA,IAAAA,GAAA,CAAA,CAAA,ECKZ,SAASC,GAAkB,CACzB,MAAMC,EAAoBC,EAAmB,IAAI,kBAAkB,EAEnE,OAAIC,EAAa,SAASF,CAAiB,EAClCA,EAEF,CAEL,WAAY,GACZ,SAAU,GAEV,SAAU,EACV,OAAQ,CAAA,CAEZ,CAEO,MAAMG,EAAU,CACrB,sBAAsBC,EAAmBC,EAAiB,CACxD,MAAO,GAAGC,EAAW,OAAOF,EAAW,cAAc,CAAC,MAAME,EAAW,OAAOD,EAAS,cAAc,CAAC,EACxG,EACA,uBAAuBE,EAAuB,CAC5C,MAAMC,EAAUC,GAAeH,EAAW,OAAOG,EAAM,YAAY,EAC7DC,EAAYF,EAAO,IAAI,IAAM,EAEnC,OAAQD,EAAA,CACN,IAAK,YACH,MAAO,CACL,KAAMC,EAAOF,EAAW,SAASI,EAAW,EAAG,KAAK,CAAC,EACrD,GAAIA,CAAA,EAER,IAAK,YACH,MAAO,CACL,KAAMF,EAAOF,EAAW,SAASI,EAAW,EAAG,MAAM,CAAC,EACtD,GAAIA,CAAA,EAER,IAAK,eACH,MAAO,CACL,KAAMF,EAAOF,EAAW,SAASI,EAAW,GAAI,MAAM,CAAC,EACvD,GAAIA,CAAA,CACN,CAEN,EACA,iBAA2B,CACzB,KAAM,CAAE,WAAAC,EAAY,SAAAC,EAAU,SAAAC,EAAU,OAAAC,CAAA,EAAWf,EAAA,EAE7CgB,MAAY,KACZC,EAAQD,EAAM,SAAA,EAAa,EAC3BE,EAAMF,EAAM,QAAA,EAElB,OAASC,IAAUL,GAAcM,GAAOL,GAAcI,IAAUH,GAAYI,GAAOH,CACrF,CACF,EC3CaI,EAAa,CACxB,SAA0B,CACxB,MAAO,CACL,IAAK,yBACL,IAAK,aACL,UAAW,EAAA,CAEf,EAEA,OAAOC,EAAgC,CACrC,MAAO,CACL,IAAK,0BAA0BA,CAAM,GACrC,IAAK,aAAaA,CAAM,GACxB,UAAW,EAAA,CAEf,EAEA,UAAUA,EAAgC,CACxC,MAAO,CACL,IAAK,0BAA0BA,CAAM,aACrC,IAAK,aAAaA,CAAM,aACxB,UAAW,EAAA,CAEf,EAEA,SAASA,EAAgC,CACvC,MAAO,CACL,IAAKC,EAAU,WAAW,0BAA2B,CAAE,OAAAD,EAAQ,EAC/D,IAAK,eAAeA,CAAM,GAC1B,UAAW,GACX,WAAaE,GACJA,EAAK,KAAK,CAACC,EAAQC,IAAYD,EAAE,UAAYC,EAAE,SAAU,CAClE,CAEJ,EAEA,eAAgC,CAC9B,MAAO,CACL,IAAK,iCACL,IAAK,kBACL,UAAW,EAAA,CAEf,EAEA,kBACEJ,EACAK,EACApB,EACAC,EACgB,CAChB,MAAMoB,EAAML,EAAU,WAAW,0BAA0BD,CAAM,qBAAsB,CACrF,QAAAK,EACA,UAAApB,EACA,QAAAC,CAAA,CACD,EAEKqB,EAAM,CAAE,yBAA0BP,EAAQK,EAASpB,EAAWC,CAAQ,EAAE,KAAK,GAAG,EAEtF,MAAO,CACL,IAAAoB,EACA,IAAAC,EACA,UAAW,EAAA,CAEf,EAEA,iBACEC,EACAC,EACAxB,EACAC,EACgB,CAChB,MAAMoB,EAAML,EAAU,WAAW,0BAA2B,CAC1D,WAAAO,EACA,WAAAC,EACA,UAAAxB,EACA,QAAAC,CAAA,CACD,EAEKqB,EAAM,CAAE,wBAAyBC,EAAYC,EAAYxB,EAAWC,CAAQ,EAAE,KAAK,GAAG,EAE5F,MAAO,CACL,IAAAoB,EACA,IAAAC,EACA,UAAW,EAAA,CAEf,EAEA,QACEG,EACgB,CAChB,MAAO,CACL,IAAK,2BAA2BA,CAAE,GAClC,IAAK,eAAeA,CAAE,GACtB,UAAW,EAAA,CAEf,EAEA,OACEV,EACAW,EACAC,EACgB,CAChB,KAAM,CAAE,MAAAC,EAAO,cAAAzB,EAAe,GAAG0B,GAAYH,EACvCI,EAAOH,GAAa,EACpBI,EAASF,EAAQ,QAAUnC,EAAe,WAE1C2B,EAAML,EAAU,WAAW,wBAAyB,CACxD,OAAAD,EACA,MAAAa,EACA,OAAAG,EACA,GAAGhC,EAAQ,uBAAuBI,CAAa,EAC/C,GAAG0B,EACH,KAAAC,EACA,KAAM,EAAA,CACP,EAEKE,EAAa,OAAO,OAAO,CAAE,OAAAD,EAAQ,cAAA5B,EAAe,GAAG0B,CAAA,CAAS,EAAE,KAAK,GAAG,EAC1EP,EAAM,CAAE,YAAaM,EAAOb,EAAQiB,EAAYF,CAAK,EAAE,KAAK,GAAG,EAErE,MAAO,CACL,IAAAT,EACA,IAAAC,EACA,UAAW,GACX,WAAaL,IACXA,EAAK,KAAOa,EACLb,EACT,CAEJ,EAEA,aAAaA,EAA2BQ,EAA4B,CAClE,MAAO,CACL,IAAK,iCACL,IAAK,oBACL,UAAW,GACX,KAAMQ,EAAU,KAChB,KAAAhB,EACA,iBAAkB,sBAAsBQ,CAAE,EAAA,CAE9C,EAEA,eAAeR,EAA6BQ,EAA4B,CACtE,MAAO,CACL,IAAKT,EAAU,WAAW,uBAAuBC,EAAK,EAAE,WAAY,CAAE,WAAYA,EAAK,WAAY,OAAQA,EAAK,OAAQ,EACxH,IAAK,uBACL,UAAW,GACX,KAAMgB,EAAU,KAChB,iBAAkB,sBAAsBR,CAAE,EAAA,CAE9C,EAEA,cACES,EACAC,EACAZ,EACgB,CAEhB,MAAMa,MAAW,KACjBA,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACxBA,EAAK,WAAWA,EAAK,WAAA,EAAeA,EAAK,mBAAmB,EAE5D,MAAMC,EAAKnC,EAAW,IAAIkC,EAAM,EAAG,KAAK,EAUxC,MAAO,CACL,IATUpB,EAAU,WAAW,2BAA4B,CAC3D,OAAAkB,EACA,WAAAC,EACA,WAAAZ,EACA,KAAMrB,EAAW,kBAAkBkC,CAAI,EAAE,YAAA,EACzC,GAAIlC,EAAW,kBAAkBmC,CAAE,EAAE,YAAA,CAAY,CAClD,EAIC,IAAK,sBACL,UAAW,EAAA,CAEf,EAEA,oBAAoBpB,EAAqC,CACvD,MAAO,CACL,IAAKD,EAAU,WAAW,mCAAoC,CAAE,OAAQC,EAAK,OAAQ,WAAYA,EAAK,UAAA,CAAY,EAClH,IAAK,6BACL,UAAW,GACX,KAAMgB,EAAU,KAChB,KAAM,CACJ,UAAWhB,EAAK,UAChB,WAAYA,EAAK,UAAA,EAEnB,iBAAkB,CAAC,qBAAqB,CAAA,CAE5C,EAEA,eAAeqB,EAAiBJ,EAAgBC,EAAoC,CAClF,MAAO,CACL,IAAKnB,EAAU,WAAW,iCAAiCsB,CAAO,GAAI,CAAE,OAAAJ,EAAQ,WAAAC,EAAY,EAC5F,IAAK,sBAAsBG,CAAO,EAAA,CAEtC,EAEA,eAAerB,EAA6B,CAC1C,MAAO,CACL,IAAK,kCACL,IAAK,qBACL,KAAMgB,EAAU,KAChB,KAAAhB,CAAA,CAEJ,EAEA,iBAAiBA,EAA+B,CAC9C,MAAO,CACL,IAAK,uCACL,IAAK,wBACL,KAAMgB,EAAU,KAChB,KAAAhB,CAAA,CAEJ,CACF"}
|
|
1
|
+
{"version":3,"file":"DGDSZYW9.chunk.js","sources":["../../src/apps/tv/interfaces/enums/TvSearchFilter.ts","../../src/apps/tv/utils/TvUtils.ts","../../src/apps/tv/flight-requests/TvRequests.ts"],"sourcesContent":["export enum TvSearchFilter {\n AllResults = 0,\n Subtitles = 1,\n TitleAndDescription = 2\n}","import { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n\nfunction getHolidayDates() {\n const cvHolidayOverride = LocalStorageHelper.get('cv:holiday:dates');\n\n if (ObjectHelper.isObject(cvHolidayOverride))\n return cvHolidayOverride;\n\n return {\n // Dec 15th\n startMonth: 12,\n startDay: 15,\n // Jan 6th\n endMonth: 1,\n endDay: 6\n };\n}\n\nexport const TvUtils = {\n getFormattedDateRange(startDate: string, endDate: string) {\n return `${DateHelper.format(startDate, 'Do MMMM YYYY')} - ${DateHelper.format(endDate, 'Do MMMM YYYY')}`;\n },\n getDateBroadcastParams(dateBroadcast: string) {\n const format = (date: Date) => DateHelper.format(date, 'YYYY-MM-DD');\n const todayDate = format(new Date());\n\n switch (dateBroadcast) {\n case 'yesterday':\n return {\n from: format(DateHelper.subtract(todayDate, 1, 'day')),\n to: todayDate\n };\n case 'last-week':\n return {\n from: format(DateHelper.subtract(todayDate, 7, 'days')),\n to: todayDate\n };\n case 'last-2-weeks':\n return {\n from: format(DateHelper.subtract(todayDate, 14, 'days')),\n to: todayDate\n };\n }\n },\n isHolidayPeriod(): boolean {\n const { startMonth, startDay, endMonth, endDay } = getHolidayDates();\n\n const today = new Date();\n const month = today.getMonth() + 1;\n const day = today.getDate();\n\n return ((month === startMonth && day >= startDay) || (month === endMonth && day <= endDay));\n }\n};\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TvSearchFilter } from 'apps/tv/interfaces/enums/TvSearchFilter';\nimport { AddAdFreeVideoRequest } from 'apps/tv/interfaces/requests/AddAdFreeVideoRequest';\nimport { AddFullVideoRequest } from 'apps/tv/interfaces/requests/AddFullVideoRequest';\nimport { AdFreeRequest } from 'apps/tv/interfaces/requests/AdFreeRequest';\nimport { RequestProgramRequest, RequestProgramUkRequest } from 'apps/tv/interfaces/requests/RequestProgramRequest';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nexport const TvRequests = {\n regions(): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions`,\n key: `tv:regions`,\n normalize: false\n };\n },\n\n region(region: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions/${region}`,\n key: `tv:region:${region}`,\n normalize: false\n };\n },\n\n dateRange(region: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions/${region}/daterange`,\n key: `tv:region:${region}:daterange`,\n normalize: false\n };\n },\n\n channels(region: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/api/v2/channels`, { region }),\n key: `tv:channels:${region}`,\n normalize: false,\n formatData: (data: any[]) => {\n return data.sort((a: any, b: any) => (a.sortOrder - b.sortOrder));\n }\n };\n },\n\n payTvChannels(): Flight.Request {\n return {\n url: '/api/tv/v1/pay-tv/channels/all',\n key: 'pay:tv:channels',\n normalize: false\n };\n },\n\n programsByChannel(\n region: string,\n channel: string,\n startDate: string,\n endDate: string\n ): Flight.Request {\n const url = UrlHelper.urlBuilder(`/api/tv/api/v3/regions/${region}/channels/programs`, {\n channel,\n startDate,\n endDate\n });\n\n const key = [ 'tv:programs:by:channel', region, channel, startDate, endDate ].join(':');\n\n return {\n url,\n key,\n normalize: false\n };\n },\n\n programsByLetter(\n regionCode: string,\n startsWith: string,\n startDate: string,\n endDate: string\n ): Flight.Request {\n const url = UrlHelper.urlBuilder(`/api/tv/api/v2/Programs`, {\n regionCode,\n startsWith,\n startDate,\n endDate\n });\n\n const key = [ 'tv:programs:by:letter', regionCode, startsWith, startDate, endDate ].join(':');\n\n return {\n url,\n key,\n normalize: false\n };\n },\n\n program(\n id: string\n ): Flight.Request {\n return {\n url: `/api/tv/api/v3/programs/${id}`,\n key: `tv:programs:${id}`,\n normalize: false\n };\n },\n\n search(\n region: string,\n queryParams: HashObject,\n pageParam: number\n ): Flight.Request {\n const { query, dateBroadcast, ...filters } = queryParams;\n const page = pageParam || 1;\n const filter = filters.filter || TvSearchFilter.AllResults;\n\n const url = UrlHelper.urlBuilder(`/api/tv/api/v4/search`, {\n region,\n query,\n filter,\n ...TvUtils.getDateBroadcastParams(dateBroadcast),\n ...filters,\n page,\n size: 25\n });\n\n const filterKeys = Object.values({ filter, dateBroadcast, ...filters }).join(':');\n const key = [ 'tv:search', query, region, filterKeys, page ].join(':');\n\n return {\n url,\n key,\n normalize: false,\n formatData: (data: any) => {\n data.page = page;\n return data;\n }\n };\n },\n\n addFullVideo(data: AddFullVideoRequest, id: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/workspace/video`,\n key: 'tv:add:full:video',\n normalize: false,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: `tv:workspace:video:${id}`\n };\n },\n\n addAdFreeVideo(data: AddAdFreeVideoRequest, id: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/programs/${data.id}/ad-free`, { customerId: data.customerId, userId: data.userId }),\n key: 'tv:add:ad:free:video',\n normalize: false,\n type: HttpVerbs.POST,\n invalidationKeys: `tv:workspace:video:${id}`\n };\n },\n\n adFreeCredits(\n userId: string,\n customerId: string,\n regionCode: string\n ): Flight.Request {\n // Start of today's date, offset by the local timezone.\n const from = new Date();\n from.setHours(0, 0, 0, 0);\n from.setMinutes(from.getMinutes() + from.getTimezoneOffset());\n\n const to = DateHelper.add(from, 1, 'day');\n\n const url = UrlHelper.urlBuilder(`/api/tv/v4/user-requests`, {\n userId,\n customerId,\n regionCode,\n from: DateHelper.convertUTCToLocal(from).toISOString(),\n to: DateHelper.convertUTCToLocal(to).toISOString()\n });\n\n return {\n url,\n key: 'tv:add:free:credits',\n normalize: false\n };\n },\n\n createAdFreeRequest(data: AdFreeRequest): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/user-requests/ad-free`, { userId: data.userId, customerId: data.customerId }),\n key: 'tv:create:add:free:request',\n normalize: false,\n type: HttpVerbs.POST,\n data: {\n programId: data.programId,\n regionCode: data.regionCode\n },\n invalidationKeys: ['tv:add:free:credits']\n };\n },\n\n workspaceVideo(videoId: string, userId: string, customerId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/workspace/programs/${videoId}`, { userId, customerId }),\n key: `tv:workspace:video:${videoId}`\n };\n },\n\n requestProgram(data: RequestProgramRequest) {\n return {\n url: `/api/tv/v1/pay-tv/user-requests`,\n key: 'tv:request:program',\n type: HttpVerbs.POST,\n data\n };\n },\n\n requestProgramUk(data: RequestProgramUkRequest) {\n return {\n url: `/api/tv/api/v1/user-requests/program`,\n key: 'tv:request:program:uk',\n type: HttpVerbs.POST,\n data\n };\n }\n};"],"names":["TvSearchFilter","getHolidayDates","cvHolidayOverride","LocalStorageHelper","ObjectHelper","TvUtils","startDate","endDate","DateHelper","dateBroadcast","format","date","todayDate","startMonth","startDay","endMonth","endDay","today","month","day","TvRequests","region","UrlHelper","data","a","b","channel","url","key","regionCode","startsWith","id","queryParams","pageParam","query","filters","page","filter","filterKeys","HttpVerbs","userId","customerId","from","to","videoId"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{I as o,L as n,q as t,aG as s,am as a}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{I as o,L as n,q as t,aG as s,am as a}from"./app-cabh1nNK.js";const i="tv.getRegionInfo",e=n.encloseNamespace(i);function l(g){const r={[o.AU]:{tv:e("foxtel"),country:e("au"),requestProgram:!0,programGuidePhraseKey:"foxtelTvGuide",logo:a.ProgramLogos.FOXTEL,bgColor:"bg-light-yellow"},[o.UK]:{tv:e("bbcRes"),country:e("uk"),requestProgram:!0,programGuidePhraseKey:"bbcSearch",logo:a.ProgramLogos.BBC,bgColor:"bg-light-blue"},[o.NZ]:{country:e("nz"),requestProgram:!1}}[g];return r||t.throw(new s("No region info mapped for instance region")),r}export{l as g};
|
|
2
|
+
//# sourceMappingURL=DLxCyfTf.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DLxCyfTf.chunk.js","sources":["../../src/apps/tv/utils/getRegionInfo/getRegionInfo.ts"],"sourcesContent":["import { DevError } from 'libs/common/backbone/errors/DevError';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'tv.getRegionInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype RegionInfo = {\n country: string;\n requestProgram: boolean;\n tv?: string;\n programGuidePhraseKey?: string;\n logo?: string;\n bgColor?: string;\n}\n\nexport function getRegionInfo(instanceRegion: InstanceRegion): RegionInfo {\n const regionMap: Partial<Record<InstanceRegion, RegionInfo>> = {\n [InstanceRegion.AU]: {\n tv: getPhrase('foxtel'),\n country: getPhrase('au'),\n requestProgram: true,\n programGuidePhraseKey: 'foxtelTvGuide',\n logo: ImageUrls.ProgramLogos.FOXTEL,\n bgColor: 'bg-light-yellow'\n },\n [InstanceRegion.UK]: {\n tv: getPhrase('bbcRes'),\n country: getPhrase('uk'),\n requestProgram: true,\n programGuidePhraseKey: 'bbcSearch',\n logo: ImageUrls.ProgramLogos.BBC,\n bgColor: 'bg-light-blue'\n },\n [InstanceRegion.NZ]: {\n country: getPhrase('nz'),\n requestProgram: false\n }\n };\n\n const regionInfo = regionMap[instanceRegion];\n\n if (!regionInfo)\n Core.ErrorHelper.throw(new DevError('No region info mapped for instance region'));\n\n return regionInfo;\n}"],"names":["namespace","getPhrase","LanguageService","getRegionInfo","instanceRegion","regionInfo","InstanceRegion","ImageUrls","Core.ErrorHelper","DevError"],"mappings":"oEAQA,MAAMA,EAAY,mBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAWrD,SAASG,EAAcC,EAA4C,CAwBxE,MAAMC,EAvByD,CAC7D,CAACC,EAAe,EAAE,EAAG,CACnB,GAAIL,EAAU,QAAQ,EACtB,QAASA,EAAU,IAAI,EACvB,eAAgB,GAChB,sBAAuB,gBACvB,KAAMM,EAAU,aAAa,OAC7B,QAAS,iBAAA,EAEX,CAACD,EAAe,EAAE,EAAG,CACnB,GAAKL,EAAU,QAAQ,EACvB,QAASA,EAAU,IAAI,EACvB,eAAgB,GAChB,sBAAuB,YACvB,KAAMM,EAAU,aAAa,IAC7B,QAAS,eAAA,EAEX,CAACD,EAAe,EAAE,EAAG,CACnB,QAASL,EAAU,IAAI,EACvB,eAAgB,EAAA,CAClB,EAG2BG,CAAc,EAE3C,OAAKC,GACHG,EAAiB,MAAM,IAAIC,EAAS,2CAA2C,CAAC,EAE3EJ,CACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as o,d,j as e,e as D,f as c,g as L,h as R,i as p,k as $,C as b,l as S}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{r as o,d,j as e,e as D,f as c,g as L,h as R,i as p,k as $,C as b,l as S}from"./app-cabh1nNK.js";const g=D("h4");g.displayName="DivStyledAsH4";const N=o.forwardRef(({className:s,bsPrefix:a,as:r=g,...n},t)=>(a=d(a,"alert-heading"),e.jsx(r,{ref:t,className:c(s,a),...n})));N.displayName="AlertHeading";const A=o.forwardRef(({className:s,bsPrefix:a,as:r=L,...n},t)=>(a=d(a,"alert-link"),e.jsx(r,{ref:t,className:c(s,a),...n})));A.displayName="AlertLink";const C=o.forwardRef((s,a)=>{const{bsPrefix:r,show:n=!0,closeLabel:t="Close alert",closeVariant:k,className:w,children:y,variant:h="primary",onClose:m,dismissible:u,transition:f=p,...x}=R(s,{show:"onClose"}),l=d(r,"alert"),E=$(H=>{m&&m(!1,H)}),i=f===!0?p:f,j=e.jsxs("div",{role:"alert",...i?void 0:x,ref:a,className:c(w,l,h&&`${l}-${h}`,u&&`${l}-dismissible`),children:[u&&e.jsx(b,{onClick:E,"aria-label":t,variant:k}),y]});return i?e.jsx(i,{unmountOnExit:!0,...x,ref:void 0,in:n,children:j}):n?j:null});C.displayName="Alert";const v=Object.assign(C,{Link:A,Heading:N});function F({error:s}){return S({title:"Dev Error"}),s?e.jsxs("div",{className:"px-3",children:[e.jsx("h1",{children:s.name}),e.jsx(v,{variant:"danger",children:e.jsx("h2",{children:s.message})}),e.jsxs(v,{variant:"warning",children:[e.jsx("h3",{children:"Call stack"}),e.jsx("code",{children:s.stack})]})]}):e.jsx(e.Fragment,{})}export{F as DevErrorView};
|
|
2
|
+
//# sourceMappingURL=DQ7Osv3q.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DQ7Osv3q.chunk.js","sources":["../../../../../node_modules/react-bootstrap/esm/AlertHeading.js","../../../../../node_modules/react-bootstrap/esm/AlertLink.js","../../../../../node_modules/react-bootstrap/esm/Alert.js","../../../../libs/shared/src/views/dev-error/DevErrorView.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport divWithClassName from './divWithClassName';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH4 = divWithClassName('h4');\nDivStyledAsH4.displayName = 'DivStyledAsH4';\nconst AlertHeading = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = DivStyledAsH4,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-heading');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertHeading.displayName = 'AlertHeading';\nexport default AlertHeading;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Anchor from '@restart/ui/Anchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AlertLink = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = Anchor,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'alert-link');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nAlertLink.displayName = 'AlertLink';\nexport default AlertLink;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AlertHeading from './AlertHeading';\nimport AlertLink from './AlertLink';\nimport Fade from './Fade';\nimport CloseButton from './CloseButton';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst Alert = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n const {\n bsPrefix,\n show = true,\n closeLabel = 'Close alert',\n closeVariant,\n className,\n children,\n variant = 'primary',\n onClose,\n dismissible,\n transition = Fade,\n ...props\n } = useUncontrolled(uncontrolledProps, {\n show: 'onClose'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'alert');\n const handleClose = useEventCallback(e => {\n if (onClose) {\n onClose(false, e);\n }\n });\n const Transition = transition === true ? Fade : transition;\n const alert = /*#__PURE__*/_jsxs(\"div\", {\n role: \"alert\",\n ...(!Transition ? props : undefined),\n ref: ref,\n className: classNames(className, prefix, variant && `${prefix}-${variant}`, dismissible && `${prefix}-dismissible`),\n children: [dismissible && /*#__PURE__*/_jsx(CloseButton, {\n onClick: handleClose,\n \"aria-label\": closeLabel,\n variant: closeVariant\n }), children]\n });\n if (!Transition) return show ? alert : null;\n return /*#__PURE__*/_jsx(Transition, {\n unmountOnExit: true,\n ...props,\n ref: undefined,\n in: show,\n children: alert\n });\n});\nAlert.displayName = 'Alert';\nexport default Object.assign(Alert, {\n Link: AlertLink,\n Heading: AlertHeading\n});","import * as React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\ninterface DevErrorViewProps {\n error: Error;\n}\n\nexport function DevErrorView({ error }: DevErrorViewProps): React.ReactElement {\n useSetPageMetadata({ title: 'Dev Error' });\n\n if (!error)\n return <></>;\n\n return (\n <div className='px-3'>\n <h1>{error.name}</h1>\n <Alert variant='danger'>\n <h2>{error.message}</h2>\n </Alert>\n <Alert variant='warning'>\n <h3>Call stack</h3>\n <code>{error.stack}</code>\n </Alert>\n </div>\n );\n}"],"names":["DivStyledAsH4","divWithClassName","AlertHeading","React.forwardRef","className","bsPrefix","Component","props","ref","useBootstrapPrefix","_jsx","classNames","AlertLink","Anchor","Alert","uncontrolledProps","show","closeLabel","closeVariant","children","variant","onClose","dismissible","transition","Fade","useUncontrolled","prefix","handleClose","useEventCallback","e","Transition","alert","_jsxs","CloseButton","Alert$1","DevErrorView","error","useSetPageMetadata","jsxs","jsx","Fragment"],"mappings":"uGAOA,MAAMA,EAAgBC,EAAiB,IAAI,EAC3CD,EAAc,YAAc,gBAC5B,MAAME,EAA4BC,EAAAA,WAAiB,CAAC,CAClD,UAAAC,EACA,SAAAC,EACA,GAAIC,EAAYN,EAChB,GAAGO,CACL,EAAGC,KACDH,EAAWI,EAAmBJ,EAAU,eAAe,EACnCK,EAAAA,IAAKJ,EAAW,CAClC,IAAKE,EACL,UAAWG,EAAWP,EAAWC,CAAQ,EACzC,GAAGE,CACP,CAAG,EACF,EACDL,EAAa,YAAc,eCf3B,MAAMU,EAAyBT,EAAAA,WAAiB,CAAC,CAC/C,UAAAC,EACA,SAAAC,EACA,GAAIC,EAAYO,EAChB,GAAGN,CACL,EAAGC,KACDH,EAAWI,EAAmBJ,EAAU,YAAY,EAChCK,EAAAA,IAAKJ,EAAW,CAClC,IAAKE,EACL,UAAWG,EAAWP,EAAWC,CAAQ,EACzC,GAAGE,CACP,CAAG,EACF,EACDK,EAAU,YAAc,YCPxB,MAAME,EAAqBX,EAAAA,WAAiB,CAACY,EAAmBP,IAAQ,CACtE,KAAM,CACJ,SAAAH,EACA,KAAAW,EAAO,GACP,WAAAC,EAAa,cACb,aAAAC,EACA,UAAAd,EACA,SAAAe,EACA,QAAAC,EAAU,UACV,QAAAC,EACA,YAAAC,EACA,WAAAC,EAAaC,EACb,GAAGjB,CACP,EAAMkB,EAAgBV,EAAmB,CACrC,KAAM,SACV,CAAG,EACKW,EAASjB,EAAmBJ,EAAU,OAAO,EAC7CsB,EAAcC,EAAiBC,GAAK,CACpCR,GACFA,EAAQ,GAAOQ,CAAC,CAEpB,CAAC,EACKC,EAAaP,IAAe,GAAOC,EAAOD,EAC1CQ,EAAqBC,EAAAA,KAAM,MAAO,CACtC,KAAM,QACN,GAAKF,EAAqB,OAARvB,EAClB,IAAKC,EACL,UAAWG,EAAWP,EAAWsB,EAAQN,GAAW,GAAGM,CAAM,IAAIN,CAAO,GAAIE,GAAe,GAAGI,CAAM,cAAc,EAClH,SAAU,CAACJ,GAA4BZ,EAAAA,IAAKuB,EAAa,CACvD,QAASN,EACT,aAAcV,EACd,QAASC,CACf,CAAK,EAAGC,CAAQ,CAChB,CAAG,EACD,OAAKW,EACepB,EAAAA,IAAKoB,EAAY,CACnC,cAAe,GACf,GAAGvB,EACH,IAAK,OACL,GAAIS,EACJ,SAAUe,CACd,CAAG,EAPuBf,EAAOe,EAAQ,IAQzC,CAAC,EACDjB,EAAM,YAAc,QACpB,MAAAoB,EAAe,OAAO,OAAOpB,EAAO,CAClC,KAAMF,EACN,QAASV,CACX,CAAC,ECnDM,SAASiC,EAAa,CAAE,MAAAC,GAAgD,CAG7E,OAFAC,EAAmB,CAAE,MAAO,YAAa,EAEpCD,EAIHE,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAI,WAAM,IAAA,CAAK,EAChBA,EAAAA,IAACzB,GAAM,QAAQ,SACb,eAAC,KAAA,CAAI,SAAAsB,EAAM,QAAQ,CAAA,CACrB,EACAE,EAAAA,KAACxB,EAAA,CAAM,QAAQ,UACb,SAAA,CAAAyB,EAAAA,IAAC,MAAG,SAAA,YAAA,CAAU,EACdA,EAAAA,IAAC,OAAA,CAAM,SAAAH,EAAM,KAAA,CAAM,CAAA,CAAA,CACrB,CAAA,EACF,EAZOG,EAAAA,IAAAC,EAAAA,SAAA,EAAE,CAcb","x_google_ignoreList":[0,1,2]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as s,G as z,Q as h,b3 as A,r as L,F as v,b4 as S,aU as M}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as s,G as z,Q as h,b3 as A,r as L,F as v,b4 as S,aU as M}from"./app-cabh1nNK.js";import{a as N}from"./BtTTlrnZ.chunk.js";const P=["bg-green","bg-cyan","bg-teal","bg-blue","bg-indigo","bg-purple"],G=["bg-pink","bg-orange",...P];function H(t){return s.jsx("svg",{...t,children:s.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z",clipRule:"evenodd"})})}function I(t){return s.jsx("svg",{...t,viewBox:"0 0 24 21",children:s.jsx("path",{d:"M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5",fill:"currentColor"})})}function B(t){return s.jsx("svg",{...t,children:s.jsx("path",{fill:"currentColor",d:"M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17"})})}function E(t,e){return e[t.charCodeAt(0)%e.length]}const O="_baseFallbackContainer_14tjv_1",R="_svgFallbackContainer_14tjv_1",V="_subjectFallbackContainer_14tjv_9",w="_subjectFallbackContainerSmall_14tjv_18",U="_subjectFallbackContainerLarge_14tjv_21",q="_seriesItemFallback_14tjv_24",Q="_playlistItemFallback_14tjv_24",J="_playlistFallback_14tjv_28",W="_posterFallback_14tjv_29",X="_subjectFallback_14tjv_9",Y="_fallbackThumbnailImage_14tjv_47",Z="_videoFallback_14tjv_55",K="_folderFallback_14tjv_56",n={baseFallbackContainer:O,svgFallbackContainer:R,subjectFallbackContainer:V,subjectFallbackContainerSmall:w,subjectFallbackContainerLarge:U,seriesItemFallback:q,playlistItemFallback:Q,playlistFallback:J,posterFallback:W,subjectFallback:X,fallbackThumbnailImage:Y,videoFallback:Z,folderFallback:K};var T=(t=>(t[t.Playlist=0]="Playlist",t[t.PlaylistThumbnail=1]="PlaylistThumbnail",t[t.Series=2]="Series",t[t.SeriesThumbnail=3]="SeriesThumbnail",t[t.Subject=4]="Subject",t[t.TallSubject=5]="TallSubject",t[t.Video=6]="Video",t[t.Folder=7]="Folder",t))(T||{});function p(t,e,i){if(e===4){const o=i===0?n.subjectFallbackContainerLarge:n.subjectFallbackContainerSmall;return`${n.subjectFallbackContainer} ${o}`}return t===0?e===3||e===1?`${n.svgFallbackContainer} rounded-3`:n.svgFallbackContainer:n.baseFallbackContainer}function y(t){return t===3?n.seriesItemFallback:t===1?n.playlistItemFallback:t===0?n.playlistFallback:t===2||t===5?n.posterFallback:t===4?`${n.subjectFallback} svg-container d-inline-block`:""}function D(t){return t===3||t===1?H:t===0?I:t===2?B:t===4||t===5?N:null}function tt(t){return t===4?h.ExtraLarge:h.Standard}at.defaultProps={mediaType:0,containerClassSize:0};function at(t){const{type:e,mediaType:i,extraClasses:o,containerClassSize:b}=t;if(e===6)return s.jsx("div",{className:`${n.videoFallback} ${t.extraClasses} bg-light-blue`});if(e===7)return s.jsx("div",{className:`${n.folderFallback} ${t.extraClasses} ${E(t.name,G)}`});const d=y(e),l=D(e),c=tt(e);let r=`${p(i,e,b)}`;return o&&(r+=` ${t.extraClasses}`),s.jsx("div",{className:r,children:i===0?s.jsx(z,{svg:l,className:`${d} ${t.svgContainerClassName??""}`,tagName:"div",size:c}):s.jsx("div",{className:n.fallbackThumbnailImage,style:{backgroundImage:`url('${l}')`}})})}M.Ok;function nt(t,e,i){function o(l){if(l)return v.isFunction(e)?[...e(l)]:[...l.data]}function b(l){var c,r;if(l)return i?i(l):(r=(c=l.pagination)==null?void 0:c.cursors)==null?void 0:r.next}function d(l){if(l)return l==null?void 0:l.count}return A(L.useMemo(()=>l=>{if(!v.isFunction(t))return;const c=t,r=v.isFunction(t)&&c();let a=r&&S(l,r),f=a&&a.isFetching,F=a&&a.statusCode,C=a&&a.hasCompleted;const x=C,$=a&&a.shouldFetch,_=o(a&&a.data);let u=b(a&&a.data);const k=d(a&&a.data);for(;u&&(a=S(l,c(u)),f=f||a.isFetching,F=a.statusCode,C=a.hasCompleted,!a.shouldFetch);){const m=o(a.data);m&&_.push(...m);const g=b(a.data);g===u?u=null:u=g}const j={shouldInitialFetch:$,items:_,nextCursor:u,isFetching:f,statusCode:F,hasCompleted:C,hasFirstPageCompleted:x};return typeof k=="number"&&(j.totalItems=k),j},[t]))}export{G as B,at as I,T as a,E as g,nt as u};
|
|
2
|
+
//# sourceMappingURL=DRDYq9ZL.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mj8E03dO.chunk.js","sources":["../../../../libs/shared/src/constants/ColourClassNames.ts","../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/utils/getBgColorClass.ts","../../../../libs/shared/src/components/image/ImageFallback.tsx","../../../../libs/shared/src/hooks/UseSelectAllPages.ts"],"sourcesContent":["/**\n * Use this instead of the list below if you need to render the clickview logo\n * on the background you're rendering.\n */\nexport const LOGO_SAFE_BG_CLASS_NAMES = [\n 'bg-green',\n 'bg-cyan',\n 'bg-teal',\n 'bg-blue',\n 'bg-indigo',\n 'bg-purple'\n];\n\nexport const BG_COLOUR_CLASS_NAMES = [\n 'bg-pink',\n 'bg-orange',\n ...LOGO_SAFE_BG_CLASS_NAMES\n];","import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","export function getBgColorClass(name: string, classNames: string[]): string {\n return classNames[name.charCodeAt(0) % classNames.length];\n}\n\nexport function getDeterministicBgColorClass(name: string, classNames: string[]): string {\n const sum = name\n .split('')\n .reduce(\n (acc, char) => acc + char.charCodeAt(0),\n 0\n );\n \n return classNames[sum % classNames.length];\n}","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large\n ? styles.subjectFallbackContainerLarge\n : styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg\n ? (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ApplicationState } from 'libs/common/react/interfaces';\n\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nexport interface SelectAllPagesResult<T> {\n items: T[];\n shouldInitialFetch: boolean;\n nextCursor: string;\n isFetching: boolean;\n statusCode: HttpStatus;\n hasCompleted: boolean;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\nexport const EmptySelectAllPagesResult: SelectAllPagesResult<any> = {\n items: [],\n shouldInitialFetch: false,\n nextCursor: null,\n isFetching: false,\n statusCode: HttpStatus.Ok,\n hasCompleted: true,\n totalItems: 0,\n hasFirstPageCompleted: true\n};\n\n/**\n * Hook to select all pages of a collection from the store and flatten them.\n * It will not trigger any fetches.\n * \n * @param getKey - callback function to get the key for each page.\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useSelectAllPages<TObject, TResponse = BasePaginatedCollection<TObject>>(\n getKey: ((cursor?: string) => string) | false,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string\n): SelectAllPagesResult<TObject> {\n function safeGetItems(responseData: TResponse): TObject[] {\n if (!responseData)\n return undefined;\n\n if (FunctionHelper.isFunction(getItems))\n return [...getItems(responseData)];\n\n return [...(responseData as unknown as BasePaginatedCollection<TObject>).data];\n }\n\n function safeGetCursor(responseData: TResponse): string {\n if (!responseData)\n return undefined;\n\n if (getCursor)\n return getCursor(responseData);\n\n return (responseData as unknown as BasePaginatedCollection<TObject>).pagination?.cursors?.next;\n }\n\n function safeGetTotalItems(responseData: TResponse): number {\n if (!responseData)\n return undefined;\n\n return (responseData as unknown as BasePaginatedCollection<TObject>)?.count;\n }\n\n return useSelector(useMemo(() => (state: ApplicationState) => {\n if (!FunctionHelper.isFunction(getKey))\n return;\n\n const getKeyFn = getKey as (cursor?: string) => string;\n const key = FunctionHelper.isFunction(getKey) && getKeyFn();\n\n let request = key && Flight.getResponse<TResponse>(state, key);\n\n let isFetching = request && request.isFetching;\n let statusCode = request && request.statusCode;\n let hasCompleted = request && request.hasCompleted;\n const hasFirstPageCompleted = hasCompleted;\n\n const shouldInitialFetch = request && request.shouldFetch;\n\n const items = safeGetItems(request && request.data);\n let nextCursor = safeGetCursor(request && request.data);\n const totalItems = safeGetTotalItems(request && request.data);\n\n // Retrieve all pages that are currently in the store.\n while (nextCursor) {\n request = Flight.getResponse<TResponse>(state, getKeyFn(nextCursor));\n\n isFetching = isFetching || request.isFetching;\n statusCode = request.statusCode;\n hasCompleted = request.hasCompleted;\n\n // If next page hasn't been fetched, break.\n if (request.shouldFetch)\n break;\n\n const newItems = safeGetItems(request.data);\n newItems && items.push(...newItems);\n\n const nextNextCursor = safeGetCursor(request.data);\n\n /**\n * This is a check to basically see if the backend has messed up the cursors it's sent back.\n * For some things (e.g. user manager in Lite), the cursors are generated for a paginated collection,\n * but the collection is then filtered afterwards (making the cursors not entirely accurate).\n * This can lead to problems where a request with a cursor might return that same cursor as the `next`\n * cursor. Confusing, but basically when that happens we want this while loop to end, otherwise it'll\n * run infinitely - Josh\n */\n if (nextNextCursor === nextCursor) {\n nextCursor = null;\n } else {\n nextCursor = nextNextCursor;\n }\n }\n\n const response: SelectAllPagesResult<TObject> = {\n shouldInitialFetch,\n items,\n nextCursor,\n isFetching,\n statusCode,\n hasCompleted,\n hasFirstPageCompleted\n };\n\n if (typeof (totalItems) === 'number')\n response.totalItems = totalItems;\n\n return response;\n }, [getKey]));\n}"],"names":["LOGO_SAFE_BG_CLASS_NAMES","BG_COLOUR_CLASS_NAMES","PlaySvg","props","jsx","ImageSvg","SeriesSvg","getBgColorClass","name","classNames","ImageFallbackType","getContainerClass","type","objectType","containerClassSize","containerSizeClass","styles","getClassByType","getMedia","FileImgSvg","getSize","SvgContainerSize","ImageFallback","mediaType","extraClasses","typeClass","media","size","className","SvgContainer","HttpStatus","useSelectAllPages","getKey","getItems","getCursor","safeGetItems","responseData","FunctionHelper","safeGetCursor","_b","_a","safeGetTotalItems","useSelector","useMemo","state","getKeyFn","key","request","Flight.getResponse","isFetching","statusCode","hasCompleted","hasFirstPageCompleted","shouldInitialFetch","items","nextCursor","totalItems","newItems","nextNextCursor","response"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DRDYq9ZL.chunk.js","sources":["../../../../libs/shared/src/constants/ColourClassNames.ts","../../../../libs/shared/src/images/svg/actions/PlaySvg.tsx","../../../../libs/shared/src/images/svg/objects/ImageSvg.tsx","../../../../libs/shared/src/images/svg/objects/SeriesSvg.tsx","../../../../libs/shared/src/utils/getBgColorClass.ts","../../../../libs/shared/src/components/image/ImageFallback.tsx","../../../../libs/shared/src/hooks/UseSelectAllPages.ts"],"sourcesContent":["/**\n * Use this instead of the list below if you need to render the clickview logo\n * on the background you're rendering.\n */\nexport const LOGO_SAFE_BG_CLASS_NAMES = [\n 'bg-green',\n 'bg-cyan',\n 'bg-teal',\n 'bg-blue',\n 'bg-indigo',\n 'bg-purple'\n];\n\nexport const BG_COLOUR_CLASS_NAMES = [\n 'bg-pink',\n 'bg-orange',\n ...LOGO_SAFE_BG_CLASS_NAMES\n];","import React from 'react';\n\nexport function PlaySvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M7.76 6.078a.5.5 0 0 0-.76.427v11a.5.5 0 0 0 .76.426l9.003-5.5a.5.5 0 0 0 0-.853z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ImageSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props} viewBox='0 0 24 21'>\n <path\n d='M22.5 1A1.5 1.5 0 0 1 24 2.5v18a1.5 1.5 0 0 1-1.5 1.5h-21A1.5 1.5 0 0 1 0 20.5v-18A1.5 1.5 0 0 1 1.5 1zm0 1.5h-21v18h21zm-8.21 4.092 5.84 9a.75.75 0 0 1-1.26.816L13.638 8.34l-2.523 3.591a.75.75 0 0 1-1.144.1l-.889-.89L5.1 16.45a.75.75 0 0 1-1.2-.9l4.5-6a.75.75 0 0 1 1.13-.08l.87.869 2.648-3.77a.75.75 0 0 1 1.243.023M6 4.75a2.25 2.25 0 1 1 0 4.5 2.25 2.25 0 0 1 0-4.5m0 1.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function SeriesSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M20.283 4C21.229 4 22 4.745 22 5.66v8.74c0 .726-.478 1.338-1.151 1.565l.088-10.22a.657.657 0 0 0-.664-.66H6.351A1.71 1.71 0 0 1 7.951 4zm-2.059 1.933c.947 0 1.718.745 1.718 1.65v8.74c.01.726-.479 1.339-1.142 1.565l.088-10.24a.647.647 0 0 0-.664-.64H4.293a1.7 1.7 0 0 1 1.6-1.075zM16.05 7.95c.946 0 1.707.744 1.707 1.659v8.74c0 .915-.77 1.65-1.707 1.65H3.707C2.761 20 2 19.255 2 18.35V9.61c0-.915.77-1.66 1.707-1.66zm-.01 1.084H3.717a.647.647 0 0 0-.663.64v8.609c0 .358.292.641.663.641H16.03c.371 0 .664-.283.664-.641V9.676c.01-.358-.283-.641-.654-.641M8.546 12.39v3.178c0 .17.205.264.342.17l2.254-1.594c.117-.085.117-.255 0-.33l-2.264-1.593c-.137-.095-.332 0-.332.17'\n />\n </svg>\n );\n}\n","export function getBgColorClass(name: string, classNames: string[]): string {\n return classNames[name.charCodeAt(0) % classNames.length];\n}\n\nexport function getDeterministicBgColorClass(name: string, classNames: string[]): string {\n const sum = name\n .split('')\n .reduce(\n (acc, char) => acc + char.charCodeAt(0),\n 0\n );\n \n return classNames[sum % classNames.length];\n}","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { PlaySvg } from 'libs/shared/images/svg/actions/PlaySvg';\nimport { FileImgSvg } from 'libs/shared/images/svg/objects/FileImgSvg';\nimport { ImageSvg } from 'libs/shared/images/svg/objects/ImageSvg';\nimport { SeriesSvg } from 'libs/shared/images/svg/objects/SeriesSvg';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nimport styles from './image-fallback.module.scss';\n\nexport enum ImageFallbackType {\n Playlist,\n PlaylistThumbnail,\n Series,\n SeriesThumbnail,\n Subject,\n TallSubject,\n Video,\n Folder\n}\n\nexport enum ImageFallbackMediaType {\n Svg,\n Image\n}\n\nexport enum ContainerClassSize {\n Large,\n Small\n}\n\nfunction getContainerClass(\n type: ImageFallbackMediaType,\n objectType: ImageFallbackType,\n containerClassSize: ContainerClassSize\n): string {\n if (objectType === ImageFallbackType.Subject) {\n const containerSizeClass = containerClassSize === ContainerClassSize.Large\n ? styles.subjectFallbackContainerLarge\n : styles.subjectFallbackContainerSmall;\n\n return `${styles.subjectFallbackContainer} ${containerSizeClass}`;\n }\n\n if (type === ImageFallbackMediaType.Svg) {\n if (objectType === ImageFallbackType.SeriesThumbnail || objectType === ImageFallbackType.PlaylistThumbnail)\n return `${styles.svgFallbackContainer} rounded-3`;\n \n return styles.svgFallbackContainer;\n }\n\n return styles.baseFallbackContainer;\n}\n\nfunction getClassByType(type: ImageFallbackType): string {\n if (type === ImageFallbackType.SeriesThumbnail)\n return styles.seriesItemFallback;\n\n if (type === ImageFallbackType.PlaylistThumbnail)\n return styles.playlistItemFallback;\n\n if (type === ImageFallbackType.Playlist)\n return styles.playlistFallback;\n\n if (type === ImageFallbackType.Series || type === ImageFallbackType.TallSubject)\n return styles.posterFallback;\n\n if (type === ImageFallbackType.Subject)\n return `${styles.subjectFallback} svg-container d-inline-block`;\n\n return '';\n}\n\nfunction getMedia(type: ImageFallbackType) {\n if (type === ImageFallbackType.SeriesThumbnail || type === ImageFallbackType.PlaylistThumbnail)\n return PlaySvg;\n\n if (type === ImageFallbackType.Playlist)\n return ImageSvg;\n\n if (type === ImageFallbackType.Series)\n return SeriesSvg;\n\n if (type === ImageFallbackType.Subject || type === ImageFallbackType.TallSubject)\n return FileImgSvg;\n\n return null;\n}\n\nfunction getSize(type: ImageFallbackType): SvgContainerSize {\n if (type === ImageFallbackType.Subject)\n return SvgContainerSize.ExtraLarge;\n\n return SvgContainerSize.Standard;\n}\n\ninterface ImageFallbackProps {\n type: ImageFallbackType;\n mediaType?: ImageFallbackMediaType;\n extraClasses?: string;\n svgContainerClassName?: string;\n name?: string;\n containerClassSize?: ContainerClassSize\n}\n\nImageFallback.defaultProps = {\n mediaType: ImageFallbackMediaType.Svg,\n containerClassSize: ContainerClassSize.Large\n};\n\nexport function ImageFallback(props: ImageFallbackProps): JSX.Element {\n const { type, mediaType, extraClasses, containerClassSize } = props;\n\n if (type === ImageFallbackType.Video)\n return <div className={`${styles.videoFallback} ${props.extraClasses} bg-light-blue`} />;\n\n if (type === ImageFallbackType.Folder)\n return <div className={`${styles.folderFallback} ${props.extraClasses} ${getBgColorClass(props.name, BG_COLOUR_CLASS_NAMES)}`} />;\n\n const typeClass = getClassByType(type);\n const media = getMedia(type);\n const size = getSize(type);\n\n let className = `${getContainerClass(mediaType, type, containerClassSize)}`;\n\n if (extraClasses)\n className += ` ${props.extraClasses}`;\n\n return (\n <div className={className}>\n {mediaType === ImageFallbackMediaType.Svg\n ? (\n <SvgContainer\n svg={media}\n className={`${typeClass} ${props.svgContainerClassName ?? ''}`}\n tagName='div'\n size={size}\n />\n ) : (\n <div className={styles.fallbackThumbnailImage} style={{ backgroundImage: `url('${media}')` }} />\n )\n }\n </div>\n );\n}","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ApplicationState } from 'libs/common/react/interfaces';\n\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nexport interface SelectAllPagesResult<T> {\n items: T[];\n shouldInitialFetch: boolean;\n nextCursor: string;\n isFetching: boolean;\n statusCode: HttpStatus;\n hasCompleted: boolean;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\nexport const EmptySelectAllPagesResult: SelectAllPagesResult<any> = {\n items: [],\n shouldInitialFetch: false,\n nextCursor: null,\n isFetching: false,\n statusCode: HttpStatus.Ok,\n hasCompleted: true,\n totalItems: 0,\n hasFirstPageCompleted: true\n};\n\n/**\n * Hook to select all pages of a collection from the store and flatten them.\n * It will not trigger any fetches.\n * \n * @param getKey - callback function to get the key for each page.\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useSelectAllPages<TObject, TResponse = BasePaginatedCollection<TObject>>(\n getKey: ((cursor?: string) => string) | false,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string\n): SelectAllPagesResult<TObject> {\n function safeGetItems(responseData: TResponse): TObject[] {\n if (!responseData)\n return undefined;\n\n if (FunctionHelper.isFunction(getItems))\n return [...getItems(responseData)];\n\n return [...(responseData as unknown as BasePaginatedCollection<TObject>).data];\n }\n\n function safeGetCursor(responseData: TResponse): string {\n if (!responseData)\n return undefined;\n\n if (getCursor)\n return getCursor(responseData);\n\n return (responseData as unknown as BasePaginatedCollection<TObject>).pagination?.cursors?.next;\n }\n\n function safeGetTotalItems(responseData: TResponse): number {\n if (!responseData)\n return undefined;\n\n return (responseData as unknown as BasePaginatedCollection<TObject>)?.count;\n }\n\n return useSelector(useMemo(() => (state: ApplicationState) => {\n if (!FunctionHelper.isFunction(getKey))\n return;\n\n const getKeyFn = getKey as (cursor?: string) => string;\n const key = FunctionHelper.isFunction(getKey) && getKeyFn();\n\n let request = key && Flight.getResponse<TResponse>(state, key);\n\n let isFetching = request && request.isFetching;\n let statusCode = request && request.statusCode;\n let hasCompleted = request && request.hasCompleted;\n const hasFirstPageCompleted = hasCompleted;\n\n const shouldInitialFetch = request && request.shouldFetch;\n\n const items = safeGetItems(request && request.data);\n let nextCursor = safeGetCursor(request && request.data);\n const totalItems = safeGetTotalItems(request && request.data);\n\n // Retrieve all pages that are currently in the store.\n while (nextCursor) {\n request = Flight.getResponse<TResponse>(state, getKeyFn(nextCursor));\n\n isFetching = isFetching || request.isFetching;\n statusCode = request.statusCode;\n hasCompleted = request.hasCompleted;\n\n // If next page hasn't been fetched, break.\n if (request.shouldFetch)\n break;\n\n const newItems = safeGetItems(request.data);\n newItems && items.push(...newItems);\n\n const nextNextCursor = safeGetCursor(request.data);\n\n /**\n * This is a check to basically see if the backend has messed up the cursors it's sent back.\n * For some things (e.g. user manager in Lite), the cursors are generated for a paginated collection,\n * but the collection is then filtered afterwards (making the cursors not entirely accurate).\n * This can lead to problems where a request with a cursor might return that same cursor as the `next`\n * cursor. Confusing, but basically when that happens we want this while loop to end, otherwise it'll\n * run infinitely - Josh\n */\n if (nextNextCursor === nextCursor) {\n nextCursor = null;\n } else {\n nextCursor = nextNextCursor;\n }\n }\n\n const response: SelectAllPagesResult<TObject> = {\n shouldInitialFetch,\n items,\n nextCursor,\n isFetching,\n statusCode,\n hasCompleted,\n hasFirstPageCompleted\n };\n\n if (typeof (totalItems) === 'number')\n response.totalItems = totalItems;\n\n return response;\n }, [getKey]));\n}"],"names":["LOGO_SAFE_BG_CLASS_NAMES","BG_COLOUR_CLASS_NAMES","PlaySvg","props","jsx","ImageSvg","SeriesSvg","getBgColorClass","name","classNames","ImageFallbackType","getContainerClass","type","objectType","containerClassSize","containerSizeClass","styles","getClassByType","getMedia","FileImgSvg","getSize","SvgContainerSize","ImageFallback","mediaType","extraClasses","typeClass","media","size","className","SvgContainer","HttpStatus","useSelectAllPages","getKey","getItems","getCursor","safeGetItems","responseData","FunctionHelper","safeGetCursor","_b","_a","safeGetTotalItems","useSelector","useMemo","state","getKeyFn","key","request","Flight.getResponse","isFetching","statusCode","hasCompleted","hasFirstPageCompleted","shouldInitialFetch","items","nextCursor","totalItems","newItems","nextNextCursor","response"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as r,G as c}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as r,G as c}from"./app-cabh1nNK.js";const o=["banner","cover","thumbnail","tallPoster","icon"],s={applyThemeAssets(e){return Array.isArray(e==null?void 0:e.data)?{...e,data:e.data.map(s.applyThemeToClassification)}:s.applyThemeToClassification(e)},applyThemeToClassification(e){var l;const i=(l=e._theme)==null?void 0:l.value;if(!i)return e;const t={};for(const n of o)i[n]&&(t[n]=i[n]);return{...e,...t}}};function h(e){return r.jsx("svg",{...e,children:r.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M16.247 7.341a1 1 0 0 1 1.506 1.318l-7 8a1 1 0 0 1-1.46.048l-3-3a1 1 0 1 1 1.414-1.414l2.244 2.244z",clipRule:"evenodd"})})}const m="_circle_15nxd_1",u="_img_15nxd_6",a={circle:m,img:u};g.defaultProps={textVariant:"white"};function g(e){return!e.imageUrl&&!e.svg?r.jsx(r.Fragment,{}):e.imageUrl?r.jsx("div",{className:`${a.img} rounded-circle h-100 w-100`,style:{backgroundImage:`url(${e.imageUrl})`},children:" "}):r.jsx("div",{className:`${a.circle} ${e.variant?`bg-${e.variant}`:""} text-${e.textVariant} rounded-circle h-100 w-100 ${e.svgWrapperClassName??""}`,children:r.jsx(c,{svg:e.svg,size:e.svgSize})})}export{h as C,g as I,s as T};
|
|
2
|
+
//# sourceMappingURL=DSQI-Jdp.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DSQI-Jdp.chunk.js","sources":["../../../../libs/shared/src/utils/ThemeAssetHelper.ts","../../../../libs/shared/src/images/svg/status/CheckSvg.tsx","../../../../libs/shared/src/components/icon-circle/IconCircle.tsx"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\n\nconst THEME_ASSET_KEYS = [ 'banner', 'cover', 'thumbnail', 'tallPoster', 'icon' ] as const;\n\nexport const ThemeAssetHelper = {\n applyThemeAssets<T extends HashObject>(data: T): T {\n if (Array.isArray(data?.data)) {\n return { ...data, data: data.data.map(ThemeAssetHelper.applyThemeToClassification) };\n }\n\n return ThemeAssetHelper.applyThemeToClassification(data) as T;\n },\n\n applyThemeToClassification(classification: HashObject): HashObject {\n const themeValue = classification._theme?.value;\n if (!themeValue) return classification;\n\n const overrides: HashObject = {};\n for (const key of THEME_ASSET_KEYS) {\n if (themeValue[key]) {\n overrides[key] = themeValue[key];\n }\n }\n\n return { ...classification, ...overrides };\n }\n};","import React from 'react';\n\nexport function CheckSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M16.247 7.341a1 1 0 0 1 1.506 1.318l-7 8a1 1 0 0 1-1.46.048l-3-3a1 1 0 1 1 1.414-1.414l2.244 2.244z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './icon-circle.module.scss';\n\ninterface IconCircleProps {\n svg?: SvgIcon;\n imageUrl?: string;\n svgSize?: SvgContainerSize;\n variant?: ButtonProps['variant'];\n textVariant?: ButtonProps['variant'];\n svgWrapperClassName?: string;\n}\n\nIconCircle.defaultProps = {\n textVariant: 'white'\n};\n\nexport function IconCircle(props: IconCircleProps): JSX.Element {\n if (!props.imageUrl && !props.svg)\n return <></>;\n\n if (props.imageUrl) {\n return (\n <div className={`${styles.img} rounded-circle h-100 w-100`} style={{ backgroundImage: `url(${props.imageUrl})` }}>\n \n </div>\n );\n }\n\n return (\n <div className={`${styles.circle} ${props.variant ? `bg-${props.variant}` : ''} text-${props.textVariant} rounded-circle h-100 w-100 ${props.svgWrapperClassName ?? ''}`}>\n <SvgContainer svg={props.svg} size={props.svgSize} />\n </div>\n );\n}"],"names":["THEME_ASSET_KEYS","ThemeAssetHelper","data","classification","themeValue","_a","overrides","key","CheckSvg","props","jsx","IconCircle","Fragment","styles","SvgContainer"],"mappings":"6CAEA,MAAMA,EAAmB,CAAE,SAAU,QAAS,YAAa,aAAc,MAAO,EAEnEC,EAAmB,CAC9B,iBAAuCC,EAAY,CACjD,OAAI,MAAM,QAAQA,GAAA,YAAAA,EAAM,IAAI,EACnB,CAAE,GAAGA,EAAM,KAAMA,EAAK,KAAK,IAAID,EAAiB,0BAA0B,CAAA,EAG5EA,EAAiB,2BAA2BC,CAAI,CACzD,EAEA,2BAA2BC,EAAwC,OACjE,MAAMC,GAAaC,EAAAF,EAAe,SAAf,YAAAE,EAAuB,MAC1C,GAAI,CAACD,EAAY,OAAOD,EAExB,MAAMG,EAAwB,CAAA,EAC9B,UAAWC,KAAOP,EACZI,EAAWG,CAAG,IAChBD,EAAUC,CAAG,EAAIH,EAAWG,CAAG,GAInC,MAAO,CAAE,GAAGJ,EAAgB,GAAGG,CAAA,CACjC,CACF,ECxBO,SAASE,EAASC,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,SAAS,UACT,EAAE,sGACF,SAAS,SAAA,CAAA,EAEb,CAEJ,+DCIAC,EAAW,aAAe,CACxB,YAAa,OACf,EAEO,SAASA,EAAWF,EAAqC,CAC9D,MAAI,CAACA,EAAM,UAAY,CAACA,EAAM,IACrBC,EAAAA,IAAAE,EAAAA,SAAA,EAAE,EAEPH,EAAM,SAENC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGG,EAAO,GAAG,8BAA+B,MAAO,CAAE,gBAAiB,OAAOJ,EAAM,QAAQ,GAAA,EAAO,SAAA,IAElH,EAKFC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGG,EAAO,MAAM,IAAIJ,EAAM,QAAU,MAAMA,EAAM,OAAO,GAAK,EAAE,SAASA,EAAM,WAAW,+BAA+BA,EAAM,qBAAuB,EAAE,GACpK,SAAAC,MAACI,EAAA,CAAa,IAAKL,EAAM,IAAK,KAAMA,EAAM,QAAS,EACrD,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a3 as s,j as a,P as g,L as h,x as i,B as u,aD as x}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a3 as s,j as a,P as g,L as h,x as i,B as u,aD as x}from"./app-cabh1nNK.js";import{T as j}from"./DWtr2GDr.chunk.js";import{T as r}from"./DGDSZYW9.chunk.js";import"./DZZlWrzc.chunk.js";const l="tv.radioDownload",d=h.encloseNamespace(l);function T(o){const t=s(x.config()),e=s(r.program(o.id)),c=s(r.region(o.region));function m(){var n;const p=(n=e.data)==null?void 0:n.globalId.split("-").join("");return`${t.data.tvPreviewUrls[c.data.code]}/audio/${p}.mp3`}return t.hasCompleted&&e.hasCompleted?a.jsxs(g,{title:d("title"),closePopup:o.closePopup,showLoadingSpinner:!e.hasCompleted,children:[e.data&&a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"fw-semibold mb-2",children:e.data.title}),a.jsx("div",{className:"d-flex mb-2",children:a.jsx(j,{program:e.data,showDate:!0,showEndTime:!0})}),a.jsx("p",{children:e.data.description})]}),a.jsxs(i,{children:[a.jsx(i.Cancel,{text:d("cancel"),onClick:o.closePopup,variant:"link"}),a.jsx("a",{target:"_blank",href:m(),className:"btn btn-dark",children:a.jsx(u,{namespace:l,phrase:"download"})})]})]}):a.jsx(a.Fragment,{})}export{T as TvRadioDownloadView};
|
|
2
|
+
//# sourceMappingURL=DSwVduDL.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DSwVduDL.chunk.js","sources":["../../src/apps/tv/views/tv-radio-download/TvRadioDownloadView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { Popup, PopupProps } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.radioDownload';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvRadioDownloadProps extends PopupProps {\n id: string;\n region: string;\n}\n\nexport function TvRadioDownloadView(props: TvRadioDownloadProps) {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const program = Flight.useBasicFetch<TvProgram>(TvRequests.program(props.id));\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n\n function getDownloadLink() {\n const globalId = program.data?.globalId.split('-').join('');\n return `${config.data.tvPreviewUrls[region.data.code]}/audio/${globalId}.mp3`;\n }\n\n const hasLoaded = (config.hasCompleted && program.hasCompleted);\n\n if (!hasLoaded) {\n return <></>;\n }\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!program.hasCompleted}\n >\n {program.data &&\n <>\n <p className='fw-semibold mb-2'>{program.data.title}</p>\n <div className='d-flex mb-2'>\n <TvProgramTimeBadge program={program.data} showDate showEndTime />\n </div>\n <p>{program.data.description}</p>\n </>\n }\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('cancel')}\n onClick={props.closePopup}\n variant='link'\n />\n <a target='_blank' href={getDownloadLink()} className='btn btn-dark'>\n <Text namespace={namespace} phrase='download' />\n </a>\n </PopupButtons>\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","TvRadioDownloadView","props","config","Flight.useBasicFetch","ConfigRequests","program","TvRequests","region","getDownloadLink","globalId","_a","jsxs","Popup","Fragment","jsx","TvProgramTimeBadge","PopupButtons","Text"],"mappings":"8LAgBA,MAAMA,EAAY,mBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAOrD,SAASG,EAAoBC,EAA6B,CAC/D,MAAMC,EAASC,EAA6BC,EAAe,QAAQ,EAC7DC,EAAUF,EAAgCG,EAAW,QAAQL,EAAM,EAAE,CAAC,EACtEM,EAASJ,EAA+BG,EAAW,OAAOL,EAAM,MAAM,CAAC,EAE7E,SAASO,GAAkB,OACzB,MAAMC,GAAWC,EAAAL,EAAQ,OAAR,YAAAK,EAAc,SAAS,MAAM,KAAK,KAAK,IACxD,MAAO,GAAGR,EAAO,KAAK,cAAcK,EAAO,KAAK,IAAI,CAAC,UAAUE,CAAQ,MACzE,CAIA,OAFmBP,EAAO,cAAgBG,EAAQ,aAOhDM,EAAAA,KAACC,EAAA,CACC,MAAOd,EAAU,OAAO,EACxB,WAAYG,EAAM,WAClB,mBAAoB,CAACI,EAAQ,aAE5B,SAAA,CAAAA,EAAQ,MACPM,EAAAA,KAAAE,EAAAA,SAAA,CACE,SAAA,CAAAC,MAAC,IAAA,CAAE,UAAU,mBAAoB,SAAAT,EAAQ,KAAK,MAAM,QACnD,MAAA,CAAI,UAAU,cACb,eAACU,EAAA,CAAmB,QAASV,EAAQ,KAAM,SAAQ,GAAC,YAAW,EAAA,CAAC,EAClE,QACC,IAAA,CAAG,SAAAA,EAAQ,KAAK,YAAY,CAAA,EAC/B,SAEDW,EAAA,CACC,SAAA,CAAAF,EAAAA,IAACE,EAAa,OAAb,CACC,KAAMlB,EAAU,QAAQ,EACxB,QAASG,EAAM,WACf,QAAQ,MAAA,CAAA,QAET,IAAA,CAAE,OAAO,SAAS,KAAMO,IAAmB,UAAU,eACpD,SAAAM,EAAAA,IAACG,EAAA,CAAK,UAAApB,EAAsB,OAAO,UAAA,CAAW,EAChD,CAAA,EACF,CAAA,CAAA,CAAA,EA3BKiB,EAAAA,IAAAD,EAAAA,SAAA,EAAE,CA8Bb"}
|