@saooti/octopus-sdk 42.1.0 → 42.1.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 (1335) hide show
  1. package/dist/AdvancedSearch-BDxs2o7K.mjs +429 -0
  2. package/dist/AdvancedSearch-BDxs2o7K.mjs.map +1 -0
  3. package/dist/AdvancedSearch-BHnCcqYo.mjs.map +1 -0
  4. package/dist/AdvancedSearch-BKZL4Og4.mjs.map +1 -0
  5. package/dist/AdvancedSearch-CARbyVFc.mjs.map +1 -0
  6. package/dist/AdvancedSearch-CzWBQyRR.mjs.map +1 -0
  7. package/dist/AdvancedSearch-DM5MiCRf.mjs.map +1 -0
  8. package/dist/AdvancedSearch-Wbmubxbf.mjs.map +1 -0
  9. package/dist/CategoryFilter-BpAevuLH.mjs.map +1 -0
  10. package/dist/CategoryFilter-BpgBUxCX.mjs.map +1 -0
  11. package/dist/CategoryFilter-BtvszT_D.mjs +237 -0
  12. package/dist/CategoryFilter-BtvszT_D.mjs.map +1 -0
  13. package/dist/CategoryFilter-D-eWUCe_.mjs.map +1 -0
  14. package/dist/CategoryFilter-D38WmeC3.mjs.map +1 -0
  15. package/dist/CategoryFilter-DLSD7boE.mjs.map +1 -0
  16. package/dist/CategoryFilter-DbsUFHSn.mjs.map +1 -0
  17. package/dist/CategoryList-BirNjSgi.mjs +182 -0
  18. package/dist/CategoryList-BirNjSgi.mjs.map +1 -0
  19. package/dist/CategoryList-BrImjKgB.mjs.map +1 -0
  20. package/dist/CategoryList-BwqfZEqt.mjs.map +1 -0
  21. package/dist/CategoryList-C-v_Us7L.mjs.map +1 -0
  22. package/dist/CategoryList-CvNF6D7q.mjs.map +1 -0
  23. package/dist/CategoryList-DiSaK_Hw.mjs.map +1 -0
  24. package/dist/CategoryList-DpDoSFYT.mjs.map +1 -0
  25. package/dist/CategoryPage-BSD7wvZY.mjs.map +1 -0
  26. package/dist/CategoryPage-C5eTwFuy.mjs.map +1 -0
  27. package/dist/CategoryPage-Ck7xTJ1X.mjs.map +1 -0
  28. package/dist/CategoryPage-CmX_-CLt.mjs.map +1 -0
  29. package/dist/CategoryPage-CnGzdY2g.mjs.map +1 -0
  30. package/dist/CategoryPage-D5i0OhIn.mjs.map +1 -0
  31. package/dist/CategoryPage-D7FVaEMo.mjs.map +1 -0
  32. package/dist/CategoryPage-ymiYVbKH.mjs.map +1 -0
  33. package/dist/CategoryPage-zRFFW7lm.mjs +57 -0
  34. package/dist/CategoryPage-zRFFW7lm.mjs.map +1 -0
  35. package/dist/ChapteringModal-BT3rYLl7.mjs.map +1 -0
  36. package/dist/ChapteringModal-CZxza2Hl.mjs.map +1 -0
  37. package/dist/ChapteringModal-DF99rhXl.mjs.map +1 -0
  38. package/dist/ChapteringModal-DSrRb0wM.mjs +82 -0
  39. package/dist/ChapteringModal-DSrRb0wM.mjs.map +1 -0
  40. package/dist/ChapteringModal-DYg4Rsyc.mjs.map +1 -0
  41. package/dist/ChapteringModal-mbAIsypl.mjs.map +1 -0
  42. package/dist/ChapteringModal-nWgj6pH1.mjs.map +1 -0
  43. package/dist/CheckIdentityModal-9R4NGHGc.mjs.map +1 -0
  44. package/dist/CheckIdentityModal-B1TGBzW-.mjs.map +1 -0
  45. package/dist/CheckIdentityModal-BeoPGlll.mjs +86 -0
  46. package/dist/CheckIdentityModal-BeoPGlll.mjs.map +1 -0
  47. package/dist/CheckIdentityModal-C-LeNKnp.mjs.map +1 -0
  48. package/dist/CheckIdentityModal-CVh4TWaA.mjs.map +1 -0
  49. package/dist/CheckIdentityModal-DG5UwIww.mjs.map +1 -0
  50. package/dist/CheckIdentityModal-DgfR8eN8.mjs.map +1 -0
  51. package/dist/CheckIdentityModal-Du2Jqur2.mjs.map +1 -0
  52. package/dist/ClassicAlert-DUQplMvs.mjs +85 -0
  53. package/dist/ClassicInputText-D2wR2cwa.mjs +371 -0
  54. package/dist/ClassicInputText-D2wR2cwa.mjs.map +1 -0
  55. package/dist/ClassicWysiwyg-Bew6KMXn.mjs +230 -0
  56. package/dist/ClassicWysiwyg-Bew6KMXn.mjs.map +1 -0
  57. package/dist/ClipboardModal-7VJwXjk7.mjs.map +1 -0
  58. package/dist/ClipboardModal-BNGanHiD.mjs.map +1 -0
  59. package/dist/ClipboardModal-BXQoN3az.mjs.map +1 -0
  60. package/dist/ClipboardModal-BeGqMvLb.mjs.map +1 -0
  61. package/dist/ClipboardModal-CS-czxOJ.mjs.map +1 -0
  62. package/dist/ClipboardModal-Dm9Z1sRK.mjs +84 -0
  63. package/dist/ClipboardModal-Dm9Z1sRK.mjs.map +1 -0
  64. package/dist/ClipboardModal-PbKpLGXl.mjs.map +1 -0
  65. package/dist/CommentBasicView-BIiF59xV.mjs +129 -0
  66. package/dist/CommentInput-BHP1nNsj.mjs.map +1 -0
  67. package/dist/CommentInput-BJTzH-_a.mjs.map +1 -0
  68. package/dist/CommentInput-BS_2bqYB.mjs.map +1 -0
  69. package/dist/CommentInput-Bp_Tu2c1.mjs.map +1 -0
  70. package/dist/CommentInput-C5ZDqAmV.mjs.map +1 -0
  71. package/dist/CommentInput-CnLukNZs.mjs.map +1 -0
  72. package/dist/CommentInput-DRmRcSy-.mjs.map +1 -0
  73. package/dist/CommentInput-yE5YpwPd.mjs +186 -0
  74. package/dist/CommentInput-yE5YpwPd.mjs.map +1 -0
  75. package/dist/CommentItem-B3jrVyCL.mjs.map +1 -0
  76. package/dist/CommentItem-B95BndID.mjs +232 -0
  77. package/dist/CommentItem-B95BndID.mjs.map +1 -0
  78. package/dist/CommentItem-BbVr_2V6.mjs.map +1 -0
  79. package/dist/CommentItem-CYzCxLtJ.mjs.map +1 -0
  80. package/dist/CommentItem-Czdd1oCE.mjs.map +1 -0
  81. package/dist/CommentItem-D39oSH9h.mjs.map +1 -0
  82. package/dist/CommentItem-DCzZsT7J.mjs.map +1 -0
  83. package/dist/CommentItem-DPieWrkL.mjs.map +1 -0
  84. package/dist/CommentItem-DmyqQ7Z6.mjs.map +1 -0
  85. package/dist/CommentItem-Vvd1NE_W.mjs.map +1 -0
  86. package/dist/CommentItem-vMMaiTCB.mjs.map +1 -0
  87. package/dist/CommentList-AZvaBFne.mjs.map +1 -0
  88. package/dist/CommentList-AwpVcpBT.mjs.map +1 -0
  89. package/dist/CommentList-BcFHoPtE.mjs.map +1 -0
  90. package/dist/CommentList-BiDfTOiB.mjs.map +1 -0
  91. package/dist/CommentList-Bms6vEQA.mjs.map +1 -0
  92. package/dist/CommentList-CeoSTTP_.mjs.map +1 -0
  93. package/dist/CommentList-Cn5TPBet.mjs.map +1 -0
  94. package/dist/CommentList-D0WPAZgF.mjs.map +1 -0
  95. package/dist/CommentList-Dj_kHO7R.mjs.map +1 -0
  96. package/dist/CommentList-Iyun_PoW.mjs.map +1 -0
  97. package/dist/CommentList-l9y2S0t4.mjs +302 -0
  98. package/dist/CommentList-l9y2S0t4.mjs.map +1 -0
  99. package/dist/CommentMoreActions-BAroeo8E.mjs.map +1 -0
  100. package/dist/CommentMoreActions-BLA7K7Wk.mjs.map +1 -0
  101. package/dist/CommentMoreActions-BR4CRRey.mjs.map +1 -0
  102. package/dist/CommentMoreActions-CrVm5-lX.mjs.map +1 -0
  103. package/dist/CommentMoreActions-DL8XqQRk.mjs.map +1 -0
  104. package/dist/CommentMoreActions-Q4pEU-LO.mjs.map +1 -0
  105. package/dist/CommentMoreActions-Tqomh5Yr.mjs.map +1 -0
  106. package/dist/CommentMoreActions-tL6Uqw1X.mjs +286 -0
  107. package/dist/CommentMoreActions-tL6Uqw1X.mjs.map +1 -0
  108. package/dist/CommentName-5ZjKhTYa.mjs.map +1 -0
  109. package/dist/CommentName-BXD3T5EZ.mjs.map +1 -0
  110. package/dist/CommentName-D6y51EaZ.mjs.map +1 -0
  111. package/dist/CommentName-Dg4--t-W.mjs +96 -0
  112. package/dist/CommentName-Dg4--t-W.mjs.map +1 -0
  113. package/dist/CommentName-Dlnmhpr3.mjs.map +1 -0
  114. package/dist/CommentName-DxVYb9pg.mjs.map +1 -0
  115. package/dist/CommentName-RfqW4AQ6.mjs.map +1 -0
  116. package/dist/CommentName-sDkjL2pg.mjs.map +1 -0
  117. package/dist/CommentParentInfo-8jbjym0a.mjs +64 -0
  118. package/dist/CommentParentInfo-8jbjym0a.mjs.map +1 -0
  119. package/dist/CommentParentInfo-9pG8GbXZ.mjs.map +1 -0
  120. package/dist/CommentParentInfo-C8OdTBnA.mjs.map +1 -0
  121. package/dist/CommentParentInfo-CR723vnS.mjs.map +1 -0
  122. package/dist/CommentParentInfo-CbW6NDS2.mjs.map +1 -0
  123. package/dist/CommentParentInfo-CmJmczbB.mjs.map +1 -0
  124. package/dist/CommentParentInfo-DNRID2W9.mjs.map +1 -0
  125. package/dist/CommentParentInfo-DvhjIGxr.mjs.map +1 -0
  126. package/dist/CommentParentInfo-Sr7QsGrE.mjs.map +1 -0
  127. package/dist/CommentPlayer-BAqa0jnq.mjs.map +1 -0
  128. package/dist/CommentPlayer-CbcrWm1W.mjs.map +1 -0
  129. package/dist/CommentPlayer-Ckqy3Uy2.mjs.map +1 -0
  130. package/dist/CommentPlayer-DG-Vm9oa.mjs.map +1 -0
  131. package/dist/CommentPlayer-DWWiCxmf.mjs.map +1 -0
  132. package/dist/CommentPlayer-RqOzQeht.mjs.map +1 -0
  133. package/dist/CommentPlayer-lesewf4s.mjs +86 -0
  134. package/dist/CommentPlayer-lesewf4s.mjs.map +1 -0
  135. package/dist/CommentSection-0qvo2Lir.mjs.map +1 -0
  136. package/dist/CommentSection-B1No9DSa.mjs.map +1 -0
  137. package/dist/CommentSection-BH0240SR.mjs.map +1 -0
  138. package/dist/CommentSection-BRUVbqPQ.mjs +141 -0
  139. package/dist/CommentSection-BRUVbqPQ.mjs.map +1 -0
  140. package/dist/CommentSection-BW11Kkmw.mjs.map +1 -0
  141. package/dist/CommentSection-CGRHE7GP.mjs.map +1 -0
  142. package/dist/CommentSection-CLvjEX6w.mjs.map +1 -0
  143. package/dist/CommentSection-CRfcutkV.mjs.map +1 -0
  144. package/dist/CommentSection-ClFb7E4o.mjs.map +1 -0
  145. package/dist/CommentSection-CsyPvXiH.mjs.map +1 -0
  146. package/dist/CommentSection-DPMfFBSU.mjs.map +1 -0
  147. package/dist/CommentStore-B68P59zw.mjs.map +1 -0
  148. package/dist/CommentStore-BTml7qHF.mjs.map +1 -0
  149. package/dist/CommentStore-BwTJgPTy.mjs.map +1 -0
  150. package/dist/CommentStore-C1k1GX5R.mjs.map +1 -0
  151. package/dist/CommentStore-C9bhViPU.mjs +355 -0
  152. package/dist/CommentStore-C9bhViPU.mjs.map +1 -0
  153. package/dist/CommentStore-Ce-VQB6Q.mjs.map +1 -0
  154. package/dist/CommentStore-WgCnFHHi.mjs.map +1 -0
  155. package/dist/ContractPreviewModal-B9TjRP6t.mjs.map +1 -0
  156. package/dist/ContractPreviewModal-BrB9KaNH.mjs.map +1 -0
  157. package/dist/ContractPreviewModal-DB0Uv_bC.mjs.map +1 -0
  158. package/dist/ContractPreviewModal-DDJNYv49.mjs +101 -0
  159. package/dist/ContractPreviewModal-DDJNYv49.mjs.map +1 -0
  160. package/dist/ContractPreviewModal-Dlnmubps.mjs.map +1 -0
  161. package/dist/ContractPreviewModal-Duqx-yDT.mjs.map +1 -0
  162. package/dist/ContractPreviewModal-nMZHO_9q.mjs.map +1 -0
  163. package/dist/DownloadPodcastButton-BDYJT1At.mjs.map +1 -0
  164. package/dist/DownloadPodcastButton-C9RI5S7T.mjs.map +1 -0
  165. package/dist/DownloadPodcastButton-CQFTSstH.mjs.map +1 -0
  166. package/dist/DownloadPodcastButton-CvO14B8j.mjs.map +1 -0
  167. package/dist/DownloadPodcastButton-DAH2mwB3.mjs.map +1 -0
  168. package/dist/DownloadPodcastButton-DXJGjfIn.mjs +53 -0
  169. package/dist/DownloadPodcastButton-DXJGjfIn.mjs.map +1 -0
  170. package/dist/DownloadPodcastButton-DunrZi_3.mjs.map +1 -0
  171. package/dist/EditCommentModal-BHmUXtiy.mjs.map +1 -0
  172. package/dist/EditCommentModal-Bs7nuqdq.mjs.map +1 -0
  173. package/dist/EditCommentModal-Czp-qN4t.mjs +162 -0
  174. package/dist/EditCommentModal-Czp-qN4t.mjs.map +1 -0
  175. package/dist/EditCommentModal-D90FgueB.mjs.map +1 -0
  176. package/dist/EditCommentModal-DXo4LVcx.mjs.map +1 -0
  177. package/dist/EditCommentModal-SelQld7b.mjs.map +1 -0
  178. package/dist/EditCommentModal-dnPijKAh.mjs.map +1 -0
  179. package/dist/EditCommentModal-ntxMdZu5.mjs.map +1 -0
  180. package/dist/EmissionGroupChooser-BWcOXb7T.mjs.map +1 -0
  181. package/dist/EmissionGroupChooser-CFP7ChoW.mjs.map +1 -0
  182. package/dist/EmissionGroupChooser-DArypPDT.mjs.map +1 -0
  183. package/dist/EmissionGroupChooser-Dy1hnlF_.mjs.map +1 -0
  184. package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs +82 -0
  185. package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs.map +1 -0
  186. package/dist/EmissionGroupChooser-ylVvYy2W.mjs.map +1 -0
  187. package/dist/EmissionGroupChooser-zSxcBqKm.mjs.map +1 -0
  188. package/dist/EmissionInlineList-BH4EgEIF.mjs.map +1 -0
  189. package/dist/EmissionInlineList-B_HOW86o.mjs.map +1 -0
  190. package/dist/EmissionInlineList-Bqvh02uF.mjs +188 -0
  191. package/dist/EmissionInlineList-Bqvh02uF.mjs.map +1 -0
  192. package/dist/EmissionInlineList-CBmzKWGR.mjs.map +1 -0
  193. package/dist/EmissionInlineList-CO8i9b1t.mjs.map +1 -0
  194. package/dist/EmissionInlineList-Ciye_EZb.mjs.map +1 -0
  195. package/dist/EmissionInlineList-nNNANPRs.mjs.map +1 -0
  196. package/dist/EmissionItem-4CsF574w.mjs.map +1 -0
  197. package/dist/EmissionItem-BhghTyeT.mjs.map +1 -0
  198. package/dist/EmissionItem-Bv7O9sQY.mjs.map +1 -0
  199. package/dist/EmissionItem-DC_Gc-Yw.mjs.map +1 -0
  200. package/dist/EmissionItem-DoBM2Zk2.mjs +183 -0
  201. package/dist/EmissionItem-DoBM2Zk2.mjs.map +1 -0
  202. package/dist/EmissionItem-M-lMW-jg.mjs.map +1 -0
  203. package/dist/EmissionItem-VxhfrUve.mjs.map +1 -0
  204. package/dist/EmissionItem-aVrOlqEx.mjs.map +1 -0
  205. package/dist/EmissionItem-imaccCr_.mjs.map +1 -0
  206. package/dist/EmissionList-BQ1mTIYn.mjs.map +1 -0
  207. package/dist/EmissionList-BRPN4Bbj.mjs.map +1 -0
  208. package/dist/EmissionList-BYIBfZWr.mjs.map +1 -0
  209. package/dist/EmissionList-Bh3ZlvV4.mjs +325 -0
  210. package/dist/EmissionList-Bh3ZlvV4.mjs.map +1 -0
  211. package/dist/EmissionList-CCfo5-ne.mjs.map +1 -0
  212. package/dist/EmissionList-CyEpkgR4.mjs.map +1 -0
  213. package/dist/EmissionList-DCeUp8TW.mjs.map +1 -0
  214. package/dist/EmissionList-DJydSpE4.mjs.map +1 -0
  215. package/dist/EmissionList-WYL-BhnJ.mjs.map +1 -0
  216. package/dist/EmissionPage-B2oy9fmW.mjs.map +1 -0
  217. package/dist/EmissionPage-BG6RIWP2.mjs +322 -0
  218. package/dist/EmissionPage-BG6RIWP2.mjs.map +1 -0
  219. package/dist/EmissionPage-BTfSMrZf.mjs.map +1 -0
  220. package/dist/EmissionPage-BpAJ1yOV.mjs.map +1 -0
  221. package/dist/EmissionPage-BzQpG8xt.mjs.map +1 -0
  222. package/dist/EmissionPage-Cf529LJJ.mjs.map +1 -0
  223. package/dist/EmissionPage-CwwNOUrQ.mjs.map +1 -0
  224. package/dist/EmissionPage-DCdIpmQo.mjs.map +1 -0
  225. package/dist/EmissionPage-DFnA4TXs.mjs.map +1 -0
  226. package/dist/EmissionPlayerItem-C3gZhSS3.mjs.map +1 -0
  227. package/dist/EmissionPlayerItem-CX-QVZ9s.mjs.map +1 -0
  228. package/dist/EmissionPlayerItem-CmghDKRx.mjs.map +1 -0
  229. package/dist/EmissionPlayerItem-CoeKMQgN.mjs.map +1 -0
  230. package/dist/EmissionPlayerItem-CvoVh-dC.mjs +167 -0
  231. package/dist/EmissionPlayerItem-CvoVh-dC.mjs.map +1 -0
  232. package/dist/EmissionPlayerItem-D1Ebv-_R.mjs.map +1 -0
  233. package/dist/EmissionPlayerItem-D6BXdTio.mjs.map +1 -0
  234. package/dist/EmissionPresentationItem-B2PbYGuW.mjs +78 -0
  235. package/dist/EmissionPresentationItem-B2PbYGuW.mjs.map +1 -0
  236. package/dist/EmissionPresentationItem-BQo96is9.mjs.map +1 -0
  237. package/dist/EmissionPresentationItem-CC_LJc4L.mjs.map +1 -0
  238. package/dist/EmissionPresentationItem-CQvXZ8NH.mjs.map +1 -0
  239. package/dist/EmissionPresentationItem-DGNyBwfe.mjs.map +1 -0
  240. package/dist/EmissionPresentationItem-hWnX_Niv.mjs.map +1 -0
  241. package/dist/EmissionPresentationItem-qoHKghk0.mjs.map +1 -0
  242. package/dist/EmissionPresentationList-B2NzHsFl.mjs.map +1 -0
  243. package/dist/EmissionPresentationList-BQfeuKW5.mjs.map +1 -0
  244. package/dist/EmissionPresentationList-BXNJsC5t.mjs +125 -0
  245. package/dist/EmissionPresentationList-BXNJsC5t.mjs.map +1 -0
  246. package/dist/EmissionPresentationList-CHFD5_a2.mjs.map +1 -0
  247. package/dist/EmissionPresentationList-D0TKOmTK.mjs.map +1 -0
  248. package/dist/EmissionPresentationList-Ddvukpya.mjs.map +1 -0
  249. package/dist/EmissionPresentationList-DnnKYjsb.mjs.map +1 -0
  250. package/dist/EmissionsPage-4WdKVeuO.mjs.map +1 -0
  251. package/dist/EmissionsPage-A04HnSMy.mjs.map +1 -0
  252. package/dist/EmissionsPage-B1arrsZ7.mjs +199 -0
  253. package/dist/EmissionsPage-B1arrsZ7.mjs.map +1 -0
  254. package/dist/EmissionsPage-B6SUW-vO.mjs.map +1 -0
  255. package/dist/EmissionsPage-BvF7n3Yb.mjs.map +1 -0
  256. package/dist/EmissionsPage-CNFwsWQZ.mjs.map +1 -0
  257. package/dist/EmissionsPage-CduOfydR.mjs.map +1 -0
  258. package/dist/EmissionsPage-Cf94lGLe.mjs.map +1 -0
  259. package/dist/EmissionsPage-O86N2cgU.mjs.map +1 -0
  260. package/dist/Error403Page-B9KNl0uP.mjs.map +1 -0
  261. package/dist/Error403Page-BLJFuPG2.mjs.map +1 -0
  262. package/dist/Error403Page-BmdiuBiS.mjs.map +1 -0
  263. package/dist/Error403Page-Bpi0DQqg.mjs.map +1 -0
  264. package/dist/Error403Page-Bv-DWyb6.mjs +69 -0
  265. package/dist/Error403Page-Bv-DWyb6.mjs.map +1 -0
  266. package/dist/Error403Page-D4NmqstJ.mjs.map +1 -0
  267. package/dist/Error403Page-DO2cfKKn.mjs.map +1 -0
  268. package/dist/ErrorMessage-D2XAzxpC.mjs +44 -0
  269. package/dist/FooterGarSection-77dYJO_c.mjs +71 -0
  270. package/dist/FooterGarSection-77dYJO_c.mjs.map +1 -0
  271. package/dist/FooterGarSection-D4m9HB_o.mjs.map +1 -0
  272. package/dist/FooterGarSection-DQpsC2u3.mjs.map +1 -0
  273. package/dist/FooterGarSection-DVMJjVGm.mjs.map +1 -0
  274. package/dist/FooterGarSection-JoXm35Vy.mjs.map +1 -0
  275. package/dist/FooterGarSection-SpmxTFrf.mjs.map +1 -0
  276. package/dist/FooterGarSection-t4vNUGXJ.mjs.map +1 -0
  277. package/dist/FooterSection-B1hXBiqI.mjs +242 -0
  278. package/dist/FooterSection-B1hXBiqI.mjs.map +1 -0
  279. package/dist/FooterSection-BAJcoVwL.mjs.map +1 -0
  280. package/dist/FooterSection-Bq3lB2TI.mjs.map +1 -0
  281. package/dist/FooterSection-C5CqAdjV.mjs.map +1 -0
  282. package/dist/FooterSection-CsQxaQcK.mjs.map +1 -0
  283. package/dist/FooterSection-DuQdO0l0.mjs.map +1 -0
  284. package/dist/FooterSection-XGEgsnuF.mjs.map +1 -0
  285. package/dist/FooterSection-mtZULuem.mjs.map +1 -0
  286. package/dist/HomeDropdown-87gJP-lN.mjs +110 -0
  287. package/dist/HomeDropdown-87gJP-lN.mjs.map +1 -0
  288. package/dist/HomeDropdown-CDNruBUp.mjs.map +1 -0
  289. package/dist/HomeDropdown-COZXjE97.mjs.map +1 -0
  290. package/dist/HomeDropdown-CbsZFW4n.mjs.map +1 -0
  291. package/dist/HomeDropdown-CjYjgO1n.mjs.map +1 -0
  292. package/dist/HomeDropdown-CxQn-jPC.mjs.map +1 -0
  293. package/dist/HomeDropdown-DEIBKTqy.mjs.map +1 -0
  294. package/dist/HomePage-1jBFTx4x.mjs.map +1 -0
  295. package/dist/HomePage-B5guMcf_.mjs.map +1 -0
  296. package/dist/HomePage-BapL4kmy.mjs.map +1 -0
  297. package/dist/HomePage-Brr9jjcQ.mjs +166 -0
  298. package/dist/HomePage-Brr9jjcQ.mjs.map +1 -0
  299. package/dist/HomePage-C8nsZZ_c.mjs.map +1 -0
  300. package/dist/HomePage-CP_NQ_PF.mjs.map +1 -0
  301. package/dist/HomePage-DnHbPmY9.mjs.map +1 -0
  302. package/dist/HomePage-Dxhi0hWO.mjs.map +1 -0
  303. package/dist/HomePage-MPbx0_Rn.mjs.map +1 -0
  304. package/dist/LikeSection-1P9-7FQ5.mjs +167 -0
  305. package/dist/LikeSection-1P9-7FQ5.mjs.map +1 -0
  306. package/dist/LikeSection-BTmkwQD8.mjs.map +1 -0
  307. package/dist/LikeSection-BUY3_ffV.mjs.map +1 -0
  308. package/dist/LikeSection-B_WX9gZJ.mjs.map +1 -0
  309. package/dist/LikeSection-BaUfRdSh.mjs.map +1 -0
  310. package/dist/LikeSection-CComV07M.mjs.map +1 -0
  311. package/dist/LikeSection-Cdz0IJU0.mjs.map +1 -0
  312. package/dist/LikeSection-U8EqRJ-f.mjs.map +1 -0
  313. package/dist/ListPaginate-8oxuFw7s.mjs.map +1 -0
  314. package/dist/ListPaginate-Brg8Wr3w.mjs.map +1 -0
  315. package/dist/ListPaginate-CEgFM1e5.mjs +202 -0
  316. package/dist/ListPaginate-CEgFM1e5.mjs.map +1 -0
  317. package/dist/ListPaginate-COITr_yE.mjs.map +1 -0
  318. package/dist/ListPaginate-DdKoq0e5.mjs.map +1 -0
  319. package/dist/ListPaginate-FHXkQDy8.mjs.map +1 -0
  320. package/dist/ListPaginate-zVukPB6N.mjs.map +1 -0
  321. package/dist/LiveHorizontalList-7JGEvrpb.mjs.map +1 -0
  322. package/dist/LiveHorizontalList-B1SBPu5Q.mjs.map +1 -0
  323. package/dist/LiveHorizontalList-B2xa65mW.mjs.map +1 -0
  324. package/dist/LiveHorizontalList-BUvldEM0.mjs.map +1 -0
  325. package/dist/LiveHorizontalList-C1hlGGKj.mjs.map +1 -0
  326. package/dist/LiveHorizontalList-CE9LoLWi.mjs.map +1 -0
  327. package/dist/LiveHorizontalList-DPNeqKTt.mjs.map +1 -0
  328. package/dist/LiveHorizontalList-G4GVIv-L.mjs +136 -0
  329. package/dist/LiveHorizontalList-G4GVIv-L.mjs.map +1 -0
  330. package/dist/LiveHorizontalList-X8_qayl-.mjs.map +1 -0
  331. package/dist/LiveList-BbuHhQob.mjs.map +1 -0
  332. package/dist/LiveList-BiODr6Zp.mjs +324 -0
  333. package/dist/LiveList-BiODr6Zp.mjs.map +1 -0
  334. package/dist/LiveList-CPABb0tx.mjs.map +1 -0
  335. package/dist/LiveList-CR-jqjcU.mjs.map +1 -0
  336. package/dist/LiveList-DSogJX1N.mjs.map +1 -0
  337. package/dist/LiveList-DkZ1l2Xt.mjs.map +1 -0
  338. package/dist/LiveList-Dr_7cqG_.mjs.map +1 -0
  339. package/dist/LiveList-dc4ARAq2.mjs.map +1 -0
  340. package/dist/LiveList-oosaj9TJ.mjs.map +1 -0
  341. package/dist/LivesPage-BHmymrRD.mjs.map +1 -0
  342. package/dist/LivesPage-BPwVGQdv.mjs.map +1 -0
  343. package/dist/LivesPage-BfhAMY15.mjs.map +1 -0
  344. package/dist/LivesPage-CAa4XsJW.mjs.map +1 -0
  345. package/dist/LivesPage-CHLwG5gj.mjs.map +1 -0
  346. package/dist/LivesPage-DGA3L9AW.mjs.map +1 -0
  347. package/dist/LivesPage-DIjoqz-K.mjs.map +1 -0
  348. package/dist/LivesPage-LF5yGp4X.mjs.map +1 -0
  349. package/dist/LivesPage-vu6VOIIy.mjs +76 -0
  350. package/dist/LivesPage-vu6VOIIy.mjs.map +1 -0
  351. package/dist/MapPage-BAdp_uyS.mjs.map +1 -0
  352. package/dist/MapPage-BUwYdsZz.mjs.map +1 -0
  353. package/dist/MapPage-CP0LRWUV.mjs.map +1 -0
  354. package/dist/MapPage-DmEdjPRe.mjs +303 -0
  355. package/dist/MapPage-DmEdjPRe.mjs.map +1 -0
  356. package/dist/MapPage-Dr-Lo2xc.mjs.map +1 -0
  357. package/dist/MapPage-DsNW6bfn.mjs.map +1 -0
  358. package/dist/MapPage-acIILN8p.mjs.map +1 -0
  359. package/dist/MobileMenu-B8KrEHS7.mjs.map +1 -0
  360. package/dist/MobileMenu-BBX4HKwH.mjs.map +1 -0
  361. package/dist/MobileMenu-Bz6UhLWC.mjs.map +1 -0
  362. package/dist/MobileMenu-C3Ti4eGr.mjs.map +1 -0
  363. package/dist/MobileMenu-C4rmAeeO.mjs.map +1 -0
  364. package/dist/MobileMenu-D_oFeqsX.mjs.map +1 -0
  365. package/dist/MobileMenu-xNe7tNdx.mjs +187 -0
  366. package/dist/MobileMenu-xNe7tNdx.mjs.map +1 -0
  367. package/dist/NewsletterModal-C0yXR-kQ.mjs.map +1 -0
  368. package/dist/NewsletterModal-Cdyqy09L.mjs.map +1 -0
  369. package/dist/NewsletterModal-D586dru6.mjs.map +1 -0
  370. package/dist/NewsletterModal-DNrt2N6S.mjs.map +1 -0
  371. package/dist/NewsletterModal-LqgD6CbF.mjs +82 -0
  372. package/dist/NewsletterModal-LqgD6CbF.mjs.map +1 -0
  373. package/dist/NewsletterModal-nsrnL-nQ.mjs.map +1 -0
  374. package/dist/NewsletterModal-uv5C55km.mjs.map +1 -0
  375. package/dist/OrganisationChooser-BiNMu3dn.mjs +190 -0
  376. package/dist/OrganisationChooser-BiNMu3dn.mjs.map +1 -0
  377. package/dist/OrganisationChooser-CTkEs5Lk.mjs.map +1 -0
  378. package/dist/OrganisationChooser-D2PVq36_.mjs.map +1 -0
  379. package/dist/OrganisationChooser-D4pgbdT9.mjs.map +1 -0
  380. package/dist/OrganisationChooser-Df1zfiwF.mjs.map +1 -0
  381. package/dist/OrganisationChooser-DsfCK19O.mjs.map +1 -0
  382. package/dist/OrganisationChooser-RBwmBNhI.mjs.map +1 -0
  383. package/dist/OrganisationChooserLight-BJwIMZ6G.mjs +84 -0
  384. package/dist/OrganisationChooserLight-BJwIMZ6G.mjs.map +1 -0
  385. package/dist/OrganisationChooserLight-BsmG2mng.mjs.map +1 -0
  386. package/dist/OrganisationChooserLight-C1VGVe3p.mjs.map +1 -0
  387. package/dist/OrganisationChooserLight-CP3_D7XA.mjs.map +1 -0
  388. package/dist/OrganisationChooserLight-DI8OeLkm.mjs.map +1 -0
  389. package/dist/OrganisationChooserLight-Dpi7pho1.mjs.map +1 -0
  390. package/dist/OrganisationChooserLight-DyisKiU3.mjs.map +1 -0
  391. package/dist/PageNotFound-5He9oK3T.mjs.map +1 -0
  392. package/dist/PageNotFound-BILSb0NS.mjs.map +1 -0
  393. package/dist/PageNotFound-C-HodkyM.mjs.map +1 -0
  394. package/dist/PageNotFound-CJmz7PmV.mjs.map +1 -0
  395. package/dist/PageNotFound-ChQf6Ngj.mjs +58 -0
  396. package/dist/PageNotFound-ChQf6Ngj.mjs.map +1 -0
  397. package/dist/PageNotFound-D8OzzGBQ.mjs.map +1 -0
  398. package/dist/PageNotFound-Dl4pr9W6.mjs.map +1 -0
  399. package/dist/ParticipantInlineList-BEnBWVWR.mjs.map +1 -0
  400. package/dist/ParticipantInlineList-C0nBiyWg.mjs.map +1 -0
  401. package/dist/ParticipantInlineList-CRBcuszy.mjs.map +1 -0
  402. package/dist/ParticipantInlineList-CcCfd9rJ.mjs +117 -0
  403. package/dist/ParticipantInlineList-CcCfd9rJ.mjs.map +1 -0
  404. package/dist/ParticipantInlineList-Cnqgz2lu.mjs.map +1 -0
  405. package/dist/ParticipantInlineList-CrEivwtQ.mjs.map +1 -0
  406. package/dist/ParticipantInlineList-DR2ZAj4I.mjs.map +1 -0
  407. package/dist/ParticipantInlineList-NKPnosX0.mjs.map +1 -0
  408. package/dist/ParticipantInlineList-tRiCRhZT.mjs.map +1 -0
  409. package/dist/ParticipantItem-BUux9Sod.mjs.map +1 -0
  410. package/dist/ParticipantItem-Bo3lOYet.mjs.map +1 -0
  411. package/dist/ParticipantItem-CQkg9uA2.mjs.map +1 -0
  412. package/dist/ParticipantItem-CYD8mFKj.mjs.map +1 -0
  413. package/dist/ParticipantItem-Ch4_98y_.mjs +138 -0
  414. package/dist/ParticipantItem-Ch4_98y_.mjs.map +1 -0
  415. package/dist/ParticipantItem-Duf1Dqiy.mjs.map +1 -0
  416. package/dist/ParticipantItem-Py7gMJEO.mjs.map +1 -0
  417. package/dist/ParticipantItem-cWDpHBmw.mjs.map +1 -0
  418. package/dist/ParticipantItem-sU3HvxsO.mjs.map +1 -0
  419. package/dist/ParticipantPage-BjbzvT79.mjs.map +1 -0
  420. package/dist/ParticipantPage-CFOmsr7J.mjs.map +1 -0
  421. package/dist/ParticipantPage-CJF_q763.mjs.map +1 -0
  422. package/dist/ParticipantPage-CayKwqJR.mjs.map +1 -0
  423. package/dist/ParticipantPage-Cc6c48Re.mjs.map +1 -0
  424. package/dist/ParticipantPage-D-47wU1r.mjs.map +1 -0
  425. package/dist/ParticipantPage-DhEts9Fb.mjs.map +1 -0
  426. package/dist/ParticipantPage-DkQssmwq.mjs.map +1 -0
  427. package/dist/ParticipantPage-DtAxvp2W.mjs +203 -0
  428. package/dist/ParticipantPage-DtAxvp2W.mjs.map +1 -0
  429. package/dist/ParticipantsPage-BQWxk0kn.mjs.map +1 -0
  430. package/dist/ParticipantsPage-ByDJNNQP.mjs.map +1 -0
  431. package/dist/ParticipantsPage-BzdpZCDO.mjs +262 -0
  432. package/dist/ParticipantsPage-BzdpZCDO.mjs.map +1 -0
  433. package/dist/ParticipantsPage-C0zCaBAN.mjs.map +1 -0
  434. package/dist/ParticipantsPage-CMlr61eA.mjs.map +1 -0
  435. package/dist/ParticipantsPage-COkwBD_g.mjs.map +1 -0
  436. package/dist/ParticipantsPage-CxOpIszl.mjs.map +1 -0
  437. package/dist/ParticipantsPage-DbCJ_xh8.mjs.map +1 -0
  438. package/dist/ParticipantsPage-lPPbUyo7.mjs.map +1 -0
  439. package/dist/PlayerAnonymousModal-7vjldHzL.mjs.map +1 -0
  440. package/dist/PlayerAnonymousModal-BKSUU6ln.mjs.map +1 -0
  441. package/dist/PlayerAnonymousModal-BKaI6E9o.mjs +84 -0
  442. package/dist/PlayerAnonymousModal-BKaI6E9o.mjs.map +1 -0
  443. package/dist/PlayerAnonymousModal-BtghKP8M.mjs.map +1 -0
  444. package/dist/PlayerAnonymousModal-Bz_vt6vZ.mjs.map +1 -0
  445. package/dist/PlayerAnonymousModal-CnKXq6ez.mjs.map +1 -0
  446. package/dist/PlayerAnonymousModal-ZqyARAv3.mjs.map +1 -0
  447. package/dist/PlayerCompact-B-WRNyqn.mjs +209 -0
  448. package/dist/PlayerCompact-B-WRNyqn.mjs.map +1 -0
  449. package/dist/PlayerCompact-B-x6J7cl.mjs.map +1 -0
  450. package/dist/PlayerCompact-BzcQcgqX.mjs.map +1 -0
  451. package/dist/PlayerCompact-CcRdWagH.mjs.map +1 -0
  452. package/dist/PlayerCompact-D2p0ZIHQ.mjs.map +1 -0
  453. package/dist/PlayerCompact-aIbQLF3h.mjs.map +1 -0
  454. package/dist/PlayerCompact-gWt2fJaQ.mjs.map +1 -0
  455. package/dist/PlayerComponent-BzlYi_Ow.mjs.map +1 -0
  456. package/dist/PlayerComponent-CBZxYTU1.mjs.map +1 -0
  457. package/dist/PlayerComponent-CUHTRJic.mjs +929 -0
  458. package/dist/PlayerComponent-CUHTRJic.mjs.map +1 -0
  459. package/dist/PlayerComponent-D2h1w9z5.mjs.map +1 -0
  460. package/dist/PlayerComponent-D4U1OmjB.mjs.map +1 -0
  461. package/dist/PlayerComponent-Dnqs6S8R.mjs.map +1 -0
  462. package/dist/PlayerComponent-ZTo5F4BH.mjs.map +1 -0
  463. package/dist/PlayerLarge-2ekd361u.mjs.map +1 -0
  464. package/dist/PlayerLarge-BisiuTbM.mjs.map +1 -0
  465. package/dist/PlayerLarge-Cujee7Yx.mjs.map +1 -0
  466. package/dist/PlayerLarge-DUX0TfTs.mjs.map +1 -0
  467. package/dist/PlayerLarge-DmbtYNNk.mjs.map +1 -0
  468. package/dist/PlayerLarge-Kt-pV6N_.mjs +190 -0
  469. package/dist/PlayerLarge-Kt-pV6N_.mjs.map +1 -0
  470. package/dist/PlayerLarge-qjnmbVOv.mjs.map +1 -0
  471. package/dist/PlayerPlayButton-BPsfZCY3.mjs.map +1 -0
  472. package/dist/PlayerPlayButton-CAElMmMV.mjs +400 -0
  473. package/dist/PlayerPlayButton-CAElMmMV.mjs.map +1 -0
  474. package/dist/PlayerPlayButton-CCjszcz0.mjs.map +1 -0
  475. package/dist/PlayerPlayButton-Ch13_VDS.mjs.map +1 -0
  476. package/dist/PlayerPlayButton-Cyrw_cga.mjs.map +1 -0
  477. package/dist/PlayerPlayButton-XWMj19eH.mjs.map +1 -0
  478. package/dist/PlayerPlayButton-pCY5tl9N.mjs.map +1 -0
  479. package/dist/PlayerProgressBar-BAOBWS7y.mjs.map +1 -0
  480. package/dist/PlayerProgressBar-Bx_i6wnH.mjs.map +1 -0
  481. package/dist/PlayerProgressBar-CwMFzYDi.mjs.map +1 -0
  482. package/dist/PlayerProgressBar-D-cNkJmu.mjs.map +1 -0
  483. package/dist/PlayerProgressBar-DWAyhBWx.mjs +86 -0
  484. package/dist/PlayerProgressBar-DWAyhBWx.mjs.map +1 -0
  485. package/dist/PlayerProgressBar-Drigrm0o.mjs.map +1 -0
  486. package/dist/PlayerProgressBar-MfOUpxGI.mjs.map +1 -0
  487. package/dist/PlayerStore-7LlyIvl0.mjs.map +1 -0
  488. package/dist/PlayerStore-7vhL8Npe.mjs +230 -0
  489. package/dist/PlayerStore-7vhL8Npe.mjs.map +1 -0
  490. package/dist/PlayerStore-B6kwXQZ8.mjs.map +1 -0
  491. package/dist/PlayerStore-BvkLLLst.mjs.map +1 -0
  492. package/dist/PlayerStore-C1tm0Oar.mjs.map +1 -0
  493. package/dist/PlayerStore-DZiDRLQN.mjs.map +1 -0
  494. package/dist/PlayerStore-kuZWcb-U.mjs.map +1 -0
  495. package/dist/PlayerVideo-7nnfCTlR.mjs.map +1 -0
  496. package/dist/PlayerVideo-BofTa3uM.mjs.map +1 -0
  497. package/dist/PlayerVideo-BtkR6jg2.mjs.map +1 -0
  498. package/dist/PlayerVideo-CG_vQWU0.mjs.map +1 -0
  499. package/dist/PlayerVideo-CJ9eefTe.mjs.map +1 -0
  500. package/dist/PlayerVideo-Dq7OHOig.mjs +72 -0
  501. package/dist/PlayerVideo-Dq7OHOig.mjs.map +1 -0
  502. package/dist/PlayerVideo-DqT3hB5y.mjs.map +1 -0
  503. package/dist/PlayerVideoDigiteka-BFLGMVo-.mjs.map +1 -0
  504. package/dist/PlayerVideoDigiteka-CAmI0Em3.mjs.map +1 -0
  505. package/dist/PlayerVideoDigiteka-Cy0L4YOd.mjs.map +1 -0
  506. package/dist/PlayerVideoDigiteka-DnNkrWIT.mjs.map +1 -0
  507. package/dist/PlayerVideoDigiteka-Dt73T6Qs.mjs.map +1 -0
  508. package/dist/PlayerVideoDigiteka-Dud6Y4wc.mjs.map +1 -0
  509. package/dist/PlayerVideoDigiteka-pNFWNrON.mjs +102 -0
  510. package/dist/PlayerVideoDigiteka-pNFWNrON.mjs.map +1 -0
  511. package/dist/PlayerVideoHls-BDDiwxGb.mjs.map +1 -0
  512. package/dist/PlayerVideoHls-CE2SIkEn.mjs +232 -0
  513. package/dist/PlayerVideoHls-CE2SIkEn.mjs.map +1 -0
  514. package/dist/PlayerVideoHls-CoK72Ry1.mjs.map +1 -0
  515. package/dist/PlayerVideoHls-D-nrZlVs.mjs.map +1 -0
  516. package/dist/PlayerVideoHls-cotysRp5.mjs.map +1 -0
  517. package/dist/PlayerVideoHls-jOa02CyD.mjs.map +1 -0
  518. package/dist/PlayerVideoHls-k_3vIV-3.mjs.map +1 -0
  519. package/dist/PlaylistPage-BZx9ojty.mjs.map +1 -0
  520. package/dist/PlaylistPage-CBWEAkDm.mjs.map +1 -0
  521. package/dist/PlaylistPage-Cb5ukqXZ.mjs +228 -0
  522. package/dist/PlaylistPage-Cb5ukqXZ.mjs.map +1 -0
  523. package/dist/PlaylistPage-Cv15l4gs.mjs.map +1 -0
  524. package/dist/PlaylistPage-D6OVQKg7.mjs.map +1 -0
  525. package/dist/PlaylistPage-D__PNCOf.mjs.map +1 -0
  526. package/dist/PlaylistPage-Jv5rPWTt.mjs.map +1 -0
  527. package/dist/PlaylistPage-Le2dLhgP.mjs.map +1 -0
  528. package/dist/PlaylistPage-Tbq77bN4.mjs.map +1 -0
  529. package/dist/PlaylistsPage-BSD4BZop.mjs.map +1 -0
  530. package/dist/PlaylistsPage-C_aZ8Lzc.mjs.map +1 -0
  531. package/dist/PlaylistsPage-D8YgTvxe.mjs.map +1 -0
  532. package/dist/PlaylistsPage-DAVADzhL.mjs +395 -0
  533. package/dist/PlaylistsPage-DAVADzhL.mjs.map +1 -0
  534. package/dist/PlaylistsPage-DkkPMbPD.mjs.map +1 -0
  535. package/dist/PlaylistsPage-MqIyXNlI.mjs.map +1 -0
  536. package/dist/PlaylistsPage-W-eroSMe.mjs.map +1 -0
  537. package/dist/PodcastFilterList-CPtCzU9P.mjs.map +1 -0
  538. package/dist/PodcastFilterList-CmqrA2oC.mjs +254 -0
  539. package/dist/PodcastFilterList-CmqrA2oC.mjs.map +1 -0
  540. package/dist/PodcastFilterList-Co_yncww.mjs.map +1 -0
  541. package/dist/PodcastFilterList-CqqSn_UR.mjs.map +1 -0
  542. package/dist/PodcastFilterList-CsN5tLJ5.mjs.map +1 -0
  543. package/dist/PodcastFilterList-DluBCeUz.mjs.map +1 -0
  544. package/dist/PodcastFilterList-DooOZgn6.mjs.map +1 -0
  545. package/dist/PodcastFilterList-Dt-zeKoY.mjs.map +1 -0
  546. package/dist/PodcastFilterList-ScEWo73F.mjs.map +1 -0
  547. package/dist/PodcastImage-BeXlZu-M.mjs.map +1 -0
  548. package/dist/PodcastImage-C0y1-_Ef.mjs.map +1 -0
  549. package/dist/PodcastImage-C21I_lnU.mjs.map +1 -0
  550. package/dist/PodcastImage-CWKY72t1.mjs.map +1 -0
  551. package/dist/PodcastImage-CbOp5HBb.mjs.map +1 -0
  552. package/dist/PodcastImage-DamlmvBn.mjs.map +1 -0
  553. package/dist/PodcastImage-DsU_qbcI.mjs.map +1 -0
  554. package/dist/PodcastImage-FhC5F4MR.mjs +174 -0
  555. package/dist/PodcastImage-FhC5F4MR.mjs.map +1 -0
  556. package/dist/PodcastImage-fBx9FmaM.mjs.map +1 -0
  557. package/dist/PodcastInlineList-4uf55RGp.mjs.map +1 -0
  558. package/dist/PodcastInlineList-BFe-4rfk.mjs.map +1 -0
  559. package/dist/PodcastInlineList-BP-eXViR.mjs.map +1 -0
  560. package/dist/PodcastInlineList-CDumc8n6.mjs +138 -0
  561. package/dist/PodcastInlineList-CDumc8n6.mjs.map +1 -0
  562. package/dist/PodcastInlineList-CMLSSgCl.mjs.map +1 -0
  563. package/dist/PodcastInlineList-CoLPUU1O.mjs.map +1 -0
  564. package/dist/PodcastInlineList-DVEOw_jZ.mjs.map +1 -0
  565. package/dist/PodcastInlineList-NuchUq3F.mjs.map +1 -0
  566. package/dist/PodcastInlineList-TrVj1WsC.mjs.map +1 -0
  567. package/dist/PodcastInlineListTemplate-Bif2XHIx.mjs.map +1 -0
  568. package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs +233 -0
  569. package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs.map +1 -0
  570. package/dist/PodcastInlineListTemplate-CiXIYnv7.mjs.map +1 -0
  571. package/dist/PodcastInlineListTemplate-CpLRagzE.mjs.map +1 -0
  572. package/dist/PodcastInlineListTemplate-D9_3zHeM.mjs.map +1 -0
  573. package/dist/PodcastInlineListTemplate-DJSNNFOh.mjs.map +1 -0
  574. package/dist/PodcastInlineListTemplate-PnoLyihJ.mjs.map +1 -0
  575. package/dist/PodcastIsPlaying-640MMTTV.mjs.map +1 -0
  576. package/dist/PodcastIsPlaying-BfKDPivV.mjs.map +1 -0
  577. package/dist/PodcastIsPlaying-CjnQmJ0x.mjs.map +1 -0
  578. package/dist/PodcastIsPlaying-DMXKbEjS.mjs.map +1 -0
  579. package/dist/PodcastIsPlaying-DpUjmLlW.mjs.map +1 -0
  580. package/dist/PodcastIsPlaying-DqnPEYSJ.mjs +30 -0
  581. package/dist/PodcastIsPlaying-DqnPEYSJ.mjs.map +1 -0
  582. package/dist/PodcastIsPlaying-j9a5pcJu.mjs.map +1 -0
  583. package/dist/PodcastItem-B2omNjKA.mjs.map +1 -0
  584. package/dist/PodcastItem-BTKSsuZY.mjs.map +1 -0
  585. package/dist/PodcastItem-BUe2ZVg7.mjs.map +1 -0
  586. package/dist/PodcastItem-DlzucX-c.mjs.map +1 -0
  587. package/dist/PodcastItem-DqcitfgD.mjs.map +1 -0
  588. package/dist/PodcastItem-_eKhUVGk.mjs.map +1 -0
  589. package/dist/PodcastItem-a9u75Wpq.mjs.map +1 -0
  590. package/dist/PodcastItem-cssDzcpa.mjs.map +1 -0
  591. package/dist/PodcastItem-rF33x3wp.mjs +287 -0
  592. package/dist/PodcastItem-rF33x3wp.mjs.map +1 -0
  593. package/dist/PodcastList-3w_q0Qic.mjs.map +1 -0
  594. package/dist/PodcastList-5vsIa70L.mjs.map +1 -0
  595. package/dist/PodcastList-ATGmVU1-.mjs.map +1 -0
  596. package/dist/PodcastList-B20GtO2V.mjs.map +1 -0
  597. package/dist/PodcastList-BSKlfx8q.mjs.map +1 -0
  598. package/dist/PodcastList-BV902l6U.mjs.map +1 -0
  599. package/dist/PodcastList-BWYRh4OU.mjs.map +1 -0
  600. package/dist/PodcastList-BewxderG.mjs +330 -0
  601. package/dist/PodcastList-BewxderG.mjs.map +1 -0
  602. package/dist/PodcastList-CHOZ5sWV.mjs.map +1 -0
  603. package/dist/PodcastList-CMATMgPs.mjs.map +1 -0
  604. package/dist/PodcastList-CzAh_ZPT.mjs.map +1 -0
  605. package/dist/PodcastList-DYLAwHbt.mjs +182 -0
  606. package/dist/PodcastList-DYLAwHbt.mjs.map +1 -0
  607. package/dist/PodcastList-Dxg8A4ui.mjs.map +1 -0
  608. package/dist/PodcastList-NQ0QF4lo.mjs.map +1 -0
  609. package/dist/PodcastList-TLe8ef1p.mjs.map +1 -0
  610. package/dist/PodcastList-aeKPA2Pa.mjs.map +1 -0
  611. package/dist/PodcastList-w8j9w3A3.mjs.map +1 -0
  612. package/dist/PodcastList-zLoXrLjM.mjs.map +1 -0
  613. package/dist/PodcastPage-7TvhRhNY.mjs.map +1 -0
  614. package/dist/PodcastPage-9LBDV577.mjs.map +1 -0
  615. package/dist/PodcastPage-ASnAv0Hy.mjs.map +1 -0
  616. package/dist/PodcastPage-B8AKWW1N.mjs.map +1 -0
  617. package/dist/PodcastPage-BHnY1AyE.mjs.map +1 -0
  618. package/dist/PodcastPage-BOuG5LyA.mjs.map +1 -0
  619. package/dist/PodcastPage-BvRTyXh8.mjs.map +1 -0
  620. package/dist/PodcastPage-BwzigA-q.mjs.map +1 -0
  621. package/dist/PodcastPage-CQvLnC1G.mjs.map +1 -0
  622. package/dist/PodcastPage-C_8OMBPC.mjs.map +1 -0
  623. package/dist/PodcastPage-C_Eg4Zbc.mjs.map +1 -0
  624. package/dist/PodcastPage-CbwfzcE9.mjs.map +1 -0
  625. package/dist/PodcastPage-CgjKlSvp.mjs.map +1 -0
  626. package/dist/PodcastPage-CrF52JIi.mjs.map +1 -0
  627. package/dist/PodcastPage-Culwyrcp.mjs.map +1 -0
  628. package/dist/PodcastPage-D8kQEHyz.mjs.map +1 -0
  629. package/dist/PodcastPage-DPXR-5-z.mjs.map +1 -0
  630. package/dist/PodcastPage-DStxOLRd.mjs.map +1 -0
  631. package/dist/PodcastPage-DcvotAob.mjs.map +1 -0
  632. package/dist/PodcastPage-DlZWXScN.mjs.map +1 -0
  633. package/dist/PodcastPage-DoUwareI.mjs.map +1 -0
  634. package/dist/PodcastPage-NMZSFjQm.mjs +756 -0
  635. package/dist/PodcastPage-NMZSFjQm.mjs.map +1 -0
  636. package/dist/PodcastPage-V1XY5ICb.mjs.map +1 -0
  637. package/dist/PodcastPage-fC-hXh-c.mjs.map +1 -0
  638. package/dist/PodcastPage-k8D3U82P.mjs.map +1 -0
  639. package/dist/PodcastPage-wTylVERN.mjs.map +1 -0
  640. package/dist/PodcastPage-xjk1WBAv.mjs.map +1 -0
  641. package/dist/PodcastPlayBar-BEyKbC22.mjs.map +1 -0
  642. package/dist/PodcastPlayBar-Cggx8A-d.mjs.map +1 -0
  643. package/dist/PodcastPlayBar-DHIXjuJO.mjs.map +1 -0
  644. package/dist/PodcastPlayBar-D_b7qme_.mjs +83 -0
  645. package/dist/PodcastPlayBar-D_b7qme_.mjs.map +1 -0
  646. package/dist/PodcastPlayBar-N3TwfXUo.mjs.map +1 -0
  647. package/dist/PodcastPlayBar-_e0LCcGd.mjs.map +1 -0
  648. package/dist/PodcastPlayBar-lojf3mqg.mjs.map +1 -0
  649. package/dist/PodcastPlayBasicButton-BoFyO-5v.mjs.map +1 -0
  650. package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs +72 -0
  651. package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs.map +1 -0
  652. package/dist/PodcastPlayBasicButton-Ca7KCiwF.mjs.map +1 -0
  653. package/dist/PodcastPlayBasicButton-Cot0Hw7f.mjs.map +1 -0
  654. package/dist/PodcastPlayBasicButton-CuRUgSxj.mjs.map +1 -0
  655. package/dist/PodcastPlayBasicButton-D2RrMC3u.mjs.map +1 -0
  656. package/dist/PodcastPlayBasicButton-KJRkgfDO.mjs.map +1 -0
  657. package/dist/PodcastPlayButton-BE6hVdpb.mjs.map +1 -0
  658. package/dist/PodcastPlayButton-BL06-DcD.mjs.map +1 -0
  659. package/dist/PodcastPlayButton-CIlav88-.mjs.map +1 -0
  660. package/dist/PodcastPlayButton-CfbXWla-.mjs.map +1 -0
  661. package/dist/PodcastPlayButton-CkUupm2O.mjs.map +1 -0
  662. package/dist/PodcastPlayButton-Cwh7588y.mjs.map +1 -0
  663. package/dist/PodcastPlayButton-Dgv5W72_.mjs +236 -0
  664. package/dist/PodcastPlayButton-Dgv5W72_.mjs.map +1 -0
  665. package/dist/PodcastPlayButton-DwKPWtV0.mjs.map +1 -0
  666. package/dist/PodcastPlayButton-vspf9u4U.mjs.map +1 -0
  667. package/dist/PodcastPlaylistInlineList-B3cji_kZ.mjs.map +1 -0
  668. package/dist/PodcastPlaylistInlineList-BdfZY6Bi.mjs.map +1 -0
  669. package/dist/PodcastPlaylistInlineList-BxUy7Yg7.mjs.map +1 -0
  670. package/dist/PodcastPlaylistInlineList-C3khc2NN.mjs.map +1 -0
  671. package/dist/PodcastPlaylistInlineList-CQF7SZ6j.mjs.map +1 -0
  672. package/dist/PodcastPlaylistInlineList-D8VLeO5u.mjs.map +1 -0
  673. package/dist/PodcastPlaylistInlineList-D9PS9Z2X.mjs.map +1 -0
  674. package/dist/PodcastPlaylistInlineList-WISkRxKn.mjs.map +1 -0
  675. package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs +115 -0
  676. package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs.map +1 -0
  677. package/dist/PodcastPresentationList-6ZP8AnoX.mjs.map +1 -0
  678. package/dist/PodcastPresentationList-AP-ZURmT.mjs.map +1 -0
  679. package/dist/PodcastPresentationList-BC6cS2jK.mjs.map +1 -0
  680. package/dist/PodcastPresentationList-BfakxuQt.mjs.map +1 -0
  681. package/dist/PodcastPresentationList-CfsRs5zo.mjs.map +1 -0
  682. package/dist/PodcastPresentationList-Crr-1ywF.mjs.map +1 -0
  683. package/dist/PodcastPresentationList-Cvn11sIu.mjs.map +1 -0
  684. package/dist/PodcastPresentationList-DxUwH3dU.mjs +200 -0
  685. package/dist/PodcastPresentationList-DxUwH3dU.mjs.map +1 -0
  686. package/dist/PodcastPresentationList-V-rJhaqG.mjs.map +1 -0
  687. package/dist/PodcastProgressBar-BBwzkXWn.mjs.map +1 -0
  688. package/dist/PodcastProgressBar-C2Kbdsds.mjs.map +1 -0
  689. package/dist/PodcastProgressBar-CxWDWvG2.mjs.map +1 -0
  690. package/dist/PodcastProgressBar-DY-PA2H4.mjs.map +1 -0
  691. package/dist/PodcastProgressBar-D_togvfJ.mjs +98 -0
  692. package/dist/PodcastProgressBar-D_togvfJ.mjs.map +1 -0
  693. package/dist/PodcastProgressBar-lNHC70cW.mjs.map +1 -0
  694. package/dist/PodcastProgressBar-n2ASk6Jr.mjs.map +1 -0
  695. package/dist/PodcastRawTranscript-BXaXSOG0.mjs.map +1 -0
  696. package/dist/PodcastRawTranscript-Bp-DCioJ.mjs.map +1 -0
  697. package/dist/PodcastRawTranscript-CHnE4Q9g.mjs +184 -0
  698. package/dist/PodcastRawTranscript-CHnE4Q9g.mjs.map +1 -0
  699. package/dist/PodcastRawTranscript-Cl5YD7_I.mjs.map +1 -0
  700. package/dist/PodcastRawTranscript-D2eMeI5k.mjs.map +1 -0
  701. package/dist/PodcastRawTranscript-DyHxxFrC.mjs.map +1 -0
  702. package/dist/PodcastRawTranscript-yTs0EUKz.mjs.map +1 -0
  703. package/dist/PodcastRubriqueList-BSqs8IWw.mjs.map +1 -0
  704. package/dist/PodcastRubriqueList-BoQ3r-hl.mjs.map +1 -0
  705. package/dist/PodcastRubriqueList-D6UwV3RM.mjs.map +1 -0
  706. package/dist/PodcastRubriqueList-DHWcZB1k.mjs.map +1 -0
  707. package/dist/PodcastRubriqueList-DQhU9j2T.mjs.map +1 -0
  708. package/dist/PodcastRubriqueList-DqHgAzXW.mjs +83 -0
  709. package/dist/PodcastRubriqueList-DqHgAzXW.mjs.map +1 -0
  710. package/dist/PodcastRubriqueList-MKouh9FT.mjs.map +1 -0
  711. package/dist/PodcastSwiperList-BIlusV0y.mjs.map +1 -0
  712. package/dist/PodcastSwiperList-BcOEmb2L.mjs.map +1 -0
  713. package/dist/PodcastSwiperList-Bcl4Sr87.mjs.map +1 -0
  714. package/dist/PodcastSwiperList-CHiE_5Np.mjs.map +1 -0
  715. package/dist/PodcastSwiperList-CW7KHrXE.mjs.map +1 -0
  716. package/dist/PodcastSwiperList-CZ0_rjSj.mjs.map +1 -0
  717. package/dist/PodcastSwiperList-DlOf7qj-.mjs.map +1 -0
  718. package/dist/PodcastSwiperList-DwAm99HI.mjs.map +1 -0
  719. package/dist/PodcastSwiperList-PoinXUn2.mjs +219 -0
  720. package/dist/PodcastSwiperList-PoinXUn2.mjs.map +1 -0
  721. package/dist/PodcastmakerHeader-3PeM3wyF.mjs.map +1 -0
  722. package/dist/PodcastmakerHeader-BC7yZTRo.mjs.map +1 -0
  723. package/dist/PodcastmakerHeader-BVeOsj4_.mjs.map +1 -0
  724. package/dist/PodcastmakerHeader-C-vkFOcc.mjs.map +1 -0
  725. package/dist/PodcastmakerHeader-CLPAECC5.mjs.map +1 -0
  726. package/dist/PodcastmakerHeader-CTOmo93E.mjs +58 -0
  727. package/dist/PodcastmakerHeader-CTOmo93E.mjs.map +1 -0
  728. package/dist/PodcastmakerHeader-DOD21_py.mjs.map +1 -0
  729. package/dist/PodcastsPage-234XpWuj.mjs.map +1 -0
  730. package/dist/PodcastsPage-B1JUH1co.mjs +217 -0
  731. package/dist/PodcastsPage-B1JUH1co.mjs.map +1 -0
  732. package/dist/PodcastsPage-BNc0uI4a.mjs.map +1 -0
  733. package/dist/PodcastsPage-C601uah1.mjs.map +1 -0
  734. package/dist/PodcastsPage-CJHRB5IS.mjs.map +1 -0
  735. package/dist/PodcastsPage-Cp5g1lhW.mjs.map +1 -0
  736. package/dist/PodcastsPage-D7jjbbx6.mjs.map +1 -0
  737. package/dist/PodcastsPage-T8kmqhD6.mjs.map +1 -0
  738. package/dist/PodcastsPage-xZGU98Tj.mjs.map +1 -0
  739. package/dist/ProductorSearch-CTMYAxKp.mjs.map +1 -0
  740. package/dist/ProductorSearch-CeZ-1cW7.mjs.map +1 -0
  741. package/dist/ProductorSearch-D4fWcKog.mjs.map +1 -0
  742. package/dist/ProductorSearch-DCH0mawe.mjs.map +1 -0
  743. package/dist/ProductorSearch-DEQwq8Qp.mjs.map +1 -0
  744. package/dist/ProductorSearch-XQ1jGYQw.mjs +161 -0
  745. package/dist/ProductorSearch-XQ1jGYQw.mjs.map +1 -0
  746. package/dist/ProductorSearch-xyzEQY1e.mjs.map +1 -0
  747. package/dist/ProgressBar-6lP5chZK.mjs.map +1 -0
  748. package/dist/ProgressBar-Bt-AMFne.mjs.map +1 -0
  749. package/dist/ProgressBar-ButRLZKn.mjs.map +1 -0
  750. package/dist/ProgressBar-CyddCXNJ.mjs +158 -0
  751. package/dist/ProgressBar-CyddCXNJ.mjs.map +1 -0
  752. package/dist/ProgressBar-DSMOh1wT.mjs.map +1 -0
  753. package/dist/ProgressBar-NFkInTLb.mjs.map +1 -0
  754. package/dist/ProgressBar-Z51T1XCf.mjs.map +1 -0
  755. package/dist/QrCode-20OgUzN2.mjs.map +1 -0
  756. package/dist/QrCode-6ZkgX9Ta.mjs +177 -0
  757. package/dist/QrCode-6ZkgX9Ta.mjs.map +1 -0
  758. package/dist/QrCode-Bc2uQc55.mjs.map +1 -0
  759. package/dist/QrCode-CeV2SpH9.mjs.map +1 -0
  760. package/dist/QrCode-Do-uF9l1.mjs.map +1 -0
  761. package/dist/QrCode-LWqUFrdO.mjs.map +1 -0
  762. package/dist/QrCode-pbaY5gW1.mjs.map +1 -0
  763. package/dist/QrCodeModal-BHfET22K.mjs.map +1 -0
  764. package/dist/QrCodeModal-BNVatZWE.mjs +64 -0
  765. package/dist/QrCodeModal-BNVatZWE.mjs.map +1 -0
  766. package/dist/QrCodeModal-DFfNl0fW.mjs.map +1 -0
  767. package/dist/QrCodeModal-DemrNflK.mjs.map +1 -0
  768. package/dist/QrCodeModal-Do265wVe.mjs.map +1 -0
  769. package/dist/QrCodeModal-NiYU4p1I.mjs.map +1 -0
  770. package/dist/QrCodeModal-wRXhUjGf.mjs.map +1 -0
  771. package/dist/RadioCurrently-BFAEfLFX.mjs.map +1 -0
  772. package/dist/RadioCurrently-Bf-Pg-J_.mjs +112 -0
  773. package/dist/RadioCurrently-Bf-Pg-J_.mjs.map +1 -0
  774. package/dist/RadioCurrently-CXjYjO3m.mjs.map +1 -0
  775. package/dist/RadioCurrently-CZiABA2W.mjs.map +1 -0
  776. package/dist/RadioCurrently-CoOjRUyE.mjs.map +1 -0
  777. package/dist/RadioCurrently-JKL0a_SK.mjs.map +1 -0
  778. package/dist/RadioCurrently-hx7bw94i.mjs.map +1 -0
  779. package/dist/RadioHistory-BF-qlL2M.mjs.map +1 -0
  780. package/dist/RadioHistory-Bf2QIRr6.mjs.map +1 -0
  781. package/dist/RadioHistory-C7tOpvUk.mjs +139 -0
  782. package/dist/RadioHistory-C7tOpvUk.mjs.map +1 -0
  783. package/dist/RadioHistory-CQCcGdcs.mjs.map +1 -0
  784. package/dist/RadioHistory-D-xw6ZDO.mjs.map +1 -0
  785. package/dist/RadioHistory-D6niGKEI.mjs.map +1 -0
  786. package/dist/RadioHistory-mkQlj0G1.mjs.map +1 -0
  787. package/dist/RadioImage-6T5CmnKh.mjs.map +1 -0
  788. package/dist/RadioImage-BUvykGlw.mjs.map +1 -0
  789. package/dist/RadioImage-BrYBuloV.mjs.map +1 -0
  790. package/dist/RadioImage-CMtQaqiz.mjs.map +1 -0
  791. package/dist/RadioImage-CiIj65_a.mjs +85 -0
  792. package/dist/RadioImage-CiIj65_a.mjs.map +1 -0
  793. package/dist/RadioImage-DVwQNtMT.mjs.map +1 -0
  794. package/dist/RadioImage-XqoEXwZv.mjs.map +1 -0
  795. package/dist/RadioList-BotOeNwF.mjs +125 -0
  796. package/dist/RadioList-BotOeNwF.mjs.map +1 -0
  797. package/dist/RadioList-CjP-UN50.mjs.map +1 -0
  798. package/dist/RadioList-CroBp4d5.mjs.map +1 -0
  799. package/dist/RadioList-DUkyj-3T.mjs.map +1 -0
  800. package/dist/RadioList-Dp5kjFiW.mjs.map +1 -0
  801. package/dist/RadioList-DpSiNcDT.mjs.map +1 -0
  802. package/dist/RadioList-k2aCdh24.mjs.map +1 -0
  803. package/dist/RadioPage-BE4wCcA2.mjs.map +1 -0
  804. package/dist/RadioPage-BeTgvUPE.mjs.map +1 -0
  805. package/dist/RadioPage-CcPPJUmX.mjs +137 -0
  806. package/dist/RadioPage-CcPPJUmX.mjs.map +1 -0
  807. package/dist/RadioPage-Cqc1x0Ld.mjs.map +1 -0
  808. package/dist/RadioPage-Cvr1JY6T.mjs.map +1 -0
  809. package/dist/RadioPage-DwYxk45W.mjs.map +1 -0
  810. package/dist/RadioPage-IflTSXFQ.mjs.map +1 -0
  811. package/dist/RadioPlanning-BHklVGWm.mjs.map +1 -0
  812. package/dist/RadioPlanning-C5dPMP4_.mjs.map +1 -0
  813. package/dist/RadioPlanning-C8MtglrL.mjs +290 -0
  814. package/dist/RadioPlanning-C8MtglrL.mjs.map +1 -0
  815. package/dist/RadioPlanning-DCyp5l76.mjs.map +1 -0
  816. package/dist/RadioPlanning-Iw9vA8fj.mjs.map +1 -0
  817. package/dist/RadioPlanning-MiAA82P8.mjs.map +1 -0
  818. package/dist/RadioPlanning-zfc80hVQ.mjs.map +1 -0
  819. package/dist/RadioProgressBar-1PEu9PP_.mjs +67 -0
  820. package/dist/RadioProgressBar-1PEu9PP_.mjs.map +1 -0
  821. package/dist/RadioProgressBar-B1zJqxTH.mjs.map +1 -0
  822. package/dist/RadioProgressBar-BE7xpKuz.mjs.map +1 -0
  823. package/dist/RadioProgressBar-C7Lk7NWa.mjs.map +1 -0
  824. package/dist/RadioProgressBar-C7syfJeD.mjs.map +1 -0
  825. package/dist/RadioProgressBar-DKaDO8E3.mjs.map +1 -0
  826. package/dist/RadioProgressBar-DUwPmtUM.mjs.map +1 -0
  827. package/dist/RecaptchaModal-B4NgHMv8.mjs.map +1 -0
  828. package/dist/RecaptchaModal-Bh0R-LJQ.mjs.map +1 -0
  829. package/dist/RecaptchaModal-CHFdC9Sq.mjs +148 -0
  830. package/dist/RecaptchaModal-CHFdC9Sq.mjs.map +1 -0
  831. package/dist/RecaptchaModal-DDN7f19l.mjs.map +1 -0
  832. package/dist/RecaptchaModal-DZgBJsqv.mjs.map +1 -0
  833. package/dist/RecaptchaModal-D_Jsgg1Y.mjs.map +1 -0
  834. package/dist/RecaptchaModal-DeXzozPd.mjs.map +1 -0
  835. package/dist/ReportAbuseModal-BNmgx7J8.mjs.map +1 -0
  836. package/dist/ReportAbuseModal-CGdwy6AX.mjs.map +1 -0
  837. package/dist/ReportAbuseModal-CRcYir1i.mjs +134 -0
  838. package/dist/ReportAbuseModal-CRcYir1i.mjs.map +1 -0
  839. package/dist/ReportAbuseModal-Cd05gQRG.mjs.map +1 -0
  840. package/dist/ReportAbuseModal-DZZSuWJL.mjs.map +1 -0
  841. package/dist/ReportAbuseModal-Dhr0wNeN.mjs.map +1 -0
  842. package/dist/ReportAbuseModal-Jkua96nx.mjs.map +1 -0
  843. package/dist/ReportAbuseModal-fW3qVnqB.mjs.map +1 -0
  844. package/dist/RightsIndicator-BS3j-fVM.mjs.map +1 -0
  845. package/dist/RightsIndicator-BfnK3wyp.mjs.map +1 -0
  846. package/dist/RightsIndicator-CIvYsls2.mjs.map +1 -0
  847. package/dist/RightsIndicator-DCXOdtYK.mjs.map +1 -0
  848. package/dist/RightsIndicator-DeX5rK6p.mjs +124 -0
  849. package/dist/RightsIndicator-DeX5rK6p.mjs.map +1 -0
  850. package/dist/RightsIndicator-IodEqXTS.mjs.map +1 -0
  851. package/dist/RightsIndicator-Tp19E3wH.mjs.map +1 -0
  852. package/dist/RightsIndicator-UnNA-JnX.mjs.map +1 -0
  853. package/dist/RightsIndicator-fNFREWAW.mjs.map +1 -0
  854. package/dist/RightsWrapper-B8WfUUyU.mjs +212 -0
  855. package/dist/RightsWrapper-B8WfUUyU.mjs.map +1 -0
  856. package/dist/RightsWrapper-C4RmSfic.mjs.map +1 -0
  857. package/dist/RightsWrapper-CuyTiPNy.mjs.map +1 -0
  858. package/dist/RightsWrapper-CwfoSSsa.mjs.map +1 -0
  859. package/dist/RightsWrapper-Dfn3I70v.mjs.map +1 -0
  860. package/dist/RightsWrapper-Du_voV0a.mjs.map +1 -0
  861. package/dist/RightsWrapper-cUlJfjI3.mjs.map +1 -0
  862. package/dist/RubriqueFilter-CM7kr6ig.mjs.map +1 -0
  863. package/dist/RubriqueFilter-CZDYRGY1.mjs.map +1 -0
  864. package/dist/RubriqueFilter-ChiOg_xE.mjs.map +1 -0
  865. package/dist/RubriqueFilter-CmuKuprg.mjs.map +1 -0
  866. package/dist/RubriqueFilter-DL_FXRSA.mjs +199 -0
  867. package/dist/RubriqueFilter-DL_FXRSA.mjs.map +1 -0
  868. package/dist/RubriqueFilter-DrH0XXvc.mjs.map +1 -0
  869. package/dist/RubriqueFilter-MMI5yYaP.mjs.map +1 -0
  870. package/dist/RubriqueList-16-5nihG.mjs.map +1 -0
  871. package/dist/RubriqueList-BdfABEgq.mjs.map +1 -0
  872. package/dist/RubriqueList-BsPLy3ay.mjs.map +1 -0
  873. package/dist/RubriqueList-CJa6V4RB.mjs.map +1 -0
  874. package/dist/RubriqueList-CMOS69Vq.mjs +206 -0
  875. package/dist/RubriqueList-CMOS69Vq.mjs.map +1 -0
  876. package/dist/RubriqueList-CqwNtNAT.mjs.map +1 -0
  877. package/dist/RubriqueList-CwjcXWs4.mjs.map +1 -0
  878. package/dist/RubriquePage-08LTF55B.mjs.map +1 -0
  879. package/dist/RubriquePage-CCy-5tNr.mjs.map +1 -0
  880. package/dist/RubriquePage-CPZDxfSO.mjs.map +1 -0
  881. package/dist/RubriquePage-CuiSjNdT.mjs.map +1 -0
  882. package/dist/RubriquePage-D4eQhRIL.mjs.map +1 -0
  883. package/dist/RubriquePage-DB366qxe.mjs.map +1 -0
  884. package/dist/RubriquePage-DFHbwv9G.mjs.map +1 -0
  885. package/dist/RubriquePage-TE1WN6Ij.mjs +108 -0
  886. package/dist/RubriquePage-TE1WN6Ij.mjs.map +1 -0
  887. package/dist/RubriquePage-hjdDUqyU.mjs.map +1 -0
  888. package/dist/SearchPage-B8jX1vjG.mjs.map +1 -0
  889. package/dist/SearchPage-BwFLn1-g.mjs.map +1 -0
  890. package/dist/SearchPage-CPD8eLYV.mjs.map +1 -0
  891. package/dist/SearchPage-CUtOUZtw.mjs.map +1 -0
  892. package/dist/SearchPage-D21Gk42b.mjs.map +1 -0
  893. package/dist/SearchPage-DMmu7a0f.mjs +77 -0
  894. package/dist/SearchPage-DMmu7a0f.mjs.map +1 -0
  895. package/dist/SearchPage-DucZ1EKg.mjs.map +1 -0
  896. package/dist/SearchPage-DxnpnU0j.mjs.map +1 -0
  897. package/dist/SearchPage-oR9fUtW3.mjs.map +1 -0
  898. package/dist/ShareAnonymous---HePDRB.mjs.map +1 -0
  899. package/dist/ShareAnonymous-BRlQaJhi.mjs +321 -0
  900. package/dist/ShareAnonymous-BRlQaJhi.mjs.map +1 -0
  901. package/dist/ShareAnonymous-BW1VhJ2n.mjs.map +1 -0
  902. package/dist/ShareAnonymous-CsldJHoJ.mjs.map +1 -0
  903. package/dist/ShareAnonymous-DEGyPCUj.mjs.map +1 -0
  904. package/dist/ShareAnonymous-DiNPUc2X.mjs.map +1 -0
  905. package/dist/ShareAnonymous-eT0sUVWS.mjs.map +1 -0
  906. package/dist/ShareModalPlayer-BIwH-p5d.mjs.map +1 -0
  907. package/dist/ShareModalPlayer-CdUUtZ-5.mjs.map +1 -0
  908. package/dist/ShareModalPlayer-D98G_Ndx.mjs +135 -0
  909. package/dist/ShareModalPlayer-D98G_Ndx.mjs.map +1 -0
  910. package/dist/ShareModalPlayer-DANO4VOp.mjs.map +1 -0
  911. package/dist/ShareModalPlayer-DjvS43q5.mjs.map +1 -0
  912. package/dist/ShareModalPlayer-b-ZIHCWY.mjs.map +1 -0
  913. package/dist/ShareModalPlayer-o8Tnrbh1.mjs.map +1 -0
  914. package/dist/ShareNewsletter--cvmmWE0.mjs.map +1 -0
  915. package/dist/ShareNewsletter-C-clOCKi.mjs +211 -0
  916. package/dist/ShareNewsletter-C-clOCKi.mjs.map +1 -0
  917. package/dist/ShareNewsletter-CUcmJiot.mjs.map +1 -0
  918. package/dist/ShareNewsletter-Cp4-g5fA.mjs.map +1 -0
  919. package/dist/ShareNewsletter-D8_5L_AT.mjs.map +1 -0
  920. package/dist/ShareNewsletter-Je8-QirK.mjs.map +1 -0
  921. package/dist/ShareNewsletter-N55dIA_B.mjs.map +1 -0
  922. package/dist/SharePlayer-B4Ljxcx6.mjs.map +1 -0
  923. package/dist/SharePlayer-BxHten3Y.mjs.map +1 -0
  924. package/dist/SharePlayer-CD7oGqJ2.mjs.map +1 -0
  925. package/dist/SharePlayer-CE1qHkec.mjs.map +1 -0
  926. package/dist/SharePlayer-ChACZKgH.mjs +378 -0
  927. package/dist/SharePlayer-ChACZKgH.mjs.map +1 -0
  928. package/dist/SharePlayer-CltOR0Zh.mjs.map +1 -0
  929. package/dist/SharePlayer-CxoaWa3_.mjs.map +1 -0
  930. package/dist/SharePlayerRadio-BJVzAG1L.mjs.map +1 -0
  931. package/dist/SharePlayerRadio-Bixx8yFN.mjs.map +1 -0
  932. package/dist/SharePlayerRadio-CMsTpb_x.mjs.map +1 -0
  933. package/dist/SharePlayerRadio-CTMdvwN2.mjs +127 -0
  934. package/dist/SharePlayerRadio-CTMdvwN2.mjs.map +1 -0
  935. package/dist/SharePlayerRadio-DU35ed7Y.mjs.map +1 -0
  936. package/dist/SharePlayerRadio-Djz3HIfx.mjs.map +1 -0
  937. package/dist/SharePlayerRadio-Dn3ui9OK.mjs.map +1 -0
  938. package/dist/SharePlayerTypes-B7FLniHB.mjs +232 -0
  939. package/dist/SharePlayerTypes-B7FLniHB.mjs.map +1 -0
  940. package/dist/SharePlayerTypes-C8lDg7bE.mjs.map +1 -0
  941. package/dist/SharePlayerTypes-CFjDgT1d.mjs.map +1 -0
  942. package/dist/SharePlayerTypes-C_YQdJl2.mjs.map +1 -0
  943. package/dist/SharePlayerTypes-CzN4HZRH.mjs.map +1 -0
  944. package/dist/SharePlayerTypes-Dkw0Yqdu.mjs.map +1 -0
  945. package/dist/SharePlayerTypes-M9s8-uCs.mjs.map +1 -0
  946. package/dist/ShareSocialsButtons--KcYTi2-.mjs.map +1 -0
  947. package/dist/ShareSocialsButtons--haMp5t-.mjs.map +1 -0
  948. package/dist/ShareSocialsButtons-CGq1RtWh.mjs.map +1 -0
  949. package/dist/ShareSocialsButtons-DEojeSLw.mjs.map +1 -0
  950. package/dist/ShareSocialsButtons-DLb_GRG-.mjs.map +1 -0
  951. package/dist/ShareSocialsButtons-DiJVocCJ.mjs +159 -0
  952. package/dist/ShareSocialsButtons-DiJVocCJ.mjs.map +1 -0
  953. package/dist/ShareSocialsButtons-IJQ1CgrC.mjs.map +1 -0
  954. package/dist/SimpleLayout-BAZ05Zz6.mjs.map +1 -0
  955. package/dist/SimpleLayout-BDnreCwm.mjs.map +1 -0
  956. package/dist/SimpleLayout-BHNwX8pP.mjs.map +1 -0
  957. package/dist/SimpleLayout-CPmBnpo-.mjs.map +1 -0
  958. package/dist/SimpleLayout-CUVtAQSt.mjs.map +1 -0
  959. package/dist/SimpleLayout-CjDOkAVU.mjs.map +1 -0
  960. package/dist/SimpleLayout-DLEAl9OH.mjs +41 -0
  961. package/dist/SimpleLayout-DLEAl9OH.mjs.map +1 -0
  962. package/dist/SmartLinkPage-BJoMvpYI.mjs +238 -0
  963. package/dist/SmartLinkPage-BJoMvpYI.mjs.map +1 -0
  964. package/dist/SmartLinkPage-Bd0ODVRl.mjs.map +1 -0
  965. package/dist/SmartLinkPage-C_zq0_aw.mjs.map +1 -0
  966. package/dist/SmartLinkPage-D1QlrObF.mjs.map +1 -0
  967. package/dist/SmartLinkPage-Dd0BLsjZ.mjs.map +1 -0
  968. package/dist/SmartLinkPage-DfFv2Nmb.mjs.map +1 -0
  969. package/dist/SmartLinkPage-wnKKixdQ.mjs.map +1 -0
  970. package/dist/SubscribeButtons-6HA0Mk9a.mjs.map +1 -0
  971. package/dist/SubscribeButtons-B6i1IdLa.mjs.map +1 -0
  972. package/dist/SubscribeButtons-BZrXH39i.mjs.map +1 -0
  973. package/dist/SubscribeButtons-C64eSNCp.mjs.map +1 -0
  974. package/dist/SubscribeButtons-DQ5YmkQO.mjs.map +1 -0
  975. package/dist/SubscribeButtons-EUkx8pZP.mjs.map +1 -0
  976. package/dist/SubscribeButtons-Va9APuBC.mjs +203 -0
  977. package/dist/SubscribeButtons-Va9APuBC.mjs.map +1 -0
  978. package/dist/SwiperList-B20Vye8P.mjs +207 -0
  979. package/dist/SwiperList-B20Vye8P.mjs.map +1 -0
  980. package/dist/SwiperList-Bokt5AG5.mjs.map +1 -0
  981. package/dist/SwiperList-CFKov21b.mjs.map +1 -0
  982. package/dist/SwiperList-DkllmyUF.mjs.map +1 -0
  983. package/dist/SwiperList-F5w64QMB.mjs.map +1 -0
  984. package/dist/SwiperList-LZV53McU.mjs.map +1 -0
  985. package/dist/SwiperList-ek1fgcDE.mjs.map +1 -0
  986. package/dist/TagList-B4PT2uXD.mjs +134 -0
  987. package/dist/TagList-B4PT2uXD.mjs.map +1 -0
  988. package/dist/TagList-BGlKCk4Q.mjs.map +1 -0
  989. package/dist/TagList-BjCugYvL.mjs.map +1 -0
  990. package/dist/TagList-DNMyr3U9.mjs.map +1 -0
  991. package/dist/TagList-DgsYcSmt.mjs.map +1 -0
  992. package/dist/TagList-WMAlflFl.mjs.map +1 -0
  993. package/dist/TagList-aSS_8yRX.mjs.map +1 -0
  994. package/dist/TagPage-BNeE4Lhq.mjs.map +1 -0
  995. package/dist/TagPage-BUXelbn2.mjs +125 -0
  996. package/dist/TagPage-BUXelbn2.mjs.map +1 -0
  997. package/dist/TagPage-Bsc2U_3X.mjs.map +1 -0
  998. package/dist/TagPage-C2iQSROU.mjs.map +1 -0
  999. package/dist/TagPage-CgscaJP0.mjs.map +1 -0
  1000. package/dist/TagPage-DEHCzUJu.mjs.map +1 -0
  1001. package/dist/TagPage-DFQt2R7S.mjs.map +1 -0
  1002. package/dist/TagPage-DPjY0S19.mjs.map +1 -0
  1003. package/dist/TagPage-DRTznoWj.mjs.map +1 -0
  1004. package/dist/TopBar-Bg0jGbps.mjs +760 -0
  1005. package/dist/TopBar-Bg0jGbps.mjs.map +1 -0
  1006. package/dist/TopBar-Br6MU5NS.mjs.map +1 -0
  1007. package/dist/TopBar-C5xvL55I.mjs.map +1 -0
  1008. package/dist/TopBar-Ct2Wi2fl.mjs.map +1 -0
  1009. package/dist/TopBar-Ct9XAxTS.mjs.map +1 -0
  1010. package/dist/TopBar-sSswTZjE.mjs.map +1 -0
  1011. package/dist/TopBar-tJHG0wJq.mjs.map +1 -0
  1012. package/dist/UserButtonContent-CE-161kg.mjs.map +1 -0
  1013. package/dist/UserButtonContent-CPa7Icpi.mjs +185 -0
  1014. package/dist/UserButtonContent-CPa7Icpi.mjs.map +1 -0
  1015. package/dist/UserButtonContent-D4Gfs-j-.mjs.map +1 -0
  1016. package/dist/UserButtonContent-DPWKHiAu.mjs.map +1 -0
  1017. package/dist/UserButtonContent-DV8mGqxl.mjs.map +1 -0
  1018. package/dist/UserButtonContent-DoRcEYhc.mjs.map +1 -0
  1019. package/dist/UserButtonContent-Y-pBXCLI.mjs.map +1 -0
  1020. package/dist/VideoModuleBox-8vaXrEZb.mjs.map +1 -0
  1021. package/dist/VideoModuleBox-BBIipxxW.mjs.map +1 -0
  1022. package/dist/VideoModuleBox-CIZ34N35.mjs +85 -0
  1023. package/dist/VideoModuleBox-CIZ34N35.mjs.map +1 -0
  1024. package/dist/VideoModuleBox-Ckr0ogRq.mjs.map +1 -0
  1025. package/dist/VideoModuleBox-Dqiduxtz.mjs.map +1 -0
  1026. package/dist/VideoModuleBox-Gs2cRVCQ.mjs.map +1 -0
  1027. package/dist/VideoModuleBox-T3Fic5E1.mjs.map +1 -0
  1028. package/dist/VideoPage-5l2yCwzq.mjs.map +1 -0
  1029. package/dist/VideoPage-B-7n9a0w.mjs +274 -0
  1030. package/dist/VideoPage-B-7n9a0w.mjs.map +1 -0
  1031. package/dist/VideoPage-C9RjP0jZ.mjs.map +1 -0
  1032. package/dist/VideoPage-C_EGSeQr.mjs.map +1 -0
  1033. package/dist/VideoPage-Ck6UhhNl.mjs.map +1 -0
  1034. package/dist/VideoPage-CzK2E8of.mjs.map +1 -0
  1035. package/dist/VideoPage-DDW-8u0o.mjs.map +1 -0
  1036. package/dist/VideoPage-DVSiNd8a.mjs.map +1 -0
  1037. package/dist/VideoPage-Dr-rwYv9.mjs.map +1 -0
  1038. package/dist/VideoPage-Gr_u3MAh.mjs.map +1 -0
  1039. package/dist/VideoPage-w0OwVwV2.mjs.map +1 -0
  1040. package/dist/classicApi-BB-XyzeX.mjs.map +1 -0
  1041. package/dist/classicApi-BGltEbgE.mjs.map +1 -0
  1042. package/dist/classicApi-BTNeGEhM.mjs.map +1 -0
  1043. package/dist/classicApi-CaN5kdYr.mjs.map +1 -0
  1044. package/dist/classicApi-ChvwoPGT.mjs +1906 -0
  1045. package/dist/classicApi-ChvwoPGT.mjs.map +1 -0
  1046. package/dist/classicApi-CzfRsZHJ.mjs.map +1 -0
  1047. package/dist/classicApi-D1fMJl0J.mjs.map +1 -0
  1048. package/dist/downloadHelper-C64lrfkY.mjs.map +1 -0
  1049. package/dist/downloadHelper-CMi7-Uui.mjs.map +1 -0
  1050. package/dist/downloadHelper-COaLNbRP.mjs.map +1 -0
  1051. package/dist/downloadHelper-CVAsxSd_.mjs.map +1 -0
  1052. package/dist/downloadHelper-CuFfOvc0.mjs +36 -0
  1053. package/dist/downloadHelper-CuFfOvc0.mjs.map +1 -0
  1054. package/dist/downloadHelper-euySfVzt.mjs.map +1 -0
  1055. package/dist/downloadHelper-fJeVpKge.mjs.map +1 -0
  1056. package/dist/index.mjs +100 -100
  1057. package/dist/messages-BBXCgqNE.mjs.map +1 -0
  1058. package/dist/messages-BfcKCwbs.mjs.map +1 -0
  1059. package/dist/messages-C-3-wU0o.mjs +2757 -0
  1060. package/dist/messages-C-3-wU0o.mjs.map +1 -0
  1061. package/dist/messages-DFgZU_JY.mjs.map +1 -0
  1062. package/dist/messages-DI0RP16T.mjs.map +1 -0
  1063. package/dist/messages-ffqRcdFK.mjs.map +1 -0
  1064. package/dist/messages-tvu0LPPD.mjs.map +1 -0
  1065. package/dist/tests.mjs +2 -2
  1066. package/dist/useAdvancedParamInit-B0q6bEG9.mjs.map +1 -0
  1067. package/dist/useAdvancedParamInit-Bmasoyik.mjs.map +1 -0
  1068. package/dist/useAdvancedParamInit-BnHjPfDr.mjs.map +1 -0
  1069. package/dist/useAdvancedParamInit-Cqr0FvM6.mjs.map +1 -0
  1070. package/dist/useAdvancedParamInit-DpFW5LOX.mjs +162 -0
  1071. package/dist/useAdvancedParamInit-DpFW5LOX.mjs.map +1 -0
  1072. package/dist/useAdvancedParamInit-TYud_aDM.mjs.map +1 -0
  1073. package/dist/useAdvancedParamInit-TnnXwHRW.mjs.map +1 -0
  1074. package/dist/useDayjs-CK_TIXDt.mjs +32 -0
  1075. package/dist/useDayjs-CK_TIXDt.mjs.map +1 -0
  1076. package/dist/useDayjs-CXOnFQYE.mjs.map +1 -0
  1077. package/dist/useDayjs-D_JdvkuA.mjs.map +1 -0
  1078. package/dist/useDayjs-Dcl8o-f2.mjs.map +1 -0
  1079. package/dist/useDayjs-DfbYqqzw.mjs.map +1 -0
  1080. package/dist/useDayjs-DgjE7bQE.mjs.map +1 -0
  1081. package/dist/useDayjs-Qw7bsgun.mjs.map +1 -0
  1082. package/dist/useErrorHandler-B2omq-xn.mjs.map +1 -0
  1083. package/dist/useErrorHandler-BZkAkzNC.mjs +19 -0
  1084. package/dist/useErrorHandler-BZkAkzNC.mjs.map +1 -0
  1085. package/dist/useErrorHandler-BpXnCp74.mjs.map +1 -0
  1086. package/dist/useErrorHandler-Ccs5lCXK.mjs.map +1 -0
  1087. package/dist/useErrorHandler-DDjgV9tS.mjs.map +1 -0
  1088. package/dist/useErrorHandler-TP_xzyLW.mjs.map +1 -0
  1089. package/dist/useErrorHandler-hTEtFcs_.mjs.map +1 -0
  1090. package/dist/useImageProxy-B0l13vKR.mjs.map +1 -0
  1091. package/dist/useImageProxy-BCtwrFPB.mjs.map +1 -0
  1092. package/dist/useImageProxy-CFXtzue5.mjs.map +1 -0
  1093. package/dist/useImageProxy-CLgdcHCl.mjs.map +1 -0
  1094. package/dist/useImageProxy-CNYAGjLf.mjs.map +1 -0
  1095. package/dist/useImageProxy-DdK55qB4.mjs +20 -0
  1096. package/dist/useImageProxy-DdK55qB4.mjs.map +1 -0
  1097. package/dist/useImageProxy-Drr0R83A.mjs.map +1 -0
  1098. package/dist/useOrgaComputed-B07BGfc5.mjs.map +1 -0
  1099. package/dist/useOrgaComputed-CZYeUhPI.mjs.map +1 -0
  1100. package/dist/useOrgaComputed-Cvryrkbp.mjs.map +1 -0
  1101. package/dist/useOrgaComputed-D5SfqMx9.mjs +19 -0
  1102. package/dist/useOrgaComputed-D5SfqMx9.mjs.map +1 -0
  1103. package/dist/useOrgaComputed-D8Aak710.mjs.map +1 -0
  1104. package/dist/useOrgaComputed-Dcs2QQ4K.mjs.map +1 -0
  1105. package/dist/useOrgaComputed-dKPouMl1.mjs.map +1 -0
  1106. package/dist/usePlayerLogicProgress-Bb_pkMxz.mjs.map +1 -0
  1107. package/dist/usePlayerLogicProgress-BckKC1fU.mjs.map +1 -0
  1108. package/dist/usePlayerLogicProgress-C-gsD-ec.mjs +108 -0
  1109. package/dist/usePlayerLogicProgress-C-gsD-ec.mjs.map +1 -0
  1110. package/dist/usePlayerLogicProgress-DRrXB53_.mjs.map +1 -0
  1111. package/dist/usePlayerLogicProgress-KiC9MszQ.mjs.map +1 -0
  1112. package/dist/usePlayerLogicProgress-lypDuxfv.mjs.map +1 -0
  1113. package/dist/usePlayerLogicProgress-mpS1rYM1.mjs.map +1 -0
  1114. package/dist/usePodcastView-3dCNrbxq.mjs.map +1 -0
  1115. package/dist/usePodcastView-Bxbpf2Aj.mjs.map +1 -0
  1116. package/dist/usePodcastView-C4Ak6N5U.mjs.map +1 -0
  1117. package/dist/usePodcastView-CWnGApRW.mjs.map +1 -0
  1118. package/dist/usePodcastView-Cm6ruTDT.mjs.map +1 -0
  1119. package/dist/usePodcastView-DlzuYDsj.mjs +56 -0
  1120. package/dist/usePodcastView-DlzuYDsj.mjs.map +1 -0
  1121. package/dist/usePodcastView-_Gt7IKys.mjs.map +1 -0
  1122. package/dist/usePresentationItem-1wOfXOdb.mjs.map +1 -0
  1123. package/dist/usePresentationItem-BIoivvjV.mjs.map +1 -0
  1124. package/dist/usePresentationItem-BkAS8Vr0.mjs.map +1 -0
  1125. package/dist/usePresentationItem-CUGbjF4i.mjs +190 -0
  1126. package/dist/usePresentationItem-CUGbjF4i.mjs.map +1 -0
  1127. package/dist/usePresentationItem-D5rbUsCh.mjs.map +1 -0
  1128. package/dist/usePresentationItem-Dq1BLr6j.mjs.map +1 -0
  1129. package/dist/usePresentationItem-Dww8g4Vm.mjs.map +1 -0
  1130. package/dist/useRights-2iW8A6VG.mjs.map +1 -0
  1131. package/dist/useRights-Bh8pPIIT.mjs.map +1 -0
  1132. package/dist/useRights-C0SGDVHr.mjs.map +1 -0
  1133. package/dist/useRights-C_1sfdF_.mjs.map +1 -0
  1134. package/dist/useRights-ChjlGASZ.mjs.map +1 -0
  1135. package/dist/useRights-DNL2VJUc.mjs +276 -0
  1136. package/dist/useRights-DNL2VJUc.mjs.map +1 -0
  1137. package/dist/useRights-DeR0K7I4.mjs.map +1 -0
  1138. package/dist/useRubriquesFilterComputed-BORLAh8s.mjs.map +1 -0
  1139. package/dist/useRubriquesFilterComputed-CC3kqtFK.mjs.map +1 -0
  1140. package/dist/useRubriquesFilterComputed-CKezlYVc.mjs.map +1 -0
  1141. package/dist/useRubriquesFilterComputed-DHNQz04L.mjs.map +1 -0
  1142. package/dist/useRubriquesFilterComputed-DWgN-E8P.mjs.map +1 -0
  1143. package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs +13 -0
  1144. package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs.map +1 -0
  1145. package/dist/useRubriquesFilterComputed-NQGEdYXb.mjs.map +1 -0
  1146. package/dist/useRubriquesFilterParam-BGBTXNIe.mjs.map +1 -0
  1147. package/dist/useRubriquesFilterParam-BbLPbrFy.mjs.map +1 -0
  1148. package/dist/useRubriquesFilterParam-BjMqOyMg.mjs.map +1 -0
  1149. package/dist/useRubriquesFilterParam-BrWFpJhb.mjs +36 -0
  1150. package/dist/useRubriquesFilterParam-BrWFpJhb.mjs.map +1 -0
  1151. package/dist/useRubriquesFilterParam-DwnlkS0K.mjs.map +1 -0
  1152. package/dist/useRubriquesFilterParam-YXdzWQqQ.mjs.map +1 -0
  1153. package/dist/useRubriquesFilterParam-r0AJqZsJ.mjs.map +1 -0
  1154. package/dist/useSharePlatforms-BqPO-hyZ.mjs +468 -0
  1155. package/dist/useSharePlatforms-BqPO-hyZ.mjs.map +1 -0
  1156. package/dist/useSharePlatforms-CP7lHEZ0.mjs.map +1 -0
  1157. package/dist/useSharePlatforms-C_EB_xsb.mjs.map +1 -0
  1158. package/dist/useSharePlatforms-CcG4_k68.mjs.map +1 -0
  1159. package/dist/useSharePlatforms-CgGpSSII.mjs.map +1 -0
  1160. package/dist/useSharePlatforms-CrHyAS2m.mjs.map +1 -0
  1161. package/dist/useSharePlatforms-D81_zd1r.mjs.map +1 -0
  1162. package/dist/useSimplePageParam-9ps_YIpq.mjs.map +1 -0
  1163. package/dist/useSimplePageParam-ByeUUq4Z.mjs +54 -0
  1164. package/dist/useSimplePageParam-ByeUUq4Z.mjs.map +1 -0
  1165. package/dist/useSimplePageParam-C4qdDtdw.mjs.map +1 -0
  1166. package/dist/useSimplePageParam-COisq-R3.mjs.map +1 -0
  1167. package/dist/useSimplePageParam-DT1XPwfb.mjs.map +1 -0
  1168. package/dist/useSimplePageParam-DZIpRJUc.mjs.map +1 -0
  1169. package/dist/useSimplePageParam-Dw3p3GCC.mjs.map +1 -0
  1170. package/dist/useTranslation-BPLqy26U.mjs.map +1 -0
  1171. package/dist/useTranslation-C4rvyoXK.mjs.map +1 -0
  1172. package/dist/useTranslation-C8Dy1ma7.mjs.map +1 -0
  1173. package/dist/useTranslation-CLkN3q6e.mjs.map +1 -0
  1174. package/dist/useTranslation-COKe4d2D.mjs.map +1 -0
  1175. package/dist/useTranslation-Dsw1HxX9.mjs +205 -0
  1176. package/dist/useTranslation-Dsw1HxX9.mjs.map +1 -0
  1177. package/dist/useTranslation-kKZZLtgm.mjs.map +1 -0
  1178. package/dist/usefetchRadioData-3E5_FJJM.mjs +55 -0
  1179. package/dist/usefetchRadioData-3E5_FJJM.mjs.map +1 -0
  1180. package/dist/usefetchRadioData-B5vQJGHp.mjs.map +1 -0
  1181. package/dist/usefetchRadioData-Cb6piM3h.mjs.map +1 -0
  1182. package/dist/usefetchRadioData-Ch_otD17.mjs.map +1 -0
  1183. package/dist/usefetchRadioData-D5WFrvWd.mjs.map +1 -0
  1184. package/dist/usefetchRadioData-lhw_qPJh.mjs.map +1 -0
  1185. package/dist/usefetchRadioData-qr9F-158.mjs.map +1 -0
  1186. package/package.json +1 -1
  1187. package/src/components/display/podcasts/PodcastModuleBox.vue +293 -252
  1188. package/src/components/form/ClassicWysiwyg.vue +2 -4
  1189. package/src/components/misc/FooterSection.vue +3 -1
  1190. package/src/locale/de.json +3 -1
  1191. package/src/locale/en.json +3 -1
  1192. package/src/locale/es.json +3 -1
  1193. package/src/locale/fr.json +3 -0
  1194. package/src/locale/it.json +3 -1
  1195. package/src/locale/sl.json +3 -1
  1196. package/tests/components/display/podcasts/PodcastModuleBox.spec.ts +68 -0
  1197. package/dist/AdvancedSearch-C__BZuJX.mjs +0 -429
  1198. package/dist/CategoryFilter-DRXTrqyR.mjs +0 -237
  1199. package/dist/CategoryList-BeBPhibG.mjs +0 -182
  1200. package/dist/CategoryPage-CsabctRT.mjs +0 -57
  1201. package/dist/ChapteringModal-BCPmvaRT.mjs +0 -82
  1202. package/dist/CheckIdentityModal-fNecycn-.mjs +0 -86
  1203. package/dist/ClassicAlert-dYigdfoZ.mjs +0 -85
  1204. package/dist/ClassicInputText-B7EAwP2N.mjs +0 -371
  1205. package/dist/ClassicWysiwyg-BKq8ExjM.mjs +0 -230
  1206. package/dist/ClipboardModal-Bd_hrJu_.mjs +0 -84
  1207. package/dist/CommentBasicView-bNaLVdjT.mjs +0 -129
  1208. package/dist/CommentInput-B7qnp3is.mjs +0 -186
  1209. package/dist/CommentItem-DDCavfx_.mjs +0 -232
  1210. package/dist/CommentList-BbEaau4S.mjs +0 -302
  1211. package/dist/CommentMoreActions-CB8419fO.mjs +0 -286
  1212. package/dist/CommentName-DFzxl7mU.mjs +0 -96
  1213. package/dist/CommentParentInfo-BDSceNbu.mjs +0 -64
  1214. package/dist/CommentPlayer-D_cgM4oc.mjs +0 -86
  1215. package/dist/CommentSection-CfhzLqZE.mjs +0 -141
  1216. package/dist/CommentStore-DAa7RQ_3.mjs +0 -355
  1217. package/dist/ContractPreviewModal-CC3KTcFM.mjs +0 -101
  1218. package/dist/DownloadPodcastButton-DdWnV_YZ.mjs +0 -53
  1219. package/dist/EditCommentModal-7vDcLEPD.mjs +0 -162
  1220. package/dist/EmissionGroupChooser-ZJLNTZLc.mjs +0 -82
  1221. package/dist/EmissionInlineList-JQp7JC97.mjs +0 -188
  1222. package/dist/EmissionItem-9HFaHgWp.mjs +0 -183
  1223. package/dist/EmissionList-Clu9bigG.mjs +0 -325
  1224. package/dist/EmissionPage-DX_2HI0y.mjs +0 -322
  1225. package/dist/EmissionPlayerItem-C8IKeJ7q.mjs +0 -167
  1226. package/dist/EmissionPresentationItem-CmxIvauh.mjs +0 -78
  1227. package/dist/EmissionPresentationList-CIx49QaD.mjs +0 -125
  1228. package/dist/EmissionsPage-CxLXKG5S.mjs +0 -199
  1229. package/dist/Error403Page-DARTxoEK.mjs +0 -69
  1230. package/dist/ErrorMessage-DhSwu9H_.mjs +0 -44
  1231. package/dist/FooterGarSection-IH0ADl_V.mjs +0 -71
  1232. package/dist/FooterSection-r3Ehg0kp.mjs +0 -238
  1233. package/dist/HomeDropdown-B9Hg49uX.mjs +0 -110
  1234. package/dist/HomePage-C3t8bQ4X.mjs +0 -166
  1235. package/dist/LikeSection-KEHYZ6eH.mjs +0 -167
  1236. package/dist/ListPaginate-Dd3eeyMI.mjs +0 -202
  1237. package/dist/LiveHorizontalList-CiyK7eIx.mjs +0 -136
  1238. package/dist/LiveList-DnEolyFx.mjs +0 -324
  1239. package/dist/LivesPage-BjOGZLj4.mjs +0 -76
  1240. package/dist/MapPage-BO2h6OPn.mjs +0 -303
  1241. package/dist/MobileMenu-DzyIn4Ww.mjs +0 -187
  1242. package/dist/NewsletterModal-MVu7IC0K.mjs +0 -82
  1243. package/dist/OrganisationChooser-BZnwu6PU.mjs +0 -190
  1244. package/dist/OrganisationChooserLight-DtC9SY2k.mjs +0 -84
  1245. package/dist/PageNotFound-XkbxiC3R.mjs +0 -58
  1246. package/dist/ParticipantInlineList-D13FKP63.mjs +0 -117
  1247. package/dist/ParticipantItem-NaOJtacr.mjs +0 -138
  1248. package/dist/ParticipantPage-CVDQ4I-p.mjs +0 -203
  1249. package/dist/ParticipantsPage-CxDl6EWr.mjs +0 -262
  1250. package/dist/PlayerAnonymousModal-DstBQ-Zs.mjs +0 -84
  1251. package/dist/PlayerCompact-DgsZttBX.mjs +0 -209
  1252. package/dist/PlayerComponent-BDJQLPcs.mjs +0 -929
  1253. package/dist/PlayerLarge-CubFsFCt.mjs +0 -190
  1254. package/dist/PlayerPlayButton-DQBkOGod.mjs +0 -400
  1255. package/dist/PlayerProgressBar-AhqJPkUk.mjs +0 -86
  1256. package/dist/PlayerStore-S4mFfJ75.mjs +0 -230
  1257. package/dist/PlayerVideo-D-TYPaLL.mjs +0 -72
  1258. package/dist/PlayerVideoDigiteka-DMC8L6Mz.mjs +0 -102
  1259. package/dist/PlayerVideoHls-VFKtt3Qx.mjs +0 -232
  1260. package/dist/PlaylistPage-BrZuaX3e.mjs +0 -228
  1261. package/dist/PlaylistsPage-CAaiC48j.mjs +0 -395
  1262. package/dist/PodcastFilterList-YdyFX695.mjs +0 -254
  1263. package/dist/PodcastImage-CF7D3Alx.mjs +0 -174
  1264. package/dist/PodcastInlineList-C_dvAa4O.mjs +0 -138
  1265. package/dist/PodcastInlineListTemplate-DpveKzmq.mjs +0 -233
  1266. package/dist/PodcastIsPlaying-Dx_XNjz4.mjs +0 -30
  1267. package/dist/PodcastItem-C5U2vYiX.mjs +0 -287
  1268. package/dist/PodcastList-BHOJTVqP.mjs +0 -182
  1269. package/dist/PodcastList-Dkh7Kahu.mjs +0 -330
  1270. package/dist/PodcastPage-CTwEe_n7.mjs +0 -725
  1271. package/dist/PodcastPlayBar-BafidGw3.mjs +0 -83
  1272. package/dist/PodcastPlayBasicButton-DqomjSS_.mjs +0 -72
  1273. package/dist/PodcastPlayButton--X67hSEO.mjs +0 -236
  1274. package/dist/PodcastPlaylistInlineList-Csf1PwTQ.mjs +0 -115
  1275. package/dist/PodcastPresentationList-DSQebLtP.mjs +0 -200
  1276. package/dist/PodcastProgressBar-BoRBxgPF.mjs +0 -98
  1277. package/dist/PodcastRawTranscript-HOcGzqam.mjs +0 -184
  1278. package/dist/PodcastRubriqueList-C6IUkNSJ.mjs +0 -83
  1279. package/dist/PodcastSwiperList-B6Rb4sb3.mjs +0 -219
  1280. package/dist/PodcastmakerHeader-SuHA7pwQ.mjs +0 -58
  1281. package/dist/PodcastsPage-BA8vFVBZ.mjs +0 -217
  1282. package/dist/ProductorSearch-DXwssvrx.mjs +0 -161
  1283. package/dist/ProgressBar-BPdSp8k3.mjs +0 -158
  1284. package/dist/QrCode-DIUhV-JI.mjs +0 -177
  1285. package/dist/QrCodeModal-DsqDbf2S.mjs +0 -64
  1286. package/dist/RadioCurrently-2uhupYt4.mjs +0 -112
  1287. package/dist/RadioHistory-7HK9VIXU.mjs +0 -139
  1288. package/dist/RadioImage-DgrrJqhi.mjs +0 -85
  1289. package/dist/RadioList-5WLGZn1M.mjs +0 -125
  1290. package/dist/RadioPage-BLrZ2cZQ.mjs +0 -137
  1291. package/dist/RadioPlanning-CMSEqOnd.mjs +0 -290
  1292. package/dist/RadioProgressBar-imph2EDe.mjs +0 -67
  1293. package/dist/RecaptchaModal-CxDPhjIv.mjs +0 -148
  1294. package/dist/ReportAbuseModal-Cn4dKNYU.mjs +0 -134
  1295. package/dist/RightsIndicator-DMZt2V0j.mjs +0 -124
  1296. package/dist/RightsWrapper-CH6QzSWu.mjs +0 -212
  1297. package/dist/RubriqueFilter-BIBa9NNw.mjs +0 -199
  1298. package/dist/RubriqueList-7NFIBpzM.mjs +0 -206
  1299. package/dist/RubriquePage-Dh4NUQ2M.mjs +0 -108
  1300. package/dist/SearchPage-nupT1-eH.mjs +0 -77
  1301. package/dist/ShareAnonymous-BmIwbMz_.mjs +0 -321
  1302. package/dist/ShareModalPlayer-CKQAlhfC.mjs +0 -135
  1303. package/dist/ShareNewsletter-YyZJPmj3.mjs +0 -211
  1304. package/dist/SharePlayer-B-8165rs.mjs +0 -378
  1305. package/dist/SharePlayerRadio-CqLsQYYx.mjs +0 -127
  1306. package/dist/SharePlayerTypes-Bt2LQhZe.mjs +0 -232
  1307. package/dist/ShareSocialsButtons-CZtpG1zL.mjs +0 -159
  1308. package/dist/SimpleLayout-TPl5v_-v.mjs +0 -41
  1309. package/dist/SmartLinkPage-DsLBvlOf.mjs +0 -238
  1310. package/dist/SubscribeButtons-DTu2q9nM.mjs +0 -203
  1311. package/dist/SwiperList-DkzjytBq.mjs +0 -207
  1312. package/dist/TagList-CZwg6-Wl.mjs +0 -134
  1313. package/dist/TagPage-DX0T8dNu.mjs +0 -125
  1314. package/dist/TopBar-BshQ_eFb.mjs +0 -760
  1315. package/dist/UserButtonContent-BwvIN_8j.mjs +0 -185
  1316. package/dist/VideoModuleBox-CYxZFZQV.mjs +0 -85
  1317. package/dist/VideoPage-B1udtWP7.mjs +0 -274
  1318. package/dist/classicApi-DpwVUC0E.mjs +0 -1906
  1319. package/dist/downloadHelper-DNFvCWE7.mjs +0 -36
  1320. package/dist/messages-DxAfPLH1.mjs +0 -2745
  1321. package/dist/useAdvancedParamInit-XK-FI81b.mjs +0 -162
  1322. package/dist/useDayjs-CD7LNHpM.mjs +0 -32
  1323. package/dist/useErrorHandler-DpcjkDh_.mjs +0 -19
  1324. package/dist/useImageProxy-DI8RhM5W.mjs +0 -20
  1325. package/dist/useOrgaComputed-Cv6ZE0fR.mjs +0 -19
  1326. package/dist/usePlayerLogicProgress-DJXygp1R.mjs +0 -108
  1327. package/dist/usePodcastView-AB8-AjDO.mjs +0 -56
  1328. package/dist/usePresentationItem-BSIM0LPe.mjs +0 -190
  1329. package/dist/useRights-9acWcTMy.mjs +0 -276
  1330. package/dist/useRubriquesFilterComputed-Hr6ZScZJ.mjs +0 -13
  1331. package/dist/useRubriquesFilterParam-CHOhIyzc.mjs +0 -36
  1332. package/dist/useSharePlatforms-BS51_Mgp.mjs +0 -468
  1333. package/dist/useSimplePageParam-CWi9AKl0.mjs +0 -54
  1334. package/dist/useTranslation-Bw07I8Rj.mjs +0 -205
  1335. package/dist/usefetchRadioData-CoAFZngO.mjs +0 -55
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartLinkPage-Dd0BLsjZ.mjs","names":[],"sources":["../src/components/pages/SmartLinkPage.vue","../src/components/pages/SmartLinkPage.vue"],"sourcesContent":["<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n","<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartLinkPage-DfFv2Nmb.mjs","names":[],"sources":["../src/components/pages/SmartLinkPage.vue","../src/components/pages/SmartLinkPage.vue"],"sourcesContent":["<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n","<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartLinkPage-wnKKixdQ.mjs","names":[],"sources":["../src/components/pages/SmartLinkPage.vue","../src/components/pages/SmartLinkPage.vue"],"sourcesContent":["<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n","<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeButtons-6HA0Mk9a.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeButtons-B6i1IdLa.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeButtons-BZrXH39i.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeButtons-C64eSNCp.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeButtons-DQ5YmkQO.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeButtons-EUkx8pZP.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}