@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":"RadioPage-DkBL81mI.mjs","names":[],"sources":["../src/components/pages/RadioPage.vue","../src/components/pages/RadioPage.vue"],"sourcesContent":["<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && radio\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"t('Radio')\"\n :img-url=\"radio.imageUrl\"\n />\n <div\n v-if=\"radio\"\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <section class=\"module-box\">\n <div class=\"mb-5 description-text\">\n <RadioImage :radio=\"radio\" />\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{ radio.name }}</h2>\n <ShareAnonymous class=\"d-flex justify-content-end flex-grow-1\" :organisation-id=\"radio.organisationId\"/>\n </div>\n <div v-if=\"radio.description\">\n {{ radio.description }}\n </div>\n </div>\n <RadioCurrently :radio=\"radio\" />\n <slot v-if=\"editRight\" name=\"edit-box-radio\" :radio=\"radio\" />\n </section>\n <ShareSocialsButtons :organisation-id=\"radio.organisationId\" />\n <RadioPlanning :radio=\"radio\" />\n <SharePlayerRadio\n v-if=\"editRight\"\n :canal=\"radio\"\n :organisation-id=\"authOrgaId\"\n />\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Emission doesn't exist`) : undefined\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport classicApi from \"../../api/classicApi\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeUnmount } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst SharePlayerRadio = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayerRadio.vue\"),\n);\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst RadioCurrently = defineAsyncComponent(\n () => import(\"../display/live/RadioCurrently.vue\"),\n);\nconst RadioImage = defineAsyncComponent(\n () => import(\"../display/live/RadioImage.vue\"),\n);\nconst RadioPlanning = defineAsyncComponent(\n () => import(\"../display/live/RadioPlanning.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../display/sharing/ShareAnonymous.vue\"));\n \n//Props \nconst props = defineProps({\n canalId: { default: undefined, type: Number },\n});\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst radio: Ref<Canal|undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\n\n\n//Computed\nconst editRight = computed(() =>isEditRights(radio.value?.organisationId, authStore.isRoleRadio));\n\n\n//Watch\nwatch(()=>props.canalId, () => {getRadioDetails()}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n});\n\n\n//Methods\nasync function getRadioDetails(): Promise<void> {\n loaded.value = false;\n loaded.value = false;\n try {\n radio.value = await classicApi.fetchData<Canal>({\n api: 14,\n path: \"canal/\" + props.canalId,\n });\n generalStore.contentToDisplayUpdate(radio.value);\n updatePathParams(radio.value.name);\n } catch (error) {\n handle403(error as AxiosError);\n loaded.value = true;\n }\n loaded.value = true;\n}\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && radio\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"t('Radio')\"\n :img-url=\"radio.imageUrl\"\n />\n <div\n v-if=\"radio\"\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <section class=\"module-box\">\n <div class=\"mb-5 description-text\">\n <RadioImage :radio=\"radio\" />\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{ radio.name }}</h2>\n <ShareAnonymous class=\"d-flex justify-content-end flex-grow-1\" :organisation-id=\"radio.organisationId\"/>\n </div>\n <div v-if=\"radio.description\">\n {{ radio.description }}\n </div>\n </div>\n <RadioCurrently :radio=\"radio\" />\n <slot v-if=\"editRight\" name=\"edit-box-radio\" :radio=\"radio\" />\n </section>\n <ShareSocialsButtons :organisation-id=\"radio.organisationId\" />\n <RadioPlanning :radio=\"radio\" />\n <SharePlayerRadio\n v-if=\"editRight\"\n :canal=\"radio\"\n :organisation-id=\"authOrgaId\"\n />\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Emission doesn't exist`) : undefined\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport classicApi from \"../../api/classicApi\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeUnmount } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst SharePlayerRadio = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayerRadio.vue\"),\n);\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst RadioCurrently = defineAsyncComponent(\n () => import(\"../display/live/RadioCurrently.vue\"),\n);\nconst RadioImage = defineAsyncComponent(\n () => import(\"../display/live/RadioImage.vue\"),\n);\nconst RadioPlanning = defineAsyncComponent(\n () => import(\"../display/live/RadioPlanning.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../display/sharing/ShareAnonymous.vue\"));\n \n//Props \nconst props = defineProps({\n canalId: { default: undefined, type: Number },\n});\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst radio: Ref<Canal|undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\n\n\n//Computed\nconst editRight = computed(() =>isEditRights(radio.value?.organisationId, authStore.isRoleRadio));\n\n\n//Watch\nwatch(()=>props.canalId, () => {getRadioDetails()}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n});\n\n\n//Methods\nasync function getRadioDetails(): Promise<void> {\n loaded.value = false;\n loaded.value = false;\n try {\n radio.value = await classicApi.fetchData<Canal>({\n api: 14,\n path: \"canal/\" + props.canalId,\n });\n generalStore.contentToDisplayUpdate(radio.value);\n updatePathParams(radio.value.name);\n } catch (error) {\n handle403(error as AxiosError);\n loaded.value = true;\n }\n loaded.value = true;\n}\n</script>\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
2
  import { t as ClassicLoading_default } from "./ClassicLoading-Crlw7cAx.mjs";
3
- import { i as useAuthStore, t as classicApi_default } from "./classicApi-CkDHWZG1.mjs";
3
+ import { i as useAuthStore, t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
4
4
  import { t as useGeneralStore } from "./GeneralStore-CUlq_NjO.mjs";
5
- import { t as useErrorHandler } from "./useErrorHandler-DtLjD9t_.mjs";
5
+ import { t as useErrorHandler } from "./useErrorHandler-D3XVxUh6.mjs";
6
6
  import { t as useSeoTitleUrl } from "./useSeoTitleUrl-CrM1YzAc.mjs";
7
- import { t as useOrgaComputed } from "./useOrgaComputed-BLSpEDfb.mjs";
7
+ import { t as useOrgaComputed } from "./useOrgaComputed-B2Bq0VBT.mjs";
8
8
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineAsyncComponent, defineComponent, normalizeClass, onBeforeUnmount, openBlock, ref, renderSlot, toDisplayString, watch } from "vue";
9
9
  import { useI18n } from "vue-i18n";
10
10
  //#region src/components/pages/RadioPage.vue?vue&type=script&setup=true&lang.ts
@@ -16,13 +16,13 @@ var RadioPage_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
16
16
  } },
