@clickview/exchange 0.54.0 → 0.54.1
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/-rc15O6e.chunk.js +2 -0
- package/dist/scripts/{RR_Npo-u.chunk.js.map → -rc15O6e.chunk.js.map} +1 -1
- package/dist/scripts/{BMV1koDe.chunk.js → 8cN0DOAw.chunk.js} +2 -2
- package/dist/scripts/{BMV1koDe.chunk.js.map → 8cN0DOAw.chunk.js.map} +1 -1
- package/dist/scripts/{B4-7nU0g.chunk.js → 93Mytmux.chunk.js} +2 -2
- package/dist/scripts/{B4-7nU0g.chunk.js.map → 93Mytmux.chunk.js.map} +1 -1
- package/dist/scripts/{DH2yRBmA.chunk.js → 9YLXxYYH.chunk.js} +2 -2
- package/dist/scripts/{DH2yRBmA.chunk.js.map → 9YLXxYYH.chunk.js.map} +1 -1
- package/dist/scripts/{S8s7mgrG.chunk.js → B77TOWer.chunk.js} +2 -2
- package/dist/scripts/{S8s7mgrG.chunk.js.map → B77TOWer.chunk.js.map} +1 -1
- package/dist/scripts/{D5fWDfWb.chunk.js → BB_Ud-Dl.chunk.js} +2 -2
- package/dist/scripts/{D5fWDfWb.chunk.js.map → BB_Ud-Dl.chunk.js.map} +1 -1
- package/dist/scripts/{C7s6znQN.chunk.js → BCGCl500.chunk.js} +2 -2
- package/dist/scripts/{C7s6znQN.chunk.js.map → BCGCl500.chunk.js.map} +1 -1
- package/dist/scripts/{CZ0_WZo1.chunk.js → BEonThYO.chunk.js} +2 -2
- package/dist/scripts/{CZ0_WZo1.chunk.js.map → BEonThYO.chunk.js.map} +1 -1
- package/dist/scripts/{DfkRK80r.chunk.js → BFAbrH3V.chunk.js} +2 -2
- package/dist/scripts/{DfkRK80r.chunk.js.map → BFAbrH3V.chunk.js.map} +1 -1
- package/dist/scripts/{fG3bu7tL.chunk.js → BIciRJHg.chunk.js} +2 -2
- package/dist/scripts/{fG3bu7tL.chunk.js.map → BIciRJHg.chunk.js.map} +1 -1
- package/dist/scripts/{CDuLjvaV.chunk.js → BJX7CePa.chunk.js} +2 -2
- package/dist/scripts/{CDuLjvaV.chunk.js.map → BJX7CePa.chunk.js.map} +1 -1
- package/dist/scripts/{wE4X9qJj.chunk.js → BL0xk5Hs.chunk.js} +2 -2
- package/dist/scripts/{wE4X9qJj.chunk.js.map → BL0xk5Hs.chunk.js.map} +1 -1
- package/dist/scripts/{DKvNIqD3.chunk.js → BN_hH3oW.chunk.js} +2 -2
- package/dist/scripts/{DKvNIqD3.chunk.js.map → BN_hH3oW.chunk.js.map} +1 -1
- package/dist/scripts/{mj_NgNWo.chunk.js → BWmMHnFV.chunk.js} +2 -2
- package/dist/scripts/{mj_NgNWo.chunk.js.map → BWmMHnFV.chunk.js.map} +1 -1
- package/dist/scripts/{BHTzCeKb.chunk.js → BapvLPQ5.chunk.js} +2 -2
- package/dist/scripts/{BHTzCeKb.chunk.js.map → BapvLPQ5.chunk.js.map} +1 -1
- package/dist/scripts/{vQs65oQi.chunk.js → Bbc1-POn.chunk.js} +2 -2
- package/dist/scripts/{vQs65oQi.chunk.js.map → Bbc1-POn.chunk.js.map} +1 -1
- package/dist/scripts/{CSuv1QVm.chunk.js → Bel5ImAj.chunk.js} +2 -2
- package/dist/scripts/{CSuv1QVm.chunk.js.map → Bel5ImAj.chunk.js.map} +1 -1
- package/dist/scripts/{CiTtDJue.chunk.js → BfWmIKU0.chunk.js} +2 -2
- package/dist/scripts/{CiTtDJue.chunk.js.map → BfWmIKU0.chunk.js.map} +1 -1
- package/dist/scripts/{BO7wPiFy.chunk.js → BhJEiLr0.chunk.js} +2 -2
- package/dist/scripts/{BO7wPiFy.chunk.js.map → BhJEiLr0.chunk.js.map} +1 -1
- package/dist/scripts/{DHx8qw7h.chunk.js → Bi_rU-SG.chunk.js} +2 -2
- package/dist/scripts/{DHx8qw7h.chunk.js.map → Bi_rU-SG.chunk.js.map} +1 -1
- package/dist/scripts/BldjpTLL.chunk.js +2 -0
- package/dist/scripts/{BMOkpx9W.chunk.js.map → BldjpTLL.chunk.js.map} +1 -1
- package/dist/scripts/Bm0DywXr.chunk.js +2 -0
- package/dist/scripts/{kjcQ0DHK.chunk.js.map → Bm0DywXr.chunk.js.map} +1 -1
- package/dist/scripts/BpFMqrCw.chunk.js +2 -0
- package/dist/scripts/{D1kNrE2G.chunk.js.map → BpFMqrCw.chunk.js.map} +1 -1
- package/dist/scripts/{B2psHTnp.chunk.js → Bw042tZ_.chunk.js} +2 -2
- package/dist/scripts/{B2psHTnp.chunk.js.map → Bw042tZ_.chunk.js.map} +1 -1
- package/dist/scripts/{DMCTlX1N.chunk.js → ByCaE7oT.chunk.js} +2 -2
- package/dist/scripts/{DMCTlX1N.chunk.js.map → ByCaE7oT.chunk.js.map} +1 -1
- package/dist/scripts/{BTGAV-7R.chunk.js → BzJeV-bU.chunk.js} +2 -2
- package/dist/scripts/{BTGAV-7R.chunk.js.map → BzJeV-bU.chunk.js.map} +1 -1
- package/dist/scripts/{Ca7s6d3a.chunk.js → BzOUcl19.chunk.js} +2 -2
- package/dist/scripts/{Ca7s6d3a.chunk.js.map → BzOUcl19.chunk.js.map} +1 -1
- package/dist/scripts/{C_b02Pfv.chunk.js → C7x-ikz8.chunk.js} +2 -2
- package/dist/scripts/{C_b02Pfv.chunk.js.map → C7x-ikz8.chunk.js.map} +1 -1
- package/dist/scripts/{Bk6B0Pga.chunk.js → C8gLKdt2.chunk.js} +2 -2
- package/dist/scripts/{Bk6B0Pga.chunk.js.map → C8gLKdt2.chunk.js.map} +1 -1
- package/dist/scripts/{BNdvuAqI.chunk.js → CA1kXo4c.chunk.js} +2 -2
- package/dist/scripts/{BNdvuAqI.chunk.js.map → CA1kXo4c.chunk.js.map} +1 -1
- package/dist/scripts/{2RtgJciS.chunk.js → CBpplRfy.chunk.js} +2 -2
- package/dist/scripts/{2RtgJciS.chunk.js.map → CBpplRfy.chunk.js.map} +1 -1
- package/dist/scripts/{CwGJynkF.chunk.js → CFHfdzmN.chunk.js} +2 -2
- package/dist/scripts/{CwGJynkF.chunk.js.map → CFHfdzmN.chunk.js.map} +1 -1
- package/dist/scripts/{DtIAQEde.chunk.js → CI1-zjtc.chunk.js} +2 -2
- package/dist/scripts/{DtIAQEde.chunk.js.map → CI1-zjtc.chunk.js.map} +1 -1
- package/dist/scripts/{CaXurNVJ.chunk.js → CLeOFM0_.chunk.js} +2 -2
- package/dist/scripts/{CaXurNVJ.chunk.js.map → CLeOFM0_.chunk.js.map} +1 -1
- package/dist/scripts/{CfG52a2J.chunk.js → CLzmMPfE.chunk.js} +2 -2
- package/dist/scripts/{CfG52a2J.chunk.js.map → CLzmMPfE.chunk.js.map} +1 -1
- package/dist/scripts/{BeYBU_45.chunk.js → CMVCOZiH.chunk.js} +2 -2
- package/dist/scripts/{BeYBU_45.chunk.js.map → CMVCOZiH.chunk.js.map} +1 -1
- package/dist/scripts/{-IJi77po.chunk.js → CRiSdltq.chunk.js} +2 -2
- package/dist/scripts/{-IJi77po.chunk.js.map → CRiSdltq.chunk.js.map} +1 -1
- package/dist/scripts/{C6Lm5-pG.chunk.js → CUcESh7x.chunk.js} +2 -2
- package/dist/scripts/{C6Lm5-pG.chunk.js.map → CUcESh7x.chunk.js.map} +1 -1
- package/dist/scripts/{BVtgkXbb.chunk.js → CWEHmLar.chunk.js} +2 -2
- package/dist/scripts/{BVtgkXbb.chunk.js.map → CWEHmLar.chunk.js.map} +1 -1
- package/dist/scripts/{BknFbNFb.chunk.js → CYnIJ9Yj.chunk.js} +2 -2
- package/dist/scripts/{BknFbNFb.chunk.js.map → CYnIJ9Yj.chunk.js.map} +1 -1
- package/dist/scripts/{BM1pKS1x.chunk.js → CeNnu9Uy.chunk.js} +2 -2
- package/dist/scripts/{BM1pKS1x.chunk.js.map → CeNnu9Uy.chunk.js.map} +1 -1
- package/dist/scripts/{C_N8YDNG.chunk.js → CeWNxrfN.chunk.js} +2 -2
- package/dist/scripts/{C_N8YDNG.chunk.js.map → CeWNxrfN.chunk.js.map} +1 -1
- package/dist/scripts/{CIC6c94H.chunk.js → Cf7gumlK.chunk.js} +2 -2
- package/dist/scripts/{CIC6c94H.chunk.js.map → Cf7gumlK.chunk.js.map} +1 -1
- package/dist/scripts/{BeUtct-n.chunk.js → CgYXk-MC.chunk.js} +2 -2
- package/dist/scripts/{BeUtct-n.chunk.js.map → CgYXk-MC.chunk.js.map} +1 -1
- package/dist/scripts/{CZWyo3vU.chunk.js → ChQd3LFA.chunk.js} +2 -2
- package/dist/scripts/{CZWyo3vU.chunk.js.map → ChQd3LFA.chunk.js.map} +1 -1
- package/dist/scripts/{Cvh5d6g-.chunk.js → CidOInHw.chunk.js} +2 -2
- package/dist/scripts/{Cvh5d6g-.chunk.js.map → CidOInHw.chunk.js.map} +1 -1
- package/dist/scripts/{KD76wo2O.chunk.js → CjZVCWS_.chunk.js} +2 -2
- package/dist/scripts/{KD76wo2O.chunk.js.map → CjZVCWS_.chunk.js.map} +1 -1
- package/dist/scripts/{DllPblbJ.chunk.js → CmFgCSCA.chunk.js} +2 -2
- package/dist/scripts/{DllPblbJ.chunk.js.map → CmFgCSCA.chunk.js.map} +1 -1
- package/dist/scripts/{D2hwqbbK.chunk.js → CzgpQODl.chunk.js} +2 -2
- package/dist/scripts/{D2hwqbbK.chunk.js.map → CzgpQODl.chunk.js.map} +1 -1
- package/dist/scripts/{BZDBKDNB.chunk.js → D1uOyG2F.chunk.js} +2 -2
- package/dist/scripts/{BZDBKDNB.chunk.js.map → D1uOyG2F.chunk.js.map} +1 -1
- package/dist/scripts/D2Qdtc-z.chunk.js +2 -0
- package/dist/scripts/{Nx5VrW1O.chunk.js.map → D2Qdtc-z.chunk.js.map} +1 -1
- package/dist/scripts/{CvC-3rY8.chunk.js → D6Y1z38S.chunk.js} +2 -2
- package/dist/scripts/{CvC-3rY8.chunk.js.map → D6Y1z38S.chunk.js.map} +1 -1
- package/dist/scripts/{DVGSZWvj.chunk.js → DAYsHx3K.chunk.js} +2 -2
- package/dist/scripts/{DVGSZWvj.chunk.js.map → DAYsHx3K.chunk.js.map} +1 -1
- package/dist/scripts/DAlXOlyw.chunk.js +2 -0
- package/dist/scripts/{PTNYkU4e.chunk.js.map → DAlXOlyw.chunk.js.map} +1 -1
- package/dist/scripts/{C6jzSlOK.chunk.js → DBXgmgfs.chunk.js} +2 -2
- package/dist/scripts/{C6jzSlOK.chunk.js.map → DBXgmgfs.chunk.js.map} +1 -1
- package/dist/scripts/{DNv0G8YQ.chunk.js → DFV1HGGE.chunk.js} +2 -2
- package/dist/scripts/{DNv0G8YQ.chunk.js.map → DFV1HGGE.chunk.js.map} +1 -1
- package/dist/scripts/{BaII1chU.chunk.js → DKgBjNhk.chunk.js} +2 -2
- package/dist/scripts/{BaII1chU.chunk.js.map → DKgBjNhk.chunk.js.map} +1 -1
- package/dist/scripts/{6nLsdj_T.chunk.js → DNamqvBL.chunk.js} +2 -2
- package/dist/scripts/{6nLsdj_T.chunk.js.map → DNamqvBL.chunk.js.map} +1 -1
- package/dist/scripts/{BoCJPJD9.chunk.js → DS9FoZYs.chunk.js} +2 -2
- package/dist/scripts/{BoCJPJD9.chunk.js.map → DS9FoZYs.chunk.js.map} +1 -1
- package/dist/scripts/{BARMSVib.chunk.js → DU7fsRWl.chunk.js} +2 -2
- package/dist/scripts/{BARMSVib.chunk.js.map → DU7fsRWl.chunk.js.map} +1 -1
- package/dist/scripts/{yAkKLflS.chunk.js → DXukh64m.chunk.js} +2 -2
- package/dist/scripts/{yAkKLflS.chunk.js.map → DXukh64m.chunk.js.map} +1 -1
- package/dist/scripts/{QBPzgKy4.chunk.js → D_UfRtxO.chunk.js} +2 -2
- package/dist/scripts/{QBPzgKy4.chunk.js.map → D_UfRtxO.chunk.js.map} +1 -1
- package/dist/scripts/{DPzpHWBx.chunk.js → Da4lOHud.chunk.js} +2 -2
- package/dist/scripts/{DPzpHWBx.chunk.js.map → Da4lOHud.chunk.js.map} +1 -1
- package/dist/scripts/{RFnuS4NM.chunk.js → DbQAirTe.chunk.js} +2 -2
- package/dist/scripts/{RFnuS4NM.chunk.js.map → DbQAirTe.chunk.js.map} +1 -1
- package/dist/scripts/{wrxKHqa_.chunk.js → DbjqMrGm.chunk.js} +2 -2
- package/dist/scripts/{wrxKHqa_.chunk.js.map → DbjqMrGm.chunk.js.map} +1 -1
- package/dist/scripts/{DW6Dbl7f.chunk.js → DiYMwIEW.chunk.js} +2 -2
- package/dist/scripts/{DW6Dbl7f.chunk.js.map → DiYMwIEW.chunk.js.map} +1 -1
- package/dist/scripts/{ZQ2N8RIM.chunk.js → DjZMDa7F.chunk.js} +2 -2
- package/dist/scripts/{ZQ2N8RIM.chunk.js.map → DjZMDa7F.chunk.js.map} +1 -1
- package/dist/scripts/{D0g725Qb.chunk.js → DmsvtP5R.chunk.js} +2 -2
- package/dist/scripts/{D0g725Qb.chunk.js.map → DmsvtP5R.chunk.js.map} +1 -1
- package/dist/scripts/{BVFJa4eN.chunk.js → Du1vfrL1.chunk.js} +2 -2
- package/dist/scripts/{BVFJa4eN.chunk.js.map → Du1vfrL1.chunk.js.map} +1 -1
- package/dist/scripts/{BIM7E_uq.chunk.js → HgZI7ZJw.chunk.js} +2 -2
- package/dist/scripts/{BIM7E_uq.chunk.js.map → HgZI7ZJw.chunk.js.map} +1 -1
- package/dist/scripts/{De6u_51f.chunk.js → Idf_wk4z.chunk.js} +2 -2
- package/dist/scripts/{De6u_51f.chunk.js.map → Idf_wk4z.chunk.js.map} +1 -1
- package/dist/scripts/{BzWiry9B.chunk.js → IoMSsrGB.chunk.js} +2 -2
- package/dist/scripts/{BzWiry9B.chunk.js.map → IoMSsrGB.chunk.js.map} +1 -1
- package/dist/scripts/{BOgut51m.chunk.js → JVtTNBu8.chunk.js} +2 -2
- package/dist/scripts/{BOgut51m.chunk.js.map → JVtTNBu8.chunk.js.map} +1 -1
- package/dist/scripts/{B6MzAKwF.chunk.js → Jh9dsBNz.chunk.js} +2 -2
- package/dist/scripts/{B6MzAKwF.chunk.js.map → Jh9dsBNz.chunk.js.map} +1 -1
- package/dist/scripts/{C3DMM71j.chunk.js → L4fynSOH.chunk.js} +2 -2
- package/dist/scripts/{C3DMM71j.chunk.js.map → L4fynSOH.chunk.js.map} +1 -1
- package/dist/scripts/{DcNBkQk2.chunk.js → L8c9vJSE.chunk.js} +2 -2
- package/dist/scripts/{DcNBkQk2.chunk.js.map → L8c9vJSE.chunk.js.map} +1 -1
- package/dist/scripts/{RkGsyr47.chunk.js → LSG3wJaJ.chunk.js} +2 -2
- package/dist/scripts/{RkGsyr47.chunk.js.map → LSG3wJaJ.chunk.js.map} +1 -1
- package/dist/scripts/{BBGrb01P.chunk.js → Nb05HQ70.chunk.js} +2 -2
- package/dist/scripts/{BBGrb01P.chunk.js.map → Nb05HQ70.chunk.js.map} +1 -1
- package/dist/scripts/{D7ex9pZI.chunk.js → NnLpFayg.chunk.js} +2 -2
- package/dist/scripts/{D7ex9pZI.chunk.js.map → NnLpFayg.chunk.js.map} +1 -1
- package/dist/scripts/{BObzbMyv.chunk.js → TBgyZjiu.chunk.js} +2 -2
- package/dist/scripts/{BObzbMyv.chunk.js.map → TBgyZjiu.chunk.js.map} +1 -1
- package/dist/scripts/UAhbVZA6.chunk.js +2 -0
- package/dist/scripts/{Cusf4uQr.chunk.js.map → UAhbVZA6.chunk.js.map} +1 -1
- package/dist/scripts/{EP_6ctCd.chunk.js → UPyh9hOq.chunk.js} +2 -2
- package/dist/scripts/{EP_6ctCd.chunk.js.map → UPyh9hOq.chunk.js.map} +1 -1
- package/dist/scripts/{5ulU64GY.chunk.js → aUcmweZz.chunk.js} +2 -2
- package/dist/scripts/{5ulU64GY.chunk.js.map → aUcmweZz.chunk.js.map} +1 -1
- package/dist/scripts/{BIqgfuNp.chunk.js → afx3pyqK.chunk.js} +2 -2
- package/dist/scripts/{BIqgfuNp.chunk.js.map → afx3pyqK.chunk.js.map} +1 -1
- package/dist/scripts/{app-BeXfSt3Z.js → app-DQUfzK7M.js} +3 -3
- package/dist/scripts/{app-BeXfSt3Z.js.map → app-DQUfzK7M.js.map} +1 -1
- package/dist/scripts/{DGZafYHS.chunk.js → ebPScdjM.chunk.js} +2 -2
- package/dist/scripts/{DGZafYHS.chunk.js.map → ebPScdjM.chunk.js.map} +1 -1
- package/dist/scripts/{kIpQ7ATK.chunk.js → exCRX_FQ.chunk.js} +2 -2
- package/dist/scripts/{kIpQ7ATK.chunk.js.map → exCRX_FQ.chunk.js.map} +1 -1
- package/dist/scripts/{B_RnEy2g.chunk.js → g-ukO43h.chunk.js} +2 -2
- package/dist/scripts/{B_RnEy2g.chunk.js.map → g-ukO43h.chunk.js.map} +1 -1
- package/dist/scripts/{DSjj9Urk.chunk.js → rV0ZG7Fa.chunk.js} +2 -2
- package/dist/scripts/{DSjj9Urk.chunk.js.map → rV0ZG7Fa.chunk.js.map} +1 -1
- package/dist/scripts/{CuymzQcn.chunk.js → rY6Lh6jX.chunk.js} +2 -2
- package/dist/scripts/{CuymzQcn.chunk.js.map → rY6Lh6jX.chunk.js.map} +1 -1
- package/dist/scripts/{DyEyo6rX.chunk.js → uJkDFf2N.chunk.js} +2 -2
- package/dist/scripts/{DyEyo6rX.chunk.js.map → uJkDFf2N.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/BMOkpx9W.chunk.js +0 -2
- package/dist/scripts/Cusf4uQr.chunk.js +0 -2
- package/dist/scripts/D1kNrE2G.chunk.js +0 -2
- package/dist/scripts/Nx5VrW1O.chunk.js +0 -2
- package/dist/scripts/PTNYkU4e.chunk.js +0 -2
- package/dist/scripts/RR_Npo-u.chunk.js +0 -2
- package/dist/scripts/kjcQ0DHK.chunk.js +0 -2
|
@@ -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-DQUfzK7M.js";import{T as j}from"./L8c9vJSE.chunk.js";import{T as r}from"./CeNnu9Uy.chunk.js";import"./BB_Ud-Dl.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=93Mytmux.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"93Mytmux.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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a3 as o,j as e,P as m,L as d,B as a,aq as x,a as h,b as j,x as c}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a3 as o,j as e,P as m,L as d,B as a,aq as x,a as h,b as j,x as c}from"./app-DQUfzK7M.js";import{T as l,a as g}from"./CeNnu9Uy.chunk.js";import{t as r}from"./BB_Ud-Dl.chunk.js";const u="_infoAlert_r916y_1",N={infoAlert:u},s="tv.broadcastContent",p=d.encloseNamespace(s);function A(t){const i=o(l.region(t.region)),n=o(l.dateRange(t.region));return e.jsxs(m,{title:p("title"),closePopup:t.closePopup,children:[e.jsx("div",{className:`${N.infoAlert} rounded w-100 p-2 mb-4`,children:e.jsxs("p",{className:"d-inline fw-semibold mb-0 me-2",children:[e.jsx(a,{namespace:s,phrase:"programsAvailable"}),n.data&&g.getFormattedDateRange(r(n.data.startDate,i.data.timeZone),r(n.data.endDate,i.data.timeZone))]})}),e.jsx("h2",{className:"h5",children:e.jsx(a,{namespace:s,phrase:"subTitle"})}),e.jsx("p",{className:"mb-2",children:e.jsx(a,{namespace:s,phrase:"description"})}),e.jsxs("div",{className:"mb-2",children:[e.jsx("p",{className:"d-inline",children:e.jsx(a,{namespace:s,phrase:"missedProgram"})}),e.jsx(x,{appLink:{application:j.EXCHANGE,action:h.Exchange.INDEX},className:"text-info",onClick:t.closePopup,children:e.jsx("span",{children:e.jsx(a,{namespace:s,phrase:"exchangeArchive"})})}),"."]}),e.jsx("p",{className:"mb-3",children:e.jsx(a,{namespace:s,phrase:"emailContent"})}),e.jsx(c,{children:e.jsx(c.Cancel,{text:p("close"),onClick:t.closePopup,variant:"link"})})]})}export{A as TvBroadcastContentView};
|
|
2
|
+
//# sourceMappingURL=9YLXxYYH.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"9YLXxYYH.chunk.js","sources":["../../src/apps/tv/views/tv-broadcast-content/TvBroadcastContentView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nimport styles from './tv-broadcast-content.module.scss';\n\nconst namespace = 'tv.broadcastContent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvBroadcastContentViewProps extends PopupViewProps {\n region: string;\n}\n\nexport function TvBroadcastContentView(props: TvBroadcastContentViewProps) {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n \n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n >\n <div className={`${styles.infoAlert} rounded w-100 p-2 mb-4`}>\n <p className='d-inline fw-semibold mb-0 me-2'>\n <Text namespace={namespace} phrase='programsAvailable' />\n {dateRange.data &&\n TvUtils.getFormattedDateRange(\n toLocalTime(dateRange.data.startDate, region.data.timeZone),\n toLocalTime(dateRange.data.endDate, region.data.timeZone)\n )\n }\n </p>\n </div>\n\n <h2 className='h5'><Text namespace={namespace} phrase='subTitle' /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase='description' /></p>\n\n <div className='mb-2'>\n <p className='d-inline'><Text namespace={namespace} phrase='missedProgram' /></p>\n <AppLink\n appLink={{ application: AppChannels.EXCHANGE, action: Actions.Exchange.INDEX }}\n className='text-info'\n onClick={props.closePopup}\n >\n <span><Text namespace={namespace} phrase='exchangeArchive' /></span>\n </AppLink>.\n </div>\n <p className='mb-3'><Text namespace={namespace} phrase='emailContent' /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={props.closePopup}\n variant='link'\n />\n </PopupButtons>\n </Popup>\n );\n}\n"],"names":["namespace","getPhrase","LanguageService","TvBroadcastContentView","props","region","Flight.useBasicFetch","TvRequests","dateRange","jsxs","Popup","jsx","styles","Text","TvUtils","toLocalTime","AppLink","AppChannels","Actions","PopupButtons"],"mappings":"oOAqBMA,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAMrD,SAASG,EAAuBC,EAAoC,CACzE,MAAMC,EAASC,EAA+BC,EAAW,OAAOH,EAAM,MAAM,CAAC,EACvEI,EAAYF,EAAkCC,EAAW,UAAUH,EAAM,MAAM,CAAC,EAEtF,OACEK,EAAAA,KAACC,EAAA,CACC,MAAOT,EAAU,OAAO,EACxB,WAAYG,EAAM,WAElB,SAAA,CAAAO,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGC,EAAO,SAAS,0BACjC,SAAAH,EAAAA,KAAC,IAAA,CAAE,UAAU,iCACX,SAAA,CAAAE,EAAAA,IAACE,EAAA,CAAK,UAAAb,EAAsB,OAAO,mBAAA,CAAoB,EACtDQ,EAAU,MACTM,EAAQ,sBACNC,EAAYP,EAAU,KAAK,UAAWH,EAAO,KAAK,QAAQ,EAC1DU,EAAYP,EAAU,KAAK,QAASH,EAAO,KAAK,QAAQ,CAAA,CAC1D,CAAA,CAEJ,CAAA,CACF,EAEAM,EAAAA,IAAC,MAAG,UAAU,KAAK,eAACE,EAAA,CAAK,UAAAb,EAAsB,OAAO,UAAA,CAAW,CAAA,CAAE,EACnEW,EAAAA,IAAC,KAAE,UAAU,OAAO,eAACE,EAAA,CAAK,UAAAb,EAAsB,OAAO,aAAA,CAAc,CAAA,CAAE,EAEvES,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAE,EAAAA,IAAC,IAAA,CAAE,UAAU,WAAW,SAAAA,EAAAA,IAACE,GAAK,UAAAb,EAAsB,OAAO,gBAAgB,CAAA,CAAE,EAC7EW,EAAAA,IAACK,EAAA,CACC,QAAS,CAAE,YAAaC,EAAY,SAAU,OAAQC,EAAQ,SAAS,KAAA,EACvE,UAAU,YACV,QAASd,EAAM,WAEf,eAAC,OAAA,CAAK,SAAAO,EAAAA,IAACE,GAAK,UAAAb,EAAsB,OAAO,kBAAkB,CAAA,CAAE,CAAA,CAAA,EACrD,GAAA,EACZ,EACAW,EAAAA,IAAC,KAAE,UAAU,OAAO,eAACE,EAAA,CAAK,UAAAb,EAAsB,OAAO,cAAA,CAAe,CAAA,CAAE,QAEvEmB,EAAA,CACC,SAAAR,EAAAA,IAACQ,EAAa,OAAb,CACC,KAAMlB,EAAU,OAAO,EACvB,QAASG,EAAM,WACf,QAAQ,MAAA,CAAA,CACV,CACF,CAAA,CAAA,CAAA,CAGN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as r,G as e}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as r,G as e}from"./app-DQUfzK7M.js";function s(t){return r.jsx("svg",{...t,children:r.jsx("path",{d:"m8 10 8 .014L12 14z",fill:"currentColor"})})}const o="_up_mbyby_1",i="_down_mbyby_4",c="_left_mbyby_7",a="_right_mbyby_10",n={up:o,down:i,left:c,right:a},l=t=>{switch(t){case"up":return n.up;case"down":return n.down;case"right":return n.right;case"left":return n.left}};u.defaultProps={direction:"right"};function u(t){return r.jsx(e,{svg:s,className:`${l(t.direction)} svg-container d-inline-block ${t.className}`})}export{u as C};
|
|
2
|
+
//# sourceMappingURL=B77TOWer.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"B77TOWer.chunk.js","sources":["../../../../libs/shared/src/images/svg/arrows/CaretSvg.tsx","../../../../libs/shared/src/components/caret/Caret.tsx"],"sourcesContent":["import React from 'react';\n\nexport function CaretSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path d='m8 10 8 .014L12 14z' fill='currentColor' />\n </svg>\n );\n}\n","import React from 'react';\n\nimport { CaretSvg } from 'libs/shared/images/svg/arrows/CaretSvg';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './caret.module.scss';\n\ntype CaretDirection = 'left' | 'right' | 'up' | 'down';\n\n\nconst getDirectionClass = (direction: CaretDirection) => {\n switch (direction) {\n case 'up':\n return styles.up;\n case 'down':\n return styles.down;\n case 'right':\n return styles.right;\n case 'left':\n return styles.left;\n }\n};\n\ninterface CaretProps {\n direction?: CaretDirection;\n className?: string;\n}\n\nCaret.defaultProps = {\n direction: 'right'\n};\n\nexport function Caret(props: CaretProps): JSX.Element {\n return (\n <SvgContainer\n svg={CaretSvg}\n className={`${getDirectionClass(props.direction)} svg-container d-inline-block ${props.className}`}\n />\n );\n}"],"names":["CaretSvg","props","jsx","getDirectionClass","direction","styles","Caret","SvgContainer"],"mappings":"6CAEO,SAASA,EAASC,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,QAAK,EAAE,sBAAsB,KAAK,cAAA,CAAe,CAAA,CACpD,CAEJ,8GCGMC,EAAqBC,GAA8B,CACvD,OAAQA,EAAA,CACN,IAAK,KACH,OAAOC,EAAO,GAChB,IAAK,OACH,OAAOA,EAAO,KAChB,IAAK,QACH,OAAOA,EAAO,MAChB,IAAK,OACH,OAAOA,EAAO,IAAA,CAEpB,EAOAC,EAAM,aAAe,CACnB,UAAW,OACb,EAEO,SAASA,EAAML,EAAgC,CACpD,OACEC,EAAAA,IAACK,EAAA,CACC,IAAKP,EACL,UAAW,GAAGG,EAAkBF,EAAM,SAAS,CAAC,iCAAiCA,EAAM,SAAS,EAAA,CAAA,CAGtG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{aB as t}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{aB as t}from"./app-DQUfzK7M.js";const i={"AUS Eastern Standard Time":"Australia/Sydney","W. Australia Standard Time":"Australia/Perth","E. Australia Standard Time":"Australia/Brisbane","Cen. Australia Standard Time":"Australia/Adelaide","New Zealand Standard Time":"Pacific/Auckland","GMT Standard Time":"Europe/London"};function d(a,e){return t.getUtcTimeByTimezone(a,"YYYY-MM-DDTHH:mm:ss",i[e])}export{d as t};
|
|
2
|
+
//# sourceMappingURL=BB_Ud-Dl.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BB_Ud-Dl.chunk.js","sources":["../../src/apps/tv/utils/toLocalTime.ts"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\n/**\n * A fully fleshed out Windows to IANA mapping library\n * can be absolutely huge, so instead we're just taking the \n * windows timezones that we know our system can have\n * and are mapping them ourselves here.\n */\nconst WINDOWS_TO_IANA: HashObject = {\n 'AUS Eastern Standard Time': 'Australia/Sydney',\n 'W. Australia Standard Time': 'Australia/Perth',\n 'E. Australia Standard Time': 'Australia/Brisbane',\n 'Cen. Australia Standard Time': 'Australia/Adelaide',\n 'New Zealand Standard Time': 'Pacific/Auckland',\n 'GMT Standard Time': 'Europe/London'\n};\n\n/**\n * When we replace moment with dayjs, we're going to have to import the timezone plugin for dayjs\n * https://day.js.org/docs/en/plugin/timezone\n * in order to support time conversion here - Sha\n */\nexport function toLocalTime(time: string | Date, timezone: string): string {\n /**\n * If for whatever reason we hit a timezone that we don't have a mapping for,\n * just use UTC. This is less than ideal, but any mapping library for mapping\n * windows to IANA times is about 1mb in size - Sha\n */\n const localTime = DateHelper.getUtcTimeByTimezone(time, 'YYYY-MM-DDTHH:mm:ss', WINDOWS_TO_IANA[timezone]);\n \n return localTime;\n}"],"names":["WINDOWS_TO_IANA","toLocalTime","time","timezone","DateHelper"],"mappings":"uCASA,MAAMA,EAA8B,CAClC,4BAA6B,mBAC7B,6BAA8B,kBAC9B,6BAA8B,qBAC9B,+BAAgC,qBAChC,4BAA6B,mBAC7B,oBAAqB,eACvB,EAOO,SAASC,EAAYC,EAAqBC,EAA0B,CAQzE,OAFkBC,EAAW,qBAAqBF,EAAM,sBAAuBF,EAAgBG,CAAQ,CAAC,CAG1G"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as s,aB as h,L as d}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as s,aB as h,L as d}from"./app-DQUfzK7M.js";const p="_minHeight_kz0hs_1",v="_restrictionBadgeCustom_kz0hs_4",C="_restrictionBadgeUser_kz0hs_8",R="_streamable_kz0hs_12",g={minHeight:p,restrictionBadgeCustom:v,restrictionBadgeUser:C,streamable:R};var r=(e=>(e.Custom="custom",e.User="year_group",e))(r||{});function m(e){return s.jsx("svg",{...e,children:s.jsx("path",{d:"M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98",fill:"currentColor"})})}function x(e){return s.jsxs("svg",{...e,children:[s.jsx("defs",{children:s.jsx("path",{id:"a",d:"M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457",fill:"currentColor"})}),s.jsxs("g",{fill:"none",fillRule:"evenodd",children:[s.jsx("mask",{id:"b",fill:"#fff",children:s.jsx("use",{href:"#a"})}),s.jsx("use",{fill:"#000",fillRule:"nonzero",href:"#a"}),s.jsx("g",{fill:"#383838",mask:"url(#b)",children:s.jsx("path",{d:"M0 0h24v24H0z",fill:"currentColor"})})]})]})}const y="shared.shared-utils",c=d.encloseNamespace(y),j={[r.Custom]:g.restrictionBadgeCustom,[r.User]:g.restrictionBadgeUser},_={[r.Custom]:x,[r.User]:m},B={[r.Custom]:"restrictionCustom",[r.User]:"restrictionYearGroup"},f={[r.Custom]:200,[r.User]:100},o={mapRestrictionToClass(e){var n;if(!((n=e==null?void 0:e.value)!=null&&n.length))return"";const t=o.getWeightedRestriction(e.value);return j[t.type]},mapRestrictionToSvg(e){var n;if(!((n=e==null?void 0:e.value)!=null&&n.length))return m;const t=o.getWeightedRestriction(e.value);return _[t.type]},mapRestrictionToText(e,t){var l;if(!((l=e==null?void 0:e.value)!=null&&l.length)||!(t!=null&&t.length))return"";const n=o.getWeightedRestriction(e.value),a=t.find(i=>i.value===n.yearGroup),u=B[n.type];if(n.type===r.User)return n.yearGroup===null?c("restrictionStaff"):a?t.length===1?c("restrictionStudents"):c(u,{yearGroup:a.name}):"";if(n.type===r.Custom){const i=o.getRestrictionDuration(n);return i?c(u,{duration:i,smartCount:i}):c("restrictionCustomLessThanDay",{duration:i,smartCount:1})}return""},getWeightedRestriction(e,t="highest"){if(e!=null&&e.length)return e.length===1?e[0]:e.reduce((n,a)=>{const u=f[n.type],l=f[a.type];return t==="highest"&&u>l||t==="lowest"&&u<l?n:a})},getRestrictionByType(e,t){if(!o.hasRestrictions(e))return null;const n=Array.isArray(t)?t:[t],a=e.value.filter(u=>n.includes(u.type));return o.getWeightedRestriction(a)},getRestrictionDuration(e){if(e.type!==r.Custom||!e.expiresOn)return;const t=h.convertUTCToLocal(e.expiresOn);if(t)return h.diffBetween(t,new Date,"day")},hasCustomRestriction(e){return!!o.getRestrictionByType(e,[r.Custom])},hasRestrictions(e){var t;return!!((t=e==null?void 0:e.value)!=null&&t.length)}};export{m as L,o as R,r as a,g as s};
|
|
2
|
+
//# sourceMappingURL=BCGCl500.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"C7s6znQN.chunk.js","sources":["../../../../libs/shared/src/enums/RestrictionType.ts","../../../../libs/shared/src/images/svg/status/LockSvg.tsx","../../../../libs/shared/src/images/svg/status/TimerSvg.tsx","../../../../libs/shared/src/utils/RestrictionHelper.ts"],"sourcesContent":["/**\n * Restriction Types for an object\n */\nexport enum RestrictionType {\n /** Generated for customers who have turned content review on */\n Custom = 'custom',\n\n /** Restriction created by the user */\n User = 'year_group'\n}","import React from 'react';\n\nexport function LockSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function TimerSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457'\n fill='currentColor'\n />\n </defs>\n <g fill='none' fillRule='evenodd'>\n <mask id='b' fill='#fff'>\n <use href='#a' />\n </mask>\n <use fill='#000' fillRule='nonzero' href='#a' />\n <g fill='#383838' mask='url(#b)'>\n <path d='M0 0h24v24H0z' fill='currentColor' />\n </g>\n </g>\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport styles from 'libs/shared/components/badges/badge.module.scss';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ObjectsRestriction, Restrictions, YearGroup } from 'libs/shared/interfaces';\n\nimport { LockSvg } from '../images/svg/status/LockSvg';\nimport { TimerSvg } from '../images/svg/status/TimerSvg';\n\nimport { SvgIcon } from './SvgHelper';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ClassNameMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: styles.restrictionBadgeCustom,\n [RestrictionType.User]: styles.restrictionBadgeUser\n};\n\nconst IconMap: {[key in RestrictionType]: SvgIcon} = {\n [RestrictionType.Custom]: TimerSvg,\n [RestrictionType.User]: LockSvg\n};\n\nconst PhraseMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: 'restrictionCustom',\n [RestrictionType.User]: 'restrictionYearGroup'\n};\n\nconst WeightMap: {[Key in RestrictionType]: number} = {\n [RestrictionType.Custom]: 200,\n [RestrictionType.User]: 100\n};\n\nexport const RestrictionHelper = {\n mapRestrictionToClass(restrictions: Restrictions): string {\n if (!restrictions?.value?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return ClassNameMap[restriction.type];\n },\n\n mapRestrictionToSvg(restrictions: Restrictions): SvgIcon {\n if (!restrictions?.value?.length)\n return LockSvg;\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return IconMap[restriction.type];\n },\n\n mapRestrictionToText(\n restrictions: Restrictions,\n yearGroups: YearGroup[]\n ): string {\n if (!restrictions?.value?.length || !yearGroups?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n const yearGroup = yearGroups.find(y => y.value === restriction.yearGroup);\n\n const phrase = PhraseMap[restriction.type];\n if (restriction.type === RestrictionType.User) {\n if (restriction.yearGroup === null)\n return getPhrase('restrictionStaff');\n\n if (!yearGroup)\n return '';\n\n if (yearGroups.length === 1)\n return getPhrase('restrictionStudents');\n\n return getPhrase(phrase, { yearGroup: yearGroup.name });\n }\n\n if (restriction.type === RestrictionType.Custom) {\n const duration = RestrictionHelper.getRestrictionDuration(restriction);\n return duration ?\n getPhrase(phrase, { duration, smartCount: duration }) :\n getPhrase('restrictionCustomLessThanDay', { duration, smartCount: 1 });\n }\n\n return '';\n },\n\n /**\n * A video can have multiple restrictions, in that case we need to display\n * only one restriction. By default we display the restriction with highest\n * weight bias.\n */\n getWeightedRestriction(\n restrictions: ObjectsRestriction[],\n bias: 'highest' | 'lowest' = 'highest'\n ): ObjectsRestriction {\n if (!restrictions?.length) return;\n \n if (restrictions.length === 1) return restrictions[0];\n\n return restrictions.reduce((previous, current) => {\n const previousWeight = WeightMap[previous.type];\n const currentWeight = WeightMap[current.type];\n\n if (bias === 'highest' && previousWeight > currentWeight) return previous;\n if (bias === 'lowest' && previousWeight < currentWeight) return previous;\n\n return current;\n });\n },\n\n getRestrictionByType(\n restrictions: Restrictions,\n type: RestrictionType | RestrictionType[]\n ): ObjectsRestriction {\n if (!RestrictionHelper.hasRestrictions(restrictions))\n return null;\n\n const types = Array.isArray(type) ? type : [type];\n\n const filteredRestrictions = restrictions.value.filter(r => types.includes(r.type));\n return RestrictionHelper.getWeightedRestriction(filteredRestrictions);\n },\n\n getRestrictionDuration(\n restriction: ObjectsRestriction\n ): number {\n if (restriction.type !== RestrictionType.Custom || !restriction.expiresOn) return;\n\n const expiresOn = DateHelper.convertUTCToLocal(restriction.expiresOn);\n if (!expiresOn) return;\n\n return DateHelper.diffBetween(expiresOn, new Date(), 'day');\n },\n\n hasCustomRestriction(\n restrictions: Restrictions\n ): boolean {\n return !!RestrictionHelper.getRestrictionByType(restrictions, [RestrictionType.Custom]);\n },\n\n hasRestrictions(restrictions: Restrictions): boolean {\n return !!restrictions?.value?.length;\n }\n};"],"names":["RestrictionType","LockSvg","props","jsx","TimerSvg","jsxs","namespace","getPhrase","LanguageService","ClassNameMap","styles","IconMap","PhraseMap","WeightMap","RestrictionHelper","restrictions","_a","restriction","yearGroups","yearGroup","y","phrase","duration","bias","previous","current","previousWeight","currentWeight","type","types","filteredRestrictions","r","expiresOn","DateHelper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BCGCl500.chunk.js","sources":["../../../../libs/shared/src/enums/RestrictionType.ts","../../../../libs/shared/src/images/svg/status/LockSvg.tsx","../../../../libs/shared/src/images/svg/status/TimerSvg.tsx","../../../../libs/shared/src/utils/RestrictionHelper.ts"],"sourcesContent":["/**\n * Restriction Types for an object\n */\nexport enum RestrictionType {\n /** Generated for customers who have turned content review on */\n Custom = 'custom',\n\n /** Restriction created by the user */\n User = 'year_group'\n}","import React from 'react';\n\nexport function LockSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function TimerSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457'\n fill='currentColor'\n />\n </defs>\n <g fill='none' fillRule='evenodd'>\n <mask id='b' fill='#fff'>\n <use href='#a' />\n </mask>\n <use fill='#000' fillRule='nonzero' href='#a' />\n <g fill='#383838' mask='url(#b)'>\n <path d='M0 0h24v24H0z' fill='currentColor' />\n </g>\n </g>\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport styles from 'libs/shared/components/badges/badge.module.scss';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ObjectsRestriction, Restrictions, YearGroup } from 'libs/shared/interfaces';\n\nimport { LockSvg } from '../images/svg/status/LockSvg';\nimport { TimerSvg } from '../images/svg/status/TimerSvg';\n\nimport { SvgIcon } from './SvgHelper';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ClassNameMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: styles.restrictionBadgeCustom,\n [RestrictionType.User]: styles.restrictionBadgeUser\n};\n\nconst IconMap: {[key in RestrictionType]: SvgIcon} = {\n [RestrictionType.Custom]: TimerSvg,\n [RestrictionType.User]: LockSvg\n};\n\nconst PhraseMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: 'restrictionCustom',\n [RestrictionType.User]: 'restrictionYearGroup'\n};\n\nconst WeightMap: {[Key in RestrictionType]: number} = {\n [RestrictionType.Custom]: 200,\n [RestrictionType.User]: 100\n};\n\nexport const RestrictionHelper = {\n mapRestrictionToClass(restrictions: Restrictions): string {\n if (!restrictions?.value?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return ClassNameMap[restriction.type];\n },\n\n mapRestrictionToSvg(restrictions: Restrictions): SvgIcon {\n if (!restrictions?.value?.length)\n return LockSvg;\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return IconMap[restriction.type];\n },\n\n mapRestrictionToText(\n restrictions: Restrictions,\n yearGroups: YearGroup[]\n ): string {\n if (!restrictions?.value?.length || !yearGroups?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n const yearGroup = yearGroups.find(y => y.value === restriction.yearGroup);\n\n const phrase = PhraseMap[restriction.type];\n if (restriction.type === RestrictionType.User) {\n if (restriction.yearGroup === null)\n return getPhrase('restrictionStaff');\n\n if (!yearGroup)\n return '';\n\n if (yearGroups.length === 1)\n return getPhrase('restrictionStudents');\n\n return getPhrase(phrase, { yearGroup: yearGroup.name });\n }\n\n if (restriction.type === RestrictionType.Custom) {\n const duration = RestrictionHelper.getRestrictionDuration(restriction);\n return duration ?\n getPhrase(phrase, { duration, smartCount: duration }) :\n getPhrase('restrictionCustomLessThanDay', { duration, smartCount: 1 });\n }\n\n return '';\n },\n\n /**\n * A video can have multiple restrictions, in that case we need to display\n * only one restriction. By default we display the restriction with highest\n * weight bias.\n */\n getWeightedRestriction(\n restrictions: ObjectsRestriction[],\n bias: 'highest' | 'lowest' = 'highest'\n ): ObjectsRestriction {\n if (!restrictions?.length) return;\n \n if (restrictions.length === 1) return restrictions[0];\n\n return restrictions.reduce((previous, current) => {\n const previousWeight = WeightMap[previous.type];\n const currentWeight = WeightMap[current.type];\n\n if (bias === 'highest' && previousWeight > currentWeight) return previous;\n if (bias === 'lowest' && previousWeight < currentWeight) return previous;\n\n return current;\n });\n },\n\n getRestrictionByType(\n restrictions: Restrictions,\n type: RestrictionType | RestrictionType[]\n ): ObjectsRestriction {\n if (!RestrictionHelper.hasRestrictions(restrictions))\n return null;\n\n const types = Array.isArray(type) ? type : [type];\n\n const filteredRestrictions = restrictions.value.filter(r => types.includes(r.type));\n return RestrictionHelper.getWeightedRestriction(filteredRestrictions);\n },\n\n getRestrictionDuration(\n restriction: ObjectsRestriction\n ): number {\n if (restriction.type !== RestrictionType.Custom || !restriction.expiresOn) return;\n\n const expiresOn = DateHelper.convertUTCToLocal(restriction.expiresOn);\n if (!expiresOn) return;\n\n return DateHelper.diffBetween(expiresOn, new Date(), 'day');\n },\n\n hasCustomRestriction(\n restrictions: Restrictions\n ): boolean {\n return !!RestrictionHelper.getRestrictionByType(restrictions, [RestrictionType.Custom]);\n },\n\n hasRestrictions(restrictions: Restrictions): boolean {\n return !!restrictions?.value?.length;\n }\n};"],"names":["RestrictionType","LockSvg","props","jsx","TimerSvg","jsxs","namespace","getPhrase","LanguageService","ClassNameMap","styles","IconMap","PhraseMap","WeightMap","RestrictionHelper","restrictions","_a","restriction","yearGroups","yearGroup","y","phrase","duration","bias","previous","current","previousWeight","currentWeight","type","types","filteredRestrictions","r","expiresOn","DateHelper"],"mappings":"8PAGO,IAAKA,GAAAA,IAEVA,EAAA,OAAS,SAGTA,EAAA,KAAO,aALGA,IAAAA,GAAA,CAAA,CAAA,ECDL,SAASC,EAAQC,EAAsC,CAC5D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,mjBACF,KAAK,cAAA,CAAA,EAET,CAEJ,CCTO,SAASC,EAASF,EAAsC,CAC7D,OACEG,EAAAA,KAAC,MAAA,CAAK,GAAGH,EACP,SAAA,CAAAC,MAAC,OAAA,CACC,SAAAA,EAAAA,IAAC,OAAA,CACC,GAAG,IACH,EAAE,oPACF,KAAK,cAAA,CAAA,EAET,EACAE,EAAAA,KAAC,IAAA,CAAE,KAAK,OAAO,SAAS,UACtB,SAAA,CAAAF,EAAAA,IAAC,OAAA,CAAK,GAAG,IAAI,KAAK,OAChB,SAAAA,EAAAA,IAAC,MAAA,CAAI,KAAK,IAAA,CAAK,CAAA,CACjB,QACC,MAAA,CAAI,KAAK,OAAO,SAAS,UAAU,KAAK,KAAK,EAC9CA,EAAAA,IAAC,IAAA,CAAE,KAAK,UAAU,KAAK,UACrB,SAAAA,EAAAA,IAAC,OAAA,CAAK,EAAE,gBAAgB,KAAK,cAAA,CAAe,CAAA,CAC9C,CAAA,CAAA,CACF,CAAA,EACF,CAEJ,CCXA,MAAMG,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAEtDG,EAAmD,CACvD,CAACT,EAAgB,MAAM,EAAGU,EAAO,uBACjC,CAACV,EAAgB,IAAI,EAAGU,EAAO,oBACjC,EAEMC,EAA+C,CACnD,CAACX,EAAgB,MAAM,EAAGI,EAC1B,CAACJ,EAAgB,IAAI,EAAGC,CAC1B,EAEMW,EAAgD,CACpD,CAACZ,EAAgB,MAAM,EAAG,oBAC1B,CAACA,EAAgB,IAAI,EAAG,sBAC1B,EAEMa,EAAgD,CACpD,CAACb,EAAgB,MAAM,EAAG,IAC1B,CAACA,EAAgB,IAAI,EAAG,GAC1B,EAEac,EAAoB,CAC/B,sBAAsBC,EAAoC,OACxD,GAAI,GAACC,EAAAD,GAAA,YAAAA,EAAc,QAAd,MAAAC,EAAqB,QACxB,MAAO,GAET,MAAMC,EAAcH,EAAkB,uBAAuBC,EAAa,KAAK,EAC/E,OAAON,EAAaQ,EAAY,IAAI,CACtC,EAEA,oBAAoBF,EAAqC,OACvD,GAAI,GAACC,EAAAD,GAAA,YAAAA,EAAc,QAAd,MAAAC,EAAqB,QACxB,OAAOf,EAET,MAAMgB,EAAcH,EAAkB,uBAAuBC,EAAa,KAAK,EAC/E,OAAOJ,EAAQM,EAAY,IAAI,CACjC,EAEA,qBACEF,EACAG,EACQ,OACR,GAAI,GAACF,EAAAD,GAAA,YAAAA,EAAc,QAAd,MAAAC,EAAqB,SAAU,EAACE,GAAA,MAAAA,EAAY,QAC/C,MAAO,GAET,MAAMD,EAAcH,EAAkB,uBAAuBC,EAAa,KAAK,EACzEI,EAAYD,EAAW,QAAUE,EAAE,QAAUH,EAAY,SAAS,EAElEI,EAAST,EAAUK,EAAY,IAAI,EACzC,GAAIA,EAAY,OAASjB,EAAgB,KACvC,OAAIiB,EAAY,YAAc,KACrBV,EAAU,kBAAkB,EAEhCY,EAGDD,EAAW,SAAW,EACjBX,EAAU,qBAAqB,EAEjCA,EAAUc,EAAQ,CAAE,UAAWF,EAAU,KAAM,EAL7C,GAQX,GAAIF,EAAY,OAASjB,EAAgB,OAAQ,CAC/C,MAAMsB,EAAWR,EAAkB,uBAAuBG,CAAW,EACrE,OAAOK,EACLf,EAAUc,EAAQ,CAAE,SAAAC,EAAU,WAAYA,CAAA,CAAU,EACpDf,EAAU,+BAAgC,CAAE,SAAAe,EAAU,WAAY,EAAG,CACzE,CAEA,MAAO,EACT,EAOA,uBACEP,EACAQ,EAA6B,UACT,CACpB,GAAKR,GAAA,MAAAA,EAAc,OAEnB,OAAIA,EAAa,SAAW,EAAUA,EAAa,CAAC,EAE7CA,EAAa,OAAO,CAACS,EAAUC,IAAY,CAChD,MAAMC,EAAiBb,EAAUW,EAAS,IAAI,EACxCG,EAAgBd,EAAUY,EAAQ,IAAI,EAG5C,OADIF,IAAS,WAAaG,EAAiBC,GACvCJ,IAAS,UAAYG,EAAiBC,EAAsBH,EAEzDC,CACT,CAAC,CACH,EAEA,qBACEV,EACAa,EACoB,CACpB,GAAI,CAACd,EAAkB,gBAAgBC,CAAY,EACjD,OAAO,KAET,MAAMc,EAAQ,MAAM,QAAQD,CAAI,EAAIA,EAAO,CAACA,CAAI,EAE1CE,EAAuBf,EAAa,MAAM,UAAYc,EAAM,SAASE,EAAE,IAAI,CAAC,EAClF,OAAOjB,EAAkB,uBAAuBgB,CAAoB,CACtE,EAEA,uBACEb,EACQ,CACR,GAAIA,EAAY,OAASjB,EAAgB,QAAU,CAACiB,EAAY,UAAW,OAE3E,MAAMe,EAAYC,EAAW,kBAAkBhB,EAAY,SAAS,EACpE,GAAKe,EAEL,OAAOC,EAAW,YAAYD,EAAW,IAAI,KAAQ,KAAK,CAC5D,EAEA,qBACEjB,EACS,CACT,MAAO,CAAC,CAACD,EAAkB,qBAAqBC,EAAc,CAACf,EAAgB,MAAM,CAAC,CACxF,EAEA,gBAAgBe,EAAqC,OACnD,MAAO,CAAC,GAACC,EAAAD,GAAA,YAAAA,EAAc,QAAd,MAAAC,EAAqB,OAChC,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{R as o,j as e,G as c,A as i,a as h,b as p}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{R as o,j as e,G as c,A as i,a as h,b as p}from"./app-DQUfzK7M.js";import{S as l}from"./DS9FoZYs.chunk.js";const u="_searchBar_w17nz_1",m={searchBar:u};function x(s){const[r,t]=o.useState(s.query??"");function n(a){a.preventDefault(),r&&i.trigger({application:p.EXCHANGE,action:h.Exchange.SEARCH,params:{query:r}})}return e.jsx("form",{onSubmit:n,children:e.jsxs("div",{className:`${m.searchBar} d-flex border border-dark rounded align-items-center mb-3`,children:[e.jsx(c,{svg:l}),e.jsx("input",{type:"text",className:"form-control h-100 w-100 py-0 border-0 shadow-none",placeholder:"Search for resources in the Exchange Archive",value:r,onChange:a=>t(a.target.value),autoComplete:"off"})]})})}export{x as E};
|
|
2
|
+
//# sourceMappingURL=BEonThYO.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BEonThYO.chunk.js","sources":["../../src/apps/exchange/components/exchange-search-bar/ExchangeSearchBar.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { SearchSvg } from 'libs/shared/images/svg/actions/SearchSvg';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport styles from './exchange-search-bar.module.scss';\n\ninterface ExchangeSearchBarProps {\n query?: string;\n}\n\nexport function ExchangeSearchBar(props: ExchangeSearchBarProps): JSX.Element {\n const [ query, setQuery ] = React.useState(props.query ?? '');\n\n function onSubmit(event: React.FormEvent): void {\n event.preventDefault();\n\n if (!query)\n return;\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SEARCH,\n params: { query }\n });\n }\n\n return (\n <form onSubmit={onSubmit}>\n <div className={`${styles.searchBar} d-flex border border-dark rounded align-items-center mb-3`}>\n <SvgContainer svg={SearchSvg} />\n <input\n type='text'\n className='form-control h-100 w-100 py-0 border-0 shadow-none'\n placeholder='Search for resources in the Exchange Archive'\n value={query}\n onChange={e => setQuery(e.target.value)}\n autoComplete='off'\n />\n </div>\n </form>\n );\n}"],"names":["ExchangeSearchBar","props","query","setQuery","React","onSubmit","event","Core.AppLinkHelper","AppChannels","Actions","jsx","jsxs","styles","SvgContainer","SearchSvg","e"],"mappings":"8JAgBO,SAASA,EAAkBC,EAA4C,CAC5E,KAAM,CAAEC,EAAOC,CAAS,EAAIC,EAAM,SAASH,EAAM,OAAS,EAAE,EAE5D,SAASI,EAASC,EAA8B,CAC9CA,EAAM,eAAA,EAEDJ,GAGLK,EAAmB,QAAQ,CACzB,YAAaC,EAAY,SACzB,OAAQC,EAAQ,SAAS,OACzB,OAAQ,CAAE,MAAAP,CAAA,CAAM,CACjB,CACH,CAEA,OACEQ,EAAAA,IAAC,QAAK,SAAAL,EACJ,SAAAM,EAAAA,KAAC,OAAI,UAAW,GAAGC,EAAO,SAAS,6DACjC,SAAA,CAAAF,EAAAA,IAACG,EAAA,CAAa,IAAKC,CAAA,CAAW,EAC9BJ,EAAAA,IAAC,QAAA,CACC,KAAK,OACL,UAAU,qDACV,YAAY,+CACZ,MAAOR,EACP,SAAUa,GAAKZ,EAASY,EAAE,OAAO,KAAK,EACtC,aAAa,KAAA,CAAA,CACf,CAAA,CACF,CAAA,CACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as r}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as r}from"./app-DQUfzK7M.js";function s(l){return r.jsx("svg",{...l,children:r.jsx("path",{d:"m11.959 10.641 4.402-4.296a.964.964 0 0 1 1.358 0 .95.95 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.95.95 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .95.95 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.95.95 0 0 1 0-1.35.964.964 0 0 1 1.358 0z",fill:"currentColor"})})}export{s as C};
|
|
2
|
+
//# sourceMappingURL=BFAbrH3V.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BFAbrH3V.chunk.js","sources":["../../../../libs/shared/src/images/svg/actions/CloseSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function CloseSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='m11.959 10.641 4.402-4.296a.964.964 0 0 1 1.358 0 .95.95 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.95.95 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .95.95 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.95.95 0 0 1 0-1.35.964.964 0 0 1 1.358 0z'\n fill='currentColor'\n />\n </svg>\n );\n}\n"],"names":["CloseSvg","props","jsx"],"mappings":"sCAEO,SAASA,EAASC,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,+QACF,KAAK,cAAA,CAAA,EAET,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{co as g,L as t,q as o,aU as a,cp as c,cq as p}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{co as g,L as t,q as o,aU as a,cp as c,cq as p}from"./app-DQUfzK7M.js";const i="shared.privateResourceError";class u extends g{constructor(){super(t.getPhrase(i,"title"))}get name(){return"PrivateResourceError"}get heading(){return t.getPhrase(i,"heading")}get description(){return t.getPhrase(i,"description")}}const d="shared.regionLockedResourceError";class f extends g{constructor(){super(t.getPhrase(d,"title"))}get name(){return"RegionLockedResourceError"}get heading(){return t.getPhrase(d,"heading")}get description(){return t.getPhrase(d,"description")}}const E={notFound:p,forbidden:{rating:u,yearLevel:u,region:f,privacy:u},badRequest:c,internalServerError:c};function R(e,h={},n={}){if(!e)return;let r;typeof e=="number"?r=e:r=e.status;const s={...E,...h};if(r&&o.isStatusCodeError(r)){if(r===a.InternalServer){n.internalServerError||o.throw(new c);return}if(r===a.NotFound){n.notFound||o.throw(new s.notFound);return}if(r===a.Forbidden){n.forbidden||o.throw(new s.forbidden.privacy);return}n.badRequest||o.throw(new s.badRequest)}}export{R as h};
|
|
2
|
+
//# sourceMappingURL=BIciRJHg.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BIciRJHg.chunk.js","sources":["../../../../libs/shared/src/errors/general/private-resource/PrivateResourceError.ts","../../../../libs/shared/src/errors/general/region-locked-resource/RegionLockedResourceError.ts","../../../../libs/shared/src/errors/handlers/HttpErrorHandlers.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.privateResourceError';\n\nexport class PrivateResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'PrivateResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.regionLockedResourceError';\n\nexport class RegionLockedResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'RegionLockedResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}"],"names":["namespace","PrivateResourceError","ErrorPageError","LanguageService","RegionLockedResourceError","defaultErrors","NotFoundError","UnspecifiedError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","errorMap","Core.ErrorHelper","HttpStatus"],"mappings":"6EAIA,MAAMA,EAAY,8BAEX,MAAMC,UAA6BC,CAAe,CACvD,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,sBACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCrBA,MAAMA,EAAY,mCAEX,MAAMI,UAAkCF,CAAe,CAC5D,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,2BACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCEA,MAAMK,EAA8B,CAClC,SAAUC,EACV,UAAW,CACT,OAAQL,EACR,UAAWA,EACX,OAAQG,EACR,QAASH,CAAA,EAEX,WAAYM,EACZ,oBAAqBA,CACvB,EAEO,SAASC,EACdC,EACAC,EAA+B,CAAA,EAK/BC,EAAgC,CAAA,EAC1B,CACN,GAAI,CAACF,EACH,OAEF,IAAIG,EAEA,OAAOH,GAAU,SACnBG,EAAaH,EAEbG,EAAaH,EAAK,OAGpB,MAAMI,EAAW,CACf,GAAGR,EACH,GAAGK,CAAA,EAGL,GAAKE,GAGAE,EAAiB,kBAAkBF,CAAU,EAGlD,IAAIA,IAAeG,EAAW,eAAgB,CACvCJ,EAAU,qBACbG,EAAiB,MAAM,IAAIP,CAAkB,EAC/C,MACF,CAEA,GAAIK,IAAeG,EAAW,SAAU,CACjCJ,EAAU,UACbG,EAAiB,MAAM,IAAID,EAAS,QAAU,EAChD,MACF,CAEA,GAAID,IAAeG,EAAW,UAAW,CAKlCJ,EAAU,WACbG,EAAiB,MAAM,IAAID,EAAS,UAAU,OAAS,EACzD,MACF,CAEKF,EAAU,YACbG,EAAiB,MAAM,IAAID,EAAS,UAAY,EACpD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,a0 as j,j as e,L as r,aq as S,G as A,Q as E,F as M,ao as o}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{r as i,a0 as j,j as e,L as r,aq as S,G as A,Q as E,F as M,ao as o}from"./app-DQUfzK7M.js";import{M as y}from"./_sYSSSUN.chunk.js";import{P as C,C as F}from"./ByCaE7oT.chunk.js";const R="shared.breadcrumbComponent",B=r.encloseNamespace(R),O=64,f=48,u=i.forwardRef((t,a)=>{const{breadcrumb:{name:s,appLink:n,active:h},withBackIcon:p,linkClassName:g}=t;let c=s,d=null;return c.length>f&&(c=s.slice(0,f)+"...",d=s),e.jsx("li",{className:`breadcrumb-item${h?" active":""}`,title:d,children:h?e.jsx("strong",{children:c}):e.jsxs(S,{appLink:n,ref:a,className:n?g:"",children:[p&&e.jsx(A,{svg:F,size:E.Small}),e.jsx("span",{className:p?"ms-2":"",children:c})]})})}),Q=({breadcrumbs:t,linkClassName:a})=>{const s=j(y.XS),n=(t==null?void 0:t.length)||0,[h,p]=i.useState(!1),[g,c]=i.useState(!1),d=i.useRef(null);i.useEffect(()=>{const m=(t==null?void 0:t.reduce((x,T)=>x+T.name.length,0))??0;n>4&&m>O&&p(!0)},[t==null?void 0:t.length]),i.useLayoutEffect(()=>{var m;g&&((m=d.current)==null||m.focus())},[d.current,g]);function v(){p(!1),c(!0)}if(!n||s&&n<2)return e.jsx(e.Fragment,{});if(s)return e.jsx("nav",{"aria-label":"breadcrumb",children:e.jsx("ol",{className:"breadcrumb m-0 p-0",children:e.jsx(u,{breadcrumb:t[n-2],withBackIcon:!0,linkClassName:a})})});const N=e.jsx(u,{breadcrumb:t[0],linkClassName:a}),P=n>2?e.jsx(u,{breadcrumb:t[1],linkClassName:a}):e.jsx(e.Fragment,{}),b=n>3?e.jsx(u,{breadcrumb:t[n-2],linkClassName:a}):e.jsx(e.Fragment,{}),L=n>1?e.jsx(u,{breadcrumb:t[n-1],linkClassName:a}):e.jsx(e.Fragment,{}),w=t.slice(2,n-2);return e.jsx("nav",{"aria-label":"breadcrumb",children:e.jsxs("ol",{className:"breadcrumb m-0 p-0",children:[N,P,h?e.jsx("li",{className:"breadcrumb-item",children:e.jsx("button",{className:"btn-link",onClick:v,"aria-label":B("expand"),children:"..."})}):w.map((m,x)=>e.jsx(u,{breadcrumb:m,ref:x===0?d:null,linkClassName:a},x)),b,L]})})},V=i.memo(function({numItems:t=3}){return j(y.XS)?e.jsx("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):e.jsx("nav",{"aria-label":"breadcrumb",children:e.jsx("ol",{className:"breadcrumb m-0 p-0",children:C.getPartialLoadingItems({numItems:t}).map(({width:s},n)=>e.jsx("li",{className:"breadcrumb-item",children:e.jsx("span",{className:"d-inline-block partial-loading-background",style:{width:s},dangerouslySetInnerHTML:{__html:" "}})},n))})})}),l="shared.videoSortSelect",_=M.memoize(()=>({[o.RecentlyAdded]:{name:r.getPhrase(l,"recentlyAdded")},[o.AtoZ]:{name:r.getPhrase(l,"atoz")},[o.ZtoA]:{name:r.getPhrase(l,"ztoa")},[o.Newest]:{name:r.getPhrase(l,"newest")},[o.Oldest]:{name:r.getPhrase(l,"oldest")},[o.Series]:{name:r.getPhrase(l,"series")}}));function k(t){let a=_();return t&&(a={[o.ProductionYear]:{name:r.getPhrase(l,"productionYear")},...a}),a}z.defaultProps={variant:"light"};function z(t){const a=t.sortTypes||k(t.includeProductionYear);return e.jsxs("div",{className:"dropdown",children:[e.jsx("button",{className:`btn btn-${t.variant} ms-2 dropdown-toggle`,type:"button",id:"sort-select","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",children:a[t.type].name}),e.jsx("ul",{className:"dropdown-menu dropdown-menu-end","aria-labelledby":"sort-select",children:Object.keys(a).map(s=>{let n="dropdown-item";return s===t.type&&(n+=" active"),e.jsx("li",{children:e.jsx(S,{className:n,appLink:t.getSortAppLink(s),analyticsData:{sort:a[s].name},analyticsOptions:t.analyticsOptions,children:a[s].name})},s)})})]})}export{Q as B,V as P,z as V};
|
|
2
|
+
//# sourceMappingURL=BJX7CePa.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CDuLjvaV.chunk.js","sources":["../../../../libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","../../../../libs/shared/src/components/video-sort-select/VideoSortSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { ChevronLeftSvg } from 'libs/shared/images/svg/arrows/ChevronLeftSvg';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 64;\nconst MAX_SEGMENT_LENGTH = 48;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n linkClassName?: string;\n}\n\nexport const BreadcrumbItem = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon, linkClassName } = props;\n\n let trimmedName = name;\n let title: string = null;\n\n if (trimmedName.length > MAX_SEGMENT_LENGTH) {\n trimmedName = name.slice(0, MAX_SEGMENT_LENGTH) + '...';\n\n // Only setting the title when we trim, because otherwise it's really not needed - Sha\n title = name;\n }\n\n return (\n <li\n className={`breadcrumb-item${active ? ' active' : ''}`}\n title={title}\n >\n {active\n ? <strong>{trimmedName}</strong>\n : <AppLink appLink={appLink} ref={ref} className={appLink ? linkClassName : ''}>\n {withBackIcon && <SvgContainer svg={ChevronLeftSvg} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{trimmedName}</span>\n </AppLink>\n }\n </li>\n );\n});\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n linkClassName?: string;\n}\n\nexport const Breadcrumbs = ({ breadcrumbs, linkClassName }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 4 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon linkClassName={linkClassName} />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} linkClassName={linkClassName} />;\n const second = length > 2\n ? <BreadcrumbItem breadcrumb={breadcrumbs[1]} linkClassName={linkClassName} />\n : <></>;\n const secondLast = length > 3\n ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} linkClassName={linkClassName} />\n : <></>;\n const last = length > 1\n ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} linkClassName={linkClassName} />\n : <></>;\n const rest = breadcrumbs.slice(2, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {second}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n linkClassName={linkClassName}\n />\n ))\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\n\nconst namespace = 'shared.videoSortSelect';\n\ntype SortTypes = {[sort: string]: { name: string }};\n\nconst getDefaultSortTypes: () => SortTypes = FunctionHelper.memoize(() => {\n return {\n [VideoSortType.RecentlyAdded]: {\n name: LanguageService.getPhrase(namespace, 'recentlyAdded')\n },\n [VideoSortType.AtoZ]: {\n name: LanguageService.getPhrase(namespace, 'atoz')\n },\n [VideoSortType.ZtoA]: {\n name: LanguageService.getPhrase(namespace, 'ztoa')\n },\n [VideoSortType.Newest]: {\n name: LanguageService.getPhrase(namespace, 'newest')\n },\n [VideoSortType.Oldest]: {\n name: LanguageService.getPhrase(namespace, 'oldest')\n },\n [VideoSortType.Series]: {\n name: LanguageService.getPhrase(namespace, 'series')\n }\n };\n});\n\nfunction getSortTypes(productionYear: boolean): SortTypes {\n let defaultSortTypes = getDefaultSortTypes();\n\n if (productionYear) {\n defaultSortTypes = {\n [VideoSortType.ProductionYear]: {\n name: LanguageService.getPhrase(namespace, 'productionYear')\n },\n ...defaultSortTypes\n };\n }\n \n return defaultSortTypes;\n}\n\ninterface VideoSortSelectProps {\n type: VideoSortType;\n getSortAppLink: (sort: string) => Core.AppLink;\n variant?: ButtonProps['variant'];\n sortTypes?: SortTypes;\n analyticsOptions: AnalyticsOptions;\n includeProductionYear?: boolean;\n}\n\nVideoSortSelect.defaultProps = {\n variant: 'light'\n};\n\nexport function VideoSortSelect(props: VideoSortSelectProps): JSX.Element {\n const sortTypes = props.sortTypes || getSortTypes(props.includeProductionYear);\n\n return (\n <div className='dropdown'>\n <button className={`btn btn-${props.variant} ms-2 dropdown-toggle`} type='button' id='sort-select' data-bs-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>\n {sortTypes[props.type].name}\n </button>\n <ul className='dropdown-menu dropdown-menu-end' aria-labelledby='sort-select'>\n {Object.keys(sortTypes).map(k => {\n let className = 'dropdown-item';\n\n if (k === props.type)\n className += ' active';\n\n return (\n <li key={k}>\n <AppLink\n className={className}\n appLink={props.getSortAppLink(k)}\n analyticsData={{\n sort: sortTypes[k].name\n }}\n analyticsOptions={props.analyticsOptions}\n >\n {sortTypes[k].name}\n </AppLink>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","COLLAPSE_CHARACTER_COUNT","MAX_SEGMENT_LENGTH","BreadcrumbItem","React.forwardRef","props","ref","name","appLink","active","withBackIcon","linkClassName","trimmedName","title","jsx","jsxs","AppLink","SvgContainer","ChevronLeftSvg","SvgContainerSize","Breadcrumbs","breadcrumbs","isMobile","useMediaQuery","MediaQueryStrings","length","collapse","setCollapse","React.useState","shouldFocus","setShouldFocus","expandRef","React.useRef","React.useEffect","characterLength","prev","next","React.useLayoutEffect","_a","onClickExpand","Fragment","first","second","secondLast","last","rest","breadcrumb","idx","PartialBreadcrumbs","React.memo","numItems","PartialLoadingHelper","width","getDefaultSortTypes","FunctionHelper","VideoSortType","getSortTypes","productionYear","defaultSortTypes","VideoSortSelect","sortTypes","k","className"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BJX7CePa.chunk.js","sources":["../../../../libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","../../../../libs/shared/src/components/video-sort-select/VideoSortSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { ChevronLeftSvg } from 'libs/shared/images/svg/arrows/ChevronLeftSvg';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 64;\nconst MAX_SEGMENT_LENGTH = 48;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n linkClassName?: string;\n}\n\nexport const BreadcrumbItem = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon, linkClassName } = props;\n\n let trimmedName = name;\n let title: string = null;\n\n if (trimmedName.length > MAX_SEGMENT_LENGTH) {\n trimmedName = name.slice(0, MAX_SEGMENT_LENGTH) + '...';\n\n // Only setting the title when we trim, because otherwise it's really not needed - Sha\n title = name;\n }\n\n return (\n <li\n className={`breadcrumb-item${active ? ' active' : ''}`}\n title={title}\n >\n {active\n ? <strong>{trimmedName}</strong>\n : <AppLink appLink={appLink} ref={ref} className={appLink ? linkClassName : ''}>\n {withBackIcon && <SvgContainer svg={ChevronLeftSvg} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{trimmedName}</span>\n </AppLink>\n }\n </li>\n );\n});\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n linkClassName?: string;\n}\n\nexport const Breadcrumbs = ({ breadcrumbs, linkClassName }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 4 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon linkClassName={linkClassName} />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} linkClassName={linkClassName} />;\n const second = length > 2\n ? <BreadcrumbItem breadcrumb={breadcrumbs[1]} linkClassName={linkClassName} />\n : <></>;\n const secondLast = length > 3\n ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} linkClassName={linkClassName} />\n : <></>;\n const last = length > 1\n ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} linkClassName={linkClassName} />\n : <></>;\n const rest = breadcrumbs.slice(2, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {second}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n linkClassName={linkClassName}\n />\n ))\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\n\nconst namespace = 'shared.videoSortSelect';\n\ntype SortTypes = {[sort: string]: { name: string }};\n\nconst getDefaultSortTypes: () => SortTypes = FunctionHelper.memoize(() => {\n return {\n [VideoSortType.RecentlyAdded]: {\n name: LanguageService.getPhrase(namespace, 'recentlyAdded')\n },\n [VideoSortType.AtoZ]: {\n name: LanguageService.getPhrase(namespace, 'atoz')\n },\n [VideoSortType.ZtoA]: {\n name: LanguageService.getPhrase(namespace, 'ztoa')\n },\n [VideoSortType.Newest]: {\n name: LanguageService.getPhrase(namespace, 'newest')\n },\n [VideoSortType.Oldest]: {\n name: LanguageService.getPhrase(namespace, 'oldest')\n },\n [VideoSortType.Series]: {\n name: LanguageService.getPhrase(namespace, 'series')\n }\n };\n});\n\nfunction getSortTypes(productionYear: boolean): SortTypes {\n let defaultSortTypes = getDefaultSortTypes();\n\n if (productionYear) {\n defaultSortTypes = {\n [VideoSortType.ProductionYear]: {\n name: LanguageService.getPhrase(namespace, 'productionYear')\n },\n ...defaultSortTypes\n };\n }\n \n return defaultSortTypes;\n}\n\ninterface VideoSortSelectProps {\n type: VideoSortType;\n getSortAppLink: (sort: string) => Core.AppLink;\n variant?: ButtonProps['variant'];\n sortTypes?: SortTypes;\n analyticsOptions: AnalyticsOptions;\n includeProductionYear?: boolean;\n}\n\nVideoSortSelect.defaultProps = {\n variant: 'light'\n};\n\nexport function VideoSortSelect(props: VideoSortSelectProps): JSX.Element {\n const sortTypes = props.sortTypes || getSortTypes(props.includeProductionYear);\n\n return (\n <div className='dropdown'>\n <button className={`btn btn-${props.variant} ms-2 dropdown-toggle`} type='button' id='sort-select' data-bs-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>\n {sortTypes[props.type].name}\n </button>\n <ul className='dropdown-menu dropdown-menu-end' aria-labelledby='sort-select'>\n {Object.keys(sortTypes).map(k => {\n let className = 'dropdown-item';\n\n if (k === props.type)\n className += ' active';\n\n return (\n <li key={k}>\n <AppLink\n className={className}\n appLink={props.getSortAppLink(k)}\n analyticsData={{\n sort: sortTypes[k].name\n }}\n analyticsOptions={props.analyticsOptions}\n >\n {sortTypes[k].name}\n </AppLink>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","COLLAPSE_CHARACTER_COUNT","MAX_SEGMENT_LENGTH","BreadcrumbItem","React.forwardRef","props","ref","name","appLink","active","withBackIcon","linkClassName","trimmedName","title","jsx","jsxs","AppLink","SvgContainer","ChevronLeftSvg","SvgContainerSize","Breadcrumbs","breadcrumbs","isMobile","useMediaQuery","MediaQueryStrings","length","collapse","setCollapse","React.useState","shouldFocus","setShouldFocus","expandRef","React.useRef","React.useEffect","characterLength","prev","next","React.useLayoutEffect","_a","onClickExpand","Fragment","first","second","secondLast","last","rest","breadcrumb","idx","PartialBreadcrumbs","React.memo","numItems","PartialLoadingHelper","width","getDefaultSortTypes","FunctionHelper","VideoSortType","getSortTypes","productionYear","defaultSortTypes","VideoSortSelect","sortTypes","k","className"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{at as b,j as a,aq as y,w as h,A as j,G as S,ab as g}from"./app-
|
|
1
|
+
import{at as b,j as a,aq as y,w as h,A as j,G as S,ab as g}from"./app-DQUfzK7M.js";import{B as k,a as v}from"./CLeOFM0_.chunk.js";const _="_pillTabSelector_a6f6x_1",p="_tab_a6f6x_4",L="_minWidth_a6f6x_21",N="_radiusSmall_a6f6x_24",$="_tabLink_a6f6x_35",i={pillTabSelector:_,tab:p,minWidth:L,radiusSmall:N,tabLink:$};function m(t){return a.jsxs(a.Fragment,{children:[!!t.tab.svg&&a.jsx("div",{className:t.tab.name?"pe-1":"",children:a.jsx(S,{svg:t.tab.svg})}),t.tab.name,typeof t.tab.count=="number"&&a.jsx("div",{className:"ps-2",children:a.jsx(k,{type:v.Count,data:t.tab.count})})]})}function D(t){const{borderRadius:d="lg"}=t,c=b();function o(n){n.analyticsData&&n.analyticsOptions&&g.logUserAction(n.analyticsData,n.analyticsOptions)}function u(n){n.active||!n.onSelect||(n.onSelect(),o(n))}function x(n){const s=n.target.value,e=t.tabs.find(f=>f.name===s);!e||e.active||(o(e),j.trigger(e.appLink))}const l=t.tabs.find(n=>n.active),r=t.enableSmallScreenSupport&&(c.sm||c.xs);return a.jsxs("nav",{className:t.className??"",ref:t.containerRef,children:[r&&a.jsx("select",{className:"form-select",onChange:x,value:l==null?void 0:l.name,style:{minWidth:"150px"},children:t.tabs.map((n,s)=>{var e;return a.jsx("option",{value:n.name,children:((e=t.formatDisplayText)==null?void 0:e.call(t,n.name))??n.name},s)})}),!r&&a.jsx("ul",{className:`
|
|
2
2
|
list-unstyled d-inline-block m-0 ${i.pillTabSelector}
|
|
3
3
|
${d?i.radiusSmall:""}
|
|
4
4
|
${t.listClassName}
|
|
@@ -12,4 +12,4 @@ import{at as b,j as a,aq as y,w as h,A as j,G as S,ab as g}from"./app-BeXfSt3Z.j
|
|
|
12
12
|
cursor-pointer d-flex align-items-center justify-content-center
|
|
13
13
|
text-decoration-none text-reset px-2 text-nowrap ${i.tabLink}
|
|
14
14
|
`,onClick:()=>u(n),children:a.jsx(m,{tab:n})})},s))})]})}export{D as P};
|
|
15
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=BL0xk5Hs.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BL0xk5Hs.chunk.js","sources":["../../../../libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.module.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svg && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svg={props.tab.svg} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svg?: SvgIcon;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n}\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n const { borderRadius = 'lg' } = props;\n \n const breakpoints = useBreakpoints();\n \n function logAnalytics(tab: PillTab): void {\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n \n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n logAnalytics(tab);\n }\n\n function onChangeSelect(event: React.ChangeEvent<HTMLSelectElement>): void {\n const value = event.target.value;\n const tab = props.tabs.find(tab => tab.name === value);\n if (!tab || tab.active)\n return;\n \n logAnalytics(tab);\n AppLinkHelper.trigger(tab.appLink);\n }\n\n const selectedTab = props.tabs.find(tab => tab.active);\n const showSelectDropdown = props.enableSmallScreenSupport && (breakpoints.sm || breakpoints.xs);\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n {showSelectDropdown && (\n <select className='form-select' onChange={onChangeSelect} value={selectedTab?.name} style={{ minWidth: '150px' }}>\n {props.tabs.map((tab, index) => {\n return (\n <option\n key={index}\n value={tab.name}>\n {props.formatDisplayText?.(tab.name) ?? tab.name}\n </option>\n );\n })}\n </select>\n )}\n \n {!showSelectDropdown && (\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n )}\n </nav>\n );\n}\n"],"names":["TabContents","props","jsxs","Fragment","jsx","SvgContainer","Badge","BadgeType","PillTabSelector","borderRadius","breakpoints","useBreakpoints","logAnalytics","tab","AnalyticsHelper","onSelectTab","onChangeSelect","event","value","AppLinkHelper","selectedTab","showSelectDropdown","index","_a","styles","AppLink","DivButton"],"mappings":"4TAuBA,SAASA,EAAYC,EAAsC,CACzD,OACEC,EAAAA,KAAAC,WAAA,CACG,SAAA,CAAA,CAAC,CAACF,EAAM,IAAI,KACXG,EAAAA,IAAC,MAAA,CAAI,UAAWH,EAAM,IAAI,KAAO,OAAS,GACxC,SAAAG,EAAAA,IAACC,EAAA,CAAa,IAAKJ,EAAM,IAAI,IAAK,EACpC,EAGDA,EAAM,IAAI,KAEV,OAAQA,EAAM,IAAI,OAAW,UAC5BG,EAAAA,IAAC,OAAI,UAAU,OACb,SAAAA,EAAAA,IAACE,EAAA,CAAM,KAAMC,EAAU,MAAO,KAAMN,EAAM,IAAI,MAAO,CAAA,CACvD,CAAA,EAEJ,CAEJ,CA4BO,SAASO,EAAgBP,EAA0C,CACxE,KAAM,CAAE,aAAAQ,EAAe,IAAA,EAASR,EAE1BS,EAAcC,EAAA,EAEpB,SAASC,EAAaC,EAAoB,CACpCA,EAAI,eAAiBA,EAAI,kBAC3BC,EAAgB,cAAcD,EAAI,cAAeA,EAAI,gBAAgB,CACzE,CAEA,SAASE,EAAYF,EAAoB,CACnCA,EAAI,QAAU,CAACA,EAAI,WAGvBA,EAAI,SAAA,EAEJD,EAAaC,CAAG,EAClB,CAEA,SAASG,EAAeC,EAAmD,CACzE,MAAMC,EAAQD,EAAM,OAAO,MACrBJ,EAAMZ,EAAM,KAAK,KAAKY,GAAOA,EAAI,OAASK,CAAK,EACjD,CAACL,GAAOA,EAAI,SAGhBD,EAAaC,CAAG,EAChBM,EAAc,QAAQN,EAAI,OAAO,EACnC,CAEA,MAAMO,EAAcnB,EAAM,KAAK,KAAKY,GAAOA,EAAI,MAAM,EAC/CQ,EAAqBpB,EAAM,2BAA6BS,EAAY,IAAMA,EAAY,IAE5F,OACER,OAAC,OAAI,UAAWD,EAAM,WAAa,GAAI,IAAKA,EAAM,aAC/C,SAAA,CAAAoB,SACE,SAAA,CAAO,UAAU,cAAc,SAAUL,EAAgB,MAAOI,GAAA,YAAAA,EAAa,KAAM,MAAO,CAAE,SAAU,SACpG,SAAAnB,EAAM,KAAK,IAAI,CAACY,EAAKS,IAAU,OAC9B,OACElB,EAAAA,IAAC,SAAA,CAEC,MAAOS,EAAI,KACV,WAAAU,EAAAtB,EAAM,oBAAN,YAAAsB,EAAA,KAAAtB,EAA0BY,EAAI,QAASA,EAAI,IAAA,EAFvCS,CAAA,CAKX,CAAC,CAAA,CACH,EAGD,CAACD,GACAjB,EAAAA,IAAC,KAAA,CAAG,UAAW;AAAA,6CACsBoB,EAAO,eAAe;AAAA,YACvDf,EAAee,EAAO,YAAc,EAAE;AAAA,YACtCvB,EAAM,aAAa;AAAA,UAEpB,SAAAA,EAAM,KAAK,IAAI,CAACY,EAAKS,IAElBlB,EAAAA,IAAC,KAAA,CACC,UAAW;AAAA,sBACLoB,EAAO,GAAG,IAAIX,EAAI,OAAS,eAAiB,sBAAsB;AAAA,kBACtEA,EAAI,KAAOW,EAAO,SAAW,EAAE,IAAIX,EAAI,SAAS;AAAA,gBAIjD,WAAI,QACHT,EAAAA,IAACqB,EAAA,CACC,QAASZ,EAAI,QACb,cAAeA,EAAI,cACnB,iBAAkBA,EAAI,iBACtB,UAAW;AAAA;AAAA,uEAEwCW,EAAO,OAAO;AAAA,oBAGjE,SAAApB,EAAAA,IAACJ,GAAY,IAAAa,CAAA,CAAU,CAAA,CAAA,EAGzBT,EAAAA,IAACsB,EAAA,CACC,UAAW;AAAA;AAAA,uEAEwCF,EAAO,OAAO;AAAA,oBAEjE,QAAS,IAAMT,EAAYF,CAAG,EAE9B,SAAAT,EAAAA,IAACJ,GAAY,IAAAa,CAAA,CAAU,CAAA,CAAA,CACzB,EAvBGS,CAAA,CA2BV,CAAA,CACH,CAAA,EAEJ,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a3 as A,aD as m,ad as d,ac as T,aI as r,ae as l,af as p,L as V,U as g,A as b,a as f,b as h,a6 as k}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a3 as A,aD as m,ad as d,ac as T,aI as r,ae as l,af as p,L as V,U as g,A as b,a as f,b as h,a6 as k}from"./app-DQUfzK7M.js";import{A as w}from"./CWEHmLar.chunk.js";const C="tv.addRequests",i=V.encloseNamespace(C);function y(u,a,o){const v=A(m.config());return function(e){var c;if(!a)return[];const t=u==="preview",n={id:e.id,name:e.title},s=t?d.VideoItemPreview:d.VideoListItem;return[{label:t?i("addVideo"):"",svg:t?void 0:w,tooltip:t?"":i("addVideo"),className:t?"btn btn-dark me-2 text-nowrap":"btn",button:!0,onClick:()=>{b.trigger({application:h.TV,action:f.Tv.ADD,args:[a.code,e.id],params:{currentTime:Math.floor(+(o==null?void 0:o.currentTime()))||void 0}})},analyticsData:n,analyticsOptions:{actionType:p.Click,entity:l.Video,descriptor:r.AddToWorkspace,location:s,workflowPhase:T.Start}},{label:i("editVideo"),href:g.urlBuilder(`${(c=v.data)==null?void 0:c.cloudEditorUrl}/tv/${e.globalId}`,{product:k.Exchange}),openInNewTab:!0,analyticsData:n,analyticsOptions:{actionType:p.Click,entity:l.Video,location:s,descriptor:r.EditVideo}}]}}export{y as u};
|
|
2
|
+
//# sourceMappingURL=BN_hH3oW.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BN_hH3oW.chunk.js","sources":["../../src/apps/tv/hooks/useGetTvActions.ts"],"sourcesContent":["import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { PlayerReference } from 'libs/shared/context/player-context/interfaces/PlayerReference';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { AddVideoSvg } from 'libs/shared/images/svg/actions/AddVideoSvg';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\nimport { ExchangeConfig } from 'shared/interfaces/ExchangeConfig';\n\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\n\nconst namespace = 'tv.addRequests';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Location = 'preview' | 'video-list';\n\nexport function useGetTvActions(location: Location, region: TvRegion, playerRef?: PlayerReference) {\n const config = Flight.useBasicFetch<ExchangeConfig>(ConfigRequests.config());\n \n return function getTvActions(program: TvProgram): ActionOptions[] {\n if (!region)\n return [];\n\n const isPreview = location === 'preview';\n const analyticsData = { id: program.id, name: program.title };\n const locationContext = isPreview ? LocationContext.VideoItemPreview : LocationContext.VideoListItem;\n\n // TODO: Register analytics for all actions\n return [{\n label: isPreview ? getPhrase('addVideo') : '',\n svg: !isPreview ? AddVideoSvg : undefined,\n tooltip: isPreview ? '' : getPhrase('addVideo'),\n className: isPreview ? 'btn btn-dark me-2 text-nowrap' : 'btn',\n button: true,\n onClick: () => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.TV,\n action: Actions.Tv.ADD,\n args: [ region.code, program.id ],\n params: {\n currentTime: Math.floor(+playerRef?.currentTime()) || undefined\n }\n });\n },\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: locationContext,\n workflowPhase: WorkflowPhase.Start\n }\n }, {\n label: getPhrase('editVideo'),\n href: UrlHelper.urlBuilder(\n `${config.data?.cloudEditorUrl}/tv/${program.globalId}`,\n { product: ProductId.Exchange }\n ),\n openInNewTab: true,\n analyticsData,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n location: locationContext,\n descriptor: VideoActionDescriptor.EditVideo\n }\n }];\n };\n}"],"names":["namespace","getPhrase","LanguageService","useGetTvActions","location","region","playerRef","config","Flight.useBasicFetch","ConfigRequests","program","isPreview","analyticsData","locationContext","LocationContext","AddVideoSvg","Core.AppLinkHelper","AppChannels","Actions","UserAction","EntityType","VideoActionDescriptor","WorkflowPhase","UrlHelper","_a","ProductId"],"mappings":"0KAoBA,MAAMA,EAAY,iBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAIrD,SAASG,EAAgBC,EAAoBC,EAAkBC,EAA6B,CACjG,MAAMC,EAASC,EAAqCC,EAAe,QAAQ,EAE3E,OAAO,SAAsBC,EAAqC,OAChE,GAAI,CAACL,EACH,MAAO,CAAA,EAET,MAAMM,EAAYP,IAAa,UACzBQ,EAAgB,CAAE,GAAIF,EAAQ,GAAI,KAAMA,EAAQ,KAAA,EAChDG,EAAkBF,EAAYG,EAAgB,iBAAmBA,EAAgB,cAGvF,MAAO,CAAC,CACN,MAAOH,EAAYV,EAAU,UAAU,EAAI,GAC3C,IAAMU,EAA0B,OAAdI,EAClB,QAASJ,EAAY,GAAKV,EAAU,UAAU,EAC9C,UAAWU,EAAY,gCAAkC,MACzD,OAAQ,GACR,QAAS,IAAM,CACbK,EAAmB,QAAQ,CACzB,YAAaC,EAAY,GACzB,OAAQC,EAAQ,GAAG,IACnB,KAAM,CAAEb,EAAO,KAAMK,EAAQ,EAAG,EAChC,OAAQ,CACN,YAAa,KAAK,MAAM,EAACJ,GAAA,YAAAA,EAAW,cAAa,GAAK,MAAA,CACxD,CACD,CACH,EACA,cAAAM,EACA,iBAAkB,CAChB,WAAYO,EAAW,MACvB,OAAQC,EAAW,MACnB,WAAYC,EAAsB,eAClC,SAAUR,EACV,cAAeS,EAAc,KAAA,CAC/B,EACC,CACD,MAAOrB,EAAU,WAAW,EAC5B,KAAMsB,EAAU,WACd,IAAGC,EAAAjB,EAAO,OAAP,YAAAiB,EAAa,cAAc,OAAOd,EAAQ,QAAQ,GACrD,CAAE,QAASe,EAAU,QAAA,CAAS,EAEhC,aAAc,GACd,cAAAb,EACA,iBAAkB,CAChB,WAAYO,EAAW,MACvB,OAAQC,EAAW,MACnB,SAAUP,EACV,WAAYQ,EAAsB,SAAA,CACpC,CACD,CACH,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,R as s}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as e,R as s}from"./app-DQUfzK7M.js";import{C as g}from"./B77TOWer.chunk.js";const p="_accordionHeader_1eoao_1",j={accordionHeader:p};function H(i){return e.jsx("ul",{className:"striped-list list-unstyled no-full-width",children:i.children})}function y(i){const[t,r]=s.useState(!1),[a,n]=s.useState({}),[o,c]=s.useState(0),l=s.useRef(null),d=s.useRef(null),u=s.useRef(null),m=s.useRef(null);function x(){t?(n({maxHeight:0,opacity:1}),c(0),d.current=window.setTimeout(()=>r(!1),400)):(r(!0),u.current=window.setTimeout(()=>{n({maxHeight:"max-content",opacity:0,position:"absolute"})}))}return s.useEffect(()=>{var f;if(!t)return;const w=Math.ceil((f=l.current)==null?void 0:f.getBoundingClientRect().height),h=a.opacity===0;h&&c(w),h&&o&&(n({position:"relative"}),m.current=window.requestAnimationFrame(()=>n({maxHeight:o,opacity:1})))},[t,o,a.maxHeight]),s.useEffect(()=>()=>{window.clearTimeout(d.current),window.clearTimeout(u.current),window.cancelAnimationFrame(m.current)},[]),e.jsxs("li",{className:"position-relative",children:[e.jsxs("div",{className:"cursor-pointer d-flex align-items-center py-2 px-3",onClick:x,children:[e.jsx("div",{className:"ms-1",children:e.jsx(g,{direction:t?"down":"right"})}),e.jsx("span",{className:`${t?"fw-semibold":""} user-select-none ms-2`,children:i.title})]}),t&&e.jsx("div",{className:"bg-white",children:e.jsx("div",{ref:l,className:`${j.accordionHeader}`,style:a,children:i.children})})]})}H.Header=y;function A(){return e.jsx(e.Fragment,{children:e.jsx("ul",{className:"list-unstyled",children:[...Array(20)].map((i,t)=>e.jsxs("li",{className:`${t%2===0?"partial-loading-background":""} d-flex w-100 p-2`,children:[e.jsx("div",{className:"svg-container"}),e.jsx("span",{children:" "})]},t))})})}var R=(i=>(i[i.Video=0]="Video",i[i.Audio=1]="Audio",i))(R||{});export{H as A,R as P,A as a};
|
|
2
|
+
//# sourceMappingURL=BWmMHnFV.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"BWmMHnFV.chunk.js","sources":["../../src/shared/components/accordion-list/AccordionList.tsx","../../src/shared/components/accordion-list/partial-loading/PartialAccordionList.tsx","../../src/apps/tv/interfaces/enums/ProgramType.ts"],"sourcesContent":["import React from 'react';\n\nimport { Caret } from 'libs/shared/components/caret/Caret';\n\nimport styles from './accordion-list.module.scss';\n\nexport function AccordionList(props: React.PropsWithChildren) {\n return (\n <ul className='striped-list list-unstyled no-full-width'>\n {props.children}\n </ul>\n );\n}\n\ninterface AccordionListProps {\n title?: string;\n}\n\nfunction AccordionListHeader(props: React.PropsWithChildren<AccordionListProps>) {\n const [ show, setShow ] = React.useState(false);\n const [ programsStyle, setProgramsStyle ] = React.useState<React.CSSProperties>({});\n const [ dynamicHeight, setDynamicHeight ] = React.useState(0);\n\n const accordionBodyRef = React.useRef<HTMLDivElement>(null);\n const hideProgramsTimeRef = React.useRef<number>(null);\n const showProgramsTimeRef = React.useRef<number>(null);\n const animationFrameRef = React.useRef<number>(null);\n\n function handleSetShow() {\n if (show) {\n setProgramsStyle({ maxHeight: 0, opacity: 1 });\n setDynamicHeight(0);\n hideProgramsTimeRef.current = window.setTimeout(() => setShow(false), 400);\n } else {\n setShow(true);\n showProgramsTimeRef.current = window.setTimeout(() => {\n setProgramsStyle({ maxHeight: 'max-content', opacity: 0, position: 'absolute' });\n });\n }\n }\n\n React.useEffect(() => {\n if (!show) return;\n\n const accordionContentHeight = Math.ceil(accordionBodyRef.current?.getBoundingClientRect().height);\n const isHidden = programsStyle.opacity === 0;\n\n if (isHidden) {\n setDynamicHeight(accordionContentHeight);\n }\n\n if (isHidden && dynamicHeight) {\n setProgramsStyle({ position: 'relative' });\n animationFrameRef.current = window.requestAnimationFrame(\n () => setProgramsStyle({ maxHeight: dynamicHeight, opacity: 1 })\n );\n }\n }, [ show, dynamicHeight, programsStyle.maxHeight ]);\n\n React.useEffect(() => {\n return () => {\n window.clearTimeout(hideProgramsTimeRef.current);\n window.clearTimeout(showProgramsTimeRef.current);\n window.cancelAnimationFrame(animationFrameRef.current);\n };\n }, []);\n \n return (\n <li className='position-relative'>\n <div\n className={'cursor-pointer d-flex align-items-center py-2 px-3'}\n onClick={handleSetShow}\n >\n <div className='ms-1'>\n <Caret direction={show ? 'down' : 'right'} />\n </div>\n <span className={`${show ? 'fw-semibold' : ''} user-select-none ms-2`}>{props.title}</span>\n </div>\n {show && (\n <div className='bg-white'>\n <div\n ref={accordionBodyRef}\n className={`${styles.accordionHeader}`}\n style={programsStyle}\n >\n {props.children}\n </div>\n </div>\n )}\n </li>\n );\n}\n\nAccordionList.Header = AccordionListHeader;","import React from 'react';\n\nexport function PartialAccordionList() {\n return (\n <>\n <ul className='list-unstyled'>\n {[...Array(20)].map((_, index) => (\n <li key={index} className={`${index % 2 === 0 ? 'partial-loading-background' : ''} d-flex w-100 p-2`}>\n <div className='svg-container'></div>\n <span> </span>\n </li>\n ))}\n </ul>\n </>\n );\n}\n","export enum ProgramType {\n Video = 0,\n Audio = 1\n}"],"names":["AccordionList","props","jsx","AccordionListHeader","show","setShow","React","programsStyle","setProgramsStyle","dynamicHeight","setDynamicHeight","accordionBodyRef","hideProgramsTimeRef","showProgramsTimeRef","animationFrameRef","handleSetShow","accordionContentHeight","_a","isHidden","jsxs","Caret","styles","PartialAccordionList","Fragment","_","index","ProgramType"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as d,j as h}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{r as d,j as h}from"./app-DQUfzK7M.js";var I=new Map,R=new WeakMap,y=0,L=void 0;function O(e){return e?(R.has(e)||(y+=1,R.set(e,y.toString())),R.get(e)):"0"}function _(e){return Object.keys(e).sort().filter(r=>e[r]!==void 0).map(r=>`${r}_${r==="root"?O(e.root):e[r]}`).toString()}function $(e){const r=_(e);let s=I.get(r);if(!s){const n=new Map;let a;const i=new IntersectionObserver(o=>{o.forEach(t=>{var c;const g=t.isIntersecting&&a.some(u=>t.intersectionRatio>=u);e.trackVisibility&&typeof t.isVisible>"u"&&(t.isVisible=g),(c=n.get(t.target))==null||c.forEach(u=>{u(g,t)})})},e);a=i.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),s={id:r,observer:i,elements:n},I.set(r,s)}return s}function j(e,r,s={},n=L){if(typeof window.IntersectionObserver>"u"&&n!==void 0){const c=e.getBoundingClientRect();return r(n,{isIntersecting:n,target:e,intersectionRatio:typeof s.threshold=="number"?s.threshold:0,time:0,boundingClientRect:c,intersectionRect:c,rootBounds:c}),()=>{}}const{id:a,observer:i,elements:o}=$(s),t=o.get(e)||[];return o.has(e)||o.set(e,t),t.push(r),i.observe(e),function(){t.splice(t.indexOf(r),1),t.length===0&&(o.delete(e),i.unobserve(e)),o.size===0&&(i.disconnect(),I.delete(a))}}function D({threshold:e,delay:r,trackVisibility:s,rootMargin:n,root:a,triggerOnce:i,skip:o,initialInView:t,fallbackInView:c,onChange:g}={}){var u;const[f,p]=d.useState(null),m=d.useRef(),[A,l]=d.useState({inView:!!t,entry:void 0});m.current=g,d.useEffect(()=>{if(o||!f)return;let b;return b=j(f,(x,E)=>{l({inView:x,entry:E}),m.current&&m.current(x,E),E.isIntersecting&&i&&b&&(b(),b=void 0)},{root:a,rootMargin:n,threshold:e,trackVisibility:s,delay:r},c),()=>{b&&b()}},[Array.isArray(e)?e.toString():e,f,a,n,i,o,s,c,r]);const w=(u=A.entry)==null?void 0:u.target,S=d.useRef();!f&&w&&!i&&!o&&S.current!==w&&(S.current=w,l({inView:!!t,entry:void 0}));const v=[p,A.inView,A.entry];return v.ref=v[0],v.inView=v[1],v.entry=v[2],v}function V(e={}){const{prevent:r,rootMargin:s,triggerOnce:n=!0}=e;let[a,i,o]=D({triggerOnce:n,rootMargin:s});return(r===!0||typeof window.IntersectionObserver>"u")&&(i=!0,a=null),{ref:a,inView:i,initialized:!!o}}const M="_image_pp6me_1",C={image:M},z="500px",B="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",T=d.memo(function(e){const{forceLoad:r,extraClasses:s="",errorFallbackImageSrc:n,preventLoad:a=!1,errorFallbackImageClassName:i,src:o,alt:t,...c}=e,{ref:g,inView:u}=V({rootMargin:z}),[f,p]=d.useState(!1);d.useEffect(()=>{if(!r&&!u||a)return;const l=new Image;return l.onerror=()=>{p(!0),n&&(l.src=n)},l.src=o,()=>l.onerror=null},[u,a]);function m(){return f&&n?n:e.src}if(f&&!n)return h.jsx(h.Fragment,{});if(!g)return h.jsx("img",{className:`${C.image} ${s} ${f&&i||""}`,alt:t,src:m(),...c});const A={alt:t,...c,...(u||r)&&!a?{src:m()}:{src:B}};return r||(A.ref=g),h.jsx("img",{className:`${C.image} ${s} ${f&&i||""}`,...A})});export{T as L,D as a,V as u};
|
|
2
|
+
//# sourceMappingURL=BapvLPQ5.chunk.js.map
|