@saooti/octopus-sdk 42.1.2 → 42.2.0

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 (1509) hide show
  1. package/dist/AdvancedSearch-8-KQYWuv.mjs.map +1 -0
  2. package/dist/AdvancedSearch-B0cuNtOh.mjs.map +1 -0
  3. package/dist/AdvancedSearch-B906GvKN.mjs.map +1 -0
  4. package/dist/AdvancedSearch-CTVYYKqG.mjs.map +1 -0
  5. package/dist/AdvancedSearch-CZrfUO8f.mjs.map +1 -0
  6. package/dist/AdvancedSearch-DIKy8A4x.mjs +452 -0
  7. package/dist/AdvancedSearch-DIKy8A4x.mjs.map +1 -0
  8. package/dist/AdvancedSearch-DQkpBDRs.mjs.map +1 -0
  9. package/dist/AdvancedSearch-DkN9HIvk.mjs.map +1 -0
  10. package/dist/AdvancedSearch-Dli7j4mk.mjs.map +1 -0
  11. package/dist/AdvancedSearch-DvWyiUl1.mjs.map +1 -0
  12. package/dist/AdvancedSearch-hzq1op0v.mjs.map +1 -0
  13. package/dist/AdvancedSearch-ksEDWPSw.mjs.map +1 -0
  14. package/dist/CategoryFilter-BpZB6gy9.mjs +237 -0
  15. package/dist/CategoryFilter-BpZB6gy9.mjs.map +1 -0
  16. package/dist/CategoryFilter-C0oHxpLk.mjs.map +1 -0
  17. package/dist/CategoryFilter-CJeJt-Z4.mjs.map +1 -0
  18. package/dist/CategoryFilter-Cn6N_LEr.mjs.map +1 -0
  19. package/dist/CategoryFilter-D6YY4FE0.mjs.map +1 -0
  20. package/dist/CategoryFilter-DAa1ALAl.mjs.map +1 -0
  21. package/dist/CategoryFilter-DzzcHsVO.mjs.map +1 -0
  22. package/dist/CategoryFilter-mMOiHS6f.mjs.map +1 -0
  23. package/dist/CategoryList-BZKIusvs.mjs.map +1 -0
  24. package/dist/CategoryList-Bnfndttx.mjs.map +1 -0
  25. package/dist/CategoryList-DQsVPaGH.mjs.map +1 -0
  26. package/dist/CategoryList-IQKO-tO8.mjs +182 -0
  27. package/dist/CategoryList-IQKO-tO8.mjs.map +1 -0
  28. package/dist/CategoryList-KK01BluB.mjs.map +1 -0
  29. package/dist/CategoryList-PSN8E9C3.mjs.map +1 -0
  30. package/dist/CategoryList-dVk1Qdf-.mjs.map +1 -0
  31. package/dist/CategoryList-zigzQR5w.mjs.map +1 -0
  32. package/dist/CategoryPage-B9-hSANQ.mjs +57 -0
  33. package/dist/CategoryPage-B9-hSANQ.mjs.map +1 -0
  34. package/dist/CategoryPage-B_6fr90f.mjs.map +1 -0
  35. package/dist/CategoryPage-BaCXwiiO.mjs.map +1 -0
  36. package/dist/CategoryPage-BjZj0N4p.mjs.map +1 -0
  37. package/dist/CategoryPage-CTod1jGo.mjs.map +1 -0
  38. package/dist/CategoryPage-CoS87WfG.mjs.map +1 -0
  39. package/dist/CategoryPage-Crjrasms.mjs.map +1 -0
  40. package/dist/CategoryPage-DslgrLKx.mjs.map +1 -0
  41. package/dist/CategoryPage-FXpgAtMR.mjs.map +1 -0
  42. package/dist/CategoryPage-Lau7MKzW.mjs.map +1 -0
  43. package/dist/CategoryPage-SG6mbLkt.mjs.map +1 -0
  44. package/dist/ChapteringModal-BMudjbka.mjs.map +1 -0
  45. package/dist/ChapteringModal-BNLqCYLZ.mjs.map +1 -0
  46. package/dist/ChapteringModal-BxQwqN6-.mjs +82 -0
  47. package/dist/ChapteringModal-BxQwqN6-.mjs.map +1 -0
  48. package/dist/ChapteringModal-C5TDOeej.mjs.map +1 -0
  49. package/dist/ChapteringModal-C7Sfm5kO.mjs.map +1 -0
  50. package/dist/ChapteringModal-DmVwqkUC.mjs.map +1 -0
  51. package/dist/ChapteringModal-DtQOpN5a.mjs.map +1 -0
  52. package/dist/ChapteringModal-WiCrKFtF.mjs.map +1 -0
  53. package/dist/CheckIdentityModal-BT4bAjZH.mjs.map +1 -0
  54. package/dist/CheckIdentityModal-Bdaarn9z.mjs.map +1 -0
  55. package/dist/CheckIdentityModal-BmLHfifA.mjs.map +1 -0
  56. package/dist/CheckIdentityModal-CFetpilI.mjs +86 -0
  57. package/dist/CheckIdentityModal-CFetpilI.mjs.map +1 -0
  58. package/dist/CheckIdentityModal-CcQ-yIx1.mjs.map +1 -0
  59. package/dist/CheckIdentityModal-DWUSOi9U.mjs.map +1 -0
  60. package/dist/CheckIdentityModal-DfkabfeR.mjs.map +1 -0
  61. package/dist/CheckIdentityModal-n_pvPUHo.mjs.map +1 -0
  62. package/dist/ClassicAlert-dYigdfoZ.mjs +85 -0
  63. package/dist/ClipboardModal--RFsihO8.mjs.map +1 -0
  64. package/dist/ClipboardModal-4DyYAK9R.mjs.map +1 -0
  65. package/dist/ClipboardModal-BkAkLwiX.mjs.map +1 -0
  66. package/dist/ClipboardModal-CYB6DPmM.mjs.map +1 -0
  67. package/dist/ClipboardModal-DQjZO1T9.mjs +84 -0
  68. package/dist/ClipboardModal-DQjZO1T9.mjs.map +1 -0
  69. package/dist/ClipboardModal-DRPdNF4-.mjs.map +1 -0
  70. package/dist/ClipboardModal-I4ciABik.mjs.map +1 -0
  71. package/dist/ClipboardModal-jRe-s3Nq.mjs.map +1 -0
  72. package/dist/CommentBasicView-bNaLVdjT.mjs +129 -0
  73. package/dist/CommentInput-3tBdugWy.mjs.map +1 -0
  74. package/dist/CommentInput-BIMzw15T.mjs.map +1 -0
  75. package/dist/CommentInput-CvjgDqNj.mjs.map +1 -0
  76. package/dist/CommentInput-Cz6_b9L-.mjs.map +1 -0
  77. package/dist/CommentInput-D8tZkOG-.mjs +186 -0
  78. package/dist/CommentInput-D8tZkOG-.mjs.map +1 -0
  79. package/dist/CommentInput-DGFTWYsR.mjs.map +1 -0
  80. package/dist/CommentInput-DLHr5B2k.mjs.map +1 -0
  81. package/dist/CommentInput-DRFtGlfL.mjs.map +1 -0
  82. package/dist/CommentItem-B8KAYCXM.mjs.map +1 -0
  83. package/dist/CommentItem-BcDGIj4j.mjs.map +1 -0
  84. package/dist/CommentItem-CJizPyck.mjs.map +1 -0
  85. package/dist/CommentItem-CUplqibZ.mjs.map +1 -0
  86. package/dist/CommentItem-CWoKkkjw.mjs.map +1 -0
  87. package/dist/CommentItem-CZ-71XmG.mjs.map +1 -0
  88. package/dist/CommentItem-Ch41Z98I.mjs +232 -0
  89. package/dist/CommentItem-Ch41Z98I.mjs.map +1 -0
  90. package/dist/CommentItem-DPVn6d9G.mjs.map +1 -0
  91. package/dist/CommentItem-DPgO4tOH.mjs.map +1 -0
  92. package/dist/CommentItem-art5Jx5K.mjs.map +1 -0
  93. package/dist/CommentList-B-h1QlS6.mjs.map +1 -0
  94. package/dist/CommentList-B5mexnTc.mjs +302 -0
  95. package/dist/CommentList-B5mexnTc.mjs.map +1 -0
  96. package/dist/CommentList-B7XaNVz3.mjs.map +1 -0
  97. package/dist/CommentList-Cuf0OULL.mjs.map +1 -0
  98. package/dist/CommentList-D0LwsQbk.mjs.map +1 -0
  99. package/dist/CommentList-DFialBaE.mjs.map +1 -0
  100. package/dist/CommentList-DmnHO2lL.mjs.map +1 -0
  101. package/dist/CommentList-DoiH-YQS.mjs.map +1 -0
  102. package/dist/CommentList-Duun1VSS.mjs.map +1 -0
  103. package/dist/CommentList-_rPvd8-j.mjs.map +1 -0
  104. package/dist/CommentMoreActions-BJk7eXwo.mjs.map +1 -0
  105. package/dist/CommentMoreActions-Bllkl6AL.mjs.map +1 -0
  106. package/dist/CommentMoreActions-BsqvSj88.mjs.map +1 -0
  107. package/dist/CommentMoreActions-C228_ziZ.mjs.map +1 -0
  108. package/dist/CommentMoreActions-CZqt7Ebh.mjs +286 -0
  109. package/dist/CommentMoreActions-CZqt7Ebh.mjs.map +1 -0
  110. package/dist/CommentMoreActions-KcMao3px.mjs.map +1 -0
  111. package/dist/CommentMoreActions-YGdXAtRo.mjs.map +1 -0
  112. package/dist/CommentMoreActions-yh1EftdG.mjs.map +1 -0
  113. package/dist/CommentName-B5ZdVBJC.mjs.map +1 -0
  114. package/dist/CommentName-BD2azrrm.mjs.map +1 -0
  115. package/dist/CommentName-BYkiaMX_.mjs +96 -0
  116. package/dist/CommentName-BYkiaMX_.mjs.map +1 -0
  117. package/dist/CommentName-BqN7PAew.mjs.map +1 -0
  118. package/dist/CommentName-CucfZ1JU.mjs.map +1 -0
  119. package/dist/CommentName-DaIwG_1r.mjs.map +1 -0
  120. package/dist/CommentName-XprJ2e7m.mjs.map +1 -0
  121. package/dist/CommentName-uR2V1uBX.mjs.map +1 -0
  122. package/dist/CommentParentInfo-B-4IJZKq.mjs.map +1 -0
  123. package/dist/CommentParentInfo-B6QihN66.mjs.map +1 -0
  124. package/dist/CommentParentInfo-BXFmOZ3J.mjs.map +1 -0
  125. package/dist/CommentParentInfo-Br53Hnn_.mjs.map +1 -0
  126. package/dist/CommentParentInfo-BvXbU2AT.mjs.map +1 -0
  127. package/dist/CommentParentInfo-CJ4KEDxK.mjs.map +1 -0
  128. package/dist/CommentParentInfo-CTf8YGJo.mjs.map +1 -0
  129. package/dist/CommentParentInfo-CfLIKg-a.mjs +64 -0
  130. package/dist/CommentParentInfo-CfLIKg-a.mjs.map +1 -0
  131. package/dist/CommentParentInfo-CfftHGbK.mjs.map +1 -0
  132. package/dist/CommentParentInfo-CwLFPPLV.mjs.map +1 -0
  133. package/dist/CommentPlayer-BiHovckc.mjs.map +1 -0
  134. package/dist/CommentPlayer-CklZnbF-.mjs.map +1 -0
  135. package/dist/CommentPlayer-DOrCrOVs.mjs.map +1 -0
  136. package/dist/CommentPlayer-DcSLgaFs.mjs +86 -0
  137. package/dist/CommentPlayer-DcSLgaFs.mjs.map +1 -0
  138. package/dist/CommentPlayer-Dr_Q1wAp.mjs.map +1 -0
  139. package/dist/CommentPlayer-Mm8AHGK9.mjs.map +1 -0
  140. package/dist/CommentPlayer-vGqNfb9w.mjs.map +1 -0
  141. package/dist/CommentPlayer-zBrp41zL.mjs.map +1 -0
  142. package/dist/CommentSection-B7TEZHF7.mjs.map +1 -0
  143. package/dist/CommentSection-BIbRND09.mjs +141 -0
  144. package/dist/CommentSection-BIbRND09.mjs.map +1 -0
  145. package/dist/CommentSection-C2SMteiI.mjs.map +1 -0
  146. package/dist/CommentSection-D26c2dSY.mjs.map +1 -0
  147. package/dist/CommentSection-DJhCf4Tg.mjs.map +1 -0
  148. package/dist/CommentSection-Dot5tXUS.mjs.map +1 -0
  149. package/dist/CommentSection-MNW-Sgk9.mjs.map +1 -0
  150. package/dist/CommentSection-WOHdSA9i.mjs.map +1 -0
  151. package/dist/CommentSection-h5WRmElJ.mjs.map +1 -0
  152. package/dist/CommentSection-uUzVRMAv.mjs.map +1 -0
  153. package/dist/CommentStore-B7pzkLnJ.mjs.map +1 -0
  154. package/dist/CommentStore-B_XslEkb.mjs.map +1 -0
  155. package/dist/CommentStore-BsoQ8JE4.mjs.map +1 -0
  156. package/dist/CommentStore-CDafrQ9U.mjs.map +1 -0
  157. package/dist/CommentStore-CToql_kf.mjs.map +1 -0
  158. package/dist/CommentStore-D4aFuelo.mjs.map +1 -0
  159. package/dist/CommentStore-DY_JSo9-.mjs.map +1 -0
  160. package/dist/CommentStore-bKtPx6T5.mjs +355 -0
  161. package/dist/CommentStore-bKtPx6T5.mjs.map +1 -0
  162. package/dist/ContractPreviewModal-BIg6dTcF.mjs +101 -0
  163. package/dist/ContractPreviewModal-BIg6dTcF.mjs.map +1 -0
  164. package/dist/ContractPreviewModal-CAEx2t42.mjs.map +1 -0
  165. package/dist/ContractPreviewModal-CWzo13IS.mjs.map +1 -0
  166. package/dist/ContractPreviewModal-Cur6ifQn.mjs.map +1 -0
  167. package/dist/ContractPreviewModal-Cx2jOY0K.mjs.map +1 -0
  168. package/dist/ContractPreviewModal-DAubbTyX.mjs.map +1 -0
  169. package/dist/ContractPreviewModal-DJ9iuIRO.mjs.map +1 -0
  170. package/dist/ContractPreviewModal-TulGrNUs.mjs.map +1 -0
  171. package/dist/DownloadPodcastButton-BJFgMkGP.mjs.map +1 -0
  172. package/dist/DownloadPodcastButton-BTFYgyz4.mjs +53 -0
  173. package/dist/DownloadPodcastButton-BTFYgyz4.mjs.map +1 -0
  174. package/dist/DownloadPodcastButton-C49TUYY_.mjs.map +1 -0
  175. package/dist/DownloadPodcastButton-Cc1z8M72.mjs.map +1 -0
  176. package/dist/DownloadPodcastButton-CydCrTfy.mjs.map +1 -0
  177. package/dist/DownloadPodcastButton-D7aXh-rD.mjs.map +1 -0
  178. package/dist/DownloadPodcastButton-DWGsL65f.mjs.map +1 -0
  179. package/dist/DownloadPodcastButton-fUfwjwJ4.mjs.map +1 -0
  180. package/dist/EditCommentModal-BYUWBuPm.mjs.map +1 -0
  181. package/dist/EditCommentModal-Bb7urnA0.mjs.map +1 -0
  182. package/dist/EditCommentModal-BpEuISBJ.mjs.map +1 -0
  183. package/dist/EditCommentModal-BviwPlNi.mjs.map +1 -0
  184. package/dist/EditCommentModal-Cc8Ui6Cx.mjs +162 -0
  185. package/dist/EditCommentModal-Cc8Ui6Cx.mjs.map +1 -0
  186. package/dist/EditCommentModal-CgMvU9i5.mjs.map +1 -0
  187. package/dist/EditCommentModal-DMRkpZXe.mjs.map +1 -0
  188. package/dist/EditCommentModal-DlQjjiwI.mjs.map +1 -0
  189. package/dist/EmissionGroupChooser-4JVeuRE7.mjs.map +1 -0
  190. package/dist/EmissionGroupChooser-4JxjHyRy.mjs.map +1 -0
  191. package/dist/EmissionGroupChooser-5c7aD7hj.mjs +82 -0
  192. package/dist/EmissionGroupChooser-5c7aD7hj.mjs.map +1 -0
  193. package/dist/EmissionGroupChooser-BfqHSOeJ.mjs.map +1 -0
  194. package/dist/EmissionGroupChooser-BmVl7ww5.mjs.map +1 -0
  195. package/dist/EmissionGroupChooser-C44R_EK7.mjs.map +1 -0
  196. package/dist/EmissionGroupChooser-DcceBxVb.mjs.map +1 -0
  197. package/dist/EmissionGroupChooser-x_YFTdyX.mjs.map +1 -0
  198. package/dist/EmissionInlineList-B2WZU0tk.mjs.map +1 -0
  199. package/dist/EmissionInlineList-BI7_GMMn.mjs.map +1 -0
  200. package/dist/EmissionInlineList-BSJUVlop.mjs.map +1 -0
  201. package/dist/EmissionInlineList-C7O0r8HK.mjs.map +1 -0
  202. package/dist/EmissionInlineList-CRxNX4fl.mjs.map +1 -0
  203. package/dist/EmissionInlineList-D1Xsv_jA.mjs +188 -0
  204. package/dist/EmissionInlineList-D1Xsv_jA.mjs.map +1 -0
  205. package/dist/EmissionInlineList-DPXmDcbc.mjs.map +1 -0
  206. package/dist/EmissionInlineList-PJukOOru.mjs.map +1 -0
  207. package/dist/EmissionItem-3vn1MhKN.mjs.map +1 -0
  208. package/dist/EmissionItem-BNmzrbKU.mjs.map +1 -0
  209. package/dist/EmissionItem-Bd2IA2iK.mjs.map +1 -0
  210. package/dist/EmissionItem-BfBsk2Ch.mjs.map +1 -0
  211. package/dist/EmissionItem-Bft7IM7C.mjs +183 -0
  212. package/dist/EmissionItem-Bft7IM7C.mjs.map +1 -0
  213. package/dist/EmissionItem-BqkfUKmE.mjs.map +1 -0
  214. package/dist/EmissionItem-C9zqc2PQ.mjs.map +1 -0
  215. package/dist/EmissionItem-CQAB9kfZ.mjs.map +1 -0
  216. package/dist/EmissionItem-DPwRulfC.mjs.map +1 -0
  217. package/dist/EmissionItem-XbvPfojH.mjs.map +1 -0
  218. package/dist/EmissionList-B1SJIDcA.mjs.map +1 -0
  219. package/dist/EmissionList-B5cdTLCu.mjs.map +1 -0
  220. package/dist/EmissionList-Budx6wGr.mjs.map +1 -0
  221. package/dist/EmissionList-CsKEUEtb.mjs.map +1 -0
  222. package/dist/EmissionList-D6_r33dt.mjs.map +1 -0
  223. package/dist/EmissionList-DeHujYzJ.mjs.map +1 -0
  224. package/dist/EmissionList-GKZxghJ1.mjs.map +1 -0
  225. package/dist/EmissionList-PYqHKyad.mjs.map +1 -0
  226. package/dist/EmissionList-WLJL4eaJ.mjs.map +1 -0
  227. package/dist/EmissionList-ofS3nKr2.mjs +325 -0
  228. package/dist/EmissionList-ofS3nKr2.mjs.map +1 -0
  229. package/dist/EmissionPage-B2PQcnFH.mjs.map +1 -0
  230. package/dist/EmissionPage-BTxSGJj5.mjs.map +1 -0
  231. package/dist/EmissionPage-BZ50ZqRI.mjs.map +1 -0
  232. package/dist/EmissionPage-CLBPPbbB.mjs.map +1 -0
  233. package/dist/EmissionPage-CdlIsCg5.mjs +322 -0
  234. package/dist/EmissionPage-CdlIsCg5.mjs.map +1 -0
  235. package/dist/EmissionPage-D9wkUL1Y.mjs.map +1 -0
  236. package/dist/EmissionPage-DG-qKyj6.mjs.map +1 -0
  237. package/dist/EmissionPage-DNrzhRai.mjs.map +1 -0
  238. package/dist/EmissionPage-DVlt2bDB.mjs.map +1 -0
  239. package/dist/EmissionPage-De1hLTjf.mjs.map +1 -0
  240. package/dist/EmissionPage-DodwYSuK.mjs.map +1 -0
  241. package/dist/EmissionPage-oJCLeOwA.mjs.map +1 -0
  242. package/dist/EmissionPlayerItem-B3AA9DUG.mjs.map +1 -0
  243. package/dist/EmissionPlayerItem-B9nPhS0q.mjs +167 -0
  244. package/dist/EmissionPlayerItem-B9nPhS0q.mjs.map +1 -0
  245. package/dist/EmissionPlayerItem-BMsjj0mR.mjs.map +1 -0
  246. package/dist/EmissionPlayerItem-BfKXNH-8.mjs.map +1 -0
  247. package/dist/EmissionPlayerItem-Bkg_iKgu.mjs.map +1 -0
  248. package/dist/EmissionPlayerItem-D4hSP4g-.mjs.map +1 -0
  249. package/dist/EmissionPlayerItem-DXxYisqq.mjs.map +1 -0
  250. package/dist/EmissionPlayerItem-ZW4qsrH5.mjs.map +1 -0
  251. package/dist/EmissionPresentationItem-B4IO88Q5.mjs.map +1 -0
  252. package/dist/EmissionPresentationItem-Bix2Knlw.mjs.map +1 -0
  253. package/dist/EmissionPresentationItem-Btg6V02c.mjs.map +1 -0
  254. package/dist/EmissionPresentationItem-C6IUxgTa.mjs.map +1 -0
  255. package/dist/EmissionPresentationItem-D-Lv8tM_.mjs.map +1 -0
  256. package/dist/EmissionPresentationItem-GB4a2U55.mjs +78 -0
  257. package/dist/EmissionPresentationItem-GB4a2U55.mjs.map +1 -0
  258. package/dist/EmissionPresentationItem-c-pbVk_T.mjs.map +1 -0
  259. package/dist/EmissionPresentationItem-uMJB07l3.mjs.map +1 -0
  260. package/dist/EmissionPresentationList-7PqIDkc6.mjs.map +1 -0
  261. package/dist/EmissionPresentationList-B6PVvXwb.mjs.map +1 -0
  262. package/dist/EmissionPresentationList-B8o1I5tO.mjs.map +1 -0
  263. package/dist/EmissionPresentationList-COoLQosL.mjs.map +1 -0
  264. package/dist/EmissionPresentationList-CUdQrPW_.mjs.map +1 -0
  265. package/dist/EmissionPresentationList-Dt7u5Mla.mjs +125 -0
  266. package/dist/EmissionPresentationList-Dt7u5Mla.mjs.map +1 -0
  267. package/dist/EmissionPresentationList-JraWAUE3.mjs.map +1 -0
  268. package/dist/EmissionPresentationList-nUwmkWa7.mjs.map +1 -0
  269. package/dist/EmissionsPage--XXk91Dq.mjs.map +1 -0
  270. package/dist/EmissionsPage-AOA_2npV.mjs.map +1 -0
  271. package/dist/EmissionsPage-B4aRd98n.mjs.map +1 -0
  272. package/dist/EmissionsPage-BBh_t2QG.mjs.map +1 -0
  273. package/dist/EmissionsPage-BD9ucNwX.mjs.map +1 -0
  274. package/dist/EmissionsPage-BFLoIsdw.mjs.map +1 -0
  275. package/dist/EmissionsPage-BjLEwsfW.mjs.map +1 -0
  276. package/dist/EmissionsPage-BteDpLdX.mjs.map +1 -0
  277. package/dist/EmissionsPage-C55nLjOB.mjs.map +1 -0
  278. package/dist/EmissionsPage-D34ZU9Ce.mjs.map +1 -0
  279. package/dist/EmissionsPage-D7GU4S6G.mjs.map +1 -0
  280. package/dist/EmissionsPage-DQfu2UI-.mjs +203 -0
  281. package/dist/EmissionsPage-DQfu2UI-.mjs.map +1 -0
  282. package/dist/EmissionsPage-DgkUGrwU.mjs.map +1 -0
  283. package/dist/EmissionsPage-DpvPVwCI.mjs.map +1 -0
  284. package/dist/EmissionsPage-S-nMk436.mjs.map +1 -0
  285. package/dist/EmissionsPage-XQJ_lva0.mjs.map +1 -0
  286. package/dist/EmissionsPage-vd5bDbT3.mjs.map +1 -0
  287. package/dist/Error403Page-B419GrvA.mjs.map +1 -0
  288. package/dist/Error403Page-BF9K4EFP.mjs.map +1 -0
  289. package/dist/Error403Page-BselwjZ9.mjs.map +1 -0
  290. package/dist/Error403Page-CVbdhuN7.mjs.map +1 -0
  291. package/dist/Error403Page-CyWAyLFN.mjs.map +1 -0
  292. package/dist/Error403Page-cSGk6jdr.mjs.map +1 -0
  293. package/dist/Error403Page-xviuI62E.mjs.map +1 -0
  294. package/dist/Error403Page-yyOmweXn.mjs +69 -0
  295. package/dist/Error403Page-yyOmweXn.mjs.map +1 -0
  296. package/dist/ErrorMessage-DhSwu9H_.mjs +44 -0
  297. package/dist/FooterGarSection-BJ_nb3y-.mjs.map +1 -0
  298. package/dist/FooterGarSection-BKtQIAGm.mjs.map +1 -0
  299. package/dist/FooterGarSection-BX__olco.mjs.map +1 -0
  300. package/dist/FooterGarSection-BtCdH7Eh.mjs.map +1 -0
  301. package/dist/FooterGarSection-CTfWZV9U.mjs +71 -0
  302. package/dist/FooterGarSection-CTfWZV9U.mjs.map +1 -0
  303. package/dist/FooterGarSection-D4cPjQrK.mjs.map +1 -0
  304. package/dist/FooterGarSection-_nmbth7R.mjs.map +1 -0
  305. package/dist/FooterGarSection-syu-sY6D.mjs.map +1 -0
  306. package/dist/FooterSection-B7U-k8Y_.mjs +242 -0
  307. package/dist/FooterSection-B7U-k8Y_.mjs.map +1 -0
  308. package/dist/FooterSection-BCSsmDtK.mjs.map +1 -0
  309. package/dist/FooterSection-BTLGfXhO.mjs.map +1 -0
  310. package/dist/FooterSection-CzjmceG3.mjs.map +1 -0
  311. package/dist/FooterSection-DXN9hDpW.mjs.map +1 -0
  312. package/dist/FooterSection-VbNEwwAi.mjs.map +1 -0
  313. package/dist/FooterSection-oG2rsgql.mjs.map +1 -0
  314. package/dist/FooterSection-wV6U32yB.mjs.map +1 -0
  315. package/dist/HomeDropdown-35ltOXjq.mjs.map +1 -0
  316. package/dist/HomeDropdown-BBbLy3E2.mjs.map +1 -0
  317. package/dist/HomeDropdown-BEnuQwNk.mjs +110 -0
  318. package/dist/HomeDropdown-BEnuQwNk.mjs.map +1 -0
  319. package/dist/HomeDropdown-BVgXclga.mjs.map +1 -0
  320. package/dist/HomeDropdown-BoUAW1-A.mjs.map +1 -0
  321. package/dist/HomeDropdown-BrBAtaGS.mjs.map +1 -0
  322. package/dist/HomeDropdown-C1t9_37d.mjs.map +1 -0
  323. package/dist/HomeDropdown-CiHwBZRw.mjs.map +1 -0
  324. package/dist/HomePage-1oKIZIbD.mjs.map +1 -0
  325. package/dist/HomePage-5g1hu6m5.mjs.map +1 -0
  326. package/dist/HomePage-8kFIB9jy.mjs.map +1 -0
  327. package/dist/HomePage-BmYeT77a.mjs +166 -0
  328. package/dist/HomePage-BmYeT77a.mjs.map +1 -0
  329. package/dist/HomePage-Bp4D88it.mjs.map +1 -0
  330. package/dist/HomePage-BqCRtmCZ.mjs.map +1 -0
  331. package/dist/HomePage-CA_D6kWn.mjs.map +1 -0
  332. package/dist/HomePage-CdTp7bkN.mjs.map +1 -0
  333. package/dist/HomePage-DLgNoCiZ.mjs.map +1 -0
  334. package/dist/HomePage-MqWZ8gYT.mjs.map +1 -0
  335. package/dist/LikeSection-B6iTVM7V.mjs.map +1 -0
  336. package/dist/LikeSection-CfDZ9By_.mjs.map +1 -0
  337. package/dist/LikeSection-Cnqh3BHR.mjs.map +1 -0
  338. package/dist/LikeSection-CwImuD6V.mjs.map +1 -0
  339. package/dist/LikeSection-D2afnKgR.mjs.map +1 -0
  340. package/dist/LikeSection-a0Qwb0pP.mjs.map +1 -0
  341. package/dist/LikeSection-cjuHVDUb.mjs.map +1 -0
  342. package/dist/LikeSection-xxZrcE6h.mjs +167 -0
  343. package/dist/LikeSection-xxZrcE6h.mjs.map +1 -0
  344. package/dist/ListPaginate-B2GfJ2XG.mjs.map +1 -0
  345. package/dist/ListPaginate-B2sluwKR.mjs.map +1 -0
  346. package/dist/ListPaginate-BVgC_EZc.mjs.map +1 -0
  347. package/dist/ListPaginate-BXC7Wa9A.mjs.map +1 -0
  348. package/dist/ListPaginate-C9YUNHKq.mjs +202 -0
  349. package/dist/ListPaginate-C9YUNHKq.mjs.map +1 -0
  350. package/dist/ListPaginate-CXKYbF91.mjs.map +1 -0
  351. package/dist/ListPaginate-CZg4bNAV.mjs.map +1 -0
  352. package/dist/ListPaginate-Dahe7nCi.mjs.map +1 -0
  353. package/dist/LiveHorizontalList-4qHj8EkS.mjs +136 -0
  354. package/dist/LiveHorizontalList-4qHj8EkS.mjs.map +1 -0
  355. package/dist/LiveHorizontalList-BdKG9ZRq.mjs.map +1 -0
  356. package/dist/LiveHorizontalList-BjtpeOER.mjs.map +1 -0
  357. package/dist/LiveHorizontalList-BlOA_SQ-.mjs.map +1 -0
  358. package/dist/LiveHorizontalList-BrVLNbcs.mjs.map +1 -0
  359. package/dist/LiveHorizontalList-Bt6RBhFx.mjs.map +1 -0
  360. package/dist/LiveHorizontalList-CUeTCxa9.mjs.map +1 -0
  361. package/dist/LiveHorizontalList-DGsHkZXl.mjs.map +1 -0
  362. package/dist/LiveHorizontalList-DaAIBl8_.mjs.map +1 -0
  363. package/dist/LiveHorizontalList-KEcCCoFy.mjs.map +1 -0
  364. package/dist/LiveList-BAfaKtst.mjs.map +1 -0
  365. package/dist/LiveList-BNSIdMf6.mjs +324 -0
  366. package/dist/LiveList-BNSIdMf6.mjs.map +1 -0
  367. package/dist/LiveList-C2LaQd-X.mjs.map +1 -0
  368. package/dist/LiveList-C2MkulGa.mjs.map +1 -0
  369. package/dist/LiveList-DmPveHiA.mjs.map +1 -0
  370. package/dist/LiveList-DougZkb5.mjs.map +1 -0
  371. package/dist/LiveList-SQEyqtXv.mjs.map +1 -0
  372. package/dist/LiveList-d6sxftRL.mjs.map +1 -0
  373. package/dist/LiveList-n5YhfpuV.mjs.map +1 -0
  374. package/dist/LiveList-w_Uqo7pC.mjs.map +1 -0
  375. package/dist/LivesPage-8mNTX_aq.mjs.map +1 -0
  376. package/dist/LivesPage-B8A5oY3Z.mjs.map +1 -0
  377. package/dist/LivesPage-BGB4yHJJ.mjs.map +1 -0
  378. package/dist/LivesPage-Boq-efi1.mjs +76 -0
  379. package/dist/LivesPage-Boq-efi1.mjs.map +1 -0
  380. package/dist/LivesPage-CHKMYyz7.mjs.map +1 -0
  381. package/dist/LivesPage-CVHOjcu9.mjs.map +1 -0
  382. package/dist/LivesPage-ChSsKzdr.mjs.map +1 -0
  383. package/dist/LivesPage-DLRlZsFD.mjs.map +1 -0
  384. package/dist/LivesPage-DXsXeGhq.mjs.map +1 -0
  385. package/dist/LivesPage-y5cSmL9j.mjs.map +1 -0
  386. package/dist/MapPage-BTugok5X.mjs.map +1 -0
  387. package/dist/MapPage-BfFDi0lK.mjs.map +1 -0
  388. package/dist/MapPage-CSpj96-Z.mjs.map +1 -0
  389. package/dist/MapPage-DJqTgIys.mjs.map +1 -0
  390. package/dist/MapPage-DOYeoa-x.mjs +303 -0
  391. package/dist/MapPage-DOYeoa-x.mjs.map +1 -0
  392. package/dist/MapPage-FWrSf-_O.mjs.map +1 -0
  393. package/dist/MapPage-GzLpp82r.mjs.map +1 -0
  394. package/dist/MapPage-OY3Bjb-x.mjs.map +1 -0
  395. package/dist/MobileMenu-B9u1xQu8.mjs +187 -0
  396. package/dist/MobileMenu-B9u1xQu8.mjs.map +1 -0
  397. package/dist/MobileMenu-BRUze5FH.mjs.map +1 -0
  398. package/dist/MobileMenu-CLuWzQ3z.mjs.map +1 -0
  399. package/dist/MobileMenu-D0_AG2lW.mjs.map +1 -0
  400. package/dist/MobileMenu-DES01JNf.mjs.map +1 -0
  401. package/dist/MobileMenu-DyfgyHgN.mjs.map +1 -0
  402. package/dist/MobileMenu-S37TAWuK.mjs.map +1 -0
  403. package/dist/MobileMenu-crc2wKfq.mjs.map +1 -0
  404. package/dist/NewsletterModal-2kYChOhX.mjs.map +1 -0
  405. package/dist/NewsletterModal-CEYb1exr.mjs.map +1 -0
  406. package/dist/NewsletterModal-CV11PCGE.mjs +82 -0
  407. package/dist/NewsletterModal-CV11PCGE.mjs.map +1 -0
  408. package/dist/NewsletterModal-CkR4W1Ht.mjs.map +1 -0
  409. package/dist/NewsletterModal-D7HrTutI.mjs.map +1 -0
  410. package/dist/NewsletterModal-DZDCvN7c.mjs.map +1 -0
  411. package/dist/NewsletterModal-DvRTsz_F.mjs.map +1 -0
  412. package/dist/NewsletterModal-KW33yovN.mjs.map +1 -0
  413. package/dist/OrganisationChooser-C0eRYOpz.mjs.map +1 -0
  414. package/dist/OrganisationChooser-C8lM4mh-.mjs +190 -0
  415. package/dist/OrganisationChooser-C8lM4mh-.mjs.map +1 -0
  416. package/dist/OrganisationChooser-CEtiqAHc.mjs.map +1 -0
  417. package/dist/OrganisationChooser-Cw9yAxM1.mjs.map +1 -0
  418. package/dist/OrganisationChooser-DlUUt477.mjs.map +1 -0
  419. package/dist/OrganisationChooser-PPMxSop3.mjs.map +1 -0
  420. package/dist/OrganisationChooser-_-CAzQyG.mjs.map +1 -0
  421. package/dist/OrganisationChooser-wmM2dstX.mjs.map +1 -0
  422. package/dist/OrganisationChooserLight-2xITz8LG.mjs.map +1 -0
  423. package/dist/OrganisationChooserLight-B6Ffp6Z5.mjs.map +1 -0
  424. package/dist/OrganisationChooserLight-BI_H3aco.mjs.map +1 -0
  425. package/dist/OrganisationChooserLight-BN4PqeMz.mjs.map +1 -0
  426. package/dist/OrganisationChooserLight-BZRuebHC.mjs.map +1 -0
  427. package/dist/OrganisationChooserLight-B_Bn5uSJ.mjs +84 -0
  428. package/dist/OrganisationChooserLight-B_Bn5uSJ.mjs.map +1 -0
  429. package/dist/OrganisationChooserLight-D8dRc3o0.mjs.map +1 -0
  430. package/dist/OrganisationChooserLight-tifNDlC_.mjs.map +1 -0
  431. package/dist/PageNotFound-BcAeMiaz.mjs +58 -0
  432. package/dist/PageNotFound-BcAeMiaz.mjs.map +1 -0
  433. package/dist/PageNotFound-C-AtqE7u.mjs.map +1 -0
  434. package/dist/PageNotFound-CQoSdX4h.mjs.map +1 -0
  435. package/dist/PageNotFound-DCyGvvjK.mjs.map +1 -0
  436. package/dist/PageNotFound-DDu5NdY6.mjs.map +1 -0
  437. package/dist/PageNotFound-DMhQmfyW.mjs.map +1 -0
  438. package/dist/PageNotFound-DiO28Uji.mjs.map +1 -0
  439. package/dist/PageNotFound-sTlWzrAN.mjs.map +1 -0
  440. package/dist/ParticipantInlineList-B1vb8SQt.mjs.map +1 -0
  441. package/dist/ParticipantInlineList-B5MkLUnV.mjs.map +1 -0
  442. package/dist/ParticipantInlineList-BP9OjWPq.mjs +117 -0
  443. package/dist/ParticipantInlineList-BP9OjWPq.mjs.map +1 -0
  444. package/dist/ParticipantInlineList-BYdLxjB-.mjs.map +1 -0
  445. package/dist/ParticipantInlineList-C-OvFC-T.mjs.map +1 -0
  446. package/dist/ParticipantInlineList-DKfNcyCs.mjs.map +1 -0
  447. package/dist/ParticipantInlineList-DxR0tF8d.mjs.map +1 -0
  448. package/dist/ParticipantInlineList-IdQ4k-BB.mjs.map +1 -0
  449. package/dist/ParticipantInlineList-Jp6ZPUiC.mjs.map +1 -0
  450. package/dist/ParticipantInlineList-xr_f6rws.mjs.map +1 -0
  451. package/dist/ParticipantItem-1mjH8LQc.mjs.map +1 -0
  452. package/dist/ParticipantItem-B5LzNAVr.mjs.map +1 -0
  453. package/dist/ParticipantItem-B6rGq73q.mjs.map +1 -0
  454. package/dist/ParticipantItem-BT0kKsD_.mjs.map +1 -0
  455. package/dist/ParticipantItem-BsBOW5Yg.mjs.map +1 -0
  456. package/dist/ParticipantItem-C20V5K4U.mjs.map +1 -0
  457. package/dist/ParticipantItem-CKNqNtC5.mjs.map +1 -0
  458. package/dist/ParticipantItem-DROwf2Gt.mjs +138 -0
  459. package/dist/ParticipantItem-DROwf2Gt.mjs.map +1 -0
  460. package/dist/ParticipantItem-TDEi9-3v.mjs.map +1 -0
  461. package/dist/ParticipantItem-gqm3Owcx.mjs.map +1 -0
  462. package/dist/ParticipantPage-BGAqjBAA.mjs.map +1 -0
  463. package/dist/ParticipantPage-BQlW9QQ-.mjs.map +1 -0
  464. package/dist/ParticipantPage-BbhRQklZ.mjs.map +1 -0
  465. package/dist/ParticipantPage-Be2HlTm5.mjs.map +1 -0
  466. package/dist/ParticipantPage-BqPiczyZ.mjs.map +1 -0
  467. package/dist/ParticipantPage-By7Ypu8d.mjs.map +1 -0
  468. package/dist/ParticipantPage-C93DkNt5.mjs +203 -0
  469. package/dist/ParticipantPage-C93DkNt5.mjs.map +1 -0
  470. package/dist/ParticipantPage-CQ9hF05G.mjs.map +1 -0
  471. package/dist/ParticipantPage-DngwIHgZ.mjs.map +1 -0
  472. package/dist/ParticipantPage-cDn-E9VN.mjs.map +1 -0
  473. package/dist/ParticipantPage-hgT3P6p-.mjs.map +1 -0
  474. package/dist/ParticipantPage-zjsGF4KY.mjs.map +1 -0
  475. package/dist/ParticipantsPage-BIlXpxuX.mjs.map +1 -0
  476. package/dist/ParticipantsPage-Bb_0zdJj.mjs.map +1 -0
  477. package/dist/ParticipantsPage-BpN4nG3P.mjs.map +1 -0
  478. package/dist/ParticipantsPage-Bxm26IWx.mjs.map +1 -0
  479. package/dist/ParticipantsPage-C1VilJ_B.mjs.map +1 -0
  480. package/dist/ParticipantsPage-CHs_EUKe.mjs.map +1 -0
  481. package/dist/ParticipantsPage-CuIGt0hS.mjs +262 -0
  482. package/dist/ParticipantsPage-CuIGt0hS.mjs.map +1 -0
  483. package/dist/ParticipantsPage-DZRDaeeU.mjs.map +1 -0
  484. package/dist/ParticipantsPage-Dh4qxy53.mjs.map +1 -0
  485. package/dist/ParticipantsPage-DsSdBC7m.mjs.map +1 -0
  486. package/dist/ParticipantsPage-vriueLXv.mjs.map +1 -0
  487. package/dist/PlayerAnonymousModal-C_YX6p2e.mjs.map +1 -0
  488. package/dist/PlayerAnonymousModal-DID5SKut.mjs.map +1 -0
  489. package/dist/PlayerAnonymousModal-DJRBilzy.mjs.map +1 -0
  490. package/dist/PlayerAnonymousModal-DL5bX-br.mjs.map +1 -0
  491. package/dist/PlayerAnonymousModal-DS-xCiYS.mjs.map +1 -0
  492. package/dist/PlayerAnonymousModal-DShsz29z.mjs +84 -0
  493. package/dist/PlayerAnonymousModal-DShsz29z.mjs.map +1 -0
  494. package/dist/PlayerAnonymousModal-N7254PdP.mjs.map +1 -0
  495. package/dist/PlayerAnonymousModal-PSOxZM4G.mjs.map +1 -0
  496. package/dist/PlayerCompact-2c7jXoLe.mjs.map +1 -0
  497. package/dist/PlayerCompact-B6RkPvdB.mjs.map +1 -0
  498. package/dist/PlayerCompact-BKZC9_Q3.mjs.map +1 -0
  499. package/dist/PlayerCompact-BVSkJWnf.mjs +209 -0
  500. package/dist/PlayerCompact-BVSkJWnf.mjs.map +1 -0
  501. package/dist/PlayerCompact-BrA80Jz_.mjs.map +1 -0
  502. package/dist/PlayerCompact-CYykvc0T.mjs.map +1 -0
  503. package/dist/PlayerCompact-DLQYBn_3.mjs.map +1 -0
  504. package/dist/PlayerCompact-DbGxllSc.mjs.map +1 -0
  505. package/dist/PlayerComponent-BjkuZ9bv.mjs.map +1 -0
  506. package/dist/PlayerComponent-CLm4OApf.mjs.map +1 -0
  507. package/dist/PlayerComponent-D0kpJ6o7.mjs.map +1 -0
  508. package/dist/PlayerComponent-D56wEuQi.mjs.map +1 -0
  509. package/dist/PlayerComponent-DKwM8vDK.mjs.map +1 -0
  510. package/dist/PlayerComponent-DVnvB6Ky.mjs.map +1 -0
  511. package/dist/PlayerComponent-dU_bgj3K.mjs +929 -0
  512. package/dist/PlayerComponent-dU_bgj3K.mjs.map +1 -0
  513. package/dist/PlayerComponent-fTZlW3Ea.mjs.map +1 -0
  514. package/dist/PlayerLarge-B0qqu2xB.mjs.map +1 -0
  515. package/dist/PlayerLarge-BdsuxcfX.mjs.map +1 -0
  516. package/dist/PlayerLarge-Bl41fSG2.mjs.map +1 -0
  517. package/dist/PlayerLarge-BnsLvwU7.mjs +190 -0
  518. package/dist/PlayerLarge-BnsLvwU7.mjs.map +1 -0
  519. package/dist/PlayerLarge-C0XfCxlz.mjs.map +1 -0
  520. package/dist/PlayerLarge-DROavb5D.mjs.map +1 -0
  521. package/dist/PlayerLarge-DaZlXOLQ.mjs.map +1 -0
  522. package/dist/PlayerLarge-LCB9mX1V.mjs.map +1 -0
  523. package/dist/PlayerPlayButton-BYEFygUQ.mjs.map +1 -0
  524. package/dist/PlayerPlayButton-BuF91IV9.mjs.map +1 -0
  525. package/dist/PlayerPlayButton-CCpKjcaD.mjs.map +1 -0
  526. package/dist/PlayerPlayButton-DPAfPfHk.mjs +400 -0
  527. package/dist/PlayerPlayButton-DPAfPfHk.mjs.map +1 -0
  528. package/dist/PlayerPlayButton-DRhJLBkl.mjs.map +1 -0
  529. package/dist/PlayerPlayButton-DgJ9DiOR.mjs.map +1 -0
  530. package/dist/PlayerPlayButton-XEcwJsYc.mjs.map +1 -0
  531. package/dist/PlayerPlayButton-sOXhGXWT.mjs.map +1 -0
  532. package/dist/PlayerProgressBar-B44UhkFM.mjs.map +1 -0
  533. package/dist/PlayerProgressBar-BFOvttHk.mjs.map +1 -0
  534. package/dist/PlayerProgressBar-BFz7oBO4.mjs.map +1 -0
  535. package/dist/PlayerProgressBar-C4yp-pJs.mjs.map +1 -0
  536. package/dist/PlayerProgressBar-Ckvqrxxj.mjs.map +1 -0
  537. package/dist/PlayerProgressBar-JkhTTJ1j.mjs.map +1 -0
  538. package/dist/PlayerProgressBar-dPZf2Fgd.mjs +86 -0
  539. package/dist/PlayerProgressBar-dPZf2Fgd.mjs.map +1 -0
  540. package/dist/PlayerProgressBar-xos_D8_I.mjs.map +1 -0
  541. package/dist/PlayerStore-C0e_C1mg.mjs.map +1 -0
  542. package/dist/PlayerStore-CLBB4vTl.mjs.map +1 -0
  543. package/dist/PlayerStore-CNq7ffD-.mjs.map +1 -0
  544. package/dist/PlayerStore-CPx-OF46.mjs.map +1 -0
  545. package/dist/PlayerStore-D2kYKiYY.mjs.map +1 -0
  546. package/dist/PlayerStore-D75I--B4.mjs.map +1 -0
  547. package/dist/PlayerStore-DN54JPUv.mjs.map +1 -0
  548. package/dist/PlayerStore-PXL_fAz0.mjs +230 -0
  549. package/dist/PlayerStore-PXL_fAz0.mjs.map +1 -0
  550. package/dist/PlayerVideo--_Kz9vbZ.mjs +72 -0
  551. package/dist/PlayerVideo--_Kz9vbZ.mjs.map +1 -0
  552. package/dist/PlayerVideo-CGxMdLTE.mjs.map +1 -0
  553. package/dist/PlayerVideo-CSPWdFmf.mjs.map +1 -0
  554. package/dist/PlayerVideo-DN4cWeQP.mjs.map +1 -0
  555. package/dist/PlayerVideo-DPkWsgZo.mjs.map +1 -0
  556. package/dist/PlayerVideo-DT9wZfso.mjs.map +1 -0
  557. package/dist/PlayerVideo-Dbw8-jzi.mjs.map +1 -0
  558. package/dist/PlayerVideo-DcndZxyL.mjs.map +1 -0
  559. package/dist/PlayerVideoDigiteka-B0DM5dUQ.mjs.map +1 -0
  560. package/dist/PlayerVideoDigiteka-B4oUahid.mjs.map +1 -0
  561. package/dist/PlayerVideoDigiteka-BCstFOQv.mjs.map +1 -0
  562. package/dist/PlayerVideoDigiteka-BcXsqqhY.mjs.map +1 -0
  563. package/dist/PlayerVideoDigiteka-BgXoXF4i.mjs.map +1 -0
  564. package/dist/PlayerVideoDigiteka-C2P_Q4Fe.mjs +102 -0
  565. package/dist/PlayerVideoDigiteka-C2P_Q4Fe.mjs.map +1 -0
  566. package/dist/PlayerVideoDigiteka-CGHmdkUL.mjs.map +1 -0
  567. package/dist/PlayerVideoDigiteka-CPJ-l8KX.mjs.map +1 -0
  568. package/dist/PlayerVideoHls-BOZLkJA2.mjs.map +1 -0
  569. package/dist/PlayerVideoHls-BZm6iEVQ.mjs.map +1 -0
  570. package/dist/PlayerVideoHls-Csj2_tFT.mjs.map +1 -0
  571. package/dist/PlayerVideoHls-DPd15ZKL.mjs.map +1 -0
  572. package/dist/PlayerVideoHls-DZBGdNv8.mjs.map +1 -0
  573. package/dist/PlayerVideoHls-Dgxsarmp.mjs.map +1 -0
  574. package/dist/PlayerVideoHls-Dhc3_vMY.mjs.map +1 -0
  575. package/dist/PlayerVideoHls-Rk-hz2k-.mjs +232 -0
  576. package/dist/PlayerVideoHls-Rk-hz2k-.mjs.map +1 -0
  577. package/dist/PlaylistPage-CARz8SKq.mjs.map +1 -0
  578. package/dist/PlaylistPage-CdKGH_W2.mjs.map +1 -0
  579. package/dist/PlaylistPage-CvlY8R47.mjs.map +1 -0
  580. package/dist/PlaylistPage-CzgrhwRb.mjs.map +1 -0
  581. package/dist/PlaylistPage-Czoocs0q.mjs.map +1 -0
  582. package/dist/PlaylistPage-DN8FxJED.mjs.map +1 -0
  583. package/dist/PlaylistPage-DgbdClfy.mjs.map +1 -0
  584. package/dist/PlaylistPage-DvJjwvI_.mjs.map +1 -0
  585. package/dist/PlaylistPage-U_IMEiNw.mjs +228 -0
  586. package/dist/PlaylistPage-U_IMEiNw.mjs.map +1 -0
  587. package/dist/PlaylistPage-ubSxWN1i.mjs.map +1 -0
  588. package/dist/PlaylistPage-vPX_wwEO.mjs.map +1 -0
  589. package/dist/PlaylistsPage--BdUCleq.mjs.map +1 -0
  590. package/dist/PlaylistsPage-4p58SShT.mjs +395 -0
  591. package/dist/PlaylistsPage-4p58SShT.mjs.map +1 -0
  592. package/dist/PlaylistsPage-BHF-3tgl.mjs.map +1 -0
  593. package/dist/PlaylistsPage-BHkETgSa.mjs.map +1 -0
  594. package/dist/PlaylistsPage-C8RfANak.mjs.map +1 -0
  595. package/dist/PlaylistsPage-CQ3G3kWz.mjs.map +1 -0
  596. package/dist/PlaylistsPage-DImJmIkL.mjs.map +1 -0
  597. package/dist/PlaylistsPage-DPDsiGh5.mjs.map +1 -0
  598. package/dist/PlaylistsPage-dTb2DeOD.mjs.map +1 -0
  599. package/dist/PodcastFilterList-BNIGxX1P.mjs.map +1 -0
  600. package/dist/PodcastFilterList-BT0RdGZZ.mjs.map +1 -0
  601. package/dist/PodcastFilterList-CBWs4fv5.mjs.map +1 -0
  602. package/dist/PodcastFilterList-CQfMOODn.mjs.map +1 -0
  603. package/dist/PodcastFilterList-DR2-SQEy.mjs.map +1 -0
  604. package/dist/PodcastFilterList-Dl0aHVq0.mjs.map +1 -0
  605. package/dist/PodcastFilterList-Dp00QEzb.mjs.map +1 -0
  606. package/dist/PodcastFilterList-WhVuAT9m.mjs.map +1 -0
  607. package/dist/PodcastFilterList-b50X-KG5.mjs.map +1 -0
  608. package/dist/PodcastFilterList-gOQb-JT-.mjs +254 -0
  609. package/dist/PodcastFilterList-gOQb-JT-.mjs.map +1 -0
  610. package/dist/PodcastFilterList-k__beBra.mjs.map +1 -0
  611. package/dist/PodcastImage-3rt4Du7n.mjs.map +1 -0
  612. package/dist/PodcastImage-B6tLtLst.mjs.map +1 -0
  613. package/dist/PodcastImage-BNI3Vww3.mjs.map +1 -0
  614. package/dist/PodcastImage-CE22bv7L.mjs.map +1 -0
  615. package/dist/PodcastImage-CEBOyzBz.mjs.map +1 -0
  616. package/dist/PodcastImage-CznWyL4p.mjs.map +1 -0
  617. package/dist/PodcastImage-DdDPqcxA.mjs.map +1 -0
  618. package/dist/PodcastImage-Dg912wL7.mjs.map +1 -0
  619. package/dist/PodcastImage-DticDvGz.mjs +174 -0
  620. package/dist/PodcastImage-DticDvGz.mjs.map +1 -0
  621. package/dist/PodcastImage-PGYxErxr.mjs.map +1 -0
  622. package/dist/PodcastInlineList-BL3HG-jw.mjs.map +1 -0
  623. package/dist/PodcastInlineList-BjZOw0wI.mjs.map +1 -0
  624. package/dist/PodcastInlineList-C3vrMZAk.mjs.map +1 -0
  625. package/dist/PodcastInlineList-CTD_tFe2.mjs +138 -0
  626. package/dist/PodcastInlineList-CTD_tFe2.mjs.map +1 -0
  627. package/dist/PodcastInlineList-ChJ8ddi5.mjs.map +1 -0
  628. package/dist/PodcastInlineList-Cmu2cTOP.mjs.map +1 -0
  629. package/dist/PodcastInlineList-D38wBYK7.mjs.map +1 -0
  630. package/dist/PodcastInlineList-D5Dl0h8V.mjs.map +1 -0
  631. package/dist/PodcastInlineList-MHNlQLuq.mjs.map +1 -0
  632. package/dist/PodcastInlineList-tEw2WJmy.mjs.map +1 -0
  633. package/dist/PodcastInlineListTemplate-BfxRCala.mjs.map +1 -0
  634. package/dist/PodcastInlineListTemplate-Btey7iJS.mjs.map +1 -0
  635. package/dist/PodcastInlineListTemplate-C9_KNnaX.mjs +233 -0
  636. package/dist/PodcastInlineListTemplate-C9_KNnaX.mjs.map +1 -0
  637. package/dist/PodcastInlineListTemplate-CKXco61U.mjs.map +1 -0
  638. package/dist/PodcastInlineListTemplate-CW7XOFr2.mjs.map +1 -0
  639. package/dist/PodcastInlineListTemplate-D4ifVB1D.mjs.map +1 -0
  640. package/dist/PodcastInlineListTemplate-DxGdlfy4.mjs.map +1 -0
  641. package/dist/PodcastInlineListTemplate-a9VjM3GU.mjs.map +1 -0
  642. package/dist/PodcastIsPlaying-1o91KNzu.mjs +30 -0
  643. package/dist/PodcastIsPlaying-1o91KNzu.mjs.map +1 -0
  644. package/dist/PodcastIsPlaying-BIQLnXYe.mjs.map +1 -0
  645. package/dist/PodcastIsPlaying-C56D5WUb.mjs.map +1 -0
  646. package/dist/PodcastIsPlaying-CUZDPjY0.mjs.map +1 -0
  647. package/dist/PodcastIsPlaying-CcUQuYF2.mjs.map +1 -0
  648. package/dist/PodcastIsPlaying-Dar4_RJh.mjs.map +1 -0
  649. package/dist/PodcastIsPlaying-DlbPM1vB.mjs.map +1 -0
  650. package/dist/PodcastIsPlaying-XPmIL3mo.mjs.map +1 -0
  651. package/dist/PodcastItem-B7tNxSnJ.mjs.map +1 -0
  652. package/dist/PodcastItem-BLywqk77.mjs.map +1 -0
  653. package/dist/PodcastItem-BhCkyYQc.mjs.map +1 -0
  654. package/dist/PodcastItem-BjHbNB4_.mjs.map +1 -0
  655. package/dist/PodcastItem-Bxe64SHW.mjs.map +1 -0
  656. package/dist/PodcastItem-CVUC3kcq.mjs +287 -0
  657. package/dist/PodcastItem-CVUC3kcq.mjs.map +1 -0
  658. package/dist/PodcastItem-D-4uCT1T.mjs.map +1 -0
  659. package/dist/PodcastItem-D7cS1290.mjs.map +1 -0
  660. package/dist/PodcastItem-DRkTXsrb.mjs.map +1 -0
  661. package/dist/PodcastItem-R0ineZi1.mjs.map +1 -0
  662. package/dist/PodcastList-B3nkZx5X.mjs.map +1 -0
  663. package/dist/PodcastList-BPiaze5T.mjs.map +1 -0
  664. package/dist/PodcastList-BZPaW_8e.mjs.map +1 -0
  665. package/dist/PodcastList-BbNTOA48.mjs.map +1 -0
  666. package/dist/PodcastList-BgjMS4hk.mjs.map +1 -0
  667. package/dist/PodcastList-C3_ZT0bi.mjs.map +1 -0
  668. package/dist/PodcastList-CHCOgT9V.mjs.map +1 -0
  669. package/dist/PodcastList-CYST_dBw.mjs.map +1 -0
  670. package/dist/PodcastList-Cl8RvbI9.mjs +182 -0
  671. package/dist/PodcastList-Cl8RvbI9.mjs.map +1 -0
  672. package/dist/PodcastList-CqSK7CYJ.mjs.map +1 -0
  673. package/dist/PodcastList-CvI49Zla.mjs.map +1 -0
  674. package/dist/PodcastList-D3nOMQSq.mjs.map +1 -0
  675. package/dist/PodcastList-DIGFRh1_.mjs.map +1 -0
  676. package/dist/PodcastList-DdCswN5K.mjs.map +1 -0
  677. package/dist/PodcastList-Dr9xduuZ.mjs.map +1 -0
  678. package/dist/PodcastList-DwiKdU4Y.mjs +337 -0
  679. package/dist/PodcastList-DwiKdU4Y.mjs.map +1 -0
  680. package/dist/PodcastList-EUhESoCL.mjs.map +1 -0
  681. package/dist/PodcastList-Hu6r2Woc.mjs.map +1 -0
  682. package/dist/PodcastList-VjjRlCFP.mjs.map +1 -0
  683. package/dist/PodcastList-eqLNawaj.mjs.map +1 -0
  684. package/dist/PodcastList-vxE8PY8Y.mjs.map +1 -0
  685. package/dist/PodcastPage-2dDuJAeH.mjs.map +1 -0
  686. package/dist/PodcastPage-3RMuEQQb.mjs.map +1 -0
  687. package/dist/PodcastPage-BDWMnOpw.mjs.map +1 -0
  688. package/dist/PodcastPage-BQekxmbS.mjs.map +1 -0
  689. package/dist/PodcastPage-Ba8l7-aZ.mjs.map +1 -0
  690. package/dist/PodcastPage-BdI4XBWz.mjs.map +1 -0
  691. package/dist/PodcastPage-BmKOwWWI.mjs.map +1 -0
  692. package/dist/PodcastPage-Bs_N7lK9.mjs.map +1 -0
  693. package/dist/PodcastPage-BzLU5_P6.mjs +756 -0
  694. package/dist/PodcastPage-BzLU5_P6.mjs.map +1 -0
  695. package/dist/PodcastPage-C-vR6j8f.mjs.map +1 -0
  696. package/dist/PodcastPage-CVVpch4m.mjs.map +1 -0
  697. package/dist/PodcastPage-CaBpSV8P.mjs.map +1 -0
  698. package/dist/PodcastPage-CgVC5pkN.mjs.map +1 -0
  699. package/dist/PodcastPage-Ch9RnMIL.mjs.map +1 -0
  700. package/dist/PodcastPage-Chnk40S3.mjs.map +1 -0
  701. package/dist/PodcastPage-CxgDjPmw.mjs.map +1 -0
  702. package/dist/PodcastPage-D9oTXPQA.mjs.map +1 -0
  703. package/dist/PodcastPage-DArPlovn.mjs.map +1 -0
  704. package/dist/PodcastPage-DKkGchaE.mjs.map +1 -0
  705. package/dist/PodcastPage-D_JZDZKR.mjs.map +1 -0
  706. package/dist/PodcastPage-D_q-yXwq.mjs.map +1 -0
  707. package/dist/PodcastPage-Dp3jFm5s.mjs.map +1 -0
  708. package/dist/PodcastPage-DwsbnaXf.mjs.map +1 -0
  709. package/dist/PodcastPage-ZtKNDeYE.mjs.map +1 -0
  710. package/dist/PodcastPage-evNbROa8.mjs.map +1 -0
  711. package/dist/PodcastPage-i-nAt1zr.mjs.map +1 -0
  712. package/dist/PodcastPage-qoJOnX0L.mjs.map +1 -0
  713. package/dist/PodcastPlayBar-B1gj_epU.mjs.map +1 -0
  714. package/dist/PodcastPlayBar-BCxbApQ5.mjs.map +1 -0
  715. package/dist/PodcastPlayBar-CcpnX-tu.mjs.map +1 -0
  716. package/dist/PodcastPlayBar-CgN4QvcV.mjs.map +1 -0
  717. package/dist/PodcastPlayBar-DPEA8kyc.mjs.map +1 -0
  718. package/dist/PodcastPlayBar-DmF4hHVi.mjs.map +1 -0
  719. package/dist/PodcastPlayBar-hxLcx9MN.mjs +83 -0
  720. package/dist/PodcastPlayBar-hxLcx9MN.mjs.map +1 -0
  721. package/dist/PodcastPlayBar-ts50uiUL.mjs.map +1 -0
  722. package/dist/PodcastPlayBasicButton-0tMLmnJn.mjs +72 -0
  723. package/dist/PodcastPlayBasicButton-0tMLmnJn.mjs.map +1 -0
  724. package/dist/PodcastPlayBasicButton-CBxGHrsW.mjs.map +1 -0
  725. package/dist/PodcastPlayBasicButton-CMX3TEUr.mjs.map +1 -0
  726. package/dist/PodcastPlayBasicButton-Cfv99_Fm.mjs.map +1 -0
  727. package/dist/PodcastPlayBasicButton-D-2Jnu7W.mjs.map +1 -0
  728. package/dist/PodcastPlayBasicButton-DBNy6QvN.mjs.map +1 -0
  729. package/dist/PodcastPlayBasicButton-DzP7njbX.mjs.map +1 -0
  730. package/dist/PodcastPlayBasicButton-jP7W3Eew.mjs.map +1 -0
  731. package/dist/PodcastPlayButton-B1ZB8WY8.mjs +236 -0
  732. package/dist/PodcastPlayButton-B1ZB8WY8.mjs.map +1 -0
  733. package/dist/PodcastPlayButton-BP4NGIPP.mjs.map +1 -0
  734. package/dist/PodcastPlayButton-BRl3bOb1.mjs.map +1 -0
  735. package/dist/PodcastPlayButton-Bxx4WLzB.mjs.map +1 -0
  736. package/dist/PodcastPlayButton-D4QSivX3.mjs.map +1 -0
  737. package/dist/PodcastPlayButton-Dq4Sk28P.mjs.map +1 -0
  738. package/dist/PodcastPlayButton-G0560Ku_.mjs.map +1 -0
  739. package/dist/PodcastPlayButton-ZEsE86G2.mjs.map +1 -0
  740. package/dist/PodcastPlayButton-e5wAxIbl.mjs.map +1 -0
  741. package/dist/PodcastPlayButton-s3FCNszx.mjs.map +1 -0
  742. package/dist/PodcastPlaylistInlineList-BMxtKmsl.mjs.map +1 -0
  743. package/dist/PodcastPlaylistInlineList-Bc59FFVF.mjs.map +1 -0
  744. package/dist/PodcastPlaylistInlineList-BwHWwEba.mjs.map +1 -0
  745. package/dist/PodcastPlaylistInlineList-C0ZXsm08.mjs.map +1 -0
  746. package/dist/PodcastPlaylistInlineList-CNifljW-.mjs.map +1 -0
  747. package/dist/PodcastPlaylistInlineList-CgCUOZhg.mjs.map +1 -0
  748. package/dist/PodcastPlaylistInlineList-CvI8XIs3.mjs.map +1 -0
  749. package/dist/PodcastPlaylistInlineList-DD4mRTWL.mjs.map +1 -0
  750. package/dist/PodcastPlaylistInlineList-DjvqH3JD.mjs.map +1 -0
  751. package/dist/PodcastPlaylistInlineList-SZXCnYSe.mjs +115 -0
  752. package/dist/PodcastPlaylistInlineList-SZXCnYSe.mjs.map +1 -0
  753. package/dist/PodcastPresentationList-7I2gJ9sI.mjs.map +1 -0
  754. package/dist/PodcastPresentationList-B6EQonVG.mjs.map +1 -0
  755. package/dist/PodcastPresentationList-BNPI4ktk.mjs.map +1 -0
  756. package/dist/PodcastPresentationList-BU7ViJNL.mjs.map +1 -0
  757. package/dist/PodcastPresentationList-BYz-tlSL.mjs +200 -0
  758. package/dist/PodcastPresentationList-BYz-tlSL.mjs.map +1 -0
  759. package/dist/PodcastPresentationList-Bds0tZH_.mjs.map +1 -0
  760. package/dist/PodcastPresentationList-CXwTRtdd.mjs.map +1 -0
  761. package/dist/PodcastPresentationList-DNotAP8F.mjs.map +1 -0
  762. package/dist/PodcastPresentationList-DQ6VyYOF.mjs.map +1 -0
  763. package/dist/PodcastPresentationList-Dfr3aC06.mjs.map +1 -0
  764. package/dist/PodcastProgressBar-BJPSohh3.mjs.map +1 -0
  765. package/dist/PodcastProgressBar-Bv5JaE8d.mjs.map +1 -0
  766. package/dist/PodcastProgressBar-C1V8SzsN.mjs.map +1 -0
  767. package/dist/PodcastProgressBar-C2Q499e-.mjs.map +1 -0
  768. package/dist/PodcastProgressBar-DS_gFcxN.mjs.map +1 -0
  769. package/dist/PodcastProgressBar-DT95OgbR.mjs.map +1 -0
  770. package/dist/PodcastProgressBar-DknFfvhM.mjs.map +1 -0
  771. package/dist/PodcastProgressBar-DqPW_p3w.mjs +98 -0
  772. package/dist/PodcastProgressBar-DqPW_p3w.mjs.map +1 -0
  773. package/dist/PodcastRawTranscript-B3XploAN.mjs.map +1 -0
  774. package/dist/PodcastRawTranscript-Bn0uehDS.mjs.map +1 -0
  775. package/dist/PodcastRawTranscript-DHGG6P4H.mjs.map +1 -0
  776. package/dist/PodcastRawTranscript-DgNTVFR8.mjs.map +1 -0
  777. package/dist/PodcastRawTranscript-Q9E4SxfK.mjs.map +1 -0
  778. package/dist/PodcastRawTranscript-TWZD3G5q.mjs.map +1 -0
  779. package/dist/PodcastRawTranscript-X63ZILM7.mjs.map +1 -0
  780. package/dist/PodcastRawTranscript-a9_Oy3RK.mjs +184 -0
  781. package/dist/PodcastRawTranscript-a9_Oy3RK.mjs.map +1 -0
  782. package/dist/PodcastRubriqueList-BCyW3wEK.mjs.map +1 -0
  783. package/dist/PodcastRubriqueList-BTbcJXYx.mjs.map +1 -0
  784. package/dist/PodcastRubriqueList-C95GU8o5.mjs.map +1 -0
  785. package/dist/PodcastRubriqueList-Ccdnx6On.mjs.map +1 -0
  786. package/dist/PodcastRubriqueList-DI2csHW1.mjs +83 -0
  787. package/dist/PodcastRubriqueList-DI2csHW1.mjs.map +1 -0
  788. package/dist/PodcastRubriqueList-DVkFRxXq.mjs.map +1 -0
  789. package/dist/PodcastRubriqueList-Dl6QY0i8.mjs.map +1 -0
  790. package/dist/PodcastRubriqueList-_YhHNC47.mjs.map +1 -0
  791. package/dist/PodcastSwiperList-BS5c3FoG.mjs.map +1 -0
  792. package/dist/PodcastSwiperList-BX3Df01j.mjs.map +1 -0
  793. package/dist/PodcastSwiperList-BrhZmdlc.mjs.map +1 -0
  794. package/dist/PodcastSwiperList-ByjpnQxI.mjs +219 -0
  795. package/dist/PodcastSwiperList-ByjpnQxI.mjs.map +1 -0
  796. package/dist/PodcastSwiperList-Cz46EA8R.mjs.map +1 -0
  797. package/dist/PodcastSwiperList-DR9LRgSd.mjs.map +1 -0
  798. package/dist/PodcastSwiperList-DTyt7oEG.mjs.map +1 -0
  799. package/dist/PodcastSwiperList-Hcu_odVZ.mjs.map +1 -0
  800. package/dist/PodcastSwiperList-SuxAntDq.mjs.map +1 -0
  801. package/dist/PodcastSwiperList-lgJ0f6v-.mjs.map +1 -0
  802. package/dist/PodcastmakerHeader-BA4Li7Kn.mjs.map +1 -0
  803. package/dist/PodcastmakerHeader-BAegQW6Z.mjs.map +1 -0
  804. package/dist/PodcastmakerHeader-C4gFjX6v.mjs.map +1 -0
  805. package/dist/PodcastmakerHeader-CNfRgIK9.mjs.map +1 -0
  806. package/dist/PodcastmakerHeader-DLivShWW.mjs +58 -0
  807. package/dist/PodcastmakerHeader-DLivShWW.mjs.map +1 -0
  808. package/dist/PodcastmakerHeader-DYRMuK-v.mjs.map +1 -0
  809. package/dist/PodcastmakerHeader-MUM5IU8l.mjs.map +1 -0
  810. package/dist/PodcastmakerHeader-RXfyAHAn.mjs.map +1 -0
  811. package/dist/PodcastsPage-B3Bz8Tqk.mjs.map +1 -0
  812. package/dist/PodcastsPage-BIUMIU5y.mjs.map +1 -0
  813. package/dist/PodcastsPage-BIk-JeoA.mjs.map +1 -0
  814. package/dist/PodcastsPage-BZjvnYPf.mjs.map +1 -0
  815. package/dist/PodcastsPage-BalH_7Xq.mjs.map +1 -0
  816. package/dist/PodcastsPage-Bk2Ha9lT.mjs.map +1 -0
  817. package/dist/PodcastsPage-C4FPpWq6.mjs.map +1 -0
  818. package/dist/PodcastsPage-CZMG21RP.mjs +227 -0
  819. package/dist/PodcastsPage-CZMG21RP.mjs.map +1 -0
  820. package/dist/PodcastsPage-ClvhNA-n.mjs.map +1 -0
  821. package/dist/PodcastsPage-CnSrwx2a.mjs.map +1 -0
  822. package/dist/PodcastsPage-Cpu5ZFVk.mjs.map +1 -0
  823. package/dist/PodcastsPage-Cr82uGtg.mjs.map +1 -0
  824. package/dist/PodcastsPage-DXFl1i4y.mjs.map +1 -0
  825. package/dist/PodcastsPage-DcM9kL4U.mjs.map +1 -0
  826. package/dist/PodcastsPage-VA3YxWs-.mjs.map +1 -0
  827. package/dist/PodcastsPage-bvHqAuLo.mjs.map +1 -0
  828. package/dist/PodcastsPage-jRvQd8-H.mjs.map +1 -0
  829. package/dist/PodcastsPage-nijaUW3P.mjs.map +1 -0
  830. package/dist/PodcastsPage-qCVe5Xxr.mjs.map +1 -0
  831. package/dist/ProductorSearch-BqTnrQwN.mjs.map +1 -0
  832. package/dist/ProductorSearch-BrkwY0qW.mjs.map +1 -0
  833. package/dist/ProductorSearch-Cr79KkYG.mjs +161 -0
  834. package/dist/ProductorSearch-Cr79KkYG.mjs.map +1 -0
  835. package/dist/ProductorSearch-D70kZSKq.mjs.map +1 -0
  836. package/dist/ProductorSearch-DQeG0dsL.mjs.map +1 -0
  837. package/dist/ProductorSearch-Ybo6vZOo.mjs.map +1 -0
  838. package/dist/ProductorSearch-g0EL7GLW.mjs.map +1 -0
  839. package/dist/ProductorSearch-valGKmww.mjs.map +1 -0
  840. package/dist/ProgressBar-5tVxrk7d.mjs.map +1 -0
  841. package/dist/ProgressBar-B0xQNpFe.mjs.map +1 -0
  842. package/dist/ProgressBar-BCwW89su.mjs.map +1 -0
  843. package/dist/ProgressBar-CTtrIt8Y.mjs.map +1 -0
  844. package/dist/ProgressBar-D8VdS-u6.mjs.map +1 -0
  845. package/dist/ProgressBar-DrnLNpyr.mjs +158 -0
  846. package/dist/ProgressBar-DrnLNpyr.mjs.map +1 -0
  847. package/dist/ProgressBar-kqIwCrRr.mjs.map +1 -0
  848. package/dist/ProgressBar-yaX2X7j1.mjs.map +1 -0
  849. package/dist/QrCode-BABDzMVW.mjs.map +1 -0
  850. package/dist/QrCode-BbRm6Y4P.mjs.map +1 -0
  851. package/dist/QrCode-BjIGr_QB.mjs.map +1 -0
  852. package/dist/QrCode-BqkhBhIb.mjs.map +1 -0
  853. package/dist/QrCode-CWzLZn66.mjs.map +1 -0
  854. package/dist/QrCode-D9vjUGQT.mjs.map +1 -0
  855. package/dist/QrCode-DLNQDbZY.mjs.map +1 -0
  856. package/dist/QrCode-KyGeDUHb.mjs +177 -0
  857. package/dist/QrCode-KyGeDUHb.mjs.map +1 -0
  858. package/dist/QrCodeModal-B30STbET.mjs.map +1 -0
  859. package/dist/QrCodeModal-BO3ay0jp.mjs.map +1 -0
  860. package/dist/QrCodeModal-BdVui_h2.mjs.map +1 -0
  861. package/dist/QrCodeModal-Cp1tz2ux.mjs.map +1 -0
  862. package/dist/QrCodeModal-DR3qMvAj.mjs.map +1 -0
  863. package/dist/QrCodeModal-D_LLj88P.mjs.map +1 -0
  864. package/dist/QrCodeModal-ddgi5Dn-.mjs +64 -0
  865. package/dist/QrCodeModal-ddgi5Dn-.mjs.map +1 -0
  866. package/dist/QrCodeModal-hO9aeNia.mjs.map +1 -0
  867. package/dist/RadioCurrently-BDwQsuQN.mjs.map +1 -0
  868. package/dist/RadioCurrently-BFcQSGjK.mjs.map +1 -0
  869. package/dist/RadioCurrently-BTouyjMD.mjs.map +1 -0
  870. package/dist/RadioCurrently-COTK1cqr.mjs.map +1 -0
  871. package/dist/RadioCurrently-CYE7UwdY.mjs +112 -0
  872. package/dist/RadioCurrently-CYE7UwdY.mjs.map +1 -0
  873. package/dist/RadioCurrently-CpV5ZWBc.mjs.map +1 -0
  874. package/dist/RadioCurrently-DAZsZquE.mjs.map +1 -0
  875. package/dist/RadioCurrently-DBIDvpng.mjs.map +1 -0
  876. package/dist/RadioHistory-BmwiBDV4.mjs.map +1 -0
  877. package/dist/RadioHistory-C0O4_OsT.mjs.map +1 -0
  878. package/dist/RadioHistory-CKXFrZUS.mjs.map +1 -0
  879. package/dist/RadioHistory-CvFPMFbB.mjs.map +1 -0
  880. package/dist/RadioHistory-CzqQvmuY.mjs +139 -0
  881. package/dist/RadioHistory-CzqQvmuY.mjs.map +1 -0
  882. package/dist/RadioHistory-G_5_a-Xl.mjs.map +1 -0
  883. package/dist/RadioHistory-otNcHfao.mjs.map +1 -0
  884. package/dist/RadioHistory-wy9WCEk7.mjs.map +1 -0
  885. package/dist/RadioImage-B4vDVjGl.mjs.map +1 -0
  886. package/dist/RadioImage-CFNJKVmd.mjs +85 -0
  887. package/dist/RadioImage-CFNJKVmd.mjs.map +1 -0
  888. package/dist/RadioImage-CJD_1cPD.mjs.map +1 -0
  889. package/dist/RadioImage-CWpKxhp0.mjs.map +1 -0
  890. package/dist/RadioImage-D4wKkO8D.mjs.map +1 -0
  891. package/dist/RadioImage-DDpMbKJH.mjs.map +1 -0
  892. package/dist/RadioImage-Da9DH6AB.mjs.map +1 -0
  893. package/dist/RadioImage-yeXUrgI-.mjs.map +1 -0
  894. package/dist/RadioList-1z7A9-aH.mjs.map +1 -0
  895. package/dist/RadioList-BJzYpUIO.mjs.map +1 -0
  896. package/dist/RadioList-Bp3ghPVU.mjs.map +1 -0
  897. package/dist/RadioList-CABDJH_f.mjs +125 -0
  898. package/dist/RadioList-CABDJH_f.mjs.map +1 -0
  899. package/dist/RadioList-CvcGv1uh.mjs.map +1 -0
  900. package/dist/RadioList-CzNjPv84.mjs.map +1 -0
  901. package/dist/RadioList-DpQ5-u0P.mjs.map +1 -0
  902. package/dist/RadioList-WLBLb0YI.mjs.map +1 -0
  903. package/dist/RadioPage-274yP6hc.mjs.map +1 -0
  904. package/dist/RadioPage-BN2k0-YJ.mjs.map +1 -0
  905. package/dist/RadioPage-Bos6wYdE.mjs.map +1 -0
  906. package/dist/RadioPage-C0tjXJU4.mjs +137 -0
  907. package/dist/RadioPage-C0tjXJU4.mjs.map +1 -0
  908. package/dist/RadioPage-C_cF5sLf.mjs.map +1 -0
  909. package/dist/RadioPage-CgjOotgE.mjs.map +1 -0
  910. package/dist/RadioPage-CpOnONRu.mjs.map +1 -0
  911. package/dist/RadioPage-DqcfLNtb.mjs.map +1 -0
  912. package/dist/RadioPlanning-BpxOrpmV.mjs.map +1 -0
  913. package/dist/RadioPlanning-CJoFgQ8-.mjs.map +1 -0
  914. package/dist/RadioPlanning-CLaptMbp.mjs +290 -0
  915. package/dist/RadioPlanning-CLaptMbp.mjs.map +1 -0
  916. package/dist/RadioPlanning-Cb6CDxY7.mjs.map +1 -0
  917. package/dist/RadioPlanning-CdqYim8D.mjs.map +1 -0
  918. package/dist/RadioPlanning-Cj3YRRQH.mjs.map +1 -0
  919. package/dist/RadioPlanning-FBTDOSbe.mjs.map +1 -0
  920. package/dist/RadioPlanning-geMIOa5T.mjs.map +1 -0
  921. package/dist/RadioProgressBar-BCFytqQh.mjs.map +1 -0
  922. package/dist/RadioProgressBar-CIR3yuw_.mjs.map +1 -0
  923. package/dist/RadioProgressBar-CYPzhKXe.mjs.map +1 -0
  924. package/dist/RadioProgressBar-Cju0BWUv.mjs.map +1 -0
  925. package/dist/RadioProgressBar-DLovskzg.mjs.map +1 -0
  926. package/dist/RadioProgressBar-DZn1mktI.mjs +67 -0
  927. package/dist/RadioProgressBar-DZn1mktI.mjs.map +1 -0
  928. package/dist/RadioProgressBar-_tJ-CtG3.mjs.map +1 -0
  929. package/dist/RadioProgressBar-i5xByEQ-.mjs.map +1 -0
  930. package/dist/RecaptchaModal-BKuZ3qbr.mjs.map +1 -0
  931. package/dist/RecaptchaModal-BioW6OiC.mjs.map +1 -0
  932. package/dist/RecaptchaModal-BrpWu9K9.mjs +148 -0
  933. package/dist/RecaptchaModal-BrpWu9K9.mjs.map +1 -0
  934. package/dist/RecaptchaModal-CO1ksS7T.mjs.map +1 -0
  935. package/dist/RecaptchaModal-CQ3uCmJD.mjs.map +1 -0
  936. package/dist/RecaptchaModal-ChMI1DoR.mjs.map +1 -0
  937. package/dist/RecaptchaModal-Ci9nJ3yG.mjs.map +1 -0
  938. package/dist/RecaptchaModal-D4Vjj7y0.mjs.map +1 -0
  939. package/dist/ReportAbuseModal-BgwHjFg6.mjs.map +1 -0
  940. package/dist/ReportAbuseModal-COgkZmXt.mjs.map +1 -0
  941. package/dist/ReportAbuseModal-CRz91e0n.mjs.map +1 -0
  942. package/dist/ReportAbuseModal-ClwG80lC.mjs.map +1 -0
  943. package/dist/ReportAbuseModal-Cnl6Tvy8.mjs.map +1 -0
  944. package/dist/ReportAbuseModal-CqEVzw2M.mjs +134 -0
  945. package/dist/ReportAbuseModal-CqEVzw2M.mjs.map +1 -0
  946. package/dist/ReportAbuseModal-DKXVmm0o.mjs.map +1 -0
  947. package/dist/ReportAbuseModal-DewdNNiS.mjs.map +1 -0
  948. package/dist/RightsIndicator-8ke3GBY3.mjs.map +1 -0
  949. package/dist/RightsIndicator-AgrCCLI5.mjs.map +1 -0
  950. package/dist/RightsIndicator-BWb-HYqg.mjs.map +1 -0
  951. package/dist/RightsIndicator-Bq9-wJu7.mjs.map +1 -0
  952. package/dist/RightsIndicator-CVPQPbom.mjs.map +1 -0
  953. package/dist/RightsIndicator-CaR0p4ee.mjs +124 -0
  954. package/dist/RightsIndicator-CaR0p4ee.mjs.map +1 -0
  955. package/dist/RightsIndicator-Cyf2ER3f.mjs.map +1 -0
  956. package/dist/RightsIndicator-DEO8E_lt.mjs.map +1 -0
  957. package/dist/RightsIndicator-DOW0C2QN.mjs.map +1 -0
  958. package/dist/RightsIndicator-JiOk8W09.mjs.map +1 -0
  959. package/dist/RightsWrapper-4P5_44Zn.mjs.map +1 -0
  960. package/dist/RightsWrapper-B2MlGwl3.mjs.map +1 -0
  961. package/dist/RightsWrapper-BsBytnz4.mjs.map +1 -0
  962. package/dist/RightsWrapper-C7TGgPwH.mjs +212 -0
  963. package/dist/RightsWrapper-C7TGgPwH.mjs.map +1 -0
  964. package/dist/RightsWrapper-COCKm6yj.mjs.map +1 -0
  965. package/dist/RightsWrapper-CUxXGo2e.mjs.map +1 -0
  966. package/dist/RightsWrapper-CzKluSmc.mjs.map +1 -0
  967. package/dist/RightsWrapper-tKyPXHo-.mjs.map +1 -0
  968. package/dist/RubriqueFilter-B2Mmc1m_.mjs.map +1 -0
  969. package/dist/RubriqueFilter-B31kE1MN.mjs.map +1 -0
  970. package/dist/RubriqueFilter-BKhIFAjq.mjs +199 -0
  971. package/dist/RubriqueFilter-BKhIFAjq.mjs.map +1 -0
  972. package/dist/RubriqueFilter-BlPRTBZ9.mjs.map +1 -0
  973. package/dist/RubriqueFilter-Bw1CGja3.mjs.map +1 -0
  974. package/dist/RubriqueFilter-DN8fTOdd.mjs.map +1 -0
  975. package/dist/RubriqueFilter-DTZiHQNp.mjs.map +1 -0
  976. package/dist/RubriqueFilter-DYIUSPbb.mjs.map +1 -0
  977. package/dist/RubriqueList-B3yhWa4r.mjs.map +1 -0
  978. package/dist/RubriqueList-BcImnPxf.mjs.map +1 -0
  979. package/dist/RubriqueList-BoUBJnsM.mjs.map +1 -0
  980. package/dist/RubriqueList-CBcZOXmS.mjs.map +1 -0
  981. package/dist/RubriqueList-CQ35roJ9.mjs.map +1 -0
  982. package/dist/RubriqueList-D1HZo4h4.mjs.map +1 -0
  983. package/dist/RubriqueList-DJT7Jhvm.mjs.map +1 -0
  984. package/dist/RubriqueList-NVIfUrtO.mjs +206 -0
  985. package/dist/RubriqueList-NVIfUrtO.mjs.map +1 -0
  986. package/dist/RubriquePage-5yGiOukN.mjs.map +1 -0
  987. package/dist/RubriquePage-BAlehSIS.mjs +108 -0
  988. package/dist/RubriquePage-BAlehSIS.mjs.map +1 -0
  989. package/dist/RubriquePage-BNv6lKml.mjs.map +1 -0
  990. package/dist/RubriquePage-BUmG2wuU.mjs.map +1 -0
  991. package/dist/RubriquePage-Bf-8HP4Z.mjs.map +1 -0
  992. package/dist/RubriquePage-Biz4lmwe.mjs.map +1 -0
  993. package/dist/RubriquePage-C8mZVs_j.mjs.map +1 -0
  994. package/dist/RubriquePage-CC6UO9Xo.mjs.map +1 -0
  995. package/dist/RubriquePage-DEmTE5de.mjs.map +1 -0
  996. package/dist/RubriquePage-Y6qI3PgB.mjs.map +1 -0
  997. package/dist/RubriquePage-iYQBx70y.mjs.map +1 -0
  998. package/dist/RubriquePage-zyp_khGg.mjs.map +1 -0
  999. package/dist/SearchPage-B10P7WGB.mjs +77 -0
  1000. package/dist/SearchPage-B10P7WGB.mjs.map +1 -0
  1001. package/dist/SearchPage-BC1moAjg.mjs.map +1 -0
  1002. package/dist/SearchPage-BZzbnyke.mjs.map +1 -0
  1003. package/dist/SearchPage-BeaSjc-B.mjs.map +1 -0
  1004. package/dist/SearchPage-CByOHDuF.mjs.map +1 -0
  1005. package/dist/SearchPage-DFlPCYK2.mjs.map +1 -0
  1006. package/dist/SearchPage-DHIC3aR2.mjs.map +1 -0
  1007. package/dist/SearchPage-V6v_94HO.mjs.map +1 -0
  1008. package/dist/SearchPage-bw1krInj.mjs.map +1 -0
  1009. package/dist/SearchPage-guLaAWTY.mjs.map +1 -0
  1010. package/dist/SearchPage-wHxIUBu9.mjs.map +1 -0
  1011. package/dist/ShareAnonymous-Be_3QN-J.mjs.map +1 -0
  1012. package/dist/ShareAnonymous-BzgYARps.mjs.map +1 -0
  1013. package/dist/ShareAnonymous-CbH-OUhV.mjs.map +1 -0
  1014. package/dist/ShareAnonymous-DLvzh3bC.mjs.map +1 -0
  1015. package/dist/ShareAnonymous-DYLoT4gJ.mjs.map +1 -0
  1016. package/dist/ShareAnonymous-DjuoOwnz.mjs +321 -0
  1017. package/dist/ShareAnonymous-DjuoOwnz.mjs.map +1 -0
  1018. package/dist/ShareAnonymous-DnL1Cpgf.mjs.map +1 -0
  1019. package/dist/ShareAnonymous-J-PCflFR.mjs.map +1 -0
  1020. package/dist/ShareModalPlayer-BiqEpd9K.mjs.map +1 -0
  1021. package/dist/ShareModalPlayer-CTI3FHwP.mjs.map +1 -0
  1022. package/dist/ShareModalPlayer-CfkTBXcZ.mjs.map +1 -0
  1023. package/dist/ShareModalPlayer-CfzoCZMF.mjs.map +1 -0
  1024. package/dist/ShareModalPlayer-DVncOMoY.mjs.map +1 -0
  1025. package/dist/ShareModalPlayer-De600dAo.mjs.map +1 -0
  1026. package/dist/ShareModalPlayer-K2dfwTgr.mjs.map +1 -0
  1027. package/dist/ShareModalPlayer-iNhuzH6E.mjs +135 -0
  1028. package/dist/ShareModalPlayer-iNhuzH6E.mjs.map +1 -0
  1029. package/dist/ShareNewsletter-BRJ_CnPP.mjs.map +1 -0
  1030. package/dist/ShareNewsletter-BYS_t435.mjs.map +1 -0
  1031. package/dist/ShareNewsletter-BoTYibXG.mjs +211 -0
  1032. package/dist/ShareNewsletter-BoTYibXG.mjs.map +1 -0
  1033. package/dist/ShareNewsletter-D5PUaOO2.mjs.map +1 -0
  1034. package/dist/ShareNewsletter-DVNHTKeM.mjs.map +1 -0
  1035. package/dist/ShareNewsletter-DXLj05xD.mjs.map +1 -0
  1036. package/dist/ShareNewsletter-nYJ02EoC.mjs.map +1 -0
  1037. package/dist/ShareNewsletter-xyNkG-Eb.mjs.map +1 -0
  1038. package/dist/SharePlayer-BBp8Nx8-.mjs.map +1 -0
  1039. package/dist/SharePlayer-BRAOpDKS.mjs.map +1 -0
  1040. package/dist/SharePlayer-BkJ1Pd4K.mjs.map +1 -0
  1041. package/dist/SharePlayer-CpCp4Ww6.mjs.map +1 -0
  1042. package/dist/SharePlayer-D12X58FW.mjs.map +1 -0
  1043. package/dist/SharePlayer-D14yktq2.mjs.map +1 -0
  1044. package/dist/SharePlayer-ITriSrMH.mjs +378 -0
  1045. package/dist/SharePlayer-ITriSrMH.mjs.map +1 -0
  1046. package/dist/SharePlayer-OLpuLZ3x.mjs.map +1 -0
  1047. package/dist/SharePlayerRadio-3be6M1rf.mjs +127 -0
  1048. package/dist/SharePlayerRadio-3be6M1rf.mjs.map +1 -0
  1049. package/dist/SharePlayerRadio-B5csXZHh.mjs.map +1 -0
  1050. package/dist/SharePlayerRadio-BBgUkZJZ.mjs.map +1 -0
  1051. package/dist/SharePlayerRadio-BVxTgEry.mjs.map +1 -0
  1052. package/dist/SharePlayerRadio-DGlbi34G.mjs.map +1 -0
  1053. package/dist/SharePlayerRadio-D_Q6seua.mjs.map +1 -0
  1054. package/dist/SharePlayerRadio-HjAP-F05.mjs.map +1 -0
  1055. package/dist/SharePlayerRadio-kpYanrSh.mjs.map +1 -0
  1056. package/dist/SharePlayerTypes-Bv396CtZ.mjs.map +1 -0
  1057. package/dist/SharePlayerTypes-C8AP5NRT.mjs.map +1 -0
  1058. package/dist/SharePlayerTypes-CW3OGhRV.mjs.map +1 -0
  1059. package/dist/SharePlayerTypes-D0TyOBAl.mjs.map +1 -0
  1060. package/dist/SharePlayerTypes-D3Uf2kAl.mjs.map +1 -0
  1061. package/dist/SharePlayerTypes-DzgN0pmg.mjs.map +1 -0
  1062. package/dist/SharePlayerTypes-TbHoUtLq.mjs +232 -0
  1063. package/dist/SharePlayerTypes-TbHoUtLq.mjs.map +1 -0
  1064. package/dist/SharePlayerTypes-TjPFVlpg.mjs.map +1 -0
  1065. package/dist/ShareSocialsButtons-BX_kCrh9.mjs.map +1 -0
  1066. package/dist/ShareSocialsButtons-D93C1SNn.mjs.map +1 -0
  1067. package/dist/ShareSocialsButtons-D9olMoYw.mjs.map +1 -0
  1068. package/dist/ShareSocialsButtons-DMb-XPVy.mjs.map +1 -0
  1069. package/dist/ShareSocialsButtons-DSJodUeF.mjs.map +1 -0
  1070. package/dist/ShareSocialsButtons-DpL7wz2Q.mjs.map +1 -0
  1071. package/dist/ShareSocialsButtons-HUGfUozM.mjs.map +1 -0
  1072. package/dist/ShareSocialsButtons-nbnbNYrr.mjs +159 -0
  1073. package/dist/ShareSocialsButtons-nbnbNYrr.mjs.map +1 -0
  1074. package/dist/SimpleLayout-2agje2NP.mjs +41 -0
  1075. package/dist/SimpleLayout-2agje2NP.mjs.map +1 -0
  1076. package/dist/SimpleLayout-BCbramPg.mjs.map +1 -0
  1077. package/dist/SimpleLayout-D8o2yJwB.mjs.map +1 -0
  1078. package/dist/SimpleLayout-D8xymMDG.mjs.map +1 -0
  1079. package/dist/SimpleLayout-DZtaADQv.mjs.map +1 -0
  1080. package/dist/SimpleLayout-DZy2Ephk.mjs.map +1 -0
  1081. package/dist/SimpleLayout-DfM_kXS9.mjs.map +1 -0
  1082. package/dist/SimpleLayout-K46zNKJ3.mjs.map +1 -0
  1083. package/dist/SmartLinkPage-6yVwo41a.mjs.map +1 -0
  1084. package/dist/SmartLinkPage-B3oxc6A4.mjs.map +1 -0
  1085. package/dist/SmartLinkPage-BC6Wos_I.mjs.map +1 -0
  1086. package/dist/SmartLinkPage-Bf0nWA38.mjs +238 -0
  1087. package/dist/SmartLinkPage-Bf0nWA38.mjs.map +1 -0
  1088. package/dist/SmartLinkPage-C2iTEBxg.mjs.map +1 -0
  1089. package/dist/SmartLinkPage-CRU-ro5M.mjs.map +1 -0
  1090. package/dist/SmartLinkPage-CUSZPYPK.mjs.map +1 -0
  1091. package/dist/SmartLinkPage-CV9Gx4MZ.mjs.map +1 -0
  1092. package/dist/SubscribeButtons-B7ppg_Sy.mjs.map +1 -0
  1093. package/dist/SubscribeButtons-BiYqm52t.mjs.map +1 -0
  1094. package/dist/SubscribeButtons-BnL1HQJj.mjs.map +1 -0
  1095. package/dist/SubscribeButtons-CSvoc2J7.mjs +203 -0
  1096. package/dist/SubscribeButtons-CSvoc2J7.mjs.map +1 -0
  1097. package/dist/SubscribeButtons-ChJKNJqT.mjs.map +1 -0
  1098. package/dist/SubscribeButtons-D2QxU-Hz.mjs.map +1 -0
  1099. package/dist/SubscribeButtons-DJj_jStJ.mjs.map +1 -0
  1100. package/dist/SubscribeButtons-YXH0jr-u.mjs.map +1 -0
  1101. package/dist/SwiperList-B5iYhj9n.mjs.map +1 -0
  1102. package/dist/SwiperList-CTQ7Jt8y.mjs +207 -0
  1103. package/dist/SwiperList-CTQ7Jt8y.mjs.map +1 -0
  1104. package/dist/SwiperList-D8SO3Jhr.mjs.map +1 -0
  1105. package/dist/SwiperList-D9irPcis.mjs.map +1 -0
  1106. package/dist/SwiperList-DoOIgAp8.mjs.map +1 -0
  1107. package/dist/SwiperList-DozCqnS-.mjs.map +1 -0
  1108. package/dist/SwiperList-e2b8uKKS.mjs.map +1 -0
  1109. package/dist/SwiperList-oOWaXHrC.mjs.map +1 -0
  1110. package/dist/TagList-B7S-QXor.mjs.map +1 -0
  1111. package/dist/TagList-C1yqUuH4.mjs.map +1 -0
  1112. package/dist/TagList-C4X0npf5.mjs.map +1 -0
  1113. package/dist/TagList-CKqTDMGE.mjs.map +1 -0
  1114. package/dist/TagList-CYZO6nJO.mjs.map +1 -0
  1115. package/dist/TagList-DhUwbOtN.mjs.map +1 -0
  1116. package/dist/TagList-EwyNbw72.mjs +134 -0
  1117. package/dist/TagList-EwyNbw72.mjs.map +1 -0
  1118. package/dist/TagList-yzetMdZw.mjs.map +1 -0
  1119. package/dist/TagPage-4o8Pl0Qr.mjs.map +1 -0
  1120. package/dist/TagPage-B_qM5eJI.mjs.map +1 -0
  1121. package/dist/TagPage-BuXAtttP.mjs.map +1 -0
  1122. package/dist/TagPage-Cf0nrWee.mjs.map +1 -0
  1123. package/dist/TagPage-CkecFj3d.mjs +125 -0
  1124. package/dist/TagPage-CkecFj3d.mjs.map +1 -0
  1125. package/dist/TagPage-D02e7yAK.mjs.map +1 -0
  1126. package/dist/TagPage-DThhKzLf.mjs.map +1 -0
  1127. package/dist/TagPage-DVfKFiFB.mjs.map +1 -0
  1128. package/dist/TagPage-DbQ5ECdy.mjs.map +1 -0
  1129. package/dist/TagPage-DiS0Ac5-.mjs.map +1 -0
  1130. package/dist/TagPage-DqlSRAe7.mjs.map +1 -0
  1131. package/dist/TagPage-O77D8BO6.mjs.map +1 -0
  1132. package/dist/TopBar-B5hL24uV.mjs.map +1 -0
  1133. package/dist/TopBar-BEqykP88.mjs.map +1 -0
  1134. package/dist/TopBar-BIrteYP5.mjs.map +1 -0
  1135. package/dist/TopBar-BMtZjPfE.mjs.map +1 -0
  1136. package/dist/TopBar-C4_r5G9G.mjs.map +1 -0
  1137. package/dist/TopBar-CAtSy_fP.mjs.map +1 -0
  1138. package/dist/TopBar-CVz3PW30.mjs.map +1 -0
  1139. package/dist/TopBar-CsxgY0Pa.mjs.map +1 -0
  1140. package/dist/TopBar-DnOonBa9.mjs.map +1 -0
  1141. package/dist/TopBar-N9gAoWc2.mjs +760 -0
  1142. package/dist/TopBar-N9gAoWc2.mjs.map +1 -0
  1143. package/dist/TopBar-TSbSO80C.mjs.map +1 -0
  1144. package/dist/TopBar-dBIKNV4n.mjs.map +1 -0
  1145. package/dist/UserButtonContent-BJ9NQBQt.mjs.map +1 -0
  1146. package/dist/UserButtonContent-C1Z62rxI.mjs.map +1 -0
  1147. package/dist/UserButtonContent-CA-t3hC_.mjs.map +1 -0
  1148. package/dist/UserButtonContent-CInki_2X.mjs +185 -0
  1149. package/dist/UserButtonContent-CInki_2X.mjs.map +1 -0
  1150. package/dist/UserButtonContent-CORUo7UY.mjs.map +1 -0
  1151. package/dist/UserButtonContent-Qb0SDN0h.mjs.map +1 -0
  1152. package/dist/UserButtonContent-W2n-NsWg.mjs.map +1 -0
  1153. package/dist/UserButtonContent-c7YRiGp2.mjs.map +1 -0
  1154. package/dist/VideoModuleBox--kALH8J6.mjs.map +1 -0
  1155. package/dist/VideoModuleBox-BCXduPcv.mjs.map +1 -0
  1156. package/dist/VideoModuleBox-BMvUHgHs.mjs.map +1 -0
  1157. package/dist/VideoModuleBox-BQFnWOE9.mjs.map +1 -0
  1158. package/dist/VideoModuleBox-CAKcfyk0.mjs +85 -0
  1159. package/dist/VideoModuleBox-CAKcfyk0.mjs.map +1 -0
  1160. package/dist/VideoModuleBox-CHyezeSh.mjs.map +1 -0
  1161. package/dist/VideoModuleBox-Dxo7v9cw.mjs.map +1 -0
  1162. package/dist/VideoModuleBox-fepbn_Bw.mjs.map +1 -0
  1163. package/dist/VideoPage--jVboh2e.mjs.map +1 -0
  1164. package/dist/VideoPage-3OW3SyQI.mjs.map +1 -0
  1165. package/dist/VideoPage-B6gP9AJ_.mjs.map +1 -0
  1166. package/dist/VideoPage-B94V1DAX.mjs.map +1 -0
  1167. package/dist/VideoPage-BRSAQnkl.mjs +274 -0
  1168. package/dist/VideoPage-BRSAQnkl.mjs.map +1 -0
  1169. package/dist/VideoPage-CaP2fTTp.mjs.map +1 -0
  1170. package/dist/VideoPage-DKEG0fFH.mjs.map +1 -0
  1171. package/dist/VideoPage-DKuK-muU.mjs.map +1 -0
  1172. package/dist/VideoPage-DXMUgZcF.mjs.map +1 -0
  1173. package/dist/VideoPage-DaXRG9L9.mjs.map +1 -0
  1174. package/dist/classicApi-1jdxJdNn.mjs +1899 -0
  1175. package/dist/classicApi-1jdxJdNn.mjs.map +1 -0
  1176. package/dist/classicApi-BGITtHY6.mjs.map +1 -0
  1177. package/dist/classicApi-Bb7QgY_-.mjs.map +1 -0
  1178. package/dist/classicApi-CM1SG1hB.mjs.map +1 -0
  1179. package/dist/classicApi-CT-zOpO4.mjs.map +1 -0
  1180. package/dist/classicApi-DazNRZ5Q.mjs.map +1 -0
  1181. package/dist/classicApi-DhYbooR3.mjs.map +1 -0
  1182. package/dist/classicApi-DnmetKhT.mjs.map +1 -0
  1183. package/dist/downloadHelper-B-fqJ-zf.mjs.map +1 -0
  1184. package/dist/downloadHelper-B6m5pBKm.mjs.map +1 -0
  1185. package/dist/downloadHelper-B8D7SOOM.mjs.map +1 -0
  1186. package/dist/downloadHelper-CU_Wxd5U.mjs.map +1 -0
  1187. package/dist/downloadHelper-C_zKrGUc.mjs.map +1 -0
  1188. package/dist/downloadHelper-Dr10br-6.mjs.map +1 -0
  1189. package/dist/downloadHelper-LQW1LToj.mjs +36 -0
  1190. package/dist/downloadHelper-LQW1LToj.mjs.map +1 -0
  1191. package/dist/downloadHelper-y_M7FzoH.mjs.map +1 -0
  1192. package/dist/index.mjs +111 -100
  1193. package/dist/index.mjs.map +1 -1
  1194. package/dist/messages-BGiv9Gsb.mjs.map +1 -0
  1195. package/dist/messages-BRLdnntg.mjs.map +1 -0
  1196. package/dist/messages-BlwH5qG0.mjs.map +1 -0
  1197. package/dist/messages-BqVF4jGm.mjs +2763 -0
  1198. package/dist/messages-BqVF4jGm.mjs.map +1 -0
  1199. package/dist/messages-Bw2bPt8M.mjs.map +1 -0
  1200. package/dist/messages-BzSMoDq6.mjs.map +1 -0
  1201. package/dist/messages-Daql_N4V.mjs.map +1 -0
  1202. package/dist/tests.mjs +2 -2
  1203. package/dist/types-8roXR0of.mjs.map +1 -1
  1204. package/dist/types-DmxFXVJz.mjs +12 -0
  1205. package/dist/types-DmxFXVJz.mjs.map +1 -0
  1206. package/dist/useAdvancedParamInit-BFDxm4Zv.mjs.map +1 -0
  1207. package/dist/useAdvancedParamInit-C9i1OLKX.mjs.map +1 -0
  1208. package/dist/useAdvancedParamInit-COJzBPcY.mjs +168 -0
  1209. package/dist/useAdvancedParamInit-COJzBPcY.mjs.map +1 -0
  1210. package/dist/useAdvancedParamInit-CVy6xAhR.mjs.map +1 -0
  1211. package/dist/useAdvancedParamInit-CXubNin6.mjs.map +1 -0
  1212. package/dist/useAdvancedParamInit-CdHU32HT.mjs.map +1 -0
  1213. package/dist/useAdvancedParamInit-CfpyEfbz.mjs.map +1 -0
  1214. package/dist/useAdvancedParamInit-D4gIuSKD.mjs.map +1 -0
  1215. package/dist/useAdvancedParamInit-DV346TAD.mjs.map +1 -0
  1216. package/dist/useAdvancedParamInit-DbfEsrzA.mjs.map +1 -0
  1217. package/dist/useAdvancedParamInit-DcMypQh9.mjs.map +1 -0
  1218. package/dist/useAdvancedParamInit-X9_sZFbf.mjs.map +1 -0
  1219. package/dist/useAppleVideo-BGOd4QiN.mjs +30 -0
  1220. package/dist/useAppleVideo-BGOd4QiN.mjs.map +1 -0
  1221. package/dist/useAppleVideo-CpIdHjzn.mjs.map +1 -0
  1222. package/dist/useDayjs-BODPt2H7.mjs.map +1 -0
  1223. package/dist/useDayjs-BwARZ4CJ.mjs.map +1 -0
  1224. package/dist/useDayjs-Cl4mV4Zl.mjs.map +1 -0
  1225. package/dist/useDayjs-Cpj0Yeao.mjs.map +1 -0
  1226. package/dist/useDayjs-CqMtrxXh.mjs.map +1 -0
  1227. package/dist/useDayjs-DHkflClU.mjs.map +1 -0
  1228. package/dist/useDayjs-DPNxdkJX.mjs +32 -0
  1229. package/dist/useDayjs-DPNxdkJX.mjs.map +1 -0
  1230. package/dist/useDayjs-wjXHxuIo.mjs.map +1 -0
  1231. package/dist/useErrorHandler-BRfB3Nma.mjs +19 -0
  1232. package/dist/useErrorHandler-BRfB3Nma.mjs.map +1 -0
  1233. package/dist/useErrorHandler-CxSuHQ_9.mjs.map +1 -0
  1234. package/dist/useErrorHandler-DU-7-mwV.mjs.map +1 -0
  1235. package/dist/useErrorHandler-DpjCmJBr.mjs.map +1 -0
  1236. package/dist/useErrorHandler-NCoJhMs_.mjs.map +1 -0
  1237. package/dist/useErrorHandler-juiZ5M15.mjs.map +1 -0
  1238. package/dist/useErrorHandler-mgzIIgcg.mjs.map +1 -0
  1239. package/dist/useErrorHandler-sRvbreJI.mjs.map +1 -0
  1240. package/dist/useImageProxy-B8Fo5ez4.mjs.map +1 -0
  1241. package/dist/useImageProxy-C6MR_3fy.mjs.map +1 -0
  1242. package/dist/useImageProxy-CYWAbN4O.mjs.map +1 -0
  1243. package/dist/useImageProxy-Ce8Rqjw3.mjs +20 -0
  1244. package/dist/useImageProxy-Ce8Rqjw3.mjs.map +1 -0
  1245. package/dist/useImageProxy-D35x2zuV.mjs.map +1 -0
  1246. package/dist/useImageProxy-DHvBSxPl.mjs.map +1 -0
  1247. package/dist/useImageProxy-DXJ_9Ajv.mjs.map +1 -0
  1248. package/dist/useImageProxy-Dwmn4CPK.mjs.map +1 -0
  1249. package/dist/useOrgaComputed-BNyuoiqr.mjs.map +1 -0
  1250. package/dist/useOrgaComputed-CqtlhFcz.mjs.map +1 -0
  1251. package/dist/useOrgaComputed-Cu1TPM6V.mjs.map +1 -0
  1252. package/dist/useOrgaComputed-CzlYvP0I.mjs.map +1 -0
  1253. package/dist/useOrgaComputed-DF-_-Jrl.mjs.map +1 -0
  1254. package/dist/useOrgaComputed-DXB4jqMM.mjs +19 -0
  1255. package/dist/useOrgaComputed-DXB4jqMM.mjs.map +1 -0
  1256. package/dist/useOrgaComputed-DqALV5bw.mjs.map +1 -0
  1257. package/dist/useOrgaComputed-y75FS78u.mjs.map +1 -0
  1258. package/dist/usePlayerLogicProgress-BsOt5dL-.mjs +108 -0
  1259. package/dist/usePlayerLogicProgress-BsOt5dL-.mjs.map +1 -0
  1260. package/dist/usePlayerLogicProgress-Cq8T3M3-.mjs.map +1 -0
  1261. package/dist/usePlayerLogicProgress-D5ltA6Fq.mjs.map +1 -0
  1262. package/dist/usePlayerLogicProgress-DY9nXTmQ.mjs.map +1 -0
  1263. package/dist/usePlayerLogicProgress-HyplkwZi.mjs.map +1 -0
  1264. package/dist/usePlayerLogicProgress-onVpP8yQ.mjs.map +1 -0
  1265. package/dist/usePlayerLogicProgress-qPJXeMjl.mjs.map +1 -0
  1266. package/dist/usePlayerLogicProgress-xabvx5Dj.mjs.map +1 -0
  1267. package/dist/usePodcastView-73KBTBhj.mjs.map +1 -0
  1268. package/dist/usePodcastView-BGL-TWPy.mjs.map +1 -0
  1269. package/dist/usePodcastView-Bx-DxLIg.mjs.map +1 -0
  1270. package/dist/usePodcastView-C3EgP7ic.mjs.map +1 -0
  1271. package/dist/usePodcastView-CAIh0pHz.mjs.map +1 -0
  1272. package/dist/usePodcastView-DFnXBBfU.mjs.map +1 -0
  1273. package/dist/usePodcastView-DUG7H7_G.mjs +56 -0
  1274. package/dist/usePodcastView-DUG7H7_G.mjs.map +1 -0
  1275. package/dist/usePodcastView-DyJpgarZ.mjs.map +1 -0
  1276. package/dist/usePresentationItem-B1B3lv7I.mjs.map +1 -0
  1277. package/dist/usePresentationItem-BVFN9AaL.mjs.map +1 -0
  1278. package/dist/usePresentationItem-CDLqFMo6.mjs.map +1 -0
  1279. package/dist/usePresentationItem-CMkPxjL9.mjs.map +1 -0
  1280. package/dist/usePresentationItem-D51GV-y3.mjs.map +1 -0
  1281. package/dist/usePresentationItem-DPhrqvIO.mjs.map +1 -0
  1282. package/dist/usePresentationItem-Djtlqztv.mjs.map +1 -0
  1283. package/dist/usePresentationItem-vnaThjqU.mjs +190 -0
  1284. package/dist/usePresentationItem-vnaThjqU.mjs.map +1 -0
  1285. package/dist/useRights-BFzc-f5r.mjs.map +1 -0
  1286. package/dist/useRights-Bb6Lduj1.mjs.map +1 -0
  1287. package/dist/useRights-BtQenL-m.mjs.map +1 -0
  1288. package/dist/useRights-CacvXcg_.mjs +276 -0
  1289. package/dist/useRights-CacvXcg_.mjs.map +1 -0
  1290. package/dist/useRights-Cm7U9RVV.mjs.map +1 -0
  1291. package/dist/useRights-G8UGBWNE.mjs.map +1 -0
  1292. package/dist/useRights-ZfPDGUYq.mjs.map +1 -0
  1293. package/dist/useRights-pznf2MQ8.mjs.map +1 -0
  1294. package/dist/useRubriquesFilterComputed-7LToVEWh.mjs.map +1 -0
  1295. package/dist/useRubriquesFilterComputed-B4fRwCc2.mjs.map +1 -0
  1296. package/dist/useRubriquesFilterComputed-B6yAljnV.mjs +13 -0
  1297. package/dist/useRubriquesFilterComputed-B6yAljnV.mjs.map +1 -0
  1298. package/dist/useRubriquesFilterComputed-B94E8TMb.mjs.map +1 -0
  1299. package/dist/useRubriquesFilterComputed-BUhvHrds.mjs.map +1 -0
  1300. package/dist/useRubriquesFilterComputed-C6Cj-JB5.mjs.map +1 -0
  1301. package/dist/useRubriquesFilterComputed-CJf96968.mjs.map +1 -0
  1302. package/dist/useRubriquesFilterComputed-qsLiWlwD.mjs.map +1 -0
  1303. package/dist/useRubriquesFilterParam-BPlVhx7S.mjs.map +1 -0
  1304. package/dist/useRubriquesFilterParam-C6Ur8-pi.mjs.map +1 -0
  1305. package/dist/useRubriquesFilterParam-CIx0fFT-.mjs.map +1 -0
  1306. package/dist/useRubriquesFilterParam-CxWXo4lU.mjs.map +1 -0
  1307. package/dist/useRubriquesFilterParam-DGbdF4f8.mjs.map +1 -0
  1308. package/dist/useRubriquesFilterParam-DiwzHD1p.mjs.map +1 -0
  1309. package/dist/useRubriquesFilterParam-gXKJJk5a.mjs.map +1 -0
  1310. package/dist/useRubriquesFilterParam-vy-84z0z.mjs +36 -0
  1311. package/dist/useRubriquesFilterParam-vy-84z0z.mjs.map +1 -0
  1312. package/dist/useSharePlatforms-B8icj2ci.mjs.map +1 -0
  1313. package/dist/useSharePlatforms-BM2OkqJZ.mjs.map +1 -0
  1314. package/dist/useSharePlatforms-BR8_vXB0.mjs +468 -0
  1315. package/dist/useSharePlatforms-BR8_vXB0.mjs.map +1 -0
  1316. package/dist/useSharePlatforms-CIn_6DZg.mjs.map +1 -0
  1317. package/dist/useSharePlatforms-CLrC0mcY.mjs.map +1 -0
  1318. package/dist/useSharePlatforms-CdY4H5fa.mjs.map +1 -0
  1319. package/dist/useSharePlatforms-D3m8oP4P.mjs.map +1 -0
  1320. package/dist/useSharePlatforms-DLNWOmu1.mjs.map +1 -0
  1321. package/dist/useSimplePageParam-0gi4z_Dh.mjs.map +1 -0
  1322. package/dist/useSimplePageParam-4Tpbf3Aw.mjs.map +1 -0
  1323. package/dist/useSimplePageParam-5gqDFPw2.mjs +54 -0
  1324. package/dist/useSimplePageParam-5gqDFPw2.mjs.map +1 -0
  1325. package/dist/useSimplePageParam-BzTu0hr0.mjs.map +1 -0
  1326. package/dist/useSimplePageParam-ChJeNy7l.mjs.map +1 -0
  1327. package/dist/useSimplePageParam-CnI4TOgF.mjs.map +1 -0
  1328. package/dist/useSimplePageParam-D8JdiVAL.mjs.map +1 -0
  1329. package/dist/useSimplePageParam-DpL3Hy9p.mjs.map +1 -0
  1330. package/dist/useSimplePageParam-lFUxz3bl.mjs.map +1 -0
  1331. package/dist/useTranslation-6jVFDIJS.mjs.map +1 -0
  1332. package/dist/useTranslation-BFbcum1F.mjs.map +1 -0
  1333. package/dist/useTranslation-BasfWDh_.mjs.map +1 -0
  1334. package/dist/useTranslation-BtpS4E-y.mjs +205 -0
  1335. package/dist/useTranslation-BtpS4E-y.mjs.map +1 -0
  1336. package/dist/useTranslation-C_6AuQgJ.mjs.map +1 -0
  1337. package/dist/useTranslation-CuXwk0sO.mjs.map +1 -0
  1338. package/dist/useTranslation-DdpPHciF.mjs.map +1 -0
  1339. package/dist/useTranslation-OKjcLwgA.mjs.map +1 -0
  1340. package/dist/usefetchRadioData-BdkLvXty.mjs.map +1 -0
  1341. package/dist/usefetchRadioData-CJH2-YQo.mjs.map +1 -0
  1342. package/dist/usefetchRadioData-CQ1I7kfe.mjs.map +1 -0
  1343. package/dist/usefetchRadioData-CdnOaM6A.mjs +55 -0
  1344. package/dist/usefetchRadioData-CdnOaM6A.mjs.map +1 -0
  1345. package/dist/usefetchRadioData-DYfkhUsz.mjs.map +1 -0
  1346. package/dist/usefetchRadioData-DyDRwB3R.mjs.map +1 -0
  1347. package/dist/usefetchRadioData-N66E_KQK.mjs.map +1 -0
  1348. package/dist/usefetchRadioData-NZLt1-PL.mjs.map +1 -0
  1349. package/package.json +1 -1
  1350. package/src/components/composable/route/types.ts +8 -2
  1351. package/src/components/composable/route/useAdvancedParamInit.ts +10 -3
  1352. package/src/components/composable/useAppleVideo.ts +24 -0
  1353. package/src/components/display/filter/AdvancedSearch.vue +23 -1
  1354. package/src/components/display/playlist/PodcastList.vue +0 -1
  1355. package/src/components/display/podcasts/PodcastList.vue +6 -5
  1356. package/src/components/display/podcasts/PodcastModuleBox.vue +20 -8
  1357. package/src/components/misc/RightsScopeMenu.vue +6 -2
  1358. package/src/components/pages/PodcastPage.vue +3 -0
  1359. package/src/components/pages/PodcastsPage.vue +4 -1
  1360. package/src/locale/de.json +5 -4
  1361. package/src/locale/en.json +5 -4
  1362. package/src/locale/es.json +5 -4
  1363. package/src/locale/fr.json +4 -3
  1364. package/src/locale/it.json +5 -4
  1365. package/src/locale/sl.json +5 -4
  1366. package/src/router/utils.ts +1 -0
  1367. package/src/stores/AuthStore.ts +2 -0
  1368. package/src/stores/class/adserver/adserverConfig.ts +13 -5
  1369. package/src/stores/class/adserver/index.ts +3 -0
  1370. package/src/stores/class/general/category.ts +1 -0
  1371. package/src/stores/class/general/index.ts +2 -0
  1372. package/dist/AdvancedSearch-BDxs2o7K.mjs +0 -429
  1373. package/dist/CategoryFilter-BtvszT_D.mjs +0 -237
  1374. package/dist/CategoryList-BirNjSgi.mjs +0 -182
  1375. package/dist/CategoryPage-zRFFW7lm.mjs +0 -57
  1376. package/dist/ChapteringModal-DSrRb0wM.mjs +0 -82
  1377. package/dist/CheckIdentityModal-BeoPGlll.mjs +0 -86
  1378. package/dist/ClassicAlert-DUQplMvs.mjs +0 -85
  1379. package/dist/ClipboardModal-Dm9Z1sRK.mjs +0 -84
  1380. package/dist/CommentBasicView-BIiF59xV.mjs +0 -129
  1381. package/dist/CommentInput-yE5YpwPd.mjs +0 -186
  1382. package/dist/CommentItem-B95BndID.mjs +0 -232
  1383. package/dist/CommentList-l9y2S0t4.mjs +0 -302
  1384. package/dist/CommentMoreActions-tL6Uqw1X.mjs +0 -286
  1385. package/dist/CommentName-Dg4--t-W.mjs +0 -96
  1386. package/dist/CommentParentInfo-8jbjym0a.mjs +0 -64
  1387. package/dist/CommentPlayer-lesewf4s.mjs +0 -86
  1388. package/dist/CommentSection-BRUVbqPQ.mjs +0 -141
  1389. package/dist/CommentStore-C9bhViPU.mjs +0 -355
  1390. package/dist/ContractPreviewModal-DDJNYv49.mjs +0 -101
  1391. package/dist/DownloadPodcastButton-DXJGjfIn.mjs +0 -53
  1392. package/dist/EditCommentModal-Czp-qN4t.mjs +0 -162
  1393. package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs +0 -82
  1394. package/dist/EmissionInlineList-Bqvh02uF.mjs +0 -188
  1395. package/dist/EmissionItem-DoBM2Zk2.mjs +0 -183
  1396. package/dist/EmissionList-Bh3ZlvV4.mjs +0 -325
  1397. package/dist/EmissionPage-BG6RIWP2.mjs +0 -322
  1398. package/dist/EmissionPlayerItem-CvoVh-dC.mjs +0 -167
  1399. package/dist/EmissionPresentationItem-B2PbYGuW.mjs +0 -78
  1400. package/dist/EmissionPresentationList-BXNJsC5t.mjs +0 -125
  1401. package/dist/EmissionsPage-B1arrsZ7.mjs +0 -199
  1402. package/dist/Error403Page-Bv-DWyb6.mjs +0 -69
  1403. package/dist/ErrorMessage-D2XAzxpC.mjs +0 -44
  1404. package/dist/FooterGarSection-77dYJO_c.mjs +0 -71
  1405. package/dist/FooterSection-B1hXBiqI.mjs +0 -242
  1406. package/dist/HomeDropdown-87gJP-lN.mjs +0 -110
  1407. package/dist/HomePage-Brr9jjcQ.mjs +0 -166
  1408. package/dist/LikeSection-1P9-7FQ5.mjs +0 -167
  1409. package/dist/ListPaginate-CEgFM1e5.mjs +0 -202
  1410. package/dist/LiveHorizontalList-G4GVIv-L.mjs +0 -136
  1411. package/dist/LiveList-BiODr6Zp.mjs +0 -324
  1412. package/dist/LivesPage-vu6VOIIy.mjs +0 -76
  1413. package/dist/MapPage-DmEdjPRe.mjs +0 -303
  1414. package/dist/MobileMenu-xNe7tNdx.mjs +0 -187
  1415. package/dist/NewsletterModal-LqgD6CbF.mjs +0 -82
  1416. package/dist/OrganisationChooser-BiNMu3dn.mjs +0 -190
  1417. package/dist/OrganisationChooserLight-BJwIMZ6G.mjs +0 -84
  1418. package/dist/PageNotFound-ChQf6Ngj.mjs +0 -58
  1419. package/dist/ParticipantInlineList-CcCfd9rJ.mjs +0 -117
  1420. package/dist/ParticipantItem-Ch4_98y_.mjs +0 -138
  1421. package/dist/ParticipantPage-DtAxvp2W.mjs +0 -203
  1422. package/dist/ParticipantsPage-BzdpZCDO.mjs +0 -262
  1423. package/dist/PlayerAnonymousModal-BKaI6E9o.mjs +0 -84
  1424. package/dist/PlayerCompact-B-WRNyqn.mjs +0 -209
  1425. package/dist/PlayerComponent-CUHTRJic.mjs +0 -929
  1426. package/dist/PlayerLarge-Kt-pV6N_.mjs +0 -190
  1427. package/dist/PlayerPlayButton-CAElMmMV.mjs +0 -400
  1428. package/dist/PlayerProgressBar-DWAyhBWx.mjs +0 -86
  1429. package/dist/PlayerStore-7vhL8Npe.mjs +0 -230
  1430. package/dist/PlayerVideo-Dq7OHOig.mjs +0 -72
  1431. package/dist/PlayerVideoDigiteka-pNFWNrON.mjs +0 -102
  1432. package/dist/PlayerVideoHls-CE2SIkEn.mjs +0 -232
  1433. package/dist/PlaylistPage-Cb5ukqXZ.mjs +0 -228
  1434. package/dist/PlaylistsPage-DAVADzhL.mjs +0 -395
  1435. package/dist/PodcastFilterList-CmqrA2oC.mjs +0 -254
  1436. package/dist/PodcastImage-FhC5F4MR.mjs +0 -174
  1437. package/dist/PodcastInlineList-CDumc8n6.mjs +0 -138
  1438. package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs +0 -233
  1439. package/dist/PodcastIsPlaying-DqnPEYSJ.mjs +0 -30
  1440. package/dist/PodcastItem-rF33x3wp.mjs +0 -287
  1441. package/dist/PodcastList-BewxderG.mjs +0 -330
  1442. package/dist/PodcastList-DYLAwHbt.mjs +0 -182
  1443. package/dist/PodcastPage-NMZSFjQm.mjs +0 -756
  1444. package/dist/PodcastPlayBar-D_b7qme_.mjs +0 -83
  1445. package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs +0 -72
  1446. package/dist/PodcastPlayButton-Dgv5W72_.mjs +0 -236
  1447. package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs +0 -115
  1448. package/dist/PodcastPresentationList-DxUwH3dU.mjs +0 -200
  1449. package/dist/PodcastProgressBar-D_togvfJ.mjs +0 -98
  1450. package/dist/PodcastRawTranscript-CHnE4Q9g.mjs +0 -184
  1451. package/dist/PodcastRubriqueList-DqHgAzXW.mjs +0 -83
  1452. package/dist/PodcastSwiperList-PoinXUn2.mjs +0 -219
  1453. package/dist/PodcastmakerHeader-CTOmo93E.mjs +0 -58
  1454. package/dist/PodcastsPage-B1JUH1co.mjs +0 -217
  1455. package/dist/ProductorSearch-XQ1jGYQw.mjs +0 -161
  1456. package/dist/ProgressBar-CyddCXNJ.mjs +0 -158
  1457. package/dist/QrCode-6ZkgX9Ta.mjs +0 -177
  1458. package/dist/QrCodeModal-BNVatZWE.mjs +0 -64
  1459. package/dist/RadioCurrently-Bf-Pg-J_.mjs +0 -112
  1460. package/dist/RadioHistory-C7tOpvUk.mjs +0 -139
  1461. package/dist/RadioImage-CiIj65_a.mjs +0 -85
  1462. package/dist/RadioList-BotOeNwF.mjs +0 -125
  1463. package/dist/RadioPage-CcPPJUmX.mjs +0 -137
  1464. package/dist/RadioPlanning-C8MtglrL.mjs +0 -290
  1465. package/dist/RadioProgressBar-1PEu9PP_.mjs +0 -67
  1466. package/dist/RecaptchaModal-CHFdC9Sq.mjs +0 -148
  1467. package/dist/ReportAbuseModal-CRcYir1i.mjs +0 -134
  1468. package/dist/RightsIndicator-DeX5rK6p.mjs +0 -124
  1469. package/dist/RightsWrapper-B8WfUUyU.mjs +0 -212
  1470. package/dist/RubriqueFilter-DL_FXRSA.mjs +0 -199
  1471. package/dist/RubriqueList-CMOS69Vq.mjs +0 -206
  1472. package/dist/RubriquePage-TE1WN6Ij.mjs +0 -108
  1473. package/dist/SearchPage-DMmu7a0f.mjs +0 -77
  1474. package/dist/ShareAnonymous-BRlQaJhi.mjs +0 -321
  1475. package/dist/ShareModalPlayer-D98G_Ndx.mjs +0 -135
  1476. package/dist/ShareNewsletter-C-clOCKi.mjs +0 -211
  1477. package/dist/SharePlayer-ChACZKgH.mjs +0 -378
  1478. package/dist/SharePlayerRadio-CTMdvwN2.mjs +0 -127
  1479. package/dist/SharePlayerTypes-B7FLniHB.mjs +0 -232
  1480. package/dist/ShareSocialsButtons-DiJVocCJ.mjs +0 -159
  1481. package/dist/SimpleLayout-DLEAl9OH.mjs +0 -41
  1482. package/dist/SmartLinkPage-BJoMvpYI.mjs +0 -238
  1483. package/dist/SubscribeButtons-Va9APuBC.mjs +0 -203
  1484. package/dist/SwiperList-B20Vye8P.mjs +0 -207
  1485. package/dist/TagList-B4PT2uXD.mjs +0 -134
  1486. package/dist/TagPage-BUXelbn2.mjs +0 -125
  1487. package/dist/TopBar-Bg0jGbps.mjs +0 -760
  1488. package/dist/UserButtonContent-CPa7Icpi.mjs +0 -185
  1489. package/dist/VideoModuleBox-CIZ34N35.mjs +0 -85
  1490. package/dist/VideoPage-B-7n9a0w.mjs +0 -274
  1491. package/dist/classicApi-ChvwoPGT.mjs +0 -1906
  1492. package/dist/downloadHelper-CuFfOvc0.mjs +0 -36
  1493. package/dist/messages-C-3-wU0o.mjs +0 -2757
  1494. package/dist/types-8roXR0of.mjs +0 -11
  1495. package/dist/useAdvancedParamInit-DpFW5LOX.mjs +0 -162
  1496. package/dist/useDayjs-CK_TIXDt.mjs +0 -32
  1497. package/dist/useErrorHandler-BZkAkzNC.mjs +0 -19
  1498. package/dist/useImageProxy-DdK55qB4.mjs +0 -20
  1499. package/dist/useOrgaComputed-D5SfqMx9.mjs +0 -19
  1500. package/dist/usePlayerLogicProgress-C-gsD-ec.mjs +0 -108
  1501. package/dist/usePodcastView-DlzuYDsj.mjs +0 -56
  1502. package/dist/usePresentationItem-CUGbjF4i.mjs +0 -190
  1503. package/dist/useRights-DNL2VJUc.mjs +0 -276
  1504. package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs +0 -13
  1505. package/dist/useRubriquesFilterParam-BrWFpJhb.mjs +0 -36
  1506. package/dist/useSharePlatforms-BqPO-hyZ.mjs +0 -468
  1507. package/dist/useSimplePageParam-ByeUUq4Z.mjs +0 -54
  1508. package/dist/useTranslation-Dsw1HxX9.mjs +0 -205
  1509. package/dist/usefetchRadioData-3E5_FJJM.mjs +0 -55
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSimplePageParam-CnI4TOgF.mjs","names":[],"sources":["../src/components/composable/route/useSimplePageParam.ts"],"sourcesContent":["import { useFilterStore } from '../../../stores/FilterStore';\nimport { useRouteUpdateParams } from './useRouteUpdateParams';\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\n\nimport { RouteProps, ROUTE_PARAMS } from \"./types\";\n\nexport const useSimplePageParam = (props: RouteProps, force=false, advancedSearch=false)=>{\n\n const { updateRouteParam } = useRouteUpdateParams();\n\n const filterStore = useFilterStore();\n\n const isInit = ref(false);\n const searchPattern = ref(\"\");\n const organisationId: Ref<string|undefined> = ref(undefined);\n\n const searchMinSize = computed(() => getMinSize((props.routeQuery as string)));\n const paginateFirst = computed(() => {\n if(!props.pr || props.ps === undefined) {\n return 0;\n }\n return Math.max(((props.pr as number) - 1 ) * (props.ps as number), 0);\n });\n\n watch(searchPattern, () => {\n if(!advancedSearch){\n const query = getMinSize(searchPattern.value);\n updateRouteParam({\n [ROUTE_PARAMS.Query]: query.length ? query : undefined,\n }, force);\n }\n });\n\n // When changing global organisation, update organisation here\n watch(() => filterStore.filterOrgaId, () => {\n organisationId.value = filterStore.filterOrgaId;\n });\n\n onMounted(() => {\n initOrga();\n initSearchPattern();\n isInit.value = true;\n });\n\n function getMinSize(param:string){\n return param.length>3 ?param : \"\"\n }\n function initSearchPattern(){\n searchPattern.value = (props.routeQuery as string) ?? \"\";\n }\n function initOrga(){\n organisationId.value = filterStore.filterOrgaId ?? (props.routeOrga as string);\n }\n\n\n return {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n initSearchPattern,\n initOrga,\n updateRouteParam,\n isInit\n };\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAsB,OAAmB,QAAM,OAAO,iBAAe,UAAQ;CAExF,MAAM,EAAE,qBAAqB,qBAAqB;CAElD,MAAM,cAAe,eAAe;CAEpC,MAAM,SAAS,IAAI,KAAK;CACxB,MAAM,gBAAgB,IAAI,EAAE;CAC5B,MAAM,iBAAwC,IAAI,KAAA,CAAS;CAE3D,MAAM,gBAAgB,eAAe,WAAY,MAAM,UAAqB,CAAC;CAC7E,MAAM,gBAAgB,eAAe;EACnC,IAAG,CAAC,MAAM,MAAM,MAAM,OAAO,KAAA,GAC3B,OAAO;EAET,OAAO,KAAK,KAAM,MAAM,KAAgB,KAAO,MAAM,IAAe,CAAC;CACvE,CAAC;CAED,MAAM,qBAAqB;EACzB,IAAG,CAAC,gBAAe;GACjB,MAAM,QAAQ,WAAW,cAAc,KAAK;GAC5C,iBAAiB,GACd,aAAa,QAAQ,MAAM,SAAS,QAAQ,KAAA,EAC/C,GAAG,KAAK;EACV;CACF,CAAC;CAGD,YAAY,YAAY,oBAAoB;EAC1C,eAAe,QAAQ,YAAY;CACrC,CAAC;CAED,gBAAgB;EACd,SAAS;EACT,kBAAkB;EAClB,OAAO,QAAQ;CACjB,CAAC;CAED,SAAS,WAAW,OAAa;EAC/B,OAAO,MAAM,SAAO,IAAG,QAAQ;CACjC;CACA,SAAS,oBAAmB;EAC1B,cAAc,QAAS,MAAM,cAAyB;CACxD;CACA,SAAS,WAAU;EACjB,eAAe,QAAQ,YAAY,gBAAiB,MAAM;CAC5D;CAGA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSimplePageParam-D8JdiVAL.mjs","names":[],"sources":["../src/components/composable/route/useSimplePageParam.ts"],"sourcesContent":["import { useFilterStore } from '../../../stores/FilterStore';\nimport { useRouteUpdateParams } from './useRouteUpdateParams';\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\n\nimport { RouteProps, ROUTE_PARAMS } from \"./types\";\n\nexport const useSimplePageParam = (props: RouteProps, force=false, advancedSearch=false)=>{\n\n const { updateRouteParam } = useRouteUpdateParams();\n\n const filterStore = useFilterStore();\n\n const isInit = ref(false);\n const searchPattern = ref(\"\");\n const organisationId: Ref<string|undefined> = ref(undefined);\n\n const searchMinSize = computed(() => getMinSize((props.routeQuery as string)));\n const paginateFirst = computed(() => {\n if(!props.pr || props.ps === undefined) {\n return 0;\n }\n return Math.max(((props.pr as number) - 1 ) * (props.ps as number), 0);\n });\n\n watch(searchPattern, () => {\n if(!advancedSearch){\n const query = getMinSize(searchPattern.value);\n updateRouteParam({\n [ROUTE_PARAMS.Query]: query.length ? query : undefined,\n }, force);\n }\n });\n\n // When changing global organisation, update organisation here\n watch(() => filterStore.filterOrgaId, () => {\n organisationId.value = filterStore.filterOrgaId;\n });\n\n onMounted(() => {\n initOrga();\n initSearchPattern();\n isInit.value = true;\n });\n\n function getMinSize(param:string){\n return param.length>3 ?param : \"\"\n }\n function initSearchPattern(){\n searchPattern.value = (props.routeQuery as string) ?? \"\";\n }\n function initOrga(){\n organisationId.value = filterStore.filterOrgaId ?? (props.routeOrga as string);\n }\n\n\n return {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n initSearchPattern,\n initOrga,\n updateRouteParam,\n isInit\n };\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAsB,OAAmB,QAAM,OAAO,iBAAe,UAAQ;CAExF,MAAM,EAAE,qBAAqB,qBAAqB;CAElD,MAAM,cAAe,eAAe;CAEpC,MAAM,SAAS,IAAI,KAAK;CACxB,MAAM,gBAAgB,IAAI,EAAE;CAC5B,MAAM,iBAAwC,IAAI,KAAA,CAAS;CAE3D,MAAM,gBAAgB,eAAe,WAAY,MAAM,UAAqB,CAAC;CAC7E,MAAM,gBAAgB,eAAe;EACnC,IAAG,CAAC,MAAM,MAAM,MAAM,OAAO,KAAA,GAC3B,OAAO;EAET,OAAO,KAAK,KAAM,MAAM,KAAgB,KAAO,MAAM,IAAe,CAAC;CACvE,CAAC;CAED,MAAM,qBAAqB;EACzB,IAAG,CAAC,gBAAe;GACjB,MAAM,QAAQ,WAAW,cAAc,KAAK;GAC5C,iBAAiB,GACd,aAAa,QAAQ,MAAM,SAAS,QAAQ,KAAA,EAC/C,GAAG,KAAK;EACV;CACF,CAAC;CAGD,YAAY,YAAY,oBAAoB;EAC1C,eAAe,QAAQ,YAAY;CACrC,CAAC;CAED,gBAAgB;EACd,SAAS;EACT,kBAAkB;EAClB,OAAO,QAAQ;CACjB,CAAC;CAED,SAAS,WAAW,OAAa;EAC/B,OAAO,MAAM,SAAO,IAAG,QAAQ;CACjC;CACA,SAAS,oBAAmB;EAC1B,cAAc,QAAS,MAAM,cAAyB;CACxD;CACA,SAAS,WAAU;EACjB,eAAe,QAAQ,YAAY,gBAAiB,MAAM;CAC5D;CAGA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSimplePageParam-DpL3Hy9p.mjs","names":[],"sources":["../src/components/composable/route/useSimplePageParam.ts"],"sourcesContent":["import { useFilterStore } from '../../../stores/FilterStore';\nimport { useRouteUpdateParams } from './useRouteUpdateParams';\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\n\nimport { RouteProps, ROUTE_PARAMS } from \"./types\";\n\nexport const useSimplePageParam = (props: RouteProps, force=false, advancedSearch=false)=>{\n\n const { updateRouteParam } = useRouteUpdateParams();\n\n const filterStore = useFilterStore();\n\n const isInit = ref(false);\n const searchPattern = ref(\"\");\n const organisationId: Ref<string|undefined> = ref(undefined);\n\n const searchMinSize = computed(() => getMinSize((props.routeQuery as string)));\n const paginateFirst = computed(() => {\n if(!props.pr || props.ps === undefined) {\n return 0;\n }\n return Math.max(((props.pr as number) - 1 ) * (props.ps as number), 0);\n });\n\n watch(searchPattern, () => {\n if(!advancedSearch){\n const query = getMinSize(searchPattern.value);\n updateRouteParam({\n [ROUTE_PARAMS.Query]: query.length ? query : undefined,\n }, force);\n }\n });\n\n // When changing global organisation, update organisation here\n watch(() => filterStore.filterOrgaId, () => {\n organisationId.value = filterStore.filterOrgaId;\n });\n\n onMounted(() => {\n initOrga();\n initSearchPattern();\n isInit.value = true;\n });\n\n function getMinSize(param:string){\n return param.length>3 ?param : \"\"\n }\n function initSearchPattern(){\n searchPattern.value = (props.routeQuery as string) ?? \"\";\n }\n function initOrga(){\n organisationId.value = filterStore.filterOrgaId ?? (props.routeOrga as string);\n }\n\n\n return {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n initSearchPattern,\n initOrga,\n updateRouteParam,\n isInit\n };\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAsB,OAAmB,QAAM,OAAO,iBAAe,UAAQ;CAExF,MAAM,EAAE,qBAAqB,qBAAqB;CAElD,MAAM,cAAe,eAAe;CAEpC,MAAM,SAAS,IAAI,KAAK;CACxB,MAAM,gBAAgB,IAAI,EAAE;CAC5B,MAAM,iBAAwC,IAAI,KAAA,CAAS;CAE3D,MAAM,gBAAgB,eAAe,WAAY,MAAM,UAAqB,CAAC;CAC7E,MAAM,gBAAgB,eAAe;EACnC,IAAG,CAAC,MAAM,MAAM,MAAM,OAAO,KAAA,GAC3B,OAAO;EAET,OAAO,KAAK,KAAM,MAAM,KAAgB,KAAO,MAAM,IAAe,CAAC;CACvE,CAAC;CAED,MAAM,qBAAqB;EACzB,IAAG,CAAC,gBAAe;GACjB,MAAM,QAAQ,WAAW,cAAc,KAAK;GAC5C,iBAAiB,GACd,aAAa,QAAQ,MAAM,SAAS,QAAQ,KAAA,EAC/C,GAAG,KAAK;EACV;CACF,CAAC;CAGD,YAAY,YAAY,oBAAoB;EAC1C,eAAe,QAAQ,YAAY;CACrC,CAAC;CAED,gBAAgB;EACd,SAAS;EACT,kBAAkB;EAClB,OAAO,QAAQ;CACjB,CAAC;CAED,SAAS,WAAW,OAAa;EAC/B,OAAO,MAAM,SAAO,IAAG,QAAQ;CACjC;CACA,SAAS,oBAAmB;EAC1B,cAAc,QAAS,MAAM,cAAyB;CACxD;CACA,SAAS,WAAU;EACjB,eAAe,QAAQ,YAAY,gBAAiB,MAAM;CAC5D;CAGA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSimplePageParam-lFUxz3bl.mjs","names":[],"sources":["../src/components/composable/route/useSimplePageParam.ts"],"sourcesContent":["import { useFilterStore } from '../../../stores/FilterStore';\nimport { useRouteUpdateParams } from './useRouteUpdateParams';\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\n\nimport { RouteProps, ROUTE_PARAMS } from \"./types\";\n\nexport const useSimplePageParam = (props: RouteProps, force=false, advancedSearch=false)=>{\n\n const { updateRouteParam } = useRouteUpdateParams();\n\n const filterStore = useFilterStore();\n\n const isInit = ref(false);\n const searchPattern = ref(\"\");\n const organisationId: Ref<string|undefined> = ref(undefined);\n\n const searchMinSize = computed(() => getMinSize((props.routeQuery as string)));\n const paginateFirst = computed(() => {\n if(!props.pr || props.ps === undefined) {\n return 0;\n }\n return Math.max(((props.pr as number) - 1 ) * (props.ps as number), 0);\n });\n\n watch(searchPattern, () => {\n if(!advancedSearch){\n const query = getMinSize(searchPattern.value);\n updateRouteParam({\n [ROUTE_PARAMS.Query]: query.length ? query : undefined,\n }, force);\n }\n });\n\n // When changing global organisation, update organisation here\n watch(() => filterStore.filterOrgaId, () => {\n organisationId.value = filterStore.filterOrgaId;\n });\n\n onMounted(() => {\n initOrga();\n initSearchPattern();\n isInit.value = true;\n });\n\n function getMinSize(param:string){\n return param.length>3 ?param : \"\"\n }\n function initSearchPattern(){\n searchPattern.value = (props.routeQuery as string) ?? \"\";\n }\n function initOrga(){\n organisationId.value = filterStore.filterOrgaId ?? (props.routeOrga as string);\n }\n\n\n return {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n initSearchPattern,\n initOrga,\n updateRouteParam,\n isInit\n };\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAsB,OAAmB,QAAM,OAAO,iBAAe,UAAQ;CAExF,MAAM,EAAE,qBAAqB,qBAAqB;CAElD,MAAM,cAAe,eAAe;CAEpC,MAAM,SAAS,IAAI,KAAK;CACxB,MAAM,gBAAgB,IAAI,EAAE;CAC5B,MAAM,iBAAwC,IAAI,KAAA,CAAS;CAE3D,MAAM,gBAAgB,eAAe,WAAY,MAAM,UAAqB,CAAC;CAC7E,MAAM,gBAAgB,eAAe;EACnC,IAAG,CAAC,MAAM,MAAM,MAAM,OAAO,KAAA,GAC3B,OAAO;EAET,OAAO,KAAK,KAAM,MAAM,KAAgB,KAAO,MAAM,IAAe,CAAC;CACvE,CAAC;CAED,MAAM,qBAAqB;EACzB,IAAG,CAAC,gBAAe;GACjB,MAAM,QAAQ,WAAW,cAAc,KAAK;GAC5C,iBAAiB,GACd,aAAa,QAAQ,MAAM,SAAS,QAAQ,KAAA,EAC/C,GAAG,KAAK;EACV;CACF,CAAC;CAGD,YAAY,YAAY,oBAAoB;EAC1C,eAAe,QAAQ,YAAY;CACrC,CAAC;CAED,gBAAgB;EACd,SAAS;EACT,kBAAkB;EAClB,OAAO,QAAQ;CACjB,CAAC;CAED,SAAS,WAAW,OAAa;EAC/B,OAAO,MAAM,SAAO,IAAG,QAAQ;CACjC;CACA,SAAS,oBAAmB;EAC1B,cAAc,QAAS,MAAM,cAAyB;CACxD;CACA,SAAS,WAAU;EACjB,eAAe,QAAQ,YAAY,gBAAiB,MAAM;CAC5D;CAGA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation-6jVFDIJS.mjs","names":[],"sources":["../src/helper/language.ts","../src/stores/class/transcript/transcriptParams.ts","../src/components/composable/useTranslation.ts"],"sourcesContent":["/**\n * Utility function to retrieve most relevant language for the user\n * @params forceToKnown When set to true (default), will limit language to one\n * one of 6 known languages. When set to false, allow all\n * languages.\n * @returns The most relevant language\n */\nexport function getLanguage(forceToKnown = true): string {\n const nameEQ = \"octopus-language=\";\n const ca = document.cookie.split(\";\");\n\n let language = \"\";\n for (const valueCookie of ca) {\n let c = valueCookie;\n while (c.startsWith(\" \")) {\n c = c.substring(1, c.length);\n }\n if (0 === c.indexOf(nameEQ)) {\n language = c.substring(nameEQ.length, c.length);\n break;\n }\n }\n\n if (0 === language.length) {\n if (forceToKnown === true) {\n // Choose best avilable language\n for (const navigatorLang of navigator.languages) {\n if (navigatorLang.includes(\"fr\")) {\n language = \"fr\";\n break;\n } else if (navigatorLang.includes(\"en\")) {\n language = \"en\";\n break;\n } else if (navigatorLang.includes(\"it\")) {\n language = \"it\";\n break;\n } else if (navigatorLang.includes(\"sl\")) {\n language = \"sl\";\n break;\n } else if (navigatorLang.includes(\"es\")) {\n language = \"es\";\n break;\n } else if (navigatorLang.includes(\"de\")) {\n language = \"de\";\n break;\n }\n }\n if (!language) {\n language = \"fr\";\n }\n } else {\n language = navigator.language;\n }\n }\n\n return language;\n}\n","export interface TranscriptParams {\n automation: string; // super, {date}, false \n ttsParams: TtsParams;\n modifyPodcast: ModifyPodcastConfig\n translationConfig: TranslationConfiguration;\n}\nexport interface TtsParams {\n super: string;\n style: string;\n pitch: number;\n speed: number;\n voice: string;\n language: string;\n}\n\nexport interface ModifyPodcastConfig {\n modifyChaptering: ModifyPodcastEnum;\n modifyKeywords: ModifyPodcastEnum;\n modifyDescription: ModifyPodcastEnum;\n createDescriptionUsingAi: boolean;\n wordsNumber: number;\n}\n\nexport enum ModifyPodcastEnum {\n SUPER = \"SUPER\",\n NO = \"NO\",\n IF_EMPTY = \"IF_EMPTY\",\n OVERWRITE=\"OVERWRITE\"\n}\n\nexport interface TranslationConfiguration {\n createTranslation:{[lang:string]: CreateTranslation};\n otherLanguage:CreateTranslation; //Cannot be ALWAYS\n}\n\nexport enum CreateTranslation {\n NEVER = \"NEVER\",\n ON_DEMAND = \"ON_DEMAND\",\n ALWAYS = \"ALWAYS\",\n SUPER=\"SUPER\"\n}\n\nexport function defaultTtsParams(): TtsParams {\n return {\n super: \"true\",\n style: \"neutral\",\n pitch: 0,\n speed: 1,\n voice: \"\",\n language: \"\"\n };\n}\n\nexport function defaultModifyPodcastConfig(): ModifyPodcastConfig {\n return {\n modifyChaptering: ModifyPodcastEnum.NO,\n modifyKeywords:ModifyPodcastEnum.NO,\n modifyDescription:ModifyPodcastEnum.NO,\n createDescriptionUsingAi: false,\n wordsNumber: 100,\n };\n}\n\n/**\n * Create a default object of TranslationConfiguration\n * @param isEmission Optional, if set and true changes default values\n * @returns The object\n */\nexport function defaultTranslationConfig(isEmission?: boolean): TranslationConfiguration {\n return {\n createTranslation:{},\n otherLanguage: isEmission ? CreateTranslation.SUPER : CreateTranslation.NEVER\n };\n}\n\nexport interface Voice {\n name: string;\n locale: string;\n displayName: string;\n gender: string;\n audioExample?: string;\n styles?: [];\n provider: string;\n}\nexport interface ProviderTts {\n name: string;\n fullName: string;\n logoPath: string;\n description: string;\n}\n","import { getLanguage } from \"../../helper/language\";\nimport { transcriptionApi, TranslationState, type PodcastTranslationData } from \"../../api/transcriptionApi\";\nimport { CreateTranslation, defaultTranslationConfig, TranslationConfiguration } from \"../../stores/class/transcript/transcriptParams\";\nimport { podcastApi } from \"../../api/podcastApi\";\nimport { Emission } from \"../../stores/class/general/emission\";\nimport { OrganisationAttributes } from \"@/stores/class/general/organisation\";\nimport { organisationApi } from \"../../api/organisationApi\";\n\nconst DEFAULT_LANGUAGE = 'en';\n\ninterface RelevantLanguages {\n /** Language which already has a generated translation */\n ready: string;\n /** Language that is more relevant but its translation is not yet generated */\n available?: string;\n}\n\nenum Availability {\n Available,\n ToGenerate,\n Unavailable\n}\n\nexport const useTranslation = () => {\n\n /**\n * Convert SRT data to plain text\n * @param srt The data to convert\n * @returns The plain text\n */\n function convertSrtToPlainText(srt: string): string {\n const srtPattern =\n /\\d+\\n[\\d:,]+\\s+-{2}>\\s+[\\d:,]+\\n([\\s\\S]*?(?=\\n{2}|$))/gm;\n const result: Array<string> = [];\n let matches: string[];\n while ((matches = srtPattern.exec(srt)) != null) {\n result.push(matches[1] + \" \");\n }\n return result.join(\"\");\n }\n\n function getApplicationConf(language: string, conf: TranslationConfiguration): CreateTranslation {\n if (language in conf.createTranslation) {\n return conf.createTranslation[language];\n }\n\n return conf.otherLanguage;\n }\n\n /**\n * Retrieve the translation configuration for a given language\n */\n function getConfigurationFor(language: string, emissionConf: TranslationConfiguration, orgaConf: TranslationConfiguration): CreateTranslation {\n const emissionSetting = getApplicationConf(language, emissionConf);\n if (emissionSetting === CreateTranslation.SUPER) {\n return getApplicationConf(language, orgaConf);\n }\n return emissionSetting;\n }\n\n function parseOrDefault(data: string|undefined, isEmission = false): TranslationConfiguration {\n return data ? JSON.parse(data) : defaultTranslationConfig(isEmission);\n }\n\n /**\n * Indicates wether the language is available (either because generated or\n * because it can be generated)\n * @param language The language to check for\n * @param emission *(optional)* If set, will also check in emission settings\n * @returns Whether the language is available or not\n */\n function getTranslationConfig(language: string, emission: Emission, orgaAttributes: OrganisationAttributes): CreateTranslation {\n const emissionTranslation = parseOrDefault(emission.annotations?.['translation-config'] as string|undefined, true);\n const orgTranslation = parseOrDefault(orgaAttributes?.['translation-config']);\n\n return getConfigurationFor(language, emissionTranslation, orgTranslation);\n }\n\n function getLanguageAvailability(language: string, emission: Emission, orgaAttributes: OrganisationAttributes, translationData: PodcastTranslationData): Availability {\n \n // 1. If language of podcast == language of browser, use that language\n if (language === translationData.nativeLanguage) {\n return Availability.Available;\n } else {\n const langConfig = getTranslationConfig(language, emission, orgaAttributes);\n\n // 2. If the language of the browser is available, use it\n if (langConfig === CreateTranslation.ALWAYS) {\n return Availability.Available;\n }\n // 2b. If the language is on demand, check if generated\n else if (langConfig === CreateTranslation.ON_DEMAND) {\n // Check if translation is already generated\n if (translationData.translations.find(t => t.language === language && t.state === TranslationState.FINISHED)) {\n return Availability.Available;\n } else {\n return Availability.ToGenerate;\n }\n }\n }\n\n return Availability.Unavailable;\n }\n\n /**\n * Get the relevant language for the current user\n * @param translationData The translation data for the podcast\n * @returns An object with properties 'ready' and 'available'\n * - *ready* Is the best language already generated\n * - *available* Is the best language not yet generated (or\n * undefined if *ready* is better)\n */\n async function getMostRelevantLanguage(translationData: PodcastTranslationData): Promise<RelevantLanguages> {\n const userLanguage = getLanguage(false);\n\n // If user language is native, do not go further\n if (userLanguage === translationData.nativeLanguage) {\n return { ready: userLanguage };\n }\n\n // Compute all available languages. Use language set on site, then\n // languages defined on browser, then default, and finally native language\n const languages: string[] = [];\n [userLanguage, ...navigator.languages, DEFAULT_LANGUAGE, translationData.nativeLanguage].forEach(l => {\n // For each language, if it is a variant (for example fr-CH), use\n // only the base language\n if (l.includes('-')) {\n l = l.split('-')[0];\n }\n\n if (!languages.includes(l)) {\n languages.push(l);\n }\n });\n\n const podcast = await podcastApi.get(translationData.podcastId);\n const emission = podcast.emission;\n const orgaAttributes = await organisationApi.getAttributes(podcast.organisation.id);\n\n let bestReady: string|null = null;\n let bestAvailable: string|null = null;\n\n for (const language of languages) {\n const avaibility = getLanguageAvailability(language, emission, orgaAttributes, translationData);\n if (avaibility === Availability.Available && bestReady === null) {\n bestReady = language;\n break;\n }\n\n if (avaibility === Availability.ToGenerate && bestAvailable === null) {\n bestAvailable = language;\n }\n }\n\n return { ready: bestReady, available: bestAvailable ?? undefined };\n }\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(translationData: PodcastTranslationData): Promise<string>;\n /**\n * Get the relevant translation for the current user\n * @param podcastId The ID of the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(podcastId: number): Promise<string>;\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(data: PodcastTranslationData|number): Promise<string> {\n let translationData: PodcastTranslationData;\n if (typeof data === 'number') {\n translationData = await transcriptionApi.getTranslations(data);\n } else {\n translationData = data;\n }\n\n const { ready } = await getMostRelevantLanguage(translationData);\n\n // Finally get translation with chosen language\n const podcastId = translationData.podcastId;\n return await transcriptionApi.getTranslation(podcastId, ready);\n }\n\n return {\n convertSrtToPlainText,\n getMostRelevantLanguage,\n getMostRelevantTranslation,\n getTranslationConfig\n }\n};\n"],"mappings":";;;;;;;;;AAOA,SAAgB,YAAY,eAAe,MAAc;CACrD,MAAM,SAAS;CACf,MAAM,KAAK,SAAS,OAAO,MAAM,GAAG;CAEpC,IAAI,WAAW;CACf,KAAK,MAAM,eAAe,IAAI;EAC1B,IAAI,IAAI;EACR,OAAO,EAAE,WAAW,GAAG,GACnB,IAAI,EAAE,UAAU,GAAG,EAAE,MAAM;EAE/B,IAAI,MAAM,EAAE,QAAQ,MAAM,GAAG;GACzB,WAAW,EAAE,UAAU,IAAe,EAAE,MAAM;GAC9C;EACJ;CACJ;CAEA,IAAI,MAAM,SAAS,QACf,IAAI,iBAAiB,MAAM;EAEvB,KAAK,MAAM,iBAAiB,UAAU,WAClC,IAAI,cAAc,SAAS,IAAI,GAAG;GAC9B,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ;EAEJ,IAAI,CAAC,UACD,WAAW;CAEnB,OACI,WAAW,UAAU;CAI7B,OAAO;AACX;;;ACjCA,IAAY,oBAAL,yBAAA,mBAAA;CACL,kBAAA,WAAA;CACA,kBAAA,QAAA;CACA,kBAAA,cAAA;CACA,kBAAA,eAAA;;AACF,EAAA,CAAA,CAAA;AAOA,IAAY,oBAAL,yBAAA,mBAAA;CACL,kBAAA,WAAA;CACA,kBAAA,eAAA;CACA,kBAAA,YAAA;CACA,kBAAA,WAAA;;AACF,EAAA,CAAA,CAAA;AAEA,SAAgB,mBAA8B;CAC5C,OAAO;EACL,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,UAAU;CACZ;AACF;AAEA,SAAgB,6BAAkD;CAChE,OAAO;EACL,kBAAA;EACA,gBAAA;EACA,mBAAA;EACA,0BAA0B;EAC1B,aAAa;CACf;AACF;;;;;;AAOA,SAAgB,yBAAyB,YAAgD;CACvF,OAAO;EACL,mBAAkB,CAAC;EACnB,eAAe,aAAA,UAAA;CACjB;AACF;;;ACjEA,IAAM,mBAAmB;AAezB,IAAa,uBAAuB;;;;;;CAOhC,SAAS,sBAAsB,KAAqB;EAChD,MAAM,aACF;EACJ,MAAM,SAAwB,CAAC;EAC/B,IAAI;EACJ,QAAQ,UAAU,WAAW,KAAK,GAAG,MAAM,MACvC,OAAO,KAAK,QAAQ,KAAK,GAAG;EAEhC,OAAO,OAAO,KAAK,EAAE;CACzB;CAEA,SAAS,mBAAmB,UAAkB,MAAmD;EAC7F,IAAI,YAAY,KAAK,mBACjB,OAAO,KAAK,kBAAkB;EAGlC,OAAO,KAAK;CAChB;;;;CAKA,SAAS,oBAAoB,UAAkB,cAAwC,UAAuD;EAC1I,MAAM,kBAAkB,mBAAmB,UAAU,YAAY;EACjE,IAAI,oBAAoB,kBAAkB,OACtC,OAAO,mBAAmB,UAAU,QAAQ;EAEhD,OAAO;CACX;CAEA,SAAS,eAAe,MAAwB,aAAa,OAAiC;EAC1F,OAAO,OAAO,KAAK,MAAM,IAAI,IAAI,yBAAyB,UAAU;CACxE;;;;;;;;CASA,SAAS,qBAAqB,UAAkB,UAAoB,gBAA2D;EAI3H,OAAO,oBAAoB,UAHC,eAAe,SAAS,cAAc,uBAA2C,IAGxE,GAFd,eAAe,iBAAiB,qBAEG,CAAc;CAC5E;CAEA,SAAS,wBAAwB,UAAkB,UAAoB,gBAAwC,iBAAuD;EAGlK,IAAI,aAAa,gBAAgB,gBAC7B,OAAA;OACG;GACH,MAAM,aAAa,qBAAqB,UAAU,UAAU,cAAc;GAG1E,IAAI,eAAe,kBAAkB,QACjC,OAAA;QAGC,IAAI,eAAe,kBAAkB,WAEtC,IAAI,gBAAgB,aAAa,MAAK,MAAK,EAAE,aAAa,YAAY,EAAE,UAAU,iBAAiB,QAAQ,GACvG,OAAA;QAEA,OAAA;EAGZ;EAEA,OAAA;CACJ;;;;;;;;;CAUA,eAAe,wBAAwB,iBAAqE;EACxG,MAAM,eAAe,YAAY,KAAK;EAGtC,IAAI,iBAAiB,gBAAgB,gBACjC,OAAO,EAAE,OAAO,aAAa;EAKjC,MAAM,YAAsB,CAAC;EAC7B;GAAC;GAAc,GAAG,UAAU;GAAW;GAAkB,gBAAgB;EAAc,EAAE,SAAQ,MAAK;GAGlG,IAAI,EAAE,SAAS,GAAG,GACd,IAAI,EAAE,MAAM,GAAG,EAAE;GAGrB,IAAI,CAAC,UAAU,SAAS,CAAC,GACrB,UAAU,KAAK,CAAC;EAExB,CAAC;EAED,MAAM,UAAU,MAAM,WAAW,IAAI,gBAAgB,SAAS;EAC9D,MAAM,WAAW,QAAQ;EACzB,MAAM,iBAAiB,MAAM,gBAAgB,cAAc,QAAQ,aAAa,EAAE;EAElF,IAAI,YAAyB;EAC7B,IAAI,gBAA6B;EAEjC,KAAK,MAAM,YAAY,WAAW;GAC9B,MAAM,aAAa,wBAAwB,UAAU,UAAU,gBAAgB,eAAe;GAC9F,IAAI,eAAA,KAAyC,cAAc,MAAM;IAC7D,YAAY;IACZ;GACJ;GAEA,IAAI,eAAA,KAA0C,kBAAkB,MAC5D,gBAAgB;EAExB;EAEA,OAAO;GAAE,OAAO;GAAW,WAAW,iBAAiB,KAAA;EAAU;CACrE;;;;;;CAoBA,eAAe,2BAA2B,MAAsD;EAC5F,IAAI;EACJ,IAAI,OAAO,SAAS,UAChB,kBAAkB,MAAM,iBAAiB,gBAAgB,IAAI;OAE7D,kBAAkB;EAGtB,MAAM,EAAE,UAAU,MAAM,wBAAwB,eAAe;EAG/D,MAAM,YAAY,gBAAgB;EAClC,OAAO,MAAM,iBAAiB,eAAe,WAAW,KAAK;CACjE;CAEA,OAAO;EACH;EACA;EACA;EACA;CACJ;AACJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation-BFbcum1F.mjs","names":[],"sources":["../src/helper/language.ts","../src/stores/class/transcript/transcriptParams.ts","../src/components/composable/useTranslation.ts"],"sourcesContent":["/**\n * Utility function to retrieve most relevant language for the user\n * @params forceToKnown When set to true (default), will limit language to one\n * one of 6 known languages. When set to false, allow all\n * languages.\n * @returns The most relevant language\n */\nexport function getLanguage(forceToKnown = true): string {\n const nameEQ = \"octopus-language=\";\n const ca = document.cookie.split(\";\");\n\n let language = \"\";\n for (const valueCookie of ca) {\n let c = valueCookie;\n while (c.startsWith(\" \")) {\n c = c.substring(1, c.length);\n }\n if (0 === c.indexOf(nameEQ)) {\n language = c.substring(nameEQ.length, c.length);\n break;\n }\n }\n\n if (0 === language.length) {\n if (forceToKnown === true) {\n // Choose best avilable language\n for (const navigatorLang of navigator.languages) {\n if (navigatorLang.includes(\"fr\")) {\n language = \"fr\";\n break;\n } else if (navigatorLang.includes(\"en\")) {\n language = \"en\";\n break;\n } else if (navigatorLang.includes(\"it\")) {\n language = \"it\";\n break;\n } else if (navigatorLang.includes(\"sl\")) {\n language = \"sl\";\n break;\n } else if (navigatorLang.includes(\"es\")) {\n language = \"es\";\n break;\n } else if (navigatorLang.includes(\"de\")) {\n language = \"de\";\n break;\n }\n }\n if (!language) {\n language = \"fr\";\n }\n } else {\n language = navigator.language;\n }\n }\n\n return language;\n}\n","export interface TranscriptParams {\n automation: string; // super, {date}, false \n ttsParams: TtsParams;\n modifyPodcast: ModifyPodcastConfig\n translationConfig: TranslationConfiguration;\n}\nexport interface TtsParams {\n super: string;\n style: string;\n pitch: number;\n speed: number;\n voice: string;\n language: string;\n}\n\nexport interface ModifyPodcastConfig {\n modifyChaptering: ModifyPodcastEnum;\n modifyKeywords: ModifyPodcastEnum;\n modifyDescription: ModifyPodcastEnum;\n createDescriptionUsingAi: boolean;\n wordsNumber: number;\n}\n\nexport enum ModifyPodcastEnum {\n SUPER = \"SUPER\",\n NO = \"NO\",\n IF_EMPTY = \"IF_EMPTY\",\n OVERWRITE=\"OVERWRITE\"\n}\n\nexport interface TranslationConfiguration {\n createTranslation:{[lang:string]: CreateTranslation};\n otherLanguage:CreateTranslation; //Cannot be ALWAYS\n}\n\nexport enum CreateTranslation {\n NEVER = \"NEVER\",\n ON_DEMAND = \"ON_DEMAND\",\n ALWAYS = \"ALWAYS\",\n SUPER=\"SUPER\"\n}\n\nexport function defaultTtsParams(): TtsParams {\n return {\n super: \"true\",\n style: \"neutral\",\n pitch: 0,\n speed: 1,\n voice: \"\",\n language: \"\"\n };\n}\n\nexport function defaultModifyPodcastConfig(): ModifyPodcastConfig {\n return {\n modifyChaptering: ModifyPodcastEnum.NO,\n modifyKeywords:ModifyPodcastEnum.NO,\n modifyDescription:ModifyPodcastEnum.NO,\n createDescriptionUsingAi: false,\n wordsNumber: 100,\n };\n}\n\n/**\n * Create a default object of TranslationConfiguration\n * @param isEmission Optional, if set and true changes default values\n * @returns The object\n */\nexport function defaultTranslationConfig(isEmission?: boolean): TranslationConfiguration {\n return {\n createTranslation:{},\n otherLanguage: isEmission ? CreateTranslation.SUPER : CreateTranslation.NEVER\n };\n}\n\nexport interface Voice {\n name: string;\n locale: string;\n displayName: string;\n gender: string;\n audioExample?: string;\n styles?: [];\n provider: string;\n}\nexport interface ProviderTts {\n name: string;\n fullName: string;\n logoPath: string;\n description: string;\n}\n","import { getLanguage } from \"../../helper/language\";\nimport { transcriptionApi, TranslationState, type PodcastTranslationData } from \"../../api/transcriptionApi\";\nimport { CreateTranslation, defaultTranslationConfig, TranslationConfiguration } from \"../../stores/class/transcript/transcriptParams\";\nimport { podcastApi } from \"../../api/podcastApi\";\nimport { Emission } from \"../../stores/class/general/emission\";\nimport { OrganisationAttributes } from \"@/stores/class/general/organisation\";\nimport { organisationApi } from \"../../api/organisationApi\";\n\nconst DEFAULT_LANGUAGE = 'en';\n\ninterface RelevantLanguages {\n /** Language which already has a generated translation */\n ready: string;\n /** Language that is more relevant but its translation is not yet generated */\n available?: string;\n}\n\nenum Availability {\n Available,\n ToGenerate,\n Unavailable\n}\n\nexport const useTranslation = () => {\n\n /**\n * Convert SRT data to plain text\n * @param srt The data to convert\n * @returns The plain text\n */\n function convertSrtToPlainText(srt: string): string {\n const srtPattern =\n /\\d+\\n[\\d:,]+\\s+-{2}>\\s+[\\d:,]+\\n([\\s\\S]*?(?=\\n{2}|$))/gm;\n const result: Array<string> = [];\n let matches: string[];\n while ((matches = srtPattern.exec(srt)) != null) {\n result.push(matches[1] + \" \");\n }\n return result.join(\"\");\n }\n\n function getApplicationConf(language: string, conf: TranslationConfiguration): CreateTranslation {\n if (language in conf.createTranslation) {\n return conf.createTranslation[language];\n }\n\n return conf.otherLanguage;\n }\n\n /**\n * Retrieve the translation configuration for a given language\n */\n function getConfigurationFor(language: string, emissionConf: TranslationConfiguration, orgaConf: TranslationConfiguration): CreateTranslation {\n const emissionSetting = getApplicationConf(language, emissionConf);\n if (emissionSetting === CreateTranslation.SUPER) {\n return getApplicationConf(language, orgaConf);\n }\n return emissionSetting;\n }\n\n function parseOrDefault(data: string|undefined, isEmission = false): TranslationConfiguration {\n return data ? JSON.parse(data) : defaultTranslationConfig(isEmission);\n }\n\n /**\n * Indicates wether the language is available (either because generated or\n * because it can be generated)\n * @param language The language to check for\n * @param emission *(optional)* If set, will also check in emission settings\n * @returns Whether the language is available or not\n */\n function getTranslationConfig(language: string, emission: Emission, orgaAttributes: OrganisationAttributes): CreateTranslation {\n const emissionTranslation = parseOrDefault(emission.annotations?.['translation-config'] as string|undefined, true);\n const orgTranslation = parseOrDefault(orgaAttributes?.['translation-config']);\n\n return getConfigurationFor(language, emissionTranslation, orgTranslation);\n }\n\n function getLanguageAvailability(language: string, emission: Emission, orgaAttributes: OrganisationAttributes, translationData: PodcastTranslationData): Availability {\n \n // 1. If language of podcast == language of browser, use that language\n if (language === translationData.nativeLanguage) {\n return Availability.Available;\n } else {\n const langConfig = getTranslationConfig(language, emission, orgaAttributes);\n\n // 2. If the language of the browser is available, use it\n if (langConfig === CreateTranslation.ALWAYS) {\n return Availability.Available;\n }\n // 2b. If the language is on demand, check if generated\n else if (langConfig === CreateTranslation.ON_DEMAND) {\n // Check if translation is already generated\n if (translationData.translations.find(t => t.language === language && t.state === TranslationState.FINISHED)) {\n return Availability.Available;\n } else {\n return Availability.ToGenerate;\n }\n }\n }\n\n return Availability.Unavailable;\n }\n\n /**\n * Get the relevant language for the current user\n * @param translationData The translation data for the podcast\n * @returns An object with properties 'ready' and 'available'\n * - *ready* Is the best language already generated\n * - *available* Is the best language not yet generated (or\n * undefined if *ready* is better)\n */\n async function getMostRelevantLanguage(translationData: PodcastTranslationData): Promise<RelevantLanguages> {\n const userLanguage = getLanguage(false);\n\n // If user language is native, do not go further\n if (userLanguage === translationData.nativeLanguage) {\n return { ready: userLanguage };\n }\n\n // Compute all available languages. Use language set on site, then\n // languages defined on browser, then default, and finally native language\n const languages: string[] = [];\n [userLanguage, ...navigator.languages, DEFAULT_LANGUAGE, translationData.nativeLanguage].forEach(l => {\n // For each language, if it is a variant (for example fr-CH), use\n // only the base language\n if (l.includes('-')) {\n l = l.split('-')[0];\n }\n\n if (!languages.includes(l)) {\n languages.push(l);\n }\n });\n\n const podcast = await podcastApi.get(translationData.podcastId);\n const emission = podcast.emission;\n const orgaAttributes = await organisationApi.getAttributes(podcast.organisation.id);\n\n let bestReady: string|null = null;\n let bestAvailable: string|null = null;\n\n for (const language of languages) {\n const avaibility = getLanguageAvailability(language, emission, orgaAttributes, translationData);\n if (avaibility === Availability.Available && bestReady === null) {\n bestReady = language;\n break;\n }\n\n if (avaibility === Availability.ToGenerate && bestAvailable === null) {\n bestAvailable = language;\n }\n }\n\n return { ready: bestReady, available: bestAvailable ?? undefined };\n }\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(translationData: PodcastTranslationData): Promise<string>;\n /**\n * Get the relevant translation for the current user\n * @param podcastId The ID of the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(podcastId: number): Promise<string>;\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(data: PodcastTranslationData|number): Promise<string> {\n let translationData: PodcastTranslationData;\n if (typeof data === 'number') {\n translationData = await transcriptionApi.getTranslations(data);\n } else {\n translationData = data;\n }\n\n const { ready } = await getMostRelevantLanguage(translationData);\n\n // Finally get translation with chosen language\n const podcastId = translationData.podcastId;\n return await transcriptionApi.getTranslation(podcastId, ready);\n }\n\n return {\n convertSrtToPlainText,\n getMostRelevantLanguage,\n getMostRelevantTranslation,\n getTranslationConfig\n }\n};\n"],"mappings":";;;;;;;;;AAOA,SAAgB,YAAY,eAAe,MAAc;CACrD,MAAM,SAAS;CACf,MAAM,KAAK,SAAS,OAAO,MAAM,GAAG;CAEpC,IAAI,WAAW;CACf,KAAK,MAAM,eAAe,IAAI;EAC1B,IAAI,IAAI;EACR,OAAO,EAAE,WAAW,GAAG,GACnB,IAAI,EAAE,UAAU,GAAG,EAAE,MAAM;EAE/B,IAAI,MAAM,EAAE,QAAQ,MAAM,GAAG;GACzB,WAAW,EAAE,UAAU,IAAe,EAAE,MAAM;GAC9C;EACJ;CACJ;CAEA,IAAI,MAAM,SAAS,QACf,IAAI,iBAAiB,MAAM;EAEvB,KAAK,MAAM,iBAAiB,UAAU,WAClC,IAAI,cAAc,SAAS,IAAI,GAAG;GAC9B,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ,OAAO,IAAI,cAAc,SAAS,IAAI,GAAG;GACrC,WAAW;GACX;EACJ;EAEJ,IAAI,CAAC,UACD,WAAW;CAEnB,OACI,WAAW,UAAU;CAI7B,OAAO;AACX;;;ACjCA,IAAY,oBAAL,yBAAA,mBAAA;CACL,kBAAA,WAAA;CACA,kBAAA,QAAA;CACA,kBAAA,cAAA;CACA,kBAAA,eAAA;;AACF,EAAA,CAAA,CAAA;AAOA,IAAY,oBAAL,yBAAA,mBAAA;CACL,kBAAA,WAAA;CACA,kBAAA,eAAA;CACA,kBAAA,YAAA;CACA,kBAAA,WAAA;;AACF,EAAA,CAAA,CAAA;AAEA,SAAgB,mBAA8B;CAC5C,OAAO;EACL,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,UAAU;CACZ;AACF;AAEA,SAAgB,6BAAkD;CAChE,OAAO;EACL,kBAAA;EACA,gBAAA;EACA,mBAAA;EACA,0BAA0B;EAC1B,aAAa;CACf;AACF;;;;;;AAOA,SAAgB,yBAAyB,YAAgD;CACvF,OAAO;EACL,mBAAkB,CAAC;EACnB,eAAe,aAAA,UAAA;CACjB;AACF;;;ACjEA,IAAM,mBAAmB;AAezB,IAAa,uBAAuB;;;;;;CAOhC,SAAS,sBAAsB,KAAqB;EAChD,MAAM,aACF;EACJ,MAAM,SAAwB,CAAC;EAC/B,IAAI;EACJ,QAAQ,UAAU,WAAW,KAAK,GAAG,MAAM,MACvC,OAAO,KAAK,QAAQ,KAAK,GAAG;EAEhC,OAAO,OAAO,KAAK,EAAE;CACzB;CAEA,SAAS,mBAAmB,UAAkB,MAAmD;EAC7F,IAAI,YAAY,KAAK,mBACjB,OAAO,KAAK,kBAAkB;EAGlC,OAAO,KAAK;CAChB;;;;CAKA,SAAS,oBAAoB,UAAkB,cAAwC,UAAuD;EAC1I,MAAM,kBAAkB,mBAAmB,UAAU,YAAY;EACjE,IAAI,oBAAoB,kBAAkB,OACtC,OAAO,mBAAmB,UAAU,QAAQ;EAEhD,OAAO;CACX;CAEA,SAAS,eAAe,MAAwB,aAAa,OAAiC;EAC1F,OAAO,OAAO,KAAK,MAAM,IAAI,IAAI,yBAAyB,UAAU;CACxE;;;;;;;;CASA,SAAS,qBAAqB,UAAkB,UAAoB,gBAA2D;EAI3H,OAAO,oBAAoB,UAHC,eAAe,SAAS,cAAc,uBAA2C,IAGxE,GAFd,eAAe,iBAAiB,qBAEG,CAAc;CAC5E;CAEA,SAAS,wBAAwB,UAAkB,UAAoB,gBAAwC,iBAAuD;EAGlK,IAAI,aAAa,gBAAgB,gBAC7B,OAAA;OACG;GACH,MAAM,aAAa,qBAAqB,UAAU,UAAU,cAAc;GAG1E,IAAI,eAAe,kBAAkB,QACjC,OAAA;QAGC,IAAI,eAAe,kBAAkB,WAEtC,IAAI,gBAAgB,aAAa,MAAK,MAAK,EAAE,aAAa,YAAY,EAAE,UAAU,iBAAiB,QAAQ,GACvG,OAAA;QAEA,OAAA;EAGZ;EAEA,OAAA;CACJ;;;;;;;;;CAUA,eAAe,wBAAwB,iBAAqE;EACxG,MAAM,eAAe,YAAY,KAAK;EAGtC,IAAI,iBAAiB,gBAAgB,gBACjC,OAAO,EAAE,OAAO,aAAa;EAKjC,MAAM,YAAsB,CAAC;EAC7B;GAAC;GAAc,GAAG,UAAU;GAAW;GAAkB,gBAAgB;EAAc,EAAE,SAAQ,MAAK;GAGlG,IAAI,EAAE,SAAS,GAAG,GACd,IAAI,EAAE,MAAM,GAAG,EAAE;GAGrB,IAAI,CAAC,UAAU,SAAS,CAAC,GACrB,UAAU,KAAK,CAAC;EAExB,CAAC;EAED,MAAM,UAAU,MAAM,WAAW,IAAI,gBAAgB,SAAS;EAC9D,MAAM,WAAW,QAAQ;EACzB,MAAM,iBAAiB,MAAM,gBAAgB,cAAc,QAAQ,aAAa,EAAE;EAElF,IAAI,YAAyB;EAC7B,IAAI,gBAA6B;EAEjC,KAAK,MAAM,YAAY,WAAW;GAC9B,MAAM,aAAa,wBAAwB,UAAU,UAAU,gBAAgB,eAAe;GAC9F,IAAI,eAAA,KAAyC,cAAc,MAAM;IAC7D,YAAY;IACZ;GACJ;GAEA,IAAI,eAAA,KAA0C,kBAAkB,MAC5D,gBAAgB;EAExB;EAEA,OAAO;GAAE,OAAO;GAAW,WAAW,iBAAiB,KAAA;EAAU;CACrE;;;;;;CAoBA,eAAe,2BAA2B,MAAsD;EAC5F,IAAI;EACJ,IAAI,OAAO,SAAS,UAChB,kBAAkB,MAAM,iBAAiB,gBAAgB,IAAI;OAE7D,kBAAkB;EAGtB,MAAM,EAAE,UAAU,MAAM,wBAAwB,eAAe;EAG/D,MAAM,YAAY,gBAAgB;EAClC,OAAO,MAAM,iBAAiB,eAAe,WAAW,KAAK;CACjE;CAEA,OAAO;EACH;EACA;EACA;EACA;CACJ;AACJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation-BasfWDh_.mjs","names":[],"sources":["../src/helper/language.ts","../src/stores/class/transcript/transcriptParams.ts","../src/components/composable/useTranslation.ts"],"sourcesContent":["/**\n * Utility function to retrieve most relevant language for the user\n * @params forceToKnown When set to true (default), will limit language to one\n * one of 6 known languages. When set to false, allow all\n * languages.\n * @returns The most relevant language\n */\nexport function getLanguage(forceToKnown = true): string {\n const nameEQ = \"octopus-language=\";\n const ca = document.cookie.split(\";\");\n\n let language = \"\";\n for (const valueCookie of ca) {\n let c = valueCookie;\n while (c.startsWith(\" \")) {\n c = c.substring(1, c.length);\n }\n if (0 === c.indexOf(nameEQ)) {\n language = c.substring(nameEQ.length, c.length);\n break;\n }\n }\n\n if (0 === language.length) {\n if (forceToKnown === true) {\n // Choose best avilable language\n for (const navigatorLang of navigator.languages) {\n if (navigatorLang.includes(\"fr\")) {\n language = \"fr\";\n break;\n } else if (navigatorLang.includes(\"en\")) {\n language = \"en\";\n break;\n } else if (navigatorLang.includes(\"it\")) {\n language = \"it\";\n break;\n } else if (navigatorLang.includes(\"sl\")) {\n language = \"sl\";\n break;\n } else if (navigatorLang.includes(\"es\")) {\n language = \"es\";\n break;\n } else if (navigatorLang.includes(\"de\")) {\n language = \"de\";\n break;\n }\n }\n if (!language) {\n language = \"fr\";\n }\n } else {\n language = navigator.language;\n }\n }\n\n return language;\n}\n","export interface TranscriptParams {\n automation: string; // super, {date}, false \n ttsParams: TtsParams;\n modifyPodcast: ModifyPodcastConfig\n translationConfig: TranslationConfiguration;\n}\nexport interface TtsParams {\n super: string;\n style: string;\n pitch: number;\n speed: number;\n voice: string;\n language: string;\n}\n\nexport interface ModifyPodcastConfig {\n modifyChaptering: ModifyPodcastEnum;\n modifyKeywords: ModifyPodcastEnum;\n modifyDescription: ModifyPodcastEnum;\n createDescriptionUsingAi: boolean;\n wordsNumber: number;\n}\n\nexport enum ModifyPodcastEnum {\n SUPER = \"SUPER\",\n NO = \"NO\",\n IF_EMPTY = \"IF_EMPTY\",\n OVERWRITE=\"OVERWRITE\"\n}\n\nexport interface TranslationConfiguration {\n createTranslation:{[lang:string]: CreateTranslation};\n otherLanguage:CreateTranslation; //Cannot be ALWAYS\n}\n\nexport enum CreateTranslation {\n NEVER = \"NEVER\",\n ON_DEMAND = \"ON_DEMAND\",\n ALWAYS = \"ALWAYS\",\n SUPER=\"SUPER\"\n}\n\nexport function defaultTtsParams(): TtsParams {\n return {\n super: \"true\",\n style: \"neutral\",\n pitch: 0,\n speed: 1,\n voice: \"\",\n language: \"\"\n };\n}\n\nexport function defaultModifyPodcastConfig(): ModifyPodcastConfig {\n return {\n modifyChaptering: ModifyPodcastEnum.NO,\n modifyKeywords:ModifyPodcastEnum.NO,\n modifyDescription:ModifyPodcastEnum.NO,\n createDescriptionUsingAi: false,\n wordsNumber: 100,\n };\n}\n\n/**\n * Create a default object of TranslationConfiguration\n * @param isEmission Optional, if set and true changes default values\n * @returns The object\n */\nexport function defaultTranslationConfig(isEmission?: boolean): TranslationConfiguration {\n return {\n createTranslation:{},\n otherLanguage: isEmission ? CreateTranslation.SUPER : CreateTranslation.NEVER\n };\n}\n\nexport interface Voice {\n name: string;\n locale: string;\n displayName: string;\n gender: string;\n audioExample?: string;\n styles?: [];\n provider: string;\n}\nexport interface ProviderTts {\n name: string;\n fullName: string;\n logoPath: string;\n description: string;\n}\n","import { getLanguage } from \"../../helper/language\";\nimport { transcriptionApi, TranslationState, type PodcastTranslationData } from \"../../api/transcriptionApi\";\nimport { CreateTranslation, defaultTranslationConfig, TranslationConfiguration } from \"../../stores/class/transcript/transcriptParams\";\nimport { podcastApi } from \"../../api/podcastApi\";\nimport { Emission } from \"../../stores/class/general/emission\";\nimport { OrganisationAttributes } from \"@/stores/class/general/organisation\";\nimport { organisationApi } from \"../../api/organisationApi\";\n\nconst DEFAULT_LANGUAGE = 'en';\n\ninterface RelevantLanguages {\n /** Language which already has a generated translation */\n ready: string;\n /** Language that is more relevant but its translation is not yet generated */\n available?: string;\n}\n\nenum Availability {\n Available,\n ToGenerate,\n Unavailable\n}\n\nexport const useTranslation = () => {\n\n /**\n * Convert SRT data to plain text\n * @param srt The data to convert\n * @returns The plain text\n */\n function convertSrtToPlainText(srt: string): string {\n const srtPattern =\n /\\d+\\n[\\d:,]+\\s+-{2}>\\s+[\\d:,]+\\n([\\s\\S]*?(?=\\n{2}|$))/gm;\n const result: Array<string> = [];\n let matches: string[];\n while ((matches = srtPattern.exec(srt)) != null) {\n result.push(matches[1] + \" \");\n }\n return result.join(\"\");\n }\n\n function getApplicationConf(language: string, conf: TranslationConfiguration): CreateTranslation {\n if (language in conf.createTranslation) {\n return conf.createTranslation[language];\n }\n\n return conf.otherLanguage;\n }\n\n /**\n * Retrieve the translation configuration for a given language\n */\n function getConfigurationFor(language: string, emissionConf: TranslationConfiguration, orgaConf: TranslationConfiguration): CreateTranslation {\n const emissionSetting = getApplicationConf(language, emissionConf);\n if (emissionSetting === CreateTranslation.SUPER) {\n return getApplicationConf(language, orgaConf);\n }\n return emissionSetting;\n }\n\n function parseOrDefault(data: string|undefined, isEmission = false): TranslationConfiguration {\n return data ? JSON.parse(data) : defaultTranslationConfig(isEmission);\n }\n\n /**\n * Indicates wether the language is available (either because generated or\n * because it can be generated)\n * @param language The language to check for\n * @param emission *(optional)* If set, will also check in emission settings\n * @returns Whether the language is available or not\n */\n function getTranslationConfig(language: string, emission: Emission, orgaAttributes: OrganisationAttributes): CreateTranslation {\n const emissionTranslation = parseOrDefault(emission.annotations?.['translation-config'] as string|undefined, true);\n const orgTranslation = parseOrDefault(orgaAttributes?.['translation-config']);\n\n return getConfigurationFor(language, emissionTranslation, orgTranslation);\n }\n\n function getLanguageAvailability(language: string, emission: Emission, orgaAttributes: OrganisationAttributes, translationData: PodcastTranslationData): Availability {\n \n // 1. If language of podcast == language of browser, use that language\n if (language === translationData.nativeLanguage) {\n return Availability.Available;\n } else {\n const langConfig = getTranslationConfig(language, emission, orgaAttributes);\n\n // 2. If the language of the browser is available, use it\n if (langConfig === CreateTranslation.ALWAYS) {\n return Availability.Available;\n }\n // 2b. If the language is on demand, check if generated\n else if (langConfig === CreateTranslation.ON_DEMAND) {\n // Check if translation is already generated\n if (translationData.translations.find(t => t.language === language && t.state === TranslationState.FINISHED)) {\n return Availability.Available;\n } else {\n return Availability.ToGenerate;\n }\n }\n }\n\n return Availability.Unavailable;\n }\n\n /**\n * Get the relevant language for the current user\n * @param translationData The translation data for the podcast\n * @returns An object with properties 'ready' and 'available'\n * - *ready* Is the best language already generated\n * - *available* Is the best language not yet generated (or\n * undefined if *ready* is better)\n */\n async function getMostRelevantLanguage(translationData: PodcastTranslationData): Promise<RelevantLanguages> {\n const userLanguage = getLanguage(false);\n\n // If user language is native, do not go further\n if (userLanguage === translationData.nativeLanguage) {\n return { ready: userLanguage };\n }\n\n // Compute all available languages. Use language set on site, then\n // languages defined on browser, then default, and finally native language\n const languages: string[] = [];\n [userLanguage, ...navigator.languages, DEFAULT_LANGUAGE, translationData.nativeLanguage].forEach(l => {\n // For each language, if it is a variant (for example fr-CH), use\n // only the base language\n if (l.includes('-')) {\n l = l.split('-')[0];\n }\n\n if (!languages.includes(l)) {\n languages.push(l);\n }\n });\n\n const podcast = await podcastApi.get(translationData.podcastId);\n const emission = podcast.emission;\n const orgaAttributes = await organisationApi.getAttributes(podcast.organisation.id);\n\n let bestReady: string|null = null;\n let bestAvailable: string|null = null;\n\n for (const language of languages) {\n const avaibility = getLanguageAvailability(language, emission, orgaAttributes, translationData);\n if (avaibility === Availability.Available && bestReady === null) {\n bestReady = language;\n break;\n }\n\n if (avaibility === Availability.ToGenerate && bestAvailable === null) {\n bestAvailable = language;\n }\n }\n\n return { ready: bestReady, available: bestAvailable ?? undefined };\n }\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(translationData: PodcastTranslationData): Promise<string>;\n /**\n * Get the relevant translation for the current user\n * @param podcastId The ID of the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(podcastId: number): Promise<string>;\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(data: PodcastTranslationData|number): Promise<string> {\n let translationData: PodcastTranslationData;\n if (typeof data === 'number') {\n translationData = await transcriptionApi.getTranslations(data);\n } else {\n translationData = data;\n }\n\n const { ready } = await getMostRelevantLanguage(translationData);\n\n // Finally get translation with chosen language\n const podcastId = translationData.podcastId;\n return await transcriptionApi.getTranslation(podcastId, ready);\n }\n\n return {\n convertSrtToPlainText,\n getMostRelevantLanguage,\n getMostRelevantTranslation,\n getTranslationConfig\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1,205 @@
1
+ import { S as transcriptionApi, m as podcastApi, x as TranslationState, y as organisationApi } from "./classicApi-1jdxJdNn.mjs";
2
+ //#region src/helper/language.ts
3
+ /**
4
+ * Utility function to retrieve most relevant language for the user
5
+ * @params forceToKnown When set to true (default), will limit language to one
6
+ * one of 6 known languages. When set to false, allow all
7
+ * languages.
8
+ * @returns The most relevant language
9
+ */
10
+ function getLanguage(forceToKnown = true) {
11
+ const nameEQ = "octopus-language=";
12
+ const ca = document.cookie.split(";");
13
+ let language = "";
14
+ for (const valueCookie of ca) {
15
+ let c = valueCookie;
16
+ while (c.startsWith(" ")) c = c.substring(1, c.length);
17
+ if (0 === c.indexOf(nameEQ)) {
18
+ language = c.substring(17, c.length);
19
+ break;
20
+ }
21
+ }
22
+ if (0 === language.length) if (forceToKnown === true) {
23
+ for (const navigatorLang of navigator.languages) if (navigatorLang.includes("fr")) {
24
+ language = "fr";
25
+ break;
26
+ } else if (navigatorLang.includes("en")) {
27
+ language = "en";
28
+ break;
29
+ } else if (navigatorLang.includes("it")) {
30
+ language = "it";
31
+ break;
32
+ } else if (navigatorLang.includes("sl")) {
33
+ language = "sl";
34
+ break;
35
+ } else if (navigatorLang.includes("es")) {
36
+ language = "es";
37
+ break;
38
+ } else if (navigatorLang.includes("de")) {
39
+ language = "de";
40
+ break;
41
+ }
42
+ if (!language) language = "fr";
43
+ } else language = navigator.language;
44
+ return language;
45
+ }
46
+ //#endregion
47
+ //#region src/stores/class/transcript/transcriptParams.ts
48
+ var ModifyPodcastEnum = /* @__PURE__ */ function(ModifyPodcastEnum) {
49
+ ModifyPodcastEnum["SUPER"] = "SUPER";
50
+ ModifyPodcastEnum["NO"] = "NO";
51
+ ModifyPodcastEnum["IF_EMPTY"] = "IF_EMPTY";
52
+ ModifyPodcastEnum["OVERWRITE"] = "OVERWRITE";
53
+ return ModifyPodcastEnum;
54
+ }({});
55
+ var CreateTranslation = /* @__PURE__ */ function(CreateTranslation) {
56
+ CreateTranslation["NEVER"] = "NEVER";
57
+ CreateTranslation["ON_DEMAND"] = "ON_DEMAND";
58
+ CreateTranslation["ALWAYS"] = "ALWAYS";
59
+ CreateTranslation["SUPER"] = "SUPER";
60
+ return CreateTranslation;
61
+ }({});
62
+ function defaultTtsParams() {
63
+ return {
64
+ super: "true",
65
+ style: "neutral",
66
+ pitch: 0,
67
+ speed: 1,
68
+ voice: "",
69
+ language: ""
70
+ };
71
+ }
72
+ function defaultModifyPodcastConfig() {
73
+ return {
74
+ modifyChaptering: "NO",
75
+ modifyKeywords: "NO",
76
+ modifyDescription: "NO",
77
+ createDescriptionUsingAi: false,
78
+ wordsNumber: 100
79
+ };
80
+ }
81
+ /**
82
+ * Create a default object of TranslationConfiguration
83
+ * @param isEmission Optional, if set and true changes default values
84
+ * @returns The object
85
+ */
86
+ function defaultTranslationConfig(isEmission) {
87
+ return {
88
+ createTranslation: {},
89
+ otherLanguage: isEmission ? "SUPER" : "NEVER"
90
+ };
91
+ }
92
+ //#endregion
93
+ //#region src/components/composable/useTranslation.ts
94
+ var DEFAULT_LANGUAGE = "en";
95
+ var useTranslation = () => {
96
+ /**
97
+ * Convert SRT data to plain text
98
+ * @param srt The data to convert
99
+ * @returns The plain text
100
+ */
101
+ function convertSrtToPlainText(srt) {
102
+ const srtPattern = /\d+\n[\d:,]+\s+-{2}>\s+[\d:,]+\n([\s\S]*?(?=\n{2}|$))/gm;
103
+ const result = [];
104
+ let matches;
105
+ while ((matches = srtPattern.exec(srt)) != null) result.push(matches[1] + " ");
106
+ return result.join("");
107
+ }
108
+ function getApplicationConf(language, conf) {
109
+ if (language in conf.createTranslation) return conf.createTranslation[language];
110
+ return conf.otherLanguage;
111
+ }
112
+ /**
113
+ * Retrieve the translation configuration for a given language
114
+ */
115
+ function getConfigurationFor(language, emissionConf, orgaConf) {
116
+ const emissionSetting = getApplicationConf(language, emissionConf);
117
+ if (emissionSetting === CreateTranslation.SUPER) return getApplicationConf(language, orgaConf);
118
+ return emissionSetting;
119
+ }
120
+ function parseOrDefault(data, isEmission = false) {
121
+ return data ? JSON.parse(data) : defaultTranslationConfig(isEmission);
122
+ }
123
+ /**
124
+ * Indicates wether the language is available (either because generated or
125
+ * because it can be generated)
126
+ * @param language The language to check for
127
+ * @param emission *(optional)* If set, will also check in emission settings
128
+ * @returns Whether the language is available or not
129
+ */
130
+ function getTranslationConfig(language, emission, orgaAttributes) {
131
+ return getConfigurationFor(language, parseOrDefault(emission.annotations?.["translation-config"], true), parseOrDefault(orgaAttributes?.["translation-config"]));
132
+ }
133
+ function getLanguageAvailability(language, emission, orgaAttributes, translationData) {
134
+ if (language === translationData.nativeLanguage) return 0;
135
+ else {
136
+ const langConfig = getTranslationConfig(language, emission, orgaAttributes);
137
+ if (langConfig === CreateTranslation.ALWAYS) return 0;
138
+ else if (langConfig === CreateTranslation.ON_DEMAND) if (translationData.translations.find((t) => t.language === language && t.state === TranslationState.FINISHED)) return 0;
139
+ else return 1;
140
+ }
141
+ return 2;
142
+ }
143
+ /**
144
+ * Get the relevant language for the current user
145
+ * @param translationData The translation data for the podcast
146
+ * @returns An object with properties 'ready' and 'available'
147
+ * - *ready* Is the best language already generated
148
+ * - *available* Is the best language not yet generated (or
149
+ * undefined if *ready* is better)
150
+ */
151
+ async function getMostRelevantLanguage(translationData) {
152
+ const userLanguage = getLanguage(false);
153
+ if (userLanguage === translationData.nativeLanguage) return { ready: userLanguage };
154
+ const languages = [];
155
+ [
156
+ userLanguage,
157
+ ...navigator.languages,
158
+ DEFAULT_LANGUAGE,
159
+ translationData.nativeLanguage
160
+ ].forEach((l) => {
161
+ if (l.includes("-")) l = l.split("-")[0];
162
+ if (!languages.includes(l)) languages.push(l);
163
+ });
164
+ const podcast = await podcastApi.get(translationData.podcastId);
165
+ const emission = podcast.emission;
166
+ const orgaAttributes = await organisationApi.getAttributes(podcast.organisation.id);
167
+ let bestReady = null;
168
+ let bestAvailable = null;
169
+ for (const language of languages) {
170
+ const avaibility = getLanguageAvailability(language, emission, orgaAttributes, translationData);
171
+ if (avaibility === 0 && bestReady === null) {
172
+ bestReady = language;
173
+ break;
174
+ }
175
+ if (avaibility === 1 && bestAvailable === null) bestAvailable = language;
176
+ }
177
+ return {
178
+ ready: bestReady,
179
+ available: bestAvailable ?? void 0
180
+ };
181
+ }
182
+ /**
183
+ * Get the relevant translation for the current user
184
+ * @param translationData The translation data for the podcast
185
+ * @returns The translation
186
+ */
187
+ async function getMostRelevantTranslation(data) {
188
+ let translationData;
189
+ if (typeof data === "number") translationData = await transcriptionApi.getTranslations(data);
190
+ else translationData = data;
191
+ const { ready } = await getMostRelevantLanguage(translationData);
192
+ const podcastId = translationData.podcastId;
193
+ return await transcriptionApi.getTranslation(podcastId, ready);
194
+ }
195
+ return {
196
+ convertSrtToPlainText,
197
+ getMostRelevantLanguage,
198
+ getMostRelevantTranslation,
199
+ getTranslationConfig
200
+ };
201
+ };
202
+ //#endregion
203
+ export { defaultTranslationConfig as a, defaultModifyPodcastConfig as i, CreateTranslation as n, defaultTtsParams as o, ModifyPodcastEnum as r, getLanguage as s, useTranslation as t };
204
+
205
+ //# sourceMappingURL=useTranslation-BtpS4E-y.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation-BtpS4E-y.mjs","names":[],"sources":["../src/helper/language.ts","../src/stores/class/transcript/transcriptParams.ts","../src/components/composable/useTranslation.ts"],"sourcesContent":["/**\n * Utility function to retrieve most relevant language for the user\n * @params forceToKnown When set to true (default), will limit language to one\n * one of 6 known languages. When set to false, allow all\n * languages.\n * @returns The most relevant language\n */\nexport function getLanguage(forceToKnown = true): string {\n const nameEQ = \"octopus-language=\";\n const ca = document.cookie.split(\";\");\n\n let language = \"\";\n for (const valueCookie of ca) {\n let c = valueCookie;\n while (c.startsWith(\" \")) {\n c = c.substring(1, c.length);\n }\n if (0 === c.indexOf(nameEQ)) {\n language = c.substring(nameEQ.length, c.length);\n break;\n }\n }\n\n if (0 === language.length) {\n if (forceToKnown === true) {\n // Choose best avilable language\n for (const navigatorLang of navigator.languages) {\n if (navigatorLang.includes(\"fr\")) {\n language = \"fr\";\n break;\n } else if (navigatorLang.includes(\"en\")) {\n language = \"en\";\n break;\n } else if (navigatorLang.includes(\"it\")) {\n language = \"it\";\n break;\n } else if (navigatorLang.includes(\"sl\")) {\n language = \"sl\";\n break;\n } else if (navigatorLang.includes(\"es\")) {\n language = \"es\";\n break;\n } else if (navigatorLang.includes(\"de\")) {\n language = \"de\";\n break;\n }\n }\n if (!language) {\n language = \"fr\";\n }\n } else {\n language = navigator.language;\n }\n }\n\n return language;\n}\n","export interface TranscriptParams {\n automation: string; // super, {date}, false \n ttsParams: TtsParams;\n modifyPodcast: ModifyPodcastConfig\n translationConfig: TranslationConfiguration;\n}\nexport interface TtsParams {\n super: string;\n style: string;\n pitch: number;\n speed: number;\n voice: string;\n language: string;\n}\n\nexport interface ModifyPodcastConfig {\n modifyChaptering: ModifyPodcastEnum;\n modifyKeywords: ModifyPodcastEnum;\n modifyDescription: ModifyPodcastEnum;\n createDescriptionUsingAi: boolean;\n wordsNumber: number;\n}\n\nexport enum ModifyPodcastEnum {\n SUPER = \"SUPER\",\n NO = \"NO\",\n IF_EMPTY = \"IF_EMPTY\",\n OVERWRITE=\"OVERWRITE\"\n}\n\nexport interface TranslationConfiguration {\n createTranslation:{[lang:string]: CreateTranslation};\n otherLanguage:CreateTranslation; //Cannot be ALWAYS\n}\n\nexport enum CreateTranslation {\n NEVER = \"NEVER\",\n ON_DEMAND = \"ON_DEMAND\",\n ALWAYS = \"ALWAYS\",\n SUPER=\"SUPER\"\n}\n\nexport function defaultTtsParams(): TtsParams {\n return {\n super: \"true\",\n style: \"neutral\",\n pitch: 0,\n speed: 1,\n voice: \"\",\n language: \"\"\n };\n}\n\nexport function defaultModifyPodcastConfig(): ModifyPodcastConfig {\n return {\n modifyChaptering: ModifyPodcastEnum.NO,\n modifyKeywords:ModifyPodcastEnum.NO,\n modifyDescription:ModifyPodcastEnum.NO,\n createDescriptionUsingAi: false,\n wordsNumber: 100,\n };\n}\n\n/**\n * Create a default object of TranslationConfiguration\n * @param isEmission Optional, if set and true changes default values\n * @returns The object\n */\nexport function defaultTranslationConfig(isEmission?: boolean): TranslationConfiguration {\n return {\n createTranslation:{},\n otherLanguage: isEmission ? CreateTranslation.SUPER : CreateTranslation.NEVER\n };\n}\n\nexport interface Voice {\n name: string;\n locale: string;\n displayName: string;\n gender: string;\n audioExample?: string;\n styles?: [];\n provider: string;\n}\nexport interface ProviderTts {\n name: string;\n fullName: string;\n logoPath: string;\n description: string;\n}\n","import { getLanguage } from \"../../helper/language\";\nimport { transcriptionApi, TranslationState, type PodcastTranslationData } from \"../../api/transcriptionApi\";\nimport { CreateTranslation, defaultTranslationConfig, TranslationConfiguration } from \"../../stores/class/transcript/transcriptParams\";\nimport { podcastApi } from \"../../api/podcastApi\";\nimport { Emission } from \"../../stores/class/general/emission\";\nimport { OrganisationAttributes } from \"@/stores/class/general/organisation\";\nimport { organisationApi } from \"../../api/organisationApi\";\n\nconst DEFAULT_LANGUAGE = 'en';\n\ninterface RelevantLanguages {\n /** Language which already has a generated translation */\n ready: string;\n /** Language that is more relevant but its translation is not yet generated */\n available?: string;\n}\n\nenum Availability {\n Available,\n ToGenerate,\n Unavailable\n}\n\nexport const useTranslation = () => {\n\n /**\n * Convert SRT data to plain text\n * @param srt The data to convert\n * @returns The plain text\n */\n function convertSrtToPlainText(srt: string): string {\n const srtPattern =\n /\\d+\\n[\\d:,]+\\s+-{2}>\\s+[\\d:,]+\\n([\\s\\S]*?(?=\\n{2}|$))/gm;\n const result: Array<string> = [];\n let matches: string[];\n while ((matches = srtPattern.exec(srt)) != null) {\n result.push(matches[1] + \" \");\n }\n return result.join(\"\");\n }\n\n function getApplicationConf(language: string, conf: TranslationConfiguration): CreateTranslation {\n if (language in conf.createTranslation) {\n return conf.createTranslation[language];\n }\n\n return conf.otherLanguage;\n }\n\n /**\n * Retrieve the translation configuration for a given language\n */\n function getConfigurationFor(language: string, emissionConf: TranslationConfiguration, orgaConf: TranslationConfiguration): CreateTranslation {\n const emissionSetting = getApplicationConf(language, emissionConf);\n if (emissionSetting === CreateTranslation.SUPER) {\n return getApplicationConf(language, orgaConf);\n }\n return emissionSetting;\n }\n\n function parseOrDefault(data: string|undefined, isEmission = false): TranslationConfiguration {\n return data ? JSON.parse(data) : defaultTranslationConfig(isEmission);\n }\n\n /**\n * Indicates wether the language is available (either because generated or\n * because it can be generated)\n * @param language The language to check for\n * @param emission *(optional)* If set, will also check in emission settings\n * @returns Whether the language is available or not\n */\n function getTranslationConfig(language: string, emission: Emission, orgaAttributes: OrganisationAttributes): CreateTranslation {\n const emissionTranslation = parseOrDefault(emission.annotations?.['translation-config'] as string|undefined, true);\n const orgTranslation = parseOrDefault(orgaAttributes?.['translation-config']);\n\n return getConfigurationFor(language, emissionTranslation, orgTranslation);\n }\n\n function getLanguageAvailability(language: string, emission: Emission, orgaAttributes: OrganisationAttributes, translationData: PodcastTranslationData): Availability {\n \n // 1. If language of podcast == language of browser, use that language\n if (language === translationData.nativeLanguage) {\n return Availability.Available;\n } else {\n const langConfig = getTranslationConfig(language, emission, orgaAttributes);\n\n // 2. If the language of the browser is available, use it\n if (langConfig === CreateTranslation.ALWAYS) {\n return Availability.Available;\n }\n // 2b. If the language is on demand, check if generated\n else if (langConfig === CreateTranslation.ON_DEMAND) {\n // Check if translation is already generated\n if (translationData.translations.find(t => t.language === language && t.state === TranslationState.FINISHED)) {\n return Availability.Available;\n } else {\n return Availability.ToGenerate;\n }\n }\n }\n\n return Availability.Unavailable;\n }\n\n /**\n * Get the relevant language for the current user\n * @param translationData The translation data for the podcast\n * @returns An object with properties 'ready' and 'available'\n * - *ready* Is the best language already generated\n * - *available* Is the best language not yet generated (or\n * undefined if *ready* is better)\n */\n async function getMostRelevantLanguage(translationData: PodcastTranslationData): Promise<RelevantLanguages> {\n const userLanguage = getLanguage(false);\n\n // If user language is native, do not go further\n if (userLanguage === translationData.nativeLanguage) {\n return { ready: userLanguage };\n }\n\n // Compute all available languages. Use language set on site, then\n // languages defined on browser, then default, and finally native language\n const languages: string[] = [];\n [userLanguage, ...navigator.languages, DEFAULT_LANGUAGE, translationData.nativeLanguage].forEach(l => {\n // For each language, if it is a variant (for example fr-CH), use\n // only the base language\n if (l.includes('-')) {\n l = l.split('-')[0];\n }\n\n if (!languages.includes(l)) {\n languages.push(l);\n }\n });\n\n const podcast = await podcastApi.get(translationData.podcastId);\n const emission = podcast.emission;\n const orgaAttributes = await organisationApi.getAttributes(podcast.organisation.id);\n\n let bestReady: string|null = null;\n let bestAvailable: string|null = null;\n\n for (const language of languages) {\n const avaibility = getLanguageAvailability(language, emission, orgaAttributes, translationData);\n if (avaibility === Availability.Available && bestReady === null) {\n bestReady = language;\n break;\n }\n\n if (avaibility === Availability.ToGenerate && bestAvailable === null) {\n bestAvailable = language;\n }\n }\n\n return { ready: bestReady, available: bestAvailable ?? undefined };\n }\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(translationData: PodcastTranslationData): Promise<string>;\n /**\n * Get the relevant translation for the current user\n * @param podcastId The ID of the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(podcastId: number): Promise<string>;\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(data: PodcastTranslationData|number): Promise<string> {\n let translationData: PodcastTranslationData;\n if (typeof data === 'number') {\n translationData = await transcriptionApi.getTranslations(data);\n } else {\n translationData = data;\n }\n\n const { ready } = await getMostRelevantLanguage(translationData);\n\n // Finally get translation with chosen language\n const podcastId = translationData.podcastId;\n return await transcriptionApi.getTranslation(podcastId, ready);\n }\n\n return {\n convertSrtToPlainText,\n getMostRelevantLanguage,\n getMostRelevantTranslation,\n getTranslationConfig\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation-C_6AuQgJ.mjs","names":[],"sources":["../src/helper/language.ts","../src/stores/class/transcript/transcriptParams.ts","../src/components/composable/useTranslation.ts"],"sourcesContent":["/**\n * Utility function to retrieve most relevant language for the user\n * @params forceToKnown When set to true (default), will limit language to one\n * one of 6 known languages. When set to false, allow all\n * languages.\n * @returns The most relevant language\n */\nexport function getLanguage(forceToKnown = true): string {\n const nameEQ = \"octopus-language=\";\n const ca = document.cookie.split(\";\");\n\n let language = \"\";\n for (const valueCookie of ca) {\n let c = valueCookie;\n while (c.startsWith(\" \")) {\n c = c.substring(1, c.length);\n }\n if (0 === c.indexOf(nameEQ)) {\n language = c.substring(nameEQ.length, c.length);\n break;\n }\n }\n\n if (0 === language.length) {\n if (forceToKnown === true) {\n // Choose best avilable language\n for (const navigatorLang of navigator.languages) {\n if (navigatorLang.includes(\"fr\")) {\n language = \"fr\";\n break;\n } else if (navigatorLang.includes(\"en\")) {\n language = \"en\";\n break;\n } else if (navigatorLang.includes(\"it\")) {\n language = \"it\";\n break;\n } else if (navigatorLang.includes(\"sl\")) {\n language = \"sl\";\n break;\n } else if (navigatorLang.includes(\"es\")) {\n language = \"es\";\n break;\n } else if (navigatorLang.includes(\"de\")) {\n language = \"de\";\n break;\n }\n }\n if (!language) {\n language = \"fr\";\n }\n } else {\n language = navigator.language;\n }\n }\n\n return language;\n}\n","export interface TranscriptParams {\n automation: string; // super, {date}, false \n ttsParams: TtsParams;\n modifyPodcast: ModifyPodcastConfig\n translationConfig: TranslationConfiguration;\n}\nexport interface TtsParams {\n super: string;\n style: string;\n pitch: number;\n speed: number;\n voice: string;\n language: string;\n}\n\nexport interface ModifyPodcastConfig {\n modifyChaptering: ModifyPodcastEnum;\n modifyKeywords: ModifyPodcastEnum;\n modifyDescription: ModifyPodcastEnum;\n createDescriptionUsingAi: boolean;\n wordsNumber: number;\n}\n\nexport enum ModifyPodcastEnum {\n SUPER = \"SUPER\",\n NO = \"NO\",\n IF_EMPTY = \"IF_EMPTY\",\n OVERWRITE=\"OVERWRITE\"\n}\n\nexport interface TranslationConfiguration {\n createTranslation:{[lang:string]: CreateTranslation};\n otherLanguage:CreateTranslation; //Cannot be ALWAYS\n}\n\nexport enum CreateTranslation {\n NEVER = \"NEVER\",\n ON_DEMAND = \"ON_DEMAND\",\n ALWAYS = \"ALWAYS\",\n SUPER=\"SUPER\"\n}\n\nexport function defaultTtsParams(): TtsParams {\n return {\n super: \"true\",\n style: \"neutral\",\n pitch: 0,\n speed: 1,\n voice: \"\",\n language: \"\"\n };\n}\n\nexport function defaultModifyPodcastConfig(): ModifyPodcastConfig {\n return {\n modifyChaptering: ModifyPodcastEnum.NO,\n modifyKeywords:ModifyPodcastEnum.NO,\n modifyDescription:ModifyPodcastEnum.NO,\n createDescriptionUsingAi: false,\n wordsNumber: 100,\n };\n}\n\n/**\n * Create a default object of TranslationConfiguration\n * @param isEmission Optional, if set and true changes default values\n * @returns The object\n */\nexport function defaultTranslationConfig(isEmission?: boolean): TranslationConfiguration {\n return {\n createTranslation:{},\n otherLanguage: isEmission ? CreateTranslation.SUPER : CreateTranslation.NEVER\n };\n}\n\nexport interface Voice {\n name: string;\n locale: string;\n displayName: string;\n gender: string;\n audioExample?: string;\n styles?: [];\n provider: string;\n}\nexport interface ProviderTts {\n name: string;\n fullName: string;\n logoPath: string;\n description: string;\n}\n","import { getLanguage } from \"../../helper/language\";\nimport { transcriptionApi, TranslationState, type PodcastTranslationData } from \"../../api/transcriptionApi\";\nimport { CreateTranslation, defaultTranslationConfig, TranslationConfiguration } from \"../../stores/class/transcript/transcriptParams\";\nimport { podcastApi } from \"../../api/podcastApi\";\nimport { Emission } from \"../../stores/class/general/emission\";\nimport { OrganisationAttributes } from \"@/stores/class/general/organisation\";\nimport { organisationApi } from \"../../api/organisationApi\";\n\nconst DEFAULT_LANGUAGE = 'en';\n\ninterface RelevantLanguages {\n /** Language which already has a generated translation */\n ready: string;\n /** Language that is more relevant but its translation is not yet generated */\n available?: string;\n}\n\nenum Availability {\n Available,\n ToGenerate,\n Unavailable\n}\n\nexport const useTranslation = () => {\n\n /**\n * Convert SRT data to plain text\n * @param srt The data to convert\n * @returns The plain text\n */\n function convertSrtToPlainText(srt: string): string {\n const srtPattern =\n /\\d+\\n[\\d:,]+\\s+-{2}>\\s+[\\d:,]+\\n([\\s\\S]*?(?=\\n{2}|$))/gm;\n const result: Array<string> = [];\n let matches: string[];\n while ((matches = srtPattern.exec(srt)) != null) {\n result.push(matches[1] + \" \");\n }\n return result.join(\"\");\n }\n\n function getApplicationConf(language: string, conf: TranslationConfiguration): CreateTranslation {\n if (language in conf.createTranslation) {\n return conf.createTranslation[language];\n }\n\n return conf.otherLanguage;\n }\n\n /**\n * Retrieve the translation configuration for a given language\n */\n function getConfigurationFor(language: string, emissionConf: TranslationConfiguration, orgaConf: TranslationConfiguration): CreateTranslation {\n const emissionSetting = getApplicationConf(language, emissionConf);\n if (emissionSetting === CreateTranslation.SUPER) {\n return getApplicationConf(language, orgaConf);\n }\n return emissionSetting;\n }\n\n function parseOrDefault(data: string|undefined, isEmission = false): TranslationConfiguration {\n return data ? JSON.parse(data) : defaultTranslationConfig(isEmission);\n }\n\n /**\n * Indicates wether the language is available (either because generated or\n * because it can be generated)\n * @param language The language to check for\n * @param emission *(optional)* If set, will also check in emission settings\n * @returns Whether the language is available or not\n */\n function getTranslationConfig(language: string, emission: Emission, orgaAttributes: OrganisationAttributes): CreateTranslation {\n const emissionTranslation = parseOrDefault(emission.annotations?.['translation-config'] as string|undefined, true);\n const orgTranslation = parseOrDefault(orgaAttributes?.['translation-config']);\n\n return getConfigurationFor(language, emissionTranslation, orgTranslation);\n }\n\n function getLanguageAvailability(language: string, emission: Emission, orgaAttributes: OrganisationAttributes, translationData: PodcastTranslationData): Availability {\n \n // 1. If language of podcast == language of browser, use that language\n if (language === translationData.nativeLanguage) {\n return Availability.Available;\n } else {\n const langConfig = getTranslationConfig(language, emission, orgaAttributes);\n\n // 2. If the language of the browser is available, use it\n if (langConfig === CreateTranslation.ALWAYS) {\n return Availability.Available;\n }\n // 2b. If the language is on demand, check if generated\n else if (langConfig === CreateTranslation.ON_DEMAND) {\n // Check if translation is already generated\n if (translationData.translations.find(t => t.language === language && t.state === TranslationState.FINISHED)) {\n return Availability.Available;\n } else {\n return Availability.ToGenerate;\n }\n }\n }\n\n return Availability.Unavailable;\n }\n\n /**\n * Get the relevant language for the current user\n * @param translationData The translation data for the podcast\n * @returns An object with properties 'ready' and 'available'\n * - *ready* Is the best language already generated\n * - *available* Is the best language not yet generated (or\n * undefined if *ready* is better)\n */\n async function getMostRelevantLanguage(translationData: PodcastTranslationData): Promise<RelevantLanguages> {\n const userLanguage = getLanguage(false);\n\n // If user language is native, do not go further\n if (userLanguage === translationData.nativeLanguage) {\n return { ready: userLanguage };\n }\n\n // Compute all available languages. Use language set on site, then\n // languages defined on browser, then default, and finally native language\n const languages: string[] = [];\n [userLanguage, ...navigator.languages, DEFAULT_LANGUAGE, translationData.nativeLanguage].forEach(l => {\n // For each language, if it is a variant (for example fr-CH), use\n // only the base language\n if (l.includes('-')) {\n l = l.split('-')[0];\n }\n\n if (!languages.includes(l)) {\n languages.push(l);\n }\n });\n\n const podcast = await podcastApi.get(translationData.podcastId);\n const emission = podcast.emission;\n const orgaAttributes = await organisationApi.getAttributes(podcast.organisation.id);\n\n let bestReady: string|null = null;\n let bestAvailable: string|null = null;\n\n for (const language of languages) {\n const avaibility = getLanguageAvailability(language, emission, orgaAttributes, translationData);\n if (avaibility === Availability.Available && bestReady === null) {\n bestReady = language;\n break;\n }\n\n if (avaibility === Availability.ToGenerate && bestAvailable === null) {\n bestAvailable = language;\n }\n }\n\n return { ready: bestReady, available: bestAvailable ?? undefined };\n }\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(translationData: PodcastTranslationData): Promise<string>;\n /**\n * Get the relevant translation for the current user\n * @param podcastId The ID of the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(podcastId: number): Promise<string>;\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(data: PodcastTranslationData|number): Promise<string> {\n let translationData: PodcastTranslationData;\n if (typeof data === 'number') {\n translationData = await transcriptionApi.getTranslations(data);\n } else {\n translationData = data;\n }\n\n const { ready } = await getMostRelevantLanguage(translationData);\n\n // Finally get translation with chosen language\n const podcastId = translationData.podcastId;\n return await transcriptionApi.getTranslation(podcastId, ready);\n }\n\n return {\n convertSrtToPlainText,\n getMostRelevantLanguage,\n getMostRelevantTranslation,\n getTranslationConfig\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation-CuXwk0sO.mjs","names":[],"sources":["../src/helper/language.ts","../src/stores/class/transcript/transcriptParams.ts","../src/components/composable/useTranslation.ts"],"sourcesContent":["/**\n * Utility function to retrieve most relevant language for the user\n * @params forceToKnown When set to true (default), will limit language to one\n * one of 6 known languages. When set to false, allow all\n * languages.\n * @returns The most relevant language\n */\nexport function getLanguage(forceToKnown = true): string {\n const nameEQ = \"octopus-language=\";\n const ca = document.cookie.split(\";\");\n\n let language = \"\";\n for (const valueCookie of ca) {\n let c = valueCookie;\n while (c.startsWith(\" \")) {\n c = c.substring(1, c.length);\n }\n if (0 === c.indexOf(nameEQ)) {\n language = c.substring(nameEQ.length, c.length);\n break;\n }\n }\n\n if (0 === language.length) {\n if (forceToKnown === true) {\n // Choose best avilable language\n for (const navigatorLang of navigator.languages) {\n if (navigatorLang.includes(\"fr\")) {\n language = \"fr\";\n break;\n } else if (navigatorLang.includes(\"en\")) {\n language = \"en\";\n break;\n } else if (navigatorLang.includes(\"it\")) {\n language = \"it\";\n break;\n } else if (navigatorLang.includes(\"sl\")) {\n language = \"sl\";\n break;\n } else if (navigatorLang.includes(\"es\")) {\n language = \"es\";\n break;\n } else if (navigatorLang.includes(\"de\")) {\n language = \"de\";\n break;\n }\n }\n if (!language) {\n language = \"fr\";\n }\n } else {\n language = navigator.language;\n }\n }\n\n return language;\n}\n","export interface TranscriptParams {\n automation: string; // super, {date}, false \n ttsParams: TtsParams;\n modifyPodcast: ModifyPodcastConfig\n translationConfig: TranslationConfiguration;\n}\nexport interface TtsParams {\n super: string;\n style: string;\n pitch: number;\n speed: number;\n voice: string;\n language: string;\n}\n\nexport interface ModifyPodcastConfig {\n modifyChaptering: ModifyPodcastEnum;\n modifyKeywords: ModifyPodcastEnum;\n modifyDescription: ModifyPodcastEnum;\n createDescriptionUsingAi: boolean;\n wordsNumber: number;\n}\n\nexport enum ModifyPodcastEnum {\n SUPER = \"SUPER\",\n NO = \"NO\",\n IF_EMPTY = \"IF_EMPTY\",\n OVERWRITE=\"OVERWRITE\"\n}\n\nexport interface TranslationConfiguration {\n createTranslation:{[lang:string]: CreateTranslation};\n otherLanguage:CreateTranslation; //Cannot be ALWAYS\n}\n\nexport enum CreateTranslation {\n NEVER = \"NEVER\",\n ON_DEMAND = \"ON_DEMAND\",\n ALWAYS = \"ALWAYS\",\n SUPER=\"SUPER\"\n}\n\nexport function defaultTtsParams(): TtsParams {\n return {\n super: \"true\",\n style: \"neutral\",\n pitch: 0,\n speed: 1,\n voice: \"\",\n language: \"\"\n };\n}\n\nexport function defaultModifyPodcastConfig(): ModifyPodcastConfig {\n return {\n modifyChaptering: ModifyPodcastEnum.NO,\n modifyKeywords:ModifyPodcastEnum.NO,\n modifyDescription:ModifyPodcastEnum.NO,\n createDescriptionUsingAi: false,\n wordsNumber: 100,\n };\n}\n\n/**\n * Create a default object of TranslationConfiguration\n * @param isEmission Optional, if set and true changes default values\n * @returns The object\n */\nexport function defaultTranslationConfig(isEmission?: boolean): TranslationConfiguration {\n return {\n createTranslation:{},\n otherLanguage: isEmission ? CreateTranslation.SUPER : CreateTranslation.NEVER\n };\n}\n\nexport interface Voice {\n name: string;\n locale: string;\n displayName: string;\n gender: string;\n audioExample?: string;\n styles?: [];\n provider: string;\n}\nexport interface ProviderTts {\n name: string;\n fullName: string;\n logoPath: string;\n description: string;\n}\n","import { getLanguage } from \"../../helper/language\";\nimport { transcriptionApi, TranslationState, type PodcastTranslationData } from \"../../api/transcriptionApi\";\nimport { CreateTranslation, defaultTranslationConfig, TranslationConfiguration } from \"../../stores/class/transcript/transcriptParams\";\nimport { podcastApi } from \"../../api/podcastApi\";\nimport { Emission } from \"../../stores/class/general/emission\";\nimport { OrganisationAttributes } from \"@/stores/class/general/organisation\";\nimport { organisationApi } from \"../../api/organisationApi\";\n\nconst DEFAULT_LANGUAGE = 'en';\n\ninterface RelevantLanguages {\n /** Language which already has a generated translation */\n ready: string;\n /** Language that is more relevant but its translation is not yet generated */\n available?: string;\n}\n\nenum Availability {\n Available,\n ToGenerate,\n Unavailable\n}\n\nexport const useTranslation = () => {\n\n /**\n * Convert SRT data to plain text\n * @param srt The data to convert\n * @returns The plain text\n */\n function convertSrtToPlainText(srt: string): string {\n const srtPattern =\n /\\d+\\n[\\d:,]+\\s+-{2}>\\s+[\\d:,]+\\n([\\s\\S]*?(?=\\n{2}|$))/gm;\n const result: Array<string> = [];\n let matches: string[];\n while ((matches = srtPattern.exec(srt)) != null) {\n result.push(matches[1] + \" \");\n }\n return result.join(\"\");\n }\n\n function getApplicationConf(language: string, conf: TranslationConfiguration): CreateTranslation {\n if (language in conf.createTranslation) {\n return conf.createTranslation[language];\n }\n\n return conf.otherLanguage;\n }\n\n /**\n * Retrieve the translation configuration for a given language\n */\n function getConfigurationFor(language: string, emissionConf: TranslationConfiguration, orgaConf: TranslationConfiguration): CreateTranslation {\n const emissionSetting = getApplicationConf(language, emissionConf);\n if (emissionSetting === CreateTranslation.SUPER) {\n return getApplicationConf(language, orgaConf);\n }\n return emissionSetting;\n }\n\n function parseOrDefault(data: string|undefined, isEmission = false): TranslationConfiguration {\n return data ? JSON.parse(data) : defaultTranslationConfig(isEmission);\n }\n\n /**\n * Indicates wether the language is available (either because generated or\n * because it can be generated)\n * @param language The language to check for\n * @param emission *(optional)* If set, will also check in emission settings\n * @returns Whether the language is available or not\n */\n function getTranslationConfig(language: string, emission: Emission, orgaAttributes: OrganisationAttributes): CreateTranslation {\n const emissionTranslation = parseOrDefault(emission.annotations?.['translation-config'] as string|undefined, true);\n const orgTranslation = parseOrDefault(orgaAttributes?.['translation-config']);\n\n return getConfigurationFor(language, emissionTranslation, orgTranslation);\n }\n\n function getLanguageAvailability(language: string, emission: Emission, orgaAttributes: OrganisationAttributes, translationData: PodcastTranslationData): Availability {\n \n // 1. If language of podcast == language of browser, use that language\n if (language === translationData.nativeLanguage) {\n return Availability.Available;\n } else {\n const langConfig = getTranslationConfig(language, emission, orgaAttributes);\n\n // 2. If the language of the browser is available, use it\n if (langConfig === CreateTranslation.ALWAYS) {\n return Availability.Available;\n }\n // 2b. If the language is on demand, check if generated\n else if (langConfig === CreateTranslation.ON_DEMAND) {\n // Check if translation is already generated\n if (translationData.translations.find(t => t.language === language && t.state === TranslationState.FINISHED)) {\n return Availability.Available;\n } else {\n return Availability.ToGenerate;\n }\n }\n }\n\n return Availability.Unavailable;\n }\n\n /**\n * Get the relevant language for the current user\n * @param translationData The translation data for the podcast\n * @returns An object with properties 'ready' and 'available'\n * - *ready* Is the best language already generated\n * - *available* Is the best language not yet generated (or\n * undefined if *ready* is better)\n */\n async function getMostRelevantLanguage(translationData: PodcastTranslationData): Promise<RelevantLanguages> {\n const userLanguage = getLanguage(false);\n\n // If user language is native, do not go further\n if (userLanguage === translationData.nativeLanguage) {\n return { ready: userLanguage };\n }\n\n // Compute all available languages. Use language set on site, then\n // languages defined on browser, then default, and finally native language\n const languages: string[] = [];\n [userLanguage, ...navigator.languages, DEFAULT_LANGUAGE, translationData.nativeLanguage].forEach(l => {\n // For each language, if it is a variant (for example fr-CH), use\n // only the base language\n if (l.includes('-')) {\n l = l.split('-')[0];\n }\n\n if (!languages.includes(l)) {\n languages.push(l);\n }\n });\n\n const podcast = await podcastApi.get(translationData.podcastId);\n const emission = podcast.emission;\n const orgaAttributes = await organisationApi.getAttributes(podcast.organisation.id);\n\n let bestReady: string|null = null;\n let bestAvailable: string|null = null;\n\n for (const language of languages) {\n const avaibility = getLanguageAvailability(language, emission, orgaAttributes, translationData);\n if (avaibility === Availability.Available && bestReady === null) {\n bestReady = language;\n break;\n }\n\n if (avaibility === Availability.ToGenerate && bestAvailable === null) {\n bestAvailable = language;\n }\n }\n\n return { ready: bestReady, available: bestAvailable ?? undefined };\n }\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(translationData: PodcastTranslationData): Promise<string>;\n /**\n * Get the relevant translation for the current user\n * @param podcastId The ID of the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(podcastId: number): Promise<string>;\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(data: PodcastTranslationData|number): Promise<string> {\n let translationData: PodcastTranslationData;\n if (typeof data === 'number') {\n translationData = await transcriptionApi.getTranslations(data);\n } else {\n translationData = data;\n }\n\n const { ready } = await getMostRelevantLanguage(translationData);\n\n // Finally get translation with chosen language\n const podcastId = translationData.podcastId;\n return await transcriptionApi.getTranslation(podcastId, ready);\n }\n\n return {\n convertSrtToPlainText,\n getMostRelevantLanguage,\n getMostRelevantTranslation,\n getTranslationConfig\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation-DdpPHciF.mjs","names":[],"sources":["../src/helper/language.ts","../src/stores/class/transcript/transcriptParams.ts","../src/components/composable/useTranslation.ts"],"sourcesContent":["/**\n * Utility function to retrieve most relevant language for the user\n * @params forceToKnown When set to true (default), will limit language to one\n * one of 6 known languages. When set to false, allow all\n * languages.\n * @returns The most relevant language\n */\nexport function getLanguage(forceToKnown = true): string {\n const nameEQ = \"octopus-language=\";\n const ca = document.cookie.split(\";\");\n\n let language = \"\";\n for (const valueCookie of ca) {\n let c = valueCookie;\n while (c.startsWith(\" \")) {\n c = c.substring(1, c.length);\n }\n if (0 === c.indexOf(nameEQ)) {\n language = c.substring(nameEQ.length, c.length);\n break;\n }\n }\n\n if (0 === language.length) {\n if (forceToKnown === true) {\n // Choose best avilable language\n for (const navigatorLang of navigator.languages) {\n if (navigatorLang.includes(\"fr\")) {\n language = \"fr\";\n break;\n } else if (navigatorLang.includes(\"en\")) {\n language = \"en\";\n break;\n } else if (navigatorLang.includes(\"it\")) {\n language = \"it\";\n break;\n } else if (navigatorLang.includes(\"sl\")) {\n language = \"sl\";\n break;\n } else if (navigatorLang.includes(\"es\")) {\n language = \"es\";\n break;\n } else if (navigatorLang.includes(\"de\")) {\n language = \"de\";\n break;\n }\n }\n if (!language) {\n language = \"fr\";\n }\n } else {\n language = navigator.language;\n }\n }\n\n return language;\n}\n","export interface TranscriptParams {\n automation: string; // super, {date}, false \n ttsParams: TtsParams;\n modifyPodcast: ModifyPodcastConfig\n translationConfig: TranslationConfiguration;\n}\nexport interface TtsParams {\n super: string;\n style: string;\n pitch: number;\n speed: number;\n voice: string;\n language: string;\n}\n\nexport interface ModifyPodcastConfig {\n modifyChaptering: ModifyPodcastEnum;\n modifyKeywords: ModifyPodcastEnum;\n modifyDescription: ModifyPodcastEnum;\n createDescriptionUsingAi: boolean;\n wordsNumber: number;\n}\n\nexport enum ModifyPodcastEnum {\n SUPER = \"SUPER\",\n NO = \"NO\",\n IF_EMPTY = \"IF_EMPTY\",\n OVERWRITE=\"OVERWRITE\"\n}\n\nexport interface TranslationConfiguration {\n createTranslation:{[lang:string]: CreateTranslation};\n otherLanguage:CreateTranslation; //Cannot be ALWAYS\n}\n\nexport enum CreateTranslation {\n NEVER = \"NEVER\",\n ON_DEMAND = \"ON_DEMAND\",\n ALWAYS = \"ALWAYS\",\n SUPER=\"SUPER\"\n}\n\nexport function defaultTtsParams(): TtsParams {\n return {\n super: \"true\",\n style: \"neutral\",\n pitch: 0,\n speed: 1,\n voice: \"\",\n language: \"\"\n };\n}\n\nexport function defaultModifyPodcastConfig(): ModifyPodcastConfig {\n return {\n modifyChaptering: ModifyPodcastEnum.NO,\n modifyKeywords:ModifyPodcastEnum.NO,\n modifyDescription:ModifyPodcastEnum.NO,\n createDescriptionUsingAi: false,\n wordsNumber: 100,\n };\n}\n\n/**\n * Create a default object of TranslationConfiguration\n * @param isEmission Optional, if set and true changes default values\n * @returns The object\n */\nexport function defaultTranslationConfig(isEmission?: boolean): TranslationConfiguration {\n return {\n createTranslation:{},\n otherLanguage: isEmission ? CreateTranslation.SUPER : CreateTranslation.NEVER\n };\n}\n\nexport interface Voice {\n name: string;\n locale: string;\n displayName: string;\n gender: string;\n audioExample?: string;\n styles?: [];\n provider: string;\n}\nexport interface ProviderTts {\n name: string;\n fullName: string;\n logoPath: string;\n description: string;\n}\n","import { getLanguage } from \"../../helper/language\";\nimport { transcriptionApi, TranslationState, type PodcastTranslationData } from \"../../api/transcriptionApi\";\nimport { CreateTranslation, defaultTranslationConfig, TranslationConfiguration } from \"../../stores/class/transcript/transcriptParams\";\nimport { podcastApi } from \"../../api/podcastApi\";\nimport { Emission } from \"../../stores/class/general/emission\";\nimport { OrganisationAttributes } from \"@/stores/class/general/organisation\";\nimport { organisationApi } from \"../../api/organisationApi\";\n\nconst DEFAULT_LANGUAGE = 'en';\n\ninterface RelevantLanguages {\n /** Language which already has a generated translation */\n ready: string;\n /** Language that is more relevant but its translation is not yet generated */\n available?: string;\n}\n\nenum Availability {\n Available,\n ToGenerate,\n Unavailable\n}\n\nexport const useTranslation = () => {\n\n /**\n * Convert SRT data to plain text\n * @param srt The data to convert\n * @returns The plain text\n */\n function convertSrtToPlainText(srt: string): string {\n const srtPattern =\n /\\d+\\n[\\d:,]+\\s+-{2}>\\s+[\\d:,]+\\n([\\s\\S]*?(?=\\n{2}|$))/gm;\n const result: Array<string> = [];\n let matches: string[];\n while ((matches = srtPattern.exec(srt)) != null) {\n result.push(matches[1] + \" \");\n }\n return result.join(\"\");\n }\n\n function getApplicationConf(language: string, conf: TranslationConfiguration): CreateTranslation {\n if (language in conf.createTranslation) {\n return conf.createTranslation[language];\n }\n\n return conf.otherLanguage;\n }\n\n /**\n * Retrieve the translation configuration for a given language\n */\n function getConfigurationFor(language: string, emissionConf: TranslationConfiguration, orgaConf: TranslationConfiguration): CreateTranslation {\n const emissionSetting = getApplicationConf(language, emissionConf);\n if (emissionSetting === CreateTranslation.SUPER) {\n return getApplicationConf(language, orgaConf);\n }\n return emissionSetting;\n }\n\n function parseOrDefault(data: string|undefined, isEmission = false): TranslationConfiguration {\n return data ? JSON.parse(data) : defaultTranslationConfig(isEmission);\n }\n\n /**\n * Indicates wether the language is available (either because generated or\n * because it can be generated)\n * @param language The language to check for\n * @param emission *(optional)* If set, will also check in emission settings\n * @returns Whether the language is available or not\n */\n function getTranslationConfig(language: string, emission: Emission, orgaAttributes: OrganisationAttributes): CreateTranslation {\n const emissionTranslation = parseOrDefault(emission.annotations?.['translation-config'] as string|undefined, true);\n const orgTranslation = parseOrDefault(orgaAttributes?.['translation-config']);\n\n return getConfigurationFor(language, emissionTranslation, orgTranslation);\n }\n\n function getLanguageAvailability(language: string, emission: Emission, orgaAttributes: OrganisationAttributes, translationData: PodcastTranslationData): Availability {\n \n // 1. If language of podcast == language of browser, use that language\n if (language === translationData.nativeLanguage) {\n return Availability.Available;\n } else {\n const langConfig = getTranslationConfig(language, emission, orgaAttributes);\n\n // 2. If the language of the browser is available, use it\n if (langConfig === CreateTranslation.ALWAYS) {\n return Availability.Available;\n }\n // 2b. If the language is on demand, check if generated\n else if (langConfig === CreateTranslation.ON_DEMAND) {\n // Check if translation is already generated\n if (translationData.translations.find(t => t.language === language && t.state === TranslationState.FINISHED)) {\n return Availability.Available;\n } else {\n return Availability.ToGenerate;\n }\n }\n }\n\n return Availability.Unavailable;\n }\n\n /**\n * Get the relevant language for the current user\n * @param translationData The translation data for the podcast\n * @returns An object with properties 'ready' and 'available'\n * - *ready* Is the best language already generated\n * - *available* Is the best language not yet generated (or\n * undefined if *ready* is better)\n */\n async function getMostRelevantLanguage(translationData: PodcastTranslationData): Promise<RelevantLanguages> {\n const userLanguage = getLanguage(false);\n\n // If user language is native, do not go further\n if (userLanguage === translationData.nativeLanguage) {\n return { ready: userLanguage };\n }\n\n // Compute all available languages. Use language set on site, then\n // languages defined on browser, then default, and finally native language\n const languages: string[] = [];\n [userLanguage, ...navigator.languages, DEFAULT_LANGUAGE, translationData.nativeLanguage].forEach(l => {\n // For each language, if it is a variant (for example fr-CH), use\n // only the base language\n if (l.includes('-')) {\n l = l.split('-')[0];\n }\n\n if (!languages.includes(l)) {\n languages.push(l);\n }\n });\n\n const podcast = await podcastApi.get(translationData.podcastId);\n const emission = podcast.emission;\n const orgaAttributes = await organisationApi.getAttributes(podcast.organisation.id);\n\n let bestReady: string|null = null;\n let bestAvailable: string|null = null;\n\n for (const language of languages) {\n const avaibility = getLanguageAvailability(language, emission, orgaAttributes, translationData);\n if (avaibility === Availability.Available && bestReady === null) {\n bestReady = language;\n break;\n }\n\n if (avaibility === Availability.ToGenerate && bestAvailable === null) {\n bestAvailable = language;\n }\n }\n\n return { ready: bestReady, available: bestAvailable ?? undefined };\n }\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(translationData: PodcastTranslationData): Promise<string>;\n /**\n * Get the relevant translation for the current user\n * @param podcastId The ID of the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(podcastId: number): Promise<string>;\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(data: PodcastTranslationData|number): Promise<string> {\n let translationData: PodcastTranslationData;\n if (typeof data === 'number') {\n translationData = await transcriptionApi.getTranslations(data);\n } else {\n translationData = data;\n }\n\n const { ready } = await getMostRelevantLanguage(translationData);\n\n // Finally get translation with chosen language\n const podcastId = translationData.podcastId;\n return await transcriptionApi.getTranslation(podcastId, ready);\n }\n\n return {\n convertSrtToPlainText,\n getMostRelevantLanguage,\n getMostRelevantTranslation,\n getTranslationConfig\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation-OKjcLwgA.mjs","names":[],"sources":["../src/helper/language.ts","../src/stores/class/transcript/transcriptParams.ts","../src/components/composable/useTranslation.ts"],"sourcesContent":["/**\n * Utility function to retrieve most relevant language for the user\n * @params forceToKnown When set to true (default), will limit language to one\n * one of 6 known languages. When set to false, allow all\n * languages.\n * @returns The most relevant language\n */\nexport function getLanguage(forceToKnown = true): string {\n const nameEQ = \"octopus-language=\";\n const ca = document.cookie.split(\";\");\n\n let language = \"\";\n for (const valueCookie of ca) {\n let c = valueCookie;\n while (c.startsWith(\" \")) {\n c = c.substring(1, c.length);\n }\n if (0 === c.indexOf(nameEQ)) {\n language = c.substring(nameEQ.length, c.length);\n break;\n }\n }\n\n if (0 === language.length) {\n if (forceToKnown === true) {\n // Choose best avilable language\n for (const navigatorLang of navigator.languages) {\n if (navigatorLang.includes(\"fr\")) {\n language = \"fr\";\n break;\n } else if (navigatorLang.includes(\"en\")) {\n language = \"en\";\n break;\n } else if (navigatorLang.includes(\"it\")) {\n language = \"it\";\n break;\n } else if (navigatorLang.includes(\"sl\")) {\n language = \"sl\";\n break;\n } else if (navigatorLang.includes(\"es\")) {\n language = \"es\";\n break;\n } else if (navigatorLang.includes(\"de\")) {\n language = \"de\";\n break;\n }\n }\n if (!language) {\n language = \"fr\";\n }\n } else {\n language = navigator.language;\n }\n }\n\n return language;\n}\n","export interface TranscriptParams {\n automation: string; // super, {date}, false \n ttsParams: TtsParams;\n modifyPodcast: ModifyPodcastConfig\n translationConfig: TranslationConfiguration;\n}\nexport interface TtsParams {\n super: string;\n style: string;\n pitch: number;\n speed: number;\n voice: string;\n language: string;\n}\n\nexport interface ModifyPodcastConfig {\n modifyChaptering: ModifyPodcastEnum;\n modifyKeywords: ModifyPodcastEnum;\n modifyDescription: ModifyPodcastEnum;\n createDescriptionUsingAi: boolean;\n wordsNumber: number;\n}\n\nexport enum ModifyPodcastEnum {\n SUPER = \"SUPER\",\n NO = \"NO\",\n IF_EMPTY = \"IF_EMPTY\",\n OVERWRITE=\"OVERWRITE\"\n}\n\nexport interface TranslationConfiguration {\n createTranslation:{[lang:string]: CreateTranslation};\n otherLanguage:CreateTranslation; //Cannot be ALWAYS\n}\n\nexport enum CreateTranslation {\n NEVER = \"NEVER\",\n ON_DEMAND = \"ON_DEMAND\",\n ALWAYS = \"ALWAYS\",\n SUPER=\"SUPER\"\n}\n\nexport function defaultTtsParams(): TtsParams {\n return {\n super: \"true\",\n style: \"neutral\",\n pitch: 0,\n speed: 1,\n voice: \"\",\n language: \"\"\n };\n}\n\nexport function defaultModifyPodcastConfig(): ModifyPodcastConfig {\n return {\n modifyChaptering: ModifyPodcastEnum.NO,\n modifyKeywords:ModifyPodcastEnum.NO,\n modifyDescription:ModifyPodcastEnum.NO,\n createDescriptionUsingAi: false,\n wordsNumber: 100,\n };\n}\n\n/**\n * Create a default object of TranslationConfiguration\n * @param isEmission Optional, if set and true changes default values\n * @returns The object\n */\nexport function defaultTranslationConfig(isEmission?: boolean): TranslationConfiguration {\n return {\n createTranslation:{},\n otherLanguage: isEmission ? CreateTranslation.SUPER : CreateTranslation.NEVER\n };\n}\n\nexport interface Voice {\n name: string;\n locale: string;\n displayName: string;\n gender: string;\n audioExample?: string;\n styles?: [];\n provider: string;\n}\nexport interface ProviderTts {\n name: string;\n fullName: string;\n logoPath: string;\n description: string;\n}\n","import { getLanguage } from \"../../helper/language\";\nimport { transcriptionApi, TranslationState, type PodcastTranslationData } from \"../../api/transcriptionApi\";\nimport { CreateTranslation, defaultTranslationConfig, TranslationConfiguration } from \"../../stores/class/transcript/transcriptParams\";\nimport { podcastApi } from \"../../api/podcastApi\";\nimport { Emission } from \"../../stores/class/general/emission\";\nimport { OrganisationAttributes } from \"@/stores/class/general/organisation\";\nimport { organisationApi } from \"../../api/organisationApi\";\n\nconst DEFAULT_LANGUAGE = 'en';\n\ninterface RelevantLanguages {\n /** Language which already has a generated translation */\n ready: string;\n /** Language that is more relevant but its translation is not yet generated */\n available?: string;\n}\n\nenum Availability {\n Available,\n ToGenerate,\n Unavailable\n}\n\nexport const useTranslation = () => {\n\n /**\n * Convert SRT data to plain text\n * @param srt The data to convert\n * @returns The plain text\n */\n function convertSrtToPlainText(srt: string): string {\n const srtPattern =\n /\\d+\\n[\\d:,]+\\s+-{2}>\\s+[\\d:,]+\\n([\\s\\S]*?(?=\\n{2}|$))/gm;\n const result: Array<string> = [];\n let matches: string[];\n while ((matches = srtPattern.exec(srt)) != null) {\n result.push(matches[1] + \" \");\n }\n return result.join(\"\");\n }\n\n function getApplicationConf(language: string, conf: TranslationConfiguration): CreateTranslation {\n if (language in conf.createTranslation) {\n return conf.createTranslation[language];\n }\n\n return conf.otherLanguage;\n }\n\n /**\n * Retrieve the translation configuration for a given language\n */\n function getConfigurationFor(language: string, emissionConf: TranslationConfiguration, orgaConf: TranslationConfiguration): CreateTranslation {\n const emissionSetting = getApplicationConf(language, emissionConf);\n if (emissionSetting === CreateTranslation.SUPER) {\n return getApplicationConf(language, orgaConf);\n }\n return emissionSetting;\n }\n\n function parseOrDefault(data: string|undefined, isEmission = false): TranslationConfiguration {\n return data ? JSON.parse(data) : defaultTranslationConfig(isEmission);\n }\n\n /**\n * Indicates wether the language is available (either because generated or\n * because it can be generated)\n * @param language The language to check for\n * @param emission *(optional)* If set, will also check in emission settings\n * @returns Whether the language is available or not\n */\n function getTranslationConfig(language: string, emission: Emission, orgaAttributes: OrganisationAttributes): CreateTranslation {\n const emissionTranslation = parseOrDefault(emission.annotations?.['translation-config'] as string|undefined, true);\n const orgTranslation = parseOrDefault(orgaAttributes?.['translation-config']);\n\n return getConfigurationFor(language, emissionTranslation, orgTranslation);\n }\n\n function getLanguageAvailability(language: string, emission: Emission, orgaAttributes: OrganisationAttributes, translationData: PodcastTranslationData): Availability {\n \n // 1. If language of podcast == language of browser, use that language\n if (language === translationData.nativeLanguage) {\n return Availability.Available;\n } else {\n const langConfig = getTranslationConfig(language, emission, orgaAttributes);\n\n // 2. If the language of the browser is available, use it\n if (langConfig === CreateTranslation.ALWAYS) {\n return Availability.Available;\n }\n // 2b. If the language is on demand, check if generated\n else if (langConfig === CreateTranslation.ON_DEMAND) {\n // Check if translation is already generated\n if (translationData.translations.find(t => t.language === language && t.state === TranslationState.FINISHED)) {\n return Availability.Available;\n } else {\n return Availability.ToGenerate;\n }\n }\n }\n\n return Availability.Unavailable;\n }\n\n /**\n * Get the relevant language for the current user\n * @param translationData The translation data for the podcast\n * @returns An object with properties 'ready' and 'available'\n * - *ready* Is the best language already generated\n * - *available* Is the best language not yet generated (or\n * undefined if *ready* is better)\n */\n async function getMostRelevantLanguage(translationData: PodcastTranslationData): Promise<RelevantLanguages> {\n const userLanguage = getLanguage(false);\n\n // If user language is native, do not go further\n if (userLanguage === translationData.nativeLanguage) {\n return { ready: userLanguage };\n }\n\n // Compute all available languages. Use language set on site, then\n // languages defined on browser, then default, and finally native language\n const languages: string[] = [];\n [userLanguage, ...navigator.languages, DEFAULT_LANGUAGE, translationData.nativeLanguage].forEach(l => {\n // For each language, if it is a variant (for example fr-CH), use\n // only the base language\n if (l.includes('-')) {\n l = l.split('-')[0];\n }\n\n if (!languages.includes(l)) {\n languages.push(l);\n }\n });\n\n const podcast = await podcastApi.get(translationData.podcastId);\n const emission = podcast.emission;\n const orgaAttributes = await organisationApi.getAttributes(podcast.organisation.id);\n\n let bestReady: string|null = null;\n let bestAvailable: string|null = null;\n\n for (const language of languages) {\n const avaibility = getLanguageAvailability(language, emission, orgaAttributes, translationData);\n if (avaibility === Availability.Available && bestReady === null) {\n bestReady = language;\n break;\n }\n\n if (avaibility === Availability.ToGenerate && bestAvailable === null) {\n bestAvailable = language;\n }\n }\n\n return { ready: bestReady, available: bestAvailable ?? undefined };\n }\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(translationData: PodcastTranslationData): Promise<string>;\n /**\n * Get the relevant translation for the current user\n * @param podcastId The ID of the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(podcastId: number): Promise<string>;\n\n /**\n * Get the relevant translation for the current user\n * @param translationData The translation data for the podcast\n * @returns The translation\n */\n async function getMostRelevantTranslation(data: PodcastTranslationData|number): Promise<string> {\n let translationData: PodcastTranslationData;\n if (typeof data === 'number') {\n translationData = await transcriptionApi.getTranslations(data);\n } else {\n translationData = data;\n }\n\n const { ready } = await getMostRelevantLanguage(translationData);\n\n // Finally get translation with chosen language\n const podcastId = translationData.podcastId;\n return await transcriptionApi.getTranslation(podcastId, ready);\n }\n\n return {\n convertSrtToPlainText,\n getMostRelevantLanguage,\n getMostRelevantTranslation,\n getTranslationConfig\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usefetchRadioData-BdkLvXty.mjs","names":[],"sources":["../src/components/composable/radio/usefetchRadioData.ts"],"sourcesContent":["import classicApi from \"../../../api/classicApi\";\nimport { MediaRadio, MetadataRadio, NextAdvertising } from '@/stores/class/general/player';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport dayjs from 'dayjs';\nimport {onBeforeUnmount, Ref, ref} from 'vue';\nimport { useI18n } from \"vue-i18n\";\nexport const useFetchRadio = ()=>{\n\n const radioInterval : Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n const {t} = useI18n();\n \n async function fetchRadioMetadata(\n canalId: number,\n previousTitle: string,\n callbackMetadata: (\n metadata: MediaRadio|undefined,\n podcast: Podcast | undefined,\n history: Array<MediaRadio>\n ) => void,\n callbackAdvertising?: (\n nextAdvertising: NextAdvertising\n ) => void,\n ): Promise<void> {\n const metadata = await classicApi.fetchData<MetadataRadio>({\n api: 14,\n path: \"player/playing/\" + canalId,\n });\n /*{\n \"adCount\": 1,\n \"startDate\": \"2025-03-04T13:12:00Z\",\n \"tag\": \"5e385e1b51c86\"\n }; */\n if(callbackAdvertising){\n callbackAdvertising(metadata.nextAdvertising);\n }\n const arrayMetadata = metadata.previously;\n if(null!==metadata.currently){\n arrayMetadata.unshift(metadata.currently);\n for (let index = 0, len = arrayMetadata.length; index < len; index++) {\n if (\n dayjs().valueOf() - 18000 >\n dayjs(arrayMetadata[index].startDate).valueOf()\n ) {\n await useCallbackIfNewMetadata(previousTitle, arrayMetadata, index, len,callbackMetadata);\n return;\n }\n }\n }else{\n callbackMetadata(undefined, undefined, arrayMetadata);\n }\n }\n async function useCallbackIfNewMetadata(previousTitle: string, arrayMetadata: Array<MediaRadio>, index:number, len: number, callbackMetadata: (\n metadata: MediaRadio,\n podcast: Podcast | undefined,\n history: Array<MediaRadio>\n ) => void){\n if (previousTitle !== arrayMetadata[index].title) {\n const historyIndex = index + 1 < len ? index + 1 : index;\n const history = arrayMetadata.slice(historyIndex, len);\n if (arrayMetadata[index].podcastId) {\n const data: Podcast = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + arrayMetadata[index].podcastId,\n });\n callbackMetadata(arrayMetadata[index], data, history);\n } else {\n callbackMetadata(arrayMetadata[index], undefined, history);\n }\n }\n }\n function displayTitle(metadata: MediaRadio|undefined): string {\n if(!metadata){\n return t(\"Silent stream\");\n }\n let title = \"\";\n if (metadata?.title) {\n title += metadata.title;\n }\n if (metadata?.artist) {\n title += \" - \" + metadata.artist;\n }\n return title;\n }\n\n\n\n onBeforeUnmount(() => {\n clearInterval(radioInterval.value as unknown as number);\n })\n\n\n\treturn {\n fetchRadioMetadata,\n displayTitle\n\t}\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAoB;CAE/B,MAAM,gBAAiE,IAAI,KAAA,CAAS;CAEpF,MAAM,EAAC,MAAK,QAAQ;CAEpB,eAAe,mBACb,SACA,eACA,kBAKA,qBAGe;EACf,MAAM,WAAW,MAAM,mBAAW,UAAyB;GACzD,KAAK;GACL,MAAO,oBAAoB;EAC7B,CAAC;EAMD,IAAG,qBACD,oBAAoB,SAAS,eAAe;EAE9C,MAAM,gBAAgB,SAAS;EAC/B,IAAG,SAAO,SAAS,WAAU;GAC3B,cAAc,QAAQ,SAAS,SAAS;GACxC,KAAK,IAAI,QAAQ,GAAG,MAAM,cAAc,QAAQ,QAAQ,KAAK,SAC3D,IACE,MAAM,EAAE,QAAQ,IAAI,OACpB,MAAM,cAAc,OAAO,SAAS,EAAE,QAAQ,GAC9C;IACA,MAAM,yBAAyB,eAAe,eAAe,OAAO,KAAI,gBAAgB;IACxF;GACF;EAEJ,OACE,iBAAiB,KAAA,GAAW,KAAA,GAAW,aAAa;CAExD;CACA,eAAe,yBAAyB,eAAuB,eAAkC,OAAc,KAAa,kBAIlH;EACR,IAAI,kBAAkB,cAAc,OAAO,OAAO;GAChD,MAAM,eAAe,QAAQ,IAAI,MAAM,QAAQ,IAAI;GACnD,MAAM,UAAU,cAAc,MAAM,cAAc,GAAG;GACrD,IAAI,cAAc,OAAO,WAAW;IAClC,MAAM,OAAgB,MAAM,mBAAW,UAAmB;KACxD,KAAK;KACL,MAAM,aAAa,cAAc,OAAO;IAC1C,CAAC;IACD,iBAAiB,cAAc,QAAQ,MAAM,OAAO;GACtD,OACE,iBAAiB,cAAc,QAAQ,KAAA,GAAW,OAAO;EAE7D;CACF;CACA,SAAS,aAAa,UAAwC;EAC5D,IAAG,CAAC,UACF,OAAO,EAAE,eAAe;EAE1B,IAAI,QAAQ;EACZ,IAAI,UAAU,OACZ,SAAS,SAAS;EAEpB,IAAI,UAAU,QACZ,SAAS,QAAQ,SAAS;EAE5B,OAAO;CACT;CAIA,sBAAsB;EACpB,cAAc,cAAc,KAA0B;CACxD,CAAC;CAGF,OAAO;EACJ;EACA;CACH;AACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usefetchRadioData-CJH2-YQo.mjs","names":[],"sources":["../src/components/composable/radio/usefetchRadioData.ts"],"sourcesContent":["import classicApi from \"../../../api/classicApi\";\nimport { MediaRadio, MetadataRadio, NextAdvertising } from '@/stores/class/general/player';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport dayjs from 'dayjs';\nimport {onBeforeUnmount, Ref, ref} from 'vue';\nimport { useI18n } from \"vue-i18n\";\nexport const useFetchRadio = ()=>{\n\n const radioInterval : Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n const {t} = useI18n();\n \n async function fetchRadioMetadata(\n canalId: number,\n previousTitle: string,\n callbackMetadata: (\n metadata: MediaRadio|undefined,\n podcast: Podcast | undefined,\n history: Array<MediaRadio>\n ) => void,\n callbackAdvertising?: (\n nextAdvertising: NextAdvertising\n ) => void,\n ): Promise<void> {\n const metadata = await classicApi.fetchData<MetadataRadio>({\n api: 14,\n path: \"player/playing/\" + canalId,\n });\n /*{\n \"adCount\": 1,\n \"startDate\": \"2025-03-04T13:12:00Z\",\n \"tag\": \"5e385e1b51c86\"\n }; */\n if(callbackAdvertising){\n callbackAdvertising(metadata.nextAdvertising);\n }\n const arrayMetadata = metadata.previously;\n if(null!==metadata.currently){\n arrayMetadata.unshift(metadata.currently);\n for (let index = 0, len = arrayMetadata.length; index < len; index++) {\n if (\n dayjs().valueOf() - 18000 >\n dayjs(arrayMetadata[index].startDate).valueOf()\n ) {\n await useCallbackIfNewMetadata(previousTitle, arrayMetadata, index, len,callbackMetadata);\n return;\n }\n }\n }else{\n callbackMetadata(undefined, undefined, arrayMetadata);\n }\n }\n async function useCallbackIfNewMetadata(previousTitle: string, arrayMetadata: Array<MediaRadio>, index:number, len: number, callbackMetadata: (\n metadata: MediaRadio,\n podcast: Podcast | undefined,\n history: Array<MediaRadio>\n ) => void){\n if (previousTitle !== arrayMetadata[index].title) {\n const historyIndex = index + 1 < len ? index + 1 : index;\n const history = arrayMetadata.slice(historyIndex, len);\n if (arrayMetadata[index].podcastId) {\n const data: Podcast = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + arrayMetadata[index].podcastId,\n });\n callbackMetadata(arrayMetadata[index], data, history);\n } else {\n callbackMetadata(arrayMetadata[index], undefined, history);\n }\n }\n }\n function displayTitle(metadata: MediaRadio|undefined): string {\n if(!metadata){\n return t(\"Silent stream\");\n }\n let title = \"\";\n if (metadata?.title) {\n title += metadata.title;\n }\n if (metadata?.artist) {\n title += \" - \" + metadata.artist;\n }\n return title;\n }\n\n\n\n onBeforeUnmount(() => {\n clearInterval(radioInterval.value as unknown as number);\n })\n\n\n\treturn {\n fetchRadioMetadata,\n displayTitle\n\t}\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAoB;CAE/B,MAAM,gBAAiE,IAAI,KAAA,CAAS;CAEpF,MAAM,EAAC,MAAK,QAAQ;CAEpB,eAAe,mBACb,SACA,eACA,kBAKA,qBAGe;EACf,MAAM,WAAW,MAAM,mBAAW,UAAyB;GACzD,KAAK;GACL,MAAO,oBAAoB;EAC7B,CAAC;EAMD,IAAG,qBACD,oBAAoB,SAAS,eAAe;EAE9C,MAAM,gBAAgB,SAAS;EAC/B,IAAG,SAAO,SAAS,WAAU;GAC3B,cAAc,QAAQ,SAAS,SAAS;GACxC,KAAK,IAAI,QAAQ,GAAG,MAAM,cAAc,QAAQ,QAAQ,KAAK,SAC3D,IACE,MAAM,EAAE,QAAQ,IAAI,OACpB,MAAM,cAAc,OAAO,SAAS,EAAE,QAAQ,GAC9C;IACA,MAAM,yBAAyB,eAAe,eAAe,OAAO,KAAI,gBAAgB;IACxF;GACF;EAEJ,OACE,iBAAiB,KAAA,GAAW,KAAA,GAAW,aAAa;CAExD;CACA,eAAe,yBAAyB,eAAuB,eAAkC,OAAc,KAAa,kBAIlH;EACR,IAAI,kBAAkB,cAAc,OAAO,OAAO;GAChD,MAAM,eAAe,QAAQ,IAAI,MAAM,QAAQ,IAAI;GACnD,MAAM,UAAU,cAAc,MAAM,cAAc,GAAG;GACrD,IAAI,cAAc,OAAO,WAAW;IAClC,MAAM,OAAgB,MAAM,mBAAW,UAAmB;KACxD,KAAK;KACL,MAAM,aAAa,cAAc,OAAO;IAC1C,CAAC;IACD,iBAAiB,cAAc,QAAQ,MAAM,OAAO;GACtD,OACE,iBAAiB,cAAc,QAAQ,KAAA,GAAW,OAAO;EAE7D;CACF;CACA,SAAS,aAAa,UAAwC;EAC5D,IAAG,CAAC,UACF,OAAO,EAAE,eAAe;EAE1B,IAAI,QAAQ;EACZ,IAAI,UAAU,OACZ,SAAS,SAAS;EAEpB,IAAI,UAAU,QACZ,SAAS,QAAQ,SAAS;EAE5B,OAAO;CACT;CAIA,sBAAsB;EACpB,cAAc,cAAc,KAA0B;CACxD,CAAC;CAGF,OAAO;EACJ;EACA;CACH;AACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usefetchRadioData-CQ1I7kfe.mjs","names":[],"sources":["../src/components/composable/radio/usefetchRadioData.ts"],"sourcesContent":["import classicApi from \"../../../api/classicApi\";\nimport { MediaRadio, MetadataRadio, NextAdvertising } from '@/stores/class/general/player';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport dayjs from 'dayjs';\nimport {onBeforeUnmount, Ref, ref} from 'vue';\nimport { useI18n } from \"vue-i18n\";\nexport const useFetchRadio = ()=>{\n\n const radioInterval : Ref<ReturnType<typeof setTimeout> | undefined> = ref(undefined);\n\n const {t} = useI18n();\n \n async function fetchRadioMetadata(\n canalId: number,\n previousTitle: string,\n callbackMetadata: (\n metadata: MediaRadio|undefined,\n podcast: Podcast | undefined,\n history: Array<MediaRadio>\n ) => void,\n callbackAdvertising?: (\n nextAdvertising: NextAdvertising\n ) => void,\n ): Promise<void> {\n const metadata = await classicApi.fetchData<MetadataRadio>({\n api: 14,\n path: \"player/playing/\" + canalId,\n });\n /*{\n \"adCount\": 1,\n \"startDate\": \"2025-03-04T13:12:00Z\",\n \"tag\": \"5e385e1b51c86\"\n }; */\n if(callbackAdvertising){\n callbackAdvertising(metadata.nextAdvertising);\n }\n const arrayMetadata = metadata.previously;\n if(null!==metadata.currently){\n arrayMetadata.unshift(metadata.currently);\n for (let index = 0, len = arrayMetadata.length; index < len; index++) {\n if (\n dayjs().valueOf() - 18000 >\n dayjs(arrayMetadata[index].startDate).valueOf()\n ) {\n await useCallbackIfNewMetadata(previousTitle, arrayMetadata, index, len,callbackMetadata);\n return;\n }\n }\n }else{\n callbackMetadata(undefined, undefined, arrayMetadata);\n }\n }\n async function useCallbackIfNewMetadata(previousTitle: string, arrayMetadata: Array<MediaRadio>, index:number, len: number, callbackMetadata: (\n metadata: MediaRadio,\n podcast: Podcast | undefined,\n history: Array<MediaRadio>\n ) => void){\n if (previousTitle !== arrayMetadata[index].title) {\n const historyIndex = index + 1 < len ? index + 1 : index;\n const history = arrayMetadata.slice(historyIndex, len);\n if (arrayMetadata[index].podcastId) {\n const data: Podcast = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + arrayMetadata[index].podcastId,\n });\n callbackMetadata(arrayMetadata[index], data, history);\n } else {\n callbackMetadata(arrayMetadata[index], undefined, history);\n }\n }\n }\n function displayTitle(metadata: MediaRadio|undefined): string {\n if(!metadata){\n return t(\"Silent stream\");\n }\n let title = \"\";\n if (metadata?.title) {\n title += metadata.title;\n }\n if (metadata?.artist) {\n title += \" - \" + metadata.artist;\n }\n return title;\n }\n\n\n\n onBeforeUnmount(() => {\n clearInterval(radioInterval.value as unknown as number);\n })\n\n\n\treturn {\n fetchRadioMetadata,\n displayTitle\n\t}\n}\n"],"mappings":";;;;;AAMA,IAAa,sBAAoB;CAE/B,MAAM,gBAAiE,IAAI,KAAA,CAAS;CAEpF,MAAM,EAAC,MAAK,QAAQ;CAEpB,eAAe,mBACb,SACA,eACA,kBAKA,qBAGe;EACf,MAAM,WAAW,MAAM,mBAAW,UAAyB;GACzD,KAAK;GACL,MAAO,oBAAoB;EAC7B,CAAC;EAMD,IAAG,qBACD,oBAAoB,SAAS,eAAe;EAE9C,MAAM,gBAAgB,SAAS;EAC/B,IAAG,SAAO,SAAS,WAAU;GAC3B,cAAc,QAAQ,SAAS,SAAS;GACxC,KAAK,IAAI,QAAQ,GAAG,MAAM,cAAc,QAAQ,QAAQ,KAAK,SAC3D,IACE,MAAM,EAAE,QAAQ,IAAI,OACpB,MAAM,cAAc,OAAO,SAAS,EAAE,QAAQ,GAC9C;IACA,MAAM,yBAAyB,eAAe,eAAe,OAAO,KAAI,gBAAgB;IACxF;GACF;EAEJ,OACE,iBAAiB,KAAA,GAAW,KAAA,GAAW,aAAa;CAExD;CACA,eAAe,yBAAyB,eAAuB,eAAkC,OAAc,KAAa,kBAIlH;EACR,IAAI,kBAAkB,cAAc,OAAO,OAAO;GAChD,MAAM,eAAe,QAAQ,IAAI,MAAM,QAAQ,IAAI;GACnD,MAAM,UAAU,cAAc,MAAM,cAAc,GAAG;GACrD,IAAI,cAAc,OAAO,WAAW;IAClC,MAAM,OAAgB,MAAM,mBAAW,UAAmB;KACxD,KAAK;KACL,MAAM,aAAa,cAAc,OAAO;IAC1C,CAAC;IACD,iBAAiB,cAAc,QAAQ,MAAM,OAAO;GACtD,OACE,iBAAiB,cAAc,QAAQ,KAAA,GAAW,OAAO;EAE7D;CACF;CACA,SAAS,aAAa,UAAwC;EAC5D,IAAG,CAAC,UACF,OAAO,EAAE,eAAe;EAE1B,IAAI,QAAQ;EACZ,IAAI,UAAU,OACZ,SAAS,SAAS;EAEpB,IAAI,UAAU,QACZ,SAAS,QAAQ,SAAS;EAE5B,OAAO;CACT;CAIA,sBAAsB;EACpB,cAAc,cAAc,KAA0B;CACxD,CAAC;CAGF,OAAO;EACJ;EACA;CACH;AACD"}