@saooti/octopus-sdk 42.2.1 → 42.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/dist/{AdvancedSearch-fO5eaqLJ.mjs → AdvancedSearch-C4segSRv.mjs} +6 -6
  2. package/dist/AdvancedSearch-C4segSRv.mjs.map +1 -0
  3. package/dist/AdvancedSearch-DD9tnLCw.mjs.map +1 -0
  4. package/dist/{CategoryFilter-Cu2a0YE9.mjs → CategoryFilter-CpplEC8n.mjs} +5 -5
  5. package/dist/CategoryFilter-CpplEC8n.mjs.map +1 -0
  6. package/dist/CategoryFilter-cbQR_ySd.mjs.map +1 -0
  7. package/dist/{CategoryList-DkxZDrO5.mjs → CategoryList-BTabY3vQ.mjs} +2 -2
  8. package/dist/CategoryList-BTabY3vQ.mjs.map +1 -0
  9. package/dist/CategoryList-DHEJoaez.mjs.map +1 -0
  10. package/dist/CategoryPage-BbsCC3Wr.mjs.map +1 -0
  11. package/dist/CategoryPage-BxvUmThb.mjs.map +1 -0
  12. package/dist/{CategoryPage-3HFz1i7_.mjs → CategoryPage-D755GvQZ.mjs} +3 -3
  13. package/dist/CategoryPage-D755GvQZ.mjs.map +1 -0
  14. package/dist/CategoryPage-DDBJ2krs.mjs.map +1 -0
  15. package/dist/CategoryPage-DRCYjOqG.mjs.map +1 -0
  16. package/dist/ChapteringModal-CSQqCWIk.mjs.map +1 -0
  17. package/dist/ChapteringModal-Dt8Rsauh.mjs.map +1 -0
  18. package/dist/{ChapteringModal-C-rdkbSz.mjs → ChapteringModal-ei6ZqVJU.mjs} +2 -2
  19. package/dist/ChapteringModal-ei6ZqVJU.mjs.map +1 -0
  20. package/dist/CheckIdentityModal-CNFVJVB_.mjs.map +1 -0
  21. package/dist/{CheckIdentityModal-N9h8yvhC.mjs → CheckIdentityModal-cpMOuJGv.mjs} +3 -3
  22. package/dist/CheckIdentityModal-cpMOuJGv.mjs.map +1 -0
  23. package/dist/ClipboardModal-2ZGF38VB.mjs.map +1 -0
  24. package/dist/{ClipboardModal-CnieIOJr.mjs → ClipboardModal-DzCUqSph.mjs} +2 -2
  25. package/dist/ClipboardModal-DzCUqSph.mjs.map +1 -0
  26. package/dist/CommentInput-CV46HJN8.mjs.map +1 -0
  27. package/dist/{CommentInput-CEioyN7X.mjs → CommentInput-D_p03L68.mjs} +6 -6
  28. package/dist/CommentInput-D_p03L68.mjs.map +1 -0
  29. package/dist/CommentInput-DwRbD74k.mjs.map +1 -0
  30. package/dist/CommentItem-B6_XUaFR.mjs.map +1 -0
  31. package/dist/CommentItem-CbbmwVXB.mjs.map +1 -0
  32. package/dist/CommentItem-DfKKazY0.mjs.map +1 -0
  33. package/dist/CommentItem-JRjSLmui.mjs.map +1 -0
  34. package/dist/{CommentItem-BefuRoxQ.mjs → CommentItem-MFN0JNW1.mjs} +8 -8
  35. package/dist/CommentItem-MFN0JNW1.mjs.map +1 -0
  36. package/dist/{CommentList-BsPwzqkf.mjs → CommentList-BkKy5ftL.mjs} +3 -3
  37. package/dist/CommentList-BkKy5ftL.mjs.map +1 -0
  38. package/dist/CommentList-BrP71Ug4.mjs.map +1 -0
  39. package/dist/CommentList-Ng_YXr74.mjs.map +1 -0
  40. package/dist/CommentList-tKA7NFHM.mjs.map +1 -0
  41. package/dist/CommentList-yarlxaXg.mjs.map +1 -0
  42. package/dist/{CommentMoreActions-C86aqy8M.mjs → CommentMoreActions-CBSvuOGJ.mjs} +5 -5
  43. package/dist/CommentMoreActions-CBSvuOGJ.mjs.map +1 -0
  44. package/dist/CommentMoreActions-D7guBdA7.mjs.map +1 -0
  45. package/dist/CommentName-frCHmngc.mjs.map +1 -0
  46. package/dist/{CommentName-DT1QyPi3.mjs → CommentName-zTMSdG4d.mjs} +3 -3
  47. package/dist/CommentName-zTMSdG4d.mjs.map +1 -0
  48. package/dist/{CommentParentInfo-9Fe-3e6c.mjs → CommentParentInfo-CRTYPb8P.mjs} +2 -2
  49. package/dist/CommentParentInfo-CRTYPb8P.mjs.map +1 -0
  50. package/dist/CommentParentInfo-D8qquB6k.mjs.map +1 -0
  51. package/dist/CommentParentInfo-DC4Q6wNO.mjs.map +1 -0
  52. package/dist/CommentParentInfo-temUvqNv.mjs.map +1 -0
  53. package/dist/{CommentPlayer-CiWQM64Y.mjs → CommentPlayer-BMuLmZdI.mjs} +3 -3
  54. package/dist/CommentPlayer-BMuLmZdI.mjs.map +1 -0
  55. package/dist/CommentPlayer-BPA_lEoE.mjs.map +1 -0
  56. package/dist/CommentPlayer-CUNi1Lxv.mjs.map +1 -0
  57. package/dist/{CommentSection-Be38YIkC.mjs → CommentSection-B91sHMDT.mjs} +5 -5
  58. package/dist/CommentSection-B91sHMDT.mjs.map +1 -0
  59. package/dist/CommentSection-CpYd7i8U.mjs.map +1 -0
  60. package/dist/CommentSection-CrqweNX4.mjs.map +1 -0
  61. package/dist/CommentSection-G8rMWPrM.mjs.map +1 -0
  62. package/dist/CommentSection-xjY6h7nn.mjs.map +1 -0
  63. package/dist/CommentStore-9WWuGwIj.mjs.map +1 -0
  64. package/dist/{CommentStore-Dv7j94Uo.mjs → CommentStore-ClU882RI.mjs} +2 -2
  65. package/dist/CommentStore-ClU882RI.mjs.map +1 -0
  66. package/dist/ContractPreviewModal-C4_20E99.mjs.map +1 -0
  67. package/dist/{ContractPreviewModal-CPT6bDpJ.mjs → ContractPreviewModal-Dn5MeLFo.mjs} +2 -2
  68. package/dist/ContractPreviewModal-Dn5MeLFo.mjs.map +1 -0
  69. package/dist/{DownloadPodcastButton-6D8qNAkT.mjs → DownloadPodcastButton-BI_sZWcJ.mjs} +3 -3
  70. package/dist/DownloadPodcastButton-BI_sZWcJ.mjs.map +1 -0
  71. package/dist/DownloadPodcastButton-CSRcg8Nl.mjs.map +1 -0
  72. package/dist/EditCommentModal-KAP1l9RK.mjs.map +1 -0
  73. package/dist/{EditCommentModal-aAcjhc0v.mjs → EditCommentModal-RbVMVDOp.mjs} +2 -2
  74. package/dist/EditCommentModal-RbVMVDOp.mjs.map +1 -0
  75. package/dist/{EmissionGroupChooser-Djt1IZg7.mjs → EmissionGroupChooser-BXqM4iXP.mjs} +2 -2
  76. package/dist/EmissionGroupChooser-BXqM4iXP.mjs.map +1 -0
  77. package/dist/EmissionGroupChooser-CO1WBOUi.mjs.map +1 -0
  78. package/dist/EmissionInlineList-B-r4eI3D.mjs.map +1 -0
  79. package/dist/{EmissionInlineList-BcrKpW8S.mjs → EmissionInlineList-Cy1lbYKY.mjs} +6 -6
  80. package/dist/EmissionInlineList-Cy1lbYKY.mjs.map +1 -0
  81. package/dist/EmissionInlineList-IKPyjBTQ.mjs.map +1 -0
  82. package/dist/EmissionItem-982WkWkg.mjs.map +1 -0
  83. package/dist/EmissionItem-B8q9hnN5.mjs.map +1 -0
  84. package/dist/{EmissionItem-DfkPRcPz.mjs → EmissionItem-BwXm3nNx.mjs} +5 -5
  85. package/dist/EmissionItem-BwXm3nNx.mjs.map +1 -0
  86. package/dist/EmissionItem-ZDlQ7B9S.mjs.map +1 -0
  87. package/dist/{EmissionList-DSuGp0JO.mjs → EmissionList-C8OxrndH.mjs} +6 -6
  88. package/dist/EmissionList-C8OxrndH.mjs.map +1 -0
  89. package/dist/EmissionList-C9-UUWMV.mjs.map +1 -0
  90. package/dist/EmissionList-Dk9xS4s_.mjs.map +1 -0
  91. package/dist/EmissionList-nrY7ASws.mjs.map +1 -0
  92. package/dist/EmissionList-vH4NX1NW.mjs.map +1 -0
  93. package/dist/EmissionPage-BHAPlZw-.mjs.map +1 -0
  94. package/dist/EmissionPage-B_2JalGG.mjs.map +1 -0
  95. package/dist/EmissionPage-D4PjyZzN.mjs.map +1 -0
  96. package/dist/EmissionPage-HGPCRuZD.mjs.map +1 -0
  97. package/dist/{EmissionPage-Bo9fK8HE.mjs → EmissionPage-nCNIiWCo.mjs} +25 -18
  98. package/dist/EmissionPage-nCNIiWCo.mjs.map +1 -0
  99. package/dist/EmissionPlayerItem-B_wRzikv.mjs.map +1 -0
  100. package/dist/{EmissionPlayerItem-D21OrPmm.mjs → EmissionPlayerItem-Degbnz9F.mjs} +5 -5
  101. package/dist/EmissionPlayerItem-Degbnz9F.mjs.map +1 -0
  102. package/dist/EmissionPlayerItem-Dkd0o1ee.mjs.map +1 -0
  103. package/dist/EmissionPresentationItem-BQ7HhOlC.mjs.map +1 -0
  104. package/dist/{EmissionPresentationItem-CwDIBurH.mjs → EmissionPresentationItem-CwBGPIgz.mjs} +2 -2
  105. package/dist/EmissionPresentationItem-CwBGPIgz.mjs.map +1 -0
  106. package/dist/{EmissionPresentationList-CASI5laP.mjs → EmissionPresentationList-BKI5mQdw.mjs} +4 -4
  107. package/dist/EmissionPresentationList-BKI5mQdw.mjs.map +1 -0
  108. package/dist/EmissionPresentationList-CLli23rs.mjs.map +1 -0
  109. package/dist/EmissionsPage-CO2xgVOR.mjs.map +1 -0
  110. package/dist/{EmissionsPage-Bw8Qtzlk.mjs → EmissionsPage-Cj7su56Z.mjs} +5 -5
  111. package/dist/EmissionsPage-Cj7su56Z.mjs.map +1 -0
  112. package/dist/EmissionsPage-DJdy0re_.mjs.map +1 -0
  113. package/dist/EmissionsPage-DR9r7_gH.mjs.map +1 -0
  114. package/dist/EmissionsPage-OVNfLKFu.mjs.map +1 -0
  115. package/dist/Error403Page-Ch535DfU.mjs.map +1 -0
  116. package/dist/{Error403Page-nTYCHwTi.mjs → Error403Page-DW2kK8ZZ.mjs} +2 -2
  117. package/dist/Error403Page-DW2kK8ZZ.mjs.map +1 -0
  118. package/dist/FooterGarSection-B76j-WZS.mjs.map +1 -0
  119. package/dist/{FooterGarSection-Cod8Key5.mjs → FooterGarSection-DVdF5RFq.mjs} +4 -4
  120. package/dist/FooterGarSection-DVdF5RFq.mjs.map +1 -0
  121. package/dist/FooterSection-BQiO-D1p.mjs.map +1 -0
  122. package/dist/{FooterSection-4WXBZj7c.mjs → FooterSection-CpYI9OGH.mjs} +5 -5
  123. package/dist/FooterSection-CpYI9OGH.mjs.map +1 -0
  124. package/dist/{HomeDropdown-CVe7yF6Y.mjs → HomeDropdown-D7FezAO8.mjs} +3 -3
  125. package/dist/HomeDropdown-D7FezAO8.mjs.map +1 -0
  126. package/dist/HomeDropdown-DQoMvBgU.mjs.map +1 -0
  127. package/dist/HomePage-BWs_az04.mjs.map +1 -0
  128. package/dist/HomePage-CMPKjRFA.mjs.map +1 -0
  129. package/dist/HomePage-CsXaeTCW.mjs.map +1 -0
  130. package/dist/HomePage-NH7OxpA_.mjs.map +1 -0
  131. package/dist/{HomePage-DupmOw6F.mjs → HomePage-vo6At2bL.mjs} +4 -4
  132. package/dist/HomePage-vo6At2bL.mjs.map +1 -0
  133. package/dist/{PodcastRubriqueList-BeTq7IRu.mjs → InlineRubriqueList-3ZVN9GJk.mjs} +14 -12
  134. package/dist/InlineRubriqueList-3ZVN9GJk.mjs.map +1 -0
  135. package/dist/InlineRubriqueList-D03VCzg8.mjs.map +1 -0
  136. package/dist/LikeSection-DtthHZj6.mjs.map +1 -0
  137. package/dist/{LikeSection-DAid96g9.mjs → LikeSection-jKjhnj88.mjs} +4 -4
  138. package/dist/LikeSection-jKjhnj88.mjs.map +1 -0
  139. package/dist/{ListPaginate-C9saxru9.mjs → ListPaginate-BXNnw_I8.mjs} +3 -3
  140. package/dist/ListPaginate-BXNnw_I8.mjs.map +1 -0
  141. package/dist/ListPaginate-COsL4t78.mjs.map +1 -0
  142. package/dist/ListPaginate-JuC0L113.mjs.map +1 -0
  143. package/dist/LiveHorizontalList-CFs9mGYs.mjs.map +1 -0
  144. package/dist/LiveHorizontalList-CWBQkS78.mjs.map +1 -0
  145. package/dist/LiveHorizontalList-DwPVmnvH.mjs.map +1 -0
  146. package/dist/LiveHorizontalList-jducN58c.mjs.map +1 -0
  147. package/dist/{LiveHorizontalList-OArlzudf.mjs → LiveHorizontalList-wgXkgFLv.mjs} +4 -4
  148. package/dist/LiveHorizontalList-wgXkgFLv.mjs.map +1 -0
  149. package/dist/LiveList-Bp-feBp9.mjs.map +1 -0
  150. package/dist/LiveList-ByyCyWUl.mjs.map +1 -0
  151. package/dist/{LiveList-EqIo_cye.mjs → LiveList-CA5n6VeN.mjs} +6 -6
  152. package/dist/LiveList-CA5n6VeN.mjs.map +1 -0
  153. package/dist/LiveList-Cah5VFun.mjs.map +1 -0
  154. package/dist/LiveList-DTAnN32j.mjs.map +1 -0
  155. package/dist/LivesPage-CNPMz3xS.mjs.map +1 -0
  156. package/dist/{LivesPage-BmHiBN8A.mjs → LivesPage-CTjXgU-Y.mjs} +5 -5
  157. package/dist/LivesPage-CTjXgU-Y.mjs.map +1 -0
  158. package/dist/LivesPage-CdhWyikV.mjs.map +1 -0
  159. package/dist/LivesPage-CwvFSl6G.mjs.map +1 -0
  160. package/dist/LivesPage-DyIfBEPX.mjs.map +1 -0
  161. package/dist/{MapPage-DcXKTGGh.mjs → MapPage-C_nGG0_5.mjs} +3 -3
  162. package/dist/MapPage-C_nGG0_5.mjs.map +1 -0
  163. package/dist/MapPage-DXV40zWN.mjs.map +1 -0
  164. package/dist/{MobileMenu-C0IYBWwF.mjs → MobileMenu-C95GAIm0.mjs} +4 -4
  165. package/dist/MobileMenu-C95GAIm0.mjs.map +1 -0
  166. package/dist/MobileMenu-CfHqWqsL.mjs.map +1 -0
  167. package/dist/NewsletterModal-4Lei4Y59.mjs.map +1 -0
  168. package/dist/{NewsletterModal-BzlUlz3P.mjs → NewsletterModal-B6ky7DBC.mjs} +2 -2
  169. package/dist/NewsletterModal-B6ky7DBC.mjs.map +1 -0
  170. package/dist/OrganisationChooser-BufDZsSd.mjs.map +1 -0
  171. package/dist/{OrganisationChooser-Bm4zqqCH.mjs → OrganisationChooser-CA0_LiTH.mjs} +3 -3
  172. package/dist/OrganisationChooser-CA0_LiTH.mjs.map +1 -0
  173. package/dist/{OrganisationChooserLight-BQ9B91mO.mjs → OrganisationChooserLight-BwG5mNdW.mjs} +2 -2
  174. package/dist/OrganisationChooserLight-BwG5mNdW.mjs.map +1 -0
  175. package/dist/OrganisationChooserLight-C2oGlc9Z.mjs.map +1 -0
  176. package/dist/{PageNotFound-BVQ8M8sO.mjs → PageNotFound-BHpjyNDo.mjs} +3 -3
  177. package/dist/PageNotFound-BHpjyNDo.mjs.map +1 -0
  178. package/dist/PageNotFound-IMnfLZqX.mjs.map +1 -0
  179. package/dist/{ParticipantInlineList-BQtQZFW1.mjs → ParticipantInlineList-A8UwjE4m.mjs} +5 -5
  180. package/dist/ParticipantInlineList-A8UwjE4m.mjs.map +1 -0
  181. package/dist/ParticipantInlineList-BpVOpEBm.mjs.map +1 -0
  182. package/dist/ParticipantInlineList-C5jWxedt.mjs.map +1 -0
  183. package/dist/ParticipantInlineList-C78uhskc.mjs.map +1 -0
  184. package/dist/ParticipantItem--Wv16z3V.mjs.map +1 -0
  185. package/dist/ParticipantItem-B3k4mf2V.mjs.map +1 -0
  186. package/dist/ParticipantItem-DAPOMGZD.mjs.map +1 -0
  187. package/dist/{ParticipantItem-EDPkxTT-.mjs → ParticipantItem-Szz8WXI6.mjs} +4 -4
  188. package/dist/ParticipantItem-Szz8WXI6.mjs.map +1 -0
  189. package/dist/ParticipantPage-BbKUwNKL.mjs.map +1 -0
  190. package/dist/ParticipantPage-Byq-9aCQ.mjs.map +1 -0
  191. package/dist/ParticipantPage-D4RVBlE-.mjs.map +1 -0
  192. package/dist/ParticipantPage-DfLxuZf-.mjs.map +1 -0
  193. package/dist/{ParticipantPage-BF-s1oof.mjs → ParticipantPage-y3OoBod8.mjs} +9 -9
  194. package/dist/ParticipantPage-y3OoBod8.mjs.map +1 -0
  195. package/dist/{ParticipantsPage-Bzt8Hxah.mjs → ParticipantsPage--BxmzVwz.mjs} +7 -7
  196. package/dist/ParticipantsPage--BxmzVwz.mjs.map +1 -0
  197. package/dist/ParticipantsPage-BEPHaCy5.mjs.map +1 -0
  198. package/dist/ParticipantsPage-BlQavFT6.mjs.map +1 -0
  199. package/dist/ParticipantsPage-D8ja25F9.mjs.map +1 -0
  200. package/dist/ParticipantsPage-R8LVrDFY.mjs.map +1 -0
  201. package/dist/{PlayerAnonymousModal-CbrqO1hs.mjs → PlayerAnonymousModal-BGPpTBPW.mjs} +3 -3
  202. package/dist/PlayerAnonymousModal-BGPpTBPW.mjs.map +1 -0
  203. package/dist/PlayerAnonymousModal-BW239BiA.mjs.map +1 -0
  204. package/dist/PlayerCompact-BFC95d7Y.mjs.map +1 -0
  205. package/dist/PlayerCompact-C-WCTFZN.mjs.map +1 -0
  206. package/dist/{PlayerCompact-BtKfz384.mjs → PlayerCompact-DnJns8S2.mjs} +4 -4
  207. package/dist/PlayerCompact-DnJns8S2.mjs.map +1 -0
  208. package/dist/PlayerComponent-B8AGq9pg.mjs.map +1 -0
  209. package/dist/{PlayerComponent-CxNkDcFc.mjs → PlayerComponent-BRBrXVjI.mjs} +27 -39
  210. package/dist/PlayerComponent-BRBrXVjI.mjs.map +1 -0
  211. package/dist/PlayerComponent-BbvNS7sy.mjs.map +1 -0
  212. package/dist/PlayerComponent-By_JAwx_.mjs.map +1 -0
  213. package/dist/PlayerComponent-C425OWjX.mjs.map +1 -0
  214. package/dist/PlayerComponent-C5PNQ3TW.mjs.map +1 -0
  215. package/dist/PlayerComponent-Cnk_vePj.mjs.map +1 -0
  216. package/dist/PlayerComponent-CovfufPB.mjs.map +1 -0
  217. package/dist/PlayerComponent-DC4jQIwE.mjs.map +1 -0
  218. package/dist/PlayerComponent-DEUmVv0M.mjs.map +1 -0
  219. package/dist/PlayerComponent-DOXY0vL0.mjs.map +1 -0
  220. package/dist/PlayerComponent-DajZbHv7.mjs.map +1 -0
  221. package/dist/PlayerComponent-DejSC061.mjs.map +1 -0
  222. package/dist/PlayerComponent-p7W2UNk6.mjs.map +1 -0
  223. package/dist/PlayerLarge-3zzN7qom.mjs.map +1 -0
  224. package/dist/{PlayerLarge-BH6BLQxk.mjs → PlayerLarge-B97rRmrJ.mjs} +12 -10
  225. package/dist/PlayerLarge-B97rRmrJ.mjs.map +1 -0
  226. package/dist/PlayerLarge-BzwrEgVR.mjs.map +1 -0
  227. package/dist/PlayerLarge-CLOwDO6Q.mjs.map +1 -0
  228. package/dist/PlayerLarge-Chv7pMOU.mjs.map +1 -0
  229. package/dist/PlayerLarge-CkWGaDiY.mjs.map +1 -0
  230. package/dist/PlayerLarge-D0NMzCRi.mjs.map +1 -0
  231. package/dist/PlayerLarge-D3obSnYt.mjs.map +1 -0
  232. package/dist/PlayerLarge-DLGXpE3K.mjs.map +1 -0
  233. package/dist/PlayerLarge-QtUrqNm5.mjs.map +1 -0
  234. package/dist/PlayerLarge-juuY9yOX.mjs.map +1 -0
  235. package/dist/PlayerLarge-n7zyM6b_.mjs.map +1 -0
  236. package/dist/PlayerLarge-o4FVk0QB.mjs.map +1 -0
  237. package/dist/PlayerLarge-tMW3v2La.mjs.map +1 -0
  238. package/dist/PlayerPlayButton-CTu0337E.mjs.map +1 -0
  239. package/dist/PlayerPlayButton-CfJWIpoP.mjs.map +1 -0
  240. package/dist/{PlayerPlayButton-DT2OdqnI.mjs → PlayerPlayButton-zKdHGzFr.mjs} +5 -5
  241. package/dist/PlayerPlayButton-zKdHGzFr.mjs.map +1 -0
  242. package/dist/{PlayerProgressBar-CSYnPjZb.mjs → PlayerProgressBar-BG5NG596.mjs} +4 -4
  243. package/dist/PlayerProgressBar-BG5NG596.mjs.map +1 -0
  244. package/dist/PlayerProgressBar-Cjv8JVY2.mjs.map +1 -0
  245. package/dist/PlayerProgressBar-Co0_YEF3.mjs.map +1 -0
  246. package/dist/PlayerStore-B-L2PQ_b.mjs.map +1 -0
  247. package/dist/PlayerStore-C2XzSrF5.mjs.map +1 -0
  248. package/dist/{PlayerStore-DukkcHI_.mjs → PlayerStore-vYmnOEA_.mjs} +3 -3
  249. package/dist/PlayerStore-vYmnOEA_.mjs.map +1 -0
  250. package/dist/PlayerVideo-DD6NaGkU.mjs.map +1 -0
  251. package/dist/{PlayerVideo-_Uz00K_T.mjs → PlayerVideo-Ds0oYeTC.mjs} +5 -5
  252. package/dist/PlayerVideo-Ds0oYeTC.mjs.map +1 -0
  253. package/dist/PlayerVideo-cYHZOYMv.mjs.map +1 -0
  254. package/dist/PlayerVideoDigiteka-BPJdJNEB.mjs.map +1 -0
  255. package/dist/{PlayerVideoDigiteka-CjfuxXBF.mjs → PlayerVideoDigiteka-C7xb0ndg.mjs} +3 -3
  256. package/dist/PlayerVideoDigiteka-C7xb0ndg.mjs.map +1 -0
  257. package/dist/PlayerVideoDigiteka-oqtYXqYK.mjs.map +1 -0
  258. package/dist/PlayerVideoHls-CB4psqbz.mjs.map +1 -0
  259. package/dist/{PlayerVideoHls-Dms7iTSo.mjs → PlayerVideoHls-xSNqzBEw.mjs} +4 -4
  260. package/dist/PlayerVideoHls-xSNqzBEw.mjs.map +1 -0
  261. package/dist/PlayerVideoHls-zNbegJFp.mjs.map +1 -0
  262. package/dist/PlaylistPage-BUj1Lzfp.mjs.map +1 -0
  263. package/dist/PlaylistPage-BhcJkM15.mjs.map +1 -0
  264. package/dist/PlaylistPage-BsHMB2nn.mjs.map +1 -0
  265. package/dist/{PlaylistPage-CQX0LhXn.mjs → PlaylistPage-D4mcAo00.mjs} +12 -12
  266. package/dist/PlaylistPage-D4mcAo00.mjs.map +1 -0
  267. package/dist/PlaylistPage-DjAgejp8.mjs.map +1 -0
  268. package/dist/PlaylistsPage-B3V5-WT9.mjs.map +1 -0
  269. package/dist/PlaylistsPage-DSjvWTw5.mjs.map +1 -0
  270. package/dist/{PlaylistsPage-Bd-u4qlc.mjs → PlaylistsPage-Dr6HKHf8.mjs} +7 -7
  271. package/dist/PlaylistsPage-Dr6HKHf8.mjs.map +1 -0
  272. package/dist/PodcastFilterList-C-8AF1Dn.mjs.map +1 -0
  273. package/dist/{PodcastFilterList-DkH6bqv_.mjs → PodcastFilterList-CYwPiGko.mjs} +3 -3
  274. package/dist/PodcastFilterList-CYwPiGko.mjs.map +1 -0
  275. package/dist/PodcastFilterList-C_d1SyTB.mjs.map +1 -0
  276. package/dist/PodcastFilterList-ClMsIUaO.mjs.map +1 -0
  277. package/dist/PodcastFilterList-DBS0kvW6.mjs.map +1 -0
  278. package/dist/PodcastImage-B8o3T5zK.mjs.map +1 -0
  279. package/dist/{PodcastImage-BtxcPlrh.mjs → PodcastImage-Bs1lpubL.mjs} +4 -4
  280. package/dist/PodcastImage-Bs1lpubL.mjs.map +1 -0
  281. package/dist/PodcastImage-DBB5689n.mjs.map +1 -0
  282. package/dist/PodcastImage-DNLZH0dY.mjs.map +1 -0
  283. package/dist/PodcastImage-DrV8oxG8.mjs.map +1 -0
  284. package/dist/{PodcastInlineList-CVWfH5np.mjs → PodcastInlineList-B7-2QswT.mjs} +2 -2
  285. package/dist/PodcastInlineList-B7-2QswT.mjs.map +1 -0
  286. package/dist/PodcastInlineList-BVMV6Wvd.mjs.map +1 -0
  287. package/dist/PodcastInlineList-BXPpF0YD.mjs.map +1 -0
  288. package/dist/PodcastInlineList-CLjO1SpD.mjs.map +1 -0
  289. package/dist/PodcastInlineList-Cf5YF0j9.mjs.map +1 -0
  290. package/dist/PodcastInlineListTemplate-BX0tXOFx.mjs.map +1 -0
  291. package/dist/{PodcastInlineListTemplate-BWw1Ix-7.mjs → PodcastInlineListTemplate-DCWn3r7s.mjs} +4 -4
  292. package/dist/PodcastInlineListTemplate-DCWn3r7s.mjs.map +1 -0
  293. package/dist/PodcastIsPlaying-BG1_FgVX.mjs.map +1 -0
  294. package/dist/{PodcastIsPlaying-B7YVeSyB.mjs → PodcastIsPlaying-BsObdQGR.mjs} +2 -2
  295. package/dist/PodcastIsPlaying-BsObdQGR.mjs.map +1 -0
  296. package/dist/PodcastIsPlaying-Csd-C2jr.mjs.map +1 -0
  297. package/dist/PodcastItem-CGmEwYT4.mjs.map +1 -0
  298. package/dist/PodcastItem-CN6gwARQ.mjs.map +1 -0
  299. package/dist/PodcastItem-CdLjZKxf.mjs.map +1 -0
  300. package/dist/PodcastItem-D1MwHzhE.mjs.map +1 -0
  301. package/dist/{PodcastItem-CFk8MX9D.mjs → PodcastItem-_8ErwIDG.mjs} +7 -7
  302. package/dist/PodcastItem-_8ErwIDG.mjs.map +1 -0
  303. package/dist/PodcastList-BXla7F3u.mjs.map +1 -0
  304. package/dist/PodcastList-BqE8dwdc.mjs.map +1 -0
  305. package/dist/PodcastList-BvC6iOS6.mjs.map +1 -0
  306. package/dist/PodcastList-CRwA-s7F.mjs.map +1 -0
  307. package/dist/PodcastList-CVFr9WNS.mjs.map +1 -0
  308. package/dist/PodcastList-DZKxDulS.mjs.map +1 -0
  309. package/dist/{PodcastList-BLXPFjvL.mjs → PodcastList-DgLQjL0d.mjs} +6 -6
  310. package/dist/PodcastList-DgLQjL0d.mjs.map +1 -0
  311. package/dist/{PodcastList-c0Iwzakm.mjs → PodcastList-DhKeiBbv.mjs} +5 -5
  312. package/dist/PodcastList-DhKeiBbv.mjs.map +1 -0
  313. package/dist/PodcastList-Dtq6kEG4.mjs.map +1 -0
  314. package/dist/PodcastList-Dx-mo7Wo.mjs.map +1 -0
  315. package/dist/{PodcastPage-C_d9FaS7.mjs → PodcastPage-C5OCwW8q.mjs} +23 -23
  316. package/dist/PodcastPage-C5OCwW8q.mjs.map +1 -0
  317. package/dist/PodcastPage-CsVqOGWc.mjs.map +1 -0
  318. package/dist/PodcastPage-DQInD9ry.mjs.map +1 -0
  319. package/dist/PodcastPage-Dka9GEzi.mjs.map +1 -0
  320. package/dist/PodcastPage-acKIH0vO.mjs.map +1 -0
  321. package/dist/PodcastPlayBar-AgtR8Ia9.mjs.map +1 -0
  322. package/dist/PodcastPlayBar-D7CyLEM4.mjs.map +1 -0
  323. package/dist/{PodcastPlayBar-WjGn_KlZ.mjs → PodcastPlayBar-DC5HCx76.mjs} +4 -4
  324. package/dist/PodcastPlayBar-DC5HCx76.mjs.map +1 -0
  325. package/dist/PodcastPlayBasicButton-DHYxw3NX.mjs.map +1 -0
  326. package/dist/{PodcastPlayBasicButton-BNKlqhGR.mjs → PodcastPlayBasicButton-PJHza4d_.mjs} +2 -2
  327. package/dist/PodcastPlayBasicButton-PJHza4d_.mjs.map +1 -0
  328. package/dist/PodcastPlayBasicButton-gK82n3YL.mjs.map +1 -0
  329. package/dist/{PodcastPlayButton-B9hWbPEk.mjs → PodcastPlayButton-1eaXWTlG.mjs} +4 -4
  330. package/dist/PodcastPlayButton-1eaXWTlG.mjs.map +1 -0
  331. package/dist/PodcastPlayButton-Bosq5ozq.mjs.map +1 -0
  332. package/dist/PodcastPlayButton-DIQi57Oh.mjs.map +1 -0
  333. package/dist/PodcastPlayButton-DcjbCnlT.mjs.map +1 -0
  334. package/dist/PodcastPlayButton-DgSCyhrd.mjs.map +1 -0
  335. package/dist/PodcastPlaylistInlineList-C0HZum5z.mjs.map +1 -0
  336. package/dist/PodcastPlaylistInlineList-CSziI2j4.mjs.map +1 -0
  337. package/dist/PodcastPlaylistInlineList-CvX2rauY.mjs.map +1 -0
  338. package/dist/PodcastPlaylistInlineList-H_rnCHag.mjs.map +1 -0
  339. package/dist/{PodcastPlaylistInlineList-_csxbYAx.mjs → PodcastPlaylistInlineList-XTbhC8OJ.mjs} +5 -5
  340. package/dist/PodcastPlaylistInlineList-XTbhC8OJ.mjs.map +1 -0
  341. package/dist/{PodcastPresentationList-BD8XmnW0.mjs → PodcastPresentationList-BUl5Rq83.mjs} +5 -5
  342. package/dist/PodcastPresentationList-BUl5Rq83.mjs.map +1 -0
  343. package/dist/PodcastPresentationList-BvkEDbtG.mjs.map +1 -0
  344. package/dist/PodcastPresentationList-C0n-xr5w.mjs.map +1 -0
  345. package/dist/PodcastPresentationList-CnrMkINf.mjs.map +1 -0
  346. package/dist/PodcastPresentationList-DC-Oi_eK.mjs.map +1 -0
  347. package/dist/PodcastProgressBar-CP-0ptRF.mjs.map +1 -0
  348. package/dist/{PodcastProgressBar-B3XOeeJx.mjs → PodcastProgressBar-VG-mRcpi.mjs} +4 -4
  349. package/dist/PodcastProgressBar-VG-mRcpi.mjs.map +1 -0
  350. package/dist/PodcastProgressBar-jY43GoFx.mjs.map +1 -0
  351. package/dist/PodcastRawTranscript-BAu-dt2V.mjs.map +1 -0
  352. package/dist/{PodcastRawTranscript-D0Nm7jGM.mjs → PodcastRawTranscript-Bf6f5yNd.mjs} +3 -3
  353. package/dist/PodcastRawTranscript-Bf6f5yNd.mjs.map +1 -0
  354. package/dist/{PodcastSwiperList-DJ0O3dqM.mjs → PodcastSwiperList-BhulNkN-.mjs} +5 -5
  355. package/dist/PodcastSwiperList-BhulNkN-.mjs.map +1 -0
  356. package/dist/PodcastSwiperList-CGeumBPj.mjs.map +1 -0
  357. package/dist/PodcastSwiperList-CzUkS6M6.mjs.map +1 -0
  358. package/dist/PodcastSwiperList-DLKOAjUS.mjs.map +1 -0
  359. package/dist/PodcastSwiperList-DaTHwrHm.mjs.map +1 -0
  360. package/dist/PodcastmakerHeader-BZT-U0KX.mjs.map +1 -0
  361. package/dist/{PodcastmakerHeader-DAATtOG_.mjs → PodcastmakerHeader-Df0g2dCr.mjs} +2 -2
  362. package/dist/PodcastmakerHeader-Df0g2dCr.mjs.map +1 -0
  363. package/dist/PodcastsPage-B-Qzlif0.mjs.map +1 -0
  364. package/dist/PodcastsPage-BoK55Z9G.mjs.map +1 -0
  365. package/dist/PodcastsPage-CTzbr2VD.mjs.map +1 -0
  366. package/dist/{PodcastsPage-ZhEVoMp1.mjs → PodcastsPage-DSJUPRZE.mjs} +5 -5
  367. package/dist/PodcastsPage-DSJUPRZE.mjs.map +1 -0
  368. package/dist/PodcastsPage-Jg_jAix6.mjs.map +1 -0
  369. package/dist/{ProductorSearch-xs0kzX_E.mjs → ProductorSearch-BTj9gIOs.mjs} +3 -3
  370. package/dist/ProductorSearch-BTj9gIOs.mjs.map +1 -0
  371. package/dist/ProductorSearch-ziDbxrDd.mjs.map +1 -0
  372. package/dist/ProgressBar-BOq9RfZ2.mjs.map +1 -0
  373. package/dist/{ProgressBar-0DSoUTwB.mjs → ProgressBar-BVc0_6Lv.mjs} +2 -2
  374. package/dist/ProgressBar-BVc0_6Lv.mjs.map +1 -0
  375. package/dist/ProgressBar-Cgt2PqnO.mjs.map +1 -0
  376. package/dist/QrCode-DNiPIFIA.mjs.map +1 -0
  377. package/dist/{QrCode-CUP2O18d.mjs → QrCode-MCv4t_Bn.mjs} +2 -2
  378. package/dist/QrCode-MCv4t_Bn.mjs.map +1 -0
  379. package/dist/{QrCodeModal-DXBCuki7.mjs → QrCodeModal-Be8E0JlC.mjs} +2 -2
  380. package/dist/QrCodeModal-Be8E0JlC.mjs.map +1 -0
  381. package/dist/QrCodeModal-DYDKLLuw.mjs.map +1 -0
  382. package/dist/RadioCurrently-BJOmCSby.mjs.map +1 -0
  383. package/dist/RadioCurrently-CZePLInZ.mjs.map +1 -0
  384. package/dist/{RadioCurrently-D5M81oIX.mjs → RadioCurrently-DWySwV64.mjs} +4 -4
  385. package/dist/RadioCurrently-DWySwV64.mjs.map +1 -0
  386. package/dist/RadioHistory-7EGvEAMx.mjs.map +1 -0
  387. package/dist/RadioHistory-BdMa013x.mjs.map +1 -0
  388. package/dist/{RadioHistory-BgOve4jk.mjs → RadioHistory-DlQFZYp2.mjs} +3 -3
  389. package/dist/RadioHistory-DlQFZYp2.mjs.map +1 -0
  390. package/dist/{RadioImage-CUTRr3DL.mjs → RadioImage-BIe2KpG_.mjs} +5 -5
  391. package/dist/RadioImage-BIe2KpG_.mjs.map +1 -0
  392. package/dist/RadioImage-CXFZXN1N.mjs.map +1 -0
  393. package/dist/RadioImage-CpJmuc8a.mjs.map +1 -0
  394. package/dist/{RadioList-CwzOFHc1.mjs → RadioList-B23gsiEF.mjs} +5 -5
  395. package/dist/RadioList-B23gsiEF.mjs.map +1 -0
  396. package/dist/RadioList-BwzgNcMO.mjs.map +1 -0
  397. package/dist/RadioList-KvAacjmD.mjs.map +1 -0
  398. package/dist/RadioPage-CM_4A1AQ.mjs.map +1 -0
  399. package/dist/RadioPage-DkBL81mI.mjs.map +1 -0
  400. package/dist/{RadioPage-DVflzCV-.mjs → RadioPage-Jg2kmtna.mjs} +11 -11
  401. package/dist/RadioPage-Jg2kmtna.mjs.map +1 -0
  402. package/dist/{RadioPlanning-CJ7Qqyhs.mjs → RadioPlanning-2aWTnbZb.mjs} +3 -3
  403. package/dist/RadioPlanning-2aWTnbZb.mjs.map +1 -0
  404. package/dist/RadioPlanning-DHxcBVQo.mjs.map +1 -0
  405. package/dist/RadioProgressBar-BHAawrHe.mjs.map +1 -0
  406. package/dist/RadioProgressBar-CPjLAoPB.mjs.map +1 -0
  407. package/dist/{RadioProgressBar-BmJbzzQA.mjs → RadioProgressBar-yIz1oI5d.mjs} +2 -2
  408. package/dist/RadioProgressBar-yIz1oI5d.mjs.map +1 -0
  409. package/dist/RecaptchaModal-DKugsU7h.mjs.map +1 -0
  410. package/dist/{RecaptchaModal-DX9rAHUg.mjs → RecaptchaModal-dfMCfebx.mjs} +2 -2
  411. package/dist/RecaptchaModal-dfMCfebx.mjs.map +1 -0
  412. package/dist/ReportAbuseModal-Bxr7NTvH.mjs.map +1 -0
  413. package/dist/{ReportAbuseModal-CYCRaFAY.mjs → ReportAbuseModal-DZKRbYXJ.mjs} +4 -4
  414. package/dist/ReportAbuseModal-DZKRbYXJ.mjs.map +1 -0
  415. package/dist/RightsIndicator-BgW0q3af.mjs.map +1 -0
  416. package/dist/RightsIndicator-BtzqiPWc.mjs.map +1 -0
  417. package/dist/{RightsIndicator-qIU4_wiF.mjs → RightsIndicator-D5I3DOfO.mjs} +2 -2
  418. package/dist/RightsIndicator-D5I3DOfO.mjs.map +1 -0
  419. package/dist/RightsIndicator-NOZ05rEh.mjs.map +1 -0
  420. package/dist/RightsWrapper-Cv41FXNO.mjs.map +1 -0
  421. package/dist/{RightsWrapper-Cs6prZ3E.mjs → RightsWrapper-HasUbnny.mjs} +3 -3
  422. package/dist/RightsWrapper-HasUbnny.mjs.map +1 -0
  423. package/dist/{RubriqueFilter-OA_DJKL1.mjs → RubriqueFilter-3SPVH4nT.mjs} +3 -3
  424. package/dist/RubriqueFilter-3SPVH4nT.mjs.map +1 -0
  425. package/dist/RubriqueFilter-B_F2fyA0.mjs.map +1 -0
  426. package/dist/RubriqueList-CalsqgcR.mjs.map +1 -0
  427. package/dist/{RubriqueList-B94NM5yi.mjs → RubriqueList-TnVM2-Ry.mjs} +3 -3
  428. package/dist/RubriqueList-TnVM2-Ry.mjs.map +1 -0
  429. package/dist/RubriquePage-BhneK7GY.mjs.map +1 -0
  430. package/dist/RubriquePage-CPV9lztT.mjs.map +1 -0
  431. package/dist/{RubriquePage-DyusiBmp.mjs → RubriquePage-D223TaA2.mjs} +5 -5
  432. package/dist/RubriquePage-D223TaA2.mjs.map +1 -0
  433. package/dist/RubriquePage-DriBVVmv.mjs.map +1 -0
  434. package/dist/RubriquePage-x_tOmQCH.mjs.map +1 -0
  435. package/dist/SearchPage-B-KDO-5r.mjs.map +1 -0
  436. package/dist/{SearchPage-BGOBGS4j.mjs → SearchPage-BH1gYkHn.mjs} +3 -3
  437. package/dist/SearchPage-BH1gYkHn.mjs.map +1 -0
  438. package/dist/SearchPage-CXOoJF_2.mjs.map +1 -0
  439. package/dist/SearchPage-DyX_tEm5.mjs.map +1 -0
  440. package/dist/SearchPage-IvX74fSJ.mjs.map +1 -0
  441. package/dist/{ShareAnonymous-Chfdzzra.mjs → ShareAnonymous-4UxjKrIe.mjs} +6 -6
  442. package/dist/ShareAnonymous-4UxjKrIe.mjs.map +1 -0
  443. package/dist/ShareAnonymous-C4xPMrgf.mjs.map +1 -0
  444. package/dist/{ShareModalPlayer-CLY_JFFD.mjs → ShareModalPlayer-B0wPlpdU.mjs} +2 -2
  445. package/dist/ShareModalPlayer-B0wPlpdU.mjs.map +1 -0
  446. package/dist/ShareModalPlayer-CEvDV-I_.mjs.map +1 -0
  447. package/dist/ShareNewsletter-Bno5t4ay.mjs.map +1 -0
  448. package/dist/{ShareNewsletter-B4dn4-jA.mjs → ShareNewsletter-Cf9w-I6c.mjs} +2 -2
  449. package/dist/ShareNewsletter-Cf9w-I6c.mjs.map +1 -0
  450. package/dist/SharePlayer-BLqYnywl.mjs.map +1 -0
  451. package/dist/{SharePlayer-wHDYsWYd.mjs → SharePlayer-Oy1pWckd.mjs} +4 -4
  452. package/dist/SharePlayer-Oy1pWckd.mjs.map +1 -0
  453. package/dist/{SharePlayerRadio-D3LXD_gK.mjs → SharePlayerRadio-CI6glNuI.mjs} +3 -3
  454. package/dist/SharePlayerRadio-CI6glNuI.mjs.map +1 -0
  455. package/dist/SharePlayerRadio-c_HFTupz.mjs.map +1 -0
  456. package/dist/SharePlayerTypes-Dkmmw2We.mjs.map +1 -0
  457. package/dist/{SharePlayerTypes-eYSeVl-W.mjs → SharePlayerTypes-cUgCFZ65.mjs} +2 -2
  458. package/dist/SharePlayerTypes-cUgCFZ65.mjs.map +1 -0
  459. package/dist/{ShareSocialsButtons-iHtSoQ3K.mjs → ShareSocialsButtons-BYsXc2Jr.mjs} +2 -2
  460. package/dist/ShareSocialsButtons-BYsXc2Jr.mjs.map +1 -0
  461. package/dist/ShareSocialsButtons-DZLZc1c6.mjs.map +1 -0
  462. package/dist/SimpleLayout-BCsUQENG.mjs.map +1 -0
  463. package/dist/SimpleLayout-BGKNHHjx.mjs.map +1 -0
  464. package/dist/SimpleLayout-BHIdltFB.mjs.map +1 -0
  465. package/dist/SimpleLayout-BKkwQmN6.mjs.map +1 -0
  466. package/dist/SimpleLayout-BORx9hRX.mjs.map +1 -0
  467. package/dist/{SimpleLayout-Bk74CAAr.mjs → SimpleLayout-BTJyAJO6.mjs} +3 -3
  468. package/dist/SimpleLayout-BTJyAJO6.mjs.map +1 -0
  469. package/dist/SimpleLayout-BvOAauzs.mjs.map +1 -0
  470. package/dist/SimpleLayout-C3xekYgM.mjs.map +1 -0
  471. package/dist/SimpleLayout-C4xNk0R4.mjs.map +1 -0
  472. package/dist/SimpleLayout-CDcsE-Be.mjs.map +1 -0
  473. package/dist/SimpleLayout-D3M_c1Eu.mjs.map +1 -0
  474. package/dist/SimpleLayout-DJgC3LcZ.mjs.map +1 -0
  475. package/dist/SimpleLayout-DkvEZxow.mjs.map +1 -0
  476. package/dist/SimpleLayout-gtbBGlVV.mjs.map +1 -0
  477. package/dist/SmartLinkPage-BF8hfaWZ.mjs.map +1 -0
  478. package/dist/{SmartLinkPage-DbuQT8GM.mjs → SmartLinkPage-DQljzYa-.mjs} +5 -5
  479. package/dist/SmartLinkPage-DQljzYa-.mjs.map +1 -0
  480. package/dist/SmartLinkPage-DmlqwhYP.mjs.map +1 -0
  481. package/dist/SubscribeButtons-DO4MRuDr.mjs.map +1 -0
  482. package/dist/{SubscribeButtons-rnonTVzT.mjs → SubscribeButtons-lAAMYQCm.mjs} +3 -3
  483. package/dist/SubscribeButtons-lAAMYQCm.mjs.map +1 -0
  484. package/dist/{SwiperList-C1v0T1wx.mjs → SwiperList-C51H-enh.mjs} +2 -2
  485. package/dist/SwiperList-C51H-enh.mjs.map +1 -0
  486. package/dist/SwiperList-Dsq1MFX6.mjs.map +1 -0
  487. package/dist/TagList-B5C9zojs.mjs.map +1 -0
  488. package/dist/{TagList-VeuYS_zJ.mjs → TagList-D3Bn2fIn.mjs} +2 -2
  489. package/dist/TagList-D3Bn2fIn.mjs.map +1 -0
  490. package/dist/TagPage-B71pZpRY.mjs.map +1 -0
  491. package/dist/{TagPage-Bd81QJHn.mjs → TagPage-Brw9iL1F.mjs} +4 -4
  492. package/dist/TagPage-Brw9iL1F.mjs.map +1 -0
  493. package/dist/TagPage-CWRyUZkD.mjs.map +1 -0
  494. package/dist/TagPage-DFo25ZeP.mjs.map +1 -0
  495. package/dist/TagPage-sI917OpV.mjs.map +1 -0
  496. package/dist/TopBar-CaCA8kOs.mjs.map +1 -0
  497. package/dist/{TopBar-CZVp2T7C.mjs → TopBar-DIdhyJi_.mjs} +7 -7
  498. package/dist/TopBar-DIdhyJi_.mjs.map +1 -0
  499. package/dist/{UserButtonContent-DmNyGmWr.mjs → UserButtonContent-D13cVA34.mjs} +7 -7
  500. package/dist/UserButtonContent-D13cVA34.mjs.map +1 -0
  501. package/dist/UserButtonContent-DMKyXEmF.mjs.map +1 -0
  502. package/dist/{VideoModuleBox-yJZpgCw6.mjs → VideoModuleBox-CFQmvPrA.mjs} +2 -2
  503. package/dist/VideoModuleBox-CFQmvPrA.mjs.map +1 -0
  504. package/dist/VideoModuleBox-DsBLAMrh.mjs.map +1 -0
  505. package/dist/VideoPage-CfJeWV-R.mjs.map +1 -0
  506. package/dist/VideoPage-CnIZYz-k.mjs.map +1 -0
  507. package/dist/VideoPage-D6UNKt2D.mjs.map +1 -0
  508. package/dist/{VideoPage-y6G4Y2Zi.mjs → VideoPage-DU9dJviO.mjs} +10 -10
  509. package/dist/VideoPage-DU9dJviO.mjs.map +1 -0
  510. package/dist/VideoPage-OIb28KAS.mjs.map +1 -0
  511. package/dist/classicApi-C70YSK8J.mjs.map +1 -0
  512. package/dist/classicApi-DuzZv1Wk.mjs.map +1 -1
  513. package/dist/{classicApi-CkDHWZG1.mjs → classicApi-xjOqAovv.mjs} +11 -8
  514. package/dist/classicApi-xjOqAovv.mjs.map +1 -0
  515. package/dist/downloadHelper-C4q0i5xN.mjs.map +1 -0
  516. package/dist/{downloadHelper-DLdkblYN.mjs → downloadHelper-DY3fF3dA.mjs} +2 -2
  517. package/dist/downloadHelper-DY3fF3dA.mjs.map +1 -0
  518. package/dist/index.mjs +102 -97
  519. package/dist/index.mjs.map +1 -1
  520. package/dist/tests.mjs +2 -2
  521. package/dist/{useAdvancedParamInit-B7G2Mvjv.mjs → useAdvancedParamInit-CCprE3H2.mjs} +6 -6
  522. package/dist/useAdvancedParamInit-CCprE3H2.mjs.map +1 -0
  523. package/dist/useAdvancedParamInit-CT8CdPFW.mjs.map +1 -0
  524. package/dist/useDayjs-BPXVSBns.mjs.map +1 -0
  525. package/dist/{useDayjs-C3cnTiDW.mjs → useDayjs-DPVjvJPN.mjs} +2 -2
  526. package/dist/useDayjs-DPVjvJPN.mjs.map +1 -0
  527. package/dist/useErrorHandler-BxQT9ZGf.mjs.map +1 -0
  528. package/dist/{useErrorHandler-DtLjD9t_.mjs → useErrorHandler-D3XVxUh6.mjs} +2 -2
  529. package/dist/useErrorHandler-D3XVxUh6.mjs.map +1 -0
  530. package/dist/{useImageProxy-Bj0cOCct.mjs → useImageProxy-BdQJmj4a.mjs} +2 -2
  531. package/dist/useImageProxy-BdQJmj4a.mjs.map +1 -0
  532. package/dist/useImageProxy-DROuweGY.mjs.map +1 -0
  533. package/dist/{useOrgaComputed-BLSpEDfb.mjs → useOrgaComputed-B2Bq0VBT.mjs} +2 -2
  534. package/dist/useOrgaComputed-B2Bq0VBT.mjs.map +1 -0
  535. package/dist/useOrgaComputed-CGomgs0r.mjs.map +1 -0
  536. package/dist/{usePlayerLogicProgress-75G9QMg_.mjs → usePlayerLogicProgress-DcHbYGOR.mjs} +3 -3
  537. package/dist/usePlayerLogicProgress-DcHbYGOR.mjs.map +1 -0
  538. package/dist/usePlayerLogicProgress-Dchl5sUO.mjs.map +1 -0
  539. package/dist/usePlayerLogicProgress-lqnQ5qNd.mjs.map +1 -0
  540. package/dist/{usePodcastView-BftS642h.mjs → usePodcastView-BDZ6CGQj.mjs} +4 -4
  541. package/dist/usePodcastView-BDZ6CGQj.mjs.map +1 -0
  542. package/dist/usePodcastView-CI5le-WW.mjs.map +1 -0
  543. package/dist/usePresentationItem-Cw9fBYUi.mjs.map +1 -0
  544. package/dist/{usePresentationItem-CNXIk-Sf.mjs → usePresentationItem-UwAuhVqo.mjs} +4 -4
  545. package/dist/usePresentationItem-UwAuhVqo.mjs.map +1 -0
  546. package/dist/useRights-D8CLzCMH.mjs.map +1 -0
  547. package/dist/{useRights-Co0TgD8y.mjs → useRights-DSZ-5pFg.mjs} +2 -2
  548. package/dist/useRights-DSZ-5pFg.mjs.map +1 -0
  549. package/dist/{useRubriquesFilterComputed-VsdTUNL6.mjs → useRubriquesFilterComputed-BkDeXTf-.mjs} +2 -2
  550. package/dist/useRubriquesFilterComputed-BkDeXTf-.mjs.map +1 -0
  551. package/dist/useRubriquesFilterComputed-Bkre15fg.mjs.map +1 -0
  552. package/dist/useRubriquesFilterParam-BmE8v1fS.mjs.map +1 -0
  553. package/dist/{useRubriquesFilterParam--x07HEw1.mjs → useRubriquesFilterParam-Delgf48y.mjs} +2 -2
  554. package/dist/useRubriquesFilterParam-Delgf48y.mjs.map +1 -0
  555. package/dist/{useSharePlatforms-CSSRTkTG.mjs → useSharePlatforms-07n3JYu2.mjs} +3 -3
  556. package/dist/useSharePlatforms-07n3JYu2.mjs.map +1 -0
  557. package/dist/useSharePlatforms-B_3OwBFv.mjs.map +1 -0
  558. package/dist/{useSimplePageParam-ClaGQ9yj.mjs → useSimplePageParam-CsY_ie3c.mjs} +2 -2
  559. package/dist/useSimplePageParam-CsY_ie3c.mjs.map +1 -0
  560. package/dist/useSimplePageParam-ki2VyM-X.mjs.map +1 -0
  561. package/dist/{useTranslation-BNshNMQT.mjs → useTranslation-ChEasnl9.mjs} +25 -8
  562. package/dist/useTranslation-ChEasnl9.mjs.map +1 -0
  563. package/dist/useTranslation-D0R0BSx9.mjs.map +1 -0
  564. package/dist/usefetchRadioData-BPmkztGC.mjs.map +1 -0
  565. package/dist/{usefetchRadioData-C2cwiaCP.mjs → usefetchRadioData-CkrAfN1c.mjs} +2 -2
  566. package/dist/usefetchRadioData-CkrAfN1c.mjs.map +1 -0
  567. package/package.json +1 -1
  568. package/src/components/composable/player/usePlayerLive.ts +8 -7
  569. package/src/stores/AuthStore.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharePlayerRadio-CI6glNuI.mjs","names":[],"sources":["../src/components/display/sharing/SharePlayerRadio.vue","../src/components/display/sharing/SharePlayerRadio.vue"],"sourcesContent":["<template>\n <section class=\"module-box overflow-visible\">\n <h2 class=\"mb-3\">\n {{ t(\"Embed\") }}\n </h2>\n <div class=\"d-flex\">\n <iframe\n id=\"miniplayerIframeRadio\"\n title=\"Miniplayer\"\n :src=\"iFrameSrc\"\n frameborder=\"0\"\n width=\"100%\"\n height=\"140px\"\n style=\"overflow: hidden\"\n allow=\"clipboard-read; clipboard-write; autoplay\"\n class=\"max-iframe mx-3 flex-grow-1\"\n />\n <div class=\"d-flex flex-column\">\n <SharePlayerColors v-model:color=\"color\" v-model:theme=\"theme\" />\n <div class=\"h4 mb-2 mt-3\">{{ t(\"player parameters\") }}</div>\n <PlayerCommonParameters\n v-if=\"displayInsertCode\"\n v-model:insert-code=\"insertCode\"\n />\n <ShareModalPlayer\n v-if=\"isShareModal\"\n :embed-link=\"iFrame\"\n :embedly-link=\"iFrameSrc\"\n @close=\"isShareModal = false\"\n />\n <button\n class=\"btn btn-primary w-fit-content mt-3\"\n @click=\"isShareModal = true\"\n >\n {{ t(\"Share the player\") }}\n </button>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed, onBeforeMount } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useI18n } from \"vue-i18n\";\nconst ShareModalPlayer = defineAsyncComponent(\n () => import(\"../../misc/modal/ShareModalPlayer.vue\"),\n);\nconst SharePlayerColors = defineAsyncComponent(\n () => import(\"./SharePlayerColors.vue\"),\n);\nconst PlayerCommonParameters = defineAsyncComponent(\n () => import(\"./PlayerCommonParameters.vue\"),\n);\n\n//Props \nconst props = defineProps({\n canal: { default: undefined, type: Object as () => Canal },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst isShareModal = ref(false);\nconst color = ref(\"#40a372\");\nconst theme = ref(\"#000000\");\nconst insertCode = ref(false);\nconst orgaAttributes: Ref<{[key: string]: string | number | boolean | undefined }| undefined> = ref(undefined);\n \n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayInsertCode = computed(() => props.canal?.organisationId === authStore.authOrgaId);\nconst iFrameSrc = computed(() => {\n let url = `${apiStore.miniplayerUrl}miniplayer/radio/${\n props.canal?.id\n }?distributorId=${props.organisationId}&color=${color.value.substring(\n 1,\n )}&theme=${theme.value.substring(1)}`;\n if (insertCode.value) {\n url += \"&insertCode=true\";\n }\n return url;\n});\nconst iFrame = computed(() => {\n return `<iframe src=\"${iFrameSrc.value}\" width=\"100%\" height=\"140px\" frameborder=\"0\" scrolling=\"no\" allow=\"clipboard-read; clipboard-write; autoplay\"></iframe>`;\n});\n\n\nonBeforeMount(()=>initSharePlayer())\n\n//Methods\nasync function initSharePlayer() {\n orgaAttributes.value = await saveFetchStore.getOrgaAttributes(authStore.authOrgaId ?? \"\");\n initColor();\n}\nfunction initColor(): void {\n if (!orgaAttributes.value) {\n return;\n }\n color.value = Object.hasOwn(orgaAttributes.value, \"COLOR\")\n ? (orgaAttributes.value.COLOR as string)\n : \"#40a372\";\n theme.value = Object.hasOwn(orgaAttributes.value, \"THEME\")\n ? (orgaAttributes.value.THEME as string)\n : \"#000000\";\n}\n</script>\n\n<style lang=\"scss\">\n@use \"../../../style/iframe\";\n</style>\n","<template>\n <section class=\"module-box overflow-visible\">\n <h2 class=\"mb-3\">\n {{ t(\"Embed\") }}\n </h2>\n <div class=\"d-flex\">\n <iframe\n id=\"miniplayerIframeRadio\"\n title=\"Miniplayer\"\n :src=\"iFrameSrc\"\n frameborder=\"0\"\n width=\"100%\"\n height=\"140px\"\n style=\"overflow: hidden\"\n allow=\"clipboard-read; clipboard-write; autoplay\"\n class=\"max-iframe mx-3 flex-grow-1\"\n />\n <div class=\"d-flex flex-column\">\n <SharePlayerColors v-model:color=\"color\" v-model:theme=\"theme\" />\n <div class=\"h4 mb-2 mt-3\">{{ t(\"player parameters\") }}</div>\n <PlayerCommonParameters\n v-if=\"displayInsertCode\"\n v-model:insert-code=\"insertCode\"\n />\n <ShareModalPlayer\n v-if=\"isShareModal\"\n :embed-link=\"iFrame\"\n :embedly-link=\"iFrameSrc\"\n @close=\"isShareModal = false\"\n />\n <button\n class=\"btn btn-primary w-fit-content mt-3\"\n @click=\"isShareModal = true\"\n >\n {{ t(\"Share the player\") }}\n </button>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed, onBeforeMount } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useI18n } from \"vue-i18n\";\nconst ShareModalPlayer = defineAsyncComponent(\n () => import(\"../../misc/modal/ShareModalPlayer.vue\"),\n);\nconst SharePlayerColors = defineAsyncComponent(\n () => import(\"./SharePlayerColors.vue\"),\n);\nconst PlayerCommonParameters = defineAsyncComponent(\n () => import(\"./PlayerCommonParameters.vue\"),\n);\n\n//Props \nconst props = defineProps({\n canal: { default: undefined, type: Object as () => Canal },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst isShareModal = ref(false);\nconst color = ref(\"#40a372\");\nconst theme = ref(\"#000000\");\nconst insertCode = ref(false);\nconst orgaAttributes: Ref<{[key: string]: string | number | boolean | undefined }| undefined> = ref(undefined);\n \n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayInsertCode = computed(() => props.canal?.organisationId === authStore.authOrgaId);\nconst iFrameSrc = computed(() => {\n let url = `${apiStore.miniplayerUrl}miniplayer/radio/${\n props.canal?.id\n }?distributorId=${props.organisationId}&color=${color.value.substring(\n 1,\n )}&theme=${theme.value.substring(1)}`;\n if (insertCode.value) {\n url += \"&insertCode=true\";\n }\n return url;\n});\nconst iFrame = computed(() => {\n return `<iframe src=\"${iFrameSrc.value}\" width=\"100%\" height=\"140px\" frameborder=\"0\" scrolling=\"no\" allow=\"clipboard-read; clipboard-write; autoplay\"></iframe>`;\n});\n\n\nonBeforeMount(()=>initSharePlayer())\n\n//Methods\nasync function initSharePlayer() {\n orgaAttributes.value = await saveFetchStore.getOrgaAttributes(authStore.authOrgaId ?? \"\");\n initColor();\n}\nfunction initColor(): void {\n if (!orgaAttributes.value) {\n return;\n }\n color.value = Object.hasOwn(orgaAttributes.value, \"COLOR\")\n ? (orgaAttributes.value.COLOR as string)\n : \"#40a372\";\n theme.value = Object.hasOwn(orgaAttributes.value, \"THEME\")\n ? (orgaAttributes.value.THEME as string)\n : \"#000000\";\n}\n</script>\n\n<style lang=\"scss\">\n@use \"../../../style/iframe\";\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAgDA,MAAM,mBAAmB,2BACjB,OAAO,kCACf;EACA,MAAM,oBAAoB,2BAClB,OAAO,mCACf;EACA,MAAM,yBAAyB,2BACvB,OAAO,wCACf;EAGA,MAAM,QAAQ;EAMd,MAAM,eAAe,IAAI,KAAK;EAC9B,MAAM,QAAQ,IAAI,SAAS;EAC3B,MAAM,QAAQ,IAAI,SAAS;EAC3B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,iBAA0F,IAAI,KAAA,CAAS;EAI7G,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,YAAY,aAAa;EAC/B,MAAM,WAAW,YAAY;EAC7B,MAAM,iBAAiB,kBAAkB;EAIzC,MAAM,oBAAoB,eAAe,MAAM,OAAO,mBAAmB,UAAU,UAAU;EAC7F,MAAM,YAAY,eAAe;GAC/B,IAAI,MAAM,GAAG,SAAS,cAAc,mBAClC,MAAM,OAAO,GACd,iBAAiB,MAAM,eAAe,SAAS,MAAM,MAAM,UAC1D,CACF,EAAE,SAAS,MAAM,MAAM,UAAU,CAAC;GAClC,IAAI,WAAW,OACb,OAAO;GAET,OAAO;EACT,CAAC;EACD,MAAM,SAAS,eAAe;GAC5B,OAAO,gBAAgB,UAAU,MAAM;EACzC,CAAC;EAGD,oBAAkB,gBAAgB,CAAC;EAGnC,eAAe,kBAAkB;GAC/B,eAAe,QAAQ,MAAM,eAAe,kBAAkB,UAAU,cAAc,EAAE;GACxF,UAAU;EACZ;EACA,SAAS,YAAkB;GACzB,IAAI,CAAC,eAAe,OAClB;GAEF,MAAM,QAAQ,OAAO,OAAO,eAAe,OAAO,OAAO,IACpD,eAAe,MAAM,QACtB;GACJ,MAAM,QAAQ,OAAO,OAAO,eAAe,OAAO,OAAO,IACpD,eAAe,MAAM,QACtB;EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBCjHW,OAAM,8BAA6B;mBACtC,OAAM,OAAM;mBAGX,OAAM,SAAQ;;mBAYZ,OAAM,qBAAoB;mBAExB,OAAM,eAAc;;qBAlB/B,mBAqCU,WArCV,YAqCU,CApCR,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,OAAA,CAAA,GAAA,CAAA,GAEN,mBAgCM,OAhCN,YAgCM,CA/BJ,mBAUE,UAAA;EATA,IAAG;EACH,OAAM;EACL,KAAK,OAAA;EACN,aAAY;EACZ,OAAM;EACN,QAAO;EACP,OAAA,EAAA,YAAA,SAAA;EACA,OAAM;EACN,OAAM;0BAER,mBAmBM,OAnBN,YAmBM;EAlBJ,YAAiE,OAAA,sBAAA;GAAtC,OAAO,OAAA;2DAAA,OAAA,QAAK;GAAU,OAAO,OAAA;2DAAA,OAAA,QAAK;;EAC7D,mBAA4D,OAA5D,YAA4D,gBAA/B,OAAA,EAAC,mBAAA,CAAA,GAAA,CAAA;EAEtB,OAAA,qBAAA,UAAA,GADR,YAGE,OAAA,2BAAA;;GADQ,eAAa,OAAA;gEAAA,OAAA,aAAU;;EAGzB,OAAA,gBAAA,UAAA,GADR,YAKE,OAAA,qBAAA;;GAHC,cAAY,OAAA;GACZ,gBAAc,OAAA;GACd,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,eAAY;;EAEtB,mBAKS,UAAA;GAJP,OAAM;GACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,eAAY;qBAEjB,OAAA,EAAC,kBAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharePlayerRadio-c_HFTupz.mjs","names":[],"sources":["../src/components/display/sharing/SharePlayerRadio.vue","../src/components/display/sharing/SharePlayerRadio.vue"],"sourcesContent":["<template>\n <section class=\"module-box overflow-visible\">\n <h2 class=\"mb-3\">\n {{ t(\"Embed\") }}\n </h2>\n <div class=\"d-flex\">\n <iframe\n id=\"miniplayerIframeRadio\"\n title=\"Miniplayer\"\n :src=\"iFrameSrc\"\n frameborder=\"0\"\n width=\"100%\"\n height=\"140px\"\n style=\"overflow: hidden\"\n allow=\"clipboard-read; clipboard-write; autoplay\"\n class=\"max-iframe mx-3 flex-grow-1\"\n />\n <div class=\"d-flex flex-column\">\n <SharePlayerColors v-model:color=\"color\" v-model:theme=\"theme\" />\n <div class=\"h4 mb-2 mt-3\">{{ t(\"player parameters\") }}</div>\n <PlayerCommonParameters\n v-if=\"displayInsertCode\"\n v-model:insert-code=\"insertCode\"\n />\n <ShareModalPlayer\n v-if=\"isShareModal\"\n :embed-link=\"iFrame\"\n :embedly-link=\"iFrameSrc\"\n @close=\"isShareModal = false\"\n />\n <button\n class=\"btn btn-primary w-fit-content mt-3\"\n @click=\"isShareModal = true\"\n >\n {{ t(\"Share the player\") }}\n </button>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed, onBeforeMount } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useI18n } from \"vue-i18n\";\nconst ShareModalPlayer = defineAsyncComponent(\n () => import(\"../../misc/modal/ShareModalPlayer.vue\"),\n);\nconst SharePlayerColors = defineAsyncComponent(\n () => import(\"./SharePlayerColors.vue\"),\n);\nconst PlayerCommonParameters = defineAsyncComponent(\n () => import(\"./PlayerCommonParameters.vue\"),\n);\n\n//Props \nconst props = defineProps({\n canal: { default: undefined, type: Object as () => Canal },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst isShareModal = ref(false);\nconst color = ref(\"#40a372\");\nconst theme = ref(\"#000000\");\nconst insertCode = ref(false);\nconst orgaAttributes: Ref<{[key: string]: string | number | boolean | undefined }| undefined> = ref(undefined);\n \n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayInsertCode = computed(() => props.canal?.organisationId === authStore.authOrgaId);\nconst iFrameSrc = computed(() => {\n let url = `${apiStore.miniplayerUrl}miniplayer/radio/${\n props.canal?.id\n }?distributorId=${props.organisationId}&color=${color.value.substring(\n 1,\n )}&theme=${theme.value.substring(1)}`;\n if (insertCode.value) {\n url += \"&insertCode=true\";\n }\n return url;\n});\nconst iFrame = computed(() => {\n return `<iframe src=\"${iFrameSrc.value}\" width=\"100%\" height=\"140px\" frameborder=\"0\" scrolling=\"no\" allow=\"clipboard-read; clipboard-write; autoplay\"></iframe>`;\n});\n\n\nonBeforeMount(()=>initSharePlayer())\n\n//Methods\nasync function initSharePlayer() {\n orgaAttributes.value = await saveFetchStore.getOrgaAttributes(authStore.authOrgaId ?? \"\");\n initColor();\n}\nfunction initColor(): void {\n if (!orgaAttributes.value) {\n return;\n }\n color.value = Object.hasOwn(orgaAttributes.value, \"COLOR\")\n ? (orgaAttributes.value.COLOR as string)\n : \"#40a372\";\n theme.value = Object.hasOwn(orgaAttributes.value, \"THEME\")\n ? (orgaAttributes.value.THEME as string)\n : \"#000000\";\n}\n</script>\n\n<style lang=\"scss\">\n@use \"../../../style/iframe\";\n</style>\n","<template>\n <section class=\"module-box overflow-visible\">\n <h2 class=\"mb-3\">\n {{ t(\"Embed\") }}\n </h2>\n <div class=\"d-flex\">\n <iframe\n id=\"miniplayerIframeRadio\"\n title=\"Miniplayer\"\n :src=\"iFrameSrc\"\n frameborder=\"0\"\n width=\"100%\"\n height=\"140px\"\n style=\"overflow: hidden\"\n allow=\"clipboard-read; clipboard-write; autoplay\"\n class=\"max-iframe mx-3 flex-grow-1\"\n />\n <div class=\"d-flex flex-column\">\n <SharePlayerColors v-model:color=\"color\" v-model:theme=\"theme\" />\n <div class=\"h4 mb-2 mt-3\">{{ t(\"player parameters\") }}</div>\n <PlayerCommonParameters\n v-if=\"displayInsertCode\"\n v-model:insert-code=\"insertCode\"\n />\n <ShareModalPlayer\n v-if=\"isShareModal\"\n :embed-link=\"iFrame\"\n :embedly-link=\"iFrameSrc\"\n @close=\"isShareModal = false\"\n />\n <button\n class=\"btn btn-primary w-fit-content mt-3\"\n @click=\"isShareModal = true\"\n >\n {{ t(\"Share the player\") }}\n </button>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed, onBeforeMount } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useI18n } from \"vue-i18n\";\nconst ShareModalPlayer = defineAsyncComponent(\n () => import(\"../../misc/modal/ShareModalPlayer.vue\"),\n);\nconst SharePlayerColors = defineAsyncComponent(\n () => import(\"./SharePlayerColors.vue\"),\n);\nconst PlayerCommonParameters = defineAsyncComponent(\n () => import(\"./PlayerCommonParameters.vue\"),\n);\n\n//Props \nconst props = defineProps({\n canal: { default: undefined, type: Object as () => Canal },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst isShareModal = ref(false);\nconst color = ref(\"#40a372\");\nconst theme = ref(\"#000000\");\nconst insertCode = ref(false);\nconst orgaAttributes: Ref<{[key: string]: string | number | boolean | undefined }| undefined> = ref(undefined);\n \n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayInsertCode = computed(() => props.canal?.organisationId === authStore.authOrgaId);\nconst iFrameSrc = computed(() => {\n let url = `${apiStore.miniplayerUrl}miniplayer/radio/${\n props.canal?.id\n }?distributorId=${props.organisationId}&color=${color.value.substring(\n 1,\n )}&theme=${theme.value.substring(1)}`;\n if (insertCode.value) {\n url += \"&insertCode=true\";\n }\n return url;\n});\nconst iFrame = computed(() => {\n return `<iframe src=\"${iFrameSrc.value}\" width=\"100%\" height=\"140px\" frameborder=\"0\" scrolling=\"no\" allow=\"clipboard-read; clipboard-write; autoplay\"></iframe>`;\n});\n\n\nonBeforeMount(()=>initSharePlayer())\n\n//Methods\nasync function initSharePlayer() {\n orgaAttributes.value = await saveFetchStore.getOrgaAttributes(authStore.authOrgaId ?? \"\");\n initColor();\n}\nfunction initColor(): void {\n if (!orgaAttributes.value) {\n return;\n }\n color.value = Object.hasOwn(orgaAttributes.value, \"COLOR\")\n ? (orgaAttributes.value.COLOR as string)\n : \"#40a372\";\n theme.value = Object.hasOwn(orgaAttributes.value, \"THEME\")\n ? (orgaAttributes.value.THEME as string)\n : \"#000000\";\n}\n</script>\n\n<style lang=\"scss\">\n@use \"../../../style/iframe\";\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAgDA,MAAM,mBAAmB,2BACjB,OAAO,kCACf;EACA,MAAM,oBAAoB,2BAClB,OAAO,mCACf;EACA,MAAM,yBAAyB,2BACvB,OAAO,wCACf;EAGA,MAAM,QAAQ;EAMd,MAAM,eAAe,IAAI,KAAK;EAC9B,MAAM,QAAQ,IAAI,SAAS;EAC3B,MAAM,QAAQ,IAAI,SAAS;EAC3B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,iBAA0F,IAAI,KAAA,CAAS;EAI7G,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,YAAY,aAAa;EAC/B,MAAM,WAAW,YAAY;EAC7B,MAAM,iBAAiB,kBAAkB;EAIzC,MAAM,oBAAoB,eAAe,MAAM,OAAO,mBAAmB,UAAU,UAAU;EAC7F,MAAM,YAAY,eAAe;GAC/B,IAAI,MAAM,GAAG,SAAS,cAAc,mBAClC,MAAM,OAAO,GACd,iBAAiB,MAAM,eAAe,SAAS,MAAM,MAAM,UAC1D,CACF,EAAE,SAAS,MAAM,MAAM,UAAU,CAAC;GAClC,IAAI,WAAW,OACb,OAAO;GAET,OAAO;EACT,CAAC;EACD,MAAM,SAAS,eAAe;GAC5B,OAAO,gBAAgB,UAAU,MAAM;EACzC,CAAC;EAGD,oBAAkB,gBAAgB,CAAC;EAGnC,eAAe,kBAAkB;GAC/B,eAAe,QAAQ,MAAM,eAAe,kBAAkB,UAAU,cAAc,EAAE;GACxF,UAAU;EACZ;EACA,SAAS,YAAkB;GACzB,IAAI,CAAC,eAAe,OAClB;GAEF,MAAM,QAAQ,OAAO,OAAO,eAAe,OAAO,OAAO,IACpD,eAAe,MAAM,QACtB;GACJ,MAAM,QAAQ,OAAO,OAAO,eAAe,OAAO,OAAO,IACpD,eAAe,MAAM,QACtB;EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBCjHW,OAAM,8BAA6B;mBACtC,OAAM,OAAM;mBAGX,OAAM,SAAQ;;mBAYZ,OAAM,qBAAoB;mBAExB,OAAM,eAAc;;qBAlB/B,mBAqCU,WArCV,YAqCU,CApCR,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,OAAA,CAAA,GAAA,CAAA,GAEN,mBAgCM,OAhCN,YAgCM,CA/BJ,mBAUE,UAAA;EATA,IAAG;EACH,OAAM;EACL,KAAK,OAAA;EACN,aAAY;EACZ,OAAM;EACN,QAAO;EACP,OAAA,EAAA,YAAA,SAAA;EACA,OAAM;EACN,OAAM;0BAER,mBAmBM,OAnBN,YAmBM;EAlBJ,YAAiE,OAAA,sBAAA;GAAtC,OAAO,OAAA;2DAAA,OAAA,QAAK;GAAU,OAAO,OAAA;2DAAA,OAAA,QAAK;;EAC7D,mBAA4D,OAA5D,YAA4D,gBAA/B,OAAA,EAAC,mBAAA,CAAA,GAAA,CAAA;EAEtB,OAAA,qBAAA,UAAA,GADR,YAGE,OAAA,2BAAA;;GADQ,eAAa,OAAA;gEAAA,OAAA,aAAU;;EAGzB,OAAA,gBAAA,UAAA,GADR,YAKE,OAAA,qBAAA;;GAHC,cAAY,OAAA;GACZ,gBAAc,OAAA;GACd,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,eAAY;;EAEtB,mBAKS,UAAA;GAJP,OAAM;GACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,eAAY;qBAEjB,OAAA,EAAC,kBAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharePlayerTypes-Dkmmw2We.mjs","names":[],"sources":["../src/components/display/sharing/SharePlayerTypes.vue","../src/components/display/sharing/SharePlayerTypes.vue"],"sourcesContent":["<template>\n <label for=\"iframe-select\" title=\"select miniplayer\" >\n <select\n id=\"iframe-select\"\n :value=\"iFrameModel\"\n @change=\"selectChange($event)\"\n >\n <optgroup v-show=\"isCustomPlayer\" id=\"player-default-opt-group\" :label=\"t('Default version')\"></optgroup>\n <Teleport defer :disabled=\"!isCustomPlayer\" to=\"#player-default-opt-group\">\n <template v-for=\"option in optionsSelect\" :key=\"option.value\">\n <option v-if=\"option.condition\" :value=\"option.value\">\n {{ option.name }}\n </option>\n </template>\n </Teleport>\n \n <optgroup v-if=\"isCustomPlayer\" :label=\"t('Custom version')\">\n <option\n v-for=\"player in customPlayersDisplay\"\n :key=\"player.customId\"\n :value=\"player.customId\"\n >\n {{ t(\"Custom version\") + \" «\" + player.name + \"»\" }}\n </option>\n </optgroup>\n </select>\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CustomPlayer } from \"@/stores/class/general/customPlayer\";\nimport { computed, onBeforeMount, onMounted, Ref, ref } from \"vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { InterfacePageable } from \"@/stores/class/general/interfacePageable\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n iFrameModel: { default: \"default\", type: String },\n typeCustomPlayer: { default: \"\", type: String },\n organisationId: { default: undefined, type: String },\n isLive: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:iFrameModel\", \"update:typeCustomPlayer\"]);\n\n//Data \nconst customPlayers: Ref<Array<CustomPlayer>> = ref([]);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\n\n//Computed\nconst isCustomPlayer = computed(() => 1<=customPlayersDisplay.value.length);\nconst isVideoPodcast = computed(() => undefined !== props.podcast?.video?.videoId);\nconst optionsSelectLive = computed(() => {\n return [\n { name: t(\"Large version\"), value: \"large\", condition: true },\n {\n name: t(\"High version\"),\n value: \"videoLive\",\n condition: props.podcast?.podcastId,\n },\n ];\n});\nconst optionsSelect = computed(() => {\n if (props.isLive) {\n return optionsSelectLive.value;\n }\n return [\n {\n name: t(\"Video Version\"),\n value: \"video\",\n condition: isVideoPodcast.value,\n },\n { name: t(\"Default version\"), value: \"default\", condition: true },\n { name: t(\"Large version\"), value: \"largeMore\", condition: props.podcast?.podcastId, },\n {\n name: props.podcast?.podcastId ? t(\"Minimalist length version\"): t(\"Large version\"),\n value: \"large\",\n condition: true,\n },\n {\n name: t(\"Emission version\"),\n value: \"emission\",\n condition: props.podcast?.podcastId,\n },\n {\n name: t(\"Large emission version\"),\n value: \"emissionLarge\",\n condition: props.podcast?.podcastId,\n },\n ];\n});\nconst customPlayersDisplay = computed(() => {\n return customPlayers.value.filter((player: CustomPlayer) => {\n return (\n ((\"EPISODE\" === player.typePlayer) &&\n props.podcast?.podcastId) ||\n (\"EMISSION\" === player.typePlayer &&\n props.emission &&\n !props.podcast) ||\n (\"PLAYLIST\" === player.typePlayer && props.playlist)\n );\n }).sort((a,b) => {\n if(a.name > b.name){\n return 1;\n }\n return (b.name > a.name) ? -1 : 0;\n });\n});\n\n\nonBeforeMount(()=>{\n if (props.isLive) {\n return;\n }\n initCustomPlayers();\n})\nonMounted(()=>{\n if (isVideoPodcast.value) {\n emit(\"update:iFrameModel\", \"video\");\n }\n})\n \n\n//Methods\nfunction isNumeric(value: string): boolean {\n return /^-?\\d+$/.test(value);\n}\nfunction selectChange($event: Event) {\n const val = $event.target.value;\n if (!val) {\n return;\n }\n if (isNumeric(val)) {\n const customPlayer = customPlayersDisplay.value.find((p) => {\n return p.customId.toString() === val;\n });\n if (customPlayer) {\n selectCustomPlayer(customPlayer);\n }\n } else {\n emit(\"update:iFrameModel\", val);\n }\n}\nasync function fetchPlayerPaginate(type: string): Promise<CustomPlayer[]> {\n let players = await classicApi.fetchData<InterfacePageable<CustomPlayer>>(\n {\n api: 6,\n path: \"customPlayer/type/\" + props.organisationId + \"/\" + type,\n isNotAuth: true,\n },\n );\n let playersContent = players.content;\n const totalCount = players.totalElements;\n let index = 1;\n while (totalCount > playersContent.length) {\n players = await classicApi.fetchData<InterfacePageable<CustomPlayer>>({\n api: 6,\n path:\n \"customPlayer/type/\" +\n props.organisationId +\n \"/\" +\n type +\n \"?start=\" +\n index,\n isNotAuth: true,\n });\n playersContent = playersContent.concat(players.content);\n ++index;\n }\n return playersContent;\n}\nfunction selectCustomPlayer(customPlayer: CustomPlayer) {\n emit(\"update:typeCustomPlayer\", customPlayer.typePlayer);\n emit(\"update:iFrameModel\", customPlayer.customId.toString());\n}\n\nasync function fetchCustomPlayers(\n type: string,\n selectIfPossible = true,\n): Promise<boolean> {\n const customPlayersForType = await fetchPlayerPaginate(type);\n customPlayers.value = customPlayers.value.concat(customPlayersForType);\n if (\n !isVideoPodcast.value &&\n selectIfPossible &&\n customPlayersForType?.[0]?.selected\n ) {\n selectCustomPlayer(customPlayers.value[0]);\n return true;\n }\n return false;\n}\nasync function initCustomPlayers(): Promise<void> {\n if (undefined === authStore.authOrgaId) return;\n if (props.playlist) {\n fetchCustomPlayers(\"PLAYLIST\");\n } else if (props.emission && !props.podcast) {\n fetchCustomPlayers(\"EMISSION\");\n } else {\n const episodeSelected = await fetchCustomPlayers(\"EPISODE\");\n await fetchCustomPlayers(\n \"EMISSION\",\n !episodeSelected,\n );\n }\n}\n</script>\n","<template>\n <label for=\"iframe-select\" title=\"select miniplayer\" >\n <select\n id=\"iframe-select\"\n :value=\"iFrameModel\"\n @change=\"selectChange($event)\"\n >\n <optgroup v-show=\"isCustomPlayer\" id=\"player-default-opt-group\" :label=\"t('Default version')\"></optgroup>\n <Teleport defer :disabled=\"!isCustomPlayer\" to=\"#player-default-opt-group\">\n <template v-for=\"option in optionsSelect\" :key=\"option.value\">\n <option v-if=\"option.condition\" :value=\"option.value\">\n {{ option.name }}\n </option>\n </template>\n </Teleport>\n \n <optgroup v-if=\"isCustomPlayer\" :label=\"t('Custom version')\">\n <option\n v-for=\"player in customPlayersDisplay\"\n :key=\"player.customId\"\n :value=\"player.customId\"\n >\n {{ t(\"Custom version\") + \" «\" + player.name + \"»\" }}\n </option>\n </optgroup>\n </select>\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CustomPlayer } from \"@/stores/class/general/customPlayer\";\nimport { computed, onBeforeMount, onMounted, Ref, ref } from \"vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { InterfacePageable } from \"@/stores/class/general/interfacePageable\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n iFrameModel: { default: \"default\", type: String },\n typeCustomPlayer: { default: \"\", type: String },\n organisationId: { default: undefined, type: String },\n isLive: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:iFrameModel\", \"update:typeCustomPlayer\"]);\n\n//Data \nconst customPlayers: Ref<Array<CustomPlayer>> = ref([]);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\n\n//Computed\nconst isCustomPlayer = computed(() => 1<=customPlayersDisplay.value.length);\nconst isVideoPodcast = computed(() => undefined !== props.podcast?.video?.videoId);\nconst optionsSelectLive = computed(() => {\n return [\n { name: t(\"Large version\"), value: \"large\", condition: true },\n {\n name: t(\"High version\"),\n value: \"videoLive\",\n condition: props.podcast?.podcastId,\n },\n ];\n});\nconst optionsSelect = computed(() => {\n if (props.isLive) {\n return optionsSelectLive.value;\n }\n return [\n {\n name: t(\"Video Version\"),\n value: \"video\",\n condition: isVideoPodcast.value,\n },\n { name: t(\"Default version\"), value: \"default\", condition: true },\n { name: t(\"Large version\"), value: \"largeMore\", condition: props.podcast?.podcastId, },\n {\n name: props.podcast?.podcastId ? t(\"Minimalist length version\"): t(\"Large version\"),\n value: \"large\",\n condition: true,\n },\n {\n name: t(\"Emission version\"),\n value: \"emission\",\n condition: props.podcast?.podcastId,\n },\n {\n name: t(\"Large emission version\"),\n value: \"emissionLarge\",\n condition: props.podcast?.podcastId,\n },\n ];\n});\nconst customPlayersDisplay = computed(() => {\n return customPlayers.value.filter((player: CustomPlayer) => {\n return (\n ((\"EPISODE\" === player.typePlayer) &&\n props.podcast?.podcastId) ||\n (\"EMISSION\" === player.typePlayer &&\n props.emission &&\n !props.podcast) ||\n (\"PLAYLIST\" === player.typePlayer && props.playlist)\n );\n }).sort((a,b) => {\n if(a.name > b.name){\n return 1;\n }\n return (b.name > a.name) ? -1 : 0;\n });\n});\n\n\nonBeforeMount(()=>{\n if (props.isLive) {\n return;\n }\n initCustomPlayers();\n})\nonMounted(()=>{\n if (isVideoPodcast.value) {\n emit(\"update:iFrameModel\", \"video\");\n }\n})\n \n\n//Methods\nfunction isNumeric(value: string): boolean {\n return /^-?\\d+$/.test(value);\n}\nfunction selectChange($event: Event) {\n const val = $event.target.value;\n if (!val) {\n return;\n }\n if (isNumeric(val)) {\n const customPlayer = customPlayersDisplay.value.find((p) => {\n return p.customId.toString() === val;\n });\n if (customPlayer) {\n selectCustomPlayer(customPlayer);\n }\n } else {\n emit(\"update:iFrameModel\", val);\n }\n}\nasync function fetchPlayerPaginate(type: string): Promise<CustomPlayer[]> {\n let players = await classicApi.fetchData<InterfacePageable<CustomPlayer>>(\n {\n api: 6,\n path: \"customPlayer/type/\" + props.organisationId + \"/\" + type,\n isNotAuth: true,\n },\n );\n let playersContent = players.content;\n const totalCount = players.totalElements;\n let index = 1;\n while (totalCount > playersContent.length) {\n players = await classicApi.fetchData<InterfacePageable<CustomPlayer>>({\n api: 6,\n path:\n \"customPlayer/type/\" +\n props.organisationId +\n \"/\" +\n type +\n \"?start=\" +\n index,\n isNotAuth: true,\n });\n playersContent = playersContent.concat(players.content);\n ++index;\n }\n return playersContent;\n}\nfunction selectCustomPlayer(customPlayer: CustomPlayer) {\n emit(\"update:typeCustomPlayer\", customPlayer.typePlayer);\n emit(\"update:iFrameModel\", customPlayer.customId.toString());\n}\n\nasync function fetchCustomPlayers(\n type: string,\n selectIfPossible = true,\n): Promise<boolean> {\n const customPlayersForType = await fetchPlayerPaginate(type);\n customPlayers.value = customPlayers.value.concat(customPlayersForType);\n if (\n !isVideoPodcast.value &&\n selectIfPossible &&\n customPlayersForType?.[0]?.selected\n ) {\n selectCustomPlayer(customPlayers.value[0]);\n return true;\n }\n return false;\n}\nasync function initCustomPlayers(): Promise<void> {\n if (undefined === authStore.authOrgaId) return;\n if (props.playlist) {\n fetchCustomPlayers(\"PLAYLIST\");\n } else if (props.emission && !props.podcast) {\n fetchCustomPlayers(\"EMISSION\");\n } else {\n const episodeSelected = await fetchCustomPlayers(\"EPISODE\");\n await fetchCustomPlayers(\n \"EMISSION\",\n !episodeSelected,\n );\n }\n}\n</script>\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { i as useAuthStore, t as classicApi_default } from "./classicApi-CkDHWZG1.mjs";
2
+ import { i as useAuthStore, t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
3
3
  import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, onBeforeMount, onMounted, openBlock, ref, renderList, toDisplayString, vShow, withDirectives } from "vue";
4
4
  import { useI18n } from "vue-i18n";
5
5
  //#region src/components/display/sharing/SharePlayerTypes.vue?vue&type=script&setup=true&lang.ts
@@ -229,4 +229,4 @@ var SharePlayerTypes_default = /*#__PURE__*/ _plugin_vue_export_helper_default(S
229
229
  //#endregion
230
230
  export { SharePlayerTypes_default as default };
231
231
 
232
- //# sourceMappingURL=SharePlayerTypes-eYSeVl-W.mjs.map
232
+ //# sourceMappingURL=SharePlayerTypes-cUgCFZ65.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharePlayerTypes-cUgCFZ65.mjs","names":[],"sources":["../src/components/display/sharing/SharePlayerTypes.vue","../src/components/display/sharing/SharePlayerTypes.vue"],"sourcesContent":["<template>\n <label for=\"iframe-select\" title=\"select miniplayer\" >\n <select\n id=\"iframe-select\"\n :value=\"iFrameModel\"\n @change=\"selectChange($event)\"\n >\n <optgroup v-show=\"isCustomPlayer\" id=\"player-default-opt-group\" :label=\"t('Default version')\"></optgroup>\n <Teleport defer :disabled=\"!isCustomPlayer\" to=\"#player-default-opt-group\">\n <template v-for=\"option in optionsSelect\" :key=\"option.value\">\n <option v-if=\"option.condition\" :value=\"option.value\">\n {{ option.name }}\n </option>\n </template>\n </Teleport>\n \n <optgroup v-if=\"isCustomPlayer\" :label=\"t('Custom version')\">\n <option\n v-for=\"player in customPlayersDisplay\"\n :key=\"player.customId\"\n :value=\"player.customId\"\n >\n {{ t(\"Custom version\") + \" «\" + player.name + \"»\" }}\n </option>\n </optgroup>\n </select>\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CustomPlayer } from \"@/stores/class/general/customPlayer\";\nimport { computed, onBeforeMount, onMounted, Ref, ref } from \"vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { InterfacePageable } from \"@/stores/class/general/interfacePageable\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n iFrameModel: { default: \"default\", type: String },\n typeCustomPlayer: { default: \"\", type: String },\n organisationId: { default: undefined, type: String },\n isLive: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:iFrameModel\", \"update:typeCustomPlayer\"]);\n\n//Data \nconst customPlayers: Ref<Array<CustomPlayer>> = ref([]);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\n\n//Computed\nconst isCustomPlayer = computed(() => 1<=customPlayersDisplay.value.length);\nconst isVideoPodcast = computed(() => undefined !== props.podcast?.video?.videoId);\nconst optionsSelectLive = computed(() => {\n return [\n { name: t(\"Large version\"), value: \"large\", condition: true },\n {\n name: t(\"High version\"),\n value: \"videoLive\",\n condition: props.podcast?.podcastId,\n },\n ];\n});\nconst optionsSelect = computed(() => {\n if (props.isLive) {\n return optionsSelectLive.value;\n }\n return [\n {\n name: t(\"Video Version\"),\n value: \"video\",\n condition: isVideoPodcast.value,\n },\n { name: t(\"Default version\"), value: \"default\", condition: true },\n { name: t(\"Large version\"), value: \"largeMore\", condition: props.podcast?.podcastId, },\n {\n name: props.podcast?.podcastId ? t(\"Minimalist length version\"): t(\"Large version\"),\n value: \"large\",\n condition: true,\n },\n {\n name: t(\"Emission version\"),\n value: \"emission\",\n condition: props.podcast?.podcastId,\n },\n {\n name: t(\"Large emission version\"),\n value: \"emissionLarge\",\n condition: props.podcast?.podcastId,\n },\n ];\n});\nconst customPlayersDisplay = computed(() => {\n return customPlayers.value.filter((player: CustomPlayer) => {\n return (\n ((\"EPISODE\" === player.typePlayer) &&\n props.podcast?.podcastId) ||\n (\"EMISSION\" === player.typePlayer &&\n props.emission &&\n !props.podcast) ||\n (\"PLAYLIST\" === player.typePlayer && props.playlist)\n );\n }).sort((a,b) => {\n if(a.name > b.name){\n return 1;\n }\n return (b.name > a.name) ? -1 : 0;\n });\n});\n\n\nonBeforeMount(()=>{\n if (props.isLive) {\n return;\n }\n initCustomPlayers();\n})\nonMounted(()=>{\n if (isVideoPodcast.value) {\n emit(\"update:iFrameModel\", \"video\");\n }\n})\n \n\n//Methods\nfunction isNumeric(value: string): boolean {\n return /^-?\\d+$/.test(value);\n}\nfunction selectChange($event: Event) {\n const val = $event.target.value;\n if (!val) {\n return;\n }\n if (isNumeric(val)) {\n const customPlayer = customPlayersDisplay.value.find((p) => {\n return p.customId.toString() === val;\n });\n if (customPlayer) {\n selectCustomPlayer(customPlayer);\n }\n } else {\n emit(\"update:iFrameModel\", val);\n }\n}\nasync function fetchPlayerPaginate(type: string): Promise<CustomPlayer[]> {\n let players = await classicApi.fetchData<InterfacePageable<CustomPlayer>>(\n {\n api: 6,\n path: \"customPlayer/type/\" + props.organisationId + \"/\" + type,\n isNotAuth: true,\n },\n );\n let playersContent = players.content;\n const totalCount = players.totalElements;\n let index = 1;\n while (totalCount > playersContent.length) {\n players = await classicApi.fetchData<InterfacePageable<CustomPlayer>>({\n api: 6,\n path:\n \"customPlayer/type/\" +\n props.organisationId +\n \"/\" +\n type +\n \"?start=\" +\n index,\n isNotAuth: true,\n });\n playersContent = playersContent.concat(players.content);\n ++index;\n }\n return playersContent;\n}\nfunction selectCustomPlayer(customPlayer: CustomPlayer) {\n emit(\"update:typeCustomPlayer\", customPlayer.typePlayer);\n emit(\"update:iFrameModel\", customPlayer.customId.toString());\n}\n\nasync function fetchCustomPlayers(\n type: string,\n selectIfPossible = true,\n): Promise<boolean> {\n const customPlayersForType = await fetchPlayerPaginate(type);\n customPlayers.value = customPlayers.value.concat(customPlayersForType);\n if (\n !isVideoPodcast.value &&\n selectIfPossible &&\n customPlayersForType?.[0]?.selected\n ) {\n selectCustomPlayer(customPlayers.value[0]);\n return true;\n }\n return false;\n}\nasync function initCustomPlayers(): Promise<void> {\n if (undefined === authStore.authOrgaId) return;\n if (props.playlist) {\n fetchCustomPlayers(\"PLAYLIST\");\n } else if (props.emission && !props.podcast) {\n fetchCustomPlayers(\"EMISSION\");\n } else {\n const episodeSelected = await fetchCustomPlayers(\"EPISODE\");\n await fetchCustomPlayers(\n \"EMISSION\",\n !episodeSelected,\n );\n }\n}\n</script>\n","<template>\n <label for=\"iframe-select\" title=\"select miniplayer\" >\n <select\n id=\"iframe-select\"\n :value=\"iFrameModel\"\n @change=\"selectChange($event)\"\n >\n <optgroup v-show=\"isCustomPlayer\" id=\"player-default-opt-group\" :label=\"t('Default version')\"></optgroup>\n <Teleport defer :disabled=\"!isCustomPlayer\" to=\"#player-default-opt-group\">\n <template v-for=\"option in optionsSelect\" :key=\"option.value\">\n <option v-if=\"option.condition\" :value=\"option.value\">\n {{ option.name }}\n </option>\n </template>\n </Teleport>\n \n <optgroup v-if=\"isCustomPlayer\" :label=\"t('Custom version')\">\n <option\n v-for=\"player in customPlayersDisplay\"\n :key=\"player.customId\"\n :value=\"player.customId\"\n >\n {{ t(\"Custom version\") + \" «\" + player.name + \"»\" }}\n </option>\n </optgroup>\n </select>\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CustomPlayer } from \"@/stores/class/general/customPlayer\";\nimport { computed, onBeforeMount, onMounted, Ref, ref } from \"vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { InterfacePageable } from \"@/stores/class/general/interfacePageable\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n iFrameModel: { default: \"default\", type: String },\n typeCustomPlayer: { default: \"\", type: String },\n organisationId: { default: undefined, type: String },\n isLive: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:iFrameModel\", \"update:typeCustomPlayer\"]);\n\n//Data \nconst customPlayers: Ref<Array<CustomPlayer>> = ref([]);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\n\n//Computed\nconst isCustomPlayer = computed(() => 1<=customPlayersDisplay.value.length);\nconst isVideoPodcast = computed(() => undefined !== props.podcast?.video?.videoId);\nconst optionsSelectLive = computed(() => {\n return [\n { name: t(\"Large version\"), value: \"large\", condition: true },\n {\n name: t(\"High version\"),\n value: \"videoLive\",\n condition: props.podcast?.podcastId,\n },\n ];\n});\nconst optionsSelect = computed(() => {\n if (props.isLive) {\n return optionsSelectLive.value;\n }\n return [\n {\n name: t(\"Video Version\"),\n value: \"video\",\n condition: isVideoPodcast.value,\n },\n { name: t(\"Default version\"), value: \"default\", condition: true },\n { name: t(\"Large version\"), value: \"largeMore\", condition: props.podcast?.podcastId, },\n {\n name: props.podcast?.podcastId ? t(\"Minimalist length version\"): t(\"Large version\"),\n value: \"large\",\n condition: true,\n },\n {\n name: t(\"Emission version\"),\n value: \"emission\",\n condition: props.podcast?.podcastId,\n },\n {\n name: t(\"Large emission version\"),\n value: \"emissionLarge\",\n condition: props.podcast?.podcastId,\n },\n ];\n});\nconst customPlayersDisplay = computed(() => {\n return customPlayers.value.filter((player: CustomPlayer) => {\n return (\n ((\"EPISODE\" === player.typePlayer) &&\n props.podcast?.podcastId) ||\n (\"EMISSION\" === player.typePlayer &&\n props.emission &&\n !props.podcast) ||\n (\"PLAYLIST\" === player.typePlayer && props.playlist)\n );\n }).sort((a,b) => {\n if(a.name > b.name){\n return 1;\n }\n return (b.name > a.name) ? -1 : 0;\n });\n});\n\n\nonBeforeMount(()=>{\n if (props.isLive) {\n return;\n }\n initCustomPlayers();\n})\nonMounted(()=>{\n if (isVideoPodcast.value) {\n emit(\"update:iFrameModel\", \"video\");\n }\n})\n \n\n//Methods\nfunction isNumeric(value: string): boolean {\n return /^-?\\d+$/.test(value);\n}\nfunction selectChange($event: Event) {\n const val = $event.target.value;\n if (!val) {\n return;\n }\n if (isNumeric(val)) {\n const customPlayer = customPlayersDisplay.value.find((p) => {\n return p.customId.toString() === val;\n });\n if (customPlayer) {\n selectCustomPlayer(customPlayer);\n }\n } else {\n emit(\"update:iFrameModel\", val);\n }\n}\nasync function fetchPlayerPaginate(type: string): Promise<CustomPlayer[]> {\n let players = await classicApi.fetchData<InterfacePageable<CustomPlayer>>(\n {\n api: 6,\n path: \"customPlayer/type/\" + props.organisationId + \"/\" + type,\n isNotAuth: true,\n },\n );\n let playersContent = players.content;\n const totalCount = players.totalElements;\n let index = 1;\n while (totalCount > playersContent.length) {\n players = await classicApi.fetchData<InterfacePageable<CustomPlayer>>({\n api: 6,\n path:\n \"customPlayer/type/\" +\n props.organisationId +\n \"/\" +\n type +\n \"?start=\" +\n index,\n isNotAuth: true,\n });\n playersContent = playersContent.concat(players.content);\n ++index;\n }\n return playersContent;\n}\nfunction selectCustomPlayer(customPlayer: CustomPlayer) {\n emit(\"update:typeCustomPlayer\", customPlayer.typePlayer);\n emit(\"update:iFrameModel\", customPlayer.customId.toString());\n}\n\nasync function fetchCustomPlayers(\n type: string,\n selectIfPossible = true,\n): Promise<boolean> {\n const customPlayersForType = await fetchPlayerPaginate(type);\n customPlayers.value = customPlayers.value.concat(customPlayersForType);\n if (\n !isVideoPodcast.value &&\n selectIfPossible &&\n customPlayersForType?.[0]?.selected\n ) {\n selectCustomPlayer(customPlayers.value[0]);\n return true;\n }\n return false;\n}\nasync function initCustomPlayers(): Promise<void> {\n if (undefined === authStore.authOrgaId) return;\n if (props.playlist) {\n fetchCustomPlayers(\"PLAYLIST\");\n } else if (props.emission && !props.podcast) {\n fetchCustomPlayers(\"EMISSION\");\n } else {\n const episodeSelected = await fetchCustomPlayers(\"EPISODE\");\n await fetchCustomPlayers(\n \"EMISSION\",\n !episodeSelected,\n );\n }\n}\n</script>\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { T as useSaveFetchStore, i as useAuthStore } from "./classicApi-CkDHWZG1.mjs";
2
+ import { T as useSaveFetchStore, i as useAuthStore } from "./classicApi-xjOqAovv.mjs";
3
3
  import { t as XIcon_default } from "./XIcon-Dz4rI_Hd.mjs";
4
4
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, onMounted, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString } from "vue";
5
5
  import { useI18n } from "vue-i18n";
@@ -156,4 +156,4 @@ var ShareSocialsButtons_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
156
156
  //#endregion
157
157
  export { ShareSocialsButtons_default as default };
158
158
 
159
- //# sourceMappingURL=ShareSocialsButtons-iHtSoQ3K.mjs.map
159
+ //# sourceMappingURL=ShareSocialsButtons-BYsXc2Jr.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareSocialsButtons-BYsXc2Jr.mjs","names":[],"sources":["../src/components/icons/BlueSkyIcon.vue","../src/components/icons/BlueSkyIcon.vue","../src/components/display/sharing/ShareSocialsButtons.vue","../src/components/display/sharing/ShareSocialsButtons.vue"],"sourcesContent":["<template>\n <span\n :aria-hidden=\"!title\"\n class=\"material-design-icon\"\n :title=\"title\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 600 530\"\n :height=\"size\"\n :width=\"size\"\n :fill=\"fillColor\"\n >\n <path\n d=\"m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z\"\n />\n </svg>\n </span>\n </template>\n \n<script setup lang=\"ts\">\n//Props \ndefineProps({\n size: { default: 24, type: Number },\n title: { default: undefined, type: String },\n fillColor: { default: \"currentColor\", type: String },\n})\n</script>\n ","<template>\n <span\n :aria-hidden=\"!title\"\n class=\"material-design-icon\"\n :title=\"title\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 600 530\"\n :height=\"size\"\n :width=\"size\"\n :fill=\"fillColor\"\n >\n <path\n d=\"m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z\"\n />\n </svg>\n </span>\n </template>\n \n<script setup lang=\"ts\">\n//Props \ndefineProps({\n size: { default: 24, type: Number },\n title: { default: undefined, type: String },\n fillColor: { default: \"currentColor\", type: String },\n})\n</script>\n ","<template>\n <section v-if=\"!isLoading && !authStore.isGarRole && (authStore.authOrgaId || !noSharing)\" id=\"share-buttons-podcast-section\" class=\"module-box\">\n <h3 class=\"mb-2\">\n {{ t(\"Share in one click\") }}\n </h3>\n <div class=\"d-flex align-items-center\">\n <template v-for=\"button in arrayShareButtons\" :key=\"button.title\">\n <a\n v-if=\"button.condition\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :href=\"button.url\"\n class=\"btn share-btn mb-2 text-dark me-2\"\n :title=\"t('New window', {text: button.title})\"\n >\n <component :is=\"button.icon\" :size=\"34\" />\n </a>\n </template>\n <slot name=\"additional-buttons\"/>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport XIcon from \"../../icons/XIcon.vue\";\nimport BlueSkyIcon from \"../../icons/BlueSkyIcon.vue\";\nimport WhatsappIcon from \"vue-material-design-icons/Whatsapp.vue\";\nimport LinkedinIcon from \"vue-material-design-icons/Linkedin.vue\";\nimport FacebookIcon from \"vue-material-design-icons/Facebook.vue\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { computed, onMounted, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst noSharing = ref(true);\nconst isLoading = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst saveFetchStore =useSaveFetchStore();\n\n//Computed\nconst arrayShareButtons = computed(() => {\n return [\n {\n title: \"Facebook\",\n icon: FacebookIcon,\n url: `https://www.facebook.com/sharer/sharer.php?u=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"X\",\n icon: XIcon,\n url: `https://twitter.com/intent/tweet?text=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Linkedin\",\n icon: LinkedinIcon,\n url: `https://www.linkedin.com/sharing/share-offsite/?url=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Bluesky\",\n icon: BlueSkyIcon,\n url: `https://bsky.app/intent/compose?text=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Whatsapp\",\n icon: WhatsappIcon,\n url: `whatsapp://send?text=${urlPage.value}`,\n condition: window.matchMedia(\"(hover: none)\").matches,\n },\n];\n});\nconst urlPage = computed(() =>window.location.href);\n\nonMounted(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\n</script>","<template>\n <section v-if=\"!isLoading && !authStore.isGarRole && (authStore.authOrgaId || !noSharing)\" id=\"share-buttons-podcast-section\" class=\"module-box\">\n <h3 class=\"mb-2\">\n {{ t(\"Share in one click\") }}\n </h3>\n <div class=\"d-flex align-items-center\">\n <template v-for=\"button in arrayShareButtons\" :key=\"button.title\">\n <a\n v-if=\"button.condition\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :href=\"button.url\"\n class=\"btn share-btn mb-2 text-dark me-2\"\n :title=\"t('New window', {text: button.title})\"\n >\n <component :is=\"button.icon\" :size=\"34\" />\n </a>\n </template>\n <slot name=\"additional-buttons\"/>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport XIcon from \"../../icons/XIcon.vue\";\nimport BlueSkyIcon from \"../../icons/BlueSkyIcon.vue\";\nimport WhatsappIcon from \"vue-material-design-icons/Whatsapp.vue\";\nimport LinkedinIcon from \"vue-material-design-icons/Linkedin.vue\";\nimport FacebookIcon from \"vue-material-design-icons/Facebook.vue\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { computed, onMounted, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst noSharing = ref(true);\nconst isLoading = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst saveFetchStore =useSaveFetchStore();\n\n//Computed\nconst arrayShareButtons = computed(() => {\n return [\n {\n title: \"Facebook\",\n icon: FacebookIcon,\n url: `https://www.facebook.com/sharer/sharer.php?u=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"X\",\n icon: XIcon,\n url: `https://twitter.com/intent/tweet?text=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Linkedin\",\n icon: LinkedinIcon,\n url: `https://www.linkedin.com/sharing/share-offsite/?url=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Bluesky\",\n icon: BlueSkyIcon,\n url: `https://bsky.app/intent/compose?text=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Whatsapp\",\n icon: WhatsappIcon,\n url: `whatsapp://send?text=${urlPage.value}`,\n condition: window.matchMedia(\"(hover: none)\").matches,\n },\n];\n});\nconst urlPage = computed(() =>window.location.href);\n\nonMounted(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\n</script>"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBCCI,mBAgBO,QAAA;EAfJ,eAAW,CAAG,OAAA;EACf,OAAM;EACL,OAAO,OAAA;mBAER,mBAUM,OAAA;EATJ,OAAM;EACN,SAAQ;EACP,QAAQ,OAAA;EACR,OAAO,OAAA;EACP,MAAM,OAAA;mCAEP,mBAEE,QAAA,EADA,GAAE,ilBAAglB,GAAA,MAAA,EAAA,CAAA,EAAA,GAAA,GAAA,YAAA,EAAA,GAAA,GAAA,YAAA;;;;;;;;;;;;;ECqB5lB,MAAM,QAAQ;EAKd,MAAM,YAAY,IAAI,IAAI;EAC1B,MAAM,YAAY,IAAI,IAAI;EAG1B,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,YAAY,aAAa;EAC/B,MAAM,iBAAgB,kBAAkB;EAGxC,MAAM,oBAAoB,eAAe;GACvC,OAAO;IACP;KACE,OAAO;KACP,MAAM;KACN,KAAK,gDAAgD,QAAQ;KAC7D,WAAW;IACb;IACA;KACE,OAAO;KACP,MAAM;KACN,KAAK,yCAAyC,QAAQ;KACtD,WAAW;IACb;IACA;KACE,OAAO;KACP,MAAM;KACN,KAAK,uDAAuD,QAAQ;KACpE,WAAW;IACb;IACA;KACE,OAAO;KACP,MAAM;KACN,KAAK,wCAAwC,QAAQ;KACrD,WAAW;IACb;IACA;KACE,OAAO;KACP,MAAM;KACN,KAAK,wBAAwB,QAAQ;KACrC,WAAW,OAAO,WAAW,eAAe,EAAE;IAChD;GACF;EACA,CAAC;EACD,MAAM,UAAU,eAAc,OAAO,SAAS,IAAI;EAElD,gBAAc,iBAAiB,CAAC;EAIhC,eAAe,mBAAmB;GAChC,IAAI,CAAC,MAAM,gBACT;GAGF,UAAU,QAAQ,YAAW,MADJ,eAAe,kBAAkB,MAAM,cAAc,GACtC;GACxC,UAAU,QAAQ;EACpB;;;;;;;;;;;;;;;;;;;;;;;CC/F6F,IAAG;CAAgC,OAAM;;mBAC9H,OAAM,OAAM;mBAGX,OAAM,4BAA2B;;;SAJxB,OAAA,aAAS,CAAK,OAAA,UAAU,cAAc,OAAA,UAAU,cAAU,CAAK,OAAA,cAAA,UAAA,GAA/E,mBAmBU,WAnBV,YAmBU,CAlBR,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,oBAAA,CAAA,GAAA,CAAA,GAEN,mBAcM,OAdN,YAcM,EAAA,UAAA,IAAA,GAbJ,mBAWW,UAAA,MAAA,WAXgB,OAAA,oBAAV,WAAM;0DAA6B,OAAO,MAAA,GAAA,CAEjD,OAAO,aAAA,UAAA,GADf,mBASI,KAAA;;GAPF,KAAI;GACJ,QAAO;GACN,MAAM,OAAO;GACd,OAAM;GACL,OAAO,OAAA,EAAC,cAAA,EAAA,MAAsB,OAAO,MAAK,CAAA;oBAE3C,YAA0C,wBAA1B,OAAO,IAAI,GAAA,EAAG,MAAM,GAAE,CAAA,EAAA,GAAA,GAAA,UAAA,KAAA,mBAAA,QAAA,IAAA,CAAA,GAAA,EAAA;YAG1C,WAAiC,KAAA,QAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,KAAA,mBAAA,QAAA,IAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareSocialsButtons-DZLZc1c6.mjs","names":[],"sources":["../src/components/icons/BlueSkyIcon.vue","../src/components/icons/BlueSkyIcon.vue","../src/components/display/sharing/ShareSocialsButtons.vue","../src/components/display/sharing/ShareSocialsButtons.vue"],"sourcesContent":["<template>\n <span\n :aria-hidden=\"!title\"\n class=\"material-design-icon\"\n :title=\"title\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 600 530\"\n :height=\"size\"\n :width=\"size\"\n :fill=\"fillColor\"\n >\n <path\n d=\"m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z\"\n />\n </svg>\n </span>\n </template>\n \n<script setup lang=\"ts\">\n//Props \ndefineProps({\n size: { default: 24, type: Number },\n title: { default: undefined, type: String },\n fillColor: { default: \"currentColor\", type: String },\n})\n</script>\n ","<template>\n <span\n :aria-hidden=\"!title\"\n class=\"material-design-icon\"\n :title=\"title\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 600 530\"\n :height=\"size\"\n :width=\"size\"\n :fill=\"fillColor\"\n >\n <path\n d=\"m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z\"\n />\n </svg>\n </span>\n </template>\n \n<script setup lang=\"ts\">\n//Props \ndefineProps({\n size: { default: 24, type: Number },\n title: { default: undefined, type: String },\n fillColor: { default: \"currentColor\", type: String },\n})\n</script>\n ","<template>\n <section v-if=\"!isLoading && !authStore.isGarRole && (authStore.authOrgaId || !noSharing)\" id=\"share-buttons-podcast-section\" class=\"module-box\">\n <h3 class=\"mb-2\">\n {{ t(\"Share in one click\") }}\n </h3>\n <div class=\"d-flex align-items-center\">\n <template v-for=\"button in arrayShareButtons\" :key=\"button.title\">\n <a\n v-if=\"button.condition\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :href=\"button.url\"\n class=\"btn share-btn mb-2 text-dark me-2\"\n :title=\"t('New window', {text: button.title})\"\n >\n <component :is=\"button.icon\" :size=\"34\" />\n </a>\n </template>\n <slot name=\"additional-buttons\"/>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport XIcon from \"../../icons/XIcon.vue\";\nimport BlueSkyIcon from \"../../icons/BlueSkyIcon.vue\";\nimport WhatsappIcon from \"vue-material-design-icons/Whatsapp.vue\";\nimport LinkedinIcon from \"vue-material-design-icons/Linkedin.vue\";\nimport FacebookIcon from \"vue-material-design-icons/Facebook.vue\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { computed, onMounted, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst noSharing = ref(true);\nconst isLoading = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst saveFetchStore =useSaveFetchStore();\n\n//Computed\nconst arrayShareButtons = computed(() => {\n return [\n {\n title: \"Facebook\",\n icon: FacebookIcon,\n url: `https://www.facebook.com/sharer/sharer.php?u=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"X\",\n icon: XIcon,\n url: `https://twitter.com/intent/tweet?text=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Linkedin\",\n icon: LinkedinIcon,\n url: `https://www.linkedin.com/sharing/share-offsite/?url=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Bluesky\",\n icon: BlueSkyIcon,\n url: `https://bsky.app/intent/compose?text=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Whatsapp\",\n icon: WhatsappIcon,\n url: `whatsapp://send?text=${urlPage.value}`,\n condition: window.matchMedia(\"(hover: none)\").matches,\n },\n];\n});\nconst urlPage = computed(() =>window.location.href);\n\nonMounted(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\n</script>","<template>\n <section v-if=\"!isLoading && !authStore.isGarRole && (authStore.authOrgaId || !noSharing)\" id=\"share-buttons-podcast-section\" class=\"module-box\">\n <h3 class=\"mb-2\">\n {{ t(\"Share in one click\") }}\n </h3>\n <div class=\"d-flex align-items-center\">\n <template v-for=\"button in arrayShareButtons\" :key=\"button.title\">\n <a\n v-if=\"button.condition\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :href=\"button.url\"\n class=\"btn share-btn mb-2 text-dark me-2\"\n :title=\"t('New window', {text: button.title})\"\n >\n <component :is=\"button.icon\" :size=\"34\" />\n </a>\n </template>\n <slot name=\"additional-buttons\"/>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport XIcon from \"../../icons/XIcon.vue\";\nimport BlueSkyIcon from \"../../icons/BlueSkyIcon.vue\";\nimport WhatsappIcon from \"vue-material-design-icons/Whatsapp.vue\";\nimport LinkedinIcon from \"vue-material-design-icons/Linkedin.vue\";\nimport FacebookIcon from \"vue-material-design-icons/Facebook.vue\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { computed, onMounted, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst noSharing = ref(true);\nconst isLoading = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst saveFetchStore =useSaveFetchStore();\n\n//Computed\nconst arrayShareButtons = computed(() => {\n return [\n {\n title: \"Facebook\",\n icon: FacebookIcon,\n url: `https://www.facebook.com/sharer/sharer.php?u=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"X\",\n icon: XIcon,\n url: `https://twitter.com/intent/tweet?text=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Linkedin\",\n icon: LinkedinIcon,\n url: `https://www.linkedin.com/sharing/share-offsite/?url=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Bluesky\",\n icon: BlueSkyIcon,\n url: `https://bsky.app/intent/compose?text=${urlPage.value}`,\n condition: true,\n },\n {\n title: \"Whatsapp\",\n icon: WhatsappIcon,\n url: `whatsapp://send?text=${urlPage.value}`,\n condition: window.matchMedia(\"(hover: none)\").matches,\n },\n];\n});\nconst urlPage = computed(() =>window.location.href);\n\nonMounted(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\n</script>"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBCCI,mBAgBO,QAAA;EAfJ,eAAW,CAAG,OAAA;EACf,OAAM;EACL,OAAO,OAAA;mBAER,mBAUM,OAAA;EATJ,OAAM;EACN,SAAQ;EACP,QAAQ,OAAA;EACR,OAAO,OAAA;EACP,MAAM,OAAA;mCAEP,mBAEE,QAAA,EADA,GAAE,ilBAAglB,GAAA,MAAA,EAAA,CAAA,EAAA,GAAA,GAAA,YAAA,EAAA,GAAA,GAAA,YAAA;;;;;;;;;;;;;ECqB5lB,MAAM,QAAQ;EAKd,MAAM,YAAY,IAAI,IAAI;EAC1B,MAAM,YAAY,IAAI,IAAI;EAG1B,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,YAAY,aAAa;EAC/B,MAAM,iBAAgB,kBAAkB;EAGxC,MAAM,oBAAoB,eAAe;GACvC,OAAO;IACP;KACE,OAAO;KACP,MAAM;KACN,KAAK,gDAAgD,QAAQ;KAC7D,WAAW;IACb;IACA;KACE,OAAO;KACP,MAAM;KACN,KAAK,yCAAyC,QAAQ;KACtD,WAAW;IACb;IACA;KACE,OAAO;KACP,MAAM;KACN,KAAK,uDAAuD,QAAQ;KACpE,WAAW;IACb;IACA;KACE,OAAO;KACP,MAAM;KACN,KAAK,wCAAwC,QAAQ;KACrD,WAAW;IACb;IACA;KACE,OAAO;KACP,MAAM;KACN,KAAK,wBAAwB,QAAQ;KACrC,WAAW,OAAO,WAAW,eAAe,EAAE;IAChD;GACF;EACA,CAAC;EACD,MAAM,UAAU,eAAc,OAAO,SAAS,IAAI;EAElD,gBAAc,iBAAiB,CAAC;EAIhC,eAAe,mBAAmB;GAChC,IAAI,CAAC,MAAM,gBACT;GAGF,UAAU,QAAQ,YAAW,MADJ,eAAe,kBAAkB,MAAM,cAAc,GACtC;GACxC,UAAU,QAAQ;EACpB;;;;;;;;;;;;;;;;;;;;;;;CC/F6F,IAAG;CAAgC,OAAM;;mBAC9H,OAAM,OAAM;mBAGX,OAAM,4BAA2B;;;SAJxB,OAAA,aAAS,CAAK,OAAA,UAAU,cAAc,OAAA,UAAU,cAAU,CAAK,OAAA,cAAA,UAAA,GAA/E,mBAmBU,WAnBV,YAmBU,CAlBR,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,oBAAA,CAAA,GAAA,CAAA,GAEN,mBAcM,OAdN,YAcM,EAAA,UAAA,IAAA,GAbJ,mBAWW,UAAA,MAAA,WAXgB,OAAA,oBAAV,WAAM;0DAA6B,OAAO,MAAA,GAAA,CAEjD,OAAO,aAAA,UAAA,GADf,mBASI,KAAA;;GAPF,KAAI;GACJ,QAAO;GACN,MAAM,OAAO;GACd,OAAM;GACL,OAAO,OAAA,EAAC,cAAA,EAAA,MAAsB,OAAO,MAAK,CAAA;oBAE3C,YAA0C,wBAA1B,OAAO,IAAI,GAAA,EAAG,MAAM,GAAE,CAAA,EAAA,GAAA,GAAA,UAAA,KAAA,mBAAA,QAAA,IAAA,CAAA,GAAA,EAAA;YAG1C,WAAiC,KAAA,QAAA,oBAAA,CAAA,CAAA,CAAA,CAAA,KAAA,mBAAA,QAAA,IAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-BCsUQENG.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-BGKNHHjx.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-BHIdltFB.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-BKkwQmN6.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-BORx9hRX.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -1,6 +1,6 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { n as usePlayerStore } from "./PlayerStore-DukkcHI_.mjs";
3
- import { t as PlayerComponent_default } from "./PlayerComponent-CxNkDcFc.mjs";
2
+ import { n as usePlayerStore } from "./PlayerStore-vYmnOEA_.mjs";
3
+ import { t as PlayerComponent_default } from "./PlayerComponent-BRBrXVjI.mjs";
4
4
  import { Fragment, createElementBlock, createElementVNode, createVNode, defineComponent, onBeforeMount, onBeforeUnmount, openBlock, renderSlot } from "vue";
5
5
  //#region src/layouts/SimpleLayout.vue?vue&type=script&setup=true&lang.ts
6
6
  var SimpleLayout_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
@@ -38,4 +38,4 @@ var SimpleLayout_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Simpl
38
38
  //#endregion
39
39
  export { SimpleLayout_default as default };
40
40
 
41
- //# sourceMappingURL=SimpleLayout-Bk74CAAr.mjs.map
41
+ //# sourceMappingURL=SimpleLayout-BTJyAJO6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-BTJyAJO6.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-BvOAauzs.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-C3xekYgM.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-C4xNk0R4.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-CDcsE-Be.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-D3M_c1Eu.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-DJgC3LcZ.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-DkvEZxow.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayout-gtbBGlVV.mjs","names":[],"sources":["../src/layouts/SimpleLayout.vue","../src/layouts/SimpleLayout.vue"],"sourcesContent":["<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n","<!-- A basic layout showing only the content -->\n<template>\n <slot />\n <div class=\"flex-grow-1\" />\n <PlayerComponent />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from '../stores/PlayerStore';\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport PlayerComponent from '../components/misc/player/PlayerComponent.vue';\n\nconst playerStore = usePlayerStore();\n\nonBeforeMount(() => {\n // Stop playing to avoid issues when switching to no layout\n playerStore.stop();\n});\n\n\nonBeforeUnmount(() => {\n // Stop playing to avoid issues when switching from no layout\n playerStore.stop();\n});\n</script>\n"],"mappings":";;;;;;;;;EAYA,MAAM,cAAc,eAAe;EAEnC,oBAAoB;GAEhB,YAAY,KAAK;EACrB,CAAC;EAGD,sBAAsB;GAElB,YAAY,KAAK;EACrB,CAAC;;;;;;;;;;;;;;;;ECrBG,WAAQ,KAAA,QAAA,SAAA;4BACR,mBAA2B,OAAA,EAAtB,OAAM,cAAa,GAAA,MAAA,EAAA;EACxB,YAAmB,OAAA,kBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartLinkPage-BF8hfaWZ.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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"}
@@ -1,9 +1,9 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { A as state, C as emissionApi, _ as playlistApi, m as podcastApi, p as PodcastSort, y as organisationApi } from "./classicApi-CkDHWZG1.mjs";
3
- import { n as usePlayerStore } from "./PlayerStore-DukkcHI_.mjs";
2
+ import { A as state, C as emissionApi, _ as playlistApi, m as podcastApi, p as PodcastSort, y as organisationApi } from "./classicApi-xjOqAovv.mjs";
3
+ import { n as usePlayerStore } from "./PlayerStore-vYmnOEA_.mjs";
4
4
  import { t as displayHelper_default } from "./displayHelper-CpXshNzz.mjs";
5
- import { t as useImageProxy } from "./useImageProxy-Bj0cOCct.mjs";
6
- import { r as useSharePlatforms } from "./useSharePlatforms-CSSRTkTG.mjs";
5
+ import { t as useImageProxy } from "./useImageProxy-BdQJmj4a.mjs";
6
+ import { r as useSharePlatforms } from "./useSharePlatforms-07n3JYu2.mjs";
7
7
  import { t as useSeoTitleUrl } from "./useSeoTitleUrl-CrM1YzAc.mjs";
8
8
  import { t as useSharePath } from "./useSharePath-Vh29oc9Z.mjs";
9
9
  import "./logo_saooti_play_black-BLx_RUuM.mjs";
@@ -235,4 +235,4 @@ var SmartLinkPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Smar
235
235
  //#endregion
236
236
  export { SmartLinkPage_default as default };
237
237
 
238
- //# sourceMappingURL=SmartLinkPage-DbuQT8GM.mjs.map
238
+ //# sourceMappingURL=SmartLinkPage-DQljzYa-.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartLinkPage-DQljzYa-.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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"}