@saooti/octopus-sdk 42.2.1 → 42.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/dist/{AdvancedSearch-fO5eaqLJ.mjs → AdvancedSearch-C4segSRv.mjs} +6 -6
  2. package/dist/AdvancedSearch-C4segSRv.mjs.map +1 -0
  3. package/dist/AdvancedSearch-DD9tnLCw.mjs.map +1 -0
  4. package/dist/{CategoryFilter-Cu2a0YE9.mjs → CategoryFilter-CpplEC8n.mjs} +5 -5
  5. package/dist/CategoryFilter-CpplEC8n.mjs.map +1 -0
  6. package/dist/CategoryFilter-cbQR_ySd.mjs.map +1 -0
  7. package/dist/{CategoryList-DkxZDrO5.mjs → CategoryList-BTabY3vQ.mjs} +2 -2
  8. package/dist/CategoryList-BTabY3vQ.mjs.map +1 -0
  9. package/dist/CategoryList-DHEJoaez.mjs.map +1 -0
  10. package/dist/CategoryPage-BbsCC3Wr.mjs.map +1 -0
  11. package/dist/CategoryPage-BxvUmThb.mjs.map +1 -0
  12. package/dist/{CategoryPage-3HFz1i7_.mjs → CategoryPage-D755GvQZ.mjs} +3 -3
  13. package/dist/CategoryPage-D755GvQZ.mjs.map +1 -0
  14. package/dist/CategoryPage-DDBJ2krs.mjs.map +1 -0
  15. package/dist/CategoryPage-DRCYjOqG.mjs.map +1 -0
  16. package/dist/ChapteringModal-CSQqCWIk.mjs.map +1 -0
  17. package/dist/ChapteringModal-Dt8Rsauh.mjs.map +1 -0
  18. package/dist/{ChapteringModal-C-rdkbSz.mjs → ChapteringModal-ei6ZqVJU.mjs} +2 -2
  19. package/dist/ChapteringModal-ei6ZqVJU.mjs.map +1 -0
  20. package/dist/CheckIdentityModal-CNFVJVB_.mjs.map +1 -0
  21. package/dist/{CheckIdentityModal-N9h8yvhC.mjs → CheckIdentityModal-cpMOuJGv.mjs} +3 -3
  22. package/dist/CheckIdentityModal-cpMOuJGv.mjs.map +1 -0
  23. package/dist/ClipboardModal-2ZGF38VB.mjs.map +1 -0
  24. package/dist/{ClipboardModal-CnieIOJr.mjs → ClipboardModal-DzCUqSph.mjs} +2 -2
  25. package/dist/ClipboardModal-DzCUqSph.mjs.map +1 -0
  26. package/dist/CommentInput-CV46HJN8.mjs.map +1 -0
  27. package/dist/{CommentInput-CEioyN7X.mjs → CommentInput-D_p03L68.mjs} +6 -6
  28. package/dist/CommentInput-D_p03L68.mjs.map +1 -0
  29. package/dist/CommentInput-DwRbD74k.mjs.map +1 -0
  30. package/dist/CommentItem-B6_XUaFR.mjs.map +1 -0
  31. package/dist/CommentItem-CbbmwVXB.mjs.map +1 -0
  32. package/dist/CommentItem-DfKKazY0.mjs.map +1 -0
  33. package/dist/CommentItem-JRjSLmui.mjs.map +1 -0
  34. package/dist/{CommentItem-BefuRoxQ.mjs → CommentItem-MFN0JNW1.mjs} +8 -8
  35. package/dist/CommentItem-MFN0JNW1.mjs.map +1 -0
  36. package/dist/{CommentList-BsPwzqkf.mjs → CommentList-BkKy5ftL.mjs} +3 -3
  37. package/dist/CommentList-BkKy5ftL.mjs.map +1 -0
  38. package/dist/CommentList-BrP71Ug4.mjs.map +1 -0
  39. package/dist/CommentList-Ng_YXr74.mjs.map +1 -0
  40. package/dist/CommentList-tKA7NFHM.mjs.map +1 -0
  41. package/dist/CommentList-yarlxaXg.mjs.map +1 -0
  42. package/dist/{CommentMoreActions-C86aqy8M.mjs → CommentMoreActions-CBSvuOGJ.mjs} +5 -5
  43. package/dist/CommentMoreActions-CBSvuOGJ.mjs.map +1 -0
  44. package/dist/CommentMoreActions-D7guBdA7.mjs.map +1 -0
  45. package/dist/CommentName-frCHmngc.mjs.map +1 -0
  46. package/dist/{CommentName-DT1QyPi3.mjs → CommentName-zTMSdG4d.mjs} +3 -3
  47. package/dist/CommentName-zTMSdG4d.mjs.map +1 -0
  48. package/dist/{CommentParentInfo-9Fe-3e6c.mjs → CommentParentInfo-CRTYPb8P.mjs} +2 -2
  49. package/dist/CommentParentInfo-CRTYPb8P.mjs.map +1 -0
  50. package/dist/CommentParentInfo-D8qquB6k.mjs.map +1 -0
  51. package/dist/CommentParentInfo-DC4Q6wNO.mjs.map +1 -0
  52. package/dist/CommentParentInfo-temUvqNv.mjs.map +1 -0
  53. package/dist/{CommentPlayer-CiWQM64Y.mjs → CommentPlayer-BMuLmZdI.mjs} +3 -3
  54. package/dist/CommentPlayer-BMuLmZdI.mjs.map +1 -0
  55. package/dist/CommentPlayer-BPA_lEoE.mjs.map +1 -0
  56. package/dist/CommentPlayer-CUNi1Lxv.mjs.map +1 -0
  57. package/dist/{CommentSection-Be38YIkC.mjs → CommentSection-B91sHMDT.mjs} +5 -5
  58. package/dist/CommentSection-B91sHMDT.mjs.map +1 -0
  59. package/dist/CommentSection-CpYd7i8U.mjs.map +1 -0
  60. package/dist/CommentSection-CrqweNX4.mjs.map +1 -0
  61. package/dist/CommentSection-G8rMWPrM.mjs.map +1 -0
  62. package/dist/CommentSection-xjY6h7nn.mjs.map +1 -0
  63. package/dist/CommentStore-9WWuGwIj.mjs.map +1 -0
  64. package/dist/{CommentStore-Dv7j94Uo.mjs → CommentStore-ClU882RI.mjs} +2 -2
  65. package/dist/CommentStore-ClU882RI.mjs.map +1 -0
  66. package/dist/ContractPreviewModal-C4_20E99.mjs.map +1 -0
  67. package/dist/{ContractPreviewModal-CPT6bDpJ.mjs → ContractPreviewModal-Dn5MeLFo.mjs} +2 -2
  68. package/dist/ContractPreviewModal-Dn5MeLFo.mjs.map +1 -0
  69. package/dist/{DownloadPodcastButton-6D8qNAkT.mjs → DownloadPodcastButton-BI_sZWcJ.mjs} +3 -3
  70. package/dist/DownloadPodcastButton-BI_sZWcJ.mjs.map +1 -0
  71. package/dist/DownloadPodcastButton-CSRcg8Nl.mjs.map +1 -0
  72. package/dist/EditCommentModal-KAP1l9RK.mjs.map +1 -0
  73. package/dist/{EditCommentModal-aAcjhc0v.mjs → EditCommentModal-RbVMVDOp.mjs} +2 -2
  74. package/dist/EditCommentModal-RbVMVDOp.mjs.map +1 -0
  75. package/dist/{EmissionGroupChooser-Djt1IZg7.mjs → EmissionGroupChooser-BXqM4iXP.mjs} +2 -2
  76. package/dist/EmissionGroupChooser-BXqM4iXP.mjs.map +1 -0
  77. package/dist/EmissionGroupChooser-CO1WBOUi.mjs.map +1 -0
  78. package/dist/EmissionInlineList-B-r4eI3D.mjs.map +1 -0
  79. package/dist/{EmissionInlineList-BcrKpW8S.mjs → EmissionInlineList-Cy1lbYKY.mjs} +6 -6
  80. package/dist/EmissionInlineList-Cy1lbYKY.mjs.map +1 -0
  81. package/dist/EmissionInlineList-IKPyjBTQ.mjs.map +1 -0
  82. package/dist/EmissionItem-982WkWkg.mjs.map +1 -0
  83. package/dist/EmissionItem-B8q9hnN5.mjs.map +1 -0
  84. package/dist/{EmissionItem-DfkPRcPz.mjs → EmissionItem-BwXm3nNx.mjs} +5 -5
  85. package/dist/EmissionItem-BwXm3nNx.mjs.map +1 -0
  86. package/dist/EmissionItem-ZDlQ7B9S.mjs.map +1 -0
  87. package/dist/{EmissionList-DSuGp0JO.mjs → EmissionList-C8OxrndH.mjs} +6 -6
  88. package/dist/EmissionList-C8OxrndH.mjs.map +1 -0
  89. package/dist/EmissionList-C9-UUWMV.mjs.map +1 -0
  90. package/dist/EmissionList-Dk9xS4s_.mjs.map +1 -0
  91. package/dist/EmissionList-nrY7ASws.mjs.map +1 -0
  92. package/dist/EmissionList-vH4NX1NW.mjs.map +1 -0
  93. package/dist/EmissionPage-BHAPlZw-.mjs.map +1 -0
  94. package/dist/EmissionPage-B_2JalGG.mjs.map +1 -0
  95. package/dist/EmissionPage-D4PjyZzN.mjs.map +1 -0
  96. package/dist/EmissionPage-HGPCRuZD.mjs.map +1 -0
  97. package/dist/{EmissionPage-Bo9fK8HE.mjs → EmissionPage-nCNIiWCo.mjs} +25 -18
  98. package/dist/EmissionPage-nCNIiWCo.mjs.map +1 -0
  99. package/dist/EmissionPlayerItem-B_wRzikv.mjs.map +1 -0
  100. package/dist/{EmissionPlayerItem-D21OrPmm.mjs → EmissionPlayerItem-Degbnz9F.mjs} +5 -5
  101. package/dist/EmissionPlayerItem-Degbnz9F.mjs.map +1 -0
  102. package/dist/EmissionPlayerItem-Dkd0o1ee.mjs.map +1 -0
  103. package/dist/EmissionPresentationItem-BQ7HhOlC.mjs.map +1 -0
  104. package/dist/{EmissionPresentationItem-CwDIBurH.mjs → EmissionPresentationItem-CwBGPIgz.mjs} +2 -2
  105. package/dist/EmissionPresentationItem-CwBGPIgz.mjs.map +1 -0
  106. package/dist/{EmissionPresentationList-CASI5laP.mjs → EmissionPresentationList-BKI5mQdw.mjs} +4 -4
  107. package/dist/EmissionPresentationList-BKI5mQdw.mjs.map +1 -0
  108. package/dist/EmissionPresentationList-CLli23rs.mjs.map +1 -0
  109. package/dist/EmissionsPage-CO2xgVOR.mjs.map +1 -0
  110. package/dist/{EmissionsPage-Bw8Qtzlk.mjs → EmissionsPage-Cj7su56Z.mjs} +5 -5
  111. package/dist/EmissionsPage-Cj7su56Z.mjs.map +1 -0
  112. package/dist/EmissionsPage-DJdy0re_.mjs.map +1 -0
  113. package/dist/EmissionsPage-DR9r7_gH.mjs.map +1 -0
  114. package/dist/EmissionsPage-OVNfLKFu.mjs.map +1 -0
  115. package/dist/Error403Page-Ch535DfU.mjs.map +1 -0
  116. package/dist/{Error403Page-nTYCHwTi.mjs → Error403Page-DW2kK8ZZ.mjs} +2 -2
  117. package/dist/Error403Page-DW2kK8ZZ.mjs.map +1 -0
  118. package/dist/FooterGarSection-B76j-WZS.mjs.map +1 -0
  119. package/dist/{FooterGarSection-Cod8Key5.mjs → FooterGarSection-DVdF5RFq.mjs} +4 -4
  120. package/dist/FooterGarSection-DVdF5RFq.mjs.map +1 -0
  121. package/dist/FooterSection-BQiO-D1p.mjs.map +1 -0
  122. package/dist/{FooterSection-4WXBZj7c.mjs → FooterSection-CpYI9OGH.mjs} +5 -5
  123. package/dist/FooterSection-CpYI9OGH.mjs.map +1 -0
  124. package/dist/{HomeDropdown-CVe7yF6Y.mjs → HomeDropdown-D7FezAO8.mjs} +3 -3
  125. package/dist/HomeDropdown-D7FezAO8.mjs.map +1 -0
  126. package/dist/HomeDropdown-DQoMvBgU.mjs.map +1 -0
  127. package/dist/HomePage-BWs_az04.mjs.map +1 -0
  128. package/dist/HomePage-CMPKjRFA.mjs.map +1 -0
  129. package/dist/HomePage-CsXaeTCW.mjs.map +1 -0
  130. package/dist/HomePage-NH7OxpA_.mjs.map +1 -0
  131. package/dist/{HomePage-DupmOw6F.mjs → HomePage-vo6At2bL.mjs} +4 -4
  132. package/dist/HomePage-vo6At2bL.mjs.map +1 -0
  133. package/dist/{PodcastRubriqueList-BeTq7IRu.mjs → InlineRubriqueList-3ZVN9GJk.mjs} +14 -12
  134. package/dist/InlineRubriqueList-3ZVN9GJk.mjs.map +1 -0
  135. package/dist/InlineRubriqueList-D03VCzg8.mjs.map +1 -0
  136. package/dist/LikeSection-DtthHZj6.mjs.map +1 -0
  137. package/dist/{LikeSection-DAid96g9.mjs → LikeSection-jKjhnj88.mjs} +4 -4
  138. package/dist/LikeSection-jKjhnj88.mjs.map +1 -0
  139. package/dist/{ListPaginate-C9saxru9.mjs → ListPaginate-BXNnw_I8.mjs} +3 -3
  140. package/dist/ListPaginate-BXNnw_I8.mjs.map +1 -0
  141. package/dist/ListPaginate-COsL4t78.mjs.map +1 -0
  142. package/dist/ListPaginate-JuC0L113.mjs.map +1 -0
  143. package/dist/LiveHorizontalList-CFs9mGYs.mjs.map +1 -0
  144. package/dist/LiveHorizontalList-CWBQkS78.mjs.map +1 -0
  145. package/dist/LiveHorizontalList-DwPVmnvH.mjs.map +1 -0
  146. package/dist/LiveHorizontalList-jducN58c.mjs.map +1 -0
  147. package/dist/{LiveHorizontalList-OArlzudf.mjs → LiveHorizontalList-wgXkgFLv.mjs} +4 -4
  148. package/dist/LiveHorizontalList-wgXkgFLv.mjs.map +1 -0
  149. package/dist/LiveList-Bp-feBp9.mjs.map +1 -0
  150. package/dist/LiveList-ByyCyWUl.mjs.map +1 -0
  151. package/dist/{LiveList-EqIo_cye.mjs → LiveList-CA5n6VeN.mjs} +6 -6
  152. package/dist/LiveList-CA5n6VeN.mjs.map +1 -0
  153. package/dist/LiveList-Cah5VFun.mjs.map +1 -0
  154. package/dist/LiveList-DTAnN32j.mjs.map +1 -0
  155. package/dist/LivesPage-CNPMz3xS.mjs.map +1 -0
  156. package/dist/{LivesPage-BmHiBN8A.mjs → LivesPage-CTjXgU-Y.mjs} +5 -5
  157. package/dist/LivesPage-CTjXgU-Y.mjs.map +1 -0
  158. package/dist/LivesPage-CdhWyikV.mjs.map +1 -0
  159. package/dist/LivesPage-CwvFSl6G.mjs.map +1 -0
  160. package/dist/LivesPage-DyIfBEPX.mjs.map +1 -0
  161. package/dist/{MapPage-DcXKTGGh.mjs → MapPage-C_nGG0_5.mjs} +3 -3
  162. package/dist/MapPage-C_nGG0_5.mjs.map +1 -0
  163. package/dist/MapPage-DXV40zWN.mjs.map +1 -0
  164. package/dist/{MobileMenu-C0IYBWwF.mjs → MobileMenu-C95GAIm0.mjs} +4 -4
  165. package/dist/MobileMenu-C95GAIm0.mjs.map +1 -0
  166. package/dist/MobileMenu-CfHqWqsL.mjs.map +1 -0
  167. package/dist/NewsletterModal-4Lei4Y59.mjs.map +1 -0
  168. package/dist/{NewsletterModal-BzlUlz3P.mjs → NewsletterModal-B6ky7DBC.mjs} +2 -2
  169. package/dist/NewsletterModal-B6ky7DBC.mjs.map +1 -0
  170. package/dist/OrganisationChooser-BufDZsSd.mjs.map +1 -0
  171. package/dist/{OrganisationChooser-Bm4zqqCH.mjs → OrganisationChooser-CA0_LiTH.mjs} +3 -3
  172. package/dist/OrganisationChooser-CA0_LiTH.mjs.map +1 -0
  173. package/dist/{OrganisationChooserLight-BQ9B91mO.mjs → OrganisationChooserLight-BwG5mNdW.mjs} +2 -2
  174. package/dist/OrganisationChooserLight-BwG5mNdW.mjs.map +1 -0
  175. package/dist/OrganisationChooserLight-C2oGlc9Z.mjs.map +1 -0
  176. package/dist/{PageNotFound-BVQ8M8sO.mjs → PageNotFound-BHpjyNDo.mjs} +3 -3
  177. package/dist/PageNotFound-BHpjyNDo.mjs.map +1 -0
  178. package/dist/PageNotFound-IMnfLZqX.mjs.map +1 -0
  179. package/dist/{ParticipantInlineList-BQtQZFW1.mjs → ParticipantInlineList-A8UwjE4m.mjs} +5 -5
  180. package/dist/ParticipantInlineList-A8UwjE4m.mjs.map +1 -0
  181. package/dist/ParticipantInlineList-BpVOpEBm.mjs.map +1 -0
  182. package/dist/ParticipantInlineList-C5jWxedt.mjs.map +1 -0
  183. package/dist/ParticipantInlineList-C78uhskc.mjs.map +1 -0
  184. package/dist/ParticipantItem--Wv16z3V.mjs.map +1 -0
  185. package/dist/ParticipantItem-B3k4mf2V.mjs.map +1 -0
  186. package/dist/ParticipantItem-DAPOMGZD.mjs.map +1 -0
  187. package/dist/{ParticipantItem-EDPkxTT-.mjs → ParticipantItem-Szz8WXI6.mjs} +4 -4
  188. package/dist/ParticipantItem-Szz8WXI6.mjs.map +1 -0
  189. package/dist/ParticipantPage-BbKUwNKL.mjs.map +1 -0
  190. package/dist/ParticipantPage-Byq-9aCQ.mjs.map +1 -0
  191. package/dist/ParticipantPage-D4RVBlE-.mjs.map +1 -0
  192. package/dist/ParticipantPage-DfLxuZf-.mjs.map +1 -0
  193. package/dist/{ParticipantPage-BF-s1oof.mjs → ParticipantPage-y3OoBod8.mjs} +9 -9
  194. package/dist/ParticipantPage-y3OoBod8.mjs.map +1 -0
  195. package/dist/{ParticipantsPage-Bzt8Hxah.mjs → ParticipantsPage--BxmzVwz.mjs} +7 -7
  196. package/dist/ParticipantsPage--BxmzVwz.mjs.map +1 -0
  197. package/dist/ParticipantsPage-BEPHaCy5.mjs.map +1 -0
  198. package/dist/ParticipantsPage-BlQavFT6.mjs.map +1 -0
  199. package/dist/ParticipantsPage-D8ja25F9.mjs.map +1 -0
  200. package/dist/ParticipantsPage-R8LVrDFY.mjs.map +1 -0
  201. package/dist/{PlayerAnonymousModal-CbrqO1hs.mjs → PlayerAnonymousModal-BGPpTBPW.mjs} +3 -3
  202. package/dist/PlayerAnonymousModal-BGPpTBPW.mjs.map +1 -0
  203. package/dist/PlayerAnonymousModal-BW239BiA.mjs.map +1 -0
  204. package/dist/PlayerCompact-BFC95d7Y.mjs.map +1 -0
  205. package/dist/PlayerCompact-C-WCTFZN.mjs.map +1 -0
  206. package/dist/{PlayerCompact-BtKfz384.mjs → PlayerCompact-DnJns8S2.mjs} +4 -4
  207. package/dist/PlayerCompact-DnJns8S2.mjs.map +1 -0
  208. package/dist/PlayerComponent-B8AGq9pg.mjs.map +1 -0
  209. package/dist/{PlayerComponent-CxNkDcFc.mjs → PlayerComponent-BRBrXVjI.mjs} +27 -39
  210. package/dist/PlayerComponent-BRBrXVjI.mjs.map +1 -0
  211. package/dist/PlayerComponent-BbvNS7sy.mjs.map +1 -0
  212. package/dist/PlayerComponent-By_JAwx_.mjs.map +1 -0
  213. package/dist/PlayerComponent-C425OWjX.mjs.map +1 -0
  214. package/dist/PlayerComponent-C5PNQ3TW.mjs.map +1 -0
  215. package/dist/PlayerComponent-Cnk_vePj.mjs.map +1 -0
  216. package/dist/PlayerComponent-CovfufPB.mjs.map +1 -0
  217. package/dist/PlayerComponent-DC4jQIwE.mjs.map +1 -0
  218. package/dist/PlayerComponent-DEUmVv0M.mjs.map +1 -0
  219. package/dist/PlayerComponent-DOXY0vL0.mjs.map +1 -0
  220. package/dist/PlayerComponent-DajZbHv7.mjs.map +1 -0
  221. package/dist/PlayerComponent-DejSC061.mjs.map +1 -0
  222. package/dist/PlayerComponent-p7W2UNk6.mjs.map +1 -0
  223. package/dist/PlayerLarge-3zzN7qom.mjs.map +1 -0
  224. package/dist/{PlayerLarge-BH6BLQxk.mjs → PlayerLarge-B97rRmrJ.mjs} +12 -10
  225. package/dist/PlayerLarge-B97rRmrJ.mjs.map +1 -0
  226. package/dist/PlayerLarge-BzwrEgVR.mjs.map +1 -0
  227. package/dist/PlayerLarge-CLOwDO6Q.mjs.map +1 -0
  228. package/dist/PlayerLarge-Chv7pMOU.mjs.map +1 -0
  229. package/dist/PlayerLarge-CkWGaDiY.mjs.map +1 -0
  230. package/dist/PlayerLarge-D0NMzCRi.mjs.map +1 -0
  231. package/dist/PlayerLarge-D3obSnYt.mjs.map +1 -0
  232. package/dist/PlayerLarge-DLGXpE3K.mjs.map +1 -0
  233. package/dist/PlayerLarge-QtUrqNm5.mjs.map +1 -0
  234. package/dist/PlayerLarge-juuY9yOX.mjs.map +1 -0
  235. package/dist/PlayerLarge-n7zyM6b_.mjs.map +1 -0
  236. package/dist/PlayerLarge-o4FVk0QB.mjs.map +1 -0
  237. package/dist/PlayerLarge-tMW3v2La.mjs.map +1 -0
  238. package/dist/PlayerPlayButton-CTu0337E.mjs.map +1 -0
  239. package/dist/PlayerPlayButton-CfJWIpoP.mjs.map +1 -0
  240. package/dist/{PlayerPlayButton-DT2OdqnI.mjs → PlayerPlayButton-zKdHGzFr.mjs} +5 -5
  241. package/dist/PlayerPlayButton-zKdHGzFr.mjs.map +1 -0
  242. package/dist/{PlayerProgressBar-CSYnPjZb.mjs → PlayerProgressBar-BG5NG596.mjs} +4 -4
  243. package/dist/PlayerProgressBar-BG5NG596.mjs.map +1 -0
  244. package/dist/PlayerProgressBar-Cjv8JVY2.mjs.map +1 -0
  245. package/dist/PlayerProgressBar-Co0_YEF3.mjs.map +1 -0
  246. package/dist/PlayerStore-B-L2PQ_b.mjs.map +1 -0
  247. package/dist/PlayerStore-C2XzSrF5.mjs.map +1 -0
  248. package/dist/{PlayerStore-DukkcHI_.mjs → PlayerStore-vYmnOEA_.mjs} +3 -3
  249. package/dist/PlayerStore-vYmnOEA_.mjs.map +1 -0
  250. package/dist/PlayerVideo-DD6NaGkU.mjs.map +1 -0
  251. package/dist/{PlayerVideo-_Uz00K_T.mjs → PlayerVideo-Ds0oYeTC.mjs} +5 -5
  252. package/dist/PlayerVideo-Ds0oYeTC.mjs.map +1 -0
  253. package/dist/PlayerVideo-cYHZOYMv.mjs.map +1 -0
  254. package/dist/PlayerVideoDigiteka-BPJdJNEB.mjs.map +1 -0
  255. package/dist/{PlayerVideoDigiteka-CjfuxXBF.mjs → PlayerVideoDigiteka-C7xb0ndg.mjs} +3 -3
  256. package/dist/PlayerVideoDigiteka-C7xb0ndg.mjs.map +1 -0
  257. package/dist/PlayerVideoDigiteka-oqtYXqYK.mjs.map +1 -0
  258. package/dist/PlayerVideoHls-CB4psqbz.mjs.map +1 -0
  259. package/dist/{PlayerVideoHls-Dms7iTSo.mjs → PlayerVideoHls-xSNqzBEw.mjs} +4 -4
  260. package/dist/PlayerVideoHls-xSNqzBEw.mjs.map +1 -0
  261. package/dist/PlayerVideoHls-zNbegJFp.mjs.map +1 -0
  262. package/dist/PlaylistPage-BUj1Lzfp.mjs.map +1 -0
  263. package/dist/PlaylistPage-BhcJkM15.mjs.map +1 -0
  264. package/dist/PlaylistPage-BsHMB2nn.mjs.map +1 -0
  265. package/dist/{PlaylistPage-CQX0LhXn.mjs → PlaylistPage-D4mcAo00.mjs} +12 -12
  266. package/dist/PlaylistPage-D4mcAo00.mjs.map +1 -0
  267. package/dist/PlaylistPage-DjAgejp8.mjs.map +1 -0
  268. package/dist/PlaylistsPage-B3V5-WT9.mjs.map +1 -0
  269. package/dist/PlaylistsPage-DSjvWTw5.mjs.map +1 -0
  270. package/dist/{PlaylistsPage-Bd-u4qlc.mjs → PlaylistsPage-Dr6HKHf8.mjs} +7 -7
  271. package/dist/PlaylistsPage-Dr6HKHf8.mjs.map +1 -0
  272. package/dist/PodcastFilterList-C-8AF1Dn.mjs.map +1 -0
  273. package/dist/{PodcastFilterList-DkH6bqv_.mjs → PodcastFilterList-CYwPiGko.mjs} +3 -3
  274. package/dist/PodcastFilterList-CYwPiGko.mjs.map +1 -0
  275. package/dist/PodcastFilterList-C_d1SyTB.mjs.map +1 -0
  276. package/dist/PodcastFilterList-ClMsIUaO.mjs.map +1 -0
  277. package/dist/PodcastFilterList-DBS0kvW6.mjs.map +1 -0
  278. package/dist/PodcastImage-B8o3T5zK.mjs.map +1 -0
  279. package/dist/{PodcastImage-BtxcPlrh.mjs → PodcastImage-Bs1lpubL.mjs} +4 -4
  280. package/dist/PodcastImage-Bs1lpubL.mjs.map +1 -0
  281. package/dist/PodcastImage-DBB5689n.mjs.map +1 -0
  282. package/dist/PodcastImage-DNLZH0dY.mjs.map +1 -0
  283. package/dist/PodcastImage-DrV8oxG8.mjs.map +1 -0
  284. package/dist/{PodcastInlineList-CVWfH5np.mjs → PodcastInlineList-B7-2QswT.mjs} +2 -2
  285. package/dist/PodcastInlineList-B7-2QswT.mjs.map +1 -0
  286. package/dist/PodcastInlineList-BVMV6Wvd.mjs.map +1 -0
  287. package/dist/PodcastInlineList-BXPpF0YD.mjs.map +1 -0
  288. package/dist/PodcastInlineList-CLjO1SpD.mjs.map +1 -0
  289. package/dist/PodcastInlineList-Cf5YF0j9.mjs.map +1 -0
  290. package/dist/PodcastInlineListTemplate-BX0tXOFx.mjs.map +1 -0
  291. package/dist/{PodcastInlineListTemplate-BWw1Ix-7.mjs → PodcastInlineListTemplate-DCWn3r7s.mjs} +4 -4
  292. package/dist/PodcastInlineListTemplate-DCWn3r7s.mjs.map +1 -0
  293. package/dist/PodcastIsPlaying-BG1_FgVX.mjs.map +1 -0
  294. package/dist/{PodcastIsPlaying-B7YVeSyB.mjs → PodcastIsPlaying-BsObdQGR.mjs} +2 -2
  295. package/dist/PodcastIsPlaying-BsObdQGR.mjs.map +1 -0
  296. package/dist/PodcastIsPlaying-Csd-C2jr.mjs.map +1 -0
  297. package/dist/PodcastItem-CGmEwYT4.mjs.map +1 -0
  298. package/dist/PodcastItem-CN6gwARQ.mjs.map +1 -0
  299. package/dist/PodcastItem-CdLjZKxf.mjs.map +1 -0
  300. package/dist/PodcastItem-D1MwHzhE.mjs.map +1 -0
  301. package/dist/{PodcastItem-CFk8MX9D.mjs → PodcastItem-_8ErwIDG.mjs} +7 -7
  302. package/dist/PodcastItem-_8ErwIDG.mjs.map +1 -0
  303. package/dist/PodcastList-BXla7F3u.mjs.map +1 -0
  304. package/dist/PodcastList-BqE8dwdc.mjs.map +1 -0
  305. package/dist/PodcastList-BvC6iOS6.mjs.map +1 -0
  306. package/dist/PodcastList-CRwA-s7F.mjs.map +1 -0
  307. package/dist/PodcastList-CVFr9WNS.mjs.map +1 -0
  308. package/dist/PodcastList-DZKxDulS.mjs.map +1 -0
  309. package/dist/{PodcastList-BLXPFjvL.mjs → PodcastList-DgLQjL0d.mjs} +6 -6
  310. package/dist/PodcastList-DgLQjL0d.mjs.map +1 -0
  311. package/dist/{PodcastList-c0Iwzakm.mjs → PodcastList-DhKeiBbv.mjs} +5 -5
  312. package/dist/PodcastList-DhKeiBbv.mjs.map +1 -0
  313. package/dist/PodcastList-Dtq6kEG4.mjs.map +1 -0
  314. package/dist/PodcastList-Dx-mo7Wo.mjs.map +1 -0
  315. package/dist/{PodcastPage-C_d9FaS7.mjs → PodcastPage-C5OCwW8q.mjs} +23 -23
  316. package/dist/PodcastPage-C5OCwW8q.mjs.map +1 -0
  317. package/dist/PodcastPage-CsVqOGWc.mjs.map +1 -0
  318. package/dist/PodcastPage-DQInD9ry.mjs.map +1 -0
  319. package/dist/PodcastPage-Dka9GEzi.mjs.map +1 -0
  320. package/dist/PodcastPage-acKIH0vO.mjs.map +1 -0
  321. package/dist/PodcastPlayBar-AgtR8Ia9.mjs.map +1 -0
  322. package/dist/PodcastPlayBar-D7CyLEM4.mjs.map +1 -0
  323. package/dist/{PodcastPlayBar-WjGn_KlZ.mjs → PodcastPlayBar-DC5HCx76.mjs} +4 -4
  324. package/dist/PodcastPlayBar-DC5HCx76.mjs.map +1 -0
  325. package/dist/PodcastPlayBasicButton-DHYxw3NX.mjs.map +1 -0
  326. package/dist/{PodcastPlayBasicButton-BNKlqhGR.mjs → PodcastPlayBasicButton-PJHza4d_.mjs} +2 -2
  327. package/dist/PodcastPlayBasicButton-PJHza4d_.mjs.map +1 -0
  328. package/dist/PodcastPlayBasicButton-gK82n3YL.mjs.map +1 -0
  329. package/dist/{PodcastPlayButton-B9hWbPEk.mjs → PodcastPlayButton-1eaXWTlG.mjs} +4 -4
  330. package/dist/PodcastPlayButton-1eaXWTlG.mjs.map +1 -0
  331. package/dist/PodcastPlayButton-Bosq5ozq.mjs.map +1 -0
  332. package/dist/PodcastPlayButton-DIQi57Oh.mjs.map +1 -0
  333. package/dist/PodcastPlayButton-DcjbCnlT.mjs.map +1 -0
  334. package/dist/PodcastPlayButton-DgSCyhrd.mjs.map +1 -0
  335. package/dist/PodcastPlaylistInlineList-C0HZum5z.mjs.map +1 -0
  336. package/dist/PodcastPlaylistInlineList-CSziI2j4.mjs.map +1 -0
  337. package/dist/PodcastPlaylistInlineList-CvX2rauY.mjs.map +1 -0
  338. package/dist/PodcastPlaylistInlineList-H_rnCHag.mjs.map +1 -0
  339. package/dist/{PodcastPlaylistInlineList-_csxbYAx.mjs → PodcastPlaylistInlineList-XTbhC8OJ.mjs} +5 -5
  340. package/dist/PodcastPlaylistInlineList-XTbhC8OJ.mjs.map +1 -0
  341. package/dist/{PodcastPresentationList-BD8XmnW0.mjs → PodcastPresentationList-BUl5Rq83.mjs} +5 -5
  342. package/dist/PodcastPresentationList-BUl5Rq83.mjs.map +1 -0
  343. package/dist/PodcastPresentationList-BvkEDbtG.mjs.map +1 -0
  344. package/dist/PodcastPresentationList-C0n-xr5w.mjs.map +1 -0
  345. package/dist/PodcastPresentationList-CnrMkINf.mjs.map +1 -0
  346. package/dist/PodcastPresentationList-DC-Oi_eK.mjs.map +1 -0
  347. package/dist/PodcastProgressBar-CP-0ptRF.mjs.map +1 -0
  348. package/dist/{PodcastProgressBar-B3XOeeJx.mjs → PodcastProgressBar-VG-mRcpi.mjs} +4 -4
  349. package/dist/PodcastProgressBar-VG-mRcpi.mjs.map +1 -0
  350. package/dist/PodcastProgressBar-jY43GoFx.mjs.map +1 -0
  351. package/dist/PodcastRawTranscript-BAu-dt2V.mjs.map +1 -0
  352. package/dist/{PodcastRawTranscript-D0Nm7jGM.mjs → PodcastRawTranscript-Bf6f5yNd.mjs} +3 -3
  353. package/dist/PodcastRawTranscript-Bf6f5yNd.mjs.map +1 -0
  354. package/dist/{PodcastSwiperList-DJ0O3dqM.mjs → PodcastSwiperList-BhulNkN-.mjs} +5 -5
  355. package/dist/PodcastSwiperList-BhulNkN-.mjs.map +1 -0
  356. package/dist/PodcastSwiperList-CGeumBPj.mjs.map +1 -0
  357. package/dist/PodcastSwiperList-CzUkS6M6.mjs.map +1 -0
  358. package/dist/PodcastSwiperList-DLKOAjUS.mjs.map +1 -0
  359. package/dist/PodcastSwiperList-DaTHwrHm.mjs.map +1 -0
  360. package/dist/PodcastmakerHeader-BZT-U0KX.mjs.map +1 -0
  361. package/dist/{PodcastmakerHeader-DAATtOG_.mjs → PodcastmakerHeader-Df0g2dCr.mjs} +2 -2
  362. package/dist/PodcastmakerHeader-Df0g2dCr.mjs.map +1 -0
  363. package/dist/PodcastsPage-B-Qzlif0.mjs.map +1 -0
  364. package/dist/PodcastsPage-BoK55Z9G.mjs.map +1 -0
  365. package/dist/PodcastsPage-CTzbr2VD.mjs.map +1 -0
  366. package/dist/{PodcastsPage-ZhEVoMp1.mjs → PodcastsPage-DSJUPRZE.mjs} +5 -5
  367. package/dist/PodcastsPage-DSJUPRZE.mjs.map +1 -0
  368. package/dist/PodcastsPage-Jg_jAix6.mjs.map +1 -0
  369. package/dist/{ProductorSearch-xs0kzX_E.mjs → ProductorSearch-BTj9gIOs.mjs} +3 -3
  370. package/dist/ProductorSearch-BTj9gIOs.mjs.map +1 -0
  371. package/dist/ProductorSearch-ziDbxrDd.mjs.map +1 -0
  372. package/dist/ProgressBar-BOq9RfZ2.mjs.map +1 -0
  373. package/dist/{ProgressBar-0DSoUTwB.mjs → ProgressBar-BVc0_6Lv.mjs} +2 -2
  374. package/dist/ProgressBar-BVc0_6Lv.mjs.map +1 -0
  375. package/dist/ProgressBar-Cgt2PqnO.mjs.map +1 -0
  376. package/dist/QrCode-DNiPIFIA.mjs.map +1 -0
  377. package/dist/{QrCode-CUP2O18d.mjs → QrCode-MCv4t_Bn.mjs} +2 -2
  378. package/dist/QrCode-MCv4t_Bn.mjs.map +1 -0
  379. package/dist/{QrCodeModal-DXBCuki7.mjs → QrCodeModal-Be8E0JlC.mjs} +2 -2
  380. package/dist/QrCodeModal-Be8E0JlC.mjs.map +1 -0
  381. package/dist/QrCodeModal-DYDKLLuw.mjs.map +1 -0
  382. package/dist/RadioCurrently-BJOmCSby.mjs.map +1 -0
  383. package/dist/RadioCurrently-CZePLInZ.mjs.map +1 -0
  384. package/dist/{RadioCurrently-D5M81oIX.mjs → RadioCurrently-DWySwV64.mjs} +4 -4
  385. package/dist/RadioCurrently-DWySwV64.mjs.map +1 -0
  386. package/dist/RadioHistory-7EGvEAMx.mjs.map +1 -0
  387. package/dist/RadioHistory-BdMa013x.mjs.map +1 -0
  388. package/dist/{RadioHistory-BgOve4jk.mjs → RadioHistory-DlQFZYp2.mjs} +3 -3
  389. package/dist/RadioHistory-DlQFZYp2.mjs.map +1 -0
  390. package/dist/{RadioImage-CUTRr3DL.mjs → RadioImage-BIe2KpG_.mjs} +5 -5
  391. package/dist/RadioImage-BIe2KpG_.mjs.map +1 -0
  392. package/dist/RadioImage-CXFZXN1N.mjs.map +1 -0
  393. package/dist/RadioImage-CpJmuc8a.mjs.map +1 -0
  394. package/dist/{RadioList-CwzOFHc1.mjs → RadioList-B23gsiEF.mjs} +5 -5
  395. package/dist/RadioList-B23gsiEF.mjs.map +1 -0
  396. package/dist/RadioList-BwzgNcMO.mjs.map +1 -0
  397. package/dist/RadioList-KvAacjmD.mjs.map +1 -0
  398. package/dist/RadioPage-CM_4A1AQ.mjs.map +1 -0
  399. package/dist/RadioPage-DkBL81mI.mjs.map +1 -0
  400. package/dist/{RadioPage-DVflzCV-.mjs → RadioPage-Jg2kmtna.mjs} +11 -11
  401. package/dist/RadioPage-Jg2kmtna.mjs.map +1 -0
  402. package/dist/{RadioPlanning-CJ7Qqyhs.mjs → RadioPlanning-2aWTnbZb.mjs} +3 -3
  403. package/dist/RadioPlanning-2aWTnbZb.mjs.map +1 -0
  404. package/dist/RadioPlanning-DHxcBVQo.mjs.map +1 -0
  405. package/dist/RadioProgressBar-BHAawrHe.mjs.map +1 -0
  406. package/dist/RadioProgressBar-CPjLAoPB.mjs.map +1 -0
  407. package/dist/{RadioProgressBar-BmJbzzQA.mjs → RadioProgressBar-yIz1oI5d.mjs} +2 -2
  408. package/dist/RadioProgressBar-yIz1oI5d.mjs.map +1 -0
  409. package/dist/RecaptchaModal-DKugsU7h.mjs.map +1 -0
  410. package/dist/{RecaptchaModal-DX9rAHUg.mjs → RecaptchaModal-dfMCfebx.mjs} +2 -2
  411. package/dist/RecaptchaModal-dfMCfebx.mjs.map +1 -0
  412. package/dist/ReportAbuseModal-Bxr7NTvH.mjs.map +1 -0
  413. package/dist/{ReportAbuseModal-CYCRaFAY.mjs → ReportAbuseModal-DZKRbYXJ.mjs} +4 -4
  414. package/dist/ReportAbuseModal-DZKRbYXJ.mjs.map +1 -0
  415. package/dist/RightsIndicator-BgW0q3af.mjs.map +1 -0
  416. package/dist/RightsIndicator-BtzqiPWc.mjs.map +1 -0
  417. package/dist/{RightsIndicator-qIU4_wiF.mjs → RightsIndicator-D5I3DOfO.mjs} +2 -2
  418. package/dist/RightsIndicator-D5I3DOfO.mjs.map +1 -0
  419. package/dist/RightsIndicator-NOZ05rEh.mjs.map +1 -0
  420. package/dist/RightsWrapper-Cv41FXNO.mjs.map +1 -0
  421. package/dist/{RightsWrapper-Cs6prZ3E.mjs → RightsWrapper-HasUbnny.mjs} +3 -3
  422. package/dist/RightsWrapper-HasUbnny.mjs.map +1 -0
  423. package/dist/{RubriqueFilter-OA_DJKL1.mjs → RubriqueFilter-3SPVH4nT.mjs} +3 -3
  424. package/dist/RubriqueFilter-3SPVH4nT.mjs.map +1 -0
  425. package/dist/RubriqueFilter-B_F2fyA0.mjs.map +1 -0
  426. package/dist/RubriqueList-CalsqgcR.mjs.map +1 -0
  427. package/dist/{RubriqueList-B94NM5yi.mjs → RubriqueList-TnVM2-Ry.mjs} +3 -3
  428. package/dist/RubriqueList-TnVM2-Ry.mjs.map +1 -0
  429. package/dist/RubriquePage-BhneK7GY.mjs.map +1 -0
  430. package/dist/RubriquePage-CPV9lztT.mjs.map +1 -0
  431. package/dist/{RubriquePage-DyusiBmp.mjs → RubriquePage-D223TaA2.mjs} +5 -5
  432. package/dist/RubriquePage-D223TaA2.mjs.map +1 -0
  433. package/dist/RubriquePage-DriBVVmv.mjs.map +1 -0
  434. package/dist/RubriquePage-x_tOmQCH.mjs.map +1 -0
  435. package/dist/SearchPage-B-KDO-5r.mjs.map +1 -0
  436. package/dist/{SearchPage-BGOBGS4j.mjs → SearchPage-BH1gYkHn.mjs} +3 -3
  437. package/dist/SearchPage-BH1gYkHn.mjs.map +1 -0
  438. package/dist/SearchPage-CXOoJF_2.mjs.map +1 -0
  439. package/dist/SearchPage-DyX_tEm5.mjs.map +1 -0
  440. package/dist/SearchPage-IvX74fSJ.mjs.map +1 -0
  441. package/dist/{ShareAnonymous-Chfdzzra.mjs → ShareAnonymous-4UxjKrIe.mjs} +6 -6
  442. package/dist/ShareAnonymous-4UxjKrIe.mjs.map +1 -0
  443. package/dist/ShareAnonymous-C4xPMrgf.mjs.map +1 -0
  444. package/dist/{ShareModalPlayer-CLY_JFFD.mjs → ShareModalPlayer-B0wPlpdU.mjs} +2 -2
  445. package/dist/ShareModalPlayer-B0wPlpdU.mjs.map +1 -0
  446. package/dist/ShareModalPlayer-CEvDV-I_.mjs.map +1 -0
  447. package/dist/ShareNewsletter-Bno5t4ay.mjs.map +1 -0
  448. package/dist/{ShareNewsletter-B4dn4-jA.mjs → ShareNewsletter-Cf9w-I6c.mjs} +2 -2
  449. package/dist/ShareNewsletter-Cf9w-I6c.mjs.map +1 -0
  450. package/dist/SharePlayer-BLqYnywl.mjs.map +1 -0
  451. package/dist/{SharePlayer-wHDYsWYd.mjs → SharePlayer-Oy1pWckd.mjs} +4 -4
  452. package/dist/SharePlayer-Oy1pWckd.mjs.map +1 -0
  453. package/dist/{SharePlayerRadio-D3LXD_gK.mjs → SharePlayerRadio-CI6glNuI.mjs} +3 -3
  454. package/dist/SharePlayerRadio-CI6glNuI.mjs.map +1 -0
  455. package/dist/SharePlayerRadio-c_HFTupz.mjs.map +1 -0
  456. package/dist/SharePlayerTypes-Dkmmw2We.mjs.map +1 -0
  457. package/dist/{SharePlayerTypes-eYSeVl-W.mjs → SharePlayerTypes-cUgCFZ65.mjs} +2 -2
  458. package/dist/SharePlayerTypes-cUgCFZ65.mjs.map +1 -0
  459. package/dist/{ShareSocialsButtons-iHtSoQ3K.mjs → ShareSocialsButtons-BYsXc2Jr.mjs} +2 -2
  460. package/dist/ShareSocialsButtons-BYsXc2Jr.mjs.map +1 -0
  461. package/dist/ShareSocialsButtons-DZLZc1c6.mjs.map +1 -0
  462. package/dist/SimpleLayout-BCsUQENG.mjs.map +1 -0
  463. package/dist/SimpleLayout-BGKNHHjx.mjs.map +1 -0
  464. package/dist/SimpleLayout-BHIdltFB.mjs.map +1 -0
  465. package/dist/SimpleLayout-BKkwQmN6.mjs.map +1 -0
  466. package/dist/SimpleLayout-BORx9hRX.mjs.map +1 -0
  467. package/dist/{SimpleLayout-Bk74CAAr.mjs → SimpleLayout-BTJyAJO6.mjs} +3 -3
  468. package/dist/SimpleLayout-BTJyAJO6.mjs.map +1 -0
  469. package/dist/SimpleLayout-BvOAauzs.mjs.map +1 -0
  470. package/dist/SimpleLayout-C3xekYgM.mjs.map +1 -0
  471. package/dist/SimpleLayout-C4xNk0R4.mjs.map +1 -0
  472. package/dist/SimpleLayout-CDcsE-Be.mjs.map +1 -0
  473. package/dist/SimpleLayout-D3M_c1Eu.mjs.map +1 -0
  474. package/dist/SimpleLayout-DJgC3LcZ.mjs.map +1 -0
  475. package/dist/SimpleLayout-DkvEZxow.mjs.map +1 -0
  476. package/dist/SimpleLayout-gtbBGlVV.mjs.map +1 -0
  477. package/dist/SmartLinkPage-BF8hfaWZ.mjs.map +1 -0
  478. package/dist/{SmartLinkPage-DbuQT8GM.mjs → SmartLinkPage-DQljzYa-.mjs} +5 -5
  479. package/dist/SmartLinkPage-DQljzYa-.mjs.map +1 -0
  480. package/dist/SmartLinkPage-DmlqwhYP.mjs.map +1 -0
  481. package/dist/SubscribeButtons-DO4MRuDr.mjs.map +1 -0
  482. package/dist/{SubscribeButtons-rnonTVzT.mjs → SubscribeButtons-lAAMYQCm.mjs} +3 -3
  483. package/dist/SubscribeButtons-lAAMYQCm.mjs.map +1 -0
  484. package/dist/{SwiperList-C1v0T1wx.mjs → SwiperList-C51H-enh.mjs} +2 -2
  485. package/dist/SwiperList-C51H-enh.mjs.map +1 -0
  486. package/dist/SwiperList-Dsq1MFX6.mjs.map +1 -0
  487. package/dist/TagList-B5C9zojs.mjs.map +1 -0
  488. package/dist/{TagList-VeuYS_zJ.mjs → TagList-D3Bn2fIn.mjs} +2 -2
  489. package/dist/TagList-D3Bn2fIn.mjs.map +1 -0
  490. package/dist/TagPage-B71pZpRY.mjs.map +1 -0
  491. package/dist/{TagPage-Bd81QJHn.mjs → TagPage-Brw9iL1F.mjs} +4 -4
  492. package/dist/TagPage-Brw9iL1F.mjs.map +1 -0
  493. package/dist/TagPage-CWRyUZkD.mjs.map +1 -0
  494. package/dist/TagPage-DFo25ZeP.mjs.map +1 -0
  495. package/dist/TagPage-sI917OpV.mjs.map +1 -0
  496. package/dist/TopBar-CaCA8kOs.mjs.map +1 -0
  497. package/dist/{TopBar-CZVp2T7C.mjs → TopBar-DIdhyJi_.mjs} +7 -7
  498. package/dist/TopBar-DIdhyJi_.mjs.map +1 -0
  499. package/dist/{UserButtonContent-DmNyGmWr.mjs → UserButtonContent-D13cVA34.mjs} +7 -7
  500. package/dist/UserButtonContent-D13cVA34.mjs.map +1 -0
  501. package/dist/UserButtonContent-DMKyXEmF.mjs.map +1 -0
  502. package/dist/{VideoModuleBox-yJZpgCw6.mjs → VideoModuleBox-CFQmvPrA.mjs} +2 -2
  503. package/dist/VideoModuleBox-CFQmvPrA.mjs.map +1 -0
  504. package/dist/VideoModuleBox-DsBLAMrh.mjs.map +1 -0
  505. package/dist/VideoPage-CfJeWV-R.mjs.map +1 -0
  506. package/dist/VideoPage-CnIZYz-k.mjs.map +1 -0
  507. package/dist/VideoPage-D6UNKt2D.mjs.map +1 -0
  508. package/dist/{VideoPage-y6G4Y2Zi.mjs → VideoPage-DU9dJviO.mjs} +10 -10
  509. package/dist/VideoPage-DU9dJviO.mjs.map +1 -0
  510. package/dist/VideoPage-OIb28KAS.mjs.map +1 -0
  511. package/dist/classicApi-C70YSK8J.mjs.map +1 -0
  512. package/dist/classicApi-DuzZv1Wk.mjs.map +1 -1
  513. package/dist/{classicApi-CkDHWZG1.mjs → classicApi-xjOqAovv.mjs} +11 -8
  514. package/dist/classicApi-xjOqAovv.mjs.map +1 -0
  515. package/dist/downloadHelper-C4q0i5xN.mjs.map +1 -0
  516. package/dist/{downloadHelper-DLdkblYN.mjs → downloadHelper-DY3fF3dA.mjs} +2 -2
  517. package/dist/downloadHelper-DY3fF3dA.mjs.map +1 -0
  518. package/dist/index.mjs +102 -97
  519. package/dist/index.mjs.map +1 -1
  520. package/dist/tests.mjs +2 -2
  521. package/dist/{useAdvancedParamInit-B7G2Mvjv.mjs → useAdvancedParamInit-CCprE3H2.mjs} +6 -6
  522. package/dist/useAdvancedParamInit-CCprE3H2.mjs.map +1 -0
  523. package/dist/useAdvancedParamInit-CT8CdPFW.mjs.map +1 -0
  524. package/dist/useDayjs-BPXVSBns.mjs.map +1 -0
  525. package/dist/{useDayjs-C3cnTiDW.mjs → useDayjs-DPVjvJPN.mjs} +2 -2
  526. package/dist/useDayjs-DPVjvJPN.mjs.map +1 -0
  527. package/dist/useErrorHandler-BxQT9ZGf.mjs.map +1 -0
  528. package/dist/{useErrorHandler-DtLjD9t_.mjs → useErrorHandler-D3XVxUh6.mjs} +2 -2
  529. package/dist/useErrorHandler-D3XVxUh6.mjs.map +1 -0
  530. package/dist/{useImageProxy-Bj0cOCct.mjs → useImageProxy-BdQJmj4a.mjs} +2 -2
  531. package/dist/useImageProxy-BdQJmj4a.mjs.map +1 -0
  532. package/dist/useImageProxy-DROuweGY.mjs.map +1 -0
  533. package/dist/{useOrgaComputed-BLSpEDfb.mjs → useOrgaComputed-B2Bq0VBT.mjs} +2 -2
  534. package/dist/useOrgaComputed-B2Bq0VBT.mjs.map +1 -0
  535. package/dist/useOrgaComputed-CGomgs0r.mjs.map +1 -0
  536. package/dist/{usePlayerLogicProgress-75G9QMg_.mjs → usePlayerLogicProgress-DcHbYGOR.mjs} +3 -3
  537. package/dist/usePlayerLogicProgress-DcHbYGOR.mjs.map +1 -0
  538. package/dist/usePlayerLogicProgress-Dchl5sUO.mjs.map +1 -0
  539. package/dist/usePlayerLogicProgress-lqnQ5qNd.mjs.map +1 -0
  540. package/dist/{usePodcastView-BftS642h.mjs → usePodcastView-BDZ6CGQj.mjs} +4 -4
  541. package/dist/usePodcastView-BDZ6CGQj.mjs.map +1 -0
  542. package/dist/usePodcastView-CI5le-WW.mjs.map +1 -0
  543. package/dist/usePresentationItem-Cw9fBYUi.mjs.map +1 -0
  544. package/dist/{usePresentationItem-CNXIk-Sf.mjs → usePresentationItem-UwAuhVqo.mjs} +4 -4
  545. package/dist/usePresentationItem-UwAuhVqo.mjs.map +1 -0
  546. package/dist/useRights-D8CLzCMH.mjs.map +1 -0
  547. package/dist/{useRights-Co0TgD8y.mjs → useRights-DSZ-5pFg.mjs} +2 -2
  548. package/dist/useRights-DSZ-5pFg.mjs.map +1 -0
  549. package/dist/{useRubriquesFilterComputed-VsdTUNL6.mjs → useRubriquesFilterComputed-BkDeXTf-.mjs} +2 -2
  550. package/dist/useRubriquesFilterComputed-BkDeXTf-.mjs.map +1 -0
  551. package/dist/useRubriquesFilterComputed-Bkre15fg.mjs.map +1 -0
  552. package/dist/useRubriquesFilterParam-BmE8v1fS.mjs.map +1 -0
  553. package/dist/{useRubriquesFilterParam--x07HEw1.mjs → useRubriquesFilterParam-Delgf48y.mjs} +2 -2
  554. package/dist/useRubriquesFilterParam-Delgf48y.mjs.map +1 -0
  555. package/dist/{useSharePlatforms-CSSRTkTG.mjs → useSharePlatforms-07n3JYu2.mjs} +3 -3
  556. package/dist/useSharePlatforms-07n3JYu2.mjs.map +1 -0
  557. package/dist/useSharePlatforms-B_3OwBFv.mjs.map +1 -0
  558. package/dist/{useSimplePageParam-ClaGQ9yj.mjs → useSimplePageParam-CsY_ie3c.mjs} +2 -2
  559. package/dist/useSimplePageParam-CsY_ie3c.mjs.map +1 -0
  560. package/dist/useSimplePageParam-ki2VyM-X.mjs.map +1 -0
  561. package/dist/{useTranslation-BNshNMQT.mjs → useTranslation-ChEasnl9.mjs} +25 -8
  562. package/dist/useTranslation-ChEasnl9.mjs.map +1 -0
  563. package/dist/useTranslation-D0R0BSx9.mjs.map +1 -0
  564. package/dist/usefetchRadioData-BPmkztGC.mjs.map +1 -0
  565. package/dist/{usefetchRadioData-C2cwiaCP.mjs → usefetchRadioData-CkrAfN1c.mjs} +2 -2
  566. package/dist/usefetchRadioData-CkrAfN1c.mjs.map +1 -0
  567. package/package.json +1 -1
  568. package/src/components/composable/player/usePlayerLive.ts +8 -7
  569. package/src/stores/AuthStore.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionGroupChooser-CO1WBOUi.mjs","names":[],"sources":["../src/components/display/emission/EmissionGroupChooser.vue","../src/components/display/emission/EmissionGroupChooser.vue"],"sourcesContent":["<template>\n <OctopusMultiselect\n :placeholder=\"placeholder ?? $t('Search - Emission groups placeholder')\"\n :selected=\"groups\"\n :options=\"allGroups\"\n :no-border=\"noBorder\"\n option-label=\"name\"\n option-key=\"groupId\"\n @update:selected=\"emitSelected\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\n\nimport OctopusMultiselect from \"../../form/OctopusMultiselect.vue\"; \nimport { groupsApi, EmissionGroup } from \"../../../api/groupsApi\";\n\n//Props \nconst props = defineProps<{\n /** Filter by organisation */\n organisationId?: string|Array<string>;\n /** Currently selected groups */\n groups: Array<EmissionGroup>;\n /** Change default placeholder */\n placeholder?: string;\n /** Disable borders */\n noBorder?: boolean;\n}>();\n\n//Emits\nconst emit = defineEmits<{\n (e: \"update:groups\", groups: Array<EmissionGroup>): void;\n}>();\n\n//Data\nconst maxElement = 200;\nconst allGroups = ref<Array<EmissionGroup>>([]);\n\nonMounted(async() => {\n const response = await groupsApi.search({\n first: 0,\n size: maxElement,\n organisationIds: [props.organisationId].flat(),\n });\n\n // Only groups with emissions are available\n allGroups.value = response.result.filter(g => g.emissionIds?.length ?? 0 > 0);\n});\n\nfunction emitSelected(option: Array<EmissionGroup>) {\n emit(\"update:groups\", option);\n}\n</script>\n","<template>\n <OctopusMultiselect\n :placeholder=\"placeholder ?? $t('Search - Emission groups placeholder')\"\n :selected=\"groups\"\n :options=\"allGroups\"\n :no-border=\"noBorder\"\n option-label=\"name\"\n option-key=\"groupId\"\n @update:selected=\"emitSelected\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\n\nimport OctopusMultiselect from \"../../form/OctopusMultiselect.vue\"; \nimport { groupsApi, EmissionGroup } from \"../../../api/groupsApi\";\n\n//Props \nconst props = defineProps<{\n /** Filter by organisation */\n organisationId?: string|Array<string>;\n /** Currently selected groups */\n groups: Array<EmissionGroup>;\n /** Change default placeholder */\n placeholder?: string;\n /** Disable borders */\n noBorder?: boolean;\n}>();\n\n//Emits\nconst emit = defineEmits<{\n (e: \"update:groups\", groups: Array<EmissionGroup>): void;\n}>();\n\n//Data\nconst maxElement = 200;\nconst allGroups = ref<Array<EmissionGroup>>([]);\n\nonMounted(async() => {\n const response = await groupsApi.search({\n first: 0,\n size: maxElement,\n organisationIds: [props.organisationId].flat(),\n });\n\n // Only groups with emissions are available\n allGroups.value = response.result.filter(g => g.emissionIds?.length ?? 0 > 0);\n});\n\nfunction emitSelected(option: Array<EmissionGroup>) {\n emit(\"update:groups\", option);\n}\n</script>\n"],"mappings":";;;;;;AAoCA,IAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;EAjBnB,MAAM,QAAQ;EAYd,MAAM,OAAO;EAMb,MAAM,YAAY,IAA0B,CAAC,CAAC;EAE9C,UAAU,YAAW;GAQjB,UAAU,SAAS,MAPI,UAAU,OAAO;IACpC,OAAO;IACP,MAAM;IACN,iBAAiB,CAAC,MAAM,cAAc,EAAE,KAAK;GACjD,CAAC,GAG2B,OAAO,QAAO,MAAK,EAAE,aAAa,UAAU,KAAK;EACjF,CAAC;EAED,SAAS,aAAa,QAA8B;GAChD,KAAK,iBAAiB,MAAM;EAChC;;;;;;;;;;;;;;;;;;;;qBCnDI,YAQE,OAAA,uBAAA;EAPG,aAAa,OAAA,eAAe,KAAA,GAAE,sCAAA;EAC9B,UAAU,OAAA;EACV,SAAS,OAAA;EACT,aAAW,OAAA;EACZ,gBAAa;EACb,cAAW;EACV,qBAAiB,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionInlineList-B-r4eI3D.mjs","names":[],"sources":["../src/components/display/emission/EmissionInlineList.vue","../src/components/display/emission/EmissionInlineList.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
2
  import { t as ClassicLoading_default } from "./ClassicLoading-Crlw7cAx.mjs";
3
- import { A as state, t as classicApi_default } from "./classicApi-CkDHWZG1.mjs";
4
- import { t as useErrorHandler } from "./useErrorHandler-DtLjD9t_.mjs";
5
- import { t as SwiperList_default } from "./SwiperList-C1v0T1wx.mjs";
6
- import { t as EmissionPresentationItem_default } from "./EmissionPresentationItem-CwDIBurH.mjs";
7
- import { t as EmissionPlayerItem_default } from "./EmissionPlayerItem-D21OrPmm.mjs";
3
+ import { A as state, t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
4
+ import { t as useErrorHandler } from "./useErrorHandler-D3XVxUh6.mjs";
5
+ import { t as SwiperList_default } from "./SwiperList-C51H-enh.mjs";
6
+ import { t as EmissionPresentationItem_default } from "./EmissionPresentationItem-CwBGPIgz.mjs";
7
+ import { t as EmissionPlayerItem_default } from "./EmissionPlayerItem-Degbnz9F.mjs";
8
8
  import { computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, normalizeClass, onMounted, openBlock, ref, resolveComponent, toDisplayString, withCtx } from "vue";
9
9
  import { useI18n } from "vue-i18n";
10
10
  //#region src/components/display/emission/EmissionInlineList.vue?vue&type=script&setup=true&lang.ts
@@ -185,4 +185,4 @@ var EmissionInlineList_default = /*#__PURE__*/ _plugin_vue_export_helper_default
185
185
  //#endregion
186
186
  export { EmissionInlineList_default as default };
187
187
 
188
- //# sourceMappingURL=EmissionInlineList-BcrKpW8S.mjs.map
188
+ //# sourceMappingURL=EmissionInlineList-Cy1lbYKY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionInlineList-Cy1lbYKY.mjs","names":[],"sources":["../src/components/display/emission/EmissionInlineList.vue","../src/components/display/emission/EmissionInlineList.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionInlineList-IKPyjBTQ.mjs","names":[],"sources":["../src/components/display/emission/EmissionInlineList.vue","../src/components/display/emission/EmissionInlineList.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionItem-982WkWkg.mjs","names":[],"sources":["../src/components/misc/ClassicImageBanner.vue","../src/components/display/emission/EmissionItem.vue","../src/components/display/emission/EmissionItem.vue"],"sourcesContent":["<!-- A simple component to display a blur & a banner on an image -->\n<template>\n <div class=\"blur-with-banner\">\n <div class=\"banner\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup>\n</script>\n\n<style lang=\"scss\" scoped>\n.blur-with-banner {\n position: absolute;\n inset: 0;\n background-color:var(--octopus-background-transparent);\n // Allow pointer events to go through (allow click on image beneath blur)\n pointer-events: none;\n\n .banner {\n text-align: center;\n width: 100%;\n font-size: 0.6rem;\n padding: 0.2rem 0;\n color: white;\n background: black;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n }\n}\n</style>","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionItem-B8q9hnN5.mjs","names":[],"sources":["../src/components/misc/ClassicImageBanner.vue","../src/components/display/emission/EmissionItem.vue","../src/components/display/emission/EmissionItem.vue"],"sourcesContent":["<!-- A simple component to display a blur & a banner on an image -->\n<template>\n <div class=\"blur-with-banner\">\n <div class=\"banner\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup>\n</script>\n\n<style lang=\"scss\" scoped>\n.blur-with-banner {\n position: absolute;\n inset: 0;\n background-color:var(--octopus-background-transparent);\n // Allow pointer events to go through (allow click on image beneath blur)\n pointer-events: none;\n\n .banner {\n text-align: center;\n width: 100%;\n font-size: 0.6rem;\n padding: 0.2rem 0;\n color: white;\n background: black;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n }\n}\n</style>","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;qBAES,OAAM,mBAAkB;qBACpB,OAAM,SAAQ;;qBADvB,mBAIM,OAJN,cAIM,CAHF,mBAEM,OAFN,cAEM,CADF,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,IAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;EC8EpB,MAAM,QAAQ;EAMd,MAAM,iBAAiB,IAAI,IAAI;EAG/B,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,EAAE,qBAAqB,cAAc;EAC3C,MAAM,EAAE,gBAAgB,iBAAiB,gBAAgB;EAGzD,MAAM,YAAY,eAAe,aAAa,MAAM,SAAS,KAAK,EAAE,CAAC;EACrE,MAAM,kBAAkB,eAAe;GACrC,OAAO,MAAM,SAAS,YAAY;EACpC,CAAC;EAED,oBAAkB;GAChB,IAAI,CAAC,UAAU,OACb;GAEF,WAAW;EACb,CAAC;EAED,gBAAc;GACZ,MAAM,eAAe,eAAe,qBAAqB,GAAG;GAC5D,MAAM,wBAAwB,eAAe,8BAA8B,GAAG;GAC9E,IACE,SAAS,gBACT,SAAS,yBACT,aAAa,eAAe,sBAAsB,cAElD,sBAAsB,UAAU,IAAI,2BAA2B;EAEnE,CAAC;EAED,MAAM,EAAE,YAAY,eAAe;EACnC,MAAM,cAAc,eAAuB;GACzC,IAAI,MAAM,MAAM,SAAS;GACzB,IAAI,CAAC,KACH,OAAO;GAIT,IAAI,QAAQ,UAAU,MAAM;IAE1B,MAAM,UAAU,IAAI,MAAM,aAAO;IACjC,IAAI,WAAW,QAAQ,WAAW,GAChC,MAAM,QAAQ;GAElB;GAEA,OAAO,OAAO,GAAG;EACnB,CAAC;EAGD,SAAS,OAAO,MAAsB;GACpC,OAAO,sBAAc,OAAO,IAAI;EAClC;EACA,eAAe,aAA4B;GAYzC,IAAI,OAAM,MAXS,mBAAW,UAAsC;IAClE,KAAK;IACL,MAAM;IACN,YAAY;KACV,YAAY,MAAM,SAAS;KAC3B,OAAO;KACP,MAAM;KACN,eAAe,CAAC,SAAS,YAAY;IACvC;IACA,mBAAmB;GACrB,CAAC,GACc,OACb,eAAe,QAAQ;EAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;mBC7JW,OAAM,4BAA2B;;mBAsBjC,OAAM,uBAAsB;mBAC1B,OAAM,yCAAwC;;CAejD,KAAI;CACJ,OAAM;;;;;;qBAvCd,mBA4DU,WA5DV,YA4DU,CA3DR,YA0Dc,wBAAA;EAzDX,IAAE;;yBAA4D,OAAA,SAAS,WAAU;;EAIjF,OAAO,OAAA,EAAC,oBAAA,EAAA,MAA6B,OAAA,SAAS,KAAI,CAAA;EACnD,OAAM;;yBAUL;kBARD,mBAQC,OAAA;IANC,OAAM;IACN,QAAO;IACP,OAAM;IACN,eAAY;IACZ,KAAI;IACH,OAAO,OAAA,EAAC,uBAAA,EAAA,MAAgC,OAAA,SAAS,KAAI,CAAA;+CAN9C,OAAA,iBAAiB,OAAA,SAAS,UAAQ,KAAA,CAAA,CAAA,CAAA;IAQjB,OAAA,mBAAA,UAAA,GAA3B,YAEqB,OAAA,uBAAA,EAAA,KAAA,EAAA,GAAA;2BAD8B,CAAA,gBAAA,gBAA9C,OAAA,EAAC,wCAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;;GAGN,mBAoCM,OApCN,YAoCM;IAnCJ,mBAaM,OAbN,YAaM;MAXK,OAAA,kBAAc,CAAK,OAAA,kBAAkB,OAAA,aAAA,UAAA,GAD9C,YAKE,OAAA,cAAA;;MAHC,MAAM;MACP,OAAM;MACL,OAAO,OAAA,EAAC,4BAAA;;KAEX,YAIE,OAAA,oBAAA;MAHA,QAAA;MACC,UAAU,OAAA;MACX,QAAO;;qBACP,MACF,gBAAG,OAAA,SAAS,IAAI,GAAA,CAAA;;IAElB,mBAUM,OAVN,YAUM;KANJ,mBAAA,gCAAA;KACA,mBAGE,OAAA;MAFA,KAAI;MACJ,WAAQ,OAAA;;KAEV,mBAAA,iBAAA;;KAGO,OAAA,kBAAA,UAAA,GADT,YASc,wBAAA;;KAPZ,OAAM;KACL,IAAE;;6BAAsE,OAAA,SAAS,KAAK,GAAE;;;4BAKvF,CAAA,gBADH,QACG,gBAAG,OAAA,SAAS,KAAK,IAAI,GAAA,CAAA,CAAA,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { t as classicApi_default } from "./classicApi-CkDHWZG1.mjs";
2
+ import { t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
3
3
  import { t as useResizePhone } from "./useResizePhone-CpfFUmfV.mjs";
4
4
  import { t as displayHelper_default } from "./displayHelper-CpXshNzz.mjs";
5
- import { t as useImageProxy } from "./useImageProxy-Bj0cOCct.mjs";
6
- import { t as useOrgaComputed } from "./useOrgaComputed-BLSpEDfb.mjs";
7
- import { t as RightsIndicator_default } from "./RightsIndicator-qIU4_wiF.mjs";
5
+ import { t as useImageProxy } from "./useImageProxy-BdQJmj4a.mjs";
6
+ import { t as useOrgaComputed } from "./useOrgaComputed-B2Bq0VBT.mjs";
7
+ import { t as RightsIndicator_default } from "./RightsIndicator-D5I3DOfO.mjs";
8
8
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, onBeforeMount, onMounted, openBlock, ref, renderSlot, resolveComponent, resolveDirective, toDisplayString, useTemplateRef, withCtx, withDirectives } from "vue";
9
9
  import { useI18n } from "vue-i18n";
10
10
  import AlertIcon from "vue-material-design-icons/Alert.vue";
@@ -180,4 +180,4 @@ var EmissionItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Emiss
180
180
  //#endregion
181
181
  export { EmissionItem_default as default };
182
182
 
183
- //# sourceMappingURL=EmissionItem-DfkPRcPz.mjs.map
183
+ //# sourceMappingURL=EmissionItem-BwXm3nNx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionItem-BwXm3nNx.mjs","names":[],"sources":["../src/components/misc/ClassicImageBanner.vue","../src/components/display/emission/EmissionItem.vue","../src/components/display/emission/EmissionItem.vue"],"sourcesContent":["<!-- A simple component to display a blur & a banner on an image -->\n<template>\n <div class=\"blur-with-banner\">\n <div class=\"banner\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup>\n</script>\n\n<style lang=\"scss\" scoped>\n.blur-with-banner {\n position: absolute;\n inset: 0;\n background-color:var(--octopus-background-transparent);\n // Allow pointer events to go through (allow click on image beneath blur)\n pointer-events: none;\n\n .banner {\n text-align: center;\n width: 100%;\n font-size: 0.6rem;\n padding: 0.2rem 0;\n color: white;\n background: black;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n }\n}\n</style>","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;qBAES,OAAM,mBAAkB;qBACpB,OAAM,SAAQ;;qBADvB,mBAIM,OAJN,cAIM,CAHF,mBAEM,OAFN,cAEM,CADF,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,IAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;EC8EpB,MAAM,QAAQ;EAMd,MAAM,iBAAiB,IAAI,IAAI;EAG/B,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,EAAE,qBAAqB,cAAc;EAC3C,MAAM,EAAE,gBAAgB,iBAAiB,gBAAgB;EAGzD,MAAM,YAAY,eAAe,aAAa,MAAM,SAAS,KAAK,EAAE,CAAC;EACrE,MAAM,kBAAkB,eAAe;GACrC,OAAO,MAAM,SAAS,YAAY;EACpC,CAAC;EAED,oBAAkB;GAChB,IAAI,CAAC,UAAU,OACb;GAEF,WAAW;EACb,CAAC;EAED,gBAAc;GACZ,MAAM,eAAe,eAAe,qBAAqB,GAAG;GAC5D,MAAM,wBAAwB,eAAe,8BAA8B,GAAG;GAC9E,IACE,SAAS,gBACT,SAAS,yBACT,aAAa,eAAe,sBAAsB,cAElD,sBAAsB,UAAU,IAAI,2BAA2B;EAEnE,CAAC;EAED,MAAM,EAAE,YAAY,eAAe;EACnC,MAAM,cAAc,eAAuB;GACzC,IAAI,MAAM,MAAM,SAAS;GACzB,IAAI,CAAC,KACH,OAAO;GAIT,IAAI,QAAQ,UAAU,MAAM;IAE1B,MAAM,UAAU,IAAI,MAAM,aAAO;IACjC,IAAI,WAAW,QAAQ,WAAW,GAChC,MAAM,QAAQ;GAElB;GAEA,OAAO,OAAO,GAAG;EACnB,CAAC;EAGD,SAAS,OAAO,MAAsB;GACpC,OAAO,sBAAc,OAAO,IAAI;EAClC;EACA,eAAe,aAA4B;GAYzC,IAAI,OAAM,MAXS,mBAAW,UAAsC;IAClE,KAAK;IACL,MAAM;IACN,YAAY;KACV,YAAY,MAAM,SAAS;KAC3B,OAAO;KACP,MAAM;KACN,eAAe,CAAC,SAAS,YAAY;IACvC;IACA,mBAAmB;GACrB,CAAC,GACc,OACb,eAAe,QAAQ;EAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;mBC7JW,OAAM,4BAA2B;;mBAsBjC,OAAM,uBAAsB;mBAC1B,OAAM,yCAAwC;;CAejD,KAAI;CACJ,OAAM;;;;;;qBAvCd,mBA4DU,WA5DV,YA4DU,CA3DR,YA0Dc,wBAAA;EAzDX,IAAE;;yBAA4D,OAAA,SAAS,WAAU;;EAIjF,OAAO,OAAA,EAAC,oBAAA,EAAA,MAA6B,OAAA,SAAS,KAAI,CAAA;EACnD,OAAM;;yBAUL;kBARD,mBAQC,OAAA;IANC,OAAM;IACN,QAAO;IACP,OAAM;IACN,eAAY;IACZ,KAAI;IACH,OAAO,OAAA,EAAC,uBAAA,EAAA,MAAgC,OAAA,SAAS,KAAI,CAAA;+CAN9C,OAAA,iBAAiB,OAAA,SAAS,UAAQ,KAAA,CAAA,CAAA,CAAA;IAQjB,OAAA,mBAAA,UAAA,GAA3B,YAEqB,OAAA,uBAAA,EAAA,KAAA,EAAA,GAAA;2BAD8B,CAAA,gBAAA,gBAA9C,OAAA,EAAC,wCAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;;GAGN,mBAoCM,OApCN,YAoCM;IAnCJ,mBAaM,OAbN,YAaM;MAXK,OAAA,kBAAc,CAAK,OAAA,kBAAkB,OAAA,aAAA,UAAA,GAD9C,YAKE,OAAA,cAAA;;MAHC,MAAM;MACP,OAAM;MACL,OAAO,OAAA,EAAC,4BAAA;;KAEX,YAIE,OAAA,oBAAA;MAHA,QAAA;MACC,UAAU,OAAA;MACX,QAAO;;qBACP,MACF,gBAAG,OAAA,SAAS,IAAI,GAAA,CAAA;;IAElB,mBAUM,OAVN,YAUM;KANJ,mBAAA,gCAAA;KACA,mBAGE,OAAA;MAFA,KAAI;MACJ,WAAQ,OAAA;;KAEV,mBAAA,iBAAA;;KAGO,OAAA,kBAAA,UAAA,GADT,YASc,wBAAA;;KAPZ,OAAM;KACL,IAAE;;6BAAsE,OAAA,SAAS,KAAK,GAAE;;;4BAKvF,CAAA,gBADH,QACG,gBAAG,OAAA,SAAS,KAAK,IAAI,GAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionItem-ZDlQ7B9S.mjs","names":[],"sources":["../src/components/misc/ClassicImageBanner.vue","../src/components/display/emission/EmissionItem.vue","../src/components/display/emission/EmissionItem.vue"],"sourcesContent":["<!-- A simple component to display a blur & a banner on an image -->\n<template>\n <div class=\"blur-with-banner\">\n <div class=\"banner\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup>\n</script>\n\n<style lang=\"scss\" scoped>\n.blur-with-banner {\n position: absolute;\n inset: 0;\n background-color:var(--octopus-background-transparent);\n // Allow pointer events to go through (allow click on image beneath blur)\n pointer-events: none;\n\n .banner {\n text-align: center;\n width: 100%;\n font-size: 0.6rem;\n padding: 0.2rem 0;\n color: white;\n background: black;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n }\n}\n</style>","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
2
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
3
- import { A as state, r as useFilterStore, t as classicApi_default } from "./classicApi-CkDHWZG1.mjs";
4
- import { t as ListPaginate_default } from "./ListPaginate-C9saxru9.mjs";
5
- import { t as useErrorHandler } from "./useErrorHandler-DtLjD9t_.mjs";
3
+ import { A as state, r as useFilterStore, t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
4
+ import { t as ListPaginate_default } from "./ListPaginate-BXNnw_I8.mjs";
5
+ import { t as useErrorHandler } from "./useErrorHandler-D3XVxUh6.mjs";
6
6
  import { n as emptyEmissionData } from "./emission-ByePXT9Y.mjs";
7
7
  import { t as ClassicLazy_default } from "./ClassicLazy-7mFHxG6O.mjs";
8
8
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineAsyncComponent, defineComponent, normalizeClass, onMounted, openBlock, ref, renderList, resolveComponent, toDisplayString, vShow, watch, withCtx, withDirectives } from "vue";
@@ -84,8 +84,8 @@ var EmissionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
84
84
  },
85
85
  setup(__props, { expose: __expose }) {
86
86
  __expose();
87
- const EmissionItem = defineAsyncComponent(() => import("./EmissionItem-DfkPRcPz.mjs"));
88
- const EmissionPlayerItem = defineAsyncComponent(() => import("./EmissionPlayerItem-D21OrPmm.mjs").then((n) => n.n));
87
+ const EmissionItem = defineAsyncComponent(() => import("./EmissionItem-BwXm3nNx.mjs"));
88
+ const EmissionPlayerItem = defineAsyncComponent(() => import("./EmissionPlayerItem-Degbnz9F.mjs").then((n) => n.n));
89
89
  const props = __props;
90
90
  const loading = ref(true);
91
91
  const dfirst = ref(props.first);
@@ -322,4 +322,4 @@ var EmissionList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Emiss
322
322
  //#endregion
323
323
  export { EmissionList_exports as n, EmissionList_default as t };
324
324
 
325
- //# sourceMappingURL=EmissionList-DSuGp0JO.mjs.map
325
+ //# sourceMappingURL=EmissionList-C8OxrndH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionList-C8OxrndH.mjs","names":[],"sources":["../src/components/display/emission/EmissionList.vue","../src/components/display/emission/EmissionList.vue"],"sourcesContent":["<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionList-C9-UUWMV.mjs","names":[],"sources":["../src/components/display/emission/EmissionList.vue","../src/components/display/emission/EmissionList.vue"],"sourcesContent":["<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmissionList-Dk9xS4s_.mjs","names":[],"sources":["../src/components/display/emission/EmissionList.vue","../src/components/display/emission/EmissionList.vue"],"sourcesContent":["<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n"],"mappings":"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"}