17
17
  setup(__props, { expose: __expose }) {
18
18
  __expose();
19
- const SharePlayerRadio = defineAsyncComponent(() => import("./SharePlayerRadio-D3LXD_gK.mjs"));
20
- const ShareSocialsButtons = defineAsyncComponent(() => import("./ShareSocialsButtons-iHtSoQ3K.mjs"));
21
- const RadioCurrently = defineAsyncComponent(() => import("./RadioCurrently-D5M81oIX.mjs").then((n) => n.n));
22
- const RadioImage = defineAsyncComponent(() => import("./RadioImage-CUTRr3DL.mjs").then((n) => n.n));
23
- const RadioPlanning = defineAsyncComponent(() => import("./RadioPlanning-CJ7Qqyhs.mjs"));
24
- const PodcastmakerHeader = defineAsyncComponent(() => import("./PodcastmakerHeader-DAATtOG_.mjs"));
25
- const ShareAnonymous = defineAsyncComponent(() => import("./ShareAnonymous-Chfdzzra.mjs"));
19
+ const SharePlayerRadio = defineAsyncComponent(() => import("./SharePlayerRadio-CI6glNuI.mjs"));
20
+ const ShareSocialsButtons = defineAsyncComponent(() => import("./ShareSocialsButtons-BYsXc2Jr.mjs"));
21
+ const RadioCurrently = defineAsyncComponent(() => import("./RadioCurrently-DWySwV64.mjs").then((n) => n.n));
22
+ const RadioImage = defineAsyncComponent(() => import("./RadioImage-BIe2KpG_.mjs").then((n) => n.n));
23
+ const RadioPlanning = defineAsyncComponent(() => import("./RadioPlanning-2aWTnbZb.mjs"));
24
+ const PodcastmakerHeader = defineAsyncComponent(() => import("./PodcastmakerHeader-Df0g2dCr.mjs"));
25
+ const ShareAnonymous = defineAsyncComponent(() => import("./ShareAnonymous-4UxjKrIe.mjs"));
26
26
  const props = __props;
27
27
  const loaded = ref(false);
28
28
  const error = ref(false);
@@ -134,4 +134,4 @@ var RadioPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RadioPag
134
134
  //#endregion
135
135
  export { RadioPage_default as default };
136
136
 
137
- //# sourceMappingURL=RadioPage-DVflzCV-.mjs.map
137
+ //# sourceMappingURL=RadioPage-Jg2kmtna.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioPage-Jg2kmtna.mjs","names":[],"sources":["../src/components/pages/RadioPage.vue","../src/components/pages/RadioPage.vue"],"sourcesContent":["<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && radio\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"t('Radio')\"\n :img-url=\"radio.imageUrl\"\n />\n <div\n v-if=\"radio\"\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <section class=\"module-box\">\n <div class=\"mb-5 description-text\">\n <RadioImage :radio=\"radio\" />\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{ radio.name }}</h2>\n <ShareAnonymous class=\"d-flex justify-content-end flex-grow-1\" :organisation-id=\"radio.organisationId\"/>\n </div>\n <div v-if=\"radio.description\">\n {{ radio.description }}\n </div>\n </div>\n <RadioCurrently :radio=\"radio\" />\n <slot v-if=\"editRight\" name=\"edit-box-radio\" :radio=\"radio\" />\n </section>\n <ShareSocialsButtons :organisation-id=\"radio.organisationId\" />\n <RadioPlanning :radio=\"radio\" />\n <SharePlayerRadio\n v-if=\"editRight\"\n :canal=\"radio\"\n :organisation-id=\"authOrgaId\"\n />\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Emission doesn't exist`) : undefined\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport classicApi from \"../../api/classicApi\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeUnmount } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst SharePlayerRadio = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayerRadio.vue\"),\n);\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst RadioCurrently = defineAsyncComponent(\n () => import(\"../display/live/RadioCurrently.vue\"),\n);\nconst RadioImage = defineAsyncComponent(\n () => import(\"../display/live/RadioImage.vue\"),\n);\nconst RadioPlanning = defineAsyncComponent(\n () => import(\"../display/live/RadioPlanning.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../display/sharing/ShareAnonymous.vue\"));\n \n//Props \nconst props = defineProps({\n canalId: { default: undefined, type: Number },\n});\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst radio: Ref<Canal|undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\n\n\n//Computed\nconst editRight = computed(() =>isEditRights(radio.value?.organisationId, authStore.isRoleRadio));\n\n\n//Watch\nwatch(()=>props.canalId, () => {getRadioDetails()}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n});\n\n\n//Methods\nasync function getRadioDetails(): Promise<void> {\n loaded.value = false;\n loaded.value = false;\n try {\n radio.value = await classicApi.fetchData<Canal>({\n api: 14,\n path: \"canal/\" + props.canalId,\n });\n generalStore.contentToDisplayUpdate(radio.value);\n updatePathParams(radio.value.name);\n } catch (error) {\n handle403(error as AxiosError);\n loaded.value = true;\n }\n loaded.value = true;\n}\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && radio\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"t('Radio')\"\n :img-url=\"radio.imageUrl\"\n />\n <div\n v-if=\"radio\"\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <section class=\"module-box\">\n <div class=\"mb-5 description-text\">\n <RadioImage :radio=\"radio\" />\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{ radio.name }}</h2>\n <ShareAnonymous class=\"d-flex justify-content-end flex-grow-1\" :organisation-id=\"radio.organisationId\"/>\n </div>\n <div v-if=\"radio.description\">\n {{ radio.description }}\n </div>\n </div>\n <RadioCurrently :radio=\"radio\" />\n <slot v-if=\"editRight\" name=\"edit-box-radio\" :radio=\"radio\" />\n </section>\n <ShareSocialsButtons :organisation-id=\"radio.organisationId\" />\n <RadioPlanning :radio=\"radio\" />\n <SharePlayerRadio\n v-if=\"editRight\"\n :canal=\"radio\"\n :organisation-id=\"authOrgaId\"\n />\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Emission doesn't exist`) : undefined\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport classicApi from \"../../api/classicApi\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeUnmount } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst SharePlayerRadio = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayerRadio.vue\"),\n);\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst RadioCurrently = defineAsyncComponent(\n () => import(\"../display/live/RadioCurrently.vue\"),\n);\nconst RadioImage = defineAsyncComponent(\n () => import(\"../display/live/RadioImage.vue\"),\n);\nconst RadioPlanning = defineAsyncComponent(\n () => import(\"../display/live/RadioPlanning.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../display/sharing/ShareAnonymous.vue\"));\n \n//Props \nconst props = defineProps({\n canalId: { default: undefined, type: Number },\n});\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst radio: Ref<Canal|undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\n\n\n//Computed\nconst editRight = computed(() =>isEditRights(radio.value?.organisationId, authStore.isRoleRadio));\n\n\n//Watch\nwatch(()=>props.canalId, () => {getRadioDetails()}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n});\n\n\n//Methods\nasync function getRadioDetails(): Promise<void> {\n loaded.value = false;\n loaded.value = false;\n try {\n radio.value = await classicApi.fetchData<Canal>({\n api: 14,\n path: \"canal/\" + props.canalId,\n });\n generalStore.contentToDisplayUpdate(radio.value);\n updatePathParams(radio.value.name);\n } catch (error) {\n handle403(error as AxiosError);\n loaded.value = true;\n }\n loaded.value = true;\n}\n</script>\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
2
  import { t as ClassicLoading_default } from "./ClassicLoading-Crlw7cAx.mjs";
3
- import { t as classicApi_default } from "./classicApi-CkDHWZG1.mjs";
3
+ import { t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
4
4
  import { t as useResizePhone } from "./useResizePhone-CpfFUmfV.mjs";
5
- import { t as useImageProxy } from "./useImageProxy-Bj0cOCct.mjs";
5
+ import { t as useImageProxy } from "./useImageProxy-BdQJmj4a.mjs";
6
6
  import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, nextTick, normalizeClass, onMounted, openBlock, ref, renderList, resolveComponent, resolveDirective, toDisplayString, withCtx, withDirectives } from "vue";
7
7
  import { useI18n } from "vue-i18n";
8
8
  import dayjs from "dayjs";
@@ -287,4 +287,4 @@ var RadioPlanning_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Radi
287
287
  //#endregion
288
288
  export { RadioPlanning_default as default };
289
289
 
290
- //# sourceMappingURL=RadioPlanning-CJ7Qqyhs.mjs.map
290
+ //# sourceMappingURL=RadioPlanning-2aWTnbZb.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioPlanning-2aWTnbZb.mjs","names":[],"sources":["../src/components/display/live/RadioPlanning.vue","../src/components/display/live/RadioPlanning.vue"],"sourcesContent":["<template>\n <section class=\"module-box\">\n <h2 class=\"mb-3\">\n {{ t(\"Program\") }}\n </h2>\n <div class=\"py-3\">\n <div class=\"d-flex align-items-center w-100 mb-3\">\n <button\n v-for=\"day in displayArrayDays\"\n :key=\"day.date\"\n class=\"button-date border\"\n :class=\"day.date == daySelected ? 'bg-primary' : ''\"\n @click=\"changeDate(day.date)\"\n >\n <span class=\"text-capitalize\" >{{ day.dayOfWeek }}</span>\n <time :datetime=\"day.iso\">{{ day.title }}</time>\n </button>\n </div>\n <button v-if=\"isPhone\" class=\"btn btn-primary mb-3 mx-0\" @click=\"showAllDays = !showAllDays\">\n <template v-if=\"!showAllDays\">{{ t('Show more days') }}</template>\n <template v-else>{{ t('Show fewer days') }}</template>\n </button>\n <div\n class=\"d-flex align-items-center justify-content-center border-bottom\"\n >\n <button\n v-for=\"period in periodOfDay\"\n :key=\"period.id\"\n class=\"btn btn-underline mb-2\"\n @click=\"scrollToElement('planning-period-' + period.id)\"\n >\n {{ period.title }}\n </button>\n <button class=\"btn btn-underline mb-2\" @click=\"changePeriodNow\">\n {{ t(\"Now\") }}\n </button>\n </div>\n\n <div class=\"d-flex flex-column p-3\">\n <ClassicLoading\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Error`) : undefined\"\n />\n <template v-if=\"!loading && !error\">\n <div v-if=\"!planningLength[daySelected]\" class=\"text-center\">\n {{ t(\"No programming\") }}\n </div>\n <div v-for=\"period in periodOfDay\" v-else :key=\"period.id\">\n <template v-if=\"planning[daySelected][period.id].length\">\n <div\n :id=\"'planning-period-' + period.id\"\n class=\"fw-bold my-3 pb-2 border-bottom border-primary text-primary\"\n >\n {{ period.title }}\n </div>\n <div\n v-for=\"planningItem in planning[daySelected][period.id]\"\n :id=\"\n 'planning-occurrence-' +\n planningItem.occurrenceId +\n '' +\n planningItem.liveId\n \"\n :key=\"planningItem.occurrenceId + '' + planningItem.liveId\"\n class=\"d-flex align-items-center mb-3\"\n >\n <time :datetime=\"planningItem.startDate\" class=\"program-item-date fw-bold flex-shrink-0\">\n {{ dateDisplay(planningItem.startDate) }}\n </time>\n <router-link\n class=\"d-flex align-items-center flex-nowrap text-dark\"\n :to=\"{\n name: 'podcast',\n params: { podcastId: planningItem.podcastId },\n }\"\n :title=\"t('Episode name page', { name: planningItem.title })\"\n >\n <img\n v-lazy=\"\n useProxyImageUrl(planningItem.podcastData.imageUrl, '150')\n \"\n width=\"150\"\n height=\"150\"\n class=\"m-2 program-item-img\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"\n t('Episode name image', {\n name: planningItem.podcastData.title,\n })\n \"\n />\n <div class=\"d-flex flex-column\">\n <div class=\"d-flex align-items-center mb-2\">\n <div\n v-if=\"planningItem.liveId\"\n class=\"bg-complementary text-white p-1 me-1\"\n >\n {{ t(\"Live\") }}\n </div>\n <div class=\"flex-grow-1 fw-bold\">\n {{ planningItem.podcastData.title }}\n </div>\n </div>\n </div>\n </router-link>\n </div>\n </template>\n </div>\n </template>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\ndayjs.extend(utc);\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { computed, nextTick, onMounted, ref, Ref } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { PlanningOccurrence } from \"@/stores/class/radio/recurrence\";\nimport { PlanningLive } from \"@/stores/class/radio/live\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n radio: { default: undefined, type: Object as () => Canal },\n})\n\n//Data \nconst planning: Ref<{\n [key: number]: {\n morning: Array<PlanningOccurrence | PlanningLive>;\n afternoon: Array<PlanningOccurrence | PlanningLive>;\n evening: Array<PlanningOccurrence | PlanningLive>;\n };\n}> = ref({});\nconst planningLength: Ref<{ [key: number]: number }> = ref({});\nconst daySelected = ref(dayjs().valueOf());\nconst arrayDays: Ref<Array<{\n title: string;\n date: number;\n dayOfWeek: string;\n iso: string;\n}>> = ref([]);\nconst loading = ref(true);\nconst error = ref(false);\nconst showAllDays = ref(false);\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPhone } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst startOfDay = computed(() => dayjs(daySelected.value).startOf(\"date\").toISOString());\nconst endOfDay = computed(() => dayjs(daySelected.value).endOf(\"date\").toISOString());\nconst periodOfDay = computed(() => {\n return [\n {\n id: \"morning\",\n title: t(\"Morning\"),\n end: dayjs(daySelected.value)\n .hour(14)\n .minute(0)\n .second(0)\n .millisecond(0),\n },\n {\n id: \"afternoon\",\n title: t(\"Afternoon\"),\n end: dayjs(daySelected.value)\n .hour(19)\n .minute(0)\n .second(0)\n .millisecond(0),\n },\n {\n id: \"evening\",\n title: t(\"Evening\"),\n end: dayjs(daySelected.value).endOf(\"date\"),\n },\n ];\n});\nconst displayArrayDays = computed(() => {\n if(isPhone && !showAllDays.value){\n return arrayDays.value.slice(6, 9);\n }\n return arrayDays.value;\n});\n\n\nonMounted(()=>{\n createArrayDays();\n fetchOccurrences();\n})\n\n\n//Mounted\nfunction scrollToElement(id: string) {\n const element = document.getElementById(id);\n if (element) {\n const yOffset = -110;\n const y =\n element.getBoundingClientRect().top + window.scrollY + yOffset;\n window.scrollTo({ top: y, behavior: \"smooth\" });\n }\n}\nfunction changePeriodNow() {\n const now = dayjs();\n if (!dayjs(daySelected.value).isSame(now, \"day\")) {\n changeDate(arrayDays.value[7].date);\n }\n nextTick(() => {\n if (!planningLength.value[daySelected.value]) {\n return;\n }\n const arrayOccurrences = Object.values(\n planning.value[daySelected.value],\n ).reduce((r, c) => r.concat(c), []);\n let selectedOccurrence = arrayOccurrences[0];\n for (const occ of arrayOccurrences) {\n selectedOccurrence = occ;\n if (dayjs(occ.endDate).isAfter(now)) {\n break;\n }\n }\n scrollToElement(\n \"planning-occurrence-\" +\n selectedOccurrence.occurrenceId +\n \"\" +\n selectedOccurrence.liveId,\n );\n });\n}\nfunction createArrayDays() {\n for (let index = -7; index < 3; index++) {\n const dayToAdd = dayjs().add(index, \"day\");\n if (0 === index) {\n daySelected.value = dayToAdd.valueOf();\n }\n arrayDays.value.push({\n title: dayToAdd.format(\"D/MM\"),\n dayOfWeek: dayToAdd.format(\"dddd\"),\n date: dayToAdd.valueOf(),\n iso: dayToAdd.format(\"MM-DD\"),\n });\n }\n}\nasync function fetchOccurrencesAndLives(): Promise<Array<PlanningOccurrence|PlanningLive>> {\n const params = {\n canalId: props.radio?.id,\n from:startOfDay.value,\n to:endOfDay.value,\n };\n let occurrences: Array<PlanningOccurrence | PlanningLive> =\n await classicApi.fetchData<Array<PlanningOccurrence>>({\n api: 14,\n path: \"planning/occurrence/list\",\n parameters: params,\n });\n const lives: Array<PlanningOccurrence> = await classicApi.fetchData<\n Array<PlanningOccurrence>\n >({\n api: 14,\n path: \"live/list\",\n parameters: params,\n });\n\n if (lives.length) {\n occurrences = occurrences.concat(lives);\n occurrences.sort((a, b) => {\n if (a.startDate > b.startDate) {\n return 1;\n }\n return b.startDate > a.startDate ? -1 : 0;\n });\n }\n return occurrences;\n}\n\nasync function fetchOccurrences(): Promise<void> {\n if (planning.value[daySelected.value]) {\n return;\n }\n planning.value[daySelected.value] = {\n morning: [],\n afternoon: [],\n evening: [],\n };\n planningLength.value[daySelected.value] = 0;\n loading.value = true;\n error.value = false;\n try {\n const occurrences = await fetchOccurrencesAndLives();\n let periodDayIndex = 0;\n for (const occ of occurrences) {\n if (!occ.podcastId) {\n continue;\n }\n if (\n !dayjs(occ.startDate).isBefore(periodOfDay.value[periodDayIndex].end)\n ) {\n periodDayIndex += 1;\n }\n\n switch (periodOfDay.value[periodDayIndex].id) {\n case \"morning\":\n planning.value[daySelected.value].morning.push(occ);\n break;\n case \"afternoon\":\n planning.value[daySelected.value].afternoon.push(occ);\n break;\n case \"evening\":\n planning.value[daySelected.value].evening.push(occ);\n break;\n default:\n break;\n }\n planningLength.value[daySelected.value] += 1;\n }\n } catch(e) {\n error.value = true;\n console.error(e);\n }\n loading.value = false;\n}\nfunction changeDate(date: number) {\n daySelected.value = date;\n fetchOccurrences();\n}\nfunction dateDisplay(date: Date): string {\n return dayjs(date).format(\"HH:mm\");\n}\n</script>\n<style lang=\"scss\">\n.octopus-app {\n .program-item-date {\n width: 100px;\n font-size: 1.1rem;\n\n @media (width <= 960px) {\n\t\t\tfont-size: 0.8rem;\n\t\t}\n }\n\n .program-item-img{\n @media (width <= 960px) {\n\t\t\twidth: 80px;\n height: 80px;\n margin: 0.5rem 0.5rem 0 0 !important;\n\t\t}\n }\n\n .button-date {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n padding: 0.5rem;\n\n &.bg-primary{\n color: var(--octopus-color-on-primary) !important;\n }\n\n &:hover {\n background: var(--octopus-secondary);\n }\n\n @media (width <= 960px) {\n\t\t\twidth: 80px;\n\t\t}\n }\n}\n</style>\n","<template>\n <section class=\"module-box\">\n <h2 class=\"mb-3\">\n {{ t(\"Program\") }}\n </h2>\n <div class=\"py-3\">\n <div class=\"d-flex align-items-center w-100 mb-3\">\n <button\n v-for=\"day in displayArrayDays\"\n :key=\"day.date\"\n class=\"button-date border\"\n :class=\"day.date == daySelected ? 'bg-primary' : ''\"\n @click=\"changeDate(day.date)\"\n >\n <span class=\"text-capitalize\" >{{ day.dayOfWeek }}</span>\n <time :datetime=\"day.iso\">{{ day.title }}</time>\n </button>\n </div>\n <button v-if=\"isPhone\" class=\"btn btn-primary mb-3 mx-0\" @click=\"showAllDays = !showAllDays\">\n <template v-if=\"!showAllDays\">{{ t('Show more days') }}</template>\n <template v-else>{{ t('Show fewer days') }}</template>\n </button>\n <div\n class=\"d-flex align-items-center justify-content-center border-bottom\"\n >\n <button\n v-for=\"period in periodOfDay\"\n :key=\"period.id\"\n class=\"btn btn-underline mb-2\"\n @click=\"scrollToElement('planning-period-' + period.id)\"\n >\n {{ period.title }}\n </button>\n <button class=\"btn btn-underline mb-2\" @click=\"changePeriodNow\">\n {{ t(\"Now\") }}\n </button>\n </div>\n\n <div class=\"d-flex flex-column p-3\">\n <ClassicLoading\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Error`) : undefined\"\n />\n <template v-if=\"!loading && !error\">\n <div v-if=\"!planningLength[daySelected]\" class=\"text-center\">\n {{ t(\"No programming\") }}\n </div>\n <div v-for=\"period in periodOfDay\" v-else :key=\"period.id\">\n <template v-if=\"planning[daySelected][period.id].length\">\n <div\n :id=\"'planning-period-' + period.id\"\n class=\"fw-bold my-3 pb-2 border-bottom border-primary text-primary\"\n >\n {{ period.title }}\n </div>\n <div\n v-for=\"planningItem in planning[daySelected][period.id]\"\n :id=\"\n 'planning-occurrence-' +\n planningItem.occurrenceId +\n '' +\n planningItem.liveId\n \"\n :key=\"planningItem.occurrenceId + '' + planningItem.liveId\"\n class=\"d-flex align-items-center mb-3\"\n >\n <time :datetime=\"planningItem.startDate\" class=\"program-item-date fw-bold flex-shrink-0\">\n {{ dateDisplay(planningItem.startDate) }}\n </time>\n <router-link\n class=\"d-flex align-items-center flex-nowrap text-dark\"\n :to=\"{\n name: 'podcast',\n params: { podcastId: planningItem.podcastId },\n }\"\n :title=\"t('Episode name page', { name: planningItem.title })\"\n >\n <img\n v-lazy=\"\n useProxyImageUrl(planningItem.podcastData.imageUrl, '150')\n \"\n width=\"150\"\n height=\"150\"\n class=\"m-2 program-item-img\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"\n t('Episode name image', {\n name: planningItem.podcastData.title,\n })\n \"\n />\n <div class=\"d-flex flex-column\">\n <div class=\"d-flex align-items-center mb-2\">\n <div\n v-if=\"planningItem.liveId\"\n class=\"bg-complementary text-white p-1 me-1\"\n >\n {{ t(\"Live\") }}\n </div>\n <div class=\"flex-grow-1 fw-bold\">\n {{ planningItem.podcastData.title }}\n </div>\n </div>\n </div>\n </router-link>\n </div>\n </template>\n </div>\n </template>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\ndayjs.extend(utc);\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { computed, nextTick, onMounted, ref, Ref } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { PlanningOccurrence } from \"@/stores/class/radio/recurrence\";\nimport { PlanningLive } from \"@/stores/class/radio/live\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n radio: { default: undefined, type: Object as () => Canal },\n})\n\n//Data \nconst planning: Ref<{\n [key: number]: {\n morning: Array<PlanningOccurrence | PlanningLive>;\n afternoon: Array<PlanningOccurrence | PlanningLive>;\n evening: Array<PlanningOccurrence | PlanningLive>;\n };\n}> = ref({});\nconst planningLength: Ref<{ [key: number]: number }> = ref({});\nconst daySelected = ref(dayjs().valueOf());\nconst arrayDays: Ref<Array<{\n title: string;\n date: number;\n dayOfWeek: string;\n iso: string;\n}>> = ref([]);\nconst loading = ref(true);\nconst error = ref(false);\nconst showAllDays = ref(false);\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPhone } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst startOfDay = computed(() => dayjs(daySelected.value).startOf(\"date\").toISOString());\nconst endOfDay = computed(() => dayjs(daySelected.value).endOf(\"date\").toISOString());\nconst periodOfDay = computed(() => {\n return [\n {\n id: \"morning\",\n title: t(\"Morning\"),\n end: dayjs(daySelected.value)\n .hour(14)\n .minute(0)\n .second(0)\n .millisecond(0),\n },\n {\n id: \"afternoon\",\n title: t(\"Afternoon\"),\n end: dayjs(daySelected.value)\n .hour(19)\n .minute(0)\n .second(0)\n .millisecond(0),\n },\n {\n id: \"evening\",\n title: t(\"Evening\"),\n end: dayjs(daySelected.value).endOf(\"date\"),\n },\n ];\n});\nconst displayArrayDays = computed(() => {\n if(isPhone && !showAllDays.value){\n return arrayDays.value.slice(6, 9);\n }\n return arrayDays.value;\n});\n\n\nonMounted(()=>{\n createArrayDays();\n fetchOccurrences();\n})\n\n\n//Mounted\nfunction scrollToElement(id: string) {\n const element = document.getElementById(id);\n if (element) {\n const yOffset = -110;\n const y =\n element.getBoundingClientRect().top + window.scrollY + yOffset;\n window.scrollTo({ top: y, behavior: \"smooth\" });\n }\n}\nfunction changePeriodNow() {\n const now = dayjs();\n if (!dayjs(daySelected.value).isSame(now, \"day\")) {\n changeDate(arrayDays.value[7].date);\n }\n nextTick(() => {\n if (!planningLength.value[daySelected.value]) {\n return;\n }\n const arrayOccurrences = Object.values(\n planning.value[daySelected.value],\n ).reduce((r, c) => r.concat(c), []);\n let selectedOccurrence = arrayOccurrences[0];\n for (const occ of arrayOccurrences) {\n selectedOccurrence = occ;\n if (dayjs(occ.endDate).isAfter(now)) {\n break;\n }\n }\n scrollToElement(\n \"planning-occurrence-\" +\n selectedOccurrence.occurrenceId +\n \"\" +\n selectedOccurrence.liveId,\n );\n });\n}\nfunction createArrayDays() {\n for (let index = -7; index < 3; index++) {\n const dayToAdd = dayjs().add(index, \"day\");\n if (0 === index) {\n daySelected.value = dayToAdd.valueOf();\n }\n arrayDays.value.push({\n title: dayToAdd.format(\"D/MM\"),\n dayOfWeek: dayToAdd.format(\"dddd\"),\n date: dayToAdd.valueOf(),\n iso: dayToAdd.format(\"MM-DD\"),\n });\n }\n}\nasync function fetchOccurrencesAndLives(): Promise<Array<PlanningOccurrence|PlanningLive>> {\n const params = {\n canalId: props.radio?.id,\n from:startOfDay.value,\n to:endOfDay.value,\n };\n let occurrences: Array<PlanningOccurrence | PlanningLive> =\n await classicApi.fetchData<Array<PlanningOccurrence>>({\n api: 14,\n path: \"planning/occurrence/list\",\n parameters: params,\n });\n const lives: Array<PlanningOccurrence> = await classicApi.fetchData<\n Array<PlanningOccurrence>\n >({\n api: 14,\n path: \"live/list\",\n parameters: params,\n });\n\n if (lives.length) {\n occurrences = occurrences.concat(lives);\n occurrences.sort((a, b) => {\n if (a.startDate > b.startDate) {\n return 1;\n }\n return b.startDate > a.startDate ? -1 : 0;\n });\n }\n return occurrences;\n}\n\nasync function fetchOccurrences(): Promise<void> {\n if (planning.value[daySelected.value]) {\n return;\n }\n planning.value[daySelected.value] = {\n morning: [],\n afternoon: [],\n evening: [],\n };\n planningLength.value[daySelected.value] = 0;\n loading.value = true;\n error.value = false;\n try {\n const occurrences = await fetchOccurrencesAndLives();\n let periodDayIndex = 0;\n for (const occ of occurrences) {\n if (!occ.podcastId) {\n continue;\n }\n if (\n !dayjs(occ.startDate).isBefore(periodOfDay.value[periodDayIndex].end)\n ) {\n periodDayIndex += 1;\n }\n\n switch (periodOfDay.value[periodDayIndex].id) {\n case \"morning\":\n planning.value[daySelected.value].morning.push(occ);\n break;\n case \"afternoon\":\n planning.value[daySelected.value].afternoon.push(occ);\n break;\n case \"evening\":\n planning.value[daySelected.value].evening.push(occ);\n break;\n default:\n break;\n }\n planningLength.value[daySelected.value] += 1;\n }\n } catch(e) {\n error.value = true;\n console.error(e);\n }\n loading.value = false;\n}\nfunction changeDate(date: number) {\n daySelected.value = date;\n fetchOccurrences();\n}\nfunction dateDisplay(date: Date): string {\n return dayjs(date).format(\"HH:mm\");\n}\n</script>\n<style lang=\"scss\">\n.octopus-app {\n .program-item-date {\n width: 100px;\n font-size: 1.1rem;\n\n @media (width <= 960px) {\n\t\t\tfont-size: 0.8rem;\n\t\t}\n }\n\n .program-item-img{\n @media (width <= 960px) {\n\t\t\twidth: 80px;\n height: 80px;\n margin: 0.5rem 0.5rem 0 0 !important;\n\t\t}\n }\n\n .button-date {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n padding: 0.5rem;\n\n &.bg-primary{\n color: var(--octopus-color-on-primary) !important;\n }\n\n &:hover {\n background: var(--octopus-secondary);\n }\n\n @media (width <= 960px) {\n\t\t\twidth: 80px;\n\t\t}\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioPlanning-DHxcBVQo.mjs","names":[],"sources":["../src/components/display/live/RadioPlanning.vue","../src/components/display/live/RadioPlanning.vue"],"sourcesContent":["<template>\n <section class=\"module-box\">\n <h2 class=\"mb-3\">\n {{ t(\"Program\") }}\n </h2>\n <div class=\"py-3\">\n <div class=\"d-flex align-items-center w-100 mb-3\">\n <button\n v-for=\"day in displayArrayDays\"\n :key=\"day.date\"\n class=\"button-date border\"\n :class=\"day.date == daySelected ? 'bg-primary' : ''\"\n @click=\"changeDate(day.date)\"\n >\n <span class=\"text-capitalize\" >{{ day.dayOfWeek }}</span>\n <time :datetime=\"day.iso\">{{ day.title }}</time>\n </button>\n </div>\n <button v-if=\"isPhone\" class=\"btn btn-primary mb-3 mx-0\" @click=\"showAllDays = !showAllDays\">\n <template v-if=\"!showAllDays\">{{ t('Show more days') }}</template>\n <template v-else>{{ t('Show fewer days') }}</template>\n </button>\n <div\n class=\"d-flex align-items-center justify-content-center border-bottom\"\n >\n <button\n v-for=\"period in periodOfDay\"\n :key=\"period.id\"\n class=\"btn btn-underline mb-2\"\n @click=\"scrollToElement('planning-period-' + period.id)\"\n >\n {{ period.title }}\n </button>\n <button class=\"btn btn-underline mb-2\" @click=\"changePeriodNow\">\n {{ t(\"Now\") }}\n </button>\n </div>\n\n <div class=\"d-flex flex-column p-3\">\n <ClassicLoading\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Error`) : undefined\"\n />\n <template v-if=\"!loading && !error\">\n <div v-if=\"!planningLength[daySelected]\" class=\"text-center\">\n {{ t(\"No programming\") }}\n </div>\n <div v-for=\"period in periodOfDay\" v-else :key=\"period.id\">\n <template v-if=\"planning[daySelected][period.id].length\">\n <div\n :id=\"'planning-period-' + period.id\"\n class=\"fw-bold my-3 pb-2 border-bottom border-primary text-primary\"\n >\n {{ period.title }}\n </div>\n <div\n v-for=\"planningItem in planning[daySelected][period.id]\"\n :id=\"\n 'planning-occurrence-' +\n planningItem.occurrenceId +\n '' +\n planningItem.liveId\n \"\n :key=\"planningItem.occurrenceId + '' + planningItem.liveId\"\n class=\"d-flex align-items-center mb-3\"\n >\n <time :datetime=\"planningItem.startDate\" class=\"program-item-date fw-bold flex-shrink-0\">\n {{ dateDisplay(planningItem.startDate) }}\n </time>\n <router-link\n class=\"d-flex align-items-center flex-nowrap text-dark\"\n :to=\"{\n name: 'podcast',\n params: { podcastId: planningItem.podcastId },\n }\"\n :title=\"t('Episode name page', { name: planningItem.title })\"\n >\n <img\n v-lazy=\"\n useProxyImageUrl(planningItem.podcastData.imageUrl, '150')\n \"\n width=\"150\"\n height=\"150\"\n class=\"m-2 program-item-img\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"\n t('Episode name image', {\n name: planningItem.podcastData.title,\n })\n \"\n />\n <div class=\"d-flex flex-column\">\n <div class=\"d-flex align-items-center mb-2\">\n <div\n v-if=\"planningItem.liveId\"\n class=\"bg-complementary text-white p-1 me-1\"\n >\n {{ t(\"Live\") }}\n </div>\n <div class=\"flex-grow-1 fw-bold\">\n {{ planningItem.podcastData.title }}\n </div>\n </div>\n </div>\n </router-link>\n </div>\n </template>\n </div>\n </template>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\ndayjs.extend(utc);\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { computed, nextTick, onMounted, ref, Ref } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { PlanningOccurrence } from \"@/stores/class/radio/recurrence\";\nimport { PlanningLive } from \"@/stores/class/radio/live\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n radio: { default: undefined, type: Object as () => Canal },\n})\n\n//Data \nconst planning: Ref<{\n [key: number]: {\n morning: Array<PlanningOccurrence | PlanningLive>;\n afternoon: Array<PlanningOccurrence | PlanningLive>;\n evening: Array<PlanningOccurrence | PlanningLive>;\n };\n}> = ref({});\nconst planningLength: Ref<{ [key: number]: number }> = ref({});\nconst daySelected = ref(dayjs().valueOf());\nconst arrayDays: Ref<Array<{\n title: string;\n date: number;\n dayOfWeek: string;\n iso: string;\n}>> = ref([]);\nconst loading = ref(true);\nconst error = ref(false);\nconst showAllDays = ref(false);\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPhone } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst startOfDay = computed(() => dayjs(daySelected.value).startOf(\"date\").toISOString());\nconst endOfDay = computed(() => dayjs(daySelected.value).endOf(\"date\").toISOString());\nconst periodOfDay = computed(() => {\n return [\n {\n id: \"morning\",\n title: t(\"Morning\"),\n end: dayjs(daySelected.value)\n .hour(14)\n .minute(0)\n .second(0)\n .millisecond(0),\n },\n {\n id: \"afternoon\",\n title: t(\"Afternoon\"),\n end: dayjs(daySelected.value)\n .hour(19)\n .minute(0)\n .second(0)\n .millisecond(0),\n },\n {\n id: \"evening\",\n title: t(\"Evening\"),\n end: dayjs(daySelected.value).endOf(\"date\"),\n },\n ];\n});\nconst displayArrayDays = computed(() => {\n if(isPhone && !showAllDays.value){\n return arrayDays.value.slice(6, 9);\n }\n return arrayDays.value;\n});\n\n\nonMounted(()=>{\n createArrayDays();\n fetchOccurrences();\n})\n\n\n//Mounted\nfunction scrollToElement(id: string) {\n const element = document.getElementById(id);\n if (element) {\n const yOffset = -110;\n const y =\n element.getBoundingClientRect().top + window.scrollY + yOffset;\n window.scrollTo({ top: y, behavior: \"smooth\" });\n }\n}\nfunction changePeriodNow() {\n const now = dayjs();\n if (!dayjs(daySelected.value).isSame(now, \"day\")) {\n changeDate(arrayDays.value[7].date);\n }\n nextTick(() => {\n if (!planningLength.value[daySelected.value]) {\n return;\n }\n const arrayOccurrences = Object.values(\n planning.value[daySelected.value],\n ).reduce((r, c) => r.concat(c), []);\n let selectedOccurrence = arrayOccurrences[0];\n for (const occ of arrayOccurrences) {\n selectedOccurrence = occ;\n if (dayjs(occ.endDate).isAfter(now)) {\n break;\n }\n }\n scrollToElement(\n \"planning-occurrence-\" +\n selectedOccurrence.occurrenceId +\n \"\" +\n selectedOccurrence.liveId,\n );\n });\n}\nfunction createArrayDays() {\n for (let index = -7; index < 3; index++) {\n const dayToAdd = dayjs().add(index, \"day\");\n if (0 === index) {\n daySelected.value = dayToAdd.valueOf();\n }\n arrayDays.value.push({\n title: dayToAdd.format(\"D/MM\"),\n dayOfWeek: dayToAdd.format(\"dddd\"),\n date: dayToAdd.valueOf(),\n iso: dayToAdd.format(\"MM-DD\"),\n });\n }\n}\nasync function fetchOccurrencesAndLives(): Promise<Array<PlanningOccurrence|PlanningLive>> {\n const params = {\n canalId: props.radio?.id,\n from:startOfDay.value,\n to:endOfDay.value,\n };\n let occurrences: Array<PlanningOccurrence | PlanningLive> =\n await classicApi.fetchData<Array<PlanningOccurrence>>({\n api: 14,\n path: \"planning/occurrence/list\",\n parameters: params,\n });\n const lives: Array<PlanningOccurrence> = await classicApi.fetchData<\n Array<PlanningOccurrence>\n >({\n api: 14,\n path: \"live/list\",\n parameters: params,\n });\n\n if (lives.length) {\n occurrences = occurrences.concat(lives);\n occurrences.sort((a, b) => {\n if (a.startDate > b.startDate) {\n return 1;\n }\n return b.startDate > a.startDate ? -1 : 0;\n });\n }\n return occurrences;\n}\n\nasync function fetchOccurrences(): Promise<void> {\n if (planning.value[daySelected.value]) {\n return;\n }\n planning.value[daySelected.value] = {\n morning: [],\n afternoon: [],\n evening: [],\n };\n planningLength.value[daySelected.value] = 0;\n loading.value = true;\n error.value = false;\n try {\n const occurrences = await fetchOccurrencesAndLives();\n let periodDayIndex = 0;\n for (const occ of occurrences) {\n if (!occ.podcastId) {\n continue;\n }\n if (\n !dayjs(occ.startDate).isBefore(periodOfDay.value[periodDayIndex].end)\n ) {\n periodDayIndex += 1;\n }\n\n switch (periodOfDay.value[periodDayIndex].id) {\n case \"morning\":\n planning.value[daySelected.value].morning.push(occ);\n break;\n case \"afternoon\":\n planning.value[daySelected.value].afternoon.push(occ);\n break;\n case \"evening\":\n planning.value[daySelected.value].evening.push(occ);\n break;\n default:\n break;\n }\n planningLength.value[daySelected.value] += 1;\n }\n } catch(e) {\n error.value = true;\n console.error(e);\n }\n loading.value = false;\n}\nfunction changeDate(date: number) {\n daySelected.value = date;\n fetchOccurrences();\n}\nfunction dateDisplay(date: Date): string {\n return dayjs(date).format(\"HH:mm\");\n}\n</script>\n<style lang=\"scss\">\n.octopus-app {\n .program-item-date {\n width: 100px;\n font-size: 1.1rem;\n\n @media (width <= 960px) {\n\t\t\tfont-size: 0.8rem;\n\t\t}\n }\n\n .program-item-img{\n @media (width <= 960px) {\n\t\t\twidth: 80px;\n height: 80px;\n margin: 0.5rem 0.5rem 0 0 !important;\n\t\t}\n }\n\n .button-date {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n padding: 0.5rem;\n\n &.bg-primary{\n color: var(--octopus-color-on-primary) !important;\n }\n\n &:hover {\n background: var(--octopus-secondary);\n }\n\n @media (width <= 960px) {\n\t\t\twidth: 80px;\n\t\t}\n }\n}\n</style>\n","<template>\n <section class=\"module-box\">\n <h2 class=\"mb-3\">\n {{ t(\"Program\") }}\n </h2>\n <div class=\"py-3\">\n <div class=\"d-flex align-items-center w-100 mb-3\">\n <button\n v-for=\"day in displayArrayDays\"\n :key=\"day.date\"\n class=\"button-date border\"\n :class=\"day.date == daySelected ? 'bg-primary' : ''\"\n @click=\"changeDate(day.date)\"\n >\n <span class=\"text-capitalize\" >{{ day.dayOfWeek }}</span>\n <time :datetime=\"day.iso\">{{ day.title }}</time>\n </button>\n </div>\n <button v-if=\"isPhone\" class=\"btn btn-primary mb-3 mx-0\" @click=\"showAllDays = !showAllDays\">\n <template v-if=\"!showAllDays\">{{ t('Show more days') }}</template>\n <template v-else>{{ t('Show fewer days') }}</template>\n </button>\n <div\n class=\"d-flex align-items-center justify-content-center border-bottom\"\n >\n <button\n v-for=\"period in periodOfDay\"\n :key=\"period.id\"\n class=\"btn btn-underline mb-2\"\n @click=\"scrollToElement('planning-period-' + period.id)\"\n >\n {{ period.title }}\n </button>\n <button class=\"btn btn-underline mb-2\" @click=\"changePeriodNow\">\n {{ t(\"Now\") }}\n </button>\n </div>\n\n <div class=\"d-flex flex-column p-3\">\n <ClassicLoading\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Error`) : undefined\"\n />\n <template v-if=\"!loading && !error\">\n <div v-if=\"!planningLength[daySelected]\" class=\"text-center\">\n {{ t(\"No programming\") }}\n </div>\n <div v-for=\"period in periodOfDay\" v-else :key=\"period.id\">\n <template v-if=\"planning[daySelected][period.id].length\">\n <div\n :id=\"'planning-period-' + period.id\"\n class=\"fw-bold my-3 pb-2 border-bottom border-primary text-primary\"\n >\n {{ period.title }}\n </div>\n <div\n v-for=\"planningItem in planning[daySelected][period.id]\"\n :id=\"\n 'planning-occurrence-' +\n planningItem.occurrenceId +\n '' +\n planningItem.liveId\n \"\n :key=\"planningItem.occurrenceId + '' + planningItem.liveId\"\n class=\"d-flex align-items-center mb-3\"\n >\n <time :datetime=\"planningItem.startDate\" class=\"program-item-date fw-bold flex-shrink-0\">\n {{ dateDisplay(planningItem.startDate) }}\n </time>\n <router-link\n class=\"d-flex align-items-center flex-nowrap text-dark\"\n :to=\"{\n name: 'podcast',\n params: { podcastId: planningItem.podcastId },\n }\"\n :title=\"t('Episode name page', { name: planningItem.title })\"\n >\n <img\n v-lazy=\"\n useProxyImageUrl(planningItem.podcastData.imageUrl, '150')\n \"\n width=\"150\"\n height=\"150\"\n class=\"m-2 program-item-img\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"\n t('Episode name image', {\n name: planningItem.podcastData.title,\n })\n \"\n />\n <div class=\"d-flex flex-column\">\n <div class=\"d-flex align-items-center mb-2\">\n <div\n v-if=\"planningItem.liveId\"\n class=\"bg-complementary text-white p-1 me-1\"\n >\n {{ t(\"Live\") }}\n </div>\n <div class=\"flex-grow-1 fw-bold\">\n {{ planningItem.podcastData.title }}\n </div>\n </div>\n </div>\n </router-link>\n </div>\n </template>\n </div>\n </template>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\ndayjs.extend(utc);\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { computed, nextTick, onMounted, ref, Ref } from \"vue\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport { PlanningOccurrence } from \"@/stores/class/radio/recurrence\";\nimport { PlanningLive } from \"@/stores/class/radio/live\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n radio: { default: undefined, type: Object as () => Canal },\n})\n\n//Data \nconst planning: Ref<{\n [key: number]: {\n morning: Array<PlanningOccurrence | PlanningLive>;\n afternoon: Array<PlanningOccurrence | PlanningLive>;\n evening: Array<PlanningOccurrence | PlanningLive>;\n };\n}> = ref({});\nconst planningLength: Ref<{ [key: number]: number }> = ref({});\nconst daySelected = ref(dayjs().valueOf());\nconst arrayDays: Ref<Array<{\n title: string;\n date: number;\n dayOfWeek: string;\n iso: string;\n}>> = ref([]);\nconst loading = ref(true);\nconst error = ref(false);\nconst showAllDays = ref(false);\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPhone } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst startOfDay = computed(() => dayjs(daySelected.value).startOf(\"date\").toISOString());\nconst endOfDay = computed(() => dayjs(daySelected.value).endOf(\"date\").toISOString());\nconst periodOfDay = computed(() => {\n return [\n {\n id: \"morning\",\n title: t(\"Morning\"),\n end: dayjs(daySelected.value)\n .hour(14)\n .minute(0)\n .second(0)\n .millisecond(0),\n },\n {\n id: \"afternoon\",\n title: t(\"Afternoon\"),\n end: dayjs(daySelected.value)\n .hour(19)\n .minute(0)\n .second(0)\n .millisecond(0),\n },\n {\n id: \"evening\",\n title: t(\"Evening\"),\n end: dayjs(daySelected.value).endOf(\"date\"),\n },\n ];\n});\nconst displayArrayDays = computed(() => {\n if(isPhone && !showAllDays.value){\n return arrayDays.value.slice(6, 9);\n }\n return arrayDays.value;\n});\n\n\nonMounted(()=>{\n createArrayDays();\n fetchOccurrences();\n})\n\n\n//Mounted\nfunction scrollToElement(id: string) {\n const element = document.getElementById(id);\n if (element) {\n const yOffset = -110;\n const y =\n element.getBoundingClientRect().top + window.scrollY + yOffset;\n window.scrollTo({ top: y, behavior: \"smooth\" });\n }\n}\nfunction changePeriodNow() {\n const now = dayjs();\n if (!dayjs(daySelected.value).isSame(now, \"day\")) {\n changeDate(arrayDays.value[7].date);\n }\n nextTick(() => {\n if (!planningLength.value[daySelected.value]) {\n return;\n }\n const arrayOccurrences = Object.values(\n planning.value[daySelected.value],\n ).reduce((r, c) => r.concat(c), []);\n let selectedOccurrence = arrayOccurrences[0];\n for (const occ of arrayOccurrences) {\n selectedOccurrence = occ;\n if (dayjs(occ.endDate).isAfter(now)) {\n break;\n }\n }\n scrollToElement(\n \"planning-occurrence-\" +\n selectedOccurrence.occurrenceId +\n \"\" +\n selectedOccurrence.liveId,\n );\n });\n}\nfunction createArrayDays() {\n for (let index = -7; index < 3; index++) {\n const dayToAdd = dayjs().add(index, \"day\");\n if (0 === index) {\n daySelected.value = dayToAdd.valueOf();\n }\n arrayDays.value.push({\n title: dayToAdd.format(\"D/MM\"),\n dayOfWeek: dayToAdd.format(\"dddd\"),\n date: dayToAdd.valueOf(),\n iso: dayToAdd.format(\"MM-DD\"),\n });\n }\n}\nasync function fetchOccurrencesAndLives(): Promise<Array<PlanningOccurrence|PlanningLive>> {\n const params = {\n canalId: props.radio?.id,\n from:startOfDay.value,\n to:endOfDay.value,\n };\n let occurrences: Array<PlanningOccurrence | PlanningLive> =\n await classicApi.fetchData<Array<PlanningOccurrence>>({\n api: 14,\n path: \"planning/occurrence/list\",\n parameters: params,\n });\n const lives: Array<PlanningOccurrence> = await classicApi.fetchData<\n Array<PlanningOccurrence>\n >({\n api: 14,\n path: \"live/list\",\n parameters: params,\n });\n\n if (lives.length) {\n occurrences = occurrences.concat(lives);\n occurrences.sort((a, b) => {\n if (a.startDate > b.startDate) {\n return 1;\n }\n return b.startDate > a.startDate ? -1 : 0;\n });\n }\n return occurrences;\n}\n\nasync function fetchOccurrences(): Promise<void> {\n if (planning.value[daySelected.value]) {\n return;\n }\n planning.value[daySelected.value] = {\n morning: [],\n afternoon: [],\n evening: [],\n };\n planningLength.value[daySelected.value] = 0;\n loading.value = true;\n error.value = false;\n try {\n const occurrences = await fetchOccurrencesAndLives();\n let periodDayIndex = 0;\n for (const occ of occurrences) {\n if (!occ.podcastId) {\n continue;\n }\n if (\n !dayjs(occ.startDate).isBefore(periodOfDay.value[periodDayIndex].end)\n ) {\n periodDayIndex += 1;\n }\n\n switch (periodOfDay.value[periodDayIndex].id) {\n case \"morning\":\n planning.value[daySelected.value].morning.push(occ);\n break;\n case \"afternoon\":\n planning.value[daySelected.value].afternoon.push(occ);\n break;\n case \"evening\":\n planning.value[daySelected.value].evening.push(occ);\n break;\n default:\n break;\n }\n planningLength.value[daySelected.value] += 1;\n }\n } catch(e) {\n error.value = true;\n console.error(e);\n }\n loading.value = false;\n}\nfunction changeDate(date: number) {\n daySelected.value = date;\n fetchOccurrences();\n}\nfunction dateDisplay(date: Date): string {\n return dayjs(date).format(\"HH:mm\");\n}\n</script>\n<style lang=\"scss\">\n.octopus-app {\n .program-item-date {\n width: 100px;\n font-size: 1.1rem;\n\n @media (width <= 960px) {\n\t\t\tfont-size: 0.8rem;\n\t\t}\n }\n\n .program-item-img{\n @media (width <= 960px) {\n\t\t\twidth: 80px;\n height: 80px;\n margin: 0.5rem 0.5rem 0 0 !important;\n\t\t}\n }\n\n .button-date {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n padding: 0.5rem;\n\n &.bg-primary{\n color: var(--octopus-color-on-primary) !important;\n }\n\n &:hover {\n background: var(--octopus-secondary);\n }\n\n @media (width <= 960px) {\n\t\t\twidth: 80px;\n\t\t}\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioProgressBar-BHAawrHe.mjs","names":[],"sources":["../src/components/misc/player/radio/RadioProgressBar.vue","../src/components/misc/player/radio/RadioProgressBar.vue"],"sourcesContent":["<template>\n <progress\n class=\"c-hand-auto mt-1\"\n min=\"0\"\n max=\"100\"\n :value=\"percentProgress\"\n :aria-label=\"t('Radio')\"\n :class=\"isAmbiance ? 'ambiance-progress' : ''\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport dayjs from \"dayjs\";\nimport { useI18n } from \"vue-i18n\";\nimport { computed, onMounted, onUnmounted, ref, Ref } from \"vue\";\n\n//Data \nconst percentInterval: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst isAmbiance = computed(() => !playerStore.playerRadio?.podcast?.podcastId);\nconst percentProgress = computed(() => {\n if (!playerStore.playerElapsed) {\n return 0;\n }\n return playerStore.playerElapsed * 100;\n});\n\n\nonMounted(()=>handlePercentInterval())\nonUnmounted(()=>clearInterval(percentInterval.value as unknown as number))\n\n\n//Methods\nfunction handlePercentInterval(): void {\n percentInterval.value = setInterval(() => {calculatePercent();}, 1000);\n}\nfunction calculatePercent(): void {\n if (!playerStore.playerRadio?.metadata) {\n return;\n }\n const actualMilliSecondsPlayed = dayjs()\n .subtract(18, \"second\")\n .diff(dayjs(playerStore.playerRadio.metadata.startDate));\n const percentPlayed =\n actualMilliSecondsPlayed /\n (playerStore.playerRadio?.metadata.playDuration * 1000);\n playerStore.playerUpdateElapsed(\n percentPlayed,\n playerStore.playerRadio?.metadata.playDuration,\n );\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n progress {\n background-color: var(--octopus-player-progress-background-color);\n border-radius: var(--octopus-border-radius);\n accent-color: var(--octopus-player-progress-color-current);\n color: var(--octopus-player-progress-color-current);\n border: none;\n\n &::-moz-progress-bar, &::-webkit-progress-value {\n background: var(--octopus-player-progress-color-current);\n }\n }\n}\n</style>\n","<template>\n <progress\n class=\"c-hand-auto mt-1\"\n min=\"0\"\n max=\"100\"\n :value=\"percentProgress\"\n :aria-label=\"t('Radio')\"\n :class=\"isAmbiance ? 'ambiance-progress' : ''\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport dayjs from \"dayjs\";\nimport { useI18n } from \"vue-i18n\";\nimport { computed, onMounted, onUnmounted, ref, Ref } from \"vue\";\n\n//Data \nconst percentInterval: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst isAmbiance = computed(() => !playerStore.playerRadio?.podcast?.podcastId);\nconst percentProgress = computed(() => {\n if (!playerStore.playerElapsed) {\n return 0;\n }\n return playerStore.playerElapsed * 100;\n});\n\n\nonMounted(()=>handlePercentInterval())\nonUnmounted(()=>clearInterval(percentInterval.value as unknown as number))\n\n\n//Methods\nfunction handlePercentInterval(): void {\n percentInterval.value = setInterval(() => {calculatePercent();}, 1000);\n}\nfunction calculatePercent(): void {\n if (!playerStore.playerRadio?.metadata) {\n return;\n }\n const actualMilliSecondsPlayed = dayjs()\n .subtract(18, \"second\")\n .diff(dayjs(playerStore.playerRadio.metadata.startDate));\n const percentPlayed =\n actualMilliSecondsPlayed /\n (playerStore.playerRadio?.metadata.playDuration * 1000);\n playerStore.playerUpdateElapsed(\n percentPlayed,\n playerStore.playerRadio?.metadata.playDuration,\n );\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n progress {\n background-color: var(--octopus-player-progress-background-color);\n border-radius: var(--octopus-border-radius);\n accent-color: var(--octopus-player-progress-color-current);\n color: var(--octopus-player-progress-color-current);\n border: none;\n\n &::-moz-progress-bar, &::-webkit-progress-value {\n background: var(--octopus-player-progress-color-current);\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;EAkBA,MAAM,kBAAkE,IAAI,KAAA,CAAS;EAGrF,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,cAAc,eAAe;EAInC,MAAM,aAAa,eAAe,CAAC,YAAY,aAAa,SAAS,SAAS;EAC9E,MAAM,kBAAkB,eAAe;GACrC,IAAI,CAAC,YAAY,eACf,OAAO;GAET,OAAO,YAAY,gBAAgB;EACrC,CAAC;EAGD,gBAAc,sBAAsB,CAAC;EACrC,kBAAgB,cAAc,gBAAgB,KAA0B,CAAC;EAIzE,SAAS,wBAA8B;GACrC,gBAAgB,QAAQ,kBAAkB;IAAC,iBAAiB;GAAE,GAAG,GAAI;EACvE;EACA,SAAS,mBAAyB;GAChC,IAAI,CAAC,YAAY,aAAa,UAC5B;GAKF,MAAM,gBAH2B,MAAM,EACpC,SAAS,IAAI,QAAQ,EACrB,KAAK,MAAM,YAAY,YAAY,SAAS,SAAS,CAEtD,KACC,YAAY,aAAa,SAAS,eAAe;GAClD,YAAY,oBACZ,eACA,YAAY,aAAa,SAAS,YACpC;EACF;;;;;;;;;;;;;;;;;;;;;qBCxDE,mBAOE,YAAA;EANA,OAAK,eAAA,CAAC,oBAKE,OAAA,aAAU,sBAAA,EAAA,CAAA;EAJlB,KAAI;EACJ,KAAI;EACH,OAAO,OAAA;EACP,cAAY,OAAA,EAAC,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioProgressBar-CPjLAoPB.mjs","names":[],"sources":["../src/components/misc/player/radio/RadioProgressBar.vue","../src/components/misc/player/radio/RadioProgressBar.vue"],"sourcesContent":["<template>\n <progress\n class=\"c-hand-auto mt-1\"\n min=\"0\"\n max=\"100\"\n :value=\"percentProgress\"\n :aria-label=\"t('Radio')\"\n :class=\"isAmbiance ? 'ambiance-progress' : ''\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport dayjs from \"dayjs\";\nimport { useI18n } from \"vue-i18n\";\nimport { computed, onMounted, onUnmounted, ref, Ref } from \"vue\";\n\n//Data \nconst percentInterval: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst isAmbiance = computed(() => !playerStore.playerRadio?.podcast?.podcastId);\nconst percentProgress = computed(() => {\n if (!playerStore.playerElapsed) {\n return 0;\n }\n return playerStore.playerElapsed * 100;\n});\n\n\nonMounted(()=>handlePercentInterval())\nonUnmounted(()=>clearInterval(percentInterval.value as unknown as number))\n\n\n//Methods\nfunction handlePercentInterval(): void {\n percentInterval.value = setInterval(() => {calculatePercent();}, 1000);\n}\nfunction calculatePercent(): void {\n if (!playerStore.playerRadio?.metadata) {\n return;\n }\n const actualMilliSecondsPlayed = dayjs()\n .subtract(18, \"second\")\n .diff(dayjs(playerStore.playerRadio.metadata.startDate));\n const percentPlayed =\n actualMilliSecondsPlayed /\n (playerStore.playerRadio?.metadata.playDuration * 1000);\n playerStore.playerUpdateElapsed(\n percentPlayed,\n playerStore.playerRadio?.metadata.playDuration,\n );\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n progress {\n background-color: var(--octopus-player-progress-background-color);\n border-radius: var(--octopus-border-radius);\n accent-color: var(--octopus-player-progress-color-current);\n color: var(--octopus-player-progress-color-current);\n border: none;\n\n &::-moz-progress-bar, &::-webkit-progress-value {\n background: var(--octopus-player-progress-color-current);\n }\n }\n}\n</style>\n","<template>\n <progress\n class=\"c-hand-auto mt-1\"\n min=\"0\"\n max=\"100\"\n :value=\"percentProgress\"\n :aria-label=\"t('Radio')\"\n :class=\"isAmbiance ? 'ambiance-progress' : ''\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport dayjs from \"dayjs\";\nimport { useI18n } from \"vue-i18n\";\nimport { computed, onMounted, onUnmounted, ref, Ref } from \"vue\";\n\n//Data \nconst percentInterval: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst isAmbiance = computed(() => !playerStore.playerRadio?.podcast?.podcastId);\nconst percentProgress = computed(() => {\n if (!playerStore.playerElapsed) {\n return 0;\n }\n return playerStore.playerElapsed * 100;\n});\n\n\nonMounted(()=>handlePercentInterval())\nonUnmounted(()=>clearInterval(percentInterval.value as unknown as number))\n\n\n//Methods\nfunction handlePercentInterval(): void {\n percentInterval.value = setInterval(() => {calculatePercent();}, 1000);\n}\nfunction calculatePercent(): void {\n if (!playerStore.playerRadio?.metadata) {\n return;\n }\n const actualMilliSecondsPlayed = dayjs()\n .subtract(18, \"second\")\n .diff(dayjs(playerStore.playerRadio.metadata.startDate));\n const percentPlayed =\n actualMilliSecondsPlayed /\n (playerStore.playerRadio?.metadata.playDuration * 1000);\n playerStore.playerUpdateElapsed(\n percentPlayed,\n playerStore.playerRadio?.metadata.playDuration,\n );\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n progress {\n background-color: var(--octopus-player-progress-background-color);\n border-radius: var(--octopus-border-radius);\n accent-color: var(--octopus-player-progress-color-current);\n color: var(--octopus-player-progress-color-current);\n border: none;\n\n &::-moz-progress-bar, &::-webkit-progress-value {\n background: var(--octopus-player-progress-color-current);\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;EAkBA,MAAM,kBAAkE,IAAI,KAAA,CAAS;EAGrF,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,cAAc,eAAe;EAInC,MAAM,aAAa,eAAe,CAAC,YAAY,aAAa,SAAS,SAAS;EAC9E,MAAM,kBAAkB,eAAe;GACrC,IAAI,CAAC,YAAY,eACf,OAAO;GAET,OAAO,YAAY,gBAAgB;EACrC,CAAC;EAGD,gBAAc,sBAAsB,CAAC;EACrC,kBAAgB,cAAc,gBAAgB,KAA0B,CAAC;EAIzE,SAAS,wBAA8B;GACrC,gBAAgB,QAAQ,kBAAkB;IAAC,iBAAiB;GAAE,GAAG,GAAI;EACvE;EACA,SAAS,mBAAyB;GAChC,IAAI,CAAC,YAAY,aAAa,UAC5B;GAKF,MAAM,gBAH2B,MAAM,EACpC,SAAS,IAAI,QAAQ,EACrB,KAAK,MAAM,YAAY,YAAY,SAAS,SAAS,CAEtD,KACC,YAAY,aAAa,SAAS,eAAe;GAClD,YAAY,oBACZ,eACA,YAAY,aAAa,SAAS,YACpC;EACF;;;;;;;;;;;;;;;;;;;;;qBCxDE,mBAOE,YAAA;EANA,OAAK,eAAA,CAAC,oBAKE,OAAA,aAAU,sBAAA,EAAA,CAAA;EAJlB,KAAI;EACJ,KAAI;EACH,OAAO,OAAA;EACP,cAAY,OAAA,EAAC,OAAA"}
@@ -1,5 +1,5 @@
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";
2
+ import { n as usePlayerStore } from "./PlayerStore-vYmnOEA_.mjs";
3
3
  import { computed, createElementBlock, defineComponent, normalizeClass, onMounted, onUnmounted, openBlock, ref } from "vue";
4
4
  import { useI18n } from "vue-i18n";
5
5
  import dayjs from "dayjs";
@@ -64,4 +64,4 @@ var RadioProgressBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(R
64
64
  //#endregion
65
65
  export { RadioProgressBar_default as default };
66
66
 
67
- //# sourceMappingURL=RadioProgressBar-BmJbzzQA.mjs.map
67
+ //# sourceMappingURL=RadioProgressBar-yIz1oI5d.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioProgressBar-yIz1oI5d.mjs","names":[],"sources":["../src/components/misc/player/radio/RadioProgressBar.vue","../src/components/misc/player/radio/RadioProgressBar.vue"],"sourcesContent":["<template>\n <progress\n class=\"c-hand-auto mt-1\"\n min=\"0\"\n max=\"100\"\n :value=\"percentProgress\"\n :aria-label=\"t('Radio')\"\n :class=\"isAmbiance ? 'ambiance-progress' : ''\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport dayjs from \"dayjs\";\nimport { useI18n } from \"vue-i18n\";\nimport { computed, onMounted, onUnmounted, ref, Ref } from \"vue\";\n\n//Data \nconst percentInterval: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst isAmbiance = computed(() => !playerStore.playerRadio?.podcast?.podcastId);\nconst percentProgress = computed(() => {\n if (!playerStore.playerElapsed) {\n return 0;\n }\n return playerStore.playerElapsed * 100;\n});\n\n\nonMounted(()=>handlePercentInterval())\nonUnmounted(()=>clearInterval(percentInterval.value as unknown as number))\n\n\n//Methods\nfunction handlePercentInterval(): void {\n percentInterval.value = setInterval(() => {calculatePercent();}, 1000);\n}\nfunction calculatePercent(): void {\n if (!playerStore.playerRadio?.metadata) {\n return;\n }\n const actualMilliSecondsPlayed = dayjs()\n .subtract(18, \"second\")\n .diff(dayjs(playerStore.playerRadio.metadata.startDate));\n const percentPlayed =\n actualMilliSecondsPlayed /\n (playerStore.playerRadio?.metadata.playDuration * 1000);\n playerStore.playerUpdateElapsed(\n percentPlayed,\n playerStore.playerRadio?.metadata.playDuration,\n );\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n progress {\n background-color: var(--octopus-player-progress-background-color);\n border-radius: var(--octopus-border-radius);\n accent-color: var(--octopus-player-progress-color-current);\n color: var(--octopus-player-progress-color-current);\n border: none;\n\n &::-moz-progress-bar, &::-webkit-progress-value {\n background: var(--octopus-player-progress-color-current);\n }\n }\n}\n</style>\n","<template>\n <progress\n class=\"c-hand-auto mt-1\"\n min=\"0\"\n max=\"100\"\n :value=\"percentProgress\"\n :aria-label=\"t('Radio')\"\n :class=\"isAmbiance ? 'ambiance-progress' : ''\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport dayjs from \"dayjs\";\nimport { useI18n } from \"vue-i18n\";\nimport { computed, onMounted, onUnmounted, ref, Ref } from \"vue\";\n\n//Data \nconst percentInterval: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst isAmbiance = computed(() => !playerStore.playerRadio?.podcast?.podcastId);\nconst percentProgress = computed(() => {\n if (!playerStore.playerElapsed) {\n return 0;\n }\n return playerStore.playerElapsed * 100;\n});\n\n\nonMounted(()=>handlePercentInterval())\nonUnmounted(()=>clearInterval(percentInterval.value as unknown as number))\n\n\n//Methods\nfunction handlePercentInterval(): void {\n percentInterval.value = setInterval(() => {calculatePercent();}, 1000);\n}\nfunction calculatePercent(): void {\n if (!playerStore.playerRadio?.metadata) {\n return;\n }\n const actualMilliSecondsPlayed = dayjs()\n .subtract(18, \"second\")\n .diff(dayjs(playerStore.playerRadio.metadata.startDate));\n const percentPlayed =\n actualMilliSecondsPlayed /\n (playerStore.playerRadio?.metadata.playDuration * 1000);\n playerStore.playerUpdateElapsed(\n percentPlayed,\n playerStore.playerRadio?.metadata.playDuration,\n );\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n progress {\n background-color: var(--octopus-player-progress-background-color);\n border-radius: var(--octopus-border-radius);\n accent-color: var(--octopus-player-progress-color-current);\n color: var(--octopus-player-progress-color-current);\n border: none;\n\n &::-moz-progress-bar, &::-webkit-progress-value {\n background: var(--octopus-player-progress-color-current);\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;EAkBA,MAAM,kBAAkE,IAAI,KAAA,CAAS;EAGrF,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,cAAc,eAAe;EAInC,MAAM,aAAa,eAAe,CAAC,YAAY,aAAa,SAAS,SAAS;EAC9E,MAAM,kBAAkB,eAAe;GACrC,IAAI,CAAC,YAAY,eACf,OAAO;GAET,OAAO,YAAY,gBAAgB;EACrC,CAAC;EAGD,gBAAc,sBAAsB,CAAC;EACrC,kBAAgB,cAAc,gBAAgB,KAA0B,CAAC;EAIzE,SAAS,wBAA8B;GACrC,gBAAgB,QAAQ,kBAAkB;IAAC,iBAAiB;GAAE,GAAG,GAAI;EACvE;EACA,SAAS,mBAAyB;GAChC,IAAI,CAAC,YAAY,aAAa,UAC5B;GAKF,MAAM,gBAH2B,MAAM,EACpC,SAAS,IAAI,QAAQ,EACrB,KAAK,MAAM,YAAY,YAAY,SAAS,SAAS,CAEtD,KACC,YAAY,aAAa,SAAS,eAAe;GAClD,YAAY,oBACZ,eACA,YAAY,aAAa,SAAS,YACpC;EACF;;;;;;;;;;;;;;;;;;;;;qBCxDE,mBAOE,YAAA;EANA,OAAK,eAAA,CAAC,oBAKE,OAAA,aAAU,sBAAA,EAAA,CAAA;EAJlB,KAAI;EACJ,KAAI;EACH,OAAO,OAAA;EACP,cAAY,OAAA,EAAC,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecaptchaModal-DKugsU7h.mjs","names":[],"sources":["../src/components/display/comments/modal/RecaptchaModal.vue","../src/components/display/comments/modal/RecaptchaModal.vue"],"sourcesContent":["<template>\n <ClassicModal\n :id-modal=\"idModal\"\n :title-modal=\"titleModal\"\n :closable=\"false\"\n @close=\"closePopup\"\n >\n <template #body>\n <div class=\"text-center text-danger\">{{ errorRecaptchaText }}</div>\n <slot v-if=\"!isInTreatment\" name=\"form\" />\n <ClassicLoading\n v-else\n :loading-text=\"\n isInTreatment && !errorText && !successText\n ? t('Loading content ...')\n : undefined\n \"\n :error-text=\"errorText\"\n />\n <div v-if=\"successText\" class=\"text-center h3\">{{ successText }}</div>\n </template>\n <template #footer>\n <button class=\"btn m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n <vue-recaptcha\n v-if=\"!isVerify\"\n ref=\"invisibleRecaptcha\"\n :load-recaptcha-script=\"true\"\n size=\"invisible\"\n sitekey=\"6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh\"\n @verify=\"handleSuccess\"\n @expired=\"handleError\"\n />\n <button\n v-if=\"!errorText && !successText\"\n class=\"btn btn-primary m-1\"\n :disabled=\"disableValidate || isInTreatment\"\n @click=\"submit\"\n >\n {{ t(\"Yes\") }}\n </button>\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport { state } from \"../../../../stores/ParamSdkStore\";\nimport ClassicLoading from \"../../../form/ClassicLoading.vue\";\nimport ClassicModal from \"../../../misc/modal/ClassicModal.vue\";\nimport { CHECK_TOKEN_KEY } from \"../../../composable/keys\";\nimport { VueRecaptcha } from \"vue-recaptcha\";\nimport { computed, inject, ref, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n idModal: { default: undefined, type: String },\n titleModal: { default: undefined, type: String },\n disableValidate: { default: false, type: Boolean },\n errorText: { default: undefined, type: String },\n successText: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst sendError = ref(false);\nconst isVerify = ref(false);\nconst isInTreatment = ref(false);\nconst captchRef = useTemplateRef('invisibleRecaptcha');\n\n\n//Composables\nconst { t } = useI18n();\n// checkToken is not defined in the SDK: it is resolved at runtime from the\n// consuming app's globally provided implementation (app.provide()), and\n// defaults to always-verified when the app hasn't provided one.\nconst checkToken = inject(CHECK_TOKEN_KEY, async () => true);\n\n//Computed\nconst errorRecaptchaText = computed(() =>{\n if (isCaptchaTest.value) {\n return t(\"Recaptcha not active\");\n }\n return sendError.value ? t(\"Recaptcha error\") : \"\";\n});\nconst isCaptchaTest = computed(() => state.generalParameters.isCaptchaTest as boolean);\n\n\n//Methods\nasync function handleSuccess(token: string) {\n isVerify.value = await checkToken(token);\n sendAction();\n}\nfunction handleError() {\n isVerify.value = false;\n sendError.value = true;\n}\nasync function submit(): Promise<void> {\n isInTreatment.value = true;\n if (!isVerify.value && !isCaptchaTest.value) {\n (captchRef?.value as InstanceType<typeof VueRecaptcha>).execute();\n }\n sendAction();\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction sendAction(): void {\n emit(\"validate\");\n}\n</script>\n","<template>\n <ClassicModal\n :id-modal=\"idModal\"\n :title-modal=\"titleModal\"\n :closable=\"false\"\n @close=\"closePopup\"\n >\n <template #body>\n <div class=\"text-center text-danger\">{{ errorRecaptchaText }}</div>\n <slot v-if=\"!isInTreatment\" name=\"form\" />\n <ClassicLoading\n v-else\n :loading-text=\"\n isInTreatment && !errorText && !successText\n ? t('Loading content ...')\n : undefined\n \"\n :error-text=\"errorText\"\n />\n <div v-if=\"successText\" class=\"text-center h3\">{{ successText }}</div>\n </template>\n <template #footer>\n <button class=\"btn m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n <vue-recaptcha\n v-if=\"!isVerify\"\n ref=\"invisibleRecaptcha\"\n :load-recaptcha-script=\"true\"\n size=\"invisible\"\n sitekey=\"6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh\"\n @verify=\"handleSuccess\"\n @expired=\"handleError\"\n />\n <button\n v-if=\"!errorText && !successText\"\n class=\"btn btn-primary m-1\"\n :disabled=\"disableValidate || isInTreatment\"\n @click=\"submit\"\n >\n {{ t(\"Yes\") }}\n </button>\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport { state } from \"../../../../stores/ParamSdkStore\";\nimport ClassicLoading from \"../../../form/ClassicLoading.vue\";\nimport ClassicModal from \"../../../misc/modal/ClassicModal.vue\";\nimport { CHECK_TOKEN_KEY } from \"../../../composable/keys\";\nimport { VueRecaptcha } from \"vue-recaptcha\";\nimport { computed, inject, ref, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n idModal: { default: undefined, type: String },\n titleModal: { default: undefined, type: String },\n disableValidate: { default: false, type: Boolean },\n errorText: { default: undefined, type: String },\n successText: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst sendError = ref(false);\nconst isVerify = ref(false);\nconst isInTreatment = ref(false);\nconst captchRef = useTemplateRef('invisibleRecaptcha');\n\n\n//Composables\nconst { t } = useI18n();\n// checkToken is not defined in the SDK: it is resolved at runtime from the\n// consuming app's globally provided implementation (app.provide()), and\n// defaults to always-verified when the app hasn't provided one.\nconst checkToken = inject(CHECK_TOKEN_KEY, async () => true);\n\n//Computed\nconst errorRecaptchaText = computed(() =>{\n if (isCaptchaTest.value) {\n return t(\"Recaptcha not active\");\n }\n return sendError.value ? t(\"Recaptcha error\") : \"\";\n});\nconst isCaptchaTest = computed(() => state.generalParameters.isCaptchaTest as boolean);\n\n\n//Methods\nasync function handleSuccess(token: string) {\n isVerify.value = await checkToken(token);\n sendAction();\n}\nfunction handleError() {\n isVerify.value = false;\n sendError.value = true;\n}\nasync function submit(): Promise<void> {\n isInTreatment.value = true;\n if (!isVerify.value && !isCaptchaTest.value) {\n (captchRef?.value as InstanceType<typeof VueRecaptcha>).execute();\n }\n sendAction();\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction sendAction(): void {\n emit(\"validate\");\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEA,MAAM,OAAO;EAGb,MAAM,YAAY,IAAI,KAAK;EAC3B,MAAM,WAAW,IAAI,KAAK;EAC1B,MAAM,gBAAgB,IAAI,KAAK;EAC/B,MAAM,YAAY,eAAe,oBAAoB;EAIrD,MAAM,EAAE,MAAM,QAAQ;EAItB,MAAM,aAAa,OAAO,iBAAiB,YAAY,IAAI;EAG3D,MAAM,qBAAqB,eAAc;GACvC,IAAI,cAAc,OAChB,OAAO,EAAE,sBAAsB;GAEjC,OAAO,UAAU,QAAQ,EAAE,iBAAiB,IAAI;EAClD,CAAC;EACD,MAAM,gBAAgB,eAAe,MAAM,kBAAkB,aAAwB;EAIrF,eAAe,cAAc,OAAe;GAC1C,SAAS,QAAQ,MAAM,WAAW,KAAK;GACvC,WAAW;EACb;EACA,SAAS,cAAc;GACrB,SAAS,QAAQ;GACjB,UAAU,QAAQ;EACpB;EACA,eAAe,SAAwB;GACrC,cAAc,QAAQ;GACtB,IAAI,CAAC,SAAS,SAAS,CAAC,cAAc,OACpC,CAAC,WAAW,OAA4C,QAAQ;GAElE,WAAW;EACb;EACA,SAAS,aAAmB;GAC1B,KAAK,OAAO;EACd;EACA,SAAS,aAAmB;GAC1B,KAAK,UAAU;EACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBCxGW,OAAM,0BAAyB;;;CAWZ,OAAM;;;;qBAlBlC,YA0Ce,OAAA,iBAAA;EAzCZ,YAAU,OAAA;EACV,eAAa,OAAA;EACb,UAAU;EACV,SAAO,OAAA;;EAEG,MAAI,cACsD;GAAnE,mBAAmE,OAAnE,YAAmE,gBAA3B,OAAA,kBAAkB,GAAA,CAAA;IAC7C,OAAA,gBAAb,WAA0C,KAAA,QAAA,QAAA,EAAA,KAAA,EAAA,CAAA,KAAA,UAAA,GAC1C,YAQE,OAAA,mBAAA;;IANC,gBAAyB,OAAA,iBAAa,CAAK,OAAA,aAAS,CAAK,OAAA,cAA0B,OAAA,EAAC,qBAAA,IAAsC,KAAA;IAK1H,cAAY,OAAA;;GAEJ,OAAA,eAAA,UAAA,GAAX,mBAAsE,OAAtE,YAAsE,gBAApB,OAAA,WAAW,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA;;EAEpD,QAAM,cAGN;GAFT,mBAES,UAAA;IAFD,OAAM;IAAW,SAAO,OAAA;sBAC3B,OAAA,EAAC,OAAA,CAAA,GAAA,CAAA;IAGG,OAAA,YAAA,UAAA,GADT,YAQE,OAAA,iBAAA;;IANA,KAAI;IACH,yBAAuB;IACxB,MAAK;IACL,SAAQ;IACP,UAAQ,OAAA;IACR,WAAS,OAAA;;IAGH,OAAA,aAAS,CAAK,OAAA,eAAA,UAAA,GADvB,mBAOS,UAAA;;IALP,OAAM;IACL,UAAU,OAAA,mBAAmB,OAAA;IAC7B,SAAO,OAAA;sBAEL,OAAA,EAAC,KAAA,CAAA,GAAA,GAAA,UAAA,KAAA,mBAAA,QAAA,IAAA"}
@@ -1,6 +1,6 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
2
  import { t as ClassicLoading_default } from "./ClassicLoading-Crlw7cAx.mjs";
3
- import { A as state } from "./classicApi-CkDHWZG1.mjs";
3
+ import { A as state } from "./classicApi-xjOqAovv.mjs";
4
4
  import { t as ClassicModal_default } from "./ClassicModal-CilwHp9p.mjs";
5
5
  import { t as CHECK_TOKEN_KEY } from "./keys-TjlLYNQE.mjs";
6
6
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, inject, openBlock, ref, renderSlot, toDisplayString, useTemplateRef, withCtx } from "vue";
@@ -145,4 +145,4 @@ var RecaptchaModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Rec
145
145
  //#endregion
146
146
  export { RecaptchaModal_default as t };
147
147
 
148
- //# sourceMappingURL=RecaptchaModal-DX9rAHUg.mjs.map
148
+ //# sourceMappingURL=RecaptchaModal-dfMCfebx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecaptchaModal-dfMCfebx.mjs","names":[],"sources":["../src/components/display/comments/modal/RecaptchaModal.vue","../src/components/display/comments/modal/RecaptchaModal.vue"],"sourcesContent":["<template>\n <ClassicModal\n :id-modal=\"idModal\"\n :title-modal=\"titleModal\"\n :closable=\"false\"\n @close=\"closePopup\"\n >\n <template #body>\n <div class=\"text-center text-danger\">{{ errorRecaptchaText }}</div>\n <slot v-if=\"!isInTreatment\" name=\"form\" />\n <ClassicLoading\n v-else\n :loading-text=\"\n isInTreatment && !errorText && !successText\n ? t('Loading content ...')\n : undefined\n \"\n :error-text=\"errorText\"\n />\n <div v-if=\"successText\" class=\"text-center h3\">{{ successText }}</div>\n </template>\n <template #footer>\n <button class=\"btn m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n <vue-recaptcha\n v-if=\"!isVerify\"\n ref=\"invisibleRecaptcha\"\n :load-recaptcha-script=\"true\"\n size=\"invisible\"\n sitekey=\"6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh\"\n @verify=\"handleSuccess\"\n @expired=\"handleError\"\n />\n <button\n v-if=\"!errorText && !successText\"\n class=\"btn btn-primary m-1\"\n :disabled=\"disableValidate || isInTreatment\"\n @click=\"submit\"\n >\n {{ t(\"Yes\") }}\n </button>\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport { state } from \"../../../../stores/ParamSdkStore\";\nimport ClassicLoading from \"../../../form/ClassicLoading.vue\";\nimport ClassicModal from \"../../../misc/modal/ClassicModal.vue\";\nimport { CHECK_TOKEN_KEY } from \"../../../composable/keys\";\nimport { VueRecaptcha } from \"vue-recaptcha\";\nimport { computed, inject, ref, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n idModal: { default: undefined, type: String },\n titleModal: { default: undefined, type: String },\n disableValidate: { default: false, type: Boolean },\n errorText: { default: undefined, type: String },\n successText: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst sendError = ref(false);\nconst isVerify = ref(false);\nconst isInTreatment = ref(false);\nconst captchRef = useTemplateRef('invisibleRecaptcha');\n\n\n//Composables\nconst { t } = useI18n();\n// checkToken is not defined in the SDK: it is resolved at runtime from the\n// consuming app's globally provided implementation (app.provide()), and\n// defaults to always-verified when the app hasn't provided one.\nconst checkToken = inject(CHECK_TOKEN_KEY, async () => true);\n\n//Computed\nconst errorRecaptchaText = computed(() =>{\n if (isCaptchaTest.value) {\n return t(\"Recaptcha not active\");\n }\n return sendError.value ? t(\"Recaptcha error\") : \"\";\n});\nconst isCaptchaTest = computed(() => state.generalParameters.isCaptchaTest as boolean);\n\n\n//Methods\nasync function handleSuccess(token: string) {\n isVerify.value = await checkToken(token);\n sendAction();\n}\nfunction handleError() {\n isVerify.value = false;\n sendError.value = true;\n}\nasync function submit(): Promise<void> {\n isInTreatment.value = true;\n if (!isVerify.value && !isCaptchaTest.value) {\n (captchRef?.value as InstanceType<typeof VueRecaptcha>).execute();\n }\n sendAction();\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction sendAction(): void {\n emit(\"validate\");\n}\n</script>\n","<template>\n <ClassicModal\n :id-modal=\"idModal\"\n :title-modal=\"titleModal\"\n :closable=\"false\"\n @close=\"closePopup\"\n >\n <template #body>\n <div class=\"text-center text-danger\">{{ errorRecaptchaText }}</div>\n <slot v-if=\"!isInTreatment\" name=\"form\" />\n <ClassicLoading\n v-else\n :loading-text=\"\n isInTreatment && !errorText && !successText\n ? t('Loading content ...')\n : undefined\n \"\n :error-text=\"errorText\"\n />\n <div v-if=\"successText\" class=\"text-center h3\">{{ successText }}</div>\n </template>\n <template #footer>\n <button class=\"btn m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n <vue-recaptcha\n v-if=\"!isVerify\"\n ref=\"invisibleRecaptcha\"\n :load-recaptcha-script=\"true\"\n size=\"invisible\"\n sitekey=\"6LfyP_4ZAAAAAPODj8nov2LvosIwcX0GYeBSungh\"\n @verify=\"handleSuccess\"\n @expired=\"handleError\"\n />\n <button\n v-if=\"!errorText && !successText\"\n class=\"btn btn-primary m-1\"\n :disabled=\"disableValidate || isInTreatment\"\n @click=\"submit\"\n >\n {{ t(\"Yes\") }}\n </button>\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport { state } from \"../../../../stores/ParamSdkStore\";\nimport ClassicLoading from \"../../../form/ClassicLoading.vue\";\nimport ClassicModal from \"../../../misc/modal/ClassicModal.vue\";\nimport { CHECK_TOKEN_KEY } from \"../../../composable/keys\";\nimport { VueRecaptcha } from \"vue-recaptcha\";\nimport { computed, inject, ref, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n idModal: { default: undefined, type: String },\n titleModal: { default: undefined, type: String },\n disableValidate: { default: false, type: Boolean },\n errorText: { default: undefined, type: String },\n successText: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst sendError = ref(false);\nconst isVerify = ref(false);\nconst isInTreatment = ref(false);\nconst captchRef = useTemplateRef('invisibleRecaptcha');\n\n\n//Composables\nconst { t } = useI18n();\n// checkToken is not defined in the SDK: it is resolved at runtime from the\n// consuming app's globally provided implementation (app.provide()), and\n// defaults to always-verified when the app hasn't provided one.\nconst checkToken = inject(CHECK_TOKEN_KEY, async () => true);\n\n//Computed\nconst errorRecaptchaText = computed(() =>{\n if (isCaptchaTest.value) {\n return t(\"Recaptcha not active\");\n }\n return sendError.value ? t(\"Recaptcha error\") : \"\";\n});\nconst isCaptchaTest = computed(() => state.generalParameters.isCaptchaTest as boolean);\n\n\n//Methods\nasync function handleSuccess(token: string) {\n isVerify.value = await checkToken(token);\n sendAction();\n}\nfunction handleError() {\n isVerify.value = false;\n sendError.value = true;\n}\nasync function submit(): Promise<void> {\n isInTreatment.value = true;\n if (!isVerify.value && !isCaptchaTest.value) {\n (captchRef?.value as InstanceType<typeof VueRecaptcha>).execute();\n }\n sendAction();\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction sendAction(): void {\n emit(\"validate\");\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEA,MAAM,OAAO;EAGb,MAAM,YAAY,IAAI,KAAK;EAC3B,MAAM,WAAW,IAAI,KAAK;EAC1B,MAAM,gBAAgB,IAAI,KAAK;EAC/B,MAAM,YAAY,eAAe,oBAAoB;EAIrD,MAAM,EAAE,MAAM,QAAQ;EAItB,MAAM,aAAa,OAAO,iBAAiB,YAAY,IAAI;EAG3D,MAAM,qBAAqB,eAAc;GACvC,IAAI,cAAc,OAChB,OAAO,EAAE,sBAAsB;GAEjC,OAAO,UAAU,QAAQ,EAAE,iBAAiB,IAAI;EAClD,CAAC;EACD,MAAM,gBAAgB,eAAe,MAAM,kBAAkB,aAAwB;EAIrF,eAAe,cAAc,OAAe;GAC1C,SAAS,QAAQ,MAAM,WAAW,KAAK;GACvC,WAAW;EACb;EACA,SAAS,cAAc;GACrB,SAAS,QAAQ;GACjB,UAAU,QAAQ;EACpB;EACA,eAAe,SAAwB;GACrC,cAAc,QAAQ;GACtB,IAAI,CAAC,SAAS,SAAS,CAAC,cAAc,OACpC,CAAC,WAAW,OAA4C,QAAQ;GAElE,WAAW;EACb;EACA,SAAS,aAAmB;GAC1B,KAAK,OAAO;EACd;EACA,SAAS,aAAmB;GAC1B,KAAK,UAAU;EACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBCxGW,OAAM,0BAAyB;;;CAWZ,OAAM;;;;qBAlBlC,YA0Ce,OAAA,iBAAA;EAzCZ,YAAU,OAAA;EACV,eAAa,OAAA;EACb,UAAU;EACV,SAAO,OAAA;;EAEG,MAAI,cACsD;GAAnE,mBAAmE,OAAnE,YAAmE,gBAA3B,OAAA,kBAAkB,GAAA,CAAA;IAC7C,OAAA,gBAAb,WAA0C,KAAA,QAAA,QAAA,EAAA,KAAA,EAAA,CAAA,KAAA,UAAA,GAC1C,YAQE,OAAA,mBAAA;;IANC,gBAAyB,OAAA,iBAAa,CAAK,OAAA,aAAS,CAAK,OAAA,cAA0B,OAAA,EAAC,qBAAA,IAAsC,KAAA;IAK1H,cAAY,OAAA;;GAEJ,OAAA,eAAA,UAAA,GAAX,mBAAsE,OAAtE,YAAsE,gBAApB,OAAA,WAAW,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA;;EAEpD,QAAM,cAGN;GAFT,mBAES,UAAA;IAFD,OAAM;IAAW,SAAO,OAAA;sBAC3B,OAAA,EAAC,OAAA,CAAA,GAAA,CAAA;IAGG,OAAA,YAAA,UAAA,GADT,YAQE,OAAA,iBAAA;;IANA,KAAI;IACH,yBAAuB;IACxB,MAAK;IACL,SAAQ;IACP,UAAQ,OAAA;IACR,WAAS,OAAA;;IAGH,OAAA,aAAS,CAAK,OAAA,eAAA,UAAA,GADvB,mBAOS,UAAA;;IALP,OAAM;IACL,UAAU,OAAA,mBAAmB,OAAA;IAC7B,SAAO,OAAA;sBAEL,OAAA,EAAC,KAAA,CAAA,GAAA,GAAA,UAAA,KAAA,mBAAA,QAAA,IAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportAbuseModal-Bxr7NTvH.mjs","names":[],"sources":["../src/components/display/comments/modal/ReportAbuseModal.vue","../src/components/display/comments/modal/ReportAbuseModal.vue"],"sourcesContent":["<template>\n <RecaptchaModal\n id-modal=\"report-abuse-modal\"\n :title-modal=\"t('Report abuse')\"\n :disable-validate=\"errorName || abuseDescriptionError\"\n :error-text=\"errorSendAbuse\"\n :success-text=\"successText\"\n @close=\"emit('close')\"\n @validate=\"reportAbuse\"\n >\n <template #form>\n <ClassicInputText\n v-if=\"!commentStore.commentUser?.name\"\n v-model:text-init=\"name\"\n v-model:error-variable=\"errorName\"\n input-id=\"comment-user-name\"\n focus\n :label=\"t('Let\\'s get acquainted :')\"\n :max-length=\"Constants.MAX_COMMENT_NAME\"\n :placeholder=\"t('Your name')\"\n autocomplete-type=\"name\"\n />\n <ClassicInputText\n v-model:text-init=\"abuseDescription\"\n v-model:error-variable=\"abuseDescriptionError\"\n :is-textarea=\"true\"\n input-id=\"abuse-description\"\n :label=\"t('Describe the reason for the report')\"\n :max-length=\"Constants.MAX_COMMENT\"\n :focus=\"true\"\n />\n </template>\n </RecaptchaModal>\n</template>\n\n<script setup lang=\"ts\">\nimport Constants from \"../../../../../public/config\";\nimport ClassicInputText from \"../../../form/ClassicInputText.vue\";\nimport RecaptchaModal from \"./RecaptchaModal.vue\";\nimport { Ref, ref } from \"vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport classicApi from \"../../../../api/classicApi\";\nimport {\n CommentAbuseInfo,\n CommentPodcast,\n} from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n comment: { default: undefined, type: Object as () => CommentPodcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"update:comment\"]);\n\n//Data \nconst errorName = ref(false);\nconst name: Ref<string | undefined> = ref(undefined);\nconst abuseDescription: Ref<string | undefined> = ref(undefined);\nconst abuseDescriptionError = ref(true);\nconst errorSendAbuse: Ref<string | undefined> = ref(undefined);\nconst successText: Ref<string | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\n\n//Methods\nasync function reportAbuse(): Promise<void> {\n if (!commentStore.commentUser?.name) {\n commentStore.setCommentUser(name.value ?? \"\");\n }\n try {\n const abuseObject = {\n commentId: props.comment?.commentId,\n description: abuseDescription.value,\n uuid: commentStore.commentUser?.uuid,\n };\n const commentAbuseInfo = await classicApi.postData<CommentAbuseInfo>({\n api: 2,\n path: \"abuse/\",\n dataToSend: abuseObject,\n });\n emit(\"update:comment\", {\n ...props.comment,\n ...{ abuse: commentAbuseInfo.abuseCount },\n });\n successText.value = t(\"Thank you for reporting abuse\");\n } catch {\n errorSendAbuse.value = t(\n \"Error occurs while post your comment...\",\n );\n }\n}\n</script>\n","<template>\n <RecaptchaModal\n id-modal=\"report-abuse-modal\"\n :title-modal=\"t('Report abuse')\"\n :disable-validate=\"errorName || abuseDescriptionError\"\n :error-text=\"errorSendAbuse\"\n :success-text=\"successText\"\n @close=\"emit('close')\"\n @validate=\"reportAbuse\"\n >\n <template #form>\n <ClassicInputText\n v-if=\"!commentStore.commentUser?.name\"\n v-model:text-init=\"name\"\n v-model:error-variable=\"errorName\"\n input-id=\"comment-user-name\"\n focus\n :label=\"t('Let\\'s get acquainted :')\"\n :max-length=\"Constants.MAX_COMMENT_NAME\"\n :placeholder=\"t('Your name')\"\n autocomplete-type=\"name\"\n />\n <ClassicInputText\n v-model:text-init=\"abuseDescription\"\n v-model:error-variable=\"abuseDescriptionError\"\n :is-textarea=\"true\"\n input-id=\"abuse-description\"\n :label=\"t('Describe the reason for the report')\"\n :max-length=\"Constants.MAX_COMMENT\"\n :focus=\"true\"\n />\n </template>\n </RecaptchaModal>\n</template>\n\n<script setup lang=\"ts\">\nimport Constants from \"../../../../../public/config\";\nimport ClassicInputText from \"../../../form/ClassicInputText.vue\";\nimport RecaptchaModal from \"./RecaptchaModal.vue\";\nimport { Ref, ref } from \"vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport classicApi from \"../../../../api/classicApi\";\nimport {\n CommentAbuseInfo,\n CommentPodcast,\n} from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n comment: { default: undefined, type: Object as () => CommentPodcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"update:comment\"]);\n\n//Data \nconst errorName = ref(false);\nconst name: Ref<string | undefined> = ref(undefined);\nconst abuseDescription: Ref<string | undefined> = ref(undefined);\nconst abuseDescriptionError = ref(true);\nconst errorSendAbuse: Ref<string | undefined> = ref(undefined);\nconst successText: Ref<string | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\n\n//Methods\nasync function reportAbuse(): Promise<void> {\n if (!commentStore.commentUser?.name) {\n commentStore.setCommentUser(name.value ?? \"\");\n }\n try {\n const abuseObject = {\n commentId: props.comment?.commentId,\n description: abuseDescription.value,\n uuid: commentStore.commentUser?.uuid,\n };\n const commentAbuseInfo = await classicApi.postData<CommentAbuseInfo>({\n api: 2,\n path: \"abuse/\",\n dataToSend: abuseObject,\n });\n emit(\"update:comment\", {\n ...props.comment,\n ...{ abuse: commentAbuseInfo.abuseCount },\n });\n successText.value = t(\"Thank you for reporting abuse\");\n } catch {\n errorSendAbuse.value = t(\n \"Error occurs while post your comment...\",\n );\n }\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAkDA,MAAM,QAAQ;EAKd,MAAM,OAAO;EAGb,MAAM,YAAY,IAAI,KAAK;EAC3B,MAAM,OAAgC,IAAI,KAAA,CAAS;EACnD,MAAM,mBAA4C,IAAI,KAAA,CAAS;EAC/D,MAAM,wBAAwB,IAAI,IAAI;EACtC,MAAM,iBAA0C,IAAI,KAAA,CAAS;EAC7D,MAAM,cAAuC,IAAI,KAAA,CAAS;EAI1D,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,eAAe,gBAAgB;EAGrC,eAAe,cAA6B;GAC1C,IAAI,CAAC,aAAa,aAAa,MAC7B,aAAa,eAAe,KAAK,SAAS,EAAE;GAE9C,IAAI;IACF,MAAM,cAAc;KAClB,WAAW,MAAM,SAAS;KAC1B,aAAa,iBAAiB;KAC9B,MAAM,aAAa,aAAa;IAClC;IACA,MAAM,mBAAmB,MAAM,mBAAW,SAA2B;KACnE,KAAK;KACL,MAAM;KACN,YAAY;IACd,CAAC;IACD,KAAK,kBAAkB;KACrB,GAAG,MAAM;KACJ,OAAO,iBAAiB;IAC/B,CAAC;IACD,YAAY,QAAQ,EAAE,+BAA+B;GACvD,QAAQ;IACN,eAAe,QAAQ,EACrB,yCACF;GACF;EACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBC/FE,YA+BiB,OAAA,mBAAA;EA9Bf,YAAS;EACR,eAAa,OAAA,EAAC,cAAA;EACd,oBAAkB,OAAA,aAAa,OAAA;EAC/B,cAAY,OAAA;EACZ,gBAAc,OAAA;EACd,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,KAAI,OAAA;EACX,YAAU,OAAA;;EAEA,MAAI,cAWX,CAAA,CATO,OAAA,aAAa,aAAa,QAAA,UAAA,GADnC,YAUE,OAAA,qBAAA;;GARQ,aAAW,OAAA;8DAAA,OAAA,OAAI;GACf,kBAAgB,OAAA;mEAAA,OAAA,YAAS;GACjC,YAAS;GACT,OAAA;GACC,OAAO,OAAA,EAAC,wBAAA;GACR,cAAY,OAAA,UAAU;GACtB,aAAa,OAAA,EAAC,WAAA;GACf,qBAAkB;;;;;;;0CAEpB,YAQE,OAAA,qBAAA;GAPQ,aAAW,OAAA;8DAAA,OAAA,mBAAgB;GAC3B,kBAAgB,OAAA;mEAAA,OAAA,wBAAqB;GAC5C,eAAa;GACd,YAAS;GACR,OAAO,OAAA,EAAC,oCAAA;GACR,cAAY,OAAA,UAAU;GACtB,OAAO"}
@@ -1,9 +1,9 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { t as classicApi_default } from "./classicApi-CkDHWZG1.mjs";
3
- import { t as useCommentStore } from "./CommentStore-Dv7j94Uo.mjs";
2
+ import { t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
3
+ import { t as useCommentStore } from "./CommentStore-ClU882RI.mjs";
4
4
  import { t as config_default } from "./config-C73GMJpz.mjs";
5
5
  import { t as ClassicInputText_default } from "./ClassicInputText-D2wR2cwa.mjs";
6
- import { t as RecaptchaModal_default } from "./RecaptchaModal-DX9rAHUg.mjs";
6
+ import { t as RecaptchaModal_default } from "./RecaptchaModal-dfMCfebx.mjs";
7
7
  import { createBlock, createCommentVNode, createVNode, defineComponent, openBlock, ref, withCtx } from "vue";
8
8
  import { useI18n } from "vue-i18n";
9
9
  //#region src/components/display/comments/modal/ReportAbuseModal.vue?vue&type=script&setup=true&lang.ts
@@ -131,4 +131,4 @@ var ReportAbuseModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(R
131
131
  //#endregion
132
132
  export { ReportAbuseModal_default as default };
133
133
 
134
- //# sourceMappingURL=ReportAbuseModal-CYCRaFAY.mjs.map
134
+ //# sourceMappingURL=ReportAbuseModal-DZKRbYXJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportAbuseModal-DZKRbYXJ.mjs","names":[],"sources":["../src/components/display/comments/modal/ReportAbuseModal.vue","../src/components/display/comments/modal/ReportAbuseModal.vue"],"sourcesContent":["<template>\n <RecaptchaModal\n id-modal=\"report-abuse-modal\"\n :title-modal=\"t('Report abuse')\"\n :disable-validate=\"errorName || abuseDescriptionError\"\n :error-text=\"errorSendAbuse\"\n :success-text=\"successText\"\n @close=\"emit('close')\"\n @validate=\"reportAbuse\"\n >\n <template #form>\n <ClassicInputText\n v-if=\"!commentStore.commentUser?.name\"\n v-model:text-init=\"name\"\n v-model:error-variable=\"errorName\"\n input-id=\"comment-user-name\"\n focus\n :label=\"t('Let\\'s get acquainted :')\"\n :max-length=\"Constants.MAX_COMMENT_NAME\"\n :placeholder=\"t('Your name')\"\n autocomplete-type=\"name\"\n />\n <ClassicInputText\n v-model:text-init=\"abuseDescription\"\n v-model:error-variable=\"abuseDescriptionError\"\n :is-textarea=\"true\"\n input-id=\"abuse-description\"\n :label=\"t('Describe the reason for the report')\"\n :max-length=\"Constants.MAX_COMMENT\"\n :focus=\"true\"\n />\n </template>\n </RecaptchaModal>\n</template>\n\n<script setup lang=\"ts\">\nimport Constants from \"../../../../../public/config\";\nimport ClassicInputText from \"../../../form/ClassicInputText.vue\";\nimport RecaptchaModal from \"./RecaptchaModal.vue\";\nimport { Ref, ref } from \"vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport classicApi from \"../../../../api/classicApi\";\nimport {\n CommentAbuseInfo,\n CommentPodcast,\n} from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n comment: { default: undefined, type: Object as () => CommentPodcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"update:comment\"]);\n\n//Data \nconst errorName = ref(false);\nconst name: Ref<string | undefined> = ref(undefined);\nconst abuseDescription: Ref<string | undefined> = ref(undefined);\nconst abuseDescriptionError = ref(true);\nconst errorSendAbuse: Ref<string | undefined> = ref(undefined);\nconst successText: Ref<string | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\n\n//Methods\nasync function reportAbuse(): Promise<void> {\n if (!commentStore.commentUser?.name) {\n commentStore.setCommentUser(name.value ?? \"\");\n }\n try {\n const abuseObject = {\n commentId: props.comment?.commentId,\n description: abuseDescription.value,\n uuid: commentStore.commentUser?.uuid,\n };\n const commentAbuseInfo = await classicApi.postData<CommentAbuseInfo>({\n api: 2,\n path: \"abuse/\",\n dataToSend: abuseObject,\n });\n emit(\"update:comment\", {\n ...props.comment,\n ...{ abuse: commentAbuseInfo.abuseCount },\n });\n successText.value = t(\"Thank you for reporting abuse\");\n } catch {\n errorSendAbuse.value = t(\n \"Error occurs while post your comment...\",\n );\n }\n}\n</script>\n","<template>\n <RecaptchaModal\n id-modal=\"report-abuse-modal\"\n :title-modal=\"t('Report abuse')\"\n :disable-validate=\"errorName || abuseDescriptionError\"\n :error-text=\"errorSendAbuse\"\n :success-text=\"successText\"\n @close=\"emit('close')\"\n @validate=\"reportAbuse\"\n >\n <template #form>\n <ClassicInputText\n v-if=\"!commentStore.commentUser?.name\"\n v-model:text-init=\"name\"\n v-model:error-variable=\"errorName\"\n input-id=\"comment-user-name\"\n focus\n :label=\"t('Let\\'s get acquainted :')\"\n :max-length=\"Constants.MAX_COMMENT_NAME\"\n :placeholder=\"t('Your name')\"\n autocomplete-type=\"name\"\n />\n <ClassicInputText\n v-model:text-init=\"abuseDescription\"\n v-model:error-variable=\"abuseDescriptionError\"\n :is-textarea=\"true\"\n input-id=\"abuse-description\"\n :label=\"t('Describe the reason for the report')\"\n :max-length=\"Constants.MAX_COMMENT\"\n :focus=\"true\"\n />\n </template>\n </RecaptchaModal>\n</template>\n\n<script setup lang=\"ts\">\nimport Constants from \"../../../../../public/config\";\nimport ClassicInputText from \"../../../form/ClassicInputText.vue\";\nimport RecaptchaModal from \"./RecaptchaModal.vue\";\nimport { Ref, ref } from \"vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport classicApi from \"../../../../api/classicApi\";\nimport {\n CommentAbuseInfo,\n CommentPodcast,\n} from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n comment: { default: undefined, type: Object as () => CommentPodcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"update:comment\"]);\n\n//Data \nconst errorName = ref(false);\nconst name: Ref<string | undefined> = ref(undefined);\nconst abuseDescription: Ref<string | undefined> = ref(undefined);\nconst abuseDescriptionError = ref(true);\nconst errorSendAbuse: Ref<string | undefined> = ref(undefined);\nconst successText: Ref<string | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\n\n//Methods\nasync function reportAbuse(): Promise<void> {\n if (!commentStore.commentUser?.name) {\n commentStore.setCommentUser(name.value ?? \"\");\n }\n try {\n const abuseObject = {\n commentId: props.comment?.commentId,\n description: abuseDescription.value,\n uuid: commentStore.commentUser?.uuid,\n };\n const commentAbuseInfo = await classicApi.postData<CommentAbuseInfo>({\n api: 2,\n path: \"abuse/\",\n dataToSend: abuseObject,\n });\n emit(\"update:comment\", {\n ...props.comment,\n ...{ abuse: commentAbuseInfo.abuseCount },\n });\n successText.value = t(\"Thank you for reporting abuse\");\n } catch {\n errorSendAbuse.value = t(\n \"Error occurs while post your comment...\",\n );\n }\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAkDA,MAAM,QAAQ;EAKd,MAAM,OAAO;EAGb,MAAM,YAAY,IAAI,KAAK;EAC3B,MAAM,OAAgC,IAAI,KAAA,CAAS;EACnD,MAAM,mBAA4C,IAAI,KAAA,CAAS;EAC/D,MAAM,wBAAwB,IAAI,IAAI;EACtC,MAAM,iBAA0C,IAAI,KAAA,CAAS;EAC7D,MAAM,cAAuC,IAAI,KAAA,CAAS;EAI1D,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,eAAe,gBAAgB;EAGrC,eAAe,cAA6B;GAC1C,IAAI,CAAC,aAAa,aAAa,MAC7B,aAAa,eAAe,KAAK,SAAS,EAAE;GAE9C,IAAI;IACF,MAAM,cAAc;KAClB,WAAW,MAAM,SAAS;KAC1B,aAAa,iBAAiB;KAC9B,MAAM,aAAa,aAAa;IAClC;IACA,MAAM,mBAAmB,MAAM,mBAAW,SAA2B;KACnE,KAAK;KACL,MAAM;KACN,YAAY;IACd,CAAC;IACD,KAAK,kBAAkB;KACrB,GAAG,MAAM;KACJ,OAAO,iBAAiB;IAC/B,CAAC;IACD,YAAY,QAAQ,EAAE,+BAA+B;GACvD,QAAQ;IACN,eAAe,QAAQ,EACrB,yCACF;GACF;EACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBC/FE,YA+BiB,OAAA,mBAAA;EA9Bf,YAAS;EACR,eAAa,OAAA,EAAC,cAAA;EACd,oBAAkB,OAAA,aAAa,OAAA;EAC/B,cAAY,OAAA;EACZ,gBAAc,OAAA;EACd,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,KAAI,OAAA;EACX,YAAU,OAAA;;EAEA,MAAI,cAWX,CAAA,CATO,OAAA,aAAa,aAAa,QAAA,UAAA,GADnC,YAUE,OAAA,qBAAA;;GARQ,aAAW,OAAA;8DAAA,OAAA,OAAI;GACf,kBAAgB,OAAA;mEAAA,OAAA,YAAS;GACjC,YAAS;GACT,OAAA;GACC,OAAO,OAAA,EAAC,wBAAA;GACR,cAAY,OAAA,UAAU;GACtB,aAAa,OAAA,EAAC,WAAA;GACf,qBAAkB;;;;;;;0CAEpB,YAQE,OAAA,qBAAA;GAPQ,aAAW,OAAA;8DAAA,OAAA,mBAAgB;GAC3B,kBAAgB,OAAA;mEAAA,OAAA,wBAAqB;GAC5C,eAAa;GACd,YAAS;GACR,OAAO,OAAA,EAAC,oCAAA;GACR,cAAY,OAAA,UAAU;GACtB,OAAO"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsIndicator-BgW0q3af.mjs","names":[],"sources":["../src/components/display/RightsIndicator.vue","../src/components/display/RightsIndicator.vue"],"sourcesContent":["<template>\n <div\n v-if=\"displayIndicator\"\n :class=\"{ inline: inline }\"\n title=\"\"\n >\n <RightsWrapper\n v-if=\"!text\"\n v-slot=\"{ id }\"\n v-bind=\"props\"\n >\n <Icon\n :id=\"id\"\n class=\"rights-indicator-icon\"\n :class=\"{ invisible: hasAccess }\"\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n :size=\"inline ? 20 : 24\"\n />\n </RightsWrapper>\n <div aria-live=\"polite\" aria-atomic=\"true\">\n <ClassicAlert\n v-if=\"text && !hasAccess\"\n type=\"info\"\n >\n <template #icon>\n <Icon\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n />\n </template>\n {{ message }}\n </ClassicAlert>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicAlert from '../misc/ClassicAlert.vue';\nimport Icons from '@/components/icons'; \nimport RightsWrapper from './RightsWrapper.vue'; \nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\n\nconst Icon = Icons.RightsIndicator;\n\ntype PropsBase = RightsProps & {\n /** Display reason as text instead of only tooltip */\n text?: boolean;\n /** Use inline instead of block */\n inline?: boolean;\n}\n\nconst props = defineProps<PropsBase>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n</script>\n\n<style scoped lang=\"scss\">\ndiv.inline {\n display: inline;\n // Properly align text with it\n vertical-align: top;\n}\n\n.inline div {\n display: inline;\n}\n\n.inline .rights-indicator-icon {\n display: inline-flex;\n // Propertly align content\n position: relative;\n bottom: -4px;\n // Ensure it doesn't take place in the text\n height: 1px;\n}\n\n.inline .invisible {\n display: none;\n}\n\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n :class=\"{ inline: inline }\"\n title=\"\"\n >\n <RightsWrapper\n v-if=\"!text\"\n v-slot=\"{ id }\"\n v-bind=\"props\"\n >\n <Icon\n :id=\"id\"\n class=\"rights-indicator-icon\"\n :class=\"{ invisible: hasAccess }\"\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n :size=\"inline ? 20 : 24\"\n />\n </RightsWrapper>\n <div aria-live=\"polite\" aria-atomic=\"true\">\n <ClassicAlert\n v-if=\"text && !hasAccess\"\n type=\"info\"\n >\n <template #icon>\n <Icon\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n />\n </template>\n {{ message }}\n </ClassicAlert>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicAlert from '../misc/ClassicAlert.vue';\nimport Icons from '@/components/icons'; \nimport RightsWrapper from './RightsWrapper.vue'; \nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\n\nconst Icon = Icons.RightsIndicator;\n\ntype PropsBase = RightsProps & {\n /** Display reason as text instead of only tooltip */\n text?: boolean;\n /** Use inline instead of block */\n inline?: boolean;\n}\n\nconst props = defineProps<PropsBase>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n</script>\n\n<style scoped lang=\"scss\">\ndiv.inline {\n display: inline;\n // Properly align text with it\n vertical-align: top;\n}\n\n.inline div {\n display: inline;\n}\n\n.inline .rights-indicator-icon {\n display: inline-flex;\n // Propertly align content\n position: relative;\n bottom: -4px;\n // Ensure it doesn't take place in the text\n height: 1px;\n}\n\n.inline .invisible {\n display: none;\n}\n\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CA,MAAM,OAAO,cAAM;EASnB,MAAM,QAAQ;EAEd,MAAM,EAAE,kBAAkB,WAAW,YAAY,mBAAmB,KAAK;;;;;;;;;;;;;;;;;;;;;CClC5D,aAAU;CAAS,eAAY;;;QAlB9B,OAAA,oBAAA,UAAA,GADV,mBAiCM,OAAA;;EA/BD,OAAK,eAAA,EAAA,QAAY,OAAA,OAAM,CAAA;EACxB,OAAM;MAGK,OAAA,QAAA,UAAA,GADX,YAagB,OAAA,kBAAA,eAAA,WAAA,EAAA,KAAA,EAAA,GAVJ,OAAA,KAAK,CAAA,GAAA;oBASX,EAVQ,SAAE,CAGZ,YAOE,OAAA,SAAA;GANO;GACL,OAAK,eAAA,CAAC,yBAAuB,EAAA,WACR,OAAA,UAAS,CAAA,CAAA;GAC9B,eAAY;GACZ,cAAW;GACV,MAAM,OAAA,SAAM,KAAA;;;;;;;6CAGrB,mBAaM,OAbN,YAaM,CAXQ,OAAA,QAAI,CAAK,OAAA,aAAA,UAAA,GADnB,YAWe,OAAA,iBAAA;;EATX,MAAK;;EAEM,MAAI,cAIT,CAHF,YAGE,OAAA,SAAA;GAFE,eAAY;GACZ,cAAW;;yBAGnB,CAAA,gBADW,MACX,gBAAG,OAAA,OAAO,GAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsIndicator-BtzqiPWc.mjs","names":[],"sources":["../src/components/display/RightsIndicator.vue","../src/components/display/RightsIndicator.vue"],"sourcesContent":["<template>\n <div\n v-if=\"displayIndicator\"\n :class=\"{ inline: inline }\"\n title=\"\"\n >\n <RightsWrapper\n v-if=\"!text\"\n v-slot=\"{ id }\"\n v-bind=\"props\"\n >\n <Icon\n :id=\"id\"\n class=\"rights-indicator-icon\"\n :class=\"{ invisible: hasAccess }\"\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n :size=\"inline ? 20 : 24\"\n />\n </RightsWrapper>\n <div aria-live=\"polite\" aria-atomic=\"true\">\n <ClassicAlert\n v-if=\"text && !hasAccess\"\n type=\"info\"\n >\n <template #icon>\n <Icon\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n />\n </template>\n {{ message }}\n </ClassicAlert>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicAlert from '../misc/ClassicAlert.vue';\nimport Icons from '@/components/icons'; \nimport RightsWrapper from './RightsWrapper.vue'; \nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\n\nconst Icon = Icons.RightsIndicator;\n\ntype PropsBase = RightsProps & {\n /** Display reason as text instead of only tooltip */\n text?: boolean;\n /** Use inline instead of block */\n inline?: boolean;\n}\n\nconst props = defineProps<PropsBase>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n</script>\n\n<style scoped lang=\"scss\">\ndiv.inline {\n display: inline;\n // Properly align text with it\n vertical-align: top;\n}\n\n.inline div {\n display: inline;\n}\n\n.inline .rights-indicator-icon {\n display: inline-flex;\n // Propertly align content\n position: relative;\n bottom: -4px;\n // Ensure it doesn't take place in the text\n height: 1px;\n}\n\n.inline .invisible {\n display: none;\n}\n\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n :class=\"{ inline: inline }\"\n title=\"\"\n >\n <RightsWrapper\n v-if=\"!text\"\n v-slot=\"{ id }\"\n v-bind=\"props\"\n >\n <Icon\n :id=\"id\"\n class=\"rights-indicator-icon\"\n :class=\"{ invisible: hasAccess }\"\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n :size=\"inline ? 20 : 24\"\n />\n </RightsWrapper>\n <div aria-live=\"polite\" aria-atomic=\"true\">\n <ClassicAlert\n v-if=\"text && !hasAccess\"\n type=\"info\"\n >\n <template #icon>\n <Icon\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n />\n </template>\n {{ message }}\n </ClassicAlert>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicAlert from '../misc/ClassicAlert.vue';\nimport Icons from '@/components/icons'; \nimport RightsWrapper from './RightsWrapper.vue'; \nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\n\nconst Icon = Icons.RightsIndicator;\n\ntype PropsBase = RightsProps & {\n /** Display reason as text instead of only tooltip */\n text?: boolean;\n /** Use inline instead of block */\n inline?: boolean;\n}\n\nconst props = defineProps<PropsBase>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n</script>\n\n<style scoped lang=\"scss\">\ndiv.inline {\n display: inline;\n // Properly align text with it\n vertical-align: top;\n}\n\n.inline div {\n display: inline;\n}\n\n.inline .rights-indicator-icon {\n display: inline-flex;\n // Propertly align content\n position: relative;\n bottom: -4px;\n // Ensure it doesn't take place in the text\n height: 1px;\n}\n\n.inline .invisible {\n display: none;\n}\n\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CA,MAAM,OAAO,cAAM;EASnB,MAAM,QAAQ;EAEd,MAAM,EAAE,kBAAkB,WAAW,YAAY,mBAAmB,KAAK;;;;;;;;;;;;;;;;;;;;;CClC5D,aAAU;CAAS,eAAY;;;QAlB9B,OAAA,oBAAA,UAAA,GADV,mBAiCM,OAAA;;EA/BD,OAAK,eAAA,EAAA,QAAY,OAAA,OAAM,CAAA;EACxB,OAAM;MAGK,OAAA,QAAA,UAAA,GADX,YAagB,OAAA,kBAAA,eAAA,WAAA,EAAA,KAAA,EAAA,GAVJ,OAAA,KAAK,CAAA,GAAA;oBASX,EAVQ,SAAE,CAGZ,YAOE,OAAA,SAAA;GANO;GACL,OAAK,eAAA,CAAC,yBAAuB,EAAA,WACR,OAAA,UAAS,CAAA,CAAA;GAC9B,eAAY;GACZ,cAAW;GACV,MAAM,OAAA,SAAM,KAAA;;;;;;;6CAGrB,mBAaM,OAbN,YAaM,CAXQ,OAAA,QAAI,CAAK,OAAA,aAAA,UAAA,GADnB,YAWe,OAAA,iBAAA;;EATX,MAAK;;EAEM,MAAI,cAIT,CAHF,YAGE,OAAA,SAAA;GAFE,eAAY;GACZ,cAAW;;yBAGnB,CAAA,gBADW,MACX,gBAAG,OAAA,OAAO,GAAA,CAAA,CAAA,CAAA"}
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
2
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
3
3
  import { t as icons_default } from "./icons-1GR2yFzw.mjs";
4
4
  import { t as ClassicAlert_default } from "./ClassicAlert-DUQplMvs.mjs";
5
- import { r as useRightsIndicator, t as RightsWrapper_default } from "./RightsWrapper-Cs6prZ3E.mjs";
5
+ import { r as useRightsIndicator, t as RightsWrapper_default } from "./RightsWrapper-HasUbnny.mjs";
6
6
  import { createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeProps, openBlock, toDisplayString, withCtx } from "vue";
7
7
  //#region src/components/display/RightsIndicator.vue?vue&type=script&setup=true&lang.ts
8
8
  var RightsIndicator_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
@@ -121,4 +121,4 @@ var RightsIndicator_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Ri
121
121
  //#endregion
122
122
  export { RightsIndicator_exports as n, RightsIndicator_default as t };
123
123
 
124
- //# sourceMappingURL=RightsIndicator-qIU4_wiF.mjs.map
124
+ //# sourceMappingURL=RightsIndicator-D5I3DOfO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsIndicator-D5I3DOfO.mjs","names":[],"sources":["../src/components/display/RightsIndicator.vue","../src/components/display/RightsIndicator.vue"],"sourcesContent":["<template>\n <div\n v-if=\"displayIndicator\"\n :class=\"{ inline: inline }\"\n title=\"\"\n >\n <RightsWrapper\n v-if=\"!text\"\n v-slot=\"{ id }\"\n v-bind=\"props\"\n >\n <Icon\n :id=\"id\"\n class=\"rights-indicator-icon\"\n :class=\"{ invisible: hasAccess }\"\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n :size=\"inline ? 20 : 24\"\n />\n </RightsWrapper>\n <div aria-live=\"polite\" aria-atomic=\"true\">\n <ClassicAlert\n v-if=\"text && !hasAccess\"\n type=\"info\"\n >\n <template #icon>\n <Icon\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n />\n </template>\n {{ message }}\n </ClassicAlert>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicAlert from '../misc/ClassicAlert.vue';\nimport Icons from '@/components/icons'; \nimport RightsWrapper from './RightsWrapper.vue'; \nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\n\nconst Icon = Icons.RightsIndicator;\n\ntype PropsBase = RightsProps & {\n /** Display reason as text instead of only tooltip */\n text?: boolean;\n /** Use inline instead of block */\n inline?: boolean;\n}\n\nconst props = defineProps<PropsBase>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n</script>\n\n<style scoped lang=\"scss\">\ndiv.inline {\n display: inline;\n // Properly align text with it\n vertical-align: top;\n}\n\n.inline div {\n display: inline;\n}\n\n.inline .rights-indicator-icon {\n display: inline-flex;\n // Propertly align content\n position: relative;\n bottom: -4px;\n // Ensure it doesn't take place in the text\n height: 1px;\n}\n\n.inline .invisible {\n display: none;\n}\n\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n :class=\"{ inline: inline }\"\n title=\"\"\n >\n <RightsWrapper\n v-if=\"!text\"\n v-slot=\"{ id }\"\n v-bind=\"props\"\n >\n <Icon\n :id=\"id\"\n class=\"rights-indicator-icon\"\n :class=\"{ invisible: hasAccess }\"\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n :size=\"inline ? 20 : 24\"\n />\n </RightsWrapper>\n <div aria-live=\"polite\" aria-atomic=\"true\">\n <ClassicAlert\n v-if=\"text && !hasAccess\"\n type=\"info\"\n >\n <template #icon>\n <Icon\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n />\n </template>\n {{ message }}\n </ClassicAlert>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicAlert from '../misc/ClassicAlert.vue';\nimport Icons from '@/components/icons'; \nimport RightsWrapper from './RightsWrapper.vue'; \nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\n\nconst Icon = Icons.RightsIndicator;\n\ntype PropsBase = RightsProps & {\n /** Display reason as text instead of only tooltip */\n text?: boolean;\n /** Use inline instead of block */\n inline?: boolean;\n}\n\nconst props = defineProps<PropsBase>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n</script>\n\n<style scoped lang=\"scss\">\ndiv.inline {\n display: inline;\n // Properly align text with it\n vertical-align: top;\n}\n\n.inline div {\n display: inline;\n}\n\n.inline .rights-indicator-icon {\n display: inline-flex;\n // Propertly align content\n position: relative;\n bottom: -4px;\n // Ensure it doesn't take place in the text\n height: 1px;\n}\n\n.inline .invisible {\n display: none;\n}\n\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CA,MAAM,OAAO,cAAM;EASnB,MAAM,QAAQ;EAEd,MAAM,EAAE,kBAAkB,WAAW,YAAY,mBAAmB,KAAK;;;;;;;;;;;;;;;;;;;;;CClC5D,aAAU;CAAS,eAAY;;;QAlB9B,OAAA,oBAAA,UAAA,GADV,mBAiCM,OAAA;;EA/BD,OAAK,eAAA,EAAA,QAAY,OAAA,OAAM,CAAA;EACxB,OAAM;MAGK,OAAA,QAAA,UAAA,GADX,YAagB,OAAA,kBAAA,eAAA,WAAA,EAAA,KAAA,EAAA,GAVJ,OAAA,KAAK,CAAA,GAAA;oBASX,EAVQ,SAAE,CAGZ,YAOE,OAAA,SAAA;GANO;GACL,OAAK,eAAA,CAAC,yBAAuB,EAAA,WACR,OAAA,UAAS,CAAA,CAAA;GAC9B,eAAY;GACZ,cAAW;GACV,MAAM,OAAA,SAAM,KAAA;;;;;;;6CAGrB,mBAaM,OAbN,YAaM,CAXQ,OAAA,QAAI,CAAK,OAAA,aAAA,UAAA,GADnB,YAWe,OAAA,iBAAA;;EATX,MAAK;;EAEM,MAAI,cAIT,CAHF,YAGE,OAAA,SAAA;GAFE,eAAY;GACZ,cAAW;;yBAGnB,CAAA,gBADW,MACX,gBAAG,OAAA,OAAO,GAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsIndicator-NOZ05rEh.mjs","names":[],"sources":["../src/components/display/RightsIndicator.vue","../src/components/display/RightsIndicator.vue"],"sourcesContent":["<template>\n <div\n v-if=\"displayIndicator\"\n :class=\"{ inline: inline }\"\n title=\"\"\n >\n <RightsWrapper\n v-if=\"!text\"\n v-slot=\"{ id }\"\n v-bind=\"props\"\n >\n <Icon\n :id=\"id\"\n class=\"rights-indicator-icon\"\n :class=\"{ invisible: hasAccess }\"\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n :size=\"inline ? 20 : 24\"\n />\n </RightsWrapper>\n <div aria-live=\"polite\" aria-atomic=\"true\">\n <ClassicAlert\n v-if=\"text && !hasAccess\"\n type=\"info\"\n >\n <template #icon>\n <Icon\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n />\n </template>\n {{ message }}\n </ClassicAlert>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicAlert from '../misc/ClassicAlert.vue';\nimport Icons from '@/components/icons'; \nimport RightsWrapper from './RightsWrapper.vue'; \nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\n\nconst Icon = Icons.RightsIndicator;\n\ntype PropsBase = RightsProps & {\n /** Display reason as text instead of only tooltip */\n text?: boolean;\n /** Use inline instead of block */\n inline?: boolean;\n}\n\nconst props = defineProps<PropsBase>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n</script>\n\n<style scoped lang=\"scss\">\ndiv.inline {\n display: inline;\n // Properly align text with it\n vertical-align: top;\n}\n\n.inline div {\n display: inline;\n}\n\n.inline .rights-indicator-icon {\n display: inline-flex;\n // Propertly align content\n position: relative;\n bottom: -4px;\n // Ensure it doesn't take place in the text\n height: 1px;\n}\n\n.inline .invisible {\n display: none;\n}\n\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n :class=\"{ inline: inline }\"\n title=\"\"\n >\n <RightsWrapper\n v-if=\"!text\"\n v-slot=\"{ id }\"\n v-bind=\"props\"\n >\n <Icon\n :id=\"id\"\n class=\"rights-indicator-icon\"\n :class=\"{ invisible: hasAccess }\"\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n :size=\"inline ? 20 : 24\"\n />\n </RightsWrapper>\n <div aria-live=\"polite\" aria-atomic=\"true\">\n <ClassicAlert\n v-if=\"text && !hasAccess\"\n type=\"info\"\n >\n <template #icon>\n <Icon\n aria-hidden=\"true\"\n fill-color=\"var(--octopus-primary)\"\n />\n </template>\n {{ message }}\n </ClassicAlert>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicAlert from '../misc/ClassicAlert.vue';\nimport Icons from '@/components/icons'; \nimport RightsWrapper from './RightsWrapper.vue'; \nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\n\nconst Icon = Icons.RightsIndicator;\n\ntype PropsBase = RightsProps & {\n /** Display reason as text instead of only tooltip */\n text?: boolean;\n /** Use inline instead of block */\n inline?: boolean;\n}\n\nconst props = defineProps<PropsBase>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n</script>\n\n<style scoped lang=\"scss\">\ndiv.inline {\n display: inline;\n // Properly align text with it\n vertical-align: top;\n}\n\n.inline div {\n display: inline;\n}\n\n.inline .rights-indicator-icon {\n display: inline-flex;\n // Propertly align content\n position: relative;\n bottom: -4px;\n // Ensure it doesn't take place in the text\n height: 1px;\n}\n\n.inline .invisible {\n display: none;\n}\n\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CA,MAAM,OAAO,cAAM;EASnB,MAAM,QAAQ;EAEd,MAAM,EAAE,kBAAkB,WAAW,YAAY,mBAAmB,KAAK;;;;;;;;;;;;;;;;;;;;;CClC5D,aAAU;CAAS,eAAY;;;QAlB9B,OAAA,oBAAA,UAAA,GADV,mBAiCM,OAAA;;EA/BD,OAAK,eAAA,EAAA,QAAY,OAAA,OAAM,CAAA;EACxB,OAAM;MAGK,OAAA,QAAA,UAAA,GADX,YAagB,OAAA,kBAAA,eAAA,WAAA,EAAA,KAAA,EAAA,GAVJ,OAAA,KAAK,CAAA,GAAA;oBASX,EAVQ,SAAE,CAGZ,YAOE,OAAA,SAAA;GANO;GACL,OAAK,eAAA,CAAC,yBAAuB,EAAA,WACR,OAAA,UAAS,CAAA,CAAA;GAC9B,eAAY;GACZ,cAAW;GACV,MAAM,OAAA,SAAM,KAAA;;;;;;;6CAGrB,mBAaM,OAbN,YAaM,CAXQ,OAAA,QAAI,CAAK,OAAA,aAAA,UAAA,GADnB,YAWe,OAAA,iBAAA;;EATX,MAAK;;EAEM,MAAI,cAIT,CAHF,YAGE,OAAA,SAAA;GAFE,eAAY;GACZ,cAAW;;yBAGnB,CAAA,gBADW,MACX,gBAAG,OAAA,OAAO,GAAA,CAAA,CAAA,CAAA"}