@clickview/exchange 0.53.0-rc.2 → 0.53.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/en.json +1 -1
  3. package/dist/scripts/{DYfp6qN2.chunk.js → 5GUueKJF.chunk.js} +2 -2
  4. package/dist/scripts/{DYfp6qN2.chunk.js.map → 5GUueKJF.chunk.js.map} +1 -1
  5. package/dist/scripts/{Co_iS0bj.chunk.js → 6a3imca3.chunk.js} +2 -2
  6. package/dist/scripts/{Co_iS0bj.chunk.js.map → 6a3imca3.chunk.js.map} +1 -1
  7. package/dist/scripts/{C2RRkDlH.chunk.js → 8LCfkX3v.chunk.js} +2 -2
  8. package/dist/scripts/{C2RRkDlH.chunk.js.map → 8LCfkX3v.chunk.js.map} +1 -1
  9. package/dist/scripts/{D94KYGFe.chunk.js → 8VNRK8kQ.chunk.js} +2 -2
  10. package/dist/scripts/{D94KYGFe.chunk.js.map → 8VNRK8kQ.chunk.js.map} +1 -1
  11. package/dist/scripts/{IqKMNgAo.chunk.js → An2pqf2H.chunk.js} +2 -2
  12. package/dist/scripts/{IqKMNgAo.chunk.js.map → An2pqf2H.chunk.js.map} +1 -1
  13. package/dist/scripts/{Da5Jh4ka.chunk.js → B2N_hio2.chunk.js} +2 -2
  14. package/dist/scripts/{Da5Jh4ka.chunk.js.map → B2N_hio2.chunk.js.map} +1 -1
  15. package/dist/scripts/{BDJ3lqh6.chunk.js → B2noU3Ys.chunk.js} +2 -2
  16. package/dist/scripts/{BDJ3lqh6.chunk.js.map → B2noU3Ys.chunk.js.map} +1 -1
  17. package/dist/scripts/{ClAFGXub.chunk.js → B6XPihYg.chunk.js} +2 -2
  18. package/dist/scripts/{ClAFGXub.chunk.js.map → B6XPihYg.chunk.js.map} +1 -1
  19. package/dist/scripts/B6lOCBlR.chunk.js +2 -0
  20. package/dist/scripts/{DADu9kRW.chunk.js.map → B6lOCBlR.chunk.js.map} +1 -1
  21. package/dist/scripts/{CBbVIYIX.chunk.js → B83zQU6s.chunk.js} +2 -2
  22. package/dist/scripts/{CBbVIYIX.chunk.js.map → B83zQU6s.chunk.js.map} +1 -1
  23. package/dist/scripts/{CL_sQPNd.chunk.js → BEGjWnPj.chunk.js} +2 -2
  24. package/dist/scripts/{CL_sQPNd.chunk.js.map → BEGjWnPj.chunk.js.map} +1 -1
  25. package/dist/scripts/{DFm9lfdG.chunk.js → BFHjGFiY.chunk.js} +2 -2
  26. package/dist/scripts/{DFm9lfdG.chunk.js.map → BFHjGFiY.chunk.js.map} +1 -1
  27. package/dist/scripts/{D3ZScl6b.chunk.js → BKjwB_St.chunk.js} +2 -2
  28. package/dist/scripts/{D3ZScl6b.chunk.js.map → BKjwB_St.chunk.js.map} +1 -1
  29. package/dist/scripts/{Dai_iWJd.chunk.js → BMWm1pN1.chunk.js} +2 -2
  30. package/dist/scripts/{Dai_iWJd.chunk.js.map → BMWm1pN1.chunk.js.map} +1 -1
  31. package/dist/scripts/BNoOPqTl.chunk.js +2 -0
  32. package/dist/scripts/{0l0N-xl4.chunk.js.map → BNoOPqTl.chunk.js.map} +1 -1
  33. package/dist/scripts/{BJy6bi_f.chunk.js → BSTOTvRj.chunk.js} +2 -2
  34. package/dist/scripts/{BJy6bi_f.chunk.js.map → BSTOTvRj.chunk.js.map} +1 -1
  35. package/dist/scripts/{CzoJAXkI.chunk.js → BUa_jfSW.chunk.js} +2 -2
  36. package/dist/scripts/{CzoJAXkI.chunk.js.map → BUa_jfSW.chunk.js.map} +1 -1
  37. package/dist/scripts/{BqzK1HZp.chunk.js → BZpkTfVs.chunk.js} +2 -2
  38. package/dist/scripts/{BqzK1HZp.chunk.js.map → BZpkTfVs.chunk.js.map} +1 -1
  39. package/dist/scripts/BaIci_F5.chunk.js +2 -0
  40. package/dist/scripts/{CpOQf5WX.chunk.js.map → BaIci_F5.chunk.js.map} +1 -1
  41. package/dist/scripts/{CL0AqQPL.chunk.js → BcPl4b_u.chunk.js} +2 -2
  42. package/dist/scripts/{CL0AqQPL.chunk.js.map → BcPl4b_u.chunk.js.map} +1 -1
  43. package/dist/scripts/{CG9hOZ8J.chunk.js → BdNTkb7P.chunk.js} +2 -2
  44. package/dist/scripts/{CG9hOZ8J.chunk.js.map → BdNTkb7P.chunk.js.map} +1 -1
  45. package/dist/scripts/{Bcnaqlik.chunk.js → Bfe5ljlE.chunk.js} +2 -2
  46. package/dist/scripts/{Bcnaqlik.chunk.js.map → Bfe5ljlE.chunk.js.map} +1 -1
  47. package/dist/scripts/BjOBVQha.chunk.js +2 -0
  48. package/dist/scripts/{C_l_6pBR.chunk.js.map → BjOBVQha.chunk.js.map} +1 -1
  49. package/dist/scripts/{jNYdSQcK.chunk.js → Bmmwb7k_.chunk.js} +2 -2
  50. package/dist/scripts/{jNYdSQcK.chunk.js.map → Bmmwb7k_.chunk.js.map} +1 -1
  51. package/dist/scripts/{D3l9DF6j.chunk.js → BqRp5o8i.chunk.js} +2 -2
  52. package/dist/scripts/{D3l9DF6j.chunk.js.map → BqRp5o8i.chunk.js.map} +1 -1
  53. package/dist/scripts/{CwMe9YbU.chunk.js → BsR7WkQ3.chunk.js} +2 -2
  54. package/dist/scripts/{CwMe9YbU.chunk.js.map → BsR7WkQ3.chunk.js.map} +1 -1
  55. package/dist/scripts/{BB4BMfoF.chunk.js → BstEXc3S.chunk.js} +2 -2
  56. package/dist/scripts/{BB4BMfoF.chunk.js.map → BstEXc3S.chunk.js.map} +1 -1
  57. package/dist/scripts/{UKh27rvb.chunk.js → BywIfJt2.chunk.js} +2 -2
  58. package/dist/scripts/{UKh27rvb.chunk.js.map → BywIfJt2.chunk.js.map} +1 -1
  59. package/dist/scripts/{DnnefRY8.chunk.js → C-LPkfPE.chunk.js} +2 -2
  60. package/dist/scripts/{DnnefRY8.chunk.js.map → C-LPkfPE.chunk.js.map} +1 -1
  61. package/dist/scripts/{DTbWcpBu.chunk.js → C1Qw3n1d.chunk.js} +2 -2
  62. package/dist/scripts/{DTbWcpBu.chunk.js.map → C1Qw3n1d.chunk.js.map} +1 -1
  63. package/dist/scripts/{B1T8c6eo.chunk.js → C3mFDLV3.chunk.js} +2 -2
  64. package/dist/scripts/{B1T8c6eo.chunk.js.map → C3mFDLV3.chunk.js.map} +1 -1
  65. package/dist/scripts/{DS5mdrnT.chunk.js → C6fO3h1r.chunk.js} +2 -2
  66. package/dist/scripts/{DS5mdrnT.chunk.js.map → C6fO3h1r.chunk.js.map} +1 -1
  67. package/dist/scripts/{ZQHAaDA4.chunk.js → CCMRIPPt.chunk.js} +2 -2
  68. package/dist/scripts/{ZQHAaDA4.chunk.js.map → CCMRIPPt.chunk.js.map} +1 -1
  69. package/dist/scripts/{BTcJz7pn.chunk.js → CChgvLUa.chunk.js} +2 -2
  70. package/dist/scripts/{BTcJz7pn.chunk.js.map → CChgvLUa.chunk.js.map} +1 -1
  71. package/dist/scripts/{ntpj3L_6.chunk.js → CFW_ZII3.chunk.js} +2 -2
  72. package/dist/scripts/{ntpj3L_6.chunk.js.map → CFW_ZII3.chunk.js.map} +1 -1
  73. package/dist/scripts/{BrnEZwBv.chunk.js → CK--g-b2.chunk.js} +2 -2
  74. package/dist/scripts/{BrnEZwBv.chunk.js.map → CK--g-b2.chunk.js.map} +1 -1
  75. package/dist/scripts/{BUa-w0OB.chunk.js → CLHdZVLk.chunk.js} +2 -2
  76. package/dist/scripts/{BUa-w0OB.chunk.js.map → CLHdZVLk.chunk.js.map} +1 -1
  77. package/dist/scripts/{DZfmH_sm.chunk.js → CPh1-eHt.chunk.js} +2 -2
  78. package/dist/scripts/{DZfmH_sm.chunk.js.map → CPh1-eHt.chunk.js.map} +1 -1
  79. package/dist/scripts/{Do_JksC6.chunk.js → CR5m94hr.chunk.js} +2 -2
  80. package/dist/scripts/{Do_JksC6.chunk.js.map → CR5m94hr.chunk.js.map} +1 -1
  81. package/dist/scripts/{AqddT7uG.chunk.js → CRLSpEeB.chunk.js} +2 -2
  82. package/dist/scripts/{AqddT7uG.chunk.js.map → CRLSpEeB.chunk.js.map} +1 -1
  83. package/dist/scripts/{B12bgIDA.chunk.js → CRucttfI.chunk.js} +2 -2
  84. package/dist/scripts/{B12bgIDA.chunk.js.map → CRucttfI.chunk.js.map} +1 -1
  85. package/dist/scripts/{BQzfQiXW.chunk.js → CShgo4dC.chunk.js} +2 -2
  86. package/dist/scripts/{BQzfQiXW.chunk.js.map → CShgo4dC.chunk.js.map} +1 -1
  87. package/dist/scripts/{ZubgjRBI.chunk.js → CUzXnfFV.chunk.js} +2 -2
  88. package/dist/scripts/{ZubgjRBI.chunk.js.map → CUzXnfFV.chunk.js.map} +1 -1
  89. package/dist/scripts/CYOWjQoo.chunk.js +2 -0
  90. package/dist/scripts/{DtSsOmYM.chunk.js.map → CYOWjQoo.chunk.js.map} +1 -1
  91. package/dist/scripts/{By-zFi71.chunk.js → CfBC-dR0.chunk.js} +2 -2
  92. package/dist/scripts/{By-zFi71.chunk.js.map → CfBC-dR0.chunk.js.map} +1 -1
  93. package/dist/scripts/{CCNNRpT4.chunk.js → CkIeXG6b.chunk.js} +3 -3
  94. package/dist/scripts/{CCNNRpT4.chunk.js.map → CkIeXG6b.chunk.js.map} +1 -1
  95. package/dist/scripts/{dkeoKe44.chunk.js → Cl6iPpcm.chunk.js} +2 -2
  96. package/dist/scripts/{dkeoKe44.chunk.js.map → Cl6iPpcm.chunk.js.map} +1 -1
  97. package/dist/scripts/{C4g2BzSP.chunk.js → ClUsbA9Y.chunk.js} +2 -2
  98. package/dist/scripts/{C4g2BzSP.chunk.js.map → ClUsbA9Y.chunk.js.map} +1 -1
  99. package/dist/scripts/{CqLsOdMW.chunk.js → CmOtOw_r.chunk.js} +2 -2
  100. package/dist/scripts/{CqLsOdMW.chunk.js.map → CmOtOw_r.chunk.js.map} +1 -1
  101. package/dist/scripts/{7kGPLcjV.chunk.js → CnY4exCI.chunk.js} +2 -2
  102. package/dist/scripts/{7kGPLcjV.chunk.js.map → CnY4exCI.chunk.js.map} +1 -1
  103. package/dist/scripts/CsQeMool.chunk.js +2 -0
  104. package/dist/scripts/{Cd3-y22Z.chunk.js.map → CsQeMool.chunk.js.map} +1 -1
  105. package/dist/scripts/CvG9Rmqs.chunk.js +2 -0
  106. package/dist/scripts/{B8wmZM8_.chunk.js.map → CvG9Rmqs.chunk.js.map} +1 -1
  107. package/dist/scripts/{BaT3mEZj.chunk.js → CxC74ItP.chunk.js} +2 -2
  108. package/dist/scripts/{BaT3mEZj.chunk.js.map → CxC74ItP.chunk.js.map} +1 -1
  109. package/dist/scripts/{CNPIxxmg.chunk.js → Cy7IUYF-.chunk.js} +2 -2
  110. package/dist/scripts/{CNPIxxmg.chunk.js.map → Cy7IUYF-.chunk.js.map} +1 -1
  111. package/dist/scripts/{U--YIgy7.chunk.js → D0ez9lcb.chunk.js} +2 -2
  112. package/dist/scripts/{U--YIgy7.chunk.js.map → D0ez9lcb.chunk.js.map} +1 -1
  113. package/dist/scripts/{Be7jUiN-.chunk.js → D4mm5Ivp.chunk.js} +2 -2
  114. package/dist/scripts/{Be7jUiN-.chunk.js.map → D4mm5Ivp.chunk.js.map} +1 -1
  115. package/dist/scripts/{DEle-NIZ.chunk.js → D8qOjT5-.chunk.js} +2 -2
  116. package/dist/scripts/{DEle-NIZ.chunk.js.map → D8qOjT5-.chunk.js.map} +1 -1
  117. package/dist/scripts/{CTRlFXGF.chunk.js → DAQLTaLS.chunk.js} +2 -2
  118. package/dist/scripts/{CTRlFXGF.chunk.js.map → DAQLTaLS.chunk.js.map} +1 -1
  119. package/dist/scripts/{DcF9nran.chunk.js → DBXJjLCV.chunk.js} +2 -2
  120. package/dist/scripts/{DcF9nran.chunk.js.map → DBXJjLCV.chunk.js.map} +1 -1
  121. package/dist/scripts/{rXZnQHdQ.chunk.js → DEZb99RP.chunk.js} +2 -2
  122. package/dist/scripts/{rXZnQHdQ.chunk.js.map → DEZb99RP.chunk.js.map} +1 -1
  123. package/dist/scripts/{WFbXX0u1.chunk.js → DHRuhDvn.chunk.js} +2 -2
  124. package/dist/scripts/{WFbXX0u1.chunk.js.map → DHRuhDvn.chunk.js.map} +1 -1
  125. package/dist/scripts/{B3s6jAFl.chunk.js → DK6DK5bG.chunk.js} +2 -2
  126. package/dist/scripts/{B3s6jAFl.chunk.js.map → DK6DK5bG.chunk.js.map} +1 -1
  127. package/dist/scripts/{B8lGJWZL.chunk.js → DKKFbyeH.chunk.js} +2 -2
  128. package/dist/scripts/{B8lGJWZL.chunk.js.map → DKKFbyeH.chunk.js.map} +1 -1
  129. package/dist/scripts/{4pboFAH2.chunk.js → DOaducO2.chunk.js} +2 -2
  130. package/dist/scripts/{4pboFAH2.chunk.js.map → DOaducO2.chunk.js.map} +1 -1
  131. package/dist/scripts/{tDL65UQp.chunk.js → DOiD6is_.chunk.js} +2 -2
  132. package/dist/scripts/{tDL65UQp.chunk.js.map → DOiD6is_.chunk.js.map} +1 -1
  133. package/dist/scripts/{8ED1-ESq.chunk.js → DTK-qxAt.chunk.js} +2 -2
  134. package/dist/scripts/{8ED1-ESq.chunk.js.map → DTK-qxAt.chunk.js.map} +1 -1
  135. package/dist/scripts/{Dqn_DM3j.chunk.js → DUBTSAcY.chunk.js} +2 -2
  136. package/dist/scripts/{Dqn_DM3j.chunk.js.map → DUBTSAcY.chunk.js.map} +1 -1
  137. package/dist/scripts/{CyDCS7Ld.chunk.js → D_LdmZHS.chunk.js} +2 -2
  138. package/dist/scripts/{CyDCS7Ld.chunk.js.map → D_LdmZHS.chunk.js.map} +1 -1
  139. package/dist/scripts/{p02rVyN7.chunk.js → DclQzF2e.chunk.js} +2 -2
  140. package/dist/scripts/{p02rVyN7.chunk.js.map → DclQzF2e.chunk.js.map} +1 -1
  141. package/dist/scripts/{DcCFRClj.chunk.js → DdtN_4m8.chunk.js} +2 -2
  142. package/dist/scripts/{DcCFRClj.chunk.js.map → DdtN_4m8.chunk.js.map} +1 -1
  143. package/dist/scripts/{CErthkSN.chunk.js → Dl3gfAlJ.chunk.js} +2 -2
  144. package/dist/scripts/{CErthkSN.chunk.js.map → Dl3gfAlJ.chunk.js.map} +1 -1
  145. package/dist/scripts/{DjBZy08c.chunk.js → DmRO_2e4.chunk.js} +2 -2
  146. package/dist/scripts/{DjBZy08c.chunk.js.map → DmRO_2e4.chunk.js.map} +1 -1
  147. package/dist/scripts/{Cvd9v1E1.chunk.js → DmokEdyU.chunk.js} +2 -2
  148. package/dist/scripts/{Cvd9v1E1.chunk.js.map → DmokEdyU.chunk.js.map} +1 -1
  149. package/dist/scripts/DmspKarQ.chunk.js +2 -0
  150. package/dist/scripts/{2CBDy9LJ.chunk.js.map → DmspKarQ.chunk.js.map} +1 -1
  151. package/dist/scripts/{FNG4Y7Lo.chunk.js → Dp5BFZBL.chunk.js} +2 -2
  152. package/dist/scripts/{FNG4Y7Lo.chunk.js.map → Dp5BFZBL.chunk.js.map} +1 -1
  153. package/dist/scripts/{BfXH3uXe.chunk.js → Dq6x6nwc.chunk.js} +2 -2
  154. package/dist/scripts/{BfXH3uXe.chunk.js.map → Dq6x6nwc.chunk.js.map} +1 -1
  155. package/dist/scripts/{B4yjmogh.chunk.js → DqA_gGV1.chunk.js} +2 -2
  156. package/dist/scripts/{B4yjmogh.chunk.js.map → DqA_gGV1.chunk.js.map} +1 -1
  157. package/dist/scripts/{CrO_Xwqt.chunk.js → EuVY33AH.chunk.js} +2 -2
  158. package/dist/scripts/{CrO_Xwqt.chunk.js.map → EuVY33AH.chunk.js.map} +1 -1
  159. package/dist/scripts/{BI-Q7Pp8.chunk.js → Gydr0_mB.chunk.js} +2 -2
  160. package/dist/scripts/{BI-Q7Pp8.chunk.js.map → Gydr0_mB.chunk.js.map} +1 -1
  161. package/dist/scripts/{BSl_jK0D.chunk.js → Gz6brJ7U.chunk.js} +2 -2
  162. package/dist/scripts/{BSl_jK0D.chunk.js.map → Gz6brJ7U.chunk.js.map} +1 -1
  163. package/dist/scripts/{C09aCK-h.chunk.js → LLIxc2ur.chunk.js} +2 -2
  164. package/dist/scripts/{C09aCK-h.chunk.js.map → LLIxc2ur.chunk.js.map} +1 -1
  165. package/dist/scripts/{BtGKm2NN.chunk.js → RTHvayT_.chunk.js} +2 -2
  166. package/dist/scripts/{BtGKm2NN.chunk.js.map → RTHvayT_.chunk.js.map} +1 -1
  167. package/dist/scripts/{BIjZARsn.chunk.js → S3PkirNo.chunk.js} +2 -2
  168. package/dist/scripts/{BIjZARsn.chunk.js.map → S3PkirNo.chunk.js.map} +1 -1
  169. package/dist/scripts/{CPqMEQCO.chunk.js → Ui4fzBVF.chunk.js} +2 -2
  170. package/dist/scripts/{CPqMEQCO.chunk.js.map → Ui4fzBVF.chunk.js.map} +1 -1
  171. package/dist/scripts/{b5m_EArj.chunk.js → aKxmsW8B.chunk.js} +2 -2
  172. package/dist/scripts/{b5m_EArj.chunk.js.map → aKxmsW8B.chunk.js.map} +1 -1
  173. package/dist/scripts/{Bdc13avs.chunk.js → aNB3gltW.chunk.js} +2 -2
  174. package/dist/scripts/{Bdc13avs.chunk.js.map → aNB3gltW.chunk.js.map} +1 -1
  175. package/dist/scripts/{app-C2tLApiH.js → app-BPynVn5M.js} +3 -3
  176. package/dist/scripts/{app-C2tLApiH.js.map → app-BPynVn5M.js.map} +1 -1
  177. package/dist/scripts/{D_MsBVo0.chunk.js → kUEqukPF.chunk.js} +2 -2
  178. package/dist/scripts/{D_MsBVo0.chunk.js.map → kUEqukPF.chunk.js.map} +1 -1
  179. package/dist/scripts/{nRcKatki.chunk.js → lHEf7Dbp.chunk.js} +2 -2
  180. package/dist/scripts/{nRcKatki.chunk.js.map → lHEf7Dbp.chunk.js.map} +1 -1
  181. package/dist/scripts/{CeF-ZKL3.chunk.js → m2GRn15O.chunk.js} +2 -2
  182. package/dist/scripts/{CeF-ZKL3.chunk.js.map → m2GRn15O.chunk.js.map} +1 -1
  183. package/dist/scripts/{CHSGgiBB.chunk.js → wrAdddK5.chunk.js} +2 -2
  184. package/dist/scripts/{CHSGgiBB.chunk.js.map → wrAdddK5.chunk.js.map} +1 -1
  185. package/package.json +1 -1
  186. package/dist/scripts/0l0N-xl4.chunk.js +0 -2
  187. package/dist/scripts/2CBDy9LJ.chunk.js +0 -2
  188. package/dist/scripts/B8wmZM8_.chunk.js +0 -2
  189. package/dist/scripts/C_l_6pBR.chunk.js +0 -2
  190. package/dist/scripts/Cd3-y22Z.chunk.js +0 -2
  191. package/dist/scripts/CpOQf5WX.chunk.js +0 -2
  192. package/dist/scripts/DADu9kRW.chunk.js +0 -2
  193. package/dist/scripts/DtSsOmYM.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-C2tLApiH.js";import{T as j}from"./DcF9nran.chunk.js";import{T as r}from"./4pboFAH2.chunk.js";import"./B4yjmogh.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=dkeoKe44.chunk.js.map
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-BPynVn5M.js";import{T as j}from"./DBXJjLCV.chunk.js";import{T as r}from"./DOaducO2.chunk.js";import"./DqA_gGV1.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=Cl6iPpcm.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dkeoKe44.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
+ {"version":3,"file":"Cl6iPpcm.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{D as h,U as g,L as u,a3 as d,a5 as m,aa as f,aD as p,q as E,a6 as P}from"./app-C2tLApiH.js";import{u as U}from"./BQzfQiXW.chunk.js";const c="shared.verifiedEmailError";class q extends h{constructor(e,r,s){super("VerifiedEmailRequiredError"),this.message=e,this.liteUrl=r,this.hasLite=s}get name(){return"VerifiedEmailRequiredError"}get dialogOptions(){const e=g.safeUrlConcat(this.liteUrl,"settings/account");return{title:u.getPhrase(c,"heading"),text:this.hasLite?`${this.message} ${u.getPhrase(c,"visitSettings",{href:e})}`:this.message,buttons:[{text:u.getPhrase(c,"close"),className:"btn btn-dark",success:!0}]}}}const R=()=>{var a;const t=d(m.currentUser()),e=d(((a=t.data)==null?void 0:a.isAuthenticated)&&f.userProducts()),r=!e.hasCompleted;return{hasProduct:i=>{var o;return r||e.hasError||!((o=e.data)!=null&&o.length)?!1:e.data.some(n=>n.id===i)},products:e,isLoadingProducts:r}};function S(){const t=U(),{hasProduct:e,isLoadingProducts:r}=R(),s=d(p.config());function a(i,o,n){var l;if(!i.responseJSON||((l=i.responseJSON)==null?void 0:l.type)!=="no-email"){t.error(o);return}E.throw(new q(n,s.data.liteUrl,e(P.Primary)))}return{handleGenerateReportError:a,loading:!s.hasCompleted||r}}export{S as u};
2
- //# sourceMappingURL=C4g2BzSP.chunk.js.map
1
+ import{D as h,U as g,L as u,a3 as d,a5 as m,aa as f,aD as p,q as E,a6 as P}from"./app-BPynVn5M.js";import{u as U}from"./CShgo4dC.chunk.js";const c="shared.verifiedEmailError";class q extends h{constructor(e,r,s){super("VerifiedEmailRequiredError"),this.message=e,this.liteUrl=r,this.hasLite=s}get name(){return"VerifiedEmailRequiredError"}get dialogOptions(){const e=g.safeUrlConcat(this.liteUrl,"settings/account");return{title:u.getPhrase(c,"heading"),text:this.hasLite?`${this.message} ${u.getPhrase(c,"visitSettings",{href:e})}`:this.message,buttons:[{text:u.getPhrase(c,"close"),className:"btn btn-dark",success:!0}]}}}const R=()=>{var a;const t=d(m.currentUser()),e=d(((a=t.data)==null?void 0:a.isAuthenticated)&&f.userProducts()),r=!e.hasCompleted;return{hasProduct:i=>{var o;return r||e.hasError||!((o=e.data)!=null&&o.length)?!1:e.data.some(n=>n.id===i)},products:e,isLoadingProducts:r}};function S(){const t=U(),{hasProduct:e,isLoadingProducts:r}=R(),s=d(p.config());function a(i,o,n){var l;if(!i.responseJSON||((l=i.responseJSON)==null?void 0:l.type)!=="no-email"){t.error(o);return}E.throw(new q(n,s.data.liteUrl,e(P.Primary)))}return{handleGenerateReportError:a,loading:!s.hasCompleted||r}}export{S as u};
2
+ //# sourceMappingURL=ClUsbA9Y.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"C4g2BzSP.chunk.js","sources":["../../../../libs/shared/src/errors/general/verified-email/VerifiedEmailRequiredError.ts","../../../../libs/shared/src/hooks/UseProducts.ts","../../../../libs/shared/src/hooks/useVerifiedEmailRequiredErrorHandler.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.verifiedEmailError';\n\nexport class VerifiedEmailRequiredError extends DialogError {\n public message: string;\n public liteUrl: string;\n public hasLite: boolean;\n\n constructor(message: string, liteUrl: string, hasLite: boolean) {\n super('VerifiedEmailRequiredError');\n\n this.message = message;\n this.liteUrl = liteUrl;\n this.hasLite = hasLite;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'VerifiedEmailRequiredError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n const href = UrlHelper.safeUrlConcat(this.liteUrl, 'settings/account');\n\n return {\n title: LanguageService.getPhrase(namespace, 'heading'),\n text: this.hasLite\n ? `${this.message} ${LanguageService.getPhrase(namespace, 'visitSettings', { href })}`\n : this.message,\n buttons: [{\n text: LanguageService.getPhrase(namespace, 'close'),\n className: 'btn btn-dark',\n success: true\n }]\n };\n }\n}","import { Flight } from 'libs/common/flight';\n\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { ProductRequests } from 'libs/shared/flight-requests/ProductRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, Product } from 'libs/shared/interfaces';\n\nexport type HasProductFunc = (productId: ProductId) => boolean;\n\nexport interface UseProductsResponse {\n hasProduct: (product: ProductId) => boolean;\n products: Flight.Response<Product[]>;\n isLoadingProducts: boolean;\n}\n\nexport const useProducts = (): UseProductsResponse => {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const products = Flight.useBasicFetch<Product[]>(currentUser.data?.isAuthenticated && ProductRequests.userProducts());\n const isLoadingProducts = !products.hasCompleted;\n\n const hasProduct = (productId: ProductId) => {\n if (isLoadingProducts || products.hasError)\n return false;\n\n if (!products.data?.length)\n return false;\n\n return products.data.some(product => product.id === productId);\n };\n\n return {\n hasProduct,\n products,\n isLoadingProducts\n };\n};","import { Core } from 'libs/common/backbone/index';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { VerifiedEmailRequiredError } from 'libs/shared/errors/general/verified-email/VerifiedEmailRequiredError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { Config } from 'libs/shared/interfaces';\n\nexport function useVerifiedEmailRequiredErrorHandler() {\n const alerts = useAlerts();\n const { hasProduct, isLoadingProducts } = useProducts();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n function handleGenerateReportError(xhr: Xhr, message: string, noEmailError: string) {\n if (!xhr.responseJSON || xhr.responseJSON?.type !== 'no-email') {\n alerts.error(message);\n return;\n }\n\n Core.ErrorHelper.throw(\n new VerifiedEmailRequiredError(noEmailError, config.data.liteUrl, hasProduct(ProductId.Primary))\n );\n }\n\n return {\n handleGenerateReportError,\n loading: !config.hasCompleted || isLoadingProducts\n };\n}"],"names":["namespace","VerifiedEmailRequiredError","DialogError","message","liteUrl","hasLite","href","UrlHelper","LanguageService","useProducts","currentUser","Flight.useBasicFetch","UserRequests","products","_a","ProductRequests","isLoadingProducts","productId","product","useVerifiedEmailRequiredErrorHandler","alerts","useAlerts","hasProduct","config","ConfigRequests","handleGenerateReportError","xhr","noEmailError","Core.ErrorHelper","ProductId"],"mappings":"2IAMA,MAAMA,EAAY,4BAEX,MAAMC,UAAmCC,CAAY,CAK1D,YAAYC,EAAiBC,EAAiBC,EAAkB,CAC9D,MAAM,4BAA4B,EAElC,KAAK,QAAUF,EACf,KAAK,QAAUC,EACf,KAAK,QAAUC,CACjB,CAGA,IAAW,MAAe,CACxB,MAAO,4BACT,CAGA,IAAW,eAA+B,CACxC,MAAMC,EAAOC,EAAU,cAAc,KAAK,QAAS,kBAAkB,EAErE,MAAO,CACL,MAAOC,EAAgB,UAAUR,EAAW,SAAS,EACrD,KAAM,KAAK,QACP,GAAG,KAAK,OAAO,IAAIQ,EAAgB,UAAUR,EAAW,gBAAiB,CAAE,KAAAM,CAAA,CAAM,CAAC,GAClF,KAAK,QACT,QAAS,CAAC,CACR,KAAME,EAAgB,UAAUR,EAAW,OAAO,EAClD,UAAW,eACX,QAAS,EAAA,CACV,CAAA,CAEL,CACF,CC3BO,MAAMS,EAAc,IAA2B,OACpD,MAAMC,EAAcC,EAAkCC,EAAa,aAAa,EAC1EC,EAAWF,IAAgCG,EAAAJ,EAAY,OAAZ,YAAAI,EAAkB,kBAAmBC,EAAgB,cAAc,EAC9GC,EAAoB,CAACH,EAAS,aAYpC,MAAO,CACL,WAXkBI,GAAyB,OAI3C,OAHID,GAAqBH,EAAS,UAG9B,GAACC,EAAAD,EAAS,OAAT,MAAAC,EAAe,QACX,GAEFD,EAAS,KAAK,KAAKK,GAAWA,EAAQ,KAAOD,CAAS,CAC/D,EAIE,SAAAJ,EACA,kBAAAG,CAAA,CAEJ,ECxBO,SAASG,GAAuC,CACrD,MAAMC,EAASC,EAAA,EACT,CAAE,WAAAC,EAAY,kBAAAN,CAAA,EAAsBP,EAAA,EACpCc,EAASZ,EAA6Ba,EAAe,QAAQ,EAEnE,SAASC,EAA0BC,EAAUvB,EAAiBwB,EAAsB,OAClF,GAAI,CAACD,EAAI,gBAAgBZ,EAAAY,EAAI,eAAJ,YAAAZ,EAAkB,QAAS,WAAY,CAC9DM,EAAO,MAAMjB,CAAO,EACpB,MACF,CAEAyB,EAAiB,MACf,IAAI3B,EAA2B0B,EAAcJ,EAAO,KAAK,QAASD,EAAWO,EAAU,OAAO,CAAC,CAAA,CAEnG,CAEA,MAAO,CACL,0BAAAJ,EACA,QAAS,CAACF,EAAO,cAAgBP,CAAA,CAErC"}
1
+ {"version":3,"file":"ClUsbA9Y.chunk.js","sources":["../../../../libs/shared/src/errors/general/verified-email/VerifiedEmailRequiredError.ts","../../../../libs/shared/src/hooks/UseProducts.ts","../../../../libs/shared/src/hooks/useVerifiedEmailRequiredErrorHandler.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.verifiedEmailError';\n\nexport class VerifiedEmailRequiredError extends DialogError {\n public message: string;\n public liteUrl: string;\n public hasLite: boolean;\n\n constructor(message: string, liteUrl: string, hasLite: boolean) {\n super('VerifiedEmailRequiredError');\n\n this.message = message;\n this.liteUrl = liteUrl;\n this.hasLite = hasLite;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'VerifiedEmailRequiredError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n const href = UrlHelper.safeUrlConcat(this.liteUrl, 'settings/account');\n\n return {\n title: LanguageService.getPhrase(namespace, 'heading'),\n text: this.hasLite\n ? `${this.message} ${LanguageService.getPhrase(namespace, 'visitSettings', { href })}`\n : this.message,\n buttons: [{\n text: LanguageService.getPhrase(namespace, 'close'),\n className: 'btn btn-dark',\n success: true\n }]\n };\n }\n}","import { Flight } from 'libs/common/flight';\n\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { ProductRequests } from 'libs/shared/flight-requests/ProductRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, Product } from 'libs/shared/interfaces';\n\nexport type HasProductFunc = (productId: ProductId) => boolean;\n\nexport interface UseProductsResponse {\n hasProduct: (product: ProductId) => boolean;\n products: Flight.Response<Product[]>;\n isLoadingProducts: boolean;\n}\n\nexport const useProducts = (): UseProductsResponse => {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const products = Flight.useBasicFetch<Product[]>(currentUser.data?.isAuthenticated && ProductRequests.userProducts());\n const isLoadingProducts = !products.hasCompleted;\n\n const hasProduct = (productId: ProductId) => {\n if (isLoadingProducts || products.hasError)\n return false;\n\n if (!products.data?.length)\n return false;\n\n return products.data.some(product => product.id === productId);\n };\n\n return {\n hasProduct,\n products,\n isLoadingProducts\n };\n};","import { Core } from 'libs/common/backbone/index';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { VerifiedEmailRequiredError } from 'libs/shared/errors/general/verified-email/VerifiedEmailRequiredError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { Config } from 'libs/shared/interfaces';\n\nexport function useVerifiedEmailRequiredErrorHandler() {\n const alerts = useAlerts();\n const { hasProduct, isLoadingProducts } = useProducts();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n function handleGenerateReportError(xhr: Xhr, message: string, noEmailError: string) {\n if (!xhr.responseJSON || xhr.responseJSON?.type !== 'no-email') {\n alerts.error(message);\n return;\n }\n\n Core.ErrorHelper.throw(\n new VerifiedEmailRequiredError(noEmailError, config.data.liteUrl, hasProduct(ProductId.Primary))\n );\n }\n\n return {\n handleGenerateReportError,\n loading: !config.hasCompleted || isLoadingProducts\n };\n}"],"names":["namespace","VerifiedEmailRequiredError","DialogError","message","liteUrl","hasLite","href","UrlHelper","LanguageService","useProducts","currentUser","Flight.useBasicFetch","UserRequests","products","_a","ProductRequests","isLoadingProducts","productId","product","useVerifiedEmailRequiredErrorHandler","alerts","useAlerts","hasProduct","config","ConfigRequests","handleGenerateReportError","xhr","noEmailError","Core.ErrorHelper","ProductId"],"mappings":"2IAMA,MAAMA,EAAY,4BAEX,MAAMC,UAAmCC,CAAY,CAK1D,YAAYC,EAAiBC,EAAiBC,EAAkB,CAC9D,MAAM,4BAA4B,EAElC,KAAK,QAAUF,EACf,KAAK,QAAUC,EACf,KAAK,QAAUC,CACjB,CAGA,IAAW,MAAe,CACxB,MAAO,4BACT,CAGA,IAAW,eAA+B,CACxC,MAAMC,EAAOC,EAAU,cAAc,KAAK,QAAS,kBAAkB,EAErE,MAAO,CACL,MAAOC,EAAgB,UAAUR,EAAW,SAAS,EACrD,KAAM,KAAK,QACP,GAAG,KAAK,OAAO,IAAIQ,EAAgB,UAAUR,EAAW,gBAAiB,CAAE,KAAAM,CAAA,CAAM,CAAC,GAClF,KAAK,QACT,QAAS,CAAC,CACR,KAAME,EAAgB,UAAUR,EAAW,OAAO,EAClD,UAAW,eACX,QAAS,EAAA,CACV,CAAA,CAEL,CACF,CC3BO,MAAMS,EAAc,IAA2B,OACpD,MAAMC,EAAcC,EAAkCC,EAAa,aAAa,EAC1EC,EAAWF,IAAgCG,EAAAJ,EAAY,OAAZ,YAAAI,EAAkB,kBAAmBC,EAAgB,cAAc,EAC9GC,EAAoB,CAACH,EAAS,aAYpC,MAAO,CACL,WAXkBI,GAAyB,OAI3C,OAHID,GAAqBH,EAAS,UAG9B,GAACC,EAAAD,EAAS,OAAT,MAAAC,EAAe,QACX,GAEFD,EAAS,KAAK,KAAKK,GAAWA,EAAQ,KAAOD,CAAS,CAC/D,EAIE,SAAAJ,EACA,kBAAAG,CAAA,CAEJ,ECxBO,SAASG,GAAuC,CACrD,MAAMC,EAASC,EAAA,EACT,CAAE,WAAAC,EAAY,kBAAAN,CAAA,EAAsBP,EAAA,EACpCc,EAASZ,EAA6Ba,EAAe,QAAQ,EAEnE,SAASC,EAA0BC,EAAUvB,EAAiBwB,EAAsB,OAClF,GAAI,CAACD,EAAI,gBAAgBZ,EAAAY,EAAI,eAAJ,YAAAZ,EAAkB,QAAS,WAAY,CAC9DM,EAAO,MAAMjB,CAAO,EACpB,MACF,CAEAyB,EAAiB,MACf,IAAI3B,EAA2B0B,EAAcJ,EAAO,KAAK,QAASD,EAAWO,EAAU,OAAO,CAAC,CAAA,CAEnG,CAEA,MAAO,CACL,0BAAAJ,EACA,QAAS,CAACF,EAAO,cAAgBP,CAAA,CAErC"}
@@ -1,4 +1,4 @@
1
- import{at as b,j as e,aq as j,w as y,A as S,G as g,ab as h}from"./app-C2tLApiH.js";import{B as k,a as v}from"./BB4BMfoF.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(a){return e.jsxs(e.Fragment,{children:[!!a.tab.svg&&e.jsx("div",{className:a.tab.name?"pe-1":"",children:e.jsx(g,{svg:a.tab.svg})}),a.tab.name,typeof a.tab.count=="number"&&e.jsx("div",{className:"ps-2",children:e.jsx(k,{type:v.Count,data:a.tab.count})})]})}function D(a){const{borderRadius:d="lg"}=a,c=b();function o(n){n.analyticsData&&n.analyticsOptions&&h.logUserAction(n.analyticsData,n.analyticsOptions)}function u(n){n.active||!n.onSelect||(n.onSelect(),o(n))}function x(n){const s=n.target.value,t=a.tabs.find(f=>f.name===s);!t||t.active||(o(t),S.trigger(t.appLink))}const l=a.tabs.find(n=>n.active),r=a.enableSmallScreenSupport&&(c.sm||c.xs);return e.jsxs("nav",{className:a.className??"",ref:a.containerRef,children:[r&&e.jsx("select",{className:"form-select",onChange:x,value:l==null?void 0:l.name,children:a.tabs.map((n,s)=>{var t;return e.jsx("option",{value:n.name,children:((t=a.formatDisplayText)==null?void 0:t.call(a,n.name))??n.name},s)})}),!r&&e.jsx("ul",{className:`
1
+ import{at as b,j as e,aq as j,w as y,A as S,G as g,ab as h}from"./app-BPynVn5M.js";import{B as k,a as v}from"./BstEXc3S.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(a){return e.jsxs(e.Fragment,{children:[!!a.tab.svg&&e.jsx("div",{className:a.tab.name?"pe-1":"",children:e.jsx(g,{svg:a.tab.svg})}),a.tab.name,typeof a.tab.count=="number"&&e.jsx("div",{className:"ps-2",children:e.jsx(k,{type:v.Count,data:a.tab.count})})]})}function D(a){const{borderRadius:d="lg"}=a,c=b();function o(n){n.analyticsData&&n.analyticsOptions&&h.logUserAction(n.analyticsData,n.analyticsOptions)}function u(n){n.active||!n.onSelect||(n.onSelect(),o(n))}function x(n){const s=n.target.value,t=a.tabs.find(f=>f.name===s);!t||t.active||(o(t),S.trigger(t.appLink))}const l=a.tabs.find(n=>n.active),r=a.enableSmallScreenSupport&&(c.sm||c.xs);return e.jsxs("nav",{className:a.className??"",ref:a.containerRef,children:[r&&e.jsx("select",{className:"form-select",onChange:x,value:l==null?void 0:l.name,children:a.tabs.map((n,s)=>{var t;return e.jsx("option",{value:n.name,children:((t=a.formatDisplayText)==null?void 0:t.call(a,n.name))??n.name},s)})}),!r&&e.jsx("ul",{className:`
2
2
  list-unstyled d-inline-block m-0 ${i.pillTabSelector}
3
3
  ${d?i.radiusSmall:""}
4
4
  ${a.listClassName}
@@ -12,4 +12,4 @@ import{at as b,j as e,aq as j,w as y,A as S,G as g,ab as h}from"./app-C2tLApiH.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:e.jsx(m,{tab:n})})},s))})]})}export{D as P};
15
- //# sourceMappingURL=CqLsOdMW.chunk.js.map
15
+ //# sourceMappingURL=CmOtOw_r.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CqLsOdMW.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}>\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,GACCjB,EAAAA,IAAC,SAAA,CAAO,UAAU,cAAc,SAAUY,EAAgB,MAAOI,GAAA,YAAAA,EAAa,KAC3E,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
+ {"version":3,"file":"CmOtOw_r.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}>\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,GACCjB,EAAAA,IAAC,SAAA,CAAO,UAAU,cAAc,SAAUY,EAAgB,MAAOI,GAAA,YAAAA,EAAa,KAC3E,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{co as g,L as t,q as o,aU as a,cp as c,cq as p}from"./app-C2tLApiH.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=7kGPLcjV.chunk.js.map
1
+ import{co as g,L as t,q as o,aU as a,cp as c,cq as p}from"./app-BPynVn5M.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=CnY4exCI.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"7kGPLcjV.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
+ {"version":3,"file":"CnY4exCI.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"}
@@ -0,0 +1,2 @@
1
+ import{a8 as o,aP as r}from"./app-BPynVn5M.js";const a={preventScrollTop(){o.Radio.channel(r.SHELL).trigger("prevent:scroll:top")}};export{a as S};
2
+ //# sourceMappingURL=CsQeMool.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Cd3-y22Z.chunk.js","sources":["../../../../libs/common/src/backbone/utils/ScrollHelper.ts"],"sourcesContent":["import { Radio } from 'backbone';\n\nimport { CommonChannels } from '../constants/CommonChannels';\n\nexport const ScrollHelper = {\n // Will prevent scrolling to the top of the page when applinks are triggered\n preventScrollTop(): void {\n Radio.channel(CommonChannels.SHELL).trigger('prevent:scroll:top');\n }\n};"],"names":["ScrollHelper","Radio","CommonChannels"],"mappings":"+CAIO,MAAMA,EAAe,CAE1B,kBAAyB,CACvBC,EAAAA,MAAM,QAAQC,EAAe,KAAK,EAAE,QAAQ,oBAAoB,CAClE,CACF"}
1
+ {"version":3,"file":"CsQeMool.chunk.js","sources":["../../../../libs/common/src/backbone/utils/ScrollHelper.ts"],"sourcesContent":["import { Radio } from 'backbone';\n\nimport { CommonChannels } from '../constants/CommonChannels';\n\nexport const ScrollHelper = {\n // Will prevent scrolling to the top of the page when applinks are triggered\n preventScrollTop(): void {\n Radio.channel(CommonChannels.SHELL).trigger('prevent:scroll:top');\n }\n};"],"names":["ScrollHelper","Radio","CommonChannels"],"mappings":"+CAIO,MAAMA,EAAe,CAE1B,kBAAyB,CACvBC,EAAAA,MAAM,QAAQC,EAAe,KAAK,EAAE,QAAQ,oBAAoB,CAClE,CACF"}
@@ -0,0 +1,2 @@
1
+ import{j as o,E as t}from"./app-BPynVn5M.js";function i({error:r}){return o.jsx(t,{error:r})}export{i as NotFoundView};
2
+ //# sourceMappingURL=CvG9Rmqs.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"B8wmZM8_.chunk.js","sources":["../../src/apps/default/views/not-found/ExchangeNotFoundView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { ErrorView } from 'apps/default/views/error/ExchangeErrorView';\n\ninterface NotFoundViewProps {\n error: ErrorPageError;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function NotFoundView({ error }: NotFoundViewProps): React.ReactElement {\n return <ErrorView error={error} />;\n}"],"names":["NotFoundView","error","jsx","ErrorView"],"mappings":"6CAWO,SAASA,EAAa,CAAE,MAAAC,GAAgD,CAC7E,OAAOC,MAACC,GAAU,MAAAF,EAAc,CAClC"}
1
+ {"version":3,"file":"CvG9Rmqs.chunk.js","sources":["../../src/apps/default/views/not-found/ExchangeNotFoundView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { ErrorView } from 'apps/default/views/error/ExchangeErrorView';\n\ninterface NotFoundViewProps {\n error: ErrorPageError;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function NotFoundView({ error }: NotFoundViewProps): React.ReactElement {\n return <ErrorView error={error} />;\n}"],"names":["NotFoundView","error","jsx","ErrorView"],"mappings":"6CAWO,SAASA,EAAa,CAAE,MAAAC,GAAgD,CAC7E,OAAOC,MAACC,GAAU,MAAAF,EAAc,CAClC"}
@@ -1,2 +1,2 @@
1
- import{_ as r,aO as n}from"./app-C2tLApiH.js";function v(e,t){const[o,i]=r(`exchange:preview:${e}`,t?n.getPreviousRoute():void 0);return{previewContext:o,clearPreviewContext:()=>i(void 0)}}export{v as u};
2
- //# sourceMappingURL=BaT3mEZj.chunk.js.map
1
+ import{_ as r,aO as n}from"./app-BPynVn5M.js";function v(e,t){const[o,i]=r(`exchange:preview:${e}`,t?n.getPreviousRoute():void 0);return{previewContext:o,clearPreviewContext:()=>i(void 0)}}export{v as u};
2
+ //# sourceMappingURL=CxC74ItP.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaT3mEZj.chunk.js","sources":["../../src/apps/exchange/hooks/usePreviewContext.ts"],"sourcesContent":["import { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\ninterface ContentViewModel {\n appLink: Core.AppLink;\n}\n\nexport function usePreviewContext(videoId: string, init: boolean) {\n const [ previewContext, setViewModel ] = useViewModel<ContentViewModel>(\n `exchange:preview:${videoId}`,\n init ? ContextService.getPreviousRoute() : undefined\n );\n\n return {\n previewContext,\n clearPreviewContext: () => setViewModel(undefined)\n };\n}"],"names":["usePreviewContext","videoId","init","previewContext","setViewModel","useViewModel","ContextService"],"mappings":"8CASO,SAASA,EAAkBC,EAAiBC,EAAe,CAChE,KAAM,CAAEC,EAAgBC,CAAa,EAAIC,EACvC,oBAAoBJ,CAAO,GAC3BC,EAAOI,EAAe,mBAAqB,MAAA,EAG7C,MAAO,CACL,eAAAH,EACA,oBAAqB,IAAMC,EAAa,MAAS,CAAA,CAErD"}
1
+ {"version":3,"file":"CxC74ItP.chunk.js","sources":["../../src/apps/exchange/hooks/usePreviewContext.ts"],"sourcesContent":["import { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\ninterface ContentViewModel {\n appLink: Core.AppLink;\n}\n\nexport function usePreviewContext(videoId: string, init: boolean) {\n const [ previewContext, setViewModel ] = useViewModel<ContentViewModel>(\n `exchange:preview:${videoId}`,\n init ? ContextService.getPreviousRoute() : undefined\n );\n\n return {\n previewContext,\n clearPreviewContext: () => setViewModel(undefined)\n };\n}"],"names":["usePreviewContext","videoId","init","previewContext","setViewModel","useViewModel","ContextService"],"mappings":"8CASO,SAASA,EAAkBC,EAAiBC,EAAe,CAChE,KAAM,CAAEC,EAAgBC,CAAa,EAAIC,EACvC,oBAAoBJ,CAAO,GAC3BC,EAAOI,EAAe,mBAAqB,MAAA,EAG7C,MAAO,CACL,eAAAH,EACA,oBAAqB,IAAMC,EAAa,MAAS,CAAA,CAErD"}
@@ -1,2 +1,2 @@
1
- import{a3 as f,T as o,a as p,b as c,L as E,ao as A}from"./app-C2tLApiH.js";import{L}from"./BtGKm2NN.chunk.js";function x(a){var g,h;const{folderId:e,firstItem:r,lastItem:u,getAppLink:m}=a,l=f(e&&L.folderParentTree(e));if(!((h=(g=l.data)==null?void 0:g.children)!=null&&h.length))return[];const s=l.data.children.map(t=>({node:t,path:[t]}));let n=[];for(;s.length;){const{node:t,path:d}=s.pop();t.data.id.toString()===e.toString()&&(n=d.map(i=>({name:i.data.name,appLink:m(i)}))),t.children&&s.push(...t.children.map(i=>({node:i,path:[...d,i]})))}return r&&n.unshift(r),u&&n.push(u),a.setLastActive!==!1&&(n[n.length-1].active=!0),n}const S="exchange.exchangeUtils",k=E.encloseNamespace(S);function y(a){return{application:c.EXCHANGE,action:p.Exchange.PREVIEW,args:[a.id,o.slugify(a.name)]}}function C(a,e){return a!=null&&a.id?{application:c.EXCHANGE,action:p.Exchange.SERIES,args:[a.id,o.slugify(a.name)],params:{sort:e??A.Series}}:null}function I(a,e){return a?{application:c.EXCHANGE,action:p.Exchange.FOLDER,args:[a.id,o.slugify(a.name)],params:{sort:e}}:null}function G(a,e){return x({folderId:a,getAppLink:r=>I(r.data,e),firstItem:{name:k("exchangeArchive"),appLink:{application:c.EXCHANGE,action:p.Exchange.INDEX}}})}export{y as a,C as b,I as g,G as u};
2
- //# sourceMappingURL=CNPIxxmg.chunk.js.map
1
+ import{a3 as f,T as o,a as p,b as c,L as E,ao as A}from"./app-BPynVn5M.js";import{L}from"./RTHvayT_.chunk.js";function x(a){var g,h;const{folderId:e,firstItem:r,lastItem:u,getAppLink:m}=a,l=f(e&&L.folderParentTree(e));if(!((h=(g=l.data)==null?void 0:g.children)!=null&&h.length))return[];const s=l.data.children.map(t=>({node:t,path:[t]}));let n=[];for(;s.length;){const{node:t,path:d}=s.pop();t.data.id.toString()===e.toString()&&(n=d.map(i=>({name:i.data.name,appLink:m(i)}))),t.children&&s.push(...t.children.map(i=>({node:i,path:[...d,i]})))}return r&&n.unshift(r),u&&n.push(u),a.setLastActive!==!1&&(n[n.length-1].active=!0),n}const S="exchange.exchangeUtils",k=E.encloseNamespace(S);function y(a){return{application:c.EXCHANGE,action:p.Exchange.PREVIEW,args:[a.id,o.slugify(a.name)]}}function C(a,e){return a!=null&&a.id?{application:c.EXCHANGE,action:p.Exchange.SERIES,args:[a.id,o.slugify(a.name)],params:{sort:e??A.Series}}:null}function I(a,e){return a?{application:c.EXCHANGE,action:p.Exchange.FOLDER,args:[a.id,o.slugify(a.name)],params:{sort:e}}:null}function G(a,e){return x({folderId:a,getAppLink:r=>I(r.data,e),firstItem:{name:k("exchangeArchive"),appLink:{application:c.EXCHANGE,action:p.Exchange.INDEX}}})}export{y as a,C as b,I as g,G as u};
2
+ //# sourceMappingURL=Cy7IUYF-.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CNPIxxmg.chunk.js","sources":["../../../../libs/shared/src/hooks/useBuildBreadcrumbs.ts","../../src/apps/exchange/utils/ExchangeUtils.ts"],"sourcesContent":["import { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { Folder, MasterNestedObject } from 'libs/shared/interfaces';\n\ninterface BuildOptions {\n folderId: string;\n firstItem?: Breadcrumb;\n lastItem?: Breadcrumb;\n getAppLink: (folder: MasterNestedObject<Folder>) => Core.AppLink;\n setLastActive?: boolean;\n}\n\nexport function useBuildBreadcrumbs(options: BuildOptions): Breadcrumb[] {\n const { folderId, firstItem, lastItem, getAppLink } = options;\n\n const parentTree = Flight.useBasicFetch<MasterNestedObject<Folder>>(\n folderId && LibraryRequests.folderParentTree(folderId)\n );\n\n if (!parentTree.data?.children?.length)\n return [];\n\n const searchStack: {\n node: MasterNestedObject<Folder>,\n path: MasterNestedObject<Folder>[]\n }[] = parentTree.data.children.map(c => ({ node: c, path: [c]}));\n\n let breadcrumbs: Breadcrumb[] = [];\n\n while (searchStack.length) {\n const { node, path } = searchStack.pop();\n \n if (node.data.id.toString() === folderId.toString())\n breadcrumbs = path.map(object => ({\n name: object.data.name,\n appLink: getAppLink(object)\n }));\n\n if (node.children)\n searchStack.push(...node.children.map(c => ({ node: c, path: [ ...path, c ]})));\n }\n\n if (firstItem) breadcrumbs.unshift(firstItem);\n if (lastItem) breadcrumbs.push(lastItem);\n\n if (options.setLastActive !== false)\n breadcrumbs[breadcrumbs.length - 1].active = true;\n\n return breadcrumbs;\n}\n ","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { useBuildBreadcrumbs } from 'libs/shared/hooks/useBuildBreadcrumbs';\nimport { Folder, Library, Series, Video } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getVideoAppLink(video: Video): Core.AppLink {\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.PREVIEW,\n args: [ video.id, TextHelper.slugify(video.name) ]\n };\n}\n\nexport function getSeriesAppLink(series: Series, sort?: string): Core.AppLink {\n if (!series?.id)\n return null;\n\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SERIES,\n args: [ series.id, TextHelper.slugify(series.name) ],\n params: {\n sort: sort ?? VideoSortType.Series\n }\n };\n}\n\nexport function getFolderAppLink(folder: Folder, sort?: string): Core.AppLink {\n if (!folder)\n return null;\n\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.FOLDER,\n args: [ folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < (folder.name?.length ?? 0); i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}\n\nexport function useGetFolderBreadcrumbs(folderId: string, sort: VideoSortType): Breadcrumb[] {\n return useBuildBreadcrumbs({\n folderId,\n getAppLink: object => getFolderAppLink(object.data, sort),\n firstItem: {\n name: getPhrase('exchangeArchive'),\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n }\n }\n });\n}"],"names":["useBuildBreadcrumbs","options","folderId","firstItem","lastItem","getAppLink","parentTree","Flight.useBasicFetch","LibraryRequests","_b","_a","searchStack","c","breadcrumbs","node","path","object","namespace","getPhrase","LanguageService","getVideoAppLink","video","AppChannels","Actions","TextHelper","getSeriesAppLink","series","sort","VideoSortType","getFolderAppLink","folder","useGetFolderBreadcrumbs"],"mappings":"8GAeO,SAASA,EAAoBC,EAAqC,SACvE,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,SAAAC,EAAU,WAAAC,GAAeJ,EAEhDK,EAAaC,EACjBL,GAAYM,EAAgB,iBAAiBN,CAAQ,CAAA,EAGvD,GAAI,GAACO,GAAAC,EAAAJ,EAAW,OAAX,YAAAI,EAAiB,WAAjB,MAAAD,EAA2B,QAC9B,MAAO,CAAA,EAET,MAAME,EAGAL,EAAW,KAAK,SAAS,IAAIM,IAAM,CAAE,KAAMA,EAAG,KAAM,CAACA,CAAC,GAAG,EAE/D,IAAIC,EAA4B,CAAA,EAEhC,KAAOF,EAAY,QAAQ,CACzB,KAAM,CAAE,KAAAG,EAAM,KAAAC,GAASJ,EAAY,IAAA,EAE/BG,EAAK,KAAK,GAAG,SAAA,IAAeZ,EAAS,SAAA,IACvCW,EAAcE,EAAK,IAAIC,IAAW,CAChC,KAAMA,EAAO,KAAK,KAClB,QAASX,EAAWW,CAAM,CAAA,EAC1B,GAEAF,EAAK,UACPH,EAAY,KAAK,GAAGG,EAAK,SAAS,QAAU,CAAE,KAAMF,EAAG,KAAM,CAAE,GAAGG,EAAMH,CAAE,CAAA,EAAG,CAAC,CAClF,CAEA,OAAIT,GAAWU,EAAY,QAAQV,CAAS,EACxCC,GAAUS,EAAY,KAAKT,CAAQ,EAEnCH,EAAQ,gBAAkB,KAC5BY,EAAYA,EAAY,OAAS,CAAC,EAAE,OAAS,IAExCA,CACT,CCvCA,MAAMI,EAAY,yBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASG,EAAgBC,EAA4B,CAC1D,MAAO,CACL,YAAaC,EAAY,SACzB,OAAQC,EAAQ,SAAS,QACzB,KAAM,CAAEF,EAAM,GAAIG,EAAW,QAAQH,EAAM,IAAI,CAAE,CAAA,CAErD,CAEO,SAASI,EAAiBC,EAAgBC,EAA6B,CAC5E,OAAKD,GAAA,MAAAA,EAAQ,GAGN,CACL,YAAaJ,EAAY,SACzB,OAAQC,EAAQ,SAAS,OACzB,KAAM,CAAEG,EAAO,GAAIF,EAAW,QAAQE,EAAO,IAAI,CAAE,EACnD,OAAQ,CACN,KAAMC,GAAQC,EAAc,MAAA,CAC9B,EARO,IAUX,CAEO,SAASC,EAAiBC,EAAgBH,EAA6B,CAC5E,OAAKG,EAGE,CACL,YAAaR,EAAY,SACzB,OAAQC,EAAQ,SAAS,OACzB,KAAM,CAAEO,EAAO,GAAIN,EAAW,QAAQM,EAAO,IAAI,CAAE,EACnD,OAAQ,CACN,KAAAH,CAAA,CACF,EARO,IAUX,CAYO,SAASI,EAAwB7B,EAAkByB,EAAmC,CAC3F,OAAO3B,EAAoB,CACzB,SAAAE,EACA,WAAYc,GAAUa,EAAiBb,EAAO,KAAMW,CAAI,EACxD,UAAW,CACT,KAAMT,EAAU,iBAAiB,EACjC,QAAS,CACP,YAAaI,EAAY,SACzB,OAAQC,EAAQ,SAAS,KAAA,CAC3B,CACF,CACD,CACH"}
1
+ {"version":3,"file":"Cy7IUYF-.chunk.js","sources":["../../../../libs/shared/src/hooks/useBuildBreadcrumbs.ts","../../src/apps/exchange/utils/ExchangeUtils.ts"],"sourcesContent":["import { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { Folder, MasterNestedObject } from 'libs/shared/interfaces';\n\ninterface BuildOptions {\n folderId: string;\n firstItem?: Breadcrumb;\n lastItem?: Breadcrumb;\n getAppLink: (folder: MasterNestedObject<Folder>) => Core.AppLink;\n setLastActive?: boolean;\n}\n\nexport function useBuildBreadcrumbs(options: BuildOptions): Breadcrumb[] {\n const { folderId, firstItem, lastItem, getAppLink } = options;\n\n const parentTree = Flight.useBasicFetch<MasterNestedObject<Folder>>(\n folderId && LibraryRequests.folderParentTree(folderId)\n );\n\n if (!parentTree.data?.children?.length)\n return [];\n\n const searchStack: {\n node: MasterNestedObject<Folder>,\n path: MasterNestedObject<Folder>[]\n }[] = parentTree.data.children.map(c => ({ node: c, path: [c]}));\n\n let breadcrumbs: Breadcrumb[] = [];\n\n while (searchStack.length) {\n const { node, path } = searchStack.pop();\n \n if (node.data.id.toString() === folderId.toString())\n breadcrumbs = path.map(object => ({\n name: object.data.name,\n appLink: getAppLink(object)\n }));\n\n if (node.children)\n searchStack.push(...node.children.map(c => ({ node: c, path: [ ...path, c ]})));\n }\n\n if (firstItem) breadcrumbs.unshift(firstItem);\n if (lastItem) breadcrumbs.push(lastItem);\n\n if (options.setLastActive !== false)\n breadcrumbs[breadcrumbs.length - 1].active = true;\n\n return breadcrumbs;\n}\n ","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { useBuildBreadcrumbs } from 'libs/shared/hooks/useBuildBreadcrumbs';\nimport { Folder, Library, Series, Video } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nconst namespace = 'exchange.exchangeUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getVideoAppLink(video: Video): Core.AppLink {\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.PREVIEW,\n args: [ video.id, TextHelper.slugify(video.name) ]\n };\n}\n\nexport function getSeriesAppLink(series: Series, sort?: string): Core.AppLink {\n if (!series?.id)\n return null;\n\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.SERIES,\n args: [ series.id, TextHelper.slugify(series.name) ],\n params: {\n sort: sort ?? VideoSortType.Series\n }\n };\n}\n\nexport function getFolderAppLink(folder: Folder, sort?: string): Core.AppLink {\n if (!folder)\n return null;\n\n return {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.FOLDER,\n args: [ folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < (folder.name?.length ?? 0); i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}\n\nexport function useGetFolderBreadcrumbs(folderId: string, sort: VideoSortType): Breadcrumb[] {\n return useBuildBreadcrumbs({\n folderId,\n getAppLink: object => getFolderAppLink(object.data, sort),\n firstItem: {\n name: getPhrase('exchangeArchive'),\n appLink: {\n application: AppChannels.EXCHANGE,\n action: Actions.Exchange.INDEX\n }\n }\n });\n}"],"names":["useBuildBreadcrumbs","options","folderId","firstItem","lastItem","getAppLink","parentTree","Flight.useBasicFetch","LibraryRequests","_b","_a","searchStack","c","breadcrumbs","node","path","object","namespace","getPhrase","LanguageService","getVideoAppLink","video","AppChannels","Actions","TextHelper","getSeriesAppLink","series","sort","VideoSortType","getFolderAppLink","folder","useGetFolderBreadcrumbs"],"mappings":"8GAeO,SAASA,EAAoBC,EAAqC,SACvE,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,SAAAC,EAAU,WAAAC,GAAeJ,EAEhDK,EAAaC,EACjBL,GAAYM,EAAgB,iBAAiBN,CAAQ,CAAA,EAGvD,GAAI,GAACO,GAAAC,EAAAJ,EAAW,OAAX,YAAAI,EAAiB,WAAjB,MAAAD,EAA2B,QAC9B,MAAO,CAAA,EAET,MAAME,EAGAL,EAAW,KAAK,SAAS,IAAIM,IAAM,CAAE,KAAMA,EAAG,KAAM,CAACA,CAAC,GAAG,EAE/D,IAAIC,EAA4B,CAAA,EAEhC,KAAOF,EAAY,QAAQ,CACzB,KAAM,CAAE,KAAAG,EAAM,KAAAC,GAASJ,EAAY,IAAA,EAE/BG,EAAK,KAAK,GAAG,SAAA,IAAeZ,EAAS,SAAA,IACvCW,EAAcE,EAAK,IAAIC,IAAW,CAChC,KAAMA,EAAO,KAAK,KAClB,QAASX,EAAWW,CAAM,CAAA,EAC1B,GAEAF,EAAK,UACPH,EAAY,KAAK,GAAGG,EAAK,SAAS,QAAU,CAAE,KAAMF,EAAG,KAAM,CAAE,GAAGG,EAAMH,CAAE,CAAA,EAAG,CAAC,CAClF,CAEA,OAAIT,GAAWU,EAAY,QAAQV,CAAS,EACxCC,GAAUS,EAAY,KAAKT,CAAQ,EAEnCH,EAAQ,gBAAkB,KAC5BY,EAAYA,EAAY,OAAS,CAAC,EAAE,OAAS,IAExCA,CACT,CCvCA,MAAMI,EAAY,yBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASG,EAAgBC,EAA4B,CAC1D,MAAO,CACL,YAAaC,EAAY,SACzB,OAAQC,EAAQ,SAAS,QACzB,KAAM,CAAEF,EAAM,GAAIG,EAAW,QAAQH,EAAM,IAAI,CAAE,CAAA,CAErD,CAEO,SAASI,EAAiBC,EAAgBC,EAA6B,CAC5E,OAAKD,GAAA,MAAAA,EAAQ,GAGN,CACL,YAAaJ,EAAY,SACzB,OAAQC,EAAQ,SAAS,OACzB,KAAM,CAAEG,EAAO,GAAIF,EAAW,QAAQE,EAAO,IAAI,CAAE,EACnD,OAAQ,CACN,KAAMC,GAAQC,EAAc,MAAA,CAC9B,EARO,IAUX,CAEO,SAASC,EAAiBC,EAAgBH,EAA6B,CAC5E,OAAKG,EAGE,CACL,YAAaR,EAAY,SACzB,OAAQC,EAAQ,SAAS,OACzB,KAAM,CAAEO,EAAO,GAAIN,EAAW,QAAQM,EAAO,IAAI,CAAE,EACnD,OAAQ,CACN,KAAAH,CAAA,CACF,EARO,IAUX,CAYO,SAASI,EAAwB7B,EAAkByB,EAAmC,CAC3F,OAAO3B,EAAoB,CACzB,SAAAE,EACA,WAAYc,GAAUa,EAAiBb,EAAO,KAAMW,CAAI,EACxD,UAAW,CACT,KAAMT,EAAU,iBAAiB,EACjC,QAAS,CACP,YAAaI,EAAY,SACzB,OAAQC,EAAQ,SAAS,KAAA,CAC3B,CACF,CACD,CACH"}
@@ -1,2 +1,2 @@
1
- import{M as s}from"./app-C2tLApiH.js";const p={isType(e,r){var t;return e!=null&&e.typeId?e.typeId===r:((t=e==null?void 0:e.type)==null?void 0:t.toLowerCase())===s[r].toLowerCase()},isResource(e){return p.isType(e,s.Resource)},isClassification(e){return e.type==="Subject"}};export{p as M};
2
- //# sourceMappingURL=U--YIgy7.chunk.js.map
1
+ import{M as s}from"./app-BPynVn5M.js";const p={isType(e,r){var t;return e!=null&&e.typeId?e.typeId===r:((t=e==null?void 0:e.type)==null?void 0:t.toLowerCase())===s[r].toLowerCase()},isResource(e){return p.isType(e,s.Resource)},isClassification(e){return e.type==="Subject"}};export{p as M};
2
+ //# sourceMappingURL=D0ez9lcb.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"U--YIgy7.chunk.js","sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};"],"names":["MasterTypeHelper","obj","typeId","_a","MasterType"],"mappings":"sCAGO,MAAMA,EAAmB,CAC9B,OAA6BC,EAAUC,EAA8B,OACnE,OAAID,GAAA,MAAAA,EAAK,OACAA,EAAI,SAAWC,IAGjBC,EAAAF,GAAA,YAAAA,EAAK,OAAL,YAAAE,EAAW,iBAAkBC,EAAWF,CAAM,EAAE,YAAA,CACzD,EAEA,WAAWD,EAA2B,CACpC,OAAOD,EAAiB,OAAiBC,EAAKG,EAAW,QAAQ,CACnE,EAEA,iBAAiBH,EAAiC,CAChD,OAAOA,EAAI,OAAS,SACtB,CACF"}
1
+ {"version":3,"file":"D0ez9lcb.chunk.js","sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};"],"names":["MasterTypeHelper","obj","typeId","_a","MasterType"],"mappings":"sCAGO,MAAMA,EAAmB,CAC9B,OAA6BC,EAAUC,EAA8B,OACnE,OAAID,GAAA,MAAAA,EAAK,OACAA,EAAI,SAAWC,IAGjBC,EAAAF,GAAA,YAAAA,EAAK,OAAL,YAAAE,EAAW,iBAAkBC,EAAWF,CAAM,EAAE,YAAA,CACzD,EAEA,WAAWD,EAA2B,CACpC,OAAOD,EAAiB,OAAiBC,EAAKG,EAAW,QAAQ,CACnE,EAEA,iBAAiBH,EAAiC,CAChD,OAAOA,EAAI,OAAS,SACtB,CACF"}
@@ -1,2 +1,2 @@
1
- import{j as e,aq as k,a as f,b as j,a3 as m,R as T,aT as E,aB as P,aU as H,l as I,aD as S}from"./app-C2tLApiH.js";import{h as B}from"./7kGPLcjV.chunk.js";import{u as M}from"./DtSsOmYM.chunk.js";import{P as N,A as b,a as U}from"./CeF-ZKL3.chunk.js";import{L as _}from"./CErthkSN.chunk.js";import{T as D}from"./BTcJz7pn.chunk.js";import{T as V}from"./DcF9nran.chunk.js";import{T as F,a as O}from"./D94KYGFe.chunk.js";import{T as q,a as $}from"./CG9hOZ8J.chunk.js";import{T as u}from"./4pboFAH2.chunk.js";import{u as W}from"./DADu9kRW.chunk.js";import{u as z}from"./D3ZScl6b.chunk.js";import{t as G}from"./B4yjmogh.chunk.js";import"./DEle-NIZ.chunk.js";import"./CqLsOdMW.chunk.js";import"./BB4BMfoF.chunk.js";import"./BlDVEZsX.chunk.js";import"./Bdc13avs.chunk.js";import"./CL_sQPNd.chunk.js";import"./BSl_jK0D.chunk.js";import"./jNYdSQcK.chunk.js";const Z="_itemContainer_84hxn_1",J="_thumbnail_84hxn_12",C={itemContainer:Z,thumbnail:J};function K(a){function d(i,l){switch(i.programType){case N.Video:return{application:j.TV,action:f.Tv.PREVIEW,args:[l,i.id]};case N.Audio:return{application:j.TV,action:f.Tv.RADIO_DOWNLOAD,args:[l,i.id]}}}function t(i){const l=i.globalId.split("-").join("");return`${a.previewUrl}/thumbnail/${l}.jpg`}return e.jsx("div",{className:`${C.itemContainer} rounded mx-4 px-2`,children:e.jsxs(k,{appLink:d(a.program,a.region),className:"d-flex align-items-center justify-content-between py-2 px-3 text-decoration-none",children:[e.jsxs("div",{className:"w-50 d-flex align-items-center",children:[e.jsx("div",{className:`${C.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`,children:e.jsx(_,{src:t(a.program),alt:a.program.title,extraClasses:"w-100 rounded"})}),e.jsxs("div",{className:"d-flex align-items-center",children:[e.jsx("span",{className:"me-1",children:a.name}),a.program.hasAdsFree&&e.jsx(D,{small:!0})]})]}),e.jsx(V,{program:a.program,className:"pointer-events-none",showEndTime:!0})]},a.program.id)})}function Q(a){const{channel:d}=a;return e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("div",{className:"d-flex align-items-center me-3",style:{maxWidth:"7.5rem"},children:e.jsx("img",{className:"w-100",src:d.logoUrl})}),e.jsxs("div",{children:[e.jsx("h1",{className:"h3",children:d.displayName}),e.jsx("p",{className:"mb-0",children:d.description})]})]})}function X(){return e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("div",{className:"partial-loading-background d-flex align-items-center me-3",children:e.jsx("div",{style:{width:"7.5rem"}})}),e.jsxs("div",{className:"w-100",children:[e.jsx("div",{className:"partial-loading-background w-25 h3",children:" "}),e.jsx("p",{className:"partial-loading-background w-100 mb-0",children:" "})]})]})}function Te(a){const d=m(S.config()),t=m(u.region(a.region)),i=m(u.regions()),l=m(u.dateRange(a.region)),g=m(t.data&&u.channels(t.data.code)),s=T.useMemo(()=>{var n;return(n=g.data)==null?void 0:n.find(c=>c.id.toString()===a.channelId.toString())},[g.data]),{setRegion:R}=z(),{showTvGuide:w}=E(),h=m(t.data&&s&&u.programsByChannel(t.data.code,s.name,s.startTime,s.stopTime)),A=T.useMemo(()=>{var p;if(!((p=h.data)!=null&&p.length))return[];const n={};return[...h.data].reverse().forEach(r=>{const o=P.format(G(r.startTime,r.timeZone),"dddd Do MMMM");n[o]||(n[o]=[]),n[o].push(r)}),Object.entries(n).map(([r,o])=>[r,o.reverse()])},[h]);g.hasCompleted&&!s&&B(H.BadRequest),W(t),M([i,g,h]),I({title:s==null?void 0:s.displayName});const L=t.hasCompleted&&i.hasCompleted&&g.hasCompleted&&s&&h.hasCompleted;function y(){var n;return a.selectedRegion?(n=i.data)==null?void 0:n.find(c=>c.code===a.selectedRegion):t.data}const x=y();return e.jsxs(e.Fragment,{children:[e.jsx(q,{region:x}),e.jsxs("div",{className:"d-flex justify-content-between",children:[e.jsx(F,{active:"channels",currentRegion:x,showTvGuide:w}),e.jsx($,{currentRegion:x,regions:i.data,appLink:{application:j.TV,action:f.Tv.CHANNELS},onClick:R})]}),e.jsx(O,{dateRange:l.data,region:t.data}),s?e.jsx(Q,{channel:s}):e.jsx(X,{}),L?e.jsx(e.Fragment,{children:e.jsx(b,{children:A.map(([n,c],p)=>e.jsx(b.Header,{title:n,children:e.jsx("div",{className:"mt-2 pb-2",children:c&&c.map(r=>{var o,v;return e.jsx(K,{name:r.title,program:r,region:t.data.code,previewUrl:(v=d.data)==null?void 0:v.tvPreviewUrls[(o=t.data)==null?void 0:o.code]},r.id)})})},p))})}):e.jsx(U,{})]})}export{Te as TvChannelView};
2
- //# sourceMappingURL=Be7jUiN-.chunk.js.map
1
+ import{j as e,aq as k,a as f,b as j,a3 as m,R as T,aT as E,aB as P,aU as H,l as I,aD as S}from"./app-BPynVn5M.js";import{h as B}from"./CnY4exCI.chunk.js";import{u as M}from"./CYOWjQoo.chunk.js";import{P as N,A as b,a as U}from"./m2GRn15O.chunk.js";import{L as _}from"./Dl3gfAlJ.chunk.js";import{T as D}from"./CChgvLUa.chunk.js";import{T as V}from"./DBXJjLCV.chunk.js";import{T as F,a as O}from"./8VNRK8kQ.chunk.js";import{T as q,a as $}from"./BdNTkb7P.chunk.js";import{T as u}from"./DOaducO2.chunk.js";import{u as W}from"./B6lOCBlR.chunk.js";import{u as z}from"./BKjwB_St.chunk.js";import{t as G}from"./DqA_gGV1.chunk.js";import"./D8qOjT5-.chunk.js";import"./CmOtOw_r.chunk.js";import"./BstEXc3S.chunk.js";import"./BlDVEZsX.chunk.js";import"./aNB3gltW.chunk.js";import"./BEGjWnPj.chunk.js";import"./Gz6brJ7U.chunk.js";import"./Bmmwb7k_.chunk.js";const Z="_itemContainer_84hxn_1",J="_thumbnail_84hxn_12",C={itemContainer:Z,thumbnail:J};function K(a){function d(i,l){switch(i.programType){case N.Video:return{application:j.TV,action:f.Tv.PREVIEW,args:[l,i.id]};case N.Audio:return{application:j.TV,action:f.Tv.RADIO_DOWNLOAD,args:[l,i.id]}}}function t(i){const l=i.globalId.split("-").join("");return`${a.previewUrl}/thumbnail/${l}.jpg`}return e.jsx("div",{className:`${C.itemContainer} rounded mx-4 px-2`,children:e.jsxs(k,{appLink:d(a.program,a.region),className:"d-flex align-items-center justify-content-between py-2 px-3 text-decoration-none",children:[e.jsxs("div",{className:"w-50 d-flex align-items-center",children:[e.jsx("div",{className:`${C.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`,children:e.jsx(_,{src:t(a.program),alt:a.program.title,extraClasses:"w-100 rounded"})}),e.jsxs("div",{className:"d-flex align-items-center",children:[e.jsx("span",{className:"me-1",children:a.name}),a.program.hasAdsFree&&e.jsx(D,{small:!0})]})]}),e.jsx(V,{program:a.program,className:"pointer-events-none",showEndTime:!0})]},a.program.id)})}function Q(a){const{channel:d}=a;return e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("div",{className:"d-flex align-items-center me-3",style:{maxWidth:"7.5rem"},children:e.jsx("img",{className:"w-100",src:d.logoUrl})}),e.jsxs("div",{children:[e.jsx("h1",{className:"h3",children:d.displayName}),e.jsx("p",{className:"mb-0",children:d.description})]})]})}function X(){return e.jsxs("div",{className:"d-flex mb-3",children:[e.jsx("div",{className:"partial-loading-background d-flex align-items-center me-3",children:e.jsx("div",{style:{width:"7.5rem"}})}),e.jsxs("div",{className:"w-100",children:[e.jsx("div",{className:"partial-loading-background w-25 h3",children:" "}),e.jsx("p",{className:"partial-loading-background w-100 mb-0",children:" "})]})]})}function Te(a){const d=m(S.config()),t=m(u.region(a.region)),i=m(u.regions()),l=m(u.dateRange(a.region)),g=m(t.data&&u.channels(t.data.code)),s=T.useMemo(()=>{var n;return(n=g.data)==null?void 0:n.find(c=>c.id.toString()===a.channelId.toString())},[g.data]),{setRegion:R}=z(),{showTvGuide:w}=E(),h=m(t.data&&s&&u.programsByChannel(t.data.code,s.name,s.startTime,s.stopTime)),A=T.useMemo(()=>{var p;if(!((p=h.data)!=null&&p.length))return[];const n={};return[...h.data].reverse().forEach(r=>{const o=P.format(G(r.startTime,r.timeZone),"dddd Do MMMM");n[o]||(n[o]=[]),n[o].push(r)}),Object.entries(n).map(([r,o])=>[r,o.reverse()])},[h]);g.hasCompleted&&!s&&B(H.BadRequest),W(t),M([i,g,h]),I({title:s==null?void 0:s.displayName});const L=t.hasCompleted&&i.hasCompleted&&g.hasCompleted&&s&&h.hasCompleted;function y(){var n;return a.selectedRegion?(n=i.data)==null?void 0:n.find(c=>c.code===a.selectedRegion):t.data}const x=y();return e.jsxs(e.Fragment,{children:[e.jsx(q,{region:x}),e.jsxs("div",{className:"d-flex justify-content-between",children:[e.jsx(F,{active:"channels",currentRegion:x,showTvGuide:w}),e.jsx($,{currentRegion:x,regions:i.data,appLink:{application:j.TV,action:f.Tv.CHANNELS},onClick:R})]}),e.jsx(O,{dateRange:l.data,region:t.data}),s?e.jsx(Q,{channel:s}):e.jsx(X,{}),L?e.jsx(e.Fragment,{children:e.jsx(b,{children:A.map(([n,c],p)=>e.jsx(b.Header,{title:n,children:e.jsx("div",{className:"mt-2 pb-2",children:c&&c.map(r=>{var o,v;return e.jsx(K,{name:r.title,program:r,region:t.data.code,previewUrl:(v=d.data)==null?void 0:v.tvPreviewUrls[(o=t.data)==null?void 0:o.code]},r.id)})})},p))})}):e.jsx(U,{})]})}export{Te as TvChannelView};
2
+ //# sourceMappingURL=D4mm5Ivp.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Be7jUiN-.chunk.js","sources":["../../src/apps/tv/components/tv-accordion-list-item/TvAccordionListItem.tsx","../../src/apps/tv/views/tv-channel/components/tv-channel-header/TvChannelHeader.tsx","../../src/apps/tv/views/tv-channel/partial-loading/PartialTvChannelPrograms.tsx","../../src/apps/tv/views/tv-channel/TvChannelView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAdFreeBadge } from 'apps/tv/components/tv-ad-free-badge/TvAdFreeBadge';\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { ProgramType } from 'apps/tv/interfaces/enums/ProgramType';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\n\nimport styles from './tv-accordion-list-item.module.scss';\n\ninterface TvAccordionListItemProps {\n name: string;\n program: TvProgram;\n region: string;\n showDate?: boolean;\n previewUrl: string;\n}\n\nexport function TvAccordionListItem(props: TvAccordionListItemProps) {\n function getProgramAppLink(program: TvProgram, region: string) {\n switch (program.programType) {\n case ProgramType.Video:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ region, program.id ]\n };\n case ProgramType.Audio:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.RADIO_DOWNLOAD,\n args: [ region, program.id ]\n };\n }\n }\n \n function getThumbnailUrl(program: TvProgram) {\n const globalId = program.globalId.split('-').join('');\n return `${props.previewUrl}/thumbnail/${globalId}.jpg`;\n }\n\n return (\n <div className={`${styles.itemContainer} rounded mx-4 px-2`}>\n <AppLink\n key={props.program.id}\n appLink={getProgramAppLink(props.program, props.region)}\n className='d-flex align-items-center justify-content-between py-2 px-3 text-decoration-none'\n >\n <div className='w-50 d-flex align-items-center'>\n <div className={`${styles.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`}>\n <LazyImage\n src={getThumbnailUrl(props.program)}\n alt={props.program.title}\n extraClasses='w-100 rounded'\n />\n </div>\n <div className='d-flex align-items-center'>\n <span className='me-1'>{props.name}</span>\n {props.program.hasAdsFree && <TvAdFreeBadge small />}\n </div>\n </div>\n <TvProgramTimeBadge program={props.program} className='pointer-events-none' showEndTime />\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\n\ninterface TvChannelHeaderProps {\n channel: TvChannel;\n}\n\nexport function TvChannelHeader(props: TvChannelHeaderProps): JSX.Element {\n const { channel } = props;\n\n return (\n <div className='d-flex mb-3'>\n <div\n className='d-flex align-items-center me-3'\n style={{ maxWidth: '7.5rem' }}>\n <img\n className='w-100'\n src={channel.logoUrl}\n />\n </div>\n <div>\n <h1 className='h3'>{channel.displayName}</h1>\n <p className='mb-0'>{channel.description}</p>\n </div>\n </div>\n );\n}","import React from 'react';\n\nexport function PartialTvChannel() {\n return (\n <div className='d-flex mb-3'>\n <div className='partial-loading-background d-flex align-items-center me-3'>\n <div style={{ width: '7.5rem' }}/>\n </div>\n <div className='w-100'>\n <div className='partial-loading-background w-25 h3'>&nbsp;</div>\n <p className='partial-loading-background w-100 mb-0'>&nbsp;</p>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { AccordionList } from 'shared/components/accordion-list/AccordionList';\nimport { PartialAccordionList } from 'shared/components/accordion-list/partial-loading/PartialAccordionList';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAccordionListItem } from 'apps/tv/components/tv-accordion-list-item/TvAccordionListItem';\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\n\nimport { TvChannelHeader } from './components/tv-channel-header/TvChannelHeader';\nimport { PartialTvChannel } from './partial-loading/PartialTvChannelPrograms';\n\ninterface TvChannelViewProps {\n region: string;\n channelId: string;\n selectedRegion?: string;\n}\n\nexport function TvChannelView(props: TvChannelViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n const channel = React.useMemo(() => {\n return channels.data?.find(c => c.id.toString() === props.channelId.toString());\n }, [channels.data]);\n\n const { setRegion } = useSelectedRegion();\n const { showTvGuide } = useLiteUpgrade();\n\n const programs = Flight.useBasicFetch<TvProgram[]>(\n region.data &&\n channel &&\n TvRequests.programsByChannel(\n region.data.code,\n channel.name,\n channel.startTime,\n channel.stopTime\n )\n );\n\n const grouped = React.useMemo(() => {\n if (!programs.data?.length)\n return [];\n\n const groups: HashObject<TvProgram[]> = {};\n\n [...programs.data].reverse().forEach(program => {\n const startTime = DateHelper.format(toLocalTime(program.startTime, program.timeZone), 'dddd Do MMMM');\n\n if (!groups[startTime])\n groups[startTime] = [];\n\n groups[startTime].push(program);\n });\n const grouped = Object.entries(groups);\n return grouped.map(([ date, program ]) => [ date, program.reverse() ]);\n }, [programs]);\n\n if ((channels.hasCompleted && !channel)) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels, programs ]);\n\n useSetPageMetadata({ title: channel?.displayName });\n\n const dataLoaded =\n region.hasCompleted && regions.hasCompleted && channels.hasCompleted && channel && programs.hasCompleted;\n\n function getCurrentRegion(): TvRegion {\n if (!props.selectedRegion) return region.data;\n\n return regions.data?.find(region => region.code === props.selectedRegion);\n }\n\n const currentRegion = getCurrentRegion();\n\n return (\n <>\n <TvSearchBar region={currentRegion} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='channels'\n currentRegion={currentRegion}\n showTvGuide={showTvGuide}\n />\n <TvRegionSelect\n currentRegion={currentRegion}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n \n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n {channel ? <TvChannelHeader channel={channel} /> : <PartialTvChannel />}\n\n {dataLoaded ? (\n <>\n <AccordionList>\n {grouped.map(([ date, programs ]: [string, TvProgram[]], index) => (\n <AccordionList.Header\n key={index}\n title={date}\n >\n <div className='mt-2 pb-2'>\n {programs && programs.map(program => (\n <TvAccordionListItem\n key={program.id}\n name={program.title}\n program={program}\n region={region.data.code}\n previewUrl={config.data?.tvPreviewUrls[region.data?.code]}\n />\n ))}\n </div>\n </AccordionList.Header>\n ))}\n </AccordionList>\n </>\n ) : (\n <PartialAccordionList />\n )}\n </>\n );\n}"],"names":["TvAccordionListItem","props","getProgramAppLink","program","region","ProgramType","AppChannels","Actions","getThumbnailUrl","globalId","styles","jsxs","AppLink","jsx","LazyImage","TvAdFreeBadge","TvProgramTimeBadge","TvChannelHeader","channel","PartialTvChannel","TvChannelView","config","Flight.useBasicFetch","ConfigRequests","TvRequests","regions","dateRange","channels","React","_a","setRegion","useSelectedRegion","showTvGuide","useLiteUpgrade","programs","grouped","groups","startTime","DateHelper","toLocalTime","date","handleHttpError","HttpStatus","useHandleRegionError","useHandleObjectError","useSetPageMetadata","dataLoaded","getCurrentRegion","currentRegion","Fragment","TvSearchBar","TvTabs","TvRegionSelect","TvInfoAlert","AccordionList","index","_b","PartialAccordionList"],"mappings":"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"}
1
+ {"version":3,"file":"D4mm5Ivp.chunk.js","sources":["../../src/apps/tv/components/tv-accordion-list-item/TvAccordionListItem.tsx","../../src/apps/tv/views/tv-channel/components/tv-channel-header/TvChannelHeader.tsx","../../src/apps/tv/views/tv-channel/partial-loading/PartialTvChannelPrograms.tsx","../../src/apps/tv/views/tv-channel/TvChannelView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAdFreeBadge } from 'apps/tv/components/tv-ad-free-badge/TvAdFreeBadge';\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { ProgramType } from 'apps/tv/interfaces/enums/ProgramType';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\n\nimport styles from './tv-accordion-list-item.module.scss';\n\ninterface TvAccordionListItemProps {\n name: string;\n program: TvProgram;\n region: string;\n showDate?: boolean;\n previewUrl: string;\n}\n\nexport function TvAccordionListItem(props: TvAccordionListItemProps) {\n function getProgramAppLink(program: TvProgram, region: string) {\n switch (program.programType) {\n case ProgramType.Video:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ region, program.id ]\n };\n case ProgramType.Audio:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.RADIO_DOWNLOAD,\n args: [ region, program.id ]\n };\n }\n }\n \n function getThumbnailUrl(program: TvProgram) {\n const globalId = program.globalId.split('-').join('');\n return `${props.previewUrl}/thumbnail/${globalId}.jpg`;\n }\n\n return (\n <div className={`${styles.itemContainer} rounded mx-4 px-2`}>\n <AppLink\n key={props.program.id}\n appLink={getProgramAppLink(props.program, props.region)}\n className='d-flex align-items-center justify-content-between py-2 px-3 text-decoration-none'\n >\n <div className='w-50 d-flex align-items-center'>\n <div className={`${styles.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`}>\n <LazyImage\n src={getThumbnailUrl(props.program)}\n alt={props.program.title}\n extraClasses='w-100 rounded'\n />\n </div>\n <div className='d-flex align-items-center'>\n <span className='me-1'>{props.name}</span>\n {props.program.hasAdsFree && <TvAdFreeBadge small />}\n </div>\n </div>\n <TvProgramTimeBadge program={props.program} className='pointer-events-none' showEndTime />\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\n\ninterface TvChannelHeaderProps {\n channel: TvChannel;\n}\n\nexport function TvChannelHeader(props: TvChannelHeaderProps): JSX.Element {\n const { channel } = props;\n\n return (\n <div className='d-flex mb-3'>\n <div\n className='d-flex align-items-center me-3'\n style={{ maxWidth: '7.5rem' }}>\n <img\n className='w-100'\n src={channel.logoUrl}\n />\n </div>\n <div>\n <h1 className='h3'>{channel.displayName}</h1>\n <p className='mb-0'>{channel.description}</p>\n </div>\n </div>\n );\n}","import React from 'react';\n\nexport function PartialTvChannel() {\n return (\n <div className='d-flex mb-3'>\n <div className='partial-loading-background d-flex align-items-center me-3'>\n <div style={{ width: '7.5rem' }}/>\n </div>\n <div className='w-100'>\n <div className='partial-loading-background w-25 h3'>&nbsp;</div>\n <p className='partial-loading-background w-100 mb-0'>&nbsp;</p>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { AccordionList } from 'shared/components/accordion-list/AccordionList';\nimport { PartialAccordionList } from 'shared/components/accordion-list/partial-loading/PartialAccordionList';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvAccordionListItem } from 'apps/tv/components/tv-accordion-list-item/TvAccordionListItem';\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\n\nimport { TvChannelHeader } from './components/tv-channel-header/TvChannelHeader';\nimport { PartialTvChannel } from './partial-loading/PartialTvChannelPrograms';\n\ninterface TvChannelViewProps {\n region: string;\n channelId: string;\n selectedRegion?: string;\n}\n\nexport function TvChannelView(props: TvChannelViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n const channel = React.useMemo(() => {\n return channels.data?.find(c => c.id.toString() === props.channelId.toString());\n }, [channels.data]);\n\n const { setRegion } = useSelectedRegion();\n const { showTvGuide } = useLiteUpgrade();\n\n const programs = Flight.useBasicFetch<TvProgram[]>(\n region.data &&\n channel &&\n TvRequests.programsByChannel(\n region.data.code,\n channel.name,\n channel.startTime,\n channel.stopTime\n )\n );\n\n const grouped = React.useMemo(() => {\n if (!programs.data?.length)\n return [];\n\n const groups: HashObject<TvProgram[]> = {};\n\n [...programs.data].reverse().forEach(program => {\n const startTime = DateHelper.format(toLocalTime(program.startTime, program.timeZone), 'dddd Do MMMM');\n\n if (!groups[startTime])\n groups[startTime] = [];\n\n groups[startTime].push(program);\n });\n const grouped = Object.entries(groups);\n return grouped.map(([ date, program ]) => [ date, program.reverse() ]);\n }, [programs]);\n\n if ((channels.hasCompleted && !channel)) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels, programs ]);\n\n useSetPageMetadata({ title: channel?.displayName });\n\n const dataLoaded =\n region.hasCompleted && regions.hasCompleted && channels.hasCompleted && channel && programs.hasCompleted;\n\n function getCurrentRegion(): TvRegion {\n if (!props.selectedRegion) return region.data;\n\n return regions.data?.find(region => region.code === props.selectedRegion);\n }\n\n const currentRegion = getCurrentRegion();\n\n return (\n <>\n <TvSearchBar region={currentRegion} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='channels'\n currentRegion={currentRegion}\n showTvGuide={showTvGuide}\n />\n <TvRegionSelect\n currentRegion={currentRegion}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n \n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n {channel ? <TvChannelHeader channel={channel} /> : <PartialTvChannel />}\n\n {dataLoaded ? (\n <>\n <AccordionList>\n {grouped.map(([ date, programs ]: [string, TvProgram[]], index) => (\n <AccordionList.Header\n key={index}\n title={date}\n >\n <div className='mt-2 pb-2'>\n {programs && programs.map(program => (\n <TvAccordionListItem\n key={program.id}\n name={program.title}\n program={program}\n region={region.data.code}\n previewUrl={config.data?.tvPreviewUrls[region.data?.code]}\n />\n ))}\n </div>\n </AccordionList.Header>\n ))}\n </AccordionList>\n </>\n ) : (\n <PartialAccordionList />\n )}\n </>\n );\n}"],"names":["TvAccordionListItem","props","getProgramAppLink","program","region","ProgramType","AppChannels","Actions","getThumbnailUrl","globalId","styles","jsxs","AppLink","jsx","LazyImage","TvAdFreeBadge","TvProgramTimeBadge","TvChannelHeader","channel","PartialTvChannel","TvChannelView","config","Flight.useBasicFetch","ConfigRequests","TvRequests","regions","dateRange","channels","React","_a","setRegion","useSelectedRegion","showTvGuide","useLiteUpgrade","programs","grouped","groups","startTime","DateHelper","toLocalTime","date","handleHttpError","HttpStatus","useHandleRegionError","useHandleObjectError","useSetPageMetadata","dataLoaded","getCurrentRegion","currentRegion","Fragment","TvSearchBar","TvTabs","TvRegionSelect","TvInfoAlert","AccordionList","index","_b","PartialAccordionList"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as r,G as e}from"./app-C2tLApiH.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=DEle-NIZ.chunk.js.map
1
+ import{j as r,G as e}from"./app-BPynVn5M.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=D8qOjT5-.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DEle-NIZ.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
+ {"version":3,"file":"D8qOjT5-.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{j as e,aq as f,B as y,aS as L,ad as $,ae as w,af as S,a3 as r,aT as A,l as U,L as E,a as o,b as c,a5 as F}from"./app-C2tLApiH.js";import{u as P}from"./DtSsOmYM.chunk.js";import{T as q,a as H}from"./D94KYGFe.chunk.js";import{T as M,a as V}from"./CG9hOZ8J.chunk.js";import{T as d}from"./4pboFAH2.chunk.js";import{u as I}from"./DADu9kRW.chunk.js";import{u as B}from"./D3ZScl6b.chunk.js";import{g as N}from"./AqddT7uG.chunk.js";import"./7kGPLcjV.chunk.js";import"./B4yjmogh.chunk.js";import"./CqLsOdMW.chunk.js";import"./BB4BMfoF.chunk.js";import"./BlDVEZsX.chunk.js";import"./Bdc13avs.chunk.js";import"./CL_sQPNd.chunk.js";import"./BSl_jK0D.chunk.js";import"./jNYdSQcK.chunk.js";const O="_cardContainer_p5jjm_1",z="_image_p5jjm_4",j={cardContainer:O,image:z};function h(a){return e.jsx("div",{className:`${j.cardContainer} px-2 mb-3`,children:e.jsxs(f,{className:`${a.className} border rounded-3 py-3 px-4 d-block text-center`,appLink:a.appLink,children:[e.jsx("div",{className:`${j.image} d-flex align-items-center justify-content-center`,children:e.jsx("img",{className:"mh-100",src:a.logoUrl})}),e.jsx("p",{className:"fw-semibold text-dark text-truncate mb-0",children:a.name})]})})}const D="_cardContainer_1s4mp_1",G="_image_1s4mp_4",v={cardContainer:D,image:G};function Q(){return e.jsx("div",{className:`${v.cardContainer} px-2 mb-3`,children:e.jsxs("div",{className:"partial-loading-background border rounded-3 py-3 px-4",children:[e.jsx("div",{className:`${v.image}`}),e.jsx("p",{className:"mb-0",children:" "})]})})}function T(a){return e.jsx(e.Fragment,{children:e.jsx("div",{className:"row mb-2",children:[...Array(a.cards)].map((n,t)=>e.jsx(Q,{},t))})})}const J="_cardContainer_7wzee_1",K="_image_7wzee_4",C={cardContainer:J,image:K},W="tv.tvRegionSelectMap",X=a=>{const n=N(a.instanceRegion);return!a.regions||!a.currentRegion?e.jsx(T,{cards:5}):a.regions.length<=1?e.jsx(e.Fragment,{}):e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"h4",children:e.jsx(y,{namespace:W,phrase:"regions",options:{country:n.country}})}),e.jsx("div",{className:"row",children:a.regions.map((t,s)=>{if(t.id!==a.currentRegion.id)return e.jsx("div",{className:`${C.cardContainer} px-2 mb-3`,children:e.jsxs(f,{className:"border rounded-3 py-3 px-4 d-block text-center",appLink:{...a.appLink,args:[t.code]},analyticsData:{region:a.currentRegion.code},analyticsOptions:{actionType:S.Click,entity:w.Region,location:$.RegionMap,descriptor:L.RegionSelect},onClick:()=>a.onClick(t),children:[e.jsx("div",{className:`${C.image} d-flex align-items-center justify-content-center`,children:e.jsx("img",{src:`https://tv.clickview.com.au/content/images/${t.code}.png`})}),e.jsx("p",{className:"fw-semibold text-dark mb-0",children:t.stateFull})]})},s)})})]})},Y="tv.channels",R=E.encloseNamespace(Y);function je(a){var u;const n=r(d.region(a.region)),t=r(d.dateRange(a.region)),s=r(d.regions()),l=r(n.data&&d.channels(n.data.code)),p=r(F.currentUser()),m=(u=p.data)==null?void 0:u.instanceRegion,{setRegion:x}=B(),{showTvGuide:b}=A();I(n),P([s,l]),U({title:R("title")});const k=n.hasCompleted&&s.hasCompleted&&t.hasCompleted&&l.hasCompleted&&p.hasCompleted,g=N(m);return e.jsxs(e.Fragment,{children:[e.jsx(M,{region:n.data}),e.jsxs("div",{className:"d-flex justify-content-between",children:[e.jsx(q,{active:"channels",currentRegion:n.data,showTvGuide:b}),e.jsx(V,{currentRegion:n.data,regions:s.data,appLink:{application:c.TV,action:o.Tv.CHANNELS},onClick:x})]}),e.jsx(H,{dateRange:t.data,region:n.data}),k?e.jsx(e.Fragment,{children:e.jsxs("div",{className:"row mb-2",children:[!!g.requestProgram&&e.jsx(h,{appLink:{application:c.TV,action:o.Tv.REQUEST_PROGRAM,args:[a.region,m]},logoUrl:g.logo,name:R("requestProgram"),className:g.bgColor}),l.data.map((i,_)=>e.jsx(h,{appLink:{application:c.TV,action:o.Tv.CHANNEL,args:[i.region,i.id],params:{region:i.region!==a.region?a.region:null}},logoUrl:i.logoUrl,name:i.displayName},_))]})}):e.jsx(T,{cards:20}),e.jsx(X,{instanceRegion:m,currentRegion:n.data,regions:s.data,appLink:{application:c.TV,action:o.Tv.CHANNELS},onClick:x})]})}export{je as TvChannelsView};
2
- //# sourceMappingURL=CTRlFXGF.chunk.js.map
1
+ import{j as e,aq as f,B as y,aS as L,ad as $,ae as w,af as S,a3 as r,aT as A,l as U,L as E,a as o,b as c,a5 as F}from"./app-BPynVn5M.js";import{u as P}from"./CYOWjQoo.chunk.js";import{T as q,a as H}from"./8VNRK8kQ.chunk.js";import{T as M,a as V}from"./BdNTkb7P.chunk.js";import{T as d}from"./DOaducO2.chunk.js";import{u as I}from"./B6lOCBlR.chunk.js";import{u as B}from"./BKjwB_St.chunk.js";import{g as N}from"./CRLSpEeB.chunk.js";import"./CnY4exCI.chunk.js";import"./DqA_gGV1.chunk.js";import"./CmOtOw_r.chunk.js";import"./BstEXc3S.chunk.js";import"./BlDVEZsX.chunk.js";import"./aNB3gltW.chunk.js";import"./BEGjWnPj.chunk.js";import"./Gz6brJ7U.chunk.js";import"./Bmmwb7k_.chunk.js";const O="_cardContainer_p5jjm_1",z="_image_p5jjm_4",j={cardContainer:O,image:z};function h(a){return e.jsx("div",{className:`${j.cardContainer} px-2 mb-3`,children:e.jsxs(f,{className:`${a.className} border rounded-3 py-3 px-4 d-block text-center`,appLink:a.appLink,children:[e.jsx("div",{className:`${j.image} d-flex align-items-center justify-content-center`,children:e.jsx("img",{className:"mh-100",src:a.logoUrl})}),e.jsx("p",{className:"fw-semibold text-dark text-truncate mb-0",children:a.name})]})})}const D="_cardContainer_1s4mp_1",G="_image_1s4mp_4",v={cardContainer:D,image:G};function Q(){return e.jsx("div",{className:`${v.cardContainer} px-2 mb-3`,children:e.jsxs("div",{className:"partial-loading-background border rounded-3 py-3 px-4",children:[e.jsx("div",{className:`${v.image}`}),e.jsx("p",{className:"mb-0",children:" "})]})})}function T(a){return e.jsx(e.Fragment,{children:e.jsx("div",{className:"row mb-2",children:[...Array(a.cards)].map((n,t)=>e.jsx(Q,{},t))})})}const J="_cardContainer_7wzee_1",K="_image_7wzee_4",C={cardContainer:J,image:K},W="tv.tvRegionSelectMap",X=a=>{const n=N(a.instanceRegion);return!a.regions||!a.currentRegion?e.jsx(T,{cards:5}):a.regions.length<=1?e.jsx(e.Fragment,{}):e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"h4",children:e.jsx(y,{namespace:W,phrase:"regions",options:{country:n.country}})}),e.jsx("div",{className:"row",children:a.regions.map((t,s)=>{if(t.id!==a.currentRegion.id)return e.jsx("div",{className:`${C.cardContainer} px-2 mb-3`,children:e.jsxs(f,{className:"border rounded-3 py-3 px-4 d-block text-center",appLink:{...a.appLink,args:[t.code]},analyticsData:{region:a.currentRegion.code},analyticsOptions:{actionType:S.Click,entity:w.Region,location:$.RegionMap,descriptor:L.RegionSelect},onClick:()=>a.onClick(t),children:[e.jsx("div",{className:`${C.image} d-flex align-items-center justify-content-center`,children:e.jsx("img",{src:`https://tv.clickview.com.au/content/images/${t.code}.png`})}),e.jsx("p",{className:"fw-semibold text-dark mb-0",children:t.stateFull})]})},s)})})]})},Y="tv.channels",R=E.encloseNamespace(Y);function je(a){var u;const n=r(d.region(a.region)),t=r(d.dateRange(a.region)),s=r(d.regions()),l=r(n.data&&d.channels(n.data.code)),p=r(F.currentUser()),m=(u=p.data)==null?void 0:u.instanceRegion,{setRegion:x}=B(),{showTvGuide:b}=A();I(n),P([s,l]),U({title:R("title")});const k=n.hasCompleted&&s.hasCompleted&&t.hasCompleted&&l.hasCompleted&&p.hasCompleted,g=N(m);return e.jsxs(e.Fragment,{children:[e.jsx(M,{region:n.data}),e.jsxs("div",{className:"d-flex justify-content-between",children:[e.jsx(q,{active:"channels",currentRegion:n.data,showTvGuide:b}),e.jsx(V,{currentRegion:n.data,regions:s.data,appLink:{application:c.TV,action:o.Tv.CHANNELS},onClick:x})]}),e.jsx(H,{dateRange:t.data,region:n.data}),k?e.jsx(e.Fragment,{children:e.jsxs("div",{className:"row mb-2",children:[!!g.requestProgram&&e.jsx(h,{appLink:{application:c.TV,action:o.Tv.REQUEST_PROGRAM,args:[a.region,m]},logoUrl:g.logo,name:R("requestProgram"),className:g.bgColor}),l.data.map((i,_)=>e.jsx(h,{appLink:{application:c.TV,action:o.Tv.CHANNEL,args:[i.region,i.id],params:{region:i.region!==a.region?a.region:null}},logoUrl:i.logoUrl,name:i.displayName},_))]})}):e.jsx(T,{cards:20}),e.jsx(X,{instanceRegion:m,currentRegion:n.data,regions:s.data,appLink:{application:c.TV,action:o.Tv.CHANNELS},onClick:x})]})}export{je as TvChannelsView};
2
+ //# sourceMappingURL=DAQLTaLS.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CTRlFXGF.chunk.js","sources":["../../src/apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard.tsx","../../src/apps/tv/views/tv-channels/partial-loading/PartialCardRow.tsx","../../src/apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap.tsx","../../src/apps/tv/views/tv-channels/TvChannelsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './tv-channel-card.module.scss';\n\ninterface TvChannelCardProps {\n appLink: Core.AppLink;\n logoUrl: string;\n name: string;\n className?: string;\n}\n\nexport function TvChannelCard(props: TvChannelCardProps): JSX.Element {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className={`${props.className} border rounded-3 py-3 px-4 d-block text-center`}\n appLink={props.appLink}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n className='mh-100'\n src={props.logoUrl}\n />\n </div>\n <p className='fw-semibold text-dark text-truncate mb-0'>\n {props.name}\n </p>\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport styles from './partial-card-row.module.scss';\n\nfunction PartialRow() {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <div className='partial-loading-background border rounded-3 py-3 px-4'>\n <div className={`${styles.image}`}></div>\n <p className='mb-0'>&nbsp;</p>\n </div>\n </div>\n );\n}\n\ninterface PartialCardRowProps {\n cards: number;\n}\n\nexport function PartialCardRow(props: PartialCardRowProps) {\n return (\n <>\n <div className='row mb-2'>\n {[...Array(props.cards)].map((_, index) => <PartialRow key={index} />)}\n </div>\n </>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { EntityType, LocationContext, TvDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { PartialCardRow } from 'apps/tv/views/tv-channels/partial-loading/PartialCardRow';\n\nimport styles from './tv-region-select-map.module.scss';\n\nconst namespace = 'tv.tvRegionSelectMap';\n\ninterface TvRegionSelectMapProps {\n instanceRegion: InstanceRegion;\n currentRegion: TvRegion;\n regions: TvRegion[];\n appLink: Core.AppLink;\n onClick: (region: TvRegion) => void;\n}\n\nconst TvRegionSelectMap = (props: TvRegionSelectMapProps) => {\n const regionInfo = getRegionInfo(props.instanceRegion);\n\n if (!props.regions || !props.currentRegion)\n return <PartialCardRow cards={5} />;\n\n if (props.regions.length <= 1)\n return <></>;\n \n return (\n <>\n <h2 className='h4'>\n <Text\n namespace={namespace}\n phrase='regions'\n options={{ country: regionInfo.country }}\n />\n </h2>\n <div className='row'>\n {props.regions.map((region, index) => {\n if (region.id !== props.currentRegion.id)\n return (\n <div key={index} className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className='border rounded-3 py-3 px-4 d-block text-center'\n appLink={{\n ...props.appLink,\n args: [region.code]\n }}\n analyticsData={{ region: props.currentRegion.code }}\n analyticsOptions={{\n actionType: UserAction.Click,\n entity: EntityType.Region,\n location: LocationContext.RegionMap,\n descriptor: TvDescriptor.RegionSelect\n }}\n onClick={() => props.onClick(region)}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n src={`https://tv.clickview.com.au/content/images/${region.code}.png`}\n />\n </div>\n <p className='fw-semibold text-dark mb-0'>\n {region.stateFull}\n </p>\n </AppLink>\n </div>\n );\n })}\n </div>\n </>\n );\n};\n\nexport default TvRegionSelectMap;","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { TvChannelCard } from 'apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard';\nimport TvRegionSelectMap from 'apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap';\n\nimport { PartialCardRow } from './partial-loading/PartialCardRow';\n\n\nconst namespace = 'tv.channels';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvChannelsViewProps {\n region: string;\n}\n\nexport function TvChannelsView(props: TvChannelsViewProps): JSX.Element {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n\n const { setRegion } = useSelectedRegion();\n const { showTvGuide } = useLiteUpgrade();\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n channels.hasCompleted &&\n currentUser.hasCompleted\n );\n\n const regionInfo = getRegionInfo(instanceRegion);\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='channels'\n currentRegion={region.data}\n showTvGuide={showTvGuide}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n {dataLoaded ? (\n <>\n <div className='row mb-2'>\n {!!regionInfo.requestProgram &&\n <TvChannelCard\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.REQUEST_PROGRAM,\n args: [ props.region, instanceRegion ]\n }}\n logoUrl={regionInfo.logo}\n name={getPhrase('requestProgram')}\n className={regionInfo.bgColor}\n />\n }\n {channels.data.map((channel, index) => {\n return (\n <TvChannelCard\n key={index}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNEL,\n args: [ channel.region, channel.id ],\n params: {\n region: channel.region !== props.region ? props.region : null\n }\n }}\n logoUrl={channel.logoUrl}\n name={channel.displayName}\n />\n );\n })}\n </div>\n </>\n ) : <PartialCardRow cards={20} />}\n \n\n <TvRegionSelectMap\n instanceRegion={instanceRegion}\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </>\n );\n}"],"names":["TvChannelCard","props","styles","jsxs","AppLink","jsx","PartialRow","PartialCardRow","Fragment","_","index","namespace","TvRegionSelectMap","regionInfo","getRegionInfo","Text","region","UserAction","EntityType","LocationContext","TvDescriptor","getPhrase","LanguageService","TvChannelsView","Flight.useBasicFetch","TvRequests","dateRange","regions","channels","currentUser","UserRequests","instanceRegion","_a","setRegion","useSelectedRegion","showTvGuide","useLiteUpgrade","useHandleRegionError","useHandleObjectError","useSetPageMetadata","dataLoaded","TvSearchBar","TvTabs","TvRegionSelect","AppChannels","Actions","TvInfoAlert","channel"],"mappings":"2vBAeO,SAASA,EAAcC,EAAwC,CACpE,aACG,MAAA,CAAI,UAAW,GAAGC,EAAO,aAAa,aACrC,SAAAC,EAAAA,KAACC,EAAA,CACC,UAAW,GAAGH,EAAM,SAAS,kDAC7B,QAASA,EAAM,QAEf,SAAA,CAAAI,MAAC,MAAA,CAAI,UAAW,GAAGH,EAAO,KAAK,oDAC7B,SAAAG,EAAAA,IAAC,MAAA,CACC,UAAU,SACV,IAAKJ,EAAM,OAAA,CAAA,EAEf,EACAI,EAAAA,IAAC,IAAA,CAAE,UAAU,2CACV,WAAM,IAAA,CACT,CAAA,CAAA,CAAA,EAEJ,CAEJ,iFC9BA,SAASC,GAAa,CACpB,OACED,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGH,EAAO,aAAa,aACrC,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,wDACb,SAAA,CAAAE,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGH,EAAO,KAAK,GAAI,EACnCG,EAAAA,IAAC,IAAA,CAAE,UAAU,OAAO,SAAA,GAAA,CAAM,CAAA,CAAA,CAC5B,CAAA,CACF,CAEJ,CAMO,SAASE,EAAeN,EAA4B,CACzD,OACEI,MAAAG,EAAAA,SAAA,CACE,eAAC,MAAA,CAAI,UAAU,WACZ,SAAA,CAAC,GAAG,MAAMP,EAAM,KAAK,CAAC,EAAE,IAAI,CAACQ,EAAGC,UAAWJ,EAAA,GAAgBI,CAAO,CAAE,CAAA,CACvE,CAAA,CACF,CAEJ,iFCXMC,EAAY,uBAUZC,EAAqBX,GAAkC,CAC3D,MAAMY,EAAaC,EAAcb,EAAM,cAAc,EAErD,MAAI,CAACA,EAAM,SAAW,CAACA,EAAM,cACpBI,EAAAA,IAACE,EAAA,CAAe,MAAO,CAAA,CAAG,EAE/BN,EAAM,QAAQ,QAAU,EACnBI,EAAAA,IAAAG,EAAAA,SAAA,EAAE,EAGTL,EAAAA,KAAAK,WAAA,CACE,SAAA,CAAAH,EAAAA,IAAC,KAAA,CAAG,UAAU,KACZ,SAAAA,EAAAA,IAACU,EAAA,CAAA,UACCJ,EACA,OAAO,UACP,QAAS,CAAE,QAASE,EAAW,OAAA,CAAQ,CAAA,EAE3C,EACAR,EAAAA,IAAC,OAAI,UAAU,MACZ,WAAM,QAAQ,IAAI,CAACW,EAAQN,IAAU,CACpC,GAAIM,EAAO,KAAOf,EAAM,cAAc,GACpC,aACG,MAAA,CAAgB,UAAW,GAAGC,EAAO,aAAa,aACjD,SAAAC,EAAAA,KAACC,EAAA,CACC,UAAU,iDACV,QAAS,CACP,GAAGH,EAAM,QACT,KAAM,CAACe,EAAO,IAAI,CAAA,EAEpB,cAAe,CAAE,OAAQf,EAAM,cAAc,IAAA,EAC7C,iBAAkB,CAChB,WAAYgB,EAAW,MACvB,OAAQC,EAAW,OACnB,SAAUC,EAAgB,UAC1B,WAAYC,EAAa,YAAA,EAE3B,QAAS,IAAMnB,EAAM,QAAQe,CAAM,EAEnC,SAAA,CAAAX,MAAC,MAAA,CAAI,UAAW,GAAGH,EAAO,KAAK,oDAC7B,SAAAG,EAAAA,IAAC,MAAA,CACC,IAAK,8CAA8CW,EAAO,IAAI,MAAA,CAAA,EAElE,EACAX,EAAAA,IAAC,IAAA,CAAE,UAAU,6BACV,WAAO,SAAA,CACV,CAAA,CAAA,CAAA,GAvBMK,CAyBV,CAEN,CAAC,CAAA,CACH,CAAA,EACF,CAEJ,ECjDMC,EAAY,cACZU,EAAYC,EAAgB,iBAAiBX,CAAS,EAMrD,SAASY,GAAetB,EAAyC,OACtE,MAAMe,EAASQ,EAA+BC,EAAW,OAAOxB,EAAM,MAAM,CAAC,EACvEyB,EAAYF,EAAkCC,EAAW,UAAUxB,EAAM,MAAM,CAAC,EAChF0B,EAAUH,EAAiCC,EAAW,SAAS,EAC/DG,EAAWJ,EACfR,EAAO,MAAQS,EAAW,SAAST,EAAO,KAAK,IAAI,CAAA,EAG/Ca,EAAcL,EAAkCM,EAAa,aAAa,EAC1EC,GAAiBC,EAAAH,EAAY,OAAZ,YAAAG,EAAkB,eAEnC,CAAE,UAAAC,CAAA,EAAcC,EAAA,EAChB,CAAE,YAAAC,CAAA,EAAgBC,EAAA,EAExBC,EAAqBrB,CAAM,EAC3BsB,EAAqB,CAAEX,EAASC,CAAS,CAAC,EAE1CW,EAAmB,CAAE,MAAOlB,EAAU,OAAO,EAAG,EAEhD,MAAMmB,EACJxB,EAAO,cACPW,EAAQ,cACRD,EAAU,cACVE,EAAS,cACTC,EAAY,aAGRhB,EAAaC,EAAciB,CAAc,EAE/C,OACE5B,EAAAA,KAAAK,WAAA,CACE,SAAA,CAAAH,EAAAA,IAACoC,EAAA,CAAY,OAAQzB,EAAO,IAAA,CAAM,EAGlCb,EAAAA,KAAC,MAAA,CAAI,UAAU,iCACb,SAAA,CAAAE,EAAAA,IAACqC,EAAA,CACC,OAAO,WACP,cAAe1B,EAAO,KACtB,YAAAmB,CAAA,CAAA,EAGF9B,EAAAA,IAACsC,EAAA,CACC,cAAe3B,EAAO,KACtB,QAASW,EAAQ,KACjB,QAAS,CACP,YAAaiB,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,EAErB,QAASZ,CAAA,CAAA,CACX,EACF,QAECa,EAAA,CAAY,UAAWpB,EAAU,KAAM,OAAQV,EAAO,KAAM,EAE5DwB,EACCnC,EAAAA,IAAAG,EAAAA,SAAA,CACE,SAAAL,OAAC,MAAA,CAAI,UAAU,WACZ,SAAA,CAAA,CAAC,CAACU,EAAW,gBACZR,EAAAA,IAACL,EAAA,CACC,QAAS,CACP,YAAa4C,EAAY,GACzB,OAAQC,EAAQ,GAAG,gBACnB,KAAM,CAAE5C,EAAM,OAAQ8B,CAAe,CAAA,EAEvC,QAASlB,EAAW,KACpB,KAAMQ,EAAU,gBAAgB,EAChC,UAAWR,EAAW,OAAA,CAAA,EAGzBe,EAAS,KAAK,IAAI,CAACmB,EAASrC,IAEzBL,EAAAA,IAACL,EAAA,CAEC,QAAS,CACP,YAAa4C,EAAY,GACzB,OAAQC,EAAQ,GAAG,QACnB,KAAM,CAAEE,EAAQ,OAAQA,EAAQ,EAAG,EACnC,OAAQ,CACN,OAAQA,EAAQ,SAAW9C,EAAM,OAASA,EAAM,OAAS,IAAA,CAC3D,EAEF,QAAS8C,EAAQ,QACjB,KAAMA,EAAQ,WAAA,EAVTrC,CAAA,CAaV,CAAA,CAAA,CACH,CAAA,CACF,EACEL,EAAAA,IAACE,EAAA,CAAe,MAAO,GAAI,EAG/BF,EAAAA,IAACO,EAAA,CACC,eAAAmB,EACA,cAAef,EAAO,KACtB,QAASW,EAAQ,KACjB,QAAS,CACP,YAAaiB,EAAY,GACzB,OAAQC,EAAQ,GAAG,QAAA,EAErB,QAASZ,CAAA,CAAA,CACX,EACF,CAEJ"}
1
+ {"version":3,"file":"DAQLTaLS.chunk.js","sources":["../../src/apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard.tsx","../../src/apps/tv/views/tv-channels/partial-loading/PartialCardRow.tsx","../../src/apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap.tsx","../../src/apps/tv/views/tv-channels/TvChannelsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './tv-channel-card.module.scss';\n\ninterface TvChannelCardProps {\n appLink: Core.AppLink;\n logoUrl: string;\n name: string;\n className?: string;\n}\n\nexport function TvChannelCard(props: TvChannelCardProps): JSX.Element {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className={`${props.className} border rounded-3 py-3 px-4 d-block text-center`}\n appLink={props.appLink}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n className='mh-100'\n src={props.logoUrl}\n />\n </div>\n <p className='fw-semibold text-dark text-truncate mb-0'>\n {props.name}\n </p>\n </AppLink>\n </div>\n );\n}","import React from 'react';\n\nimport styles from './partial-card-row.module.scss';\n\nfunction PartialRow() {\n return (\n <div className={`${styles.cardContainer} px-2 mb-3`}>\n <div className='partial-loading-background border rounded-3 py-3 px-4'>\n <div className={`${styles.image}`}></div>\n <p className='mb-0'>&nbsp;</p>\n </div>\n </div>\n );\n}\n\ninterface PartialCardRowProps {\n cards: number;\n}\n\nexport function PartialCardRow(props: PartialCardRowProps) {\n return (\n <>\n <div className='row mb-2'>\n {[...Array(props.cards)].map((_, index) => <PartialRow key={index} />)}\n </div>\n </>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { EntityType, LocationContext, TvDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\n\nimport { TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { PartialCardRow } from 'apps/tv/views/tv-channels/partial-loading/PartialCardRow';\n\nimport styles from './tv-region-select-map.module.scss';\n\nconst namespace = 'tv.tvRegionSelectMap';\n\ninterface TvRegionSelectMapProps {\n instanceRegion: InstanceRegion;\n currentRegion: TvRegion;\n regions: TvRegion[];\n appLink: Core.AppLink;\n onClick: (region: TvRegion) => void;\n}\n\nconst TvRegionSelectMap = (props: TvRegionSelectMapProps) => {\n const regionInfo = getRegionInfo(props.instanceRegion);\n\n if (!props.regions || !props.currentRegion)\n return <PartialCardRow cards={5} />;\n\n if (props.regions.length <= 1)\n return <></>;\n \n return (\n <>\n <h2 className='h4'>\n <Text\n namespace={namespace}\n phrase='regions'\n options={{ country: regionInfo.country }}\n />\n </h2>\n <div className='row'>\n {props.regions.map((region, index) => {\n if (region.id !== props.currentRegion.id)\n return (\n <div key={index} className={`${styles.cardContainer} px-2 mb-3`}>\n <AppLink\n className='border rounded-3 py-3 px-4 d-block text-center'\n appLink={{\n ...props.appLink,\n args: [region.code]\n }}\n analyticsData={{ region: props.currentRegion.code }}\n analyticsOptions={{\n actionType: UserAction.Click,\n entity: EntityType.Region,\n location: LocationContext.RegionMap,\n descriptor: TvDescriptor.RegionSelect\n }}\n onClick={() => props.onClick(region)}\n >\n <div className={`${styles.image} d-flex align-items-center justify-content-center`}>\n <img\n src={`https://tv.clickview.com.au/content/images/${region.code}.png`}\n />\n </div>\n <p className='fw-semibold text-dark mb-0'>\n {region.stateFull}\n </p>\n </AppLink>\n </div>\n );\n })}\n </div>\n </>\n );\n};\n\nexport default TvRegionSelectMap;","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { getRegionInfo } from 'apps/tv/utils/getRegionInfo/getRegionInfo';\nimport { TvChannelCard } from 'apps/tv/views/tv-channels/components/tv-channel-card/TvChannelCard';\nimport TvRegionSelectMap from 'apps/tv/views/tv-channels/components/tv-region-select-map/TvRegionSelectMap';\n\nimport { PartialCardRow } from './partial-loading/PartialCardRow';\n\n\nconst namespace = 'tv.channels';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvChannelsViewProps {\n region: string;\n}\n\nexport function TvChannelsView(props: TvChannelsViewProps): JSX.Element {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const instanceRegion = currentUser.data?.instanceRegion;\n\n const { setRegion } = useSelectedRegion();\n const { showTvGuide } = useLiteUpgrade();\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, channels ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n channels.hasCompleted &&\n currentUser.hasCompleted\n );\n\n const regionInfo = getRegionInfo(instanceRegion);\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='channels'\n currentRegion={region.data}\n showTvGuide={showTvGuide}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n {dataLoaded ? (\n <>\n <div className='row mb-2'>\n {!!regionInfo.requestProgram &&\n <TvChannelCard\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.REQUEST_PROGRAM,\n args: [ props.region, instanceRegion ]\n }}\n logoUrl={regionInfo.logo}\n name={getPhrase('requestProgram')}\n className={regionInfo.bgColor}\n />\n }\n {channels.data.map((channel, index) => {\n return (\n <TvChannelCard\n key={index}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNEL,\n args: [ channel.region, channel.id ],\n params: {\n region: channel.region !== props.region ? props.region : null\n }\n }}\n logoUrl={channel.logoUrl}\n name={channel.displayName}\n />\n );\n })}\n </div>\n </>\n ) : <PartialCardRow cards={20} />}\n \n\n <TvRegionSelectMap\n instanceRegion={instanceRegion}\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.CHANNELS\n }}\n onClick={setRegion}\n />\n </>\n );\n}"],"names":["TvChannelCard","props","styles","jsxs","AppLink","jsx","PartialRow","PartialCardRow","Fragment","_","index","namespace","TvRegionSelectMap","regionInfo","getRegionInfo","Text","region","UserAction","EntityType","LocationContext","TvDescriptor","getPhrase","LanguageService","TvChannelsView","Flight.useBasicFetch","TvRequests","dateRange","regions","channels","currentUser","UserRequests","instanceRegion","_a","setRegion","useSelectedRegion","showTvGuide","useLiteUpgrade","useHandleRegionError","useHandleObjectError","useSetPageMetadata","dataLoaded","TvSearchBar","TvTabs","TvRegionSelect","AppChannels","Actions","TvInfoAlert","channel"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as t,aB as m}from"./app-C2tLApiH.js";import{t as i}from"./B4yjmogh.chunk.js";const n="_programTimeBadge_2h19o_1",l="_small_2h19o_5",g="_hover_2h19o_8",a={programTimeBadge:n,small:l,hover:g};function c(e){const o=e.program.timeZone||e.program.region.timeZone,r=i(e.program.startTime,o),s=i(e.program.stopTime,o);return t.jsx("div",{className:`${a.programTimeBadge} ${e.small?`${a.small} align-items-end`:"align-items-center"} ${e.hover?a.hover:""} ${e.className||""} d-flex bg-white text-nowrap border border-dark rounded-pill px-2`,children:t.jsxs("span",{children:[e.showDate&&`${m.format(r,"D MMM")} @ `,m.format(r,"hh:mma"),e.showEndTime&&` - ${m.format(s,"hh:mma")}`]})})}export{c as T};
2
- //# sourceMappingURL=DcF9nran.chunk.js.map
1
+ import{j as t,aB as m}from"./app-BPynVn5M.js";import{t as i}from"./DqA_gGV1.chunk.js";const n="_programTimeBadge_2h19o_1",l="_small_2h19o_5",g="_hover_2h19o_8",a={programTimeBadge:n,small:l,hover:g};function c(e){const o=e.program.timeZone||e.program.region.timeZone,r=i(e.program.startTime,o),s=i(e.program.stopTime,o);return t.jsx("div",{className:`${a.programTimeBadge} ${e.small?`${a.small} align-items-end`:"align-items-center"} ${e.hover?a.hover:""} ${e.className||""} d-flex bg-white text-nowrap border border-dark rounded-pill px-2`,children:t.jsxs("span",{children:[e.showDate&&`${m.format(r,"D MMM")} @ `,m.format(r,"hh:mma"),e.showEndTime&&` - ${m.format(s,"hh:mma")}`]})})}export{c as T};
2
+ //# sourceMappingURL=DBXJjLCV.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DcF9nran.chunk.js","sources":["../../src/apps/tv/components/tv-program-time-badge/TvProgramTimeBadge.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\n\nimport styles from './tv-program-time-badge.module.scss';\n\ninterface TvProgramTimeBadgeProps {\n program: TvProgram;\n small?: boolean;\n showEndTime?: boolean;\n showDate?: boolean;\n hover?: boolean;\n className?: string;\n}\n\nexport function TvProgramTimeBadge(props: TvProgramTimeBadgeProps) {\n const timeZone = props.program.timeZone || props.program.region.timeZone;\n const startTime = toLocalTime(props.program.startTime, timeZone);\n const stopTime = toLocalTime(props.program.stopTime, timeZone);\n\n return (\n <div className={`${styles.programTimeBadge} ${props.small ? `${styles.small} align-items-end` : 'align-items-center'} ${props.hover ? styles.hover : ''} ${props.className || ''} d-flex bg-white text-nowrap border border-dark rounded-pill px-2`}>\n <span>\n {props.showDate && `${DateHelper.format(startTime, 'D MMM')} @ `}\n {DateHelper.format(startTime, 'hh:mma')}\n {props.showEndTime && ` - ${DateHelper.format(stopTime, 'hh:mma')}`}\n </span>\n </div>\n );\n}"],"names":["TvProgramTimeBadge","props","timeZone","startTime","toLocalTime","stopTime","jsx","styles","jsxs","DateHelper"],"mappings":"uMAkBO,SAASA,EAAmBC,EAAgC,CACjE,MAAMC,EAAWD,EAAM,QAAQ,UAAYA,EAAM,QAAQ,OAAO,SAC1DE,EAAYC,EAAYH,EAAM,QAAQ,UAAWC,CAAQ,EACzDG,EAAWD,EAAYH,EAAM,QAAQ,SAAUC,CAAQ,EAE7D,OACEI,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGC,EAAO,gBAAgB,IAAIN,EAAM,MAAQ,GAAGM,EAAO,KAAK,mBAAqB,oBAAoB,IAAIN,EAAM,MAAQM,EAAO,MAAQ,EAAE,IAAIN,EAAM,WAAa,EAAE,oEAC9K,SAAAO,EAAAA,KAAC,OAAA,CACE,SAAA,CAAAP,EAAM,UAAY,GAAGQ,EAAW,OAAON,EAAW,OAAO,CAAC,MAC1DM,EAAW,OAAON,EAAW,QAAQ,EACrCF,EAAM,aAAe,MAAMQ,EAAW,OAAOJ,EAAU,QAAQ,CAAC,EAAA,CAAA,CACnE,CAAA,CACF,CAEJ"}
1
+ {"version":3,"file":"DBXJjLCV.chunk.js","sources":["../../src/apps/tv/components/tv-program-time-badge/TvProgramTimeBadge.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\n\nimport styles from './tv-program-time-badge.module.scss';\n\ninterface TvProgramTimeBadgeProps {\n program: TvProgram;\n small?: boolean;\n showEndTime?: boolean;\n showDate?: boolean;\n hover?: boolean;\n className?: string;\n}\n\nexport function TvProgramTimeBadge(props: TvProgramTimeBadgeProps) {\n const timeZone = props.program.timeZone || props.program.region.timeZone;\n const startTime = toLocalTime(props.program.startTime, timeZone);\n const stopTime = toLocalTime(props.program.stopTime, timeZone);\n\n return (\n <div className={`${styles.programTimeBadge} ${props.small ? `${styles.small} align-items-end` : 'align-items-center'} ${props.hover ? styles.hover : ''} ${props.className || ''} d-flex bg-white text-nowrap border border-dark rounded-pill px-2`}>\n <span>\n {props.showDate && `${DateHelper.format(startTime, 'D MMM')} @ `}\n {DateHelper.format(startTime, 'hh:mma')}\n {props.showEndTime && ` - ${DateHelper.format(stopTime, 'hh:mma')}`}\n </span>\n </div>\n );\n}"],"names":["TvProgramTimeBadge","props","timeZone","startTime","toLocalTime","stopTime","jsx","styles","jsxs","DateHelper"],"mappings":"uMAkBO,SAASA,EAAmBC,EAAgC,CACjE,MAAMC,EAAWD,EAAM,QAAQ,UAAYA,EAAM,QAAQ,OAAO,SAC1DE,EAAYC,EAAYH,EAAM,QAAQ,UAAWC,CAAQ,EACzDG,EAAWD,EAAYH,EAAM,QAAQ,SAAUC,CAAQ,EAE7D,OACEI,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGC,EAAO,gBAAgB,IAAIN,EAAM,MAAQ,GAAGM,EAAO,KAAK,mBAAqB,oBAAoB,IAAIN,EAAM,MAAQM,EAAO,MAAQ,EAAE,IAAIN,EAAM,WAAa,EAAE,oEAC9K,SAAAO,EAAAA,KAAC,OAAA,CACE,SAAA,CAAAP,EAAM,UAAY,GAAGQ,EAAW,OAAON,EAAW,OAAO,CAAC,MAC1DM,EAAW,OAAON,EAAW,QAAQ,EACrCF,EAAM,aAAe,MAAMQ,EAAW,OAAOJ,EAAU,QAAQ,CAAC,EAAA,CAAA,CACnE,CAAA,CACF,CAEJ"}