@saooti/octopus-sdk 42.0.4 → 42.0.5

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 (1062) hide show
  1. package/dist/AccessibilityModal-Bk-lyxlI.mjs +119 -0
  2. package/dist/AccessibilityModal-Bk-lyxlI.mjs.map +1 -0
  3. package/dist/AccessibilityModal-DqRtmHwG.mjs.map +1 -0
  4. package/dist/AdsProgressBar-B6Mi09W8.mjs +28 -0
  5. package/dist/AdsProgressBar-B6Mi09W8.mjs.map +1 -0
  6. package/dist/AdsProgressBar-CAP7Zj--.mjs.map +1 -0
  7. package/dist/AdvancedSearch-CVglkFkt.mjs.map +1 -0
  8. package/dist/AdvancedSearch-D6vwfxo5.mjs +317 -0
  9. package/dist/AdvancedSearch-D6vwfxo5.mjs.map +1 -0
  10. package/dist/AdvancedSearch-DINUCkA8.mjs.map +1 -0
  11. package/dist/AdvancedSearch-XvvmHfah.mjs.map +1 -0
  12. package/dist/AmazonMusicIcon-BbyyRbP4.mjs +49 -0
  13. package/dist/AmazonMusicIcon-BbyyRbP4.mjs.map +1 -0
  14. package/dist/AmazonMusicIcon-D5vNh4HG.mjs.map +1 -0
  15. package/dist/ApplePodcastIcon-Cq5SSyRm.mjs +51 -0
  16. package/dist/ApplePodcastIcon-Cq5SSyRm.mjs.map +1 -0
  17. package/dist/ApplePodcastIcon-DtC4TS8H.mjs.map +1 -0
  18. package/dist/CategoryChooser-DWEL9V5p.mjs.map +1 -0
  19. package/dist/CategoryChooser-DklLXzrz.mjs +216 -0
  20. package/dist/CategoryChooser-DklLXzrz.mjs.map +1 -0
  21. package/dist/CategoryFilter-BYG8Fnzn.mjs.map +1 -0
  22. package/dist/CategoryFilter-Bg279Zhp.mjs.map +1 -0
  23. package/dist/CategoryFilter-CmS3Ny_9.mjs +205 -0
  24. package/dist/CategoryFilter-CmS3Ny_9.mjs.map +1 -0
  25. package/dist/CategoryList-CfMKagU8.mjs +153 -0
  26. package/dist/CategoryList-CfMKagU8.mjs.map +1 -0
  27. package/dist/CategoryList-CtYJ1Otd.mjs.map +1 -0
  28. package/dist/CategoryList-fb__vBIZ.mjs.map +1 -0
  29. package/dist/CategoryPage-BXpFZSoD.mjs.map +1 -0
  30. package/dist/CategoryPage-CjFCzM5T.mjs.map +1 -0
  31. package/dist/CategoryPage-D8ZeqW_O.mjs +41 -0
  32. package/dist/CategoryPage-D8ZeqW_O.mjs.map +1 -0
  33. package/dist/CategoryPage-DOpUFF1y.mjs.map +1 -0
  34. package/dist/CategorySearchFilter-1oMd2Mm5.mjs +54 -0
  35. package/dist/CategorySearchFilter-1oMd2Mm5.mjs.map +1 -0
  36. package/dist/CategorySearchFilter-CEGWqMSt.mjs.map +1 -0
  37. package/dist/ChapteringModal-Bj_VrtB1.mjs.map +1 -0
  38. package/dist/ChapteringModal-C35ILBs7.mjs +64 -0
  39. package/dist/ChapteringModal-C35ILBs7.mjs.map +1 -0
  40. package/dist/ChapteringModal-CN-qJH9j.mjs.map +1 -0
  41. package/dist/CheckIdentityModal-4XD5uK5v.mjs.map +1 -0
  42. package/dist/CheckIdentityModal-RQYssX9o.mjs.map +1 -0
  43. package/dist/CheckIdentityModal-ekQqQKIU.mjs +62 -0
  44. package/dist/CheckIdentityModal-ekQqQKIU.mjs.map +1 -0
  45. package/dist/ChooseEpisodesNumber-BbsEFK07.mjs +50 -0
  46. package/dist/ChooseEpisodesNumber-BbsEFK07.mjs.map +1 -0
  47. package/dist/ChooseEpisodesNumber-OlhXXsCa.mjs.map +1 -0
  48. package/dist/ClassicAccordion-H690GTb-.mjs +87 -0
  49. package/dist/ClassicAccordion-H690GTb-.mjs.map +1 -0
  50. package/dist/ClassicAccordion-S0e-IhFa.mjs.map +1 -0
  51. package/dist/ClassicAlert-D51F43qS.mjs +57 -0
  52. package/dist/ClassicAlert-D51F43qS.mjs.map +1 -0
  53. package/dist/ClassicAlert-DUQplMvs.mjs.map +1 -0
  54. package/dist/ClassicBigChip-BbWdjK3W.mjs.map +1 -0
  55. package/dist/ClassicBigChip-CMefjO08.mjs.map +1 -0
  56. package/dist/ClassicBigChip-CaUJ5EI5.mjs +33 -0
  57. package/dist/ClassicBigChip-CaUJ5EI5.mjs.map +1 -0
  58. package/dist/ClassicCheckbox-BHKCPtLR.mjs.map +1 -0
  59. package/dist/ClassicCheckbox-CqA5WUGc.mjs +113 -0
  60. package/dist/ClassicCheckbox-CqA5WUGc.mjs.map +1 -0
  61. package/dist/ClassicContentEditable-BSsnA6oo.mjs.map +1 -0
  62. package/dist/ClassicContentEditable-R2O8-zPZ.mjs +52 -0
  63. package/dist/ClassicContentEditable-R2O8-zPZ.mjs.map +1 -0
  64. package/dist/ClassicCopyButton-M9AP3MKD.mjs.map +1 -0
  65. package/dist/ClassicCopyButton-y5PyWjLR.mjs +69 -0
  66. package/dist/ClassicCopyButton-y5PyWjLR.mjs.map +1 -0
  67. package/dist/ClassicDatePicker-CS5ufjLj.mjs +226 -0
  68. package/dist/ClassicDatePicker-CS5ufjLj.mjs.map +1 -0
  69. package/dist/ClassicDatePicker-DWVn4oHu.mjs.map +1 -0
  70. package/dist/ClassicEmojiPicker-BJeHH_oM.mjs +74 -0
  71. package/dist/ClassicEmojiPicker-BJeHH_oM.mjs.map +1 -0
  72. package/dist/ClassicEmojiPicker-EQy5H_zL.mjs.map +1 -0
  73. package/dist/ClassicHelpButton-B6jXpEKT.mjs.map +1 -0
  74. package/dist/ClassicHelpButton-DkCQoPpA.mjs +57 -0
  75. package/dist/ClassicHelpButton-DkCQoPpA.mjs.map +1 -0
  76. package/dist/ClassicInputText-B7EAwP2N.mjs.map +1 -0
  77. package/dist/ClassicInputText-adAE0MPy.mjs +335 -0
  78. package/dist/ClassicInputText-adAE0MPy.mjs.map +1 -0
  79. package/dist/ClassicLazy-7mFHxG6O.mjs.map +1 -0
  80. package/dist/ClassicLazy-DKgiCdDI.mjs +92 -0
  81. package/dist/ClassicLazy-DKgiCdDI.mjs.map +1 -0
  82. package/dist/ClassicLoading-Crlw7cAx.mjs.map +1 -0
  83. package/dist/ClassicLoading-DZLIyuUd.mjs +52 -0
  84. package/dist/ClassicLoading-DZLIyuUd.mjs.map +1 -0
  85. package/dist/ClassicModal-CilwHp9p.mjs.map +1 -0
  86. package/dist/ClassicModal-DbRPVcJr.mjs +87 -0
  87. package/dist/ClassicModal-DbRPVcJr.mjs.map +1 -0
  88. package/dist/ClassicModalInBody-BkaRcZZx.mjs.map +1 -0
  89. package/dist/ClassicModalInBody-Dq9PBoaB.mjs +77 -0
  90. package/dist/ClassicModalInBody-Dq9PBoaB.mjs.map +1 -0
  91. package/dist/ClassicMultiselect-BEY-HpGk.mjs.map +1 -0
  92. package/dist/ClassicMultiselect-wJ9U_4b2.mjs +246 -0
  93. package/dist/ClassicMultiselect-wJ9U_4b2.mjs.map +1 -0
  94. package/dist/ClassicNav-Dvm8faD9.mjs.map +1 -0
  95. package/dist/ClassicNav-P2h4OFEY.mjs +65 -0
  96. package/dist/ClassicNav-P2h4OFEY.mjs.map +1 -0
  97. package/dist/ClassicPopover-BIyLKorz.mjs.map +1 -0
  98. package/dist/ClassicPopover-Bk5kf37e.mjs +261 -0
  99. package/dist/ClassicPopover-Bk5kf37e.mjs.map +1 -0
  100. package/dist/ClassicRadio-BwylgGYF.mjs.map +1 -0
  101. package/dist/ClassicRadio-Dr6od5uM.mjs +78 -0
  102. package/dist/ClassicRadio-Dr6od5uM.mjs.map +1 -0
  103. package/dist/ClassicRadioLabel-DIij8S-y.mjs +86 -0
  104. package/dist/ClassicRadioLabel-DIij8S-y.mjs.map +1 -0
  105. package/dist/ClassicRadioLabel-ynBzFxC2.mjs.map +1 -0
  106. package/dist/ClassicSearch-BPWOTzhw.mjs +76 -0
  107. package/dist/ClassicSearch-BPWOTzhw.mjs.map +1 -0
  108. package/dist/ClassicSearch-D5yT0JRA.mjs.map +1 -0
  109. package/dist/ClassicSelect-BaY2yvwP.mjs.map +1 -0
  110. package/dist/ClassicSelect-BeCuKMad.mjs +138 -0
  111. package/dist/ClassicSelect-BeCuKMad.mjs.map +1 -0
  112. package/dist/ClassicSpinner-CL99QR-h.mjs +39 -0
  113. package/dist/ClassicSpinner-CL99QR-h.mjs.map +1 -0
  114. package/dist/ClassicSpinner-lNq7TnmD.mjs.map +1 -0
  115. package/dist/ClassicTabs-Bcine4_p.mjs.map +1 -0
  116. package/dist/ClassicTabs-sNP268jp.mjs +52 -0
  117. package/dist/ClassicTabs-sNP268jp.mjs.map +1 -0
  118. package/dist/ClassicTagInput-DrIZVI0X.mjs +82 -0
  119. package/dist/ClassicTagInput-DrIZVI0X.mjs.map +1 -0
  120. package/dist/ClassicTagInput-HM3VUbHp.mjs.map +1 -0
  121. package/dist/ClassicWysiwyg-BKq8ExjM.mjs.map +1 -0
  122. package/dist/ClassicWysiwyg-CRx5L0lR.mjs +200 -0
  123. package/dist/ClassicWysiwyg-CRx5L0lR.mjs.map +1 -0
  124. package/dist/ClipboardModal-DcUIqJGT.mjs +64 -0
  125. package/dist/ClipboardModal-DcUIqJGT.mjs.map +1 -0
  126. package/dist/ClipboardModal-MJw-Q5H5.mjs.map +1 -0
  127. package/dist/ClipboardModal-VRWz6S2A.mjs.map +1 -0
  128. package/dist/CommentBasicView-BIiF59xV.mjs.map +1 -0
  129. package/dist/CommentBasicView-CmDziW-M.mjs +103 -0
  130. package/dist/CommentBasicView-CmDziW-M.mjs.map +1 -0
  131. package/dist/CommentInput-BH-j4xYE.mjs.map +1 -0
  132. package/dist/CommentInput-CCpv7RF8.mjs +150 -0
  133. package/dist/CommentInput-CCpv7RF8.mjs.map +1 -0
  134. package/dist/CommentInput-DOuugk5A.mjs.map +1 -0
  135. package/dist/CommentItem-B1wXPEZZ.mjs +194 -0
  136. package/dist/CommentItem-B1wXPEZZ.mjs.map +1 -0
  137. package/dist/CommentItem-DuJsZoIk.mjs.map +1 -0
  138. package/dist/CommentItem-XLeueLaZ.mjs.map +1 -0
  139. package/dist/CommentList-ByBLWHYE.mjs.map +1 -0
  140. package/dist/CommentList-CIoNgXiD.mjs.map +1 -0
  141. package/dist/CommentList-dSoD09Di.mjs +262 -0
  142. package/dist/CommentList-dSoD09Di.mjs.map +1 -0
  143. package/dist/CommentMoreActions-CnczLaid.mjs +248 -0
  144. package/dist/CommentMoreActions-CnczLaid.mjs.map +1 -0
  145. package/dist/CommentMoreActions-CyEIOrzQ.mjs.map +1 -0
  146. package/dist/CommentMoreActions-X9tC_I0A.mjs.map +1 -0
  147. package/dist/CommentName-CkGKXK3_.mjs +73 -0
  148. package/dist/CommentName-CkGKXK3_.mjs.map +1 -0
  149. package/dist/CommentName-rapSs0fp.mjs.map +1 -0
  150. package/dist/CommentName-sabBJAA8.mjs.map +1 -0
  151. package/dist/CommentParentInfo-CQXTtdBn.mjs.map +1 -0
  152. package/dist/CommentParentInfo-D3nI0C85.mjs.map +1 -0
  153. package/dist/CommentParentInfo-J1vHOCm3.mjs +47 -0
  154. package/dist/CommentParentInfo-J1vHOCm3.mjs.map +1 -0
  155. package/dist/CommentPlayer-70dIz2Rg.mjs +67 -0
  156. package/dist/CommentPlayer-70dIz2Rg.mjs.map +1 -0
  157. package/dist/CommentPlayer-BVhVIPgD.mjs.map +1 -0
  158. package/dist/CommentPlayer-Cfa-z5qQ.mjs.map +1 -0
  159. package/dist/CommentSection-2kJz9TRg.mjs.map +1 -0
  160. package/dist/CommentSection-Bz6q4N6d.mjs +113 -0
  161. package/dist/CommentSection-Bz6q4N6d.mjs.map +1 -0
  162. package/dist/CommentSection-DRpvhHqB.mjs.map +1 -0
  163. package/dist/CommentStore-BFkEAz_S.mjs.map +1 -0
  164. package/dist/CommentStore-BjQ0AGHa.mjs +355 -0
  165. package/dist/CommentStore-BjQ0AGHa.mjs.map +1 -0
  166. package/dist/ContractPreviewModal-DhoEBsqo.mjs +75 -0
  167. package/dist/ContractPreviewModal-DhoEBsqo.mjs.map +1 -0
  168. package/dist/ContractPreviewModal-DjCwrq7e.mjs.map +1 -0
  169. package/dist/ContractPreviewModal-Dqyo5xUg.mjs.map +1 -0
  170. package/dist/CountDown-CAUtA0Vp.mjs.map +1 -0
  171. package/dist/CountDown-Ce0nxiby.mjs +28 -0
  172. package/dist/CountDown-Ce0nxiby.mjs.map +1 -0
  173. package/dist/CountdownOctopus-CR9zvBmW.mjs +34 -0
  174. package/dist/CountdownOctopus-CR9zvBmW.mjs.map +1 -0
  175. package/dist/CountdownOctopus-i6-l0aLA.mjs.map +1 -0
  176. package/dist/DateFilter-DD9cY_la.mjs.map +1 -0
  177. package/dist/DateFilter-DkU1MSa-.mjs +101 -0
  178. package/dist/DateFilter-DkU1MSa-.mjs.map +1 -0
  179. package/dist/DeezerIcon-BUdIKeqN.mjs.map +1 -0
  180. package/dist/DeezerIcon-D4cq4iPQ.mjs +49 -0
  181. package/dist/DeezerIcon-D4cq4iPQ.mjs.map +1 -0
  182. package/dist/DownloadPodcastButton-C5jl5QoM.mjs.map +1 -0
  183. package/dist/DownloadPodcastButton-Cbtq6s60.mjs.map +1 -0
  184. package/dist/DownloadPodcastButton-DLMz5Siw.mjs +39 -0
  185. package/dist/DownloadPodcastButton-DLMz5Siw.mjs.map +1 -0
  186. package/dist/EditCommentModal-3jlBtPco.mjs.map +1 -0
  187. package/dist/EditCommentModal-B5xc_AC2.mjs.map +1 -0
  188. package/dist/EditCommentModal-_iEit4p4.mjs +134 -0
  189. package/dist/EditCommentModal-_iEit4p4.mjs.map +1 -0
  190. package/dist/EditFtpIcon-D5VaHXWl.mjs.map +1 -0
  191. package/dist/EditFtpIcon-Do2G7rmM.mjs +47 -0
  192. package/dist/EditFtpIcon-Do2G7rmM.mjs.map +1 -0
  193. package/dist/EmissionGroupChooser-CQ6wTihw.mjs.map +1 -0
  194. package/dist/EmissionGroupChooser-D3xCu4tW.mjs +55 -0
  195. package/dist/EmissionGroupChooser-D3xCu4tW.mjs.map +1 -0
  196. package/dist/EmissionGroupChooser-DheKnUrA.mjs.map +1 -0
  197. package/dist/EmissionInlineList-CPgw-_jC.mjs +129 -0
  198. package/dist/EmissionInlineList-CPgw-_jC.mjs.map +1 -0
  199. package/dist/EmissionInlineList-CeCcnsfP.mjs.map +1 -0
  200. package/dist/EmissionInlineList-DD5tKHdg.mjs.map +1 -0
  201. package/dist/EmissionItem-Cl53in7H.mjs +144 -0
  202. package/dist/EmissionItem-Cl53in7H.mjs.map +1 -0
  203. package/dist/EmissionItem-DO1G4P7I.mjs.map +1 -0
  204. package/dist/EmissionItem-Dyamdgqm.mjs.map +1 -0
  205. package/dist/EmissionItem-NQh_dIN1.mjs.map +1 -0
  206. package/dist/EmissionList-CNizEXC9.mjs.map +1 -0
  207. package/dist/EmissionList-D4DFhKPt.mjs +286 -0
  208. package/dist/EmissionList-D4DFhKPt.mjs.map +1 -0
  209. package/dist/EmissionList-DfhK6dgl.mjs.map +1 -0
  210. package/dist/EmissionList-JEE2Remj.mjs.map +1 -0
  211. package/dist/EmissionPage-B1OhP9b5.mjs.map +1 -0
  212. package/dist/EmissionPage-B3fju1Sc.mjs +247 -0
  213. package/dist/EmissionPage-B3fju1Sc.mjs.map +1 -0
  214. package/dist/EmissionPage-Cizyfg77.mjs.map +1 -0
  215. package/dist/EmissionPage-Dq4ECbbk.mjs.map +1 -0
  216. package/dist/EmissionPlayerItem-BzFck8k6.mjs +148 -0
  217. package/dist/EmissionPlayerItem-BzFck8k6.mjs.map +1 -0
  218. package/dist/EmissionPlayerItem-DhOuAEBr.mjs.map +1 -0
  219. package/dist/EmissionPlayerItem-DiM1VHun.mjs.map +1 -0
  220. package/dist/EmissionPresentationItem-CEjtj9mf.mjs +54 -0
  221. package/dist/EmissionPresentationItem-CEjtj9mf.mjs.map +1 -0
  222. package/dist/EmissionPresentationItem-DSCyFHjR.mjs.map +1 -0
  223. package/dist/EmissionPresentationItem-TpmURnni.mjs.map +1 -0
  224. package/dist/EmissionPresentationList-C80QlXif.mjs.map +1 -0
  225. package/dist/EmissionPresentationList-D1UcWrLn.mjs +104 -0
  226. package/dist/EmissionPresentationList-D1UcWrLn.mjs.map +1 -0
  227. package/dist/EmissionPresentationList-uApAVXPy.mjs.map +1 -0
  228. package/dist/EmissionsPage-B-Lgftdx.mjs.map +1 -0
  229. package/dist/EmissionsPage-CQm8C671.mjs +120 -0
  230. package/dist/EmissionsPage-CQm8C671.mjs.map +1 -0
  231. package/dist/EmissionsPage-CiV3jjrr.mjs.map +1 -0
  232. package/dist/EmissionsPage-Dop7rOfp.mjs.map +1 -0
  233. package/dist/Error403Page-8Z8InpBQ.mjs.map +1 -0
  234. package/dist/Error403Page-B4wfiYPh.mjs +56 -0
  235. package/dist/Error403Page-B4wfiYPh.mjs.map +1 -0
  236. package/dist/Error403Page-Du1eHk-4.mjs.map +1 -0
  237. package/dist/ErrorMessage-D2XAzxpC.mjs.map +1 -0
  238. package/dist/ErrorMessage-DcUdnqSU.mjs +33 -0
  239. package/dist/ErrorMessage-DcUdnqSU.mjs.map +1 -0
  240. package/dist/FooterGarSection-BlQXLOSL.mjs.map +1 -0
  241. package/dist/FooterGarSection-CFtIQW51.mjs.map +1 -0
  242. package/dist/FooterGarSection-DSu-iiPb.mjs +54 -0
  243. package/dist/FooterGarSection-DSu-iiPb.mjs.map +1 -0
  244. package/dist/FooterSection-CAGk8GmW.mjs +196 -0
  245. package/dist/FooterSection-CAGk8GmW.mjs.map +1 -0
  246. package/dist/FooterSection-CYVlRfnp.mjs.map +1 -0
  247. package/dist/FooterSection-LpLoB0-0.mjs.map +1 -0
  248. package/dist/GeneralStore-CUlq_NjO.mjs +45 -0
  249. package/dist/GeneralStore-CUlq_NjO.mjs.map +1 -0
  250. package/dist/HomeDropdown-DWCPphGw.mjs.map +1 -0
  251. package/dist/HomeDropdown-Dcyt9IM6.mjs +81 -0
  252. package/dist/HomeDropdown-Dcyt9IM6.mjs.map +1 -0
  253. package/dist/HomeDropdown-j5CLhQP9.mjs.map +1 -0
  254. package/dist/HomePage-D947-CtJ.mjs.map +1 -0
  255. package/dist/HomePage-DoZG25gj.mjs +142 -0
  256. package/dist/HomePage-DoZG25gj.mjs.map +1 -0
  257. package/dist/HomePage-DvbT5DWY.mjs.map +1 -0
  258. package/dist/HomePage-o7H3mupQ.mjs.map +1 -0
  259. package/dist/IHeartIcon-70F_rHQh.mjs.map +1 -0
  260. package/dist/IHeartIcon-D9X-Udgq.mjs +53 -0
  261. package/dist/IHeartIcon-D9X-Udgq.mjs.map +1 -0
  262. package/dist/LikeButton-DFkrvbgE.mjs.map +1 -0
  263. package/dist/LikeButton-gkh5hlOU.mjs +61 -0
  264. package/dist/LikeButton-gkh5hlOU.mjs.map +1 -0
  265. package/dist/LikeSection-BLrRZGlp.mjs +137 -0
  266. package/dist/LikeSection-BLrRZGlp.mjs.map +1 -0
  267. package/dist/LikeSection-DGKUdmkX.mjs.map +1 -0
  268. package/dist/LikeSection-no5OlBSF.mjs.map +1 -0
  269. package/dist/ListPaginate-BWWtCWZX.mjs +174 -0
  270. package/dist/ListPaginate-BWWtCWZX.mjs.map +1 -0
  271. package/dist/ListPaginate-DwmCOplg.mjs.map +1 -0
  272. package/dist/ListPaginate-QZ7t7y81.mjs.map +1 -0
  273. package/dist/LiveHorizontalList-BObeVsFj.mjs.map +1 -0
  274. package/dist/LiveHorizontalList-CDS6piq6.mjs +111 -0
  275. package/dist/LiveHorizontalList-CDS6piq6.mjs.map +1 -0
  276. package/dist/LiveHorizontalList-D_GkeFWa.mjs.map +1 -0
  277. package/dist/LiveHorizontalList-bMtchMkz.mjs.map +1 -0
  278. package/dist/LiveList-Bf2IwhCb.mjs +265 -0
  279. package/dist/LiveList-Bf2IwhCb.mjs.map +1 -0
  280. package/dist/LiveList-CLi1Bq0h.mjs.map +1 -0
  281. package/dist/LiveList-DZy0OfFl.mjs.map +1 -0
  282. package/dist/LiveList-uGUcdGMJ.mjs.map +1 -0
  283. package/dist/LivesPage-4xpcvJSQ.mjs.map +1 -0
  284. package/dist/LivesPage-BqEg0zT2.mjs.map +1 -0
  285. package/dist/LivesPage-CNPiAlnt.mjs.map +1 -0
  286. package/dist/LivesPage-CfYmRxnV.mjs +55 -0
  287. package/dist/LivesPage-CfYmRxnV.mjs.map +1 -0
  288. package/dist/MapPage-BDhnH1Kl.mjs.map +1 -0
  289. package/dist/MapPage-DjLcn4uk.mjs +276 -0
  290. package/dist/MapPage-DjLcn4uk.mjs.map +1 -0
  291. package/dist/MapPage-gETfgUu-.mjs.map +1 -0
  292. package/dist/MessageModal-B35dCbWB.mjs.map +1 -0
  293. package/dist/MessageModal-BWI3HTM0.mjs +116 -0
  294. package/dist/MessageModal-BWI3HTM0.mjs.map +1 -0
  295. package/dist/MobileMenu-B51ClvR4.mjs.map +1 -0
  296. package/dist/MobileMenu-BPtGG3Nt.mjs.map +1 -0
  297. package/dist/MobileMenu-CdvJhI_5.mjs +162 -0
  298. package/dist/MobileMenu-CdvJhI_5.mjs.map +1 -0
  299. package/dist/MonetizableFilter-BGQTUtwX.mjs.map +1 -0
  300. package/dist/MonetizableFilter-DOlNz4IP.mjs +66 -0
  301. package/dist/MonetizableFilter-DOlNz4IP.mjs.map +1 -0
  302. package/dist/NewsletterModal-3Hv1lNuN.mjs.map +1 -0
  303. package/dist/NewsletterModal-Cit-Ckrg.mjs.map +1 -0
  304. package/dist/NewsletterModal-Cq-ZW_Y_.mjs +64 -0
  305. package/dist/NewsletterModal-Cq-ZW_Y_.mjs.map +1 -0
  306. package/dist/OctopusMultiselect-CDijfV8W.mjs +325 -0
  307. package/dist/OctopusMultiselect-CDijfV8W.mjs.map +1 -0
  308. package/dist/OctopusMultiselect-tXNIWVpp.mjs.map +1 -0
  309. package/dist/OrganisationChooser-CH20oK8w.mjs +164 -0
  310. package/dist/OrganisationChooser-CH20oK8w.mjs.map +1 -0
  311. package/dist/OrganisationChooser-foPC-Rwo.mjs.map +1 -0
  312. package/dist/OrganisationChooser-m6bJKDBa.mjs.map +1 -0
  313. package/dist/OrganisationChooserLight-BGPuDaCx.mjs.map +1 -0
  314. package/dist/OrganisationChooserLight-DJHyYp6k.mjs.map +1 -0
  315. package/dist/OrganisationChooserLight-DqO0gfx7.mjs +63 -0
  316. package/dist/OrganisationChooserLight-DqO0gfx7.mjs.map +1 -0
  317. package/dist/PageLogout-Bc8zBpoo.mjs.map +1 -0
  318. package/dist/PageLogout-xQXWO2UF.mjs +21 -0
  319. package/dist/PageLogout-xQXWO2UF.mjs.map +1 -0
  320. package/dist/PageNotFound-BPFW-fzo.mjs.map +1 -0
  321. package/dist/PageNotFound-Dpv0tY-G.mjs +45 -0
  322. package/dist/PageNotFound-Dpv0tY-G.mjs.map +1 -0
  323. package/dist/PageNotFound-r_6Ei8S9.mjs.map +1 -0
  324. package/dist/PaginateParams-CbAaMAAM.mjs.map +1 -0
  325. package/dist/PaginateParams-CjJoKjUD.mjs +90 -0
  326. package/dist/PaginateParams-CjJoKjUD.mjs.map +1 -0
  327. package/dist/PaginateSection-BJ6iQai2.mjs.map +1 -0
  328. package/dist/PaginateSection-I875HiC5.mjs +184 -0
  329. package/dist/PaginateSection-I875HiC5.mjs.map +1 -0
  330. package/dist/ParticipantDescription-BsS6OEz9.mjs +57 -0
  331. package/dist/ParticipantDescription-BsS6OEz9.mjs.map +1 -0
  332. package/dist/ParticipantDescription-CwREwvZy.mjs.map +1 -0
  333. package/dist/ParticipantInlineList-BmE7OeIA.mjs.map +1 -0
  334. package/dist/ParticipantInlineList-C1BElB13.mjs +95 -0
  335. package/dist/ParticipantInlineList-C1BElB13.mjs.map +1 -0
  336. package/dist/ParticipantInlineList-DasTqo5z.mjs.map +1 -0
  337. package/dist/ParticipantItem-B3n9mXtJ.mjs +113 -0
  338. package/dist/ParticipantItem-B3n9mXtJ.mjs.map +1 -0
  339. package/dist/ParticipantItem-BOYW9dkV.mjs.map +1 -0
  340. package/dist/ParticipantItem-DiD5ANdf.mjs.map +1 -0
  341. package/dist/ParticipantPage-DI9J2hc9.mjs +161 -0
  342. package/dist/ParticipantPage-DI9J2hc9.mjs.map +1 -0
  343. package/dist/ParticipantPage-Dd0RQWvi.mjs.map +1 -0
  344. package/dist/ParticipantPage-DpEOyLsF.mjs.map +1 -0
  345. package/dist/ParticipantPage-KSNX-i8c.mjs.map +1 -0
  346. package/dist/ParticipantsPage-CC--r1ny.mjs.map +1 -0
  347. package/dist/ParticipantsPage-CVfRUkIM.mjs +215 -0
  348. package/dist/ParticipantsPage-CVfRUkIM.mjs.map +1 -0
  349. package/dist/ParticipantsPage-DF_C3M6I.mjs.map +1 -0
  350. package/dist/PlayVideoIcon-CQJTc1O7.mjs.map +1 -0
  351. package/dist/PlayVideoIcon-QfmloAS6.mjs +50 -0
  352. package/dist/PlayVideoIcon-QfmloAS6.mjs.map +1 -0
  353. package/dist/PlayerAnonymousModal-B_IyhbMR.mjs +67 -0
  354. package/dist/PlayerAnonymousModal-B_IyhbMR.mjs.map +1 -0
  355. package/dist/PlayerAnonymousModal-C_13dRO7.mjs.map +1 -0
  356. package/dist/PlayerAnonymousModal-DH3k1hXl.mjs.map +1 -0
  357. package/dist/PlayerCommonParameters-BF8-HN2S.mjs +32 -0
  358. package/dist/PlayerCommonParameters-BF8-HN2S.mjs.map +1 -0
  359. package/dist/PlayerCommonParameters-Dn-OIiO8.mjs.map +1 -0
  360. package/dist/PlayerCompact-BFLLRuDe.mjs.map +1 -0
  361. package/dist/PlayerCompact-DEeOaAfG.mjs.map +1 -0
  362. package/dist/PlayerCompact-DdCp2i_P.mjs +157 -0
  363. package/dist/PlayerCompact-DdCp2i_P.mjs.map +1 -0
  364. package/dist/PlayerComponent-BA2dlmRD.mjs.map +1 -0
  365. package/dist/PlayerComponent-CWtN6Je1.mjs +894 -0
  366. package/dist/PlayerComponent-CWtN6Je1.mjs.map +1 -0
  367. package/dist/PlayerComponent-im3MzRzo.mjs.map +1 -0
  368. package/dist/PlayerFmIcon-BGCKu8Y2.mjs +49 -0
  369. package/dist/PlayerFmIcon-BGCKu8Y2.mjs.map +1 -0
  370. package/dist/PlayerFmIcon-BxQ1g45P.mjs.map +1 -0
  371. package/dist/PlayerLarge-3OMY0_Tt.mjs.map +1 -0
  372. package/dist/PlayerLarge-BqjHyRf7.mjs.map +1 -0
  373. package/dist/PlayerLarge-I7FONG3B.mjs +153 -0
  374. package/dist/PlayerLarge-I7FONG3B.mjs.map +1 -0
  375. package/dist/PlayerParameters-fpNIoYO9.mjs.map +1 -0
  376. package/dist/PlayerParameters-y4IXdHiE.mjs +195 -0
  377. package/dist/PlayerParameters-y4IXdHiE.mjs.map +1 -0
  378. package/dist/PlayerPlayButton-Bm6Rp8bS.mjs +327 -0
  379. package/dist/PlayerPlayButton-Bm6Rp8bS.mjs.map +1 -0
  380. package/dist/PlayerPlayButton-DdIezDHQ.mjs.map +1 -0
  381. package/dist/PlayerPlayButton-T1Fr5nWh.mjs.map +1 -0
  382. package/dist/PlayerProgressBar-5jLv6Y7S.mjs.map +1 -0
  383. package/dist/PlayerProgressBar-8Q9iCyLs.mjs.map +1 -0
  384. package/dist/PlayerProgressBar-C38YCi9Z.mjs +75 -0
  385. package/dist/PlayerProgressBar-C38YCi9Z.mjs.map +1 -0
  386. package/dist/PlayerStore-BVK7ItEM.mjs.map +1 -0
  387. package/dist/PlayerStore-DB5dkc3c.mjs +230 -0
  388. package/dist/PlayerStore-DB5dkc3c.mjs.map +1 -0
  389. package/dist/PlayerVideo-Bud1rcxU.mjs +52 -0
  390. package/dist/PlayerVideo-Bud1rcxU.mjs.map +1 -0
  391. package/dist/PlayerVideo-CX3JS9bK.mjs.map +1 -0
  392. package/dist/PlayerVideo-D0mTmRCq.mjs.map +1 -0
  393. package/dist/PlayerVideoDigiteka-CiTtloWK.mjs +82 -0
  394. package/dist/PlayerVideoDigiteka-CiTtloWK.mjs.map +1 -0
  395. package/dist/PlayerVideoDigiteka-DjlfXgIZ.mjs.map +1 -0
  396. package/dist/PlayerVideoDigiteka-Dn3neAtr.mjs.map +1 -0
  397. package/dist/PlayerVideoHls-BJj1m924.mjs.map +1 -0
  398. package/dist/PlayerVideoHls-D909ECaY.mjs.map +1 -0
  399. package/dist/PlayerVideoHls-DjAlSV39.mjs +199 -0
  400. package/dist/PlayerVideoHls-DjAlSV39.mjs.map +1 -0
  401. package/dist/PlayerYoutubeEmbed-D0A4EWhU.mjs.map +1 -0
  402. package/dist/PlayerYoutubeEmbed-D5ZhaHbv.mjs +32 -0
  403. package/dist/PlayerYoutubeEmbed-D5ZhaHbv.mjs.map +1 -0
  404. package/dist/PlaylistPage-B-qoOMDN.mjs.map +1 -0
  405. package/dist/PlaylistPage-Botg5_jv.mjs.map +1 -0
  406. package/dist/PlaylistPage-C56-smtp.mjs.map +1 -0
  407. package/dist/PlaylistPage-aIWF8InW.mjs +180 -0
  408. package/dist/PlaylistPage-aIWF8InW.mjs.map +1 -0
  409. package/dist/PlaylistsPage-BSNE0BZ9.mjs.map +1 -0
  410. package/dist/PlaylistsPage-D2QbHMQu.mjs.map +1 -0
  411. package/dist/PlaylistsPage-Pnn895N-.mjs +322 -0
  412. package/dist/PlaylistsPage-Pnn895N-.mjs.map +1 -0
  413. package/dist/PocketCastIcon-Nm45VN7b.mjs.map +1 -0
  414. package/dist/PocketCastIcon-RfG93aY3.mjs +49 -0
  415. package/dist/PocketCastIcon-RfG93aY3.mjs.map +1 -0
  416. package/dist/PodcastAddictIcon-DRF7w4QM.mjs.map +1 -0
  417. package/dist/PodcastAddictIcon-v149CijV.mjs +52 -0
  418. package/dist/PodcastAddictIcon-v149CijV.mjs.map +1 -0
  419. package/dist/PodcastFilterList-CQ8vxYW7.mjs.map +1 -0
  420. package/dist/PodcastFilterList-CZzD028O.mjs.map +1 -0
  421. package/dist/PodcastFilterList-Khjz0Dny.mjs +179 -0
  422. package/dist/PodcastFilterList-Khjz0Dny.mjs.map +1 -0
  423. package/dist/PodcastFilterList-NSECjEDk.mjs.map +1 -0
  424. package/dist/PodcastImage-B-_N0gS4.mjs.map +1 -0
  425. package/dist/PodcastImage-BrfDAORW.mjs +148 -0
  426. package/dist/PodcastImage-BrfDAORW.mjs.map +1 -0
  427. package/dist/PodcastImage-DTrISr_U.mjs.map +1 -0
  428. package/dist/PodcastInlineList-BkHA9K7I.mjs +126 -0
  429. package/dist/PodcastInlineList-BkHA9K7I.mjs.map +1 -0
  430. package/dist/PodcastInlineList-Bq-uF-n4.mjs.map +1 -0
  431. package/dist/PodcastInlineList-DOkuKLLe.mjs.map +1 -0
  432. package/dist/PodcastInlineList-cWF3ymZw.mjs.map +1 -0
  433. package/dist/PodcastInlineListTemplate-BWUKzZU9.mjs.map +1 -0
  434. package/dist/PodcastInlineListTemplate-Bc479tGK.mjs.map +1 -0
  435. package/dist/PodcastInlineListTemplate-CiuRCR7t.mjs +206 -0
  436. package/dist/PodcastInlineListTemplate-CiuRCR7t.mjs.map +1 -0
  437. package/dist/PodcastIsPlaying-B2uIZI7V.mjs.map +1 -0
  438. package/dist/PodcastIsPlaying-DEviEW23.mjs +21 -0
  439. package/dist/PodcastIsPlaying-DEviEW23.mjs.map +1 -0
  440. package/dist/PodcastIsPlaying-DzzRwggt.mjs.map +1 -0
  441. package/dist/PodcastItem-6qkOg90q.mjs +213 -0
  442. package/dist/PodcastItem-6qkOg90q.mjs.map +1 -0
  443. package/dist/PodcastItem-DLD5hfk7.mjs.map +1 -0
  444. package/dist/PodcastItem-ltLOqm-_.mjs.map +1 -0
  445. package/dist/PodcastItem-naoxNwra.mjs.map +1 -0
  446. package/dist/PodcastList-5vFekv1m.mjs.map +1 -0
  447. package/dist/PodcastList-B60tYB2G.mjs.map +1 -0
  448. package/dist/PodcastList-B9xZlEH4.mjs +152 -0
  449. package/dist/PodcastList-B9xZlEH4.mjs.map +1 -0
  450. package/dist/PodcastList-BYBjpOL8.mjs.map +1 -0
  451. package/dist/PodcastList-BuDcObSr.mjs.map +1 -0
  452. package/dist/PodcastList-DQanN0Bb.mjs.map +1 -0
  453. package/dist/PodcastList-gdQbPtGY.mjs +234 -0
  454. package/dist/PodcastList-gdQbPtGY.mjs.map +1 -0
  455. package/dist/PodcastList-jCzCt_eR.mjs.map +1 -0
  456. package/dist/PodcastPage-B5WpXRPn.mjs.map +1 -0
  457. package/dist/PodcastPage-BFjlYZGL.mjs.map +1 -0
  458. package/dist/PodcastPage-BUlluWvM.mjs.map +1 -0
  459. package/dist/PodcastPage-D3aBkgdA.mjs +585 -0
  460. package/dist/PodcastPage-D3aBkgdA.mjs.map +1 -0
  461. package/dist/PodcastPlannedSpinner-BJDQ4VPx.mjs +20 -0
  462. package/dist/PodcastPlannedSpinner-BJDQ4VPx.mjs.map +1 -0
  463. package/dist/PodcastPlannedSpinner-BN7unEqf.mjs.map +1 -0
  464. package/dist/PodcastPlayBar-BotWFQoJ.mjs.map +1 -0
  465. package/dist/PodcastPlayBar-C7pDzmXr.mjs +65 -0
  466. package/dist/PodcastPlayBar-C7pDzmXr.mjs.map +1 -0
  467. package/dist/PodcastPlayBar-Dc71_DSn.mjs.map +1 -0
  468. package/dist/PodcastPlayBasicButton-9u92vEzq.mjs.map +1 -0
  469. package/dist/PodcastPlayBasicButton-BRbHFpVR.mjs +52 -0
  470. package/dist/PodcastPlayBasicButton-BRbHFpVR.mjs.map +1 -0
  471. package/dist/PodcastPlayBasicButton-Ds_kg-b1.mjs.map +1 -0
  472. package/dist/PodcastPlayButton-CMaudNx5.mjs +203 -0
  473. package/dist/PodcastPlayButton-CMaudNx5.mjs.map +1 -0
  474. package/dist/PodcastPlayButton-RjnyBBYO.mjs.map +1 -0
  475. package/dist/PodcastPlayButton-TpwW09jp.mjs.map +1 -0
  476. package/dist/PodcastPlaylistInlineList-BLAD7cMN.mjs.map +1 -0
  477. package/dist/PodcastPlaylistInlineList-BllOtctp.mjs +82 -0
  478. package/dist/PodcastPlaylistInlineList-BllOtctp.mjs.map +1 -0
  479. package/dist/PodcastPlaylistInlineList-CSITiCoX.mjs.map +1 -0
  480. package/dist/PodcastPlaylistInlineList-kO0naL9A.mjs.map +1 -0
  481. package/dist/PodcastPresentationList-BcKJ9XZ7.mjs +152 -0
  482. package/dist/PodcastPresentationList-BcKJ9XZ7.mjs.map +1 -0
  483. package/dist/PodcastPresentationList-CRCO4abw.mjs.map +1 -0
  484. package/dist/PodcastPresentationList-CSWhzlnX.mjs.map +1 -0
  485. package/dist/PodcastProgressBar-Ctp0I77F.mjs.map +1 -0
  486. package/dist/PodcastProgressBar-Dih-EtLn.mjs.map +1 -0
  487. package/dist/PodcastProgressBar-xAMieMIt.mjs +80 -0
  488. package/dist/PodcastProgressBar-xAMieMIt.mjs.map +1 -0
  489. package/dist/PodcastRawTranscript-BbCPFt3l.mjs.map +1 -0
  490. package/dist/PodcastRawTranscript-CdKhzP8l.mjs +146 -0
  491. package/dist/PodcastRawTranscript-CdKhzP8l.mjs.map +1 -0
  492. package/dist/PodcastRawTranscript-Cp0XSlnz.mjs.map +1 -0
  493. package/dist/PodcastRubriqueList-BGiDpOsb.mjs.map +1 -0
  494. package/dist/PodcastRubriqueList-BqhnhoEz.mjs +65 -0
  495. package/dist/PodcastRubriqueList-BqhnhoEz.mjs.map +1 -0
  496. package/dist/PodcastRubriqueList-CPaVKHY5.mjs.map +1 -0
  497. package/dist/PodcastSeasonInfo-BwD--f9z.mjs +37 -0
  498. package/dist/PodcastSeasonInfo-BwD--f9z.mjs.map +1 -0
  499. package/dist/PodcastSeasonInfo-DL_CsYTY.mjs.map +1 -0
  500. package/dist/PodcastSwiperList-C2H-uWk9.mjs.map +1 -0
  501. package/dist/PodcastSwiperList-CY2NOyCN.mjs.map +1 -0
  502. package/dist/PodcastSwiperList-Cj4G10ln.mjs.map +1 -0
  503. package/dist/PodcastSwiperList-DI-90c4F.mjs +191 -0
  504. package/dist/PodcastSwiperList-DI-90c4F.mjs.map +1 -0
  505. package/dist/PodcastmakerHeader-BubtZY7u.mjs.map +1 -0
  506. package/dist/PodcastmakerHeader-CURC8nyy.mjs.map +1 -0
  507. package/dist/PodcastmakerHeader-DLy0YSgm.mjs +46 -0
  508. package/dist/PodcastmakerHeader-DLy0YSgm.mjs.map +1 -0
  509. package/dist/PodcastsPage-CYG8bXaW.mjs.map +1 -0
  510. package/dist/PodcastsPage-DZlGTlaX.mjs +135 -0
  511. package/dist/PodcastsPage-DZlGTlaX.mjs.map +1 -0
  512. package/dist/PodcastsPage-PTwwATNT.mjs.map +1 -0
  513. package/dist/PodcastsPage-dOgLCDY5.mjs.map +1 -0
  514. package/dist/PresentationLayout-BWueEtST.mjs +70 -0
  515. package/dist/PresentationLayout-BWueEtST.mjs.map +1 -0
  516. package/dist/PresentationLayout-BmcVqEo8.mjs.map +1 -0
  517. package/dist/ProductorSearch-Bp7S8Sut.mjs.map +1 -0
  518. package/dist/ProductorSearch-ir5rkehT.mjs +132 -0
  519. package/dist/ProductorSearch-ir5rkehT.mjs.map +1 -0
  520. package/dist/ProductorSearch-yQPCj7Pa.mjs.map +1 -0
  521. package/dist/ProgressBar-B6z6oHHm.mjs.map +1 -0
  522. package/dist/ProgressBar-DLbzpY3L.mjs.map +1 -0
  523. package/dist/ProgressBar-ubd7c7H0.mjs +135 -0
  524. package/dist/ProgressBar-ubd7c7H0.mjs.map +1 -0
  525. package/dist/QrCode-BR3jPdJS.mjs +140 -0
  526. package/dist/QrCode-BR3jPdJS.mjs.map +1 -0
  527. package/dist/QrCode-C7IL9c3c.mjs.map +1 -0
  528. package/dist/QrCode-D86qgrdm.mjs.map +1 -0
  529. package/dist/QrCodeModal-9PCWJenP.mjs.map +1 -0
  530. package/dist/QrCodeModal-Cf1O9nwT.mjs.map +1 -0
  531. package/dist/QrCodeModal-DnREe0Jk.mjs +48 -0
  532. package/dist/QrCodeModal-DnREe0Jk.mjs.map +1 -0
  533. package/dist/RadioCurrently-BNzaJNoY.mjs +89 -0
  534. package/dist/RadioCurrently-BNzaJNoY.mjs.map +1 -0
  535. package/dist/RadioCurrently-Bz4kKaGc.mjs.map +1 -0
  536. package/dist/RadioCurrently-COaGoNF8.mjs.map +1 -0
  537. package/dist/RadioHistory-B_PBz6hY.mjs.map +1 -0
  538. package/dist/RadioHistory-DMGTXE4V.mjs +116 -0
  539. package/dist/RadioHistory-DMGTXE4V.mjs.map +1 -0
  540. package/dist/RadioHistory-Yhqmee1d.mjs.map +1 -0
  541. package/dist/RadioImage-B5jrzD8s.mjs.map +1 -0
  542. package/dist/RadioImage-BgrUZZIa.mjs +66 -0
  543. package/dist/RadioImage-BgrUZZIa.mjs.map +1 -0
  544. package/dist/RadioImage-D2MFmuqR.mjs.map +1 -0
  545. package/dist/RadioList-Bab4Pj9m.mjs.map +1 -0
  546. package/dist/RadioList-Bh8ub58m.mjs +95 -0
  547. package/dist/RadioList-Bh8ub58m.mjs.map +1 -0
  548. package/dist/RadioList-Ctbf98I9.mjs.map +1 -0
  549. package/dist/RadioPage-BY7YU_yL.mjs.map +1 -0
  550. package/dist/RadioPage-BtsGEI5i.mjs +105 -0
  551. package/dist/RadioPage-BtsGEI5i.mjs.map +1 -0
  552. package/dist/RadioPage-DtS3r-48.mjs.map +1 -0
  553. package/dist/RadioPlanning-B-sRUVGb.mjs.map +1 -0
  554. package/dist/RadioPlanning-D2RNEdEQ.mjs.map +1 -0
  555. package/dist/RadioPlanning-DMighzUU.mjs +257 -0
  556. package/dist/RadioPlanning-DMighzUU.mjs.map +1 -0
  557. package/dist/RadioProgressBar-4MT37o9a.mjs.map +1 -0
  558. package/dist/RadioProgressBar-CiapCPN-.mjs +47 -0
  559. package/dist/RadioProgressBar-CiapCPN-.mjs.map +1 -0
  560. package/dist/RadioProgressBar-DrxSXvmY.mjs.map +1 -0
  561. package/dist/RadiolineIcon-CIePjE9k.mjs.map +1 -0
  562. package/dist/RadiolineIcon-QP88nzG8.mjs +50 -0
  563. package/dist/RadiolineIcon-QP88nzG8.mjs.map +1 -0
  564. package/dist/RecaptchaModal-BThWkUuj.mjs.map +1 -0
  565. package/dist/RecaptchaModal-BkETInqb.mjs.map +1 -0
  566. package/dist/RecaptchaModal-DlThDzSF.mjs +119 -0
  567. package/dist/RecaptchaModal-DlThDzSF.mjs.map +1 -0
  568. package/dist/ReportAbuseModal-BfYBle6z.mjs.map +1 -0
  569. package/dist/ReportAbuseModal-Bnhfpowa.mjs.map +1 -0
  570. package/dist/ReportAbuseModal-Pd8P9tNB.mjs +107 -0
  571. package/dist/ReportAbuseModal-Pd8P9tNB.mjs.map +1 -0
  572. package/dist/RightsIndicator-COEtdoj_.mjs.map +1 -0
  573. package/dist/RightsIndicator-CZtSrb5K.mjs.map +1 -0
  574. package/dist/RightsIndicator-DNmA3L9O.mjs.map +1 -0
  575. package/dist/RightsIndicator-DYhqEbAB.mjs +69 -0
  576. package/dist/RightsIndicator-DYhqEbAB.mjs.map +1 -0
  577. package/dist/RightsWrapper-BHIinXXL.mjs.map +1 -0
  578. package/dist/RightsWrapper-CewAJoDY.mjs.map +1 -0
  579. package/dist/RightsWrapper-Cz5TnSUC.mjs +164 -0
  580. package/dist/RightsWrapper-Cz5TnSUC.mjs.map +1 -0
  581. package/dist/RubriqueChoice-BN4nirmx.mjs +120 -0
  582. package/dist/RubriqueChoice-BN4nirmx.mjs.map +1 -0
  583. package/dist/RubriqueChoice-BxmZoBZL.mjs.map +1 -0
  584. package/dist/RubriqueChoice-C4rglHV1.mjs.map +1 -0
  585. package/dist/RubriqueChooser-BceFw2x2.mjs.map +1 -0
  586. package/dist/RubriqueChooser-BgIvDDv7.mjs +213 -0
  587. package/dist/RubriqueChooser-BgIvDDv7.mjs.map +1 -0
  588. package/dist/RubriqueFilter-BwBU4kpV.mjs +168 -0
  589. package/dist/RubriqueFilter-BwBU4kpV.mjs.map +1 -0
  590. package/dist/RubriqueFilter-C7lAoJNq.mjs.map +1 -0
  591. package/dist/RubriqueFilter-CKF-seUZ.mjs.map +1 -0
  592. package/dist/RubriqueFilter-oDd4AytG.mjs.map +1 -0
  593. package/dist/RubriqueList-Cr0vXMew.mjs.map +1 -0
  594. package/dist/RubriqueList-D2PPns3m.mjs +169 -0
  595. package/dist/RubriqueList-D2PPns3m.mjs.map +1 -0
  596. package/dist/RubriqueList-zHKQE6OL.mjs.map +1 -0
  597. package/dist/RubriquePage-2ITwxYLr.mjs.map +1 -0
  598. package/dist/RubriquePage-Bpt2wwjK.mjs.map +1 -0
  599. package/dist/RubriquePage-CFrQ5Hw-.mjs +86 -0
  600. package/dist/RubriquePage-CFrQ5Hw-.mjs.map +1 -0
  601. package/dist/RubriquePage-Cf9QJQJB.mjs.map +1 -0
  602. package/dist/SearchOrder-CJ0Fj6Wd.mjs.map +1 -0
  603. package/dist/SearchOrder-CLl5slg5.mjs +70 -0
  604. package/dist/SearchOrder-CLl5slg5.mjs.map +1 -0
  605. package/dist/SearchPage-BopqRW_4.mjs.map +1 -0
  606. package/dist/SearchPage-BskiH0Hg.mjs +58 -0
  607. package/dist/SearchPage-BskiH0Hg.mjs.map +1 -0
  608. package/dist/SearchPage-D0Tz8ELe.mjs.map +1 -0
  609. package/dist/SearchPage-DLj9zYeL.mjs.map +1 -0
  610. package/dist/ShareAnonymous-B16PsWEJ.mjs +249 -0
  611. package/dist/ShareAnonymous-B16PsWEJ.mjs.map +1 -0
  612. package/dist/ShareAnonymous-CBVGRI6L.mjs.map +1 -0
  613. package/dist/ShareAnonymous-DmDaW3PH.mjs.map +1 -0
  614. package/dist/ShareModalPlayer-BV_1CKus.mjs.map +1 -0
  615. package/dist/ShareModalPlayer-SIkm_vpv.mjs.map +1 -0
  616. package/dist/ShareModalPlayer-lGW9vRFS.mjs +111 -0
  617. package/dist/ShareModalPlayer-lGW9vRFS.mjs.map +1 -0
  618. package/dist/ShareNewsletter-BigVU8EV.mjs.map +1 -0
  619. package/dist/ShareNewsletter-CRQBK_3P.mjs +181 -0
  620. package/dist/ShareNewsletter-CRQBK_3P.mjs.map +1 -0
  621. package/dist/ShareNewsletter-CleivWOu.mjs.map +1 -0
  622. package/dist/SharePlayer-CGlvYVn4.mjs.map +1 -0
  623. package/dist/SharePlayer-CSKYsE9H.mjs.map +1 -0
  624. package/dist/SharePlayer-Cdjz1NrC.mjs +319 -0
  625. package/dist/SharePlayer-Cdjz1NrC.mjs.map +1 -0
  626. package/dist/SharePlayerColors-D-9MoYm6.mjs.map +1 -0
  627. package/dist/SharePlayerColors-p_LreBcc.mjs +61 -0
  628. package/dist/SharePlayerColors-p_LreBcc.mjs.map +1 -0
  629. package/dist/SharePlayerRadio-BJBbDNn5.mjs.map +1 -0
  630. package/dist/SharePlayerRadio-DbHw7Vcn.mjs +99 -0
  631. package/dist/SharePlayerRadio-DbHw7Vcn.mjs.map +1 -0
  632. package/dist/SharePlayerRadio-OMXyRc4D.mjs.map +1 -0
  633. package/dist/SharePlayerTypes-BTWxUJWi.mjs +206 -0
  634. package/dist/SharePlayerTypes-BTWxUJWi.mjs.map +1 -0
  635. package/dist/SharePlayerTypes-C2_JNU6C.mjs.map +1 -0
  636. package/dist/SharePlayerTypes-DBERUe0_.mjs.map +1 -0
  637. package/dist/ShareSocialsButtons-Bwh9bMoR.mjs +132 -0
  638. package/dist/ShareSocialsButtons-Bwh9bMoR.mjs.map +1 -0
  639. package/dist/ShareSocialsButtons-CMOEQdYB.mjs.map +1 -0
  640. package/dist/ShareSocialsButtons-D0b8OawP.mjs.map +1 -0
  641. package/dist/SimpleLayout-BRjk598k.mjs.map +1 -0
  642. package/dist/SimpleLayout-D9uJF7mS.mjs +28 -0
  643. package/dist/SimpleLayout-D9uJF7mS.mjs.map +1 -0
  644. package/dist/SimpleLayout-b-QQv5aQ.mjs.map +1 -0
  645. package/dist/SmartLinkPage-CSTfusv3.mjs.map +1 -0
  646. package/dist/SmartLinkPage-CeGDzza8.mjs +187 -0
  647. package/dist/SmartLinkPage-CeGDzza8.mjs.map +1 -0
  648. package/dist/SmartLinkPage-DGRvD-vv.mjs.map +1 -0
  649. package/dist/SnackBar-DdE1dYhi.mjs.map +1 -0
  650. package/dist/SnackBar-jRnNt--Z.mjs +150 -0
  651. package/dist/SnackBar-jRnNt--Z.mjs.map +1 -0
  652. package/dist/SubscribeButtons-CHsq-Vk7.mjs +160 -0
  653. package/dist/SubscribeButtons-CHsq-Vk7.mjs.map +1 -0
  654. package/dist/SubscribeButtons-CJhlLSWX.mjs.map +1 -0
  655. package/dist/SubscribeButtons-ChrHIXBv.mjs.map +1 -0
  656. package/dist/SwiperList-BKiF8jIc.mjs +170 -0
  657. package/dist/SwiperList-BKiF8jIc.mjs.map +1 -0
  658. package/dist/SwiperList-BoALb00d.mjs.map +1 -0
  659. package/dist/SwiperList-DBmjvvCX.mjs.map +1 -0
  660. package/dist/TagList-BECg0vNz.mjs.map +1 -0
  661. package/dist/TagList-DRJvO9Gr.mjs.map +1 -0
  662. package/dist/TagList-DiGc-7Rj.mjs +110 -0
  663. package/dist/TagList-DiGc-7Rj.mjs.map +1 -0
  664. package/dist/TagPage-Bn2cVKpN.mjs.map +1 -0
  665. package/dist/TagPage-C9x5XWOd.mjs.map +1 -0
  666. package/dist/TagPage-DchdAQV2.mjs.map +1 -0
  667. package/dist/TagPage-Vd8JH7-r.mjs +99 -0
  668. package/dist/TagPage-Vd8JH7-r.mjs.map +1 -0
  669. package/dist/TopBar-B20_SqNY.mjs.map +1 -0
  670. package/dist/TopBar-DRclhhd6.mjs.map +1 -0
  671. package/dist/TopBar-FHuZ4j9H.mjs +358 -0
  672. package/dist/TopBar-FHuZ4j9H.mjs.map +1 -0
  673. package/dist/TuninIcon-BplDWgtD.mjs.map +1 -0
  674. package/dist/TuninIcon-SHr7Y1qJ.mjs +49 -0
  675. package/dist/TuninIcon-SHr7Y1qJ.mjs.map +1 -0
  676. package/dist/UserButtonContent-B-AMExwJ.mjs.map +1 -0
  677. package/dist/UserButtonContent-Btivzl2V.mjs.map +1 -0
  678. package/dist/UserButtonContent-I7ahjnuS.mjs +163 -0
  679. package/dist/UserButtonContent-I7ahjnuS.mjs.map +1 -0
  680. package/dist/VastStore-BPwOrXvb.mjs +80 -0
  681. package/dist/VastStore-BPwOrXvb.mjs.map +1 -0
  682. package/dist/VideoModuleBox-Bw0xu9_f.mjs.map +1 -0
  683. package/dist/VideoModuleBox-C8zDhbqA.mjs.map +1 -0
  684. package/dist/VideoModuleBox-Cl6YoznO.mjs +70 -0
  685. package/dist/VideoModuleBox-Cl6YoznO.mjs.map +1 -0
  686. package/dist/VideoPage-B-lgTFnX.mjs.map +1 -0
  687. package/dist/VideoPage-B5Tp2PMs.mjs +222 -0
  688. package/dist/VideoPage-B5Tp2PMs.mjs.map +1 -0
  689. package/dist/VideoPage-X3dZyaQH.mjs.map +1 -0
  690. package/dist/XIcon-DAVMitPh.mjs +49 -0
  691. package/dist/XIcon-DAVMitPh.mjs.map +1 -0
  692. package/dist/XIcon-Dz4rI_Hd.mjs.map +1 -0
  693. package/dist/_plugin-vue_export-helper-BOaGB7Aw.mjs +8 -0
  694. package/dist/aggregatorsApi-hyFtV8aL.mjs.map +1 -0
  695. package/dist/api-tznrp2lH.mjs.map +1 -0
  696. package/dist/apiUtils-D4ULJJbh.mjs.map +1 -0
  697. package/dist/buttons-cdGcewjB.mjs.map +1 -0
  698. package/dist/buttons-kyb_6P3e.mjs.map +1 -0
  699. package/dist/buttons-uGrbDDaA.mjs +113 -0
  700. package/dist/buttons-uGrbDDaA.mjs.map +1 -0
  701. package/dist/classicApi-BKNiWOG4.mjs +1790 -0
  702. package/dist/classicApi-BKNiWOG4.mjs.map +1 -0
  703. package/dist/classicApi-DC7iamat.mjs.map +1 -0
  704. package/dist/config-C73GMJpz.mjs +9 -0
  705. package/dist/config-C73GMJpz.mjs.map +1 -0
  706. package/dist/cookiesHelper-BQksSais.mjs +23 -0
  707. package/dist/cookiesHelper-BQksSais.mjs.map +1 -0
  708. package/dist/displayHelper-CpXshNzz.mjs +22 -0
  709. package/dist/displayHelper-CpXshNzz.mjs.map +1 -0
  710. package/dist/domHelper-DTMIrMbs.mjs +15 -0
  711. package/dist/domHelper-DTMIrMbs.mjs.map +1 -0
  712. package/dist/downloadHelper-CWLRMcjc.mjs +36 -0
  713. package/dist/downloadHelper-CWLRMcjc.mjs.map +1 -0
  714. package/dist/downloadHelper-DB969RNb.mjs.map +1 -0
  715. package/dist/educationen-B0PNsHqt.mjs +18 -0
  716. package/dist/educationen-B0PNsHqt.mjs.map +1 -0
  717. package/dist/educationfr-DnXyASTX.mjs +6 -0
  718. package/dist/educationfr-DnXyASTX.mjs.map +1 -0
  719. package/dist/emission-ByePXT9Y.mjs +33 -0
  720. package/dist/emission-ByePXT9Y.mjs.map +1 -0
  721. package/dist/emissionApi-WS6yl56a.mjs.map +1 -0
  722. package/dist/groupsApi-CecqFbyg.mjs.map +1 -0
  723. package/dist/i18n-l4HCrPF3.mjs.map +1 -0
  724. package/dist/icons-1GR2yFzw.mjs.map +1 -0
  725. package/dist/icons-B4eHXcRy.mjs +18 -0
  726. package/dist/icons-B4eHXcRy.mjs.map +1 -0
  727. package/dist/index.css +7208 -2
  728. package/dist/index.d.ts +1 -0
  729. package/dist/index.mjs +735 -408
  730. package/dist/index.mjs.map +1 -0
  731. package/dist/keys-TjlLYNQE.mjs +18 -0
  732. package/dist/keys-TjlLYNQE.mjs.map +1 -0
  733. package/dist/localisation-iXoGtJ3j.mjs +13 -0
  734. package/dist/localisation-iXoGtJ3j.mjs.map +1 -0
  735. package/dist/logo_saooti_play_black-BLx_RUuM.mjs +6 -0
  736. package/dist/logo_saooti_play_black-BLx_RUuM.mjs.map +1 -0
  737. package/dist/messages-Czjqh0tU.mjs +2679 -0
  738. package/dist/messages-Czjqh0tU.mjs.map +1 -0
  739. package/dist/organisation-CxyRYjC0.mjs +19 -0
  740. package/dist/organisation-CxyRYjC0.mjs.map +1 -0
  741. package/dist/ouest_france_logo-WOgdbVGH.mjs +6 -0
  742. package/dist/ouest_france_logo-WOgdbVGH.mjs.map +1 -0
  743. package/dist/playlistApi-LcxgQmJH.mjs.map +1 -0
  744. package/dist/podcast-Da9L7I5Q.mjs +76 -0
  745. package/dist/podcast-Da9L7I5Q.mjs.map +1 -0
  746. package/dist/podcastApi-5-MtD1l_.mjs.map +1 -0
  747. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  748. package/dist/src/components/composable/usePresentationItem.d.ts +1 -1
  749. package/dist/src/i18n.d.ts +8 -1
  750. package/dist/src/locale/messages.d.ts +30 -0
  751. package/dist/src/stores/ParamSdkStore.d.ts +6 -1
  752. package/dist/src/stores/class/general/organisation.d.ts +2 -0
  753. package/dist/stringHelper-DFr4Khve.mjs +15 -0
  754. package/dist/stringHelper-DFr4Khve.mjs.map +1 -0
  755. package/dist/tests-mocks.mjs +16 -14
  756. package/dist/tests-mocks.mjs.map +1 -0
  757. package/dist/tests.mjs +86 -51
  758. package/dist/tests.mjs.map +1 -0
  759. package/dist/transcriptionApi-Drk3sv6J.mjs.map +1 -0
  760. package/dist/types-8roXR0of.mjs +11 -0
  761. package/dist/types-8roXR0of.mjs.map +1 -0
  762. package/dist/useAdvancedParamInit-Ci4c333p.mjs +162 -0
  763. package/dist/useAdvancedParamInit-Ci4c333p.mjs.map +1 -0
  764. package/dist/useAdvancedParamInit-CpNDHede.mjs.map +1 -0
  765. package/dist/useCountdown-DPweZzmz.mjs +51 -0
  766. package/dist/useCountdown-DPweZzmz.mjs.map +1 -0
  767. package/dist/useDayjs-BqojyoqU.mjs +32 -0
  768. package/dist/useDayjs-BqojyoqU.mjs.map +1 -0
  769. package/dist/useDayjs-zt5R5ZIe.mjs.map +1 -0
  770. package/dist/useErrorHandler-DNz9da5N.mjs +19 -0
  771. package/dist/useErrorHandler-DNz9da5N.mjs.map +1 -0
  772. package/dist/useErrorHandler-Nce0QKlB.mjs.map +1 -0
  773. package/dist/useImageProxy-B2vNJKgd.mjs +20 -0
  774. package/dist/useImageProxy-B2vNJKgd.mjs.map +1 -0
  775. package/dist/useImageProxy-C7wjiN0F.mjs.map +1 -0
  776. package/dist/useOrgaComputed-D8ikvtGw.mjs.map +1 -0
  777. package/dist/useOrgaComputed-T8Mhcne0.mjs +19 -0
  778. package/dist/useOrgaComputed-T8Mhcne0.mjs.map +1 -0
  779. package/dist/usePlayerLogicProgress-CSdUmqxN.mjs +108 -0
  780. package/dist/usePlayerLogicProgress-CSdUmqxN.mjs.map +1 -0
  781. package/dist/usePlayerLogicProgress-DnNbZCWg.mjs.map +1 -0
  782. package/dist/usePodcastView-BJw3J1sE.mjs.map +1 -0
  783. package/dist/usePodcastView-DR83HM0j.mjs +56 -0
  784. package/dist/usePodcastView-DR83HM0j.mjs.map +1 -0
  785. package/dist/usePresentationItem-BLUjp4Le.mjs.map +1 -0
  786. package/dist/usePresentationItem-C28KKH4P.mjs.map +1 -0
  787. package/dist/usePresentationItem-rJkFlZFu.mjs +144 -0
  788. package/dist/usePresentationItem-rJkFlZFu.mjs.map +1 -0
  789. package/dist/useResizePhone-CpfFUmfV.mjs +37 -0
  790. package/dist/useResizePhone-CpfFUmfV.mjs.map +1 -0
  791. package/dist/useRights-JVTbEOUh.mjs +276 -0
  792. package/dist/useRights-JVTbEOUh.mjs.map +1 -0
  793. package/dist/useRights-Z6_G-y4s.mjs.map +1 -0
  794. package/dist/useRouteUpdateParams-DurlddRA.mjs +59 -0
  795. package/dist/useRouteUpdateParams-DurlddRA.mjs.map +1 -0
  796. package/dist/useRubriquesFilterComputed-CQxqKOWL.mjs.map +1 -0
  797. package/dist/useRubriquesFilterComputed-CWUxRSYK.mjs +13 -0
  798. package/dist/useRubriquesFilterComputed-CWUxRSYK.mjs.map +1 -0
  799. package/dist/useRubriquesFilterParam-D7JQhKT5.mjs.map +1 -0
  800. package/dist/useRubriquesFilterParam-U-wcZUul.mjs +36 -0
  801. package/dist/useRubriquesFilterParam-U-wcZUul.mjs.map +1 -0
  802. package/dist/useSeasonsManagement-D-ngDipg.mjs +44 -0
  803. package/dist/useSeasonsManagement-D-ngDipg.mjs.map +1 -0
  804. package/dist/useSelenium-DwQtyBRt.mjs +11 -0
  805. package/dist/useSelenium-DwQtyBRt.mjs.map +1 -0
  806. package/dist/useSeoTitleUrl-CrM1YzAc.mjs +31 -0
  807. package/dist/useSeoTitleUrl-CrM1YzAc.mjs.map +1 -0
  808. package/dist/useSharePath-Vh29oc9Z.mjs +70 -0
  809. package/dist/useSharePath-Vh29oc9Z.mjs.map +1 -0
  810. package/dist/useSharePlatforms-B8R3fZy9.mjs.map +1 -0
  811. package/dist/useSharePlatforms-D0v8XOk3.mjs.map +1 -0
  812. package/dist/useSharePlatforms-aq487WBa.mjs +415 -0
  813. package/dist/useSharePlatforms-aq487WBa.mjs.map +1 -0
  814. package/dist/useSimplePageParam-CL9Tbu3B.mjs.map +1 -0
  815. package/dist/useSimplePageParam-CPjjYD88.mjs +54 -0
  816. package/dist/useSimplePageParam-CPjjYD88.mjs.map +1 -0
  817. package/dist/useTagOf-JxYdEyRm.mjs +20 -0
  818. package/dist/useTagOf-JxYdEyRm.mjs.map +1 -0
  819. package/dist/useTranslation-B-nJSPAk.mjs +205 -0
  820. package/dist/useTranslation-B-nJSPAk.mjs.map +1 -0
  821. package/dist/useTranslation-DjbHwIm7.mjs.map +1 -0
  822. package/dist/usefetchRadioData-CHglTIFu.mjs.map +1 -0
  823. package/dist/usefetchRadioData-gMdg1_Yh.mjs +55 -0
  824. package/dist/usefetchRadioData-gMdg1_Yh.mjs.map +1 -0
  825. package/dist/youtubeVideoHelper-DOeaXxVp.mjs +16 -0
  826. package/dist/youtubeVideoHelper-DOeaXxVp.mjs.map +1 -0
  827. package/package.json +8 -8
  828. package/src/components/display/live/RadioCurrently.vue +3 -4
  829. package/src/components/layouts/PresentationLayout.vue +9 -3
  830. package/src/components/misc/ProgressBar.vue +0 -1
  831. package/src/components/misc/player/ads/AdsProgressBar.vue +17 -1
  832. package/src/components/misc/player/radio/RadioProgressBar.vue +16 -0
  833. package/dist/AccessibilityModal-CBIb3UQS.mjs +0 -93
  834. package/dist/AdsProgressBar-BwRrrKOT.mjs +0 -19
  835. package/dist/AdvancedSearch-Bd9tK-4i.mjs +0 -249
  836. package/dist/AmazonMusicIcon-6zqZK6Q9.mjs +0 -39
  837. package/dist/ApplePodcastIcon-C3ogP5y5.mjs +0 -40
  838. package/dist/CategoryChooser-Ct0No4RM.mjs +0 -173
  839. package/dist/CategoryFilter-CNCjhnMP.mjs +0 -146
  840. package/dist/CategoryList-Buh73sPa.mjs +0 -107
  841. package/dist/CategoryPage-guP6_hCq.mjs +0 -28
  842. package/dist/CategorySearchFilter-BRfxF0yK.mjs +0 -39
  843. package/dist/ChapteringModal-B29-28dk.mjs +0 -46
  844. package/dist/CheckIdentityModal-Dh-7hC5M.mjs +0 -51
  845. package/dist/ChooseEpisodesNumber-CXJO5dfs.mjs +0 -33
  846. package/dist/ClassicAccordion-Czni43ek.mjs +0 -71
  847. package/dist/ClassicAlert-1IB6N33c.mjs +0 -35
  848. package/dist/ClassicBigChip-D6QO8W-G.mjs +0 -25
  849. package/dist/ClassicCheckbox-xPu56Drn.mjs +0 -89
  850. package/dist/ClassicContentEditable-CWmtRihd.mjs +0 -45
  851. package/dist/ClassicCopyButton-DJ9T09fS.mjs +0 -52
  852. package/dist/ClassicDatePicker-BrPx6CHY.mjs +0 -187
  853. package/dist/ClassicEmojiPicker-2c55qjy6.mjs +0 -63
  854. package/dist/ClassicHelpButton-DdEJu6tX.mjs +0 -34
  855. package/dist/ClassicInputText-ILQDQz8R.mjs +0 -270
  856. package/dist/ClassicLazy-DhdsXyI4.mjs +0 -56
  857. package/dist/ClassicLoading-CXfMjpyl.mjs +0 -40
  858. package/dist/ClassicModal-Dl2IdzXZ.mjs +0 -63
  859. package/dist/ClassicModalInBody-D5-RfQ8Z.mjs +0 -58
  860. package/dist/ClassicMultiselect-DKdQdAtp.mjs +0 -201
  861. package/dist/ClassicNav-DYez6p1J.mjs +0 -47
  862. package/dist/ClassicPopover-6uo-YUgO.mjs +0 -167
  863. package/dist/ClassicRadio-BbJEgMB7.mjs +0 -61
  864. package/dist/ClassicRadioLabel-DgimkkQe.mjs +0 -76
  865. package/dist/ClassicSearch-CtL1cpnF.mjs +0 -63
  866. package/dist/ClassicSelect-BpA0jKN6.mjs +0 -111
  867. package/dist/ClassicSpinner-DFRDD51g.mjs +0 -28
  868. package/dist/ClassicTabs-DYOZLNK2.mjs +0 -40
  869. package/dist/ClassicTagInput-DiRwA8CF.mjs +0 -62
  870. package/dist/ClassicWysiwyg-CbBzD-21.mjs +0 -164
  871. package/dist/ClipboardModal-DBIetCe6.mjs +0 -56
  872. package/dist/CommentBasicView-CJgGRZXW.mjs +0 -76
  873. package/dist/CommentInput-BuXFDUZI.mjs +0 -111
  874. package/dist/CommentItem-C1KdIG3j.mjs +0 -155
  875. package/dist/CommentList-DTKpZSb6.mjs +0 -204
  876. package/dist/CommentMoreActions-BiyzPozQ.mjs +0 -191
  877. package/dist/CommentName-BdoUJC9A.mjs +0 -56
  878. package/dist/CommentParentInfo-kXKfL3N4.mjs +0 -36
  879. package/dist/CommentPlayer-BIOwn4Ao.mjs +0 -47
  880. package/dist/CommentSection-CQGAn83J.mjs +0 -79
  881. package/dist/CommentStore-CVBkPvHJ.mjs +0 -279
  882. package/dist/ContractPreviewModal-BJEnYMoK.mjs +0 -53
  883. package/dist/CountDown-o6ye6yv1.mjs +0 -17
  884. package/dist/CountdownOctopus-D0X5hVBu.mjs +0 -23
  885. package/dist/DateFilter-67VvJ4ez.mjs +0 -79
  886. package/dist/DeezerIcon-CybxfijL.mjs +0 -39
  887. package/dist/DownloadPodcastButton-CcUJ8Wuh.mjs +0 -30
  888. package/dist/EditCommentModal-DoVppFIY.mjs +0 -114
  889. package/dist/EditFtpIcon-B1FO4hqc.mjs +0 -39
  890. package/dist/EmissionGroupChooser-B10wDKyp.mjs +0 -44
  891. package/dist/EmissionInlineList-Cn8j50o6.mjs +0 -113
  892. package/dist/EmissionItem-CQbtdUNM.mjs +0 -116
  893. package/dist/EmissionList-E0Hsq0mr.mjs +0 -230
  894. package/dist/EmissionPage-BY0IY-Ci.mjs +0 -188
  895. package/dist/EmissionPlayerItem-KHWB18Ru.mjs +0 -119
  896. package/dist/EmissionPresentationItem-2hfEZ9Wc.mjs +0 -41
  897. package/dist/EmissionPresentationList-Da6YRCuJ.mjs +0 -92
  898. package/dist/EmissionsPage-BpPlQ1vL.mjs +0 -112
  899. package/dist/Error403Page-D7zKplcn.mjs +0 -40
  900. package/dist/ErrorMessage-B4gtlriP.mjs +0 -22
  901. package/dist/FooterGarSection-CwAVj0X8.mjs +0 -39
  902. package/dist/FooterSection-CklRE0yr.mjs +0 -148
  903. package/dist/GeneralStore-Darfv4af.mjs +0 -39
  904. package/dist/HomeDropdown-D65QDBBQ.mjs +0 -66
  905. package/dist/HomePage-stJtq5XR.mjs +0 -106
  906. package/dist/IHeartIcon-DP1otYre.mjs +0 -42
  907. package/dist/LikeButton-Cu8jAJHx.mjs +0 -40
  908. package/dist/LikeSection-xB4hZ4kv.mjs +0 -96
  909. package/dist/ListPaginate-gdpJpyC6.mjs +0 -147
  910. package/dist/LiveHorizontalList-D1QZCKdq.mjs +0 -77
  911. package/dist/LiveList-CerWcFJv.mjs +0 -206
  912. package/dist/LivesPage-C-jtDd4n.mjs +0 -40
  913. package/dist/MapPage-Bef5gLQu.mjs +0 -240
  914. package/dist/MessageModal-BcqS77v6.mjs +0 -101
  915. package/dist/MobileMenu-CV5t_RXg.mjs +0 -136
  916. package/dist/MonetizableFilter-B7NHzXEY.mjs +0 -58
  917. package/dist/NewsletterModal-CEI0I08q.mjs +0 -53
  918. package/dist/OctopusMultiselect-CaLjXg_3.mjs +0 -234
  919. package/dist/OrganisationChooser-CvHoHxHL.mjs +0 -133
  920. package/dist/OrganisationChooserLight-CJ7IbvRM.mjs +0 -48
  921. package/dist/PageLogout-CVZHOw8c.mjs +0 -12
  922. package/dist/PageNotFound-Cgmgm9i1.mjs +0 -37
  923. package/dist/PaginateParams-Bjz3ZI-5.mjs +0 -75
  924. package/dist/PaginateSection-Oip_5JHt.mjs +0 -137
  925. package/dist/ParticipantDescription-DVSfKvtg.mjs +0 -46
  926. package/dist/ParticipantInlineList-CVsGpX6b.mjs +0 -84
  927. package/dist/ParticipantItem-BIWNtU2J.mjs +0 -91
  928. package/dist/ParticipantPage-BvSoNApw.mjs +0 -129
  929. package/dist/ParticipantsPage-ho_vMsWs.mjs +0 -168
  930. package/dist/PlayVideoIcon-BhTQpMyL.mjs +0 -40
  931. package/dist/PlayerAnonymousModal-DI-OzIJ0.mjs +0 -61
  932. package/dist/PlayerCommonParameters-x0zV7AoW.mjs +0 -27
  933. package/dist/PlayerCompact-BjS5HFvK.mjs +0 -128
  934. package/dist/PlayerComponent-CajQtPxX.mjs +0 -592
  935. package/dist/PlayerFmIcon-D7gURz4r.mjs +0 -39
  936. package/dist/PlayerLarge-H4sl7hoe.mjs +0 -128
  937. package/dist/PlayerParameters-kVBMXQIb.mjs +0 -173
  938. package/dist/PlayerPlayButton-DfzHBM_X.mjs +0 -231
  939. package/dist/PlayerProgressBar-CSY72hgw.mjs +0 -67
  940. package/dist/PlayerStore-C4T1vCHz.mjs +0 -166
  941. package/dist/PlayerVideo-BfR5fBo_.mjs +0 -35
  942. package/dist/PlayerVideoDigiteka-C6ZA6XkR.mjs +0 -59
  943. package/dist/PlayerVideoHls-B8dm2-2-.mjs +0 -125
  944. package/dist/PlayerYoutubeEmbed-D-UrFhXm.mjs +0 -25
  945. package/dist/PlaylistPage-DTy_55xp.mjs +0 -135
  946. package/dist/PlaylistsPage-m-ST2PUd.mjs +0 -254
  947. package/dist/PocketCastIcon-CM5NDsDa.mjs +0 -39
  948. package/dist/PodcastAddictIcon-CW3Uxj4I.mjs +0 -42
  949. package/dist/PodcastFilterList-Bz8c8rOJ.mjs +0 -139
  950. package/dist/PodcastImage-BGQti5JM.mjs +0 -115
  951. package/dist/PodcastInlineList-WvkPSh1V.mjs +0 -117
  952. package/dist/PodcastInlineListTemplate-D1bIqp9s.mjs +0 -180
  953. package/dist/PodcastIsPlaying-mWJppqAl.mjs +0 -17
  954. package/dist/PodcastItem-CYPwjD38.mjs +0 -158
  955. package/dist/PodcastList-BfqxVGag.mjs +0 -184
  956. package/dist/PodcastList-D3jE4KxK.mjs +0 -113
  957. package/dist/PodcastPage-GTzk5mUv.mjs +0 -409
  958. package/dist/PodcastPlannedSpinner-DcDDays8.mjs +0 -12
  959. package/dist/PodcastPlayBar-YJnOuGTK.mjs +0 -39
  960. package/dist/PodcastPlayBasicButton-BYpnGOO1.mjs +0 -44
  961. package/dist/PodcastPlayButton-CJ8BRg-T.mjs +0 -118
  962. package/dist/PodcastPlaylistInlineList-CmgnXWqI.mjs +0 -63
  963. package/dist/PodcastPresentationList-BBbhrj5M.mjs +0 -130
  964. package/dist/PodcastProgressBar-DDmGqHRZ.mjs +0 -66
  965. package/dist/PodcastRawTranscript-uMquvyIx.mjs +0 -100
  966. package/dist/PodcastRubriqueList-CMcls_jK.mjs +0 -46
  967. package/dist/PodcastSeasonInfo-DDGSqj8M.mjs +0 -28
  968. package/dist/PodcastSwiperList-CR4Daki7.mjs +0 -164
  969. package/dist/PodcastmakerHeader-Blma5tOE.mjs +0 -33
  970. package/dist/PodcastsPage-BZfbH613.mjs +0 -123
  971. package/dist/PresentationLayout-LcZqb8bn.mjs +0 -62
  972. package/dist/ProductorSearch-Cyo0OOte.mjs +0 -91
  973. package/dist/ProgressBar-h-6hD6C6.mjs +0 -112
  974. package/dist/QrCode-CB7uCURG.mjs +0 -105
  975. package/dist/QrCodeModal-uLXUjfFk.mjs +0 -43
  976. package/dist/RadioCurrently-CxTpzc3O.mjs +0 -57
  977. package/dist/RadioHistory-DaY_apJL.mjs +0 -89
  978. package/dist/RadioImage-CGdu0tqS.mjs +0 -46
  979. package/dist/RadioList-Dwjy8BJK.mjs +0 -70
  980. package/dist/RadioPage-B0cZlWcd.mjs +0 -72
  981. package/dist/RadioPlanning-yTAzd4fk.mjs +0 -183
  982. package/dist/RadioProgressBar-DLRlsyeG.mjs +0 -31
  983. package/dist/RadiolineIcon-CxHZGhfr.mjs +0 -40
  984. package/dist/RecaptchaModal-eBNvLZYg.mjs +0 -95
  985. package/dist/ReportAbuseModal-0i7fa_Kb.mjs +0 -92
  986. package/dist/RightsIndicator-BFKSa05U.mjs +0 -58
  987. package/dist/RightsWrapper-BRWuAx2F.mjs +0 -104
  988. package/dist/RubriqueChoice-DWvVVaMg.mjs +0 -101
  989. package/dist/RubriqueChooser-B7wvJeQc.mjs +0 -165
  990. package/dist/RubriqueFilter-BLW_L9Wm.mjs +0 -119
  991. package/dist/RubriqueList-DKBuYW37.mjs +0 -117
  992. package/dist/RubriquePage-D4b-tHSI.mjs +0 -71
  993. package/dist/SearchOrder-D_dAhj9M.mjs +0 -62
  994. package/dist/SearchPage-DiEabf9d.mjs +0 -38
  995. package/dist/ShareAnonymous-DnvGBSfx.mjs +0 -189
  996. package/dist/ShareModalPlayer-CXYjEN8k.mjs +0 -87
  997. package/dist/ShareNewsletter-C6U_Jjnm.mjs +0 -143
  998. package/dist/SharePlayer-B7YLKRAB.mjs +0 -210
  999. package/dist/SharePlayerColors-BpdifsHh.mjs +0 -49
  1000. package/dist/SharePlayerRadio-Dy6UuwWM.mjs +0 -66
  1001. package/dist/SharePlayerTypes-CeecVrvy.mjs +0 -148
  1002. package/dist/ShareSocialsButtons-ty0wa4Hj.mjs +0 -100
  1003. package/dist/SimpleLayout-BgflH0r5.mjs +0 -22
  1004. package/dist/SmartLinkPage-BmXB-5t-.mjs +0 -131
  1005. package/dist/SnackBar-BL-mLRun.mjs +0 -128
  1006. package/dist/SubscribeButtons-Bqc3UtOf.mjs +0 -120
  1007. package/dist/SwiperList-nkm8nHZC.mjs +0 -119
  1008. package/dist/TagList-BcJZfwL5.mjs +0 -80
  1009. package/dist/TagPage-DFUbxGht.mjs +0 -79
  1010. package/dist/TopBar-1YG7Pruy.mjs +0 -260
  1011. package/dist/TuninIcon-DENNxlP8.mjs +0 -39
  1012. package/dist/UserButtonContent-CKxL8aX3.mjs +0 -125
  1013. package/dist/VastStore-8IiEgtQW.mjs +0 -71
  1014. package/dist/VideoModuleBox-B54AebXt.mjs +0 -58
  1015. package/dist/VideoPage-BxYH2SFo.mjs +0 -148
  1016. package/dist/XIcon-DNBT2Zgf.mjs +0 -39
  1017. package/dist/_plugin-vue_export-helper-B3ysoDQm.mjs +0 -8
  1018. package/dist/buttons-CWMRsA_g.mjs +0 -79
  1019. package/dist/classicApi-DR5O2l0-.mjs +0 -1183
  1020. package/dist/config-DMjLBcZ2.mjs +0 -7
  1021. package/dist/cookiesHelper-BQ3M1-Xr.mjs +0 -20
  1022. package/dist/displayHelper-DQtoqc_6.mjs +0 -11
  1023. package/dist/domHelper-BPw2kGCL.mjs +0 -12
  1024. package/dist/downloadHelper-DqI60vwY.mjs +0 -23
  1025. package/dist/educationen-KT401RLo.mjs +0 -16
  1026. package/dist/educationfr-BIafOUp-.mjs +0 -4
  1027. package/dist/emission-CQ1VuxRc.mjs +0 -22
  1028. package/dist/icons-aOUoelo6.mjs +0 -11
  1029. package/dist/keys-CV5SBM1i.mjs +0 -4
  1030. package/dist/localisation-CBnt682X.mjs +0 -9
  1031. package/dist/logo_saooti_play_black-Doe3es2H.mjs +0 -4
  1032. package/dist/messages-DxUrH00s.mjs +0 -2677
  1033. package/dist/organisation-JgfYj1Jp.mjs +0 -17
  1034. package/dist/ouest_france_logo-9dPaEPNA.mjs +0 -4
  1035. package/dist/podcast-BoNHyuLe.mjs +0 -53
  1036. package/dist/rolldown-runtime-Dy4uBu1J.mjs +0 -11
  1037. package/dist/stringHelper-8Cu4x0-T.mjs +0 -13
  1038. package/dist/types-BMNwRfo9.mjs +0 -8
  1039. package/dist/useAdvancedParamInit-DIw4V0uk.mjs +0 -111
  1040. package/dist/useCountdown-vXzlLAgF.mjs +0 -32
  1041. package/dist/useDayjs-CCvXE-aF.mjs +0 -28
  1042. package/dist/useErrorHandler-CNqmf6tv.mjs +0 -12
  1043. package/dist/useImageProxy-C3duE5Uj.mjs +0 -16
  1044. package/dist/useOrgaComputed-ZwTfEXF-.mjs +0 -16
  1045. package/dist/usePlayerLogicProgress--FrjZ3zY.mjs +0 -68
  1046. package/dist/usePodcastView-EmNdC0A1.mjs +0 -31
  1047. package/dist/usePresentationItem-PCEJ9BHI.mjs +0 -100
  1048. package/dist/useResizePhone-4hSkK5pa.mjs +0 -28
  1049. package/dist/useRights-D4GJoff9.mjs +0 -221
  1050. package/dist/useRouteUpdateParams-DJLm3IAI.mjs +0 -55
  1051. package/dist/useRubriquesFilterComputed-BKI04l9G.mjs +0 -11
  1052. package/dist/useRubriquesFilterParam-C5AZlQOX.mjs +0 -32
  1053. package/dist/useSeasonsManagement-DwbmJywJ.mjs +0 -24
  1054. package/dist/useSelenium-DAM6EF3J.mjs +0 -9
  1055. package/dist/useSeoTitleUrl-UfPXDCPa.mjs +0 -25
  1056. package/dist/useSharePath-D9G8Jdlb.mjs +0 -40
  1057. package/dist/useSharePlatforms-DWJtsHHs.mjs +0 -322
  1058. package/dist/useSimplePageParam-DJBHk-Yr.mjs +0 -39
  1059. package/dist/useTagOf-Btweq3v2.mjs +0 -17
  1060. package/dist/useTranslation-xTuUuIiz.mjs +0 -139
  1061. package/dist/usefetchRadioData-SnCkZcGt.mjs +0 -48
  1062. package/dist/youtubeVideoHelper-Cdlokujb.mjs +0 -14
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoPage-B-lgTFnX.mjs","names":[],"sources":["../src/components/pages/VideoPage.vue","../src/components/pages/VideoPage.vue"],"sourcesContent":["<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error\">\n <router-link\n :to=\"{\n name: 'podcast',\n params: { podcastId: podcastId },\n }\"\n class=\"mt-3 mb-3 w-fit-content d-flex align-items-center\"\n :title=\"t('Episode name page', { name: podcast?.title })\"\n >\n <ChevronLeftIcon />{{ t(\"Episode page\") }}\n </router-link>\n <div\n v-if=\"videoId || isLiveReadyToRecord\"\n class=\"d-flex video-page-container\"\n >\n <div class=\"w-70-responsive\">\n <template v-if=\"isLiveReadyToRecord\">\n <PlayerVideoHls\n v-if=\"recordingLive\"\n :hls-url=\"hlsVideoUrl\"\n :is-secured=\"isSecured\"\n :responsive=\"true\"\n />\n <div\n v-if=\"isCounter || overrideText\"\n class=\"d-flex flex-column align-items-center flex-grow-1 blue-bg p-3\"\n >\n <CountdownOctopus\n :time-remaining=\"timeRemaining\"\n :override-text=\"overrideText\"\n />\n </div>\n </template>\n <PlayerVideoDigiteka\n v-else\n :video-id=\"videoId\"\n :podcast-id=\"podcastId\"\n responsive\n />\n </div>\n <div class=\"w-30-responsive info-video-container\">\n <div class=\"d-flex flex-column flex-grow-1 w-100\">\n <ClassicNav\n v-if=\"tabs.length\"\n v-model:active-tab=\"activeTab\"\n :tab-number=\"tabs.length\"\n :transparent=\"true\"\n >\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <VideoModuleBox\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n />\n </template>\n <template #tab1>\n <section>\n <CommentSection\n :podcast=\"podcast\"\n class=\"module-box-transparent\"\n />\n </section>\n </template>\n </ClassicNav>\n <VideoModuleBox\n v-else\n class=\"p-2 video-module-box\"\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n :duration-iso=\"durationIso\"\n />\n </div>\n </div>\n </div>\n </template>\n <div\n v-if=\"!error && !videoId && !isLiveReadyToRecord\"\n class=\"text-center text-danger h3\"\n >\n {{ t(\"The episode does not have an associated video\") }}\n </div>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronLeftIcon from \"vue-material-design-icons/ChevronLeft.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport ClassicNav from \"../misc/ClassicNav.vue\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {usePodcastView} from \"../composable/podcasts/usePodcastView\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useApiStore } from \"../../stores/ApiStore\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport { usePlayerStore } from \"../../stores/PlayerStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { useErrorHandler } from \"../composable/useErrorHandler\";\nconst PlayerVideoDigiteka = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoDigiteka.vue\"),\n);\nconst PlayerVideoHls = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoHls.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst VideoModuleBox = defineAsyncComponent(\n () => import(\"../display/podcasts/VideoModuleBox.vue\"),\n);\nconst CountdownOctopus = defineAsyncComponent(\n () => import(\"../display/live/CountdownOctopus.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcastId:{ default: 0, type: Number },\n})\n\n//Data \nconst loaded = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst error = ref(false);\nconst activeTab = ref(0);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst podcastConference: Ref<Conference | undefined> = ref(undefined);\nconst intervalStatusConference: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n date,\n duration,\n durationIso,\n editRight\n} = usePodcastView(podcast, podcastConference);\nconst {handle403} = useErrorHandler();\nconst { updatePathParams } = useSeoTitleUrl();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst generalStore = useGeneralStore();\nconst playerStore = usePlayerStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\nconst {t} = useI18n();\nconst route = useRoute();\n\n//Computed\nconst videoId = computed(() => podcast.value?.video?.videoId);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n podcast.value,\n undefined !== authStore.authOrgaId,\n );\n});\nconst tabs = computed(() => {\n if (canPostComment.value) {\n return [t(\"Information\"), t(\"Comments\")];\n }\n return [];\n});\nconst recordingLive = computed(() => {\n return (\n undefined !== podcastConference.value &&\n -1 !== podcastConference.value.conferenceId &&\n (\"RECORDING\" === podcastConference.value.status ||\n \"PENDING\" === podcastConference.value.status)\n );\n});\nconst hlsVideoUrl = computed(() => {\n if (!recordingLive.value || !podcastConference.value) {\n return \"\";\n }\n return `${apiStore.hlsUrl}live/video_${podcastConference.value.hlsIdentifier}/index.m3u8`;\n});\nconst isSecured = computed(() => {\n return \"SECURED\" === podcast.value?.organisation?.privacy;\n});\nconst overrideText = computed(() => {\n if (\"PUBLISHING\" !== podcastConference.value?.status) {\n return;\n }\n return t(\"In the process of being published\");\n});\n\n//Watch\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value) {\n return;\n }\n commentStore.initCommentUser();\n configPodcast.value = await commentStore.getCommentsConfig(podcast.value);\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n clearInterval(intervalStatusConference.value as unknown as number);\n})\n\n//Methods\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n podcast.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n document.title = podcast.value.title + \" - \"+generalStore.metaTitle;\n const orga = podcast.value.organisation;\n const privateAccess =\n \"PUBLIC\" !== orga.privacy &&\n filterStore.filterOrgaId !== orga.id &&\n route.query.productor !== orga.id;\n const notValid =\n (!podcast.value.availability.visibility ||\n ![\"READY_TO_RECORD\", \"READY\", \"PROCESSING\"].includes(\n podcast.value.processingStatus ?? \"\",\n ) ||\n !podcast.value.valid) &&\n !editRight.value;\n if (privateAccess || notValid) {\n error.value = true;\n } else {\n updatePathParams(podcast.value.title);\n if (\n podcast.value.conferenceId &&\n \"READY\" !== podcast.value.processingStatus\n ) {\n await fetchConferenceStatus();\n intervalStatusConference.value = setInterval(() => { fetchConferenceStatus(); }, 3000);\n playerStore.playerPlay(\n {\n ...podcast.value,\n ...{ \n conferenceId: podcast.value.conferenceId,\n hlsIdentifier: podcastConference.value?.hlsIdentifier,\n },\n },\n true,\n );\n }\n }\n } catch (errorCatched) {\n handle403(errorCatched as AxiosError);\n error.value = true;\n }\n loaded.value = true;\n}\n\nasync function fetchConferenceStatus() {\n if (!podcast.value?.conferenceId) {\n return;\n }\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value.conferenceId,\n });\n podcastConference.value = {\n ...data,\n ...{\n conferenceId: podcast.value.conferenceId,\n title: \"\",\n },\n };\n if (\"DEBRIEFING\" === data.status) {\n clearInterval(intervalStatusConference.value as unknown as number);\n }\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .video-page-container {\n align-items: stretch;\n flex-grow: 1;\n background: var(--octopus-primary-really-transparent);\n border-radius: var(--octopus-border-radius);\n box-shadow: 0 0 10px 1px var(--octopus-primary-transparent);\n\n .info-video-container {\n display: flex;\n flex-direction: column;\n\n .octopus-tab-pane,\n .video-module-box {\n height: 0;\n overflow-y: auto;\n\n @media (width <= 960px) {\n height: inherit;\n }\n }\n\n .classic-nav-tab-container {\n flex-direction: column;\n }\n }\n\n .module-box.module-box-transparent {\n margin: 0;\n background: transparent;\n border: 0;\n padding: 0;\n }\n\n .w-70-responsive {\n width: 70%;\n aspect-ratio: 16/9;\n }\n\n .w-30-responsive {\n width: 30%;\n }\n\n .w-70-responsive,\n .w-30-responsive {\n display: flex;\n align-items: stretch;\n flex-grow: 1;\n\n @media (width <= 960px) {\n width: 100%;\n padding: 0 !important;\n }\n }\n\n .really-light-secondary-bg {\n background: white;\n }\n}\n</style>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error\">\n <router-link\n :to=\"{\n name: 'podcast',\n params: { podcastId: podcastId },\n }\"\n class=\"mt-3 mb-3 w-fit-content d-flex align-items-center\"\n :title=\"t('Episode name page', { name: podcast?.title })\"\n >\n <ChevronLeftIcon />{{ t(\"Episode page\") }}\n </router-link>\n <div\n v-if=\"videoId || isLiveReadyToRecord\"\n class=\"d-flex video-page-container\"\n >\n <div class=\"w-70-responsive\">\n <template v-if=\"isLiveReadyToRecord\">\n <PlayerVideoHls\n v-if=\"recordingLive\"\n :hls-url=\"hlsVideoUrl\"\n :is-secured=\"isSecured\"\n :responsive=\"true\"\n />\n <div\n v-if=\"isCounter || overrideText\"\n class=\"d-flex flex-column align-items-center flex-grow-1 blue-bg p-3\"\n >\n <CountdownOctopus\n :time-remaining=\"timeRemaining\"\n :override-text=\"overrideText\"\n />\n </div>\n </template>\n <PlayerVideoDigiteka\n v-else\n :video-id=\"videoId\"\n :podcast-id=\"podcastId\"\n responsive\n />\n </div>\n <div class=\"w-30-responsive info-video-container\">\n <div class=\"d-flex flex-column flex-grow-1 w-100\">\n <ClassicNav\n v-if=\"tabs.length\"\n v-model:active-tab=\"activeTab\"\n :tab-number=\"tabs.length\"\n :transparent=\"true\"\n >\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <VideoModuleBox\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n />\n </template>\n <template #tab1>\n <section>\n <CommentSection\n :podcast=\"podcast\"\n class=\"module-box-transparent\"\n />\n </section>\n </template>\n </ClassicNav>\n <VideoModuleBox\n v-else\n class=\"p-2 video-module-box\"\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n :duration-iso=\"durationIso\"\n />\n </div>\n </div>\n </div>\n </template>\n <div\n v-if=\"!error && !videoId && !isLiveReadyToRecord\"\n class=\"text-center text-danger h3\"\n >\n {{ t(\"The episode does not have an associated video\") }}\n </div>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronLeftIcon from \"vue-material-design-icons/ChevronLeft.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport ClassicNav from \"../misc/ClassicNav.vue\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {usePodcastView} from \"../composable/podcasts/usePodcastView\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useApiStore } from \"../../stores/ApiStore\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport { usePlayerStore } from \"../../stores/PlayerStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { useErrorHandler } from \"../composable/useErrorHandler\";\nconst PlayerVideoDigiteka = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoDigiteka.vue\"),\n);\nconst PlayerVideoHls = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoHls.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst VideoModuleBox = defineAsyncComponent(\n () => import(\"../display/podcasts/VideoModuleBox.vue\"),\n);\nconst CountdownOctopus = defineAsyncComponent(\n () => import(\"../display/live/CountdownOctopus.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcastId:{ default: 0, type: Number },\n})\n\n//Data \nconst loaded = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst error = ref(false);\nconst activeTab = ref(0);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst podcastConference: Ref<Conference | undefined> = ref(undefined);\nconst intervalStatusConference: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n date,\n duration,\n durationIso,\n editRight\n} = usePodcastView(podcast, podcastConference);\nconst {handle403} = useErrorHandler();\nconst { updatePathParams } = useSeoTitleUrl();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst generalStore = useGeneralStore();\nconst playerStore = usePlayerStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\nconst {t} = useI18n();\nconst route = useRoute();\n\n//Computed\nconst videoId = computed(() => podcast.value?.video?.videoId);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n podcast.value,\n undefined !== authStore.authOrgaId,\n );\n});\nconst tabs = computed(() => {\n if (canPostComment.value) {\n return [t(\"Information\"), t(\"Comments\")];\n }\n return [];\n});\nconst recordingLive = computed(() => {\n return (\n undefined !== podcastConference.value &&\n -1 !== podcastConference.value.conferenceId &&\n (\"RECORDING\" === podcastConference.value.status ||\n \"PENDING\" === podcastConference.value.status)\n );\n});\nconst hlsVideoUrl = computed(() => {\n if (!recordingLive.value || !podcastConference.value) {\n return \"\";\n }\n return `${apiStore.hlsUrl}live/video_${podcastConference.value.hlsIdentifier}/index.m3u8`;\n});\nconst isSecured = computed(() => {\n return \"SECURED\" === podcast.value?.organisation?.privacy;\n});\nconst overrideText = computed(() => {\n if (\"PUBLISHING\" !== podcastConference.value?.status) {\n return;\n }\n return t(\"In the process of being published\");\n});\n\n//Watch\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value) {\n return;\n }\n commentStore.initCommentUser();\n configPodcast.value = await commentStore.getCommentsConfig(podcast.value);\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n clearInterval(intervalStatusConference.value as unknown as number);\n})\n\n//Methods\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n podcast.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n document.title = podcast.value.title + \" - \"+generalStore.metaTitle;\n const orga = podcast.value.organisation;\n const privateAccess =\n \"PUBLIC\" !== orga.privacy &&\n filterStore.filterOrgaId !== orga.id &&\n route.query.productor !== orga.id;\n const notValid =\n (!podcast.value.availability.visibility ||\n ![\"READY_TO_RECORD\", \"READY\", \"PROCESSING\"].includes(\n podcast.value.processingStatus ?? \"\",\n ) ||\n !podcast.value.valid) &&\n !editRight.value;\n if (privateAccess || notValid) {\n error.value = true;\n } else {\n updatePathParams(podcast.value.title);\n if (\n podcast.value.conferenceId &&\n \"READY\" !== podcast.value.processingStatus\n ) {\n await fetchConferenceStatus();\n intervalStatusConference.value = setInterval(() => { fetchConferenceStatus(); }, 3000);\n playerStore.playerPlay(\n {\n ...podcast.value,\n ...{ \n conferenceId: podcast.value.conferenceId,\n hlsIdentifier: podcastConference.value?.hlsIdentifier,\n },\n },\n true,\n );\n }\n }\n } catch (errorCatched) {\n handle403(errorCatched as AxiosError);\n error.value = true;\n }\n loaded.value = true;\n}\n\nasync function fetchConferenceStatus() {\n if (!podcast.value?.conferenceId) {\n return;\n }\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value.conferenceId,\n });\n podcastConference.value = {\n ...data,\n ...{\n conferenceId: podcast.value.conferenceId,\n title: \"\",\n },\n };\n if (\"DEBRIEFING\" === data.status) {\n clearInterval(intervalStatusConference.value as unknown as number);\n }\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .video-page-container {\n align-items: stretch;\n flex-grow: 1;\n background: var(--octopus-primary-really-transparent);\n border-radius: var(--octopus-border-radius);\n box-shadow: 0 0 10px 1px var(--octopus-primary-transparent);\n\n .info-video-container {\n display: flex;\n flex-direction: column;\n\n .octopus-tab-pane,\n .video-module-box {\n height: 0;\n overflow-y: auto;\n\n @media (width <= 960px) {\n height: inherit;\n }\n }\n\n .classic-nav-tab-container {\n flex-direction: column;\n }\n }\n\n .module-box.module-box-transparent {\n margin: 0;\n background: transparent;\n border: 0;\n padding: 0;\n }\n\n .w-70-responsive {\n width: 70%;\n aspect-ratio: 16/9;\n }\n\n .w-30-responsive {\n width: 30%;\n }\n\n .w-70-responsive,\n .w-30-responsive {\n display: flex;\n align-items: stretch;\n flex-grow: 1;\n\n @media (width <= 960px) {\n width: 100%;\n padding: 0 !important;\n }\n }\n\n .really-light-secondary-bg {\n background: white;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ import { t as ClassicLoading_default } from "./ClassicLoading-DZLIyuUd.mjs";
2
+ import { i as useAuthStore, r as useFilterStore, t as classicApi_default, w as useApiStore } from "./classicApi-BKNiWOG4.mjs";
3
+ import { n as usePlayerStore } from "./PlayerStore-DB5dkc3c.mjs";
4
+ import { t as useGeneralStore } from "./GeneralStore-CUlq_NjO.mjs";
5
+ import { t as useErrorHandler } from "./useErrorHandler-DNz9da5N.mjs";
6
+ import { t as useSeoTitleUrl } from "./useSeoTitleUrl-CrM1YzAc.mjs";
7
+ import { t as useCommentStore } from "./CommentStore-BjQ0AGHa.mjs";
8
+ import { t as ClassicNav_default } from "./ClassicNav-P2h4OFEY.mjs";
9
+ import { t as usePodcastView } from "./usePodcastView-DR83HM0j.mjs";
10
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineAsyncComponent, defineComponent, onBeforeUnmount, openBlock, ref, renderList, resolveComponent, toDisplayString, unref, watch, withCtx } from "vue";
11
+ import { useI18n } from "vue-i18n";
12
+ import { useRoute } from "vue-router";
13
+ import ChevronLeftIcon from "vue-material-design-icons/ChevronLeft.vue";
14
+ //#region src/components/pages/VideoPage.vue?vue&type=script&setup=true&lang.ts
15
+ var _hoisted_1 = { class: "page-box" };
16
+ var _hoisted_2 = {
17
+ key: 0,
18
+ class: "d-flex video-page-container"
19
+ };
20
+ var _hoisted_3 = { class: "w-70-responsive" };
21
+ var _hoisted_4 = {
22
+ key: 1,
23
+ class: "d-flex flex-column align-items-center flex-grow-1 blue-bg p-3"
24
+ };
25
+ var _hoisted_5 = { class: "w-30-responsive info-video-container" };
26
+ var _hoisted_6 = { class: "d-flex flex-column flex-grow-1 w-100" };
27
+ var _hoisted_7 = {
28
+ key: 1,
29
+ class: "text-center text-danger h3"
30
+ };
31
+ //#endregion
32
+ //#region src/components/pages/VideoPage.vue
33
+ var VideoPage_default = /* @__PURE__ */ defineComponent({
34
+ __name: "VideoPage",
35
+ props: { podcastId: {
36
+ default: 0,
37
+ type: Number
38
+ } },
39
+ setup(__props) {
40
+ const PlayerVideoDigiteka = defineAsyncComponent(() => import("./PlayerVideoDigiteka-CiTtloWK.mjs"));
41
+ const PlayerVideoHls = defineAsyncComponent(() => import("./PlayerVideoHls-DjAlSV39.mjs"));
42
+ const CommentSection = defineAsyncComponent(() => import("./CommentSection-Bz6q4N6d.mjs"));
43
+ const VideoModuleBox = defineAsyncComponent(() => import("./VideoModuleBox-Cl6YoznO.mjs"));
44
+ const CountdownOctopus = defineAsyncComponent(() => import("./CountdownOctopus-CR9zvBmW.mjs"));
45
+ const props = __props;
46
+ const loaded = ref(false);
47
+ const podcast = ref(void 0);
48
+ const error = ref(false);
49
+ const activeTab = ref(0);
50
+ const configPodcast = ref(void 0);
51
+ const podcastConference = ref(void 0);
52
+ const intervalStatusConference = ref(void 0);
53
+ const { isLiveReadyToRecord, isCounter, timeRemaining, date, duration, durationIso, editRight } = usePodcastView(podcast, podcastConference);
54
+ const { handle403 } = useErrorHandler();
55
+ const { updatePathParams } = useSeoTitleUrl();
56
+ const authStore = useAuthStore();
57
+ const apiStore = useApiStore();
58
+ const generalStore = useGeneralStore();
59
+ const playerStore = usePlayerStore();
60
+ const filterStore = useFilterStore();
61
+ const commentStore = useCommentStore();
62
+ const { t } = useI18n();
63
+ const route = useRoute();
64
+ const videoId = computed(() => podcast.value?.video?.videoId);
65
+ const canPostComment = computed(() => {
66
+ return commentStore.getCanPostComment(configPodcast.value, podcast.value, void 0 !== authStore.authOrgaId);
67
+ });
68
+ const tabs = computed(() => {
69
+ if (canPostComment.value) return [t("Information"), t("Comments")];
70
+ return [];
71
+ });
72
+ const recordingLive = computed(() => {
73
+ return void 0 !== podcastConference.value && -1 !== podcastConference.value.conferenceId && ("RECORDING" === podcastConference.value.status || "PENDING" === podcastConference.value.status);
74
+ });
75
+ const hlsVideoUrl = computed(() => {
76
+ if (!recordingLive.value || !podcastConference.value) return "";
77
+ return `${apiStore.hlsUrl}live/video_${podcastConference.value.hlsIdentifier}/index.m3u8`;
78
+ });
79
+ const isSecured = computed(() => {
80
+ return "SECURED" === podcast.value?.organisation?.privacy;
81
+ });
82
+ const overrideText = computed(() => {
83
+ if ("PUBLISHING" !== podcastConference.value?.status) return;
84
+ return t("In the process of being published");
85
+ });
86
+ watch(() => props.podcastId, async () => {
87
+ await getPodcastDetails();
88
+ if (!podcast.value) return;
89
+ commentStore.initCommentUser();
90
+ configPodcast.value = await commentStore.getCommentsConfig(podcast.value);
91
+ }, { immediate: true });
92
+ onBeforeUnmount(() => {
93
+ clearInterval(intervalStatusConference.value);
94
+ });
95
+ async function getPodcastDetails() {
96
+ loaded.value = false;
97
+ error.value = false;
98
+ try {
99
+ podcast.value = await classicApi_default.fetchData({
100
+ api: 0,
101
+ path: "podcast/" + props.podcastId
102
+ });
103
+ document.title = podcast.value.title + " - " + generalStore.metaTitle;
104
+ const orga = podcast.value.organisation;
105
+ const privateAccess = "PUBLIC" !== orga.privacy && filterStore.filterOrgaId !== orga.id && route.query.productor !== orga.id;
106
+ const notValid = (!podcast.value.availability.visibility || ![
107
+ "READY_TO_RECORD",
108
+ "READY",
109
+ "PROCESSING"
110
+ ].includes(podcast.value.processingStatus ?? "") || !podcast.value.valid) && !editRight.value;
111
+ if (privateAccess || notValid) error.value = true;
112
+ else {
113
+ updatePathParams(podcast.value.title);
114
+ if (podcast.value.conferenceId && "READY" !== podcast.value.processingStatus) {
115
+ await fetchConferenceStatus();
116
+ intervalStatusConference.value = setInterval(() => {
117
+ fetchConferenceStatus();
118
+ }, 3e3);
119
+ playerStore.playerPlay({
120
+ ...podcast.value,
121
+ conferenceId: podcast.value.conferenceId,
122
+ hlsIdentifier: podcastConference.value?.hlsIdentifier
123
+ }, true);
124
+ }
125
+ }
126
+ } catch (errorCatched) {
127
+ handle403(errorCatched);
128
+ error.value = true;
129
+ }
130
+ loaded.value = true;
131
+ }
132
+ async function fetchConferenceStatus() {
133
+ if (!podcast.value?.conferenceId) return;
134
+ const data = await classicApi_default.fetchData({
135
+ api: 9,
136
+ path: "conference/info/" + podcast.value.conferenceId
137
+ });
138
+ podcastConference.value = {
139
+ ...data,
140
+ conferenceId: podcast.value.conferenceId,
141
+ title: ""
142
+ };
143
+ if ("DEBRIEFING" === data.status) clearInterval(intervalStatusConference.value);
144
+ }
145
+ return (_ctx, _cache) => {
146
+ const _component_router_link = resolveComponent("router-link");
147
+ return openBlock(), createElementBlock("section", _hoisted_1, [
148
+ loaded.value && !error.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createVNode(_component_router_link, {
149
+ to: {
150
+ name: "podcast",
151
+ params: { podcastId: __props.podcastId }
152
+ },
153
+ class: "mt-3 mb-3 w-fit-content d-flex align-items-center",
154
+ title: unref(t)("Episode name page", { name: podcast.value?.title })
155
+ }, {
156
+ default: withCtx(() => [createVNode(ChevronLeftIcon), createTextVNode(toDisplayString(unref(t)("Episode page")), 1)]),
157
+ _: 1
158
+ }, 8, ["to", "title"]), videoId.value || unref(isLiveReadyToRecord) ? (openBlock(), createElementBlock("div", _hoisted_2, [createElementVNode("div", _hoisted_3, [unref(isLiveReadyToRecord) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [recordingLive.value ? (openBlock(), createBlock(unref(PlayerVideoHls), {
159
+ key: 0,
160
+ "hls-url": hlsVideoUrl.value,
161
+ "is-secured": isSecured.value,
162
+ responsive: true
163
+ }, null, 8, ["hls-url", "is-secured"])) : createCommentVNode("", true), unref(isCounter) || overrideText.value ? (openBlock(), createElementBlock("div", _hoisted_4, [createVNode(unref(CountdownOctopus), {
164
+ "time-remaining": unref(timeRemaining),
165
+ "override-text": overrideText.value
166
+ }, null, 8, ["time-remaining", "override-text"])])) : createCommentVNode("", true)], 64)) : (openBlock(), createBlock(unref(PlayerVideoDigiteka), {
167
+ key: 1,
168
+ "video-id": videoId.value,
169
+ "podcast-id": __props.podcastId,
170
+ responsive: ""
171
+ }, null, 8, ["video-id", "podcast-id"]))]), createElementVNode("div", _hoisted_5, [createElementVNode("div", _hoisted_6, [tabs.value.length ? (openBlock(), createBlock(ClassicNav_default, {
172
+ key: 0,
173
+ "active-tab": activeTab.value,
174
+ "onUpdate:activeTab": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
175
+ "tab-number": tabs.value.length,
176
+ transparent: true
177
+ }, createSlots({
178
+ tab0: withCtx(() => [createVNode(unref(VideoModuleBox), {
179
+ podcast: podcast.value,
180
+ date: unref(date),
181
+ duration: unref(duration)
182
+ }, null, 8, [
183
+ "podcast",
184
+ "date",
185
+ "duration"
186
+ ])]),
187
+ tab1: withCtx(() => [createElementVNode("section", null, [createVNode(unref(CommentSection), {
188
+ podcast: podcast.value,
189
+ class: "module-box-transparent"
190
+ }, null, 8, ["podcast"])])]),
191
+ _: 2
192
+ }, [renderList(tabs.value, (tab, index) => {
193
+ return {
194
+ name: index,
195
+ fn: withCtx(() => [createTextVNode(toDisplayString(tab), 1)])
196
+ };
197
+ })]), 1032, ["active-tab", "tab-number"])) : (openBlock(), createBlock(unref(VideoModuleBox), {
198
+ key: 1,
199
+ class: "p-2 video-module-box",
200
+ podcast: podcast.value,
201
+ date: unref(date),
202
+ duration: unref(duration),
203
+ "duration-iso": unref(durationIso)
204
+ }, null, 8, [
205
+ "podcast",
206
+ "date",
207
+ "duration",
208
+ "duration-iso"
209
+ ]))])])])) : createCommentVNode("", true)], 64)) : createCommentVNode("", true),
210
+ !error.value && !videoId.value && !unref(isLiveReadyToRecord) ? (openBlock(), createElementBlock("div", _hoisted_7, toDisplayString(unref(t)("The episode does not have an associated video")), 1)) : createCommentVNode("", true),
211
+ createVNode(ClassicLoading_default, {
212
+ "loading-text": !loaded.value ? unref(t)("Loading content ...") : void 0,
213
+ "error-text": error.value ? unref(t)(`This episode is not available for (re)listening`) : void 0
214
+ }, null, 8, ["loading-text", "error-text"])
215
+ ]);
216
+ };
217
+ }
218
+ });
219
+ //#endregion
220
+ export { VideoPage_default as default };
221
+
222
+ //# sourceMappingURL=VideoPage-B5Tp2PMs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoPage-B5Tp2PMs.mjs","names":[],"sources":["../src/components/pages/VideoPage.vue","../src/components/pages/VideoPage.vue"],"sourcesContent":["<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error\">\n <router-link\n :to=\"{\n name: 'podcast',\n params: { podcastId: podcastId },\n }\"\n class=\"mt-3 mb-3 w-fit-content d-flex align-items-center\"\n :title=\"t('Episode name page', { name: podcast?.title })\"\n >\n <ChevronLeftIcon />{{ t(\"Episode page\") }}\n </router-link>\n <div\n v-if=\"videoId || isLiveReadyToRecord\"\n class=\"d-flex video-page-container\"\n >\n <div class=\"w-70-responsive\">\n <template v-if=\"isLiveReadyToRecord\">\n <PlayerVideoHls\n v-if=\"recordingLive\"\n :hls-url=\"hlsVideoUrl\"\n :is-secured=\"isSecured\"\n :responsive=\"true\"\n />\n <div\n v-if=\"isCounter || overrideText\"\n class=\"d-flex flex-column align-items-center flex-grow-1 blue-bg p-3\"\n >\n <CountdownOctopus\n :time-remaining=\"timeRemaining\"\n :override-text=\"overrideText\"\n />\n </div>\n </template>\n <PlayerVideoDigiteka\n v-else\n :video-id=\"videoId\"\n :podcast-id=\"podcastId\"\n responsive\n />\n </div>\n <div class=\"w-30-responsive info-video-container\">\n <div class=\"d-flex flex-column flex-grow-1 w-100\">\n <ClassicNav\n v-if=\"tabs.length\"\n v-model:active-tab=\"activeTab\"\n :tab-number=\"tabs.length\"\n :transparent=\"true\"\n >\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <VideoModuleBox\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n />\n </template>\n <template #tab1>\n <section>\n <CommentSection\n :podcast=\"podcast\"\n class=\"module-box-transparent\"\n />\n </section>\n </template>\n </ClassicNav>\n <VideoModuleBox\n v-else\n class=\"p-2 video-module-box\"\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n :duration-iso=\"durationIso\"\n />\n </div>\n </div>\n </div>\n </template>\n <div\n v-if=\"!error && !videoId && !isLiveReadyToRecord\"\n class=\"text-center text-danger h3\"\n >\n {{ t(\"The episode does not have an associated video\") }}\n </div>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronLeftIcon from \"vue-material-design-icons/ChevronLeft.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport ClassicNav from \"../misc/ClassicNav.vue\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {usePodcastView} from \"../composable/podcasts/usePodcastView\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useApiStore } from \"../../stores/ApiStore\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport { usePlayerStore } from \"../../stores/PlayerStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { useErrorHandler } from \"../composable/useErrorHandler\";\nconst PlayerVideoDigiteka = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoDigiteka.vue\"),\n);\nconst PlayerVideoHls = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoHls.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst VideoModuleBox = defineAsyncComponent(\n () => import(\"../display/podcasts/VideoModuleBox.vue\"),\n);\nconst CountdownOctopus = defineAsyncComponent(\n () => import(\"../display/live/CountdownOctopus.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcastId:{ default: 0, type: Number },\n})\n\n//Data \nconst loaded = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst error = ref(false);\nconst activeTab = ref(0);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst podcastConference: Ref<Conference | undefined> = ref(undefined);\nconst intervalStatusConference: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n date,\n duration,\n durationIso,\n editRight\n} = usePodcastView(podcast, podcastConference);\nconst {handle403} = useErrorHandler();\nconst { updatePathParams } = useSeoTitleUrl();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst generalStore = useGeneralStore();\nconst playerStore = usePlayerStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\nconst {t} = useI18n();\nconst route = useRoute();\n\n//Computed\nconst videoId = computed(() => podcast.value?.video?.videoId);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n podcast.value,\n undefined !== authStore.authOrgaId,\n );\n});\nconst tabs = computed(() => {\n if (canPostComment.value) {\n return [t(\"Information\"), t(\"Comments\")];\n }\n return [];\n});\nconst recordingLive = computed(() => {\n return (\n undefined !== podcastConference.value &&\n -1 !== podcastConference.value.conferenceId &&\n (\"RECORDING\" === podcastConference.value.status ||\n \"PENDING\" === podcastConference.value.status)\n );\n});\nconst hlsVideoUrl = computed(() => {\n if (!recordingLive.value || !podcastConference.value) {\n return \"\";\n }\n return `${apiStore.hlsUrl}live/video_${podcastConference.value.hlsIdentifier}/index.m3u8`;\n});\nconst isSecured = computed(() => {\n return \"SECURED\" === podcast.value?.organisation?.privacy;\n});\nconst overrideText = computed(() => {\n if (\"PUBLISHING\" !== podcastConference.value?.status) {\n return;\n }\n return t(\"In the process of being published\");\n});\n\n//Watch\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value) {\n return;\n }\n commentStore.initCommentUser();\n configPodcast.value = await commentStore.getCommentsConfig(podcast.value);\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n clearInterval(intervalStatusConference.value as unknown as number);\n})\n\n//Methods\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n podcast.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n document.title = podcast.value.title + \" - \"+generalStore.metaTitle;\n const orga = podcast.value.organisation;\n const privateAccess =\n \"PUBLIC\" !== orga.privacy &&\n filterStore.filterOrgaId !== orga.id &&\n route.query.productor !== orga.id;\n const notValid =\n (!podcast.value.availability.visibility ||\n ![\"READY_TO_RECORD\", \"READY\", \"PROCESSING\"].includes(\n podcast.value.processingStatus ?? \"\",\n ) ||\n !podcast.value.valid) &&\n !editRight.value;\n if (privateAccess || notValid) {\n error.value = true;\n } else {\n updatePathParams(podcast.value.title);\n if (\n podcast.value.conferenceId &&\n \"READY\" !== podcast.value.processingStatus\n ) {\n await fetchConferenceStatus();\n intervalStatusConference.value = setInterval(() => { fetchConferenceStatus(); }, 3000);\n playerStore.playerPlay(\n {\n ...podcast.value,\n ...{ \n conferenceId: podcast.value.conferenceId,\n hlsIdentifier: podcastConference.value?.hlsIdentifier,\n },\n },\n true,\n );\n }\n }\n } catch (errorCatched) {\n handle403(errorCatched as AxiosError);\n error.value = true;\n }\n loaded.value = true;\n}\n\nasync function fetchConferenceStatus() {\n if (!podcast.value?.conferenceId) {\n return;\n }\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value.conferenceId,\n });\n podcastConference.value = {\n ...data,\n ...{\n conferenceId: podcast.value.conferenceId,\n title: \"\",\n },\n };\n if (\"DEBRIEFING\" === data.status) {\n clearInterval(intervalStatusConference.value as unknown as number);\n }\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .video-page-container {\n align-items: stretch;\n flex-grow: 1;\n background: var(--octopus-primary-really-transparent);\n border-radius: var(--octopus-border-radius);\n box-shadow: 0 0 10px 1px var(--octopus-primary-transparent);\n\n .info-video-container {\n display: flex;\n flex-direction: column;\n\n .octopus-tab-pane,\n .video-module-box {\n height: 0;\n overflow-y: auto;\n\n @media (width <= 960px) {\n height: inherit;\n }\n }\n\n .classic-nav-tab-container {\n flex-direction: column;\n }\n }\n\n .module-box.module-box-transparent {\n margin: 0;\n background: transparent;\n border: 0;\n padding: 0;\n }\n\n .w-70-responsive {\n width: 70%;\n aspect-ratio: 16/9;\n }\n\n .w-30-responsive {\n width: 30%;\n }\n\n .w-70-responsive,\n .w-30-responsive {\n display: flex;\n align-items: stretch;\n flex-grow: 1;\n\n @media (width <= 960px) {\n width: 100%;\n padding: 0 !important;\n }\n }\n\n .really-light-secondary-bg {\n background: white;\n }\n}\n</style>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error\">\n <router-link\n :to=\"{\n name: 'podcast',\n params: { podcastId: podcastId },\n }\"\n class=\"mt-3 mb-3 w-fit-content d-flex align-items-center\"\n :title=\"t('Episode name page', { name: podcast?.title })\"\n >\n <ChevronLeftIcon />{{ t(\"Episode page\") }}\n </router-link>\n <div\n v-if=\"videoId || isLiveReadyToRecord\"\n class=\"d-flex video-page-container\"\n >\n <div class=\"w-70-responsive\">\n <template v-if=\"isLiveReadyToRecord\">\n <PlayerVideoHls\n v-if=\"recordingLive\"\n :hls-url=\"hlsVideoUrl\"\n :is-secured=\"isSecured\"\n :responsive=\"true\"\n />\n <div\n v-if=\"isCounter || overrideText\"\n class=\"d-flex flex-column align-items-center flex-grow-1 blue-bg p-3\"\n >\n <CountdownOctopus\n :time-remaining=\"timeRemaining\"\n :override-text=\"overrideText\"\n />\n </div>\n </template>\n <PlayerVideoDigiteka\n v-else\n :video-id=\"videoId\"\n :podcast-id=\"podcastId\"\n responsive\n />\n </div>\n <div class=\"w-30-responsive info-video-container\">\n <div class=\"d-flex flex-column flex-grow-1 w-100\">\n <ClassicNav\n v-if=\"tabs.length\"\n v-model:active-tab=\"activeTab\"\n :tab-number=\"tabs.length\"\n :transparent=\"true\"\n >\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <VideoModuleBox\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n />\n </template>\n <template #tab1>\n <section>\n <CommentSection\n :podcast=\"podcast\"\n class=\"module-box-transparent\"\n />\n </section>\n </template>\n </ClassicNav>\n <VideoModuleBox\n v-else\n class=\"p-2 video-module-box\"\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n :duration-iso=\"durationIso\"\n />\n </div>\n </div>\n </div>\n </template>\n <div\n v-if=\"!error && !videoId && !isLiveReadyToRecord\"\n class=\"text-center text-danger h3\"\n >\n {{ t(\"The episode does not have an associated video\") }}\n </div>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronLeftIcon from \"vue-material-design-icons/ChevronLeft.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport ClassicNav from \"../misc/ClassicNav.vue\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {usePodcastView} from \"../composable/podcasts/usePodcastView\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useApiStore } from \"../../stores/ApiStore\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport { usePlayerStore } from \"../../stores/PlayerStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { useErrorHandler } from \"../composable/useErrorHandler\";\nconst PlayerVideoDigiteka = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoDigiteka.vue\"),\n);\nconst PlayerVideoHls = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoHls.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst VideoModuleBox = defineAsyncComponent(\n () => import(\"../display/podcasts/VideoModuleBox.vue\"),\n);\nconst CountdownOctopus = defineAsyncComponent(\n () => import(\"../display/live/CountdownOctopus.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcastId:{ default: 0, type: Number },\n})\n\n//Data \nconst loaded = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst error = ref(false);\nconst activeTab = ref(0);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst podcastConference: Ref<Conference | undefined> = ref(undefined);\nconst intervalStatusConference: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n date,\n duration,\n durationIso,\n editRight\n} = usePodcastView(podcast, podcastConference);\nconst {handle403} = useErrorHandler();\nconst { updatePathParams } = useSeoTitleUrl();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst generalStore = useGeneralStore();\nconst playerStore = usePlayerStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\nconst {t} = useI18n();\nconst route = useRoute();\n\n//Computed\nconst videoId = computed(() => podcast.value?.video?.videoId);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n podcast.value,\n undefined !== authStore.authOrgaId,\n );\n});\nconst tabs = computed(() => {\n if (canPostComment.value) {\n return [t(\"Information\"), t(\"Comments\")];\n }\n return [];\n});\nconst recordingLive = computed(() => {\n return (\n undefined !== podcastConference.value &&\n -1 !== podcastConference.value.conferenceId &&\n (\"RECORDING\" === podcastConference.value.status ||\n \"PENDING\" === podcastConference.value.status)\n );\n});\nconst hlsVideoUrl = computed(() => {\n if (!recordingLive.value || !podcastConference.value) {\n return \"\";\n }\n return `${apiStore.hlsUrl}live/video_${podcastConference.value.hlsIdentifier}/index.m3u8`;\n});\nconst isSecured = computed(() => {\n return \"SECURED\" === podcast.value?.organisation?.privacy;\n});\nconst overrideText = computed(() => {\n if (\"PUBLISHING\" !== podcastConference.value?.status) {\n return;\n }\n return t(\"In the process of being published\");\n});\n\n//Watch\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value) {\n return;\n }\n commentStore.initCommentUser();\n configPodcast.value = await commentStore.getCommentsConfig(podcast.value);\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n clearInterval(intervalStatusConference.value as unknown as number);\n})\n\n//Methods\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n podcast.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n document.title = podcast.value.title + \" - \"+generalStore.metaTitle;\n const orga = podcast.value.organisation;\n const privateAccess =\n \"PUBLIC\" !== orga.privacy &&\n filterStore.filterOrgaId !== orga.id &&\n route.query.productor !== orga.id;\n const notValid =\n (!podcast.value.availability.visibility ||\n ![\"READY_TO_RECORD\", \"READY\", \"PROCESSING\"].includes(\n podcast.value.processingStatus ?? \"\",\n ) ||\n !podcast.value.valid) &&\n !editRight.value;\n if (privateAccess || notValid) {\n error.value = true;\n } else {\n updatePathParams(podcast.value.title);\n if (\n podcast.value.conferenceId &&\n \"READY\" !== podcast.value.processingStatus\n ) {\n await fetchConferenceStatus();\n intervalStatusConference.value = setInterval(() => { fetchConferenceStatus(); }, 3000);\n playerStore.playerPlay(\n {\n ...podcast.value,\n ...{ \n conferenceId: podcast.value.conferenceId,\n hlsIdentifier: podcastConference.value?.hlsIdentifier,\n },\n },\n true,\n );\n }\n }\n } catch (errorCatched) {\n handle403(errorCatched as AxiosError);\n error.value = true;\n }\n loaded.value = true;\n}\n\nasync function fetchConferenceStatus() {\n if (!podcast.value?.conferenceId) {\n return;\n }\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value.conferenceId,\n });\n podcastConference.value = {\n ...data,\n ...{\n conferenceId: podcast.value.conferenceId,\n title: \"\",\n },\n };\n if (\"DEBRIEFING\" === data.status) {\n clearInterval(intervalStatusConference.value as unknown as number);\n }\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .video-page-container {\n align-items: stretch;\n flex-grow: 1;\n background: var(--octopus-primary-really-transparent);\n border-radius: var(--octopus-border-radius);\n box-shadow: 0 0 10px 1px var(--octopus-primary-transparent);\n\n .info-video-container {\n display: flex;\n flex-direction: column;\n\n .octopus-tab-pane,\n .video-module-box {\n height: 0;\n overflow-y: auto;\n\n @media (width <= 960px) {\n height: inherit;\n }\n }\n\n .classic-nav-tab-container {\n flex-direction: column;\n }\n }\n\n .module-box.module-box-transparent {\n margin: 0;\n background: transparent;\n border: 0;\n padding: 0;\n }\n\n .w-70-responsive {\n width: 70%;\n aspect-ratio: 16/9;\n }\n\n .w-30-responsive {\n width: 30%;\n }\n\n .w-70-responsive,\n .w-30-responsive {\n display: flex;\n align-items: stretch;\n flex-grow: 1;\n\n @media (width <= 960px) {\n width: 100%;\n padding: 0 !important;\n }\n }\n\n .really-light-secondary-bg {\n background: white;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoPage-X3dZyaQH.mjs","names":[],"sources":["../src/components/pages/VideoPage.vue","../src/components/pages/VideoPage.vue"],"sourcesContent":["<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error\">\n <router-link\n :to=\"{\n name: 'podcast',\n params: { podcastId: podcastId },\n }\"\n class=\"mt-3 mb-3 w-fit-content d-flex align-items-center\"\n :title=\"t('Episode name page', { name: podcast?.title })\"\n >\n <ChevronLeftIcon />{{ t(\"Episode page\") }}\n </router-link>\n <div\n v-if=\"videoId || isLiveReadyToRecord\"\n class=\"d-flex video-page-container\"\n >\n <div class=\"w-70-responsive\">\n <template v-if=\"isLiveReadyToRecord\">\n <PlayerVideoHls\n v-if=\"recordingLive\"\n :hls-url=\"hlsVideoUrl\"\n :is-secured=\"isSecured\"\n :responsive=\"true\"\n />\n <div\n v-if=\"isCounter || overrideText\"\n class=\"d-flex flex-column align-items-center flex-grow-1 blue-bg p-3\"\n >\n <CountdownOctopus\n :time-remaining=\"timeRemaining\"\n :override-text=\"overrideText\"\n />\n </div>\n </template>\n <PlayerVideoDigiteka\n v-else\n :video-id=\"videoId\"\n :podcast-id=\"podcastId\"\n responsive\n />\n </div>\n <div class=\"w-30-responsive info-video-container\">\n <div class=\"d-flex flex-column flex-grow-1 w-100\">\n <ClassicNav\n v-if=\"tabs.length\"\n v-model:active-tab=\"activeTab\"\n :tab-number=\"tabs.length\"\n :transparent=\"true\"\n >\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <VideoModuleBox\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n />\n </template>\n <template #tab1>\n <section>\n <CommentSection\n :podcast=\"podcast\"\n class=\"module-box-transparent\"\n />\n </section>\n </template>\n </ClassicNav>\n <VideoModuleBox\n v-else\n class=\"p-2 video-module-box\"\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n :duration-iso=\"durationIso\"\n />\n </div>\n </div>\n </div>\n </template>\n <div\n v-if=\"!error && !videoId && !isLiveReadyToRecord\"\n class=\"text-center text-danger h3\"\n >\n {{ t(\"The episode does not have an associated video\") }}\n </div>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronLeftIcon from \"vue-material-design-icons/ChevronLeft.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport ClassicNav from \"../misc/ClassicNav.vue\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {usePodcastView} from \"../composable/podcasts/usePodcastView\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useApiStore } from \"../../stores/ApiStore\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport { usePlayerStore } from \"../../stores/PlayerStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { useErrorHandler } from \"../composable/useErrorHandler\";\nconst PlayerVideoDigiteka = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoDigiteka.vue\"),\n);\nconst PlayerVideoHls = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoHls.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst VideoModuleBox = defineAsyncComponent(\n () => import(\"../display/podcasts/VideoModuleBox.vue\"),\n);\nconst CountdownOctopus = defineAsyncComponent(\n () => import(\"../display/live/CountdownOctopus.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcastId:{ default: 0, type: Number },\n})\n\n//Data \nconst loaded = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst error = ref(false);\nconst activeTab = ref(0);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst podcastConference: Ref<Conference | undefined> = ref(undefined);\nconst intervalStatusConference: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n date,\n duration,\n durationIso,\n editRight\n} = usePodcastView(podcast, podcastConference);\nconst {handle403} = useErrorHandler();\nconst { updatePathParams } = useSeoTitleUrl();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst generalStore = useGeneralStore();\nconst playerStore = usePlayerStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\nconst {t} = useI18n();\nconst route = useRoute();\n\n//Computed\nconst videoId = computed(() => podcast.value?.video?.videoId);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n podcast.value,\n undefined !== authStore.authOrgaId,\n );\n});\nconst tabs = computed(() => {\n if (canPostComment.value) {\n return [t(\"Information\"), t(\"Comments\")];\n }\n return [];\n});\nconst recordingLive = computed(() => {\n return (\n undefined !== podcastConference.value &&\n -1 !== podcastConference.value.conferenceId &&\n (\"RECORDING\" === podcastConference.value.status ||\n \"PENDING\" === podcastConference.value.status)\n );\n});\nconst hlsVideoUrl = computed(() => {\n if (!recordingLive.value || !podcastConference.value) {\n return \"\";\n }\n return `${apiStore.hlsUrl}live/video_${podcastConference.value.hlsIdentifier}/index.m3u8`;\n});\nconst isSecured = computed(() => {\n return \"SECURED\" === podcast.value?.organisation?.privacy;\n});\nconst overrideText = computed(() => {\n if (\"PUBLISHING\" !== podcastConference.value?.status) {\n return;\n }\n return t(\"In the process of being published\");\n});\n\n//Watch\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value) {\n return;\n }\n commentStore.initCommentUser();\n configPodcast.value = await commentStore.getCommentsConfig(podcast.value);\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n clearInterval(intervalStatusConference.value as unknown as number);\n})\n\n//Methods\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n podcast.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n document.title = podcast.value.title + \" - \"+generalStore.metaTitle;\n const orga = podcast.value.organisation;\n const privateAccess =\n \"PUBLIC\" !== orga.privacy &&\n filterStore.filterOrgaId !== orga.id &&\n route.query.productor !== orga.id;\n const notValid =\n (!podcast.value.availability.visibility ||\n ![\"READY_TO_RECORD\", \"READY\", \"PROCESSING\"].includes(\n podcast.value.processingStatus ?? \"\",\n ) ||\n !podcast.value.valid) &&\n !editRight.value;\n if (privateAccess || notValid) {\n error.value = true;\n } else {\n updatePathParams(podcast.value.title);\n if (\n podcast.value.conferenceId &&\n \"READY\" !== podcast.value.processingStatus\n ) {\n await fetchConferenceStatus();\n intervalStatusConference.value = setInterval(() => { fetchConferenceStatus(); }, 3000);\n playerStore.playerPlay(\n {\n ...podcast.value,\n ...{ \n conferenceId: podcast.value.conferenceId,\n hlsIdentifier: podcastConference.value?.hlsIdentifier,\n },\n },\n true,\n );\n }\n }\n } catch (errorCatched) {\n handle403(errorCatched as AxiosError);\n error.value = true;\n }\n loaded.value = true;\n}\n\nasync function fetchConferenceStatus() {\n if (!podcast.value?.conferenceId) {\n return;\n }\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value.conferenceId,\n });\n podcastConference.value = {\n ...data,\n ...{\n conferenceId: podcast.value.conferenceId,\n title: \"\",\n },\n };\n if (\"DEBRIEFING\" === data.status) {\n clearInterval(intervalStatusConference.value as unknown as number);\n }\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .video-page-container {\n align-items: stretch;\n flex-grow: 1;\n background: var(--octopus-primary-really-transparent);\n border-radius: var(--octopus-border-radius);\n box-shadow: 0 0 10px 1px var(--octopus-primary-transparent);\n\n .info-video-container {\n display: flex;\n flex-direction: column;\n\n .octopus-tab-pane,\n .video-module-box {\n height: 0;\n overflow-y: auto;\n\n @media (width <= 960px) {\n height: inherit;\n }\n }\n\n .classic-nav-tab-container {\n flex-direction: column;\n }\n }\n\n .module-box.module-box-transparent {\n margin: 0;\n background: transparent;\n border: 0;\n padding: 0;\n }\n\n .w-70-responsive {\n width: 70%;\n aspect-ratio: 16/9;\n }\n\n .w-30-responsive {\n width: 30%;\n }\n\n .w-70-responsive,\n .w-30-responsive {\n display: flex;\n align-items: stretch;\n flex-grow: 1;\n\n @media (width <= 960px) {\n width: 100%;\n padding: 0 !important;\n }\n }\n\n .really-light-secondary-bg {\n background: white;\n }\n}\n</style>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error\">\n <router-link\n :to=\"{\n name: 'podcast',\n params: { podcastId: podcastId },\n }\"\n class=\"mt-3 mb-3 w-fit-content d-flex align-items-center\"\n :title=\"t('Episode name page', { name: podcast?.title })\"\n >\n <ChevronLeftIcon />{{ t(\"Episode page\") }}\n </router-link>\n <div\n v-if=\"videoId || isLiveReadyToRecord\"\n class=\"d-flex video-page-container\"\n >\n <div class=\"w-70-responsive\">\n <template v-if=\"isLiveReadyToRecord\">\n <PlayerVideoHls\n v-if=\"recordingLive\"\n :hls-url=\"hlsVideoUrl\"\n :is-secured=\"isSecured\"\n :responsive=\"true\"\n />\n <div\n v-if=\"isCounter || overrideText\"\n class=\"d-flex flex-column align-items-center flex-grow-1 blue-bg p-3\"\n >\n <CountdownOctopus\n :time-remaining=\"timeRemaining\"\n :override-text=\"overrideText\"\n />\n </div>\n </template>\n <PlayerVideoDigiteka\n v-else\n :video-id=\"videoId\"\n :podcast-id=\"podcastId\"\n responsive\n />\n </div>\n <div class=\"w-30-responsive info-video-container\">\n <div class=\"d-flex flex-column flex-grow-1 w-100\">\n <ClassicNav\n v-if=\"tabs.length\"\n v-model:active-tab=\"activeTab\"\n :tab-number=\"tabs.length\"\n :transparent=\"true\"\n >\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <VideoModuleBox\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n />\n </template>\n <template #tab1>\n <section>\n <CommentSection\n :podcast=\"podcast\"\n class=\"module-box-transparent\"\n />\n </section>\n </template>\n </ClassicNav>\n <VideoModuleBox\n v-else\n class=\"p-2 video-module-box\"\n :podcast=\"podcast\"\n :date=\"date\"\n :duration=\"duration\"\n :duration-iso=\"durationIso\"\n />\n </div>\n </div>\n </div>\n </template>\n <div\n v-if=\"!error && !videoId && !isLiveReadyToRecord\"\n class=\"text-center text-danger h3\"\n >\n {{ t(\"The episode does not have an associated video\") }}\n </div>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronLeftIcon from \"vue-material-design-icons/ChevronLeft.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport ClassicNav from \"../misc/ClassicNav.vue\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {usePodcastView} from \"../composable/podcasts/usePodcastView\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useApiStore } from \"../../stores/ApiStore\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport { usePlayerStore } from \"../../stores/PlayerStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { useErrorHandler } from \"../composable/useErrorHandler\";\nconst PlayerVideoDigiteka = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoDigiteka.vue\"),\n);\nconst PlayerVideoHls = defineAsyncComponent(\n () => import(\"../misc/player/video/PlayerVideoHls.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst VideoModuleBox = defineAsyncComponent(\n () => import(\"../display/podcasts/VideoModuleBox.vue\"),\n);\nconst CountdownOctopus = defineAsyncComponent(\n () => import(\"../display/live/CountdownOctopus.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcastId:{ default: 0, type: Number },\n})\n\n//Data \nconst loaded = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst error = ref(false);\nconst activeTab = ref(0);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst podcastConference: Ref<Conference | undefined> = ref(undefined);\nconst intervalStatusConference: Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n//Composables\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n date,\n duration,\n durationIso,\n editRight\n} = usePodcastView(podcast, podcastConference);\nconst {handle403} = useErrorHandler();\nconst { updatePathParams } = useSeoTitleUrl();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst generalStore = useGeneralStore();\nconst playerStore = usePlayerStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\nconst {t} = useI18n();\nconst route = useRoute();\n\n//Computed\nconst videoId = computed(() => podcast.value?.video?.videoId);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n podcast.value,\n undefined !== authStore.authOrgaId,\n );\n});\nconst tabs = computed(() => {\n if (canPostComment.value) {\n return [t(\"Information\"), t(\"Comments\")];\n }\n return [];\n});\nconst recordingLive = computed(() => {\n return (\n undefined !== podcastConference.value &&\n -1 !== podcastConference.value.conferenceId &&\n (\"RECORDING\" === podcastConference.value.status ||\n \"PENDING\" === podcastConference.value.status)\n );\n});\nconst hlsVideoUrl = computed(() => {\n if (!recordingLive.value || !podcastConference.value) {\n return \"\";\n }\n return `${apiStore.hlsUrl}live/video_${podcastConference.value.hlsIdentifier}/index.m3u8`;\n});\nconst isSecured = computed(() => {\n return \"SECURED\" === podcast.value?.organisation?.privacy;\n});\nconst overrideText = computed(() => {\n if (\"PUBLISHING\" !== podcastConference.value?.status) {\n return;\n }\n return t(\"In the process of being published\");\n});\n\n//Watch\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value) {\n return;\n }\n commentStore.initCommentUser();\n configPodcast.value = await commentStore.getCommentsConfig(podcast.value);\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n clearInterval(intervalStatusConference.value as unknown as number);\n})\n\n//Methods\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n podcast.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n document.title = podcast.value.title + \" - \"+generalStore.metaTitle;\n const orga = podcast.value.organisation;\n const privateAccess =\n \"PUBLIC\" !== orga.privacy &&\n filterStore.filterOrgaId !== orga.id &&\n route.query.productor !== orga.id;\n const notValid =\n (!podcast.value.availability.visibility ||\n ![\"READY_TO_RECORD\", \"READY\", \"PROCESSING\"].includes(\n podcast.value.processingStatus ?? \"\",\n ) ||\n !podcast.value.valid) &&\n !editRight.value;\n if (privateAccess || notValid) {\n error.value = true;\n } else {\n updatePathParams(podcast.value.title);\n if (\n podcast.value.conferenceId &&\n \"READY\" !== podcast.value.processingStatus\n ) {\n await fetchConferenceStatus();\n intervalStatusConference.value = setInterval(() => { fetchConferenceStatus(); }, 3000);\n playerStore.playerPlay(\n {\n ...podcast.value,\n ...{ \n conferenceId: podcast.value.conferenceId,\n hlsIdentifier: podcastConference.value?.hlsIdentifier,\n },\n },\n true,\n );\n }\n }\n } catch (errorCatched) {\n handle403(errorCatched as AxiosError);\n error.value = true;\n }\n loaded.value = true;\n}\n\nasync function fetchConferenceStatus() {\n if (!podcast.value?.conferenceId) {\n return;\n }\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value.conferenceId,\n });\n podcastConference.value = {\n ...data,\n ...{\n conferenceId: podcast.value.conferenceId,\n title: \"\",\n },\n };\n if (\"DEBRIEFING\" === data.status) {\n clearInterval(intervalStatusConference.value as unknown as number);\n }\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .video-page-container {\n align-items: stretch;\n flex-grow: 1;\n background: var(--octopus-primary-really-transparent);\n border-radius: var(--octopus-border-radius);\n box-shadow: 0 0 10px 1px var(--octopus-primary-transparent);\n\n .info-video-container {\n display: flex;\n flex-direction: column;\n\n .octopus-tab-pane,\n .video-module-box {\n height: 0;\n overflow-y: auto;\n\n @media (width <= 960px) {\n height: inherit;\n }\n }\n\n .classic-nav-tab-container {\n flex-direction: column;\n }\n }\n\n .module-box.module-box-transparent {\n margin: 0;\n background: transparent;\n border: 0;\n padding: 0;\n }\n\n .w-70-responsive {\n width: 70%;\n aspect-ratio: 16/9;\n }\n\n .w-30-responsive {\n width: 30%;\n }\n\n .w-70-responsive,\n .w-30-responsive {\n display: flex;\n align-items: stretch;\n flex-grow: 1;\n\n @media (width <= 960px) {\n width: 100%;\n padding: 0 !important;\n }\n }\n\n .really-light-secondary-bg {\n background: white;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
+ import { createElementBlock, createElementVNode, defineComponent, openBlock } from "vue";
3
+ //#region src/components/icons/XIcon.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = ["aria-hidden", "title"];
5
+ var _hoisted_2 = [
6
+ "fill",
7
+ "height",
8
+ "width"
9
+ ];
10
+ var XIcon_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
11
+ __name: "XIcon",
12
+ props: {
13
+ size: {
14
+ default: 24,
15
+ type: Number
16
+ },
17
+ title: {
18
+ default: void 0,
19
+ type: String
20
+ },
21
+ fillColor: {
22
+ default: "currentColor",
23
+ type: String
24
+ }
25
+ },
26
+ setup(__props) {
27
+ return (_ctx, _cache) => {
28
+ return openBlock(), createElementBlock("span", {
29
+ "aria-hidden": !__props.title,
30
+ class: "material-design-icon",
31
+ title: __props.title
32
+ }, [(openBlock(), createElementBlock("svg", {
33
+ xmlns: "http://www.w3.org/2000/svg",
34
+ viewBox: "-300 -300 1800 1827",
35
+ fill: __props.fillColor,
36
+ height: __props.size,
37
+ width: __props.size
38
+ }, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z" }, null, -1)])], 8, _hoisted_2))], 8, _hoisted_1);
39
+ };
40
+ }
41
+ });
42
+ //#endregion
43
+ //#region src/components/icons/XIcon.vue
44
+ var XIcon_exports = /* @__PURE__ */ __exportAll({ default: () => XIcon_default });
45
+ var XIcon_default = XIcon_vue_vue_type_script_setup_true_lang_default;
46
+ //#endregion
47
+ export { XIcon_exports as n, XIcon_default as t };
48
+
49
+ //# sourceMappingURL=XIcon-DAVMitPh.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XIcon-DAVMitPh.mjs","names":[],"sources":["../src/components/icons/XIcon.vue","../src/components/icons/XIcon.vue"],"sourcesContent":["<template>\n <span\n :aria-hidden=\"!title\"\n class=\"material-design-icon\"\n :title=\"title\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-300 -300 1800 1827\"\n :fill=\"fillColor\"\n :height=\"size\"\n :width=\"size\"\n >\n <path\n d=\"M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z\"\n />\n </svg>\n </span>\n</template>\n\n<script setup lang=\"ts\">\n//Props \ndefineProps({\n size: { default: 24, type: Number },\n title: { default: undefined, type: String },\n fillColor: { default: \"currentColor\", type: String },\n})\n</script>\n","<template>\n <span\n :aria-hidden=\"!title\"\n class=\"material-design-icon\"\n :title=\"title\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-300 -300 1800 1827\"\n :fill=\"fillColor\"\n :height=\"size\"\n :width=\"size\"\n >\n <path\n d=\"M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z\"\n />\n </svg>\n </span>\n</template>\n\n<script setup lang=\"ts\">\n//Props \ndefineProps({\n size: { default: 24, type: Number },\n title: { default: undefined, type: String },\n fillColor: { default: \"currentColor\", type: String },\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;uBACE,mBAgBO,QAAA;IAfJ,eAAW,CAAG,QAAA;IACf,OAAM;IACL,OAAO,QAAA;qBAER,mBAUM,OAAA;IATJ,OAAM;IACN,SAAQ;IACP,MAAM,QAAA;IACN,QAAQ,QAAA;IACR,OAAO,QAAA;qCAER,mBAEE,QAAA,EADA,GAAE,wSAAuS,GAAA,MAAA,EAAA,CAAA,EAAA,GAAA,GAAA,UAAA,EAAA,GAAA,GAAA,UAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XIcon-Dz4rI_Hd.mjs","names":[],"sources":["../src/components/icons/XIcon.vue","../src/components/icons/XIcon.vue"],"sourcesContent":["<template>\n <span\n :aria-hidden=\"!title\"\n class=\"material-design-icon\"\n :title=\"title\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-300 -300 1800 1827\"\n :fill=\"fillColor\"\n :height=\"size\"\n :width=\"size\"\n >\n <path\n d=\"M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z\"\n />\n </svg>\n </span>\n</template>\n\n<script setup lang=\"ts\">\n//Props \ndefineProps({\n size: { default: 24, type: Number },\n title: { default: undefined, type: String },\n fillColor: { default: \"currentColor\", type: String },\n})\n</script>\n","<template>\n <span\n :aria-hidden=\"!title\"\n class=\"material-design-icon\"\n :title=\"title\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-300 -300 1800 1827\"\n :fill=\"fillColor\"\n :height=\"size\"\n :width=\"size\"\n >\n <path\n d=\"M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z\"\n />\n </svg>\n </span>\n</template>\n\n<script setup lang=\"ts\">\n//Props \ndefineProps({\n size: { default: 24, type: Number },\n title: { default: undefined, type: String },\n fillColor: { default: \"currentColor\", type: String },\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBCCE,mBAgBO,QAAA;EAfJ,eAAW,CAAG,OAAA;EACf,OAAM;EACL,OAAO,OAAA;mBAER,mBAUM,OAAA;EATJ,OAAM;EACN,SAAQ;EACP,MAAM,OAAA;EACN,QAAQ,OAAA;EACR,OAAO,OAAA;mCAER,mBAEE,QAAA,EADA,GAAE,wSAAuS,GAAA,MAAA,EAAA,CAAA,EAAA,GAAA,GAAA,UAAA,EAAA,GAAA,GAAA,UAAA"}
@@ -0,0 +1,8 @@
1
+ //#region \0plugin-vue:export-helper
2
+ var _plugin_vue_export_helper_default = (sfc, props) => {
3
+ const target = sfc.__vccOpts || sfc;
4
+ for (const [key, val] of props) target[key] = val;
5
+ return target;
6
+ };
7
+ //#endregion
8
+ export { _plugin_vue_export_helper_default as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregatorsApi-hyFtV8aL.mjs","names":[],"sources":["../src/api/aggregatorsApi.ts"],"sourcesContent":["import { ModuleApi } from \"./apiConnection\";\nimport classicApi from \"./classicApi\";\n\nexport interface Aggregator {\n /** ID of the aggregator */\n aggregatorId: number;\n /** Name of the aggregator */\n name: string;\n /** User who created this aggregator */\n createdBy: string;\n /** Link to image for aggregator */\n image?: string;\n /** IP criteria */\n ip?: string;\n /** IP range criteria */\n ipRange?: string;\n /** Regex for referer criteria */\n refererRegexp?: string;\n /** Slug criteria */\n slug?: string;\n /** Regex for user agent criteria */\n uaRegexp?: string;\n}\n\nexport type PredefinedAggregator = Pick<Aggregator, 'name' | 'image'>;\n\n/**\n * Return the list of predefined aggregators\n */\nasync function getPredefined(): Promise<Array<PredefinedAggregator>> {\n return classicApi.fetchData<Array<PredefinedAggregator>>({\n api: ModuleApi.DEFAULT,\n path: 'rss/aggregator/distributions'\n });\n}\n\n/**\n * Return the list of all user-defined aggregators\n * @param organisationId If defined, the aggregators will be filtered for this\n * organisation\n */\nasync function getAll(organisationId?: string): Promise<Array<Aggregator>> {\n return classicApi.fetchData<Array<Aggregator>>({\n api: ModuleApi.DEFAULT,\n path: 'rss/aggregator/list',\n parameters: organisationId ? { organisationId } : undefined\n });\n}\n\n/**\n * Return the list of all user-defined aggregators, without filter data.\n * This doesn't require to be authenticated.\n * @param organisationId If defined, the aggregators will be filtered for this\n * organisation\n */\nasync function getAllNoAuth(organisationId?: string): Promise<Array<PredefinedAggregator>> {\n return classicApi.fetchData<Array<Aggregator>>({\n api: ModuleApi.DEFAULT,\n path: 'rss/aggregator/noauth/list',\n parameters: organisationId ? { organisationId } : undefined\n });\n}\n\nexport const aggregatorsApi = {\n getPredefined,\n getAll,\n getAllNoAuth\n};\n"],"mappings":";;;;;AA6BA,eAAe,gBAAsD;CACjE,OAAO,mBAAW,UAAuC;EACrD,KAAK,UAAU;EACf,MAAM;CACV,CAAC;AACL;;;;;;AAOA,eAAe,OAAO,gBAAqD;CACvE,OAAO,mBAAW,UAA6B;EAC3C,KAAK,UAAU;EACf,MAAM;EACN,YAAY,iBAAiB,EAAE,eAAe,IAAI,KAAA;CACtD,CAAC;AACL;;;;;;;AAQA,eAAe,aAAa,gBAA+D;CACvF,OAAO,mBAAW,UAA6B;EAC3C,KAAK,UAAU;EACf,MAAM;EACN,YAAY,iBAAiB,EAAE,eAAe,IAAI,KAAA;CACtD,CAAC;AACL;AAEA,IAAa,iBAAiB;CAC1B;CACA;CACA;AACJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-tznrp2lH.mjs","names":[],"sources":["../src/api/radioApi.ts","../src/api/mediathequeApi.ts","../src/stores/CacheStore.ts","../src/api/rubriquesApi.ts"],"sourcesContent":["import { Ambiance, Canal } from \"../stores/class/radio/canal\";\nimport classicApi from \"./classicApi\";\nimport { ModuleApi } from \"./apiConnection\";\n\n/**\n * Retrieve a radio canal by its id\n * @param radioId Id of the radio to retrieve\n * @returns The canal data\n */\nasync function get(radioId: number): Promise<Canal> {\n return classicApi.fetchData<Canal>({\n api: ModuleApi.RADIO,\n path: `canal/${radioId}`\n });\n}\n\n/**\n * Retrieve all radio canal by organisation\n * @param organisationId Id of the organisation\n * @returns The list of canal data\n */\nasync function getAll(organisationId: string): Promise<Array<Canal>> {\n return await classicApi.fetchData<Array<Canal>>({\n api: ModuleApi.RADIO,\n path: \"canal/orga/\" + organisationId + \"/\"\n });\n}\n\n/**\n * Set the default ambiance for the given canal\n * @param canalId ID of the canal to change\n * @param ambiance New ambiance settings\n * @returns The modified ambiance\n */\nasync function setDefaultAmbiance(canalId: number, ambiance: Ambiance): Promise<Ambiance> {\n return await classicApi.putData<Ambiance>({\n api: ModuleApi.RADIO,\n path: `ambiance/canal/${canalId}/default`,\n dataToSend: ambiance\n });\n \n}\n\nexport const radioApi = {\n get,\n getAll,\n setDefaultAmbiance\n};\n","import { PlaylistMedia } from \"../stores/class/radio/playlistMedia\";\nimport { Mix } from \"../stores/class/radio/mix\";\nimport { ModuleApi } from \"./apiConnection\";\nimport classicApi from \"./classicApi\";\nimport { Cartouchier } from \"@/stores/class/cartouchier/cartouchier\";\n\n/**\n * Retrieve all cartouchier from the given organisation\n * @param organisationId The ID of the organisation\n * @param options Filtering options\n * @returns List of cartouchier belonging to the organisation\n */\nasync function getAllCartouchiers(organisationId: string, options?: { ownerId?: string }): Promise<Array<Cartouchier>> {\n return classicApi.fetchData<Array<Cartouchier>>({\n api: ModuleApi.MEDIA,\n path: `cartouchier/list/${organisationId}`,\n parameters: options\n });\n}\n\n/**\n * Retrieve all mix from the given organisation\n * @param organisationId The ID of the organisation\n * @returns List of mix belonging to the organisation\n */\nasync function getAllMix(organisationId: string): Promise<Array<Mix>> {\n return classicApi.fetchData<Array<Mix>>({\n api: ModuleApi.MEDIA,\n path: `mix/${organisationId}`\n });\n}\n\n/**\n * Delete mix with the given id\n * @param mixId The ID of the mix to delete\n */\nasync function deleteMix(mixId: number): Promise<void> {\n await classicApi.deleteData({\n api: ModuleApi.MEDIA,\n path: `mix/${mixId}`\n });\n}\n\n/**\n * Retrieve all playlist from the given organisation\n * @param organisationId The ID of the organisation\n * @param options Filtering options\n * @returns List of playlist belonging to the organisation\n */\nasync function getAllPlaylists(organisationId: string, options?: { ownerId?: string }): Promise<Array<PlaylistMedia>> {\n return classicApi.fetchData<Array<PlaylistMedia>>({\n api: ModuleApi.MEDIA,\n path: `playlist/${organisationId}`,\n parameters: options\n });\n}\n\n/**\n * Delete playlist with the given id\n * @param playlistId The ID of the playlist to delete\n */\nasync function deletePlaylist(playlistId: number): Promise<void> {\n await classicApi.deleteData({\n api: ModuleApi.MEDIA,\n path: `playlist/${playlistId}`\n });\n}\n\nexport const mediathequeApi = {\n getAllCartouchiers,\n getAllMix,\n deleteMix,\n getAllPlaylists,\n deletePlaylist\n}\n","import dayjs, { Dayjs } from \"dayjs\";\nimport { defineStore } from \"pinia\";\n\n/**\n * Type for cache storage\n */\ninterface CachedData<T> {\n /** The in-flight or resolved data, shared by concurrent callers */\n data: Promise<T>;\n /** Expiration date of the cached data */\n expiration: Dayjs;\n}\n\nexport const useCacheStore = defineStore('cache', () => {\n\n const cachedData: Record<string, CachedData<unknown>> = {};\n\n async function getData<T>(key: string, callback: () => Promise<T>): Promise<T> {\n let cache = cachedData[key] as CachedData<T>|undefined;\n if (isDataEmptyOrExpired(cache)) {\n // Store the promise immediately so concurrent callers share this fetch\n const data = callback();\n const expiration = dayjs().add(30, 'minutes');\n cache = { data, expiration };\n cachedData[key] = cache;\n // Don't keep a failed fetch cached: let the next call retry\n data.catch(() => invalidate(key));\n }\n\n return cache.data;\n }\n\n function invalidate(key: string): void {\n delete cachedData[key];\n }\n\n function isDataEmptyOrExpired(data: CachedData<unknown>|undefined): boolean {\n if (!data) {\n return true;\n } else {\n return dayjs().isAfter(data.expiration);\n }\n }\n\n return {\n getData,\n invalidate\n };\n});\n","import { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { useCacheStore } from \"@/stores/CacheStore\";\nimport classicApi, { type APIOptions } from \"./classicApi\";\nimport { ModuleApi } from \"./apiConnection\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Rubriquage\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Find rubriquages according to criterias\n * @param organisationIds List of organisation IDs for which to retrieve the\n * rubriquage\n * @param searchOptions Additional search options\n */\nasync function searchRubriquages(organisationIds: Array<string>, searchOptions?: {\n rubriquageId?: number;\n organisationId?: string|Array<string>;\n query?: string;\n}, options?: APIOptions): Promise<Array<Rubriquage>> {\n return classicApi.fetchData<Array<Rubriquage>>({\n api: ModuleApi.DEFAULT,\n path: 'rubriquage/find',\n parameters: {\n organisationId: organisationIds,\n ...searchOptions\n },\n specialTreatement: options?.adaptParameters\n });\n}\n/**\n * Create a new rubriquage\n * @param data The new rubriquage data\n * @returns The created rubriquage\n */\nasync function createRubriquage(data: Omit<Rubriquage, 'rubriquageId'>): Promise<Rubriquage> {\n return classicApi.postData<Rubriquage>({\n api: ModuleApi.DEFAULT,\n path: \"rubriquage/\",\n dataToSend: data\n });\n}\n\n/**\n * Fetch rubriquage data by ID\n * @param rubriquageId ID of the rubriquage to fetch\n * @returns The rubriquage\n */\nasync function getRubriquage(rubriquageId: number): Promise<Rubriquage> {\n return classicApi.fetchData<Rubriquage>({\n api: ModuleApi.DEFAULT,\n path: `rubriquage/${rubriquageId}`\n });\n}\n\n/**\n * Update the values of the rubriquage\n * @param data The new rubriquage data\n * @returns The updated rubriquage\n */\nasync function updateRubriquage(data: Rubriquage): Promise<Rubriquage> {\n return classicApi.putData<Rubriquage>({\n api: ModuleApi.DEFAULT,\n path: \"rubriquage/\",\n dataToSend: data\n });\n}\n\n/**\n * Delete a rubriquage\n * @param data Either the rubriquage to delete, or its ID\n * @returns An empty promise\n */\nasync function deleteRubriquage(data: Rubriquage|number): Promise<void> {\n const rubriquageId = typeof data === 'object' ?\n data.rubriquageId :\n data;\n \n await classicApi.deleteData<void>({\n api: ModuleApi.DEFAULT,\n path: \"rubriquage/\" + rubriquageId\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Rubriques\n////////////////////////////////////////////////////////////////////////////////\nasync function searchRubriques(searchOptions?: {\n rubriquageId?: number;\n organisationId?: string|Array<string>;\n query?: string;\n}): Promise<Array<Rubrique>> {\n return classicApi.fetchData<Array<Rubrique>>({\n api: ModuleApi.DEFAULT,\n path: 'rubrique/search',\n parameters: searchOptions\n });\n}\n\n/**\n * Fetch rubrique data by ID\n * @see getCachedRubrique\n * @param rubriqueId ID of the rubrique to fetch\n * @returns The rubrique\n */\nasync function getRubrique(rubriqueId: number): Promise<Rubrique> {\n return classicApi.fetchData<Rubrique>({\n api: ModuleApi.DEFAULT,\n path: `rubrique/${rubriqueId}`\n });\n}\n\n/**\n * Fetch rubrique data by ID\n * If the rubrique is available in the cache, return it from the cache\n * @param rubriqueId ID of the rubrique to fetch\n * @returns The rubrique\n */\nasync function getCachedRubrique(rubriqueId: number): Promise<Rubrique> {\n const cacheStore = useCacheStore();\n return cacheStore.getData(`rubrique-${rubriqueId}`, () => getRubrique(rubriqueId));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Scope\n////////////////////////////////////////////////////////////////////////////////\n/**\n * List the rubrique IDS associated to the given user\n * @param userId The ID of the user for which to retrieve this data\n * @returns The list of IDs of rubriques\n */\nasync function listUserScope(userId: string): Promise<Array<number>> {\n return classicApi.fetchData<Array<number>>({\n api: ModuleApi.DEFAULT,\n path: `rubrique/user/list/rubriques/${userId}`\n });\n}\n\n/**\n * List the user IDS associated to the given rubrique\n * @param rubriqueId The ID of the rubrique for which to retrieve this data\n * @returns The list of IDs of users\n */\nasync function listUsersScopedByRubrique(rubriqueId: string): Promise<Array<string>> {\n return classicApi.fetchData<Array<string>>({\n api: ModuleApi.DEFAULT,\n path: `rubrique/user/list/users/${rubriqueId}`\n });\n}\n\n/**\n * Update the associated rubriques to the user\n * @param userId The ID of the user for which to change the rights scope\n * @param previousScope Previous rubrique IDs\n * @param rubriqueIds New rubrique IDs to set\n * @returns A promise\n */\nasync function setUserScope(userId: string, previousScope: Array<number>, rubriqueIds: Array<number>): Promise<void> {\n\n const associatedIds: Array<number> = [];\n const dissociatedIds: Array<number> = [];\n const promises: Array<Promise<void>> = [];\n\n // Create a set containing all ids, will iterare over all of them to check\n // whether to add or remove them\n const allIds = new Set<number>();\n previousScope.forEach(allIds.add, allIds);\n rubriqueIds.forEach(allIds.add, allIds);\n\n\n // Find out which IDs need to be added/remove\n allIds.forEach(id => {\n const inOld = previousScope.includes(id);\n const inNew = rubriqueIds.includes(id);\n\n if (inOld && !inNew) {\n dissociatedIds.push(id);\n } else if (!inOld && inNew) {\n associatedIds.push(id);\n }\n })\n\n // API call for adding rubriques\n if (associatedIds.length > 0) {\n promises.push(classicApi.postData({\n api: ModuleApi.DEFAULT,\n path: 'rubrique/user/associate',\n dataToSend: {\n rubriqueIds: associatedIds,\n userIds: [userId]\n }\n }));\n }\n\n // API call for removing rubriques\n if (dissociatedIds.length > 0) {\n promises.push(classicApi.postData({\n api: ModuleApi.DEFAULT,\n path: 'rubrique/user/dissociate',\n dataToSend: {\n rubriqueIds: dissociatedIds,\n userIds: [userId]\n }\n }));\n }\n\n return Promise.all(promises).then();\n}\n\nexport const rubriquesApi = {\n createRubriquage,\n getRubriquage,\n getRubrique,\n getCachedRubrique,\n searchRubriquages,\n searchRubriques,\n updateRubriquage,\n deleteRubriquage,\n listUserScope,\n listUsersScopedByRubrique,\n setUserScope\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiUtils-D4ULJJbh.mjs","names":[],"sources":["../src/api/apiUtils.ts"],"sourcesContent":["/**\n * Utility function to easily convert a list of IDs to a map of id => element\n * @param ID The type of ID for the element\n * @param T The type of element to retrieve\n * @param ids The list of ids\n * @param getter A function that given an ID, returns a promise of the matching element\n * @param key The key for the ID\n * @return A promise containing a map of ID => element\n */\nexport async function mapFromGetAll<ID extends string|number, T extends object >(ids: Array<ID>, getter: (id: ID) => Promise<T>, key: keyof T): Promise<Record<string, T>> {\n const results: Record<string, T> = {};\n const promises: Array<Promise<T>> = [];\n\n // Retrieve data for each id\n ids.forEach((id: ID) => {\n const promise = getter(id).then(elt => results['' + elt[key]] = elt);\n promises.push(promise);\n });\n\n // Wait for all promises to finish\n await Promise.all(promises);\n\n return results;\n}\n\n"],"mappings":";;;;;;;;;;AASA,eAAsB,cAA2D,KAAgB,QAAgC,KAA0C;CACvK,MAAM,UAA6B,CAAC;CACpC,MAAM,WAA8B,CAAC;CAGrC,IAAI,SAAS,OAAW;EACpB,MAAM,UAAU,OAAO,EAAE,EAAE,MAAK,QAAO,QAAQ,KAAK,IAAI,QAAQ,GAAG;EACnE,SAAS,KAAK,OAAO;CACzB,CAAC;CAGD,MAAM,QAAQ,IAAI,QAAQ;CAE1B,OAAO;AACX"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buttons-cdGcewjB.mjs","names":[],"sources":["../src/components/buttons/ActionButton.vue","../src/components/buttons/ActionButton.vue","../src/components/buttons/ClassicButton.vue","../src/components/buttons/ClassicButton.vue"],"sourcesContent":["<template>\n <div>\n <!-- The button with an icon to trigger the action -->\n <button\n class=\"btn btn-transparent\"\n :title=\"action\"\n @click=\"onClick\"\n >\n <component :is=\"icon\" />\n </button>\n\n <!-- Modal to ask for confirmation -->\n <MessageModal\n v-if=\"showModal\"\n :title=\"confirmModal.title\"\n :message=\"confirmModal.message\"\n :validatetext=\"$t('Yes')\"\n :canceltext=\"$t('No')\"\n @validate=\"onConfirmModal\"\n @cancel=\"showModal = false\"\n @close=\"showModal = false\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { type Component, computed, ref } from 'vue';\nimport MessageModal from '../misc/modal/MessageModal.vue'; \nimport Icons from '../icons';\n\n/** Actions available to the button */\nenum Action {\n Edit = 'edit',\n Delete = 'delete'\n}\n\nexport interface ConfirmModalData {\n title: string;\n message: string;\n}\n\nconst { action, confirmModal } = defineProps<{\n /** The type of action provided by the button */\n action: Action;\n /** When set, clicking on the button will first open a confirm modal */\n confirmModal?: ConfirmModalData;\n}>();\n\nconst emit = defineEmits<{\n /**\n * Event trigger when the button is clicked, or after confirmation in the\n * modal if `withConfirmModal` is true.\n */\n (e: 'click'): void\n}>();\n\n/************************\n * Using button\n ***********************/\n\n/** Method called when clicking on button */\nfunction onClick(): void {\n if (confirmModal === undefined) {\n emit('click');\n } else {\n showModal.value = true;\n }\n}\n\n/***********************\n * Modal\n **********************/\n/** Display modal when true */\nconst showModal = ref(false);\n\n/** Method called when the modal is validated */\nfunction onConfirmModal(): void {\n showModal.value = false;\n emit('click');\n}\n\n/***********************\n * Button appearance\n **********************/\n\n/** The icon displayed by the button */\nconst icon = computed((): Component => {\n switch (action) {\n case Action.Edit:\n return Icons.Edit;\n\n case Action.Delete:\n return Icons.Delete;\n\n default:\n return;\n }\n});\n</script>\n","<template>\n <div>\n <!-- The button with an icon to trigger the action -->\n <button\n class=\"btn btn-transparent\"\n :title=\"action\"\n @click=\"onClick\"\n >\n <component :is=\"icon\" />\n </button>\n\n <!-- Modal to ask for confirmation -->\n <MessageModal\n v-if=\"showModal\"\n :title=\"confirmModal.title\"\n :message=\"confirmModal.message\"\n :validatetext=\"$t('Yes')\"\n :canceltext=\"$t('No')\"\n @validate=\"onConfirmModal\"\n @cancel=\"showModal = false\"\n @close=\"showModal = false\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { type Component, computed, ref } from 'vue';\nimport MessageModal from '../misc/modal/MessageModal.vue'; \nimport Icons from '../icons';\n\n/** Actions available to the button */\nenum Action {\n Edit = 'edit',\n Delete = 'delete'\n}\n\nexport interface ConfirmModalData {\n title: string;\n message: string;\n}\n\nconst { action, confirmModal } = defineProps<{\n /** The type of action provided by the button */\n action: Action;\n /** When set, clicking on the button will first open a confirm modal */\n confirmModal?: ConfirmModalData;\n}>();\n\nconst emit = defineEmits<{\n /**\n * Event trigger when the button is clicked, or after confirmation in the\n * modal if `withConfirmModal` is true.\n */\n (e: 'click'): void\n}>();\n\n/************************\n * Using button\n ***********************/\n\n/** Method called when clicking on button */\nfunction onClick(): void {\n if (confirmModal === undefined) {\n emit('click');\n } else {\n showModal.value = true;\n }\n}\n\n/***********************\n * Modal\n **********************/\n/** Display modal when true */\nconst showModal = ref(false);\n\n/** Method called when the modal is validated */\nfunction onConfirmModal(): void {\n showModal.value = false;\n emit('click');\n}\n\n/***********************\n * Button appearance\n **********************/\n\n/** The icon displayed by the button */\nconst icon = computed((): Component => {\n switch (action) {\n case Action.Edit:\n return Icons.Edit;\n\n case Action.Delete:\n return Icons.Delete;\n\n default:\n return;\n }\n});\n</script>\n","<!-- A simple button with accessibility in mind -->\n<template>\n <button\n :class=\"classes\"\n :aria-disabled=\"disabled\"\n :title=\"title\"\n :aria-label=\"title\"\n @click=\"onClick\"\n >\n <slot />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n /** Disable the button */\n disabled?: boolean;\n /** Title of the button */\n title?: string;\n /** Primary style for button */\n primary?: boolean;\n /** Icon style for button */\n icon?: boolean;\n}>();\n\nconst emit = defineEmits<{\n /** Emitted when the user clicks on the button */\n (e: 'click'): void;\n}>();\n\nconst classes = computed((): Array<string> => {\n const ary: Array<string> = ['btn', 'd-flex'];\n if (props.primary) {\n ary.push('btn-primary');\n }\n if (props.icon) {\n ary.push('btn-icon');\n }\n return ary;\n});\n\nfunction onClick(): void {\n if (!props.disabled) {\n emit('click');\n }\n}\n</script>\n","<!-- A simple button with accessibility in mind -->\n<template>\n <button\n :class=\"classes\"\n :aria-disabled=\"disabled\"\n :title=\"title\"\n :aria-label=\"title\"\n @click=\"onClick\"\n >\n <slot />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n /** Disable the button */\n disabled?: boolean;\n /** Title of the button */\n title?: string;\n /** Primary style for button */\n primary?: boolean;\n /** Icon style for button */\n icon?: boolean;\n}>();\n\nconst emit = defineEmits<{\n /** Emitted when the user clicks on the button */\n (e: 'click'): void;\n}>();\n\nconst classes = computed((): Array<string> => {\n const ary: Array<string> = ['btn', 'd-flex'];\n if (props.primary) {\n ary.push('btn-primary');\n }\n if (props.icon) {\n ary.push('btn-icon');\n }\n return ary;\n});\n\nfunction onClick(): void {\n if (!props.disabled) {\n emit('click');\n }\n}\n</script>\n"],"mappings":";;;;;;AA+BA,IAAK,SAAL,yBAAA,QAAA;CACI,OAAA,UAAA;CACA,OAAA,YAAA;;AACJ,EAHK,UAAA,CAAA,CAGL;;;;;;;;;;;;;;;;EAcA,MAAM,OAAO;;;;;EAab,SAAS,UAAgB;GACrB,IAAI,QAAA,iBAAiB,KAAA,GACjB,KAAK,OAAO;QAEZ,UAAU,QAAQ;EAE1B;;;;;EAMA,MAAM,YAAY,IAAI,KAAK;;EAG3B,SAAS,iBAAuB;GAC5B,UAAU,QAAQ;GAClB,KAAK,OAAO;EAChB;;;;;;;SAOa,eAA0B;IACnC,QAAQ,QAAA,QAAR;KACI,KAAA,QACI,OAAO,cAAM;KAEjB,KAAA,UACI,OAAO,cAAM;KAEjB,SACI;IACR;GACJ,CAAA;;;;;;;;;;;;;;qBChGI,mBAqBM,OAAA,MAAA;EApBF,mBAAA,iDAAA;EACA,mBAMS,UAAA;GALL,OAAM;GACL,OAAO,OAAA;GACP,SAAO,OAAA;oBAER,YAAwB,wBAAR,OAAA,IAAI,CAAA,EAAA,GAAA,GAAA,YAAA;EAGxB,mBAAA,iCAAA;EAEU,OAAA,aAAA,UAAA,GADV,YASE,OAAA,iBAAA;;GAPG,OAAO,OAAA,aAAa;GACpB,SAAS,OAAA,aAAa;GACtB,cAAc,KAAA,GAAE,KAAA;GAChB,YAAY,KAAA,GAAE,IAAA;GACd,YAAU,OAAA;GACV,UAAM,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,YAAS;GACjB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,YAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECJ7B,MAAM,QAAQ;EAWd,MAAM,OAAO;EAKb,MAAM,UAAU,eAA8B;GAC1C,MAAM,MAAqB,CAAC,OAAO,QAAQ;GAC3C,IAAI,MAAM,SACN,IAAI,KAAK,aAAa;GAE1B,IAAI,MAAM,MACN,IAAI,KAAK,UAAU;GAEvB,OAAO;EACX,CAAC;EAED,SAAS,UAAgB;GACrB,IAAI,CAAC,MAAM,UACP,KAAK,OAAO;EAEpB;;;;;;;;;;;;;;;;;;;;;;qBC7CI,mBAQS,UAAA;EAPJ,OAAK,eAAE,OAAA,OAAO;EACd,iBAAe,OAAA;EACf,OAAO,OAAA;EACP,cAAY,OAAA;EACZ,SAAO,OAAA;KAER,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,IAAA,UAAA"}