@saooti/octopus-sdk 42.0.3 → 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 (1065) 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/composable/usePresentationItem.ts +3 -1
  829. package/src/components/display/live/RadioCurrently.vue +3 -4
  830. package/src/components/layouts/PresentationItem.vue +8 -1
  831. package/src/components/layouts/PresentationLayout.vue +9 -3
  832. package/src/components/misc/ProgressBar.vue +0 -1
  833. package/src/components/misc/player/ads/AdsProgressBar.vue +17 -1
  834. package/src/components/misc/player/radio/RadioProgressBar.vue +16 -0
  835. package/src/stores/AuthStore.ts +10 -1
  836. package/dist/AccessibilityModal-CBIb3UQS.mjs +0 -93
  837. package/dist/AdsProgressBar-BwRrrKOT.mjs +0 -19
  838. package/dist/AdvancedSearch-CRM10skn.mjs +0 -249
  839. package/dist/AmazonMusicIcon-6zqZK6Q9.mjs +0 -39
  840. package/dist/ApplePodcastIcon-C3ogP5y5.mjs +0 -40
  841. package/dist/CategoryChooser-Ct0No4RM.mjs +0 -173
  842. package/dist/CategoryFilter-Brp-KFg7.mjs +0 -146
  843. package/dist/CategoryList-CMOJ2PnA.mjs +0 -107
  844. package/dist/CategoryPage-Bc37UcZy.mjs +0 -28
  845. package/dist/CategorySearchFilter-BRfxF0yK.mjs +0 -39
  846. package/dist/ChapteringModal-CyH6QLeE.mjs +0 -46
  847. package/dist/CheckIdentityModal-CHV9trKX.mjs +0 -51
  848. package/dist/ChooseEpisodesNumber-CXJO5dfs.mjs +0 -33
  849. package/dist/ClassicAccordion-Czni43ek.mjs +0 -71
  850. package/dist/ClassicAlert-1IB6N33c.mjs +0 -35
  851. package/dist/ClassicBigChip-D6QO8W-G.mjs +0 -25
  852. package/dist/ClassicCheckbox-xPu56Drn.mjs +0 -89
  853. package/dist/ClassicContentEditable-CWmtRihd.mjs +0 -45
  854. package/dist/ClassicCopyButton-DJ9T09fS.mjs +0 -52
  855. package/dist/ClassicDatePicker-BrPx6CHY.mjs +0 -187
  856. package/dist/ClassicEmojiPicker-2c55qjy6.mjs +0 -63
  857. package/dist/ClassicHelpButton-DdEJu6tX.mjs +0 -34
  858. package/dist/ClassicInputText-ILQDQz8R.mjs +0 -270
  859. package/dist/ClassicLazy-DhdsXyI4.mjs +0 -56
  860. package/dist/ClassicLoading-CXfMjpyl.mjs +0 -40
  861. package/dist/ClassicModal-Dl2IdzXZ.mjs +0 -63
  862. package/dist/ClassicModalInBody-D5-RfQ8Z.mjs +0 -58
  863. package/dist/ClassicMultiselect-DKdQdAtp.mjs +0 -201
  864. package/dist/ClassicNav-DYez6p1J.mjs +0 -47
  865. package/dist/ClassicPopover-6uo-YUgO.mjs +0 -167
  866. package/dist/ClassicRadio-BbJEgMB7.mjs +0 -61
  867. package/dist/ClassicRadioLabel-DgimkkQe.mjs +0 -76
  868. package/dist/ClassicSearch-CtL1cpnF.mjs +0 -63
  869. package/dist/ClassicSelect-BpA0jKN6.mjs +0 -111
  870. package/dist/ClassicSpinner-DFRDD51g.mjs +0 -28
  871. package/dist/ClassicTabs-DYOZLNK2.mjs +0 -40
  872. package/dist/ClassicTagInput-DiRwA8CF.mjs +0 -62
  873. package/dist/ClassicWysiwyg-CbBzD-21.mjs +0 -164
  874. package/dist/ClipboardModal-B0Jt9ME7.mjs +0 -56
  875. package/dist/CommentBasicView-CJgGRZXW.mjs +0 -76
  876. package/dist/CommentInput-ChEnqzNa.mjs +0 -111
  877. package/dist/CommentItem-BE3-5CFl.mjs +0 -155
  878. package/dist/CommentList-B0fDtqIH.mjs +0 -204
  879. package/dist/CommentMoreActions-DFTHxzHB.mjs +0 -191
  880. package/dist/CommentName-ByE5TV4u.mjs +0 -56
  881. package/dist/CommentParentInfo-DyzP495k.mjs +0 -36
  882. package/dist/CommentPlayer-2eRUFpll.mjs +0 -47
  883. package/dist/CommentSection-DQx3qX6H.mjs +0 -79
  884. package/dist/CommentStore-C4lkShsH.mjs +0 -279
  885. package/dist/ContractPreviewModal-BxOE6aiU.mjs +0 -53
  886. package/dist/CountDown-o6ye6yv1.mjs +0 -17
  887. package/dist/CountdownOctopus-D0X5hVBu.mjs +0 -23
  888. package/dist/DateFilter-67VvJ4ez.mjs +0 -79
  889. package/dist/DeezerIcon-CybxfijL.mjs +0 -39
  890. package/dist/DownloadPodcastButton-Dcgt8FfA.mjs +0 -30
  891. package/dist/EditCommentModal-K6D1-4gU.mjs +0 -114
  892. package/dist/EditFtpIcon-B1FO4hqc.mjs +0 -39
  893. package/dist/EmissionGroupChooser-B0UXS-d_.mjs +0 -44
  894. package/dist/EmissionInlineList-CRJ4pIxb.mjs +0 -113
  895. package/dist/EmissionItem-8WTkKsCa.mjs +0 -116
  896. package/dist/EmissionList-ucpW_ejS.mjs +0 -230
  897. package/dist/EmissionPage-B8Nlb52Y.mjs +0 -188
  898. package/dist/EmissionPlayerItem-BzuNcAsq.mjs +0 -119
  899. package/dist/EmissionPresentationItem-ZU93UKW2.mjs +0 -41
  900. package/dist/EmissionPresentationList-LY-FEWC2.mjs +0 -92
  901. package/dist/EmissionsPage-wzpDLmzO.mjs +0 -112
  902. package/dist/Error403Page-DLaOyud0.mjs +0 -40
  903. package/dist/ErrorMessage-B4gtlriP.mjs +0 -22
  904. package/dist/FooterGarSection-BwFRytaV.mjs +0 -39
  905. package/dist/FooterSection-VGdzyEZf.mjs +0 -148
  906. package/dist/GeneralStore-Darfv4af.mjs +0 -39
  907. package/dist/HomeDropdown-CNSPuJot.mjs +0 -66
  908. package/dist/HomePage-CGaCXQBm.mjs +0 -106
  909. package/dist/IHeartIcon-DP1otYre.mjs +0 -42
  910. package/dist/LikeButton-Cu8jAJHx.mjs +0 -40
  911. package/dist/LikeSection-D_q391TU.mjs +0 -96
  912. package/dist/ListPaginate-B-PYbP3K.mjs +0 -147
  913. package/dist/LiveHorizontalList-CDIDwBWJ.mjs +0 -77
  914. package/dist/LiveList-Dvxk12Cc.mjs +0 -206
  915. package/dist/LivesPage-BByFveAd.mjs +0 -40
  916. package/dist/MapPage-w7hUFr9g.mjs +0 -240
  917. package/dist/MessageModal-BcqS77v6.mjs +0 -101
  918. package/dist/MobileMenu-D19pTUkT.mjs +0 -136
  919. package/dist/MonetizableFilter-B7NHzXEY.mjs +0 -58
  920. package/dist/NewsletterModal-BekCWfJB.mjs +0 -53
  921. package/dist/OctopusMultiselect-CaLjXg_3.mjs +0 -234
  922. package/dist/OrganisationChooser-ywDaRPU9.mjs +0 -133
  923. package/dist/OrganisationChooserLight-CMNA-YR5.mjs +0 -48
  924. package/dist/PageLogout-CVZHOw8c.mjs +0 -12
  925. package/dist/PageNotFound-kY0Vk237.mjs +0 -37
  926. package/dist/PaginateParams-Bjz3ZI-5.mjs +0 -75
  927. package/dist/PaginateSection-Oip_5JHt.mjs +0 -137
  928. package/dist/ParticipantDescription-DVSfKvtg.mjs +0 -46
  929. package/dist/ParticipantInlineList-n3IcMXXU.mjs +0 -84
  930. package/dist/ParticipantItem-CoS5qVct.mjs +0 -91
  931. package/dist/ParticipantPage-CqwpZDjv.mjs +0 -129
  932. package/dist/ParticipantsPage-BzZFxuAX.mjs +0 -168
  933. package/dist/PlayVideoIcon-BhTQpMyL.mjs +0 -40
  934. package/dist/PlayerAnonymousModal-Clf2m_PO.mjs +0 -61
  935. package/dist/PlayerCommonParameters-x0zV7AoW.mjs +0 -27
  936. package/dist/PlayerCompact-ff2-h0Ys.mjs +0 -128
  937. package/dist/PlayerComponent-BIZ29VAP.mjs +0 -592
  938. package/dist/PlayerFmIcon-D7gURz4r.mjs +0 -39
  939. package/dist/PlayerLarge-C958Fkm_.mjs +0 -128
  940. package/dist/PlayerParameters-kVBMXQIb.mjs +0 -173
  941. package/dist/PlayerPlayButton-DL0e7DAU.mjs +0 -231
  942. package/dist/PlayerProgressBar-DK9ClWaE.mjs +0 -67
  943. package/dist/PlayerStore-DlQZRxsf.mjs +0 -166
  944. package/dist/PlayerVideo-BRkaIXH7.mjs +0 -35
  945. package/dist/PlayerVideoDigiteka-CNfWw0hs.mjs +0 -59
  946. package/dist/PlayerVideoHls-Czu2Xvob.mjs +0 -125
  947. package/dist/PlayerYoutubeEmbed-D-UrFhXm.mjs +0 -25
  948. package/dist/PlaylistPage-BV_3q5Pg.mjs +0 -135
  949. package/dist/PlaylistsPage-g82vXz51.mjs +0 -254
  950. package/dist/PocketCastIcon-CM5NDsDa.mjs +0 -39
  951. package/dist/PodcastAddictIcon-CW3Uxj4I.mjs +0 -42
  952. package/dist/PodcastFilterList-CpH9ALL0.mjs +0 -139
  953. package/dist/PodcastImage-Kr7qE9PW.mjs +0 -115
  954. package/dist/PodcastInlineList-CSPSuPXn.mjs +0 -117
  955. package/dist/PodcastInlineListTemplate-CBGWengl.mjs +0 -180
  956. package/dist/PodcastIsPlaying-CvZMCgrV.mjs +0 -17
  957. package/dist/PodcastItem-B6xZ9spO.mjs +0 -158
  958. package/dist/PodcastList-DM2kODR9.mjs +0 -113
  959. package/dist/PodcastList-DN7U6G3x.mjs +0 -184
  960. package/dist/PodcastPage-ClPlzjJY.mjs +0 -409
  961. package/dist/PodcastPlannedSpinner-DcDDays8.mjs +0 -12
  962. package/dist/PodcastPlayBar-C-7lR6Or.mjs +0 -39
  963. package/dist/PodcastPlayBasicButton-akh9XtTL.mjs +0 -44
  964. package/dist/PodcastPlayButton-CqjJC_GT.mjs +0 -118
  965. package/dist/PodcastPlaylistInlineList-DTJpiuMG.mjs +0 -63
  966. package/dist/PodcastPresentationList-B0D9wjP2.mjs +0 -130
  967. package/dist/PodcastProgressBar-CIf_zX6H.mjs +0 -66
  968. package/dist/PodcastRawTranscript-EqIv2k5F.mjs +0 -100
  969. package/dist/PodcastRubriqueList-DCchX3n9.mjs +0 -46
  970. package/dist/PodcastSeasonInfo-DDGSqj8M.mjs +0 -28
  971. package/dist/PodcastSwiperList-PSwifeRx.mjs +0 -164
  972. package/dist/PodcastmakerHeader-DpCkSoQE.mjs +0 -33
  973. package/dist/PodcastsPage-CSWymx6J.mjs +0 -123
  974. package/dist/PresentationLayout-LcZqb8bn.mjs +0 -62
  975. package/dist/ProductorSearch-l_LHvS3J.mjs +0 -91
  976. package/dist/ProgressBar-CB9kEepm.mjs +0 -112
  977. package/dist/QrCode-D-3wdYEC.mjs +0 -105
  978. package/dist/QrCodeModal-BAk2VQzU.mjs +0 -43
  979. package/dist/RadioCurrently-r21pyYBe.mjs +0 -57
  980. package/dist/RadioHistory-BNqw7gzG.mjs +0 -89
  981. package/dist/RadioImage-IbBgMDUL.mjs +0 -46
  982. package/dist/RadioList-CLjDwo6u.mjs +0 -70
  983. package/dist/RadioPage-Bx4i1Mpi.mjs +0 -72
  984. package/dist/RadioPlanning-Br27Ttix.mjs +0 -183
  985. package/dist/RadioProgressBar-Cb3AfYLQ.mjs +0 -31
  986. package/dist/RadiolineIcon-CxHZGhfr.mjs +0 -40
  987. package/dist/RecaptchaModal-CxtAdOpC.mjs +0 -95
  988. package/dist/ReportAbuseModal-iggcskxa.mjs +0 -92
  989. package/dist/RightsIndicator-D_7amy65.mjs +0 -58
  990. package/dist/RightsWrapper-Bo6Xza5_.mjs +0 -104
  991. package/dist/RubriqueChoice-DWvVVaMg.mjs +0 -101
  992. package/dist/RubriqueChooser-B7wvJeQc.mjs +0 -165
  993. package/dist/RubriqueFilter-CJDRNtiD.mjs +0 -119
  994. package/dist/RubriqueList-CISdSdFN.mjs +0 -117
  995. package/dist/RubriquePage-C8CF_iFS.mjs +0 -71
  996. package/dist/SearchOrder-D_dAhj9M.mjs +0 -62
  997. package/dist/SearchPage-DvLjGwKI.mjs +0 -38
  998. package/dist/ShareAnonymous-GQ600Owz.mjs +0 -189
  999. package/dist/ShareModalPlayer-pB-HAwc-.mjs +0 -87
  1000. package/dist/ShareNewsletter-Cdyw0GB9.mjs +0 -143
  1001. package/dist/SharePlayer-XribbnSm.mjs +0 -210
  1002. package/dist/SharePlayerColors-BpdifsHh.mjs +0 -49
  1003. package/dist/SharePlayerRadio-Co0G90iE.mjs +0 -66
  1004. package/dist/SharePlayerTypes-Crlc6fV2.mjs +0 -148
  1005. package/dist/ShareSocialsButtons-oPwpAJiG.mjs +0 -100
  1006. package/dist/SimpleLayout-DO6e66-u.mjs +0 -22
  1007. package/dist/SmartLinkPage-Bfe3J2rs.mjs +0 -131
  1008. package/dist/SnackBar-BL-mLRun.mjs +0 -128
  1009. package/dist/SubscribeButtons-BsUSeVE2.mjs +0 -120
  1010. package/dist/SwiperList-05VP6fwg.mjs +0 -119
  1011. package/dist/TagList-CpH_cvNv.mjs +0 -80
  1012. package/dist/TagPage-B7mbRbqr.mjs +0 -79
  1013. package/dist/TopBar-DljepaOt.mjs +0 -260
  1014. package/dist/TuninIcon-DENNxlP8.mjs +0 -39
  1015. package/dist/UserButtonContent-B20fPV-J.mjs +0 -125
  1016. package/dist/VastStore-8IiEgtQW.mjs +0 -71
  1017. package/dist/VideoModuleBox-DJdYQGMX.mjs +0 -58
  1018. package/dist/VideoPage-Bllo2Q-Y.mjs +0 -148
  1019. package/dist/XIcon-DNBT2Zgf.mjs +0 -39
  1020. package/dist/_plugin-vue_export-helper-B3ysoDQm.mjs +0 -8
  1021. package/dist/buttons-CWMRsA_g.mjs +0 -79
  1022. package/dist/classicApi-CT9k0xvp.mjs +0 -1176
  1023. package/dist/config-DMjLBcZ2.mjs +0 -7
  1024. package/dist/cookiesHelper-BQ3M1-Xr.mjs +0 -20
  1025. package/dist/displayHelper-DQtoqc_6.mjs +0 -11
  1026. package/dist/domHelper-BPw2kGCL.mjs +0 -12
  1027. package/dist/downloadHelper-DkfB6XQg.mjs +0 -23
  1028. package/dist/educationen-KT401RLo.mjs +0 -16
  1029. package/dist/educationfr-BIafOUp-.mjs +0 -4
  1030. package/dist/emission-CQ1VuxRc.mjs +0 -22
  1031. package/dist/icons-aOUoelo6.mjs +0 -11
  1032. package/dist/keys-CV5SBM1i.mjs +0 -4
  1033. package/dist/localisation-CBnt682X.mjs +0 -9
  1034. package/dist/logo_saooti_play_black-Doe3es2H.mjs +0 -4
  1035. package/dist/messages-DxUrH00s.mjs +0 -2677
  1036. package/dist/organisation-JgfYj1Jp.mjs +0 -17
  1037. package/dist/ouest_france_logo-9dPaEPNA.mjs +0 -4
  1038. package/dist/podcast-BoNHyuLe.mjs +0 -53
  1039. package/dist/rolldown-runtime-Dy4uBu1J.mjs +0 -11
  1040. package/dist/stringHelper-8Cu4x0-T.mjs +0 -13
  1041. package/dist/types-BMNwRfo9.mjs +0 -8
  1042. package/dist/useAdvancedParamInit-Y3eC3aep.mjs +0 -111
  1043. package/dist/useCountdown-vXzlLAgF.mjs +0 -32
  1044. package/dist/useDayjs-ayZHsoc2.mjs +0 -28
  1045. package/dist/useErrorHandler-Chh24Net.mjs +0 -12
  1046. package/dist/useImageProxy-C_wlfbSP.mjs +0 -16
  1047. package/dist/useOrgaComputed-CmlIJ5XC.mjs +0 -16
  1048. package/dist/usePlayerLogicProgress-B0mjPIEj.mjs +0 -68
  1049. package/dist/usePodcastView-wkow7peQ.mjs +0 -31
  1050. package/dist/usePresentationItem-C37nsJnQ.mjs +0 -100
  1051. package/dist/useResizePhone-4hSkK5pa.mjs +0 -28
  1052. package/dist/useRights-CXa0yDii.mjs +0 -221
  1053. package/dist/useRouteUpdateParams-DJLm3IAI.mjs +0 -55
  1054. package/dist/useRubriquesFilterComputed-goozXeIB.mjs +0 -11
  1055. package/dist/useRubriquesFilterParam-CrsdD0Oj.mjs +0 -32
  1056. package/dist/useSeasonsManagement-DwbmJywJ.mjs +0 -24
  1057. package/dist/useSelenium-DAM6EF3J.mjs +0 -9
  1058. package/dist/useSeoTitleUrl-UfPXDCPa.mjs +0 -25
  1059. package/dist/useSharePath-D9G8Jdlb.mjs +0 -40
  1060. package/dist/useSharePlatforms-B7Xnf_If.mjs +0 -322
  1061. package/dist/useSimplePageParam-D6TmZIPG.mjs +0 -39
  1062. package/dist/useTagOf-Btweq3v2.mjs +0 -17
  1063. package/dist/useTranslation-D3t40JaE.mjs +0 -139
  1064. package/dist/usefetchRadioData-knVpkZCB.mjs +0 -48
  1065. 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"}