@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.
- package/dist/AdvancedSearch-8-KQYWuv.mjs.map +1 -0
- package/dist/AdvancedSearch-B0cuNtOh.mjs.map +1 -0
- package/dist/AdvancedSearch-B906GvKN.mjs.map +1 -0
- package/dist/AdvancedSearch-CTVYYKqG.mjs.map +1 -0
- package/dist/AdvancedSearch-CZrfUO8f.mjs.map +1 -0
- package/dist/AdvancedSearch-DIKy8A4x.mjs +452 -0
- package/dist/AdvancedSearch-DIKy8A4x.mjs.map +1 -0
- package/dist/AdvancedSearch-DQkpBDRs.mjs.map +1 -0
- package/dist/AdvancedSearch-DkN9HIvk.mjs.map +1 -0
- package/dist/AdvancedSearch-Dli7j4mk.mjs.map +1 -0
- package/dist/AdvancedSearch-DvWyiUl1.mjs.map +1 -0
- package/dist/AdvancedSearch-hzq1op0v.mjs.map +1 -0
- package/dist/AdvancedSearch-ksEDWPSw.mjs.map +1 -0
- package/dist/CategoryFilter-BpZB6gy9.mjs +237 -0
- package/dist/CategoryFilter-BpZB6gy9.mjs.map +1 -0
- package/dist/CategoryFilter-C0oHxpLk.mjs.map +1 -0
- package/dist/CategoryFilter-CJeJt-Z4.mjs.map +1 -0
- package/dist/CategoryFilter-Cn6N_LEr.mjs.map +1 -0
- package/dist/CategoryFilter-D6YY4FE0.mjs.map +1 -0
- package/dist/CategoryFilter-DAa1ALAl.mjs.map +1 -0
- package/dist/CategoryFilter-DzzcHsVO.mjs.map +1 -0
- package/dist/CategoryFilter-mMOiHS6f.mjs.map +1 -0
- package/dist/CategoryList-BZKIusvs.mjs.map +1 -0
- package/dist/CategoryList-Bnfndttx.mjs.map +1 -0
- package/dist/CategoryList-DQsVPaGH.mjs.map +1 -0
- package/dist/CategoryList-IQKO-tO8.mjs +182 -0
- package/dist/CategoryList-IQKO-tO8.mjs.map +1 -0
- package/dist/CategoryList-KK01BluB.mjs.map +1 -0
- package/dist/CategoryList-PSN8E9C3.mjs.map +1 -0
- package/dist/CategoryList-dVk1Qdf-.mjs.map +1 -0
- package/dist/CategoryList-zigzQR5w.mjs.map +1 -0
- package/dist/CategoryPage-B9-hSANQ.mjs +57 -0
- package/dist/CategoryPage-B9-hSANQ.mjs.map +1 -0
- package/dist/CategoryPage-B_6fr90f.mjs.map +1 -0
- package/dist/CategoryPage-BaCXwiiO.mjs.map +1 -0
- package/dist/CategoryPage-BjZj0N4p.mjs.map +1 -0
- package/dist/CategoryPage-CTod1jGo.mjs.map +1 -0
- package/dist/CategoryPage-CoS87WfG.mjs.map +1 -0
- package/dist/CategoryPage-Crjrasms.mjs.map +1 -0
- package/dist/CategoryPage-DslgrLKx.mjs.map +1 -0
- package/dist/CategoryPage-FXpgAtMR.mjs.map +1 -0
- package/dist/CategoryPage-Lau7MKzW.mjs.map +1 -0
- package/dist/CategoryPage-SG6mbLkt.mjs.map +1 -0
- package/dist/ChapteringModal-BMudjbka.mjs.map +1 -0
- package/dist/ChapteringModal-BNLqCYLZ.mjs.map +1 -0
- package/dist/ChapteringModal-BxQwqN6-.mjs +82 -0
- package/dist/ChapteringModal-BxQwqN6-.mjs.map +1 -0
- package/dist/ChapteringModal-C5TDOeej.mjs.map +1 -0
- package/dist/ChapteringModal-C7Sfm5kO.mjs.map +1 -0
- package/dist/ChapteringModal-DmVwqkUC.mjs.map +1 -0
- package/dist/ChapteringModal-DtQOpN5a.mjs.map +1 -0
- package/dist/ChapteringModal-WiCrKFtF.mjs.map +1 -0
- package/dist/CheckIdentityModal-BT4bAjZH.mjs.map +1 -0
- package/dist/CheckIdentityModal-Bdaarn9z.mjs.map +1 -0
- package/dist/CheckIdentityModal-BmLHfifA.mjs.map +1 -0
- package/dist/CheckIdentityModal-CFetpilI.mjs +86 -0
- package/dist/CheckIdentityModal-CFetpilI.mjs.map +1 -0
- package/dist/CheckIdentityModal-CcQ-yIx1.mjs.map +1 -0
- package/dist/CheckIdentityModal-DWUSOi9U.mjs.map +1 -0
- package/dist/CheckIdentityModal-DfkabfeR.mjs.map +1 -0
- package/dist/CheckIdentityModal-n_pvPUHo.mjs.map +1 -0
- package/dist/ClassicAlert-dYigdfoZ.mjs +85 -0
- package/dist/ClipboardModal--RFsihO8.mjs.map +1 -0
- package/dist/ClipboardModal-4DyYAK9R.mjs.map +1 -0
- package/dist/ClipboardModal-BkAkLwiX.mjs.map +1 -0
- package/dist/ClipboardModal-CYB6DPmM.mjs.map +1 -0
- package/dist/ClipboardModal-DQjZO1T9.mjs +84 -0
- package/dist/ClipboardModal-DQjZO1T9.mjs.map +1 -0
- package/dist/ClipboardModal-DRPdNF4-.mjs.map +1 -0
- package/dist/ClipboardModal-I4ciABik.mjs.map +1 -0
- package/dist/ClipboardModal-jRe-s3Nq.mjs.map +1 -0
- package/dist/CommentBasicView-bNaLVdjT.mjs +129 -0
- package/dist/CommentInput-3tBdugWy.mjs.map +1 -0
- package/dist/CommentInput-BIMzw15T.mjs.map +1 -0
- package/dist/CommentInput-CvjgDqNj.mjs.map +1 -0
- package/dist/CommentInput-Cz6_b9L-.mjs.map +1 -0
- package/dist/CommentInput-D8tZkOG-.mjs +186 -0
- package/dist/CommentInput-D8tZkOG-.mjs.map +1 -0
- package/dist/CommentInput-DGFTWYsR.mjs.map +1 -0
- package/dist/CommentInput-DLHr5B2k.mjs.map +1 -0
- package/dist/CommentInput-DRFtGlfL.mjs.map +1 -0
- package/dist/CommentItem-B8KAYCXM.mjs.map +1 -0
- package/dist/CommentItem-BcDGIj4j.mjs.map +1 -0
- package/dist/CommentItem-CJizPyck.mjs.map +1 -0
- package/dist/CommentItem-CUplqibZ.mjs.map +1 -0
- package/dist/CommentItem-CWoKkkjw.mjs.map +1 -0
- package/dist/CommentItem-CZ-71XmG.mjs.map +1 -0
- package/dist/CommentItem-Ch41Z98I.mjs +232 -0
- package/dist/CommentItem-Ch41Z98I.mjs.map +1 -0
- package/dist/CommentItem-DPVn6d9G.mjs.map +1 -0
- package/dist/CommentItem-DPgO4tOH.mjs.map +1 -0
- package/dist/CommentItem-art5Jx5K.mjs.map +1 -0
- package/dist/CommentList-B-h1QlS6.mjs.map +1 -0
- package/dist/CommentList-B5mexnTc.mjs +302 -0
- package/dist/CommentList-B5mexnTc.mjs.map +1 -0
- package/dist/CommentList-B7XaNVz3.mjs.map +1 -0
- package/dist/CommentList-Cuf0OULL.mjs.map +1 -0
- package/dist/CommentList-D0LwsQbk.mjs.map +1 -0
- package/dist/CommentList-DFialBaE.mjs.map +1 -0
- package/dist/CommentList-DmnHO2lL.mjs.map +1 -0
- package/dist/CommentList-DoiH-YQS.mjs.map +1 -0
- package/dist/CommentList-Duun1VSS.mjs.map +1 -0
- package/dist/CommentList-_rPvd8-j.mjs.map +1 -0
- package/dist/CommentMoreActions-BJk7eXwo.mjs.map +1 -0
- package/dist/CommentMoreActions-Bllkl6AL.mjs.map +1 -0
- package/dist/CommentMoreActions-BsqvSj88.mjs.map +1 -0
- package/dist/CommentMoreActions-C228_ziZ.mjs.map +1 -0
- package/dist/CommentMoreActions-CZqt7Ebh.mjs +286 -0
- package/dist/CommentMoreActions-CZqt7Ebh.mjs.map +1 -0
- package/dist/CommentMoreActions-KcMao3px.mjs.map +1 -0
- package/dist/CommentMoreActions-YGdXAtRo.mjs.map +1 -0
- package/dist/CommentMoreActions-yh1EftdG.mjs.map +1 -0
- package/dist/CommentName-B5ZdVBJC.mjs.map +1 -0
- package/dist/CommentName-BD2azrrm.mjs.map +1 -0
- package/dist/CommentName-BYkiaMX_.mjs +96 -0
- package/dist/CommentName-BYkiaMX_.mjs.map +1 -0
- package/dist/CommentName-BqN7PAew.mjs.map +1 -0
- package/dist/CommentName-CucfZ1JU.mjs.map +1 -0
- package/dist/CommentName-DaIwG_1r.mjs.map +1 -0
- package/dist/CommentName-XprJ2e7m.mjs.map +1 -0
- package/dist/CommentName-uR2V1uBX.mjs.map +1 -0
- package/dist/CommentParentInfo-B-4IJZKq.mjs.map +1 -0
- package/dist/CommentParentInfo-B6QihN66.mjs.map +1 -0
- package/dist/CommentParentInfo-BXFmOZ3J.mjs.map +1 -0
- package/dist/CommentParentInfo-Br53Hnn_.mjs.map +1 -0
- package/dist/CommentParentInfo-BvXbU2AT.mjs.map +1 -0
- package/dist/CommentParentInfo-CJ4KEDxK.mjs.map +1 -0
- package/dist/CommentParentInfo-CTf8YGJo.mjs.map +1 -0
- package/dist/CommentParentInfo-CfLIKg-a.mjs +64 -0
- package/dist/CommentParentInfo-CfLIKg-a.mjs.map +1 -0
- package/dist/CommentParentInfo-CfftHGbK.mjs.map +1 -0
- package/dist/CommentParentInfo-CwLFPPLV.mjs.map +1 -0
- package/dist/CommentPlayer-BiHovckc.mjs.map +1 -0
- package/dist/CommentPlayer-CklZnbF-.mjs.map +1 -0
- package/dist/CommentPlayer-DOrCrOVs.mjs.map +1 -0
- package/dist/CommentPlayer-DcSLgaFs.mjs +86 -0
- package/dist/CommentPlayer-DcSLgaFs.mjs.map +1 -0
- package/dist/CommentPlayer-Dr_Q1wAp.mjs.map +1 -0
- package/dist/CommentPlayer-Mm8AHGK9.mjs.map +1 -0
- package/dist/CommentPlayer-vGqNfb9w.mjs.map +1 -0
- package/dist/CommentPlayer-zBrp41zL.mjs.map +1 -0
- package/dist/CommentSection-B7TEZHF7.mjs.map +1 -0
- package/dist/CommentSection-BIbRND09.mjs +141 -0
- package/dist/CommentSection-BIbRND09.mjs.map +1 -0
- package/dist/CommentSection-C2SMteiI.mjs.map +1 -0
- package/dist/CommentSection-D26c2dSY.mjs.map +1 -0
- package/dist/CommentSection-DJhCf4Tg.mjs.map +1 -0
- package/dist/CommentSection-Dot5tXUS.mjs.map +1 -0
- package/dist/CommentSection-MNW-Sgk9.mjs.map +1 -0
- package/dist/CommentSection-WOHdSA9i.mjs.map +1 -0
- package/dist/CommentSection-h5WRmElJ.mjs.map +1 -0
- package/dist/CommentSection-uUzVRMAv.mjs.map +1 -0
- package/dist/CommentStore-B7pzkLnJ.mjs.map +1 -0
- package/dist/CommentStore-B_XslEkb.mjs.map +1 -0
- package/dist/CommentStore-BsoQ8JE4.mjs.map +1 -0
- package/dist/CommentStore-CDafrQ9U.mjs.map +1 -0
- package/dist/CommentStore-CToql_kf.mjs.map +1 -0
- package/dist/CommentStore-D4aFuelo.mjs.map +1 -0
- package/dist/CommentStore-DY_JSo9-.mjs.map +1 -0
- package/dist/CommentStore-bKtPx6T5.mjs +355 -0
- package/dist/CommentStore-bKtPx6T5.mjs.map +1 -0
- package/dist/ContractPreviewModal-BIg6dTcF.mjs +101 -0
- package/dist/ContractPreviewModal-BIg6dTcF.mjs.map +1 -0
- package/dist/ContractPreviewModal-CAEx2t42.mjs.map +1 -0
- package/dist/ContractPreviewModal-CWzo13IS.mjs.map +1 -0
- package/dist/ContractPreviewModal-Cur6ifQn.mjs.map +1 -0
- package/dist/ContractPreviewModal-Cx2jOY0K.mjs.map +1 -0
- package/dist/ContractPreviewModal-DAubbTyX.mjs.map +1 -0
- package/dist/ContractPreviewModal-DJ9iuIRO.mjs.map +1 -0
- package/dist/ContractPreviewModal-TulGrNUs.mjs.map +1 -0
- package/dist/DownloadPodcastButton-BJFgMkGP.mjs.map +1 -0
- package/dist/DownloadPodcastButton-BTFYgyz4.mjs +53 -0
- package/dist/DownloadPodcastButton-BTFYgyz4.mjs.map +1 -0
- package/dist/DownloadPodcastButton-C49TUYY_.mjs.map +1 -0
- package/dist/DownloadPodcastButton-Cc1z8M72.mjs.map +1 -0
- package/dist/DownloadPodcastButton-CydCrTfy.mjs.map +1 -0
- package/dist/DownloadPodcastButton-D7aXh-rD.mjs.map +1 -0
- package/dist/DownloadPodcastButton-DWGsL65f.mjs.map +1 -0
- package/dist/DownloadPodcastButton-fUfwjwJ4.mjs.map +1 -0
- package/dist/EditCommentModal-BYUWBuPm.mjs.map +1 -0
- package/dist/EditCommentModal-Bb7urnA0.mjs.map +1 -0
- package/dist/EditCommentModal-BpEuISBJ.mjs.map +1 -0
- package/dist/EditCommentModal-BviwPlNi.mjs.map +1 -0
- package/dist/EditCommentModal-Cc8Ui6Cx.mjs +162 -0
- package/dist/EditCommentModal-Cc8Ui6Cx.mjs.map +1 -0
- package/dist/EditCommentModal-CgMvU9i5.mjs.map +1 -0
- package/dist/EditCommentModal-DMRkpZXe.mjs.map +1 -0
- package/dist/EditCommentModal-DlQjjiwI.mjs.map +1 -0
- package/dist/EmissionGroupChooser-4JVeuRE7.mjs.map +1 -0
- package/dist/EmissionGroupChooser-4JxjHyRy.mjs.map +1 -0
- package/dist/EmissionGroupChooser-5c7aD7hj.mjs +82 -0
- package/dist/EmissionGroupChooser-5c7aD7hj.mjs.map +1 -0
- package/dist/EmissionGroupChooser-BfqHSOeJ.mjs.map +1 -0
- package/dist/EmissionGroupChooser-BmVl7ww5.mjs.map +1 -0
- package/dist/EmissionGroupChooser-C44R_EK7.mjs.map +1 -0
- package/dist/EmissionGroupChooser-DcceBxVb.mjs.map +1 -0
- package/dist/EmissionGroupChooser-x_YFTdyX.mjs.map +1 -0
- package/dist/EmissionInlineList-B2WZU0tk.mjs.map +1 -0
- package/dist/EmissionInlineList-BI7_GMMn.mjs.map +1 -0
- package/dist/EmissionInlineList-BSJUVlop.mjs.map +1 -0
- package/dist/EmissionInlineList-C7O0r8HK.mjs.map +1 -0
- package/dist/EmissionInlineList-CRxNX4fl.mjs.map +1 -0
- package/dist/EmissionInlineList-D1Xsv_jA.mjs +188 -0
- package/dist/EmissionInlineList-D1Xsv_jA.mjs.map +1 -0
- package/dist/EmissionInlineList-DPXmDcbc.mjs.map +1 -0
- package/dist/EmissionInlineList-PJukOOru.mjs.map +1 -0
- package/dist/EmissionItem-3vn1MhKN.mjs.map +1 -0
- package/dist/EmissionItem-BNmzrbKU.mjs.map +1 -0
- package/dist/EmissionItem-Bd2IA2iK.mjs.map +1 -0
- package/dist/EmissionItem-BfBsk2Ch.mjs.map +1 -0
- package/dist/EmissionItem-Bft7IM7C.mjs +183 -0
- package/dist/EmissionItem-Bft7IM7C.mjs.map +1 -0
- package/dist/EmissionItem-BqkfUKmE.mjs.map +1 -0
- package/dist/EmissionItem-C9zqc2PQ.mjs.map +1 -0
- package/dist/EmissionItem-CQAB9kfZ.mjs.map +1 -0
- package/dist/EmissionItem-DPwRulfC.mjs.map +1 -0
- package/dist/EmissionItem-XbvPfojH.mjs.map +1 -0
- package/dist/EmissionList-B1SJIDcA.mjs.map +1 -0
- package/dist/EmissionList-B5cdTLCu.mjs.map +1 -0
- package/dist/EmissionList-Budx6wGr.mjs.map +1 -0
- package/dist/EmissionList-CsKEUEtb.mjs.map +1 -0
- package/dist/EmissionList-D6_r33dt.mjs.map +1 -0
- package/dist/EmissionList-DeHujYzJ.mjs.map +1 -0
- package/dist/EmissionList-GKZxghJ1.mjs.map +1 -0
- package/dist/EmissionList-PYqHKyad.mjs.map +1 -0
- package/dist/EmissionList-WLJL4eaJ.mjs.map +1 -0
- package/dist/EmissionList-ofS3nKr2.mjs +325 -0
- package/dist/EmissionList-ofS3nKr2.mjs.map +1 -0
- package/dist/EmissionPage-B2PQcnFH.mjs.map +1 -0
- package/dist/EmissionPage-BTxSGJj5.mjs.map +1 -0
- package/dist/EmissionPage-BZ50ZqRI.mjs.map +1 -0
- package/dist/EmissionPage-CLBPPbbB.mjs.map +1 -0
- package/dist/EmissionPage-CdlIsCg5.mjs +322 -0
- package/dist/EmissionPage-CdlIsCg5.mjs.map +1 -0
- package/dist/EmissionPage-D9wkUL1Y.mjs.map +1 -0
- package/dist/EmissionPage-DG-qKyj6.mjs.map +1 -0
- package/dist/EmissionPage-DNrzhRai.mjs.map +1 -0
- package/dist/EmissionPage-DVlt2bDB.mjs.map +1 -0
- package/dist/EmissionPage-De1hLTjf.mjs.map +1 -0
- package/dist/EmissionPage-DodwYSuK.mjs.map +1 -0
- package/dist/EmissionPage-oJCLeOwA.mjs.map +1 -0
- package/dist/EmissionPlayerItem-B3AA9DUG.mjs.map +1 -0
- package/dist/EmissionPlayerItem-B9nPhS0q.mjs +167 -0
- package/dist/EmissionPlayerItem-B9nPhS0q.mjs.map +1 -0
- package/dist/EmissionPlayerItem-BMsjj0mR.mjs.map +1 -0
- package/dist/EmissionPlayerItem-BfKXNH-8.mjs.map +1 -0
- package/dist/EmissionPlayerItem-Bkg_iKgu.mjs.map +1 -0
- package/dist/EmissionPlayerItem-D4hSP4g-.mjs.map +1 -0
- package/dist/EmissionPlayerItem-DXxYisqq.mjs.map +1 -0
- package/dist/EmissionPlayerItem-ZW4qsrH5.mjs.map +1 -0
- package/dist/EmissionPresentationItem-B4IO88Q5.mjs.map +1 -0
- package/dist/EmissionPresentationItem-Bix2Knlw.mjs.map +1 -0
- package/dist/EmissionPresentationItem-Btg6V02c.mjs.map +1 -0
- package/dist/EmissionPresentationItem-C6IUxgTa.mjs.map +1 -0
- package/dist/EmissionPresentationItem-D-Lv8tM_.mjs.map +1 -0
- package/dist/EmissionPresentationItem-GB4a2U55.mjs +78 -0
- package/dist/EmissionPresentationItem-GB4a2U55.mjs.map +1 -0
- package/dist/EmissionPresentationItem-c-pbVk_T.mjs.map +1 -0
- package/dist/EmissionPresentationItem-uMJB07l3.mjs.map +1 -0
- package/dist/EmissionPresentationList-7PqIDkc6.mjs.map +1 -0
- package/dist/EmissionPresentationList-B6PVvXwb.mjs.map +1 -0
- package/dist/EmissionPresentationList-B8o1I5tO.mjs.map +1 -0
- package/dist/EmissionPresentationList-COoLQosL.mjs.map +1 -0
- package/dist/EmissionPresentationList-CUdQrPW_.mjs.map +1 -0
- package/dist/EmissionPresentationList-Dt7u5Mla.mjs +125 -0
- package/dist/EmissionPresentationList-Dt7u5Mla.mjs.map +1 -0
- package/dist/EmissionPresentationList-JraWAUE3.mjs.map +1 -0
- package/dist/EmissionPresentationList-nUwmkWa7.mjs.map +1 -0
- package/dist/EmissionsPage--XXk91Dq.mjs.map +1 -0
- package/dist/EmissionsPage-AOA_2npV.mjs.map +1 -0
- package/dist/EmissionsPage-B4aRd98n.mjs.map +1 -0
- package/dist/EmissionsPage-BBh_t2QG.mjs.map +1 -0
- package/dist/EmissionsPage-BD9ucNwX.mjs.map +1 -0
- package/dist/EmissionsPage-BFLoIsdw.mjs.map +1 -0
- package/dist/EmissionsPage-BjLEwsfW.mjs.map +1 -0
- package/dist/EmissionsPage-BteDpLdX.mjs.map +1 -0
- package/dist/EmissionsPage-C55nLjOB.mjs.map +1 -0
- package/dist/EmissionsPage-D34ZU9Ce.mjs.map +1 -0
- package/dist/EmissionsPage-D7GU4S6G.mjs.map +1 -0
- package/dist/EmissionsPage-DQfu2UI-.mjs +203 -0
- package/dist/EmissionsPage-DQfu2UI-.mjs.map +1 -0
- package/dist/EmissionsPage-DgkUGrwU.mjs.map +1 -0
- package/dist/EmissionsPage-DpvPVwCI.mjs.map +1 -0
- package/dist/EmissionsPage-S-nMk436.mjs.map +1 -0
- package/dist/EmissionsPage-XQJ_lva0.mjs.map +1 -0
- package/dist/EmissionsPage-vd5bDbT3.mjs.map +1 -0
- package/dist/Error403Page-B419GrvA.mjs.map +1 -0
- package/dist/Error403Page-BF9K4EFP.mjs.map +1 -0
- package/dist/Error403Page-BselwjZ9.mjs.map +1 -0
- package/dist/Error403Page-CVbdhuN7.mjs.map +1 -0
- package/dist/Error403Page-CyWAyLFN.mjs.map +1 -0
- package/dist/Error403Page-cSGk6jdr.mjs.map +1 -0
- package/dist/Error403Page-xviuI62E.mjs.map +1 -0
- package/dist/Error403Page-yyOmweXn.mjs +69 -0
- package/dist/Error403Page-yyOmweXn.mjs.map +1 -0
- package/dist/ErrorMessage-DhSwu9H_.mjs +44 -0
- package/dist/FooterGarSection-BJ_nb3y-.mjs.map +1 -0
- package/dist/FooterGarSection-BKtQIAGm.mjs.map +1 -0
- package/dist/FooterGarSection-BX__olco.mjs.map +1 -0
- package/dist/FooterGarSection-BtCdH7Eh.mjs.map +1 -0
- package/dist/FooterGarSection-CTfWZV9U.mjs +71 -0
- package/dist/FooterGarSection-CTfWZV9U.mjs.map +1 -0
- package/dist/FooterGarSection-D4cPjQrK.mjs.map +1 -0
- package/dist/FooterGarSection-_nmbth7R.mjs.map +1 -0
- package/dist/FooterGarSection-syu-sY6D.mjs.map +1 -0
- package/dist/FooterSection-B7U-k8Y_.mjs +242 -0
- package/dist/FooterSection-B7U-k8Y_.mjs.map +1 -0
- package/dist/FooterSection-BCSsmDtK.mjs.map +1 -0
- package/dist/FooterSection-BTLGfXhO.mjs.map +1 -0
- package/dist/FooterSection-CzjmceG3.mjs.map +1 -0
- package/dist/FooterSection-DXN9hDpW.mjs.map +1 -0
- package/dist/FooterSection-VbNEwwAi.mjs.map +1 -0
- package/dist/FooterSection-oG2rsgql.mjs.map +1 -0
- package/dist/FooterSection-wV6U32yB.mjs.map +1 -0
- package/dist/HomeDropdown-35ltOXjq.mjs.map +1 -0
- package/dist/HomeDropdown-BBbLy3E2.mjs.map +1 -0
- package/dist/HomeDropdown-BEnuQwNk.mjs +110 -0
- package/dist/HomeDropdown-BEnuQwNk.mjs.map +1 -0
- package/dist/HomeDropdown-BVgXclga.mjs.map +1 -0
- package/dist/HomeDropdown-BoUAW1-A.mjs.map +1 -0
- package/dist/HomeDropdown-BrBAtaGS.mjs.map +1 -0
- package/dist/HomeDropdown-C1t9_37d.mjs.map +1 -0
- package/dist/HomeDropdown-CiHwBZRw.mjs.map +1 -0
- package/dist/HomePage-1oKIZIbD.mjs.map +1 -0
- package/dist/HomePage-5g1hu6m5.mjs.map +1 -0
- package/dist/HomePage-8kFIB9jy.mjs.map +1 -0
- package/dist/HomePage-BmYeT77a.mjs +166 -0
- package/dist/HomePage-BmYeT77a.mjs.map +1 -0
- package/dist/HomePage-Bp4D88it.mjs.map +1 -0
- package/dist/HomePage-BqCRtmCZ.mjs.map +1 -0
- package/dist/HomePage-CA_D6kWn.mjs.map +1 -0
- package/dist/HomePage-CdTp7bkN.mjs.map +1 -0
- package/dist/HomePage-DLgNoCiZ.mjs.map +1 -0
- package/dist/HomePage-MqWZ8gYT.mjs.map +1 -0
- package/dist/LikeSection-B6iTVM7V.mjs.map +1 -0
- package/dist/LikeSection-CfDZ9By_.mjs.map +1 -0
- package/dist/LikeSection-Cnqh3BHR.mjs.map +1 -0
- package/dist/LikeSection-CwImuD6V.mjs.map +1 -0
- package/dist/LikeSection-D2afnKgR.mjs.map +1 -0
- package/dist/LikeSection-a0Qwb0pP.mjs.map +1 -0
- package/dist/LikeSection-cjuHVDUb.mjs.map +1 -0
- package/dist/LikeSection-xxZrcE6h.mjs +167 -0
- package/dist/LikeSection-xxZrcE6h.mjs.map +1 -0
- package/dist/ListPaginate-B2GfJ2XG.mjs.map +1 -0
- package/dist/ListPaginate-B2sluwKR.mjs.map +1 -0
- package/dist/ListPaginate-BVgC_EZc.mjs.map +1 -0
- package/dist/ListPaginate-BXC7Wa9A.mjs.map +1 -0
- package/dist/ListPaginate-C9YUNHKq.mjs +202 -0
- package/dist/ListPaginate-C9YUNHKq.mjs.map +1 -0
- package/dist/ListPaginate-CXKYbF91.mjs.map +1 -0
- package/dist/ListPaginate-CZg4bNAV.mjs.map +1 -0
- package/dist/ListPaginate-Dahe7nCi.mjs.map +1 -0
- package/dist/LiveHorizontalList-4qHj8EkS.mjs +136 -0
- package/dist/LiveHorizontalList-4qHj8EkS.mjs.map +1 -0
- package/dist/LiveHorizontalList-BdKG9ZRq.mjs.map +1 -0
- package/dist/LiveHorizontalList-BjtpeOER.mjs.map +1 -0
- package/dist/LiveHorizontalList-BlOA_SQ-.mjs.map +1 -0
- package/dist/LiveHorizontalList-BrVLNbcs.mjs.map +1 -0
- package/dist/LiveHorizontalList-Bt6RBhFx.mjs.map +1 -0
- package/dist/LiveHorizontalList-CUeTCxa9.mjs.map +1 -0
- package/dist/LiveHorizontalList-DGsHkZXl.mjs.map +1 -0
- package/dist/LiveHorizontalList-DaAIBl8_.mjs.map +1 -0
- package/dist/LiveHorizontalList-KEcCCoFy.mjs.map +1 -0
- package/dist/LiveList-BAfaKtst.mjs.map +1 -0
- package/dist/LiveList-BNSIdMf6.mjs +324 -0
- package/dist/LiveList-BNSIdMf6.mjs.map +1 -0
- package/dist/LiveList-C2LaQd-X.mjs.map +1 -0
- package/dist/LiveList-C2MkulGa.mjs.map +1 -0
- package/dist/LiveList-DmPveHiA.mjs.map +1 -0
- package/dist/LiveList-DougZkb5.mjs.map +1 -0
- package/dist/LiveList-SQEyqtXv.mjs.map +1 -0
- package/dist/LiveList-d6sxftRL.mjs.map +1 -0
- package/dist/LiveList-n5YhfpuV.mjs.map +1 -0
- package/dist/LiveList-w_Uqo7pC.mjs.map +1 -0
- package/dist/LivesPage-8mNTX_aq.mjs.map +1 -0
- package/dist/LivesPage-B8A5oY3Z.mjs.map +1 -0
- package/dist/LivesPage-BGB4yHJJ.mjs.map +1 -0
- package/dist/LivesPage-Boq-efi1.mjs +76 -0
- package/dist/LivesPage-Boq-efi1.mjs.map +1 -0
- package/dist/LivesPage-CHKMYyz7.mjs.map +1 -0
- package/dist/LivesPage-CVHOjcu9.mjs.map +1 -0
- package/dist/LivesPage-ChSsKzdr.mjs.map +1 -0
- package/dist/LivesPage-DLRlZsFD.mjs.map +1 -0
- package/dist/LivesPage-DXsXeGhq.mjs.map +1 -0
- package/dist/LivesPage-y5cSmL9j.mjs.map +1 -0
- package/dist/MapPage-BTugok5X.mjs.map +1 -0
- package/dist/MapPage-BfFDi0lK.mjs.map +1 -0
- package/dist/MapPage-CSpj96-Z.mjs.map +1 -0
- package/dist/MapPage-DJqTgIys.mjs.map +1 -0
- package/dist/MapPage-DOYeoa-x.mjs +303 -0
- package/dist/MapPage-DOYeoa-x.mjs.map +1 -0
- package/dist/MapPage-FWrSf-_O.mjs.map +1 -0
- package/dist/MapPage-GzLpp82r.mjs.map +1 -0
- package/dist/MapPage-OY3Bjb-x.mjs.map +1 -0
- package/dist/MobileMenu-B9u1xQu8.mjs +187 -0
- package/dist/MobileMenu-B9u1xQu8.mjs.map +1 -0
- package/dist/MobileMenu-BRUze5FH.mjs.map +1 -0
- package/dist/MobileMenu-CLuWzQ3z.mjs.map +1 -0
- package/dist/MobileMenu-D0_AG2lW.mjs.map +1 -0
- package/dist/MobileMenu-DES01JNf.mjs.map +1 -0
- package/dist/MobileMenu-DyfgyHgN.mjs.map +1 -0
- package/dist/MobileMenu-S37TAWuK.mjs.map +1 -0
- package/dist/MobileMenu-crc2wKfq.mjs.map +1 -0
- package/dist/NewsletterModal-2kYChOhX.mjs.map +1 -0
- package/dist/NewsletterModal-CEYb1exr.mjs.map +1 -0
- package/dist/NewsletterModal-CV11PCGE.mjs +82 -0
- package/dist/NewsletterModal-CV11PCGE.mjs.map +1 -0
- package/dist/NewsletterModal-CkR4W1Ht.mjs.map +1 -0
- package/dist/NewsletterModal-D7HrTutI.mjs.map +1 -0
- package/dist/NewsletterModal-DZDCvN7c.mjs.map +1 -0
- package/dist/NewsletterModal-DvRTsz_F.mjs.map +1 -0
- package/dist/NewsletterModal-KW33yovN.mjs.map +1 -0
- package/dist/OrganisationChooser-C0eRYOpz.mjs.map +1 -0
- package/dist/OrganisationChooser-C8lM4mh-.mjs +190 -0
- package/dist/OrganisationChooser-C8lM4mh-.mjs.map +1 -0
- package/dist/OrganisationChooser-CEtiqAHc.mjs.map +1 -0
- package/dist/OrganisationChooser-Cw9yAxM1.mjs.map +1 -0
- package/dist/OrganisationChooser-DlUUt477.mjs.map +1 -0
- package/dist/OrganisationChooser-PPMxSop3.mjs.map +1 -0
- package/dist/OrganisationChooser-_-CAzQyG.mjs.map +1 -0
- package/dist/OrganisationChooser-wmM2dstX.mjs.map +1 -0
- package/dist/OrganisationChooserLight-2xITz8LG.mjs.map +1 -0
- package/dist/OrganisationChooserLight-B6Ffp6Z5.mjs.map +1 -0
- package/dist/OrganisationChooserLight-BI_H3aco.mjs.map +1 -0
- package/dist/OrganisationChooserLight-BN4PqeMz.mjs.map +1 -0
- package/dist/OrganisationChooserLight-BZRuebHC.mjs.map +1 -0
- package/dist/OrganisationChooserLight-B_Bn5uSJ.mjs +84 -0
- package/dist/OrganisationChooserLight-B_Bn5uSJ.mjs.map +1 -0
- package/dist/OrganisationChooserLight-D8dRc3o0.mjs.map +1 -0
- package/dist/OrganisationChooserLight-tifNDlC_.mjs.map +1 -0
- package/dist/PageNotFound-BcAeMiaz.mjs +58 -0
- package/dist/PageNotFound-BcAeMiaz.mjs.map +1 -0
- package/dist/PageNotFound-C-AtqE7u.mjs.map +1 -0
- package/dist/PageNotFound-CQoSdX4h.mjs.map +1 -0
- package/dist/PageNotFound-DCyGvvjK.mjs.map +1 -0
- package/dist/PageNotFound-DDu5NdY6.mjs.map +1 -0
- package/dist/PageNotFound-DMhQmfyW.mjs.map +1 -0
- package/dist/PageNotFound-DiO28Uji.mjs.map +1 -0
- package/dist/PageNotFound-sTlWzrAN.mjs.map +1 -0
- package/dist/ParticipantInlineList-B1vb8SQt.mjs.map +1 -0
- package/dist/ParticipantInlineList-B5MkLUnV.mjs.map +1 -0
- package/dist/ParticipantInlineList-BP9OjWPq.mjs +117 -0
- package/dist/ParticipantInlineList-BP9OjWPq.mjs.map +1 -0
- package/dist/ParticipantInlineList-BYdLxjB-.mjs.map +1 -0
- package/dist/ParticipantInlineList-C-OvFC-T.mjs.map +1 -0
- package/dist/ParticipantInlineList-DKfNcyCs.mjs.map +1 -0
- package/dist/ParticipantInlineList-DxR0tF8d.mjs.map +1 -0
- package/dist/ParticipantInlineList-IdQ4k-BB.mjs.map +1 -0
- package/dist/ParticipantInlineList-Jp6ZPUiC.mjs.map +1 -0
- package/dist/ParticipantInlineList-xr_f6rws.mjs.map +1 -0
- package/dist/ParticipantItem-1mjH8LQc.mjs.map +1 -0
- package/dist/ParticipantItem-B5LzNAVr.mjs.map +1 -0
- package/dist/ParticipantItem-B6rGq73q.mjs.map +1 -0
- package/dist/ParticipantItem-BT0kKsD_.mjs.map +1 -0
- package/dist/ParticipantItem-BsBOW5Yg.mjs.map +1 -0
- package/dist/ParticipantItem-C20V5K4U.mjs.map +1 -0
- package/dist/ParticipantItem-CKNqNtC5.mjs.map +1 -0
- package/dist/ParticipantItem-DROwf2Gt.mjs +138 -0
- package/dist/ParticipantItem-DROwf2Gt.mjs.map +1 -0
- package/dist/ParticipantItem-TDEi9-3v.mjs.map +1 -0
- package/dist/ParticipantItem-gqm3Owcx.mjs.map +1 -0
- package/dist/ParticipantPage-BGAqjBAA.mjs.map +1 -0
- package/dist/ParticipantPage-BQlW9QQ-.mjs.map +1 -0
- package/dist/ParticipantPage-BbhRQklZ.mjs.map +1 -0
- package/dist/ParticipantPage-Be2HlTm5.mjs.map +1 -0
- package/dist/ParticipantPage-BqPiczyZ.mjs.map +1 -0
- package/dist/ParticipantPage-By7Ypu8d.mjs.map +1 -0
- package/dist/ParticipantPage-C93DkNt5.mjs +203 -0
- package/dist/ParticipantPage-C93DkNt5.mjs.map +1 -0
- package/dist/ParticipantPage-CQ9hF05G.mjs.map +1 -0
- package/dist/ParticipantPage-DngwIHgZ.mjs.map +1 -0
- package/dist/ParticipantPage-cDn-E9VN.mjs.map +1 -0
- package/dist/ParticipantPage-hgT3P6p-.mjs.map +1 -0
- package/dist/ParticipantPage-zjsGF4KY.mjs.map +1 -0
- package/dist/ParticipantsPage-BIlXpxuX.mjs.map +1 -0
- package/dist/ParticipantsPage-Bb_0zdJj.mjs.map +1 -0
- package/dist/ParticipantsPage-BpN4nG3P.mjs.map +1 -0
- package/dist/ParticipantsPage-Bxm26IWx.mjs.map +1 -0
- package/dist/ParticipantsPage-C1VilJ_B.mjs.map +1 -0
- package/dist/ParticipantsPage-CHs_EUKe.mjs.map +1 -0
- package/dist/ParticipantsPage-CuIGt0hS.mjs +262 -0
- package/dist/ParticipantsPage-CuIGt0hS.mjs.map +1 -0
- package/dist/ParticipantsPage-DZRDaeeU.mjs.map +1 -0
- package/dist/ParticipantsPage-Dh4qxy53.mjs.map +1 -0
- package/dist/ParticipantsPage-DsSdBC7m.mjs.map +1 -0
- package/dist/ParticipantsPage-vriueLXv.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-C_YX6p2e.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DID5SKut.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DJRBilzy.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DL5bX-br.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DS-xCiYS.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DShsz29z.mjs +84 -0
- package/dist/PlayerAnonymousModal-DShsz29z.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-N7254PdP.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-PSOxZM4G.mjs.map +1 -0
- package/dist/PlayerCompact-2c7jXoLe.mjs.map +1 -0
- package/dist/PlayerCompact-B6RkPvdB.mjs.map +1 -0
- package/dist/PlayerCompact-BKZC9_Q3.mjs.map +1 -0
- package/dist/PlayerCompact-BVSkJWnf.mjs +209 -0
- package/dist/PlayerCompact-BVSkJWnf.mjs.map +1 -0
- package/dist/PlayerCompact-BrA80Jz_.mjs.map +1 -0
- package/dist/PlayerCompact-CYykvc0T.mjs.map +1 -0
- package/dist/PlayerCompact-DLQYBn_3.mjs.map +1 -0
- package/dist/PlayerCompact-DbGxllSc.mjs.map +1 -0
- package/dist/PlayerComponent-BjkuZ9bv.mjs.map +1 -0
- package/dist/PlayerComponent-CLm4OApf.mjs.map +1 -0
- package/dist/PlayerComponent-D0kpJ6o7.mjs.map +1 -0
- package/dist/PlayerComponent-D56wEuQi.mjs.map +1 -0
- package/dist/PlayerComponent-DKwM8vDK.mjs.map +1 -0
- package/dist/PlayerComponent-DVnvB6Ky.mjs.map +1 -0
- package/dist/PlayerComponent-dU_bgj3K.mjs +929 -0
- package/dist/PlayerComponent-dU_bgj3K.mjs.map +1 -0
- package/dist/PlayerComponent-fTZlW3Ea.mjs.map +1 -0
- package/dist/PlayerLarge-B0qqu2xB.mjs.map +1 -0
- package/dist/PlayerLarge-BdsuxcfX.mjs.map +1 -0
- package/dist/PlayerLarge-Bl41fSG2.mjs.map +1 -0
- package/dist/PlayerLarge-BnsLvwU7.mjs +190 -0
- package/dist/PlayerLarge-BnsLvwU7.mjs.map +1 -0
- package/dist/PlayerLarge-C0XfCxlz.mjs.map +1 -0
- package/dist/PlayerLarge-DROavb5D.mjs.map +1 -0
- package/dist/PlayerLarge-DaZlXOLQ.mjs.map +1 -0
- package/dist/PlayerLarge-LCB9mX1V.mjs.map +1 -0
- package/dist/PlayerPlayButton-BYEFygUQ.mjs.map +1 -0
- package/dist/PlayerPlayButton-BuF91IV9.mjs.map +1 -0
- package/dist/PlayerPlayButton-CCpKjcaD.mjs.map +1 -0
- package/dist/PlayerPlayButton-DPAfPfHk.mjs +400 -0
- package/dist/PlayerPlayButton-DPAfPfHk.mjs.map +1 -0
- package/dist/PlayerPlayButton-DRhJLBkl.mjs.map +1 -0
- package/dist/PlayerPlayButton-DgJ9DiOR.mjs.map +1 -0
- package/dist/PlayerPlayButton-XEcwJsYc.mjs.map +1 -0
- package/dist/PlayerPlayButton-sOXhGXWT.mjs.map +1 -0
- package/dist/PlayerProgressBar-B44UhkFM.mjs.map +1 -0
- package/dist/PlayerProgressBar-BFOvttHk.mjs.map +1 -0
- package/dist/PlayerProgressBar-BFz7oBO4.mjs.map +1 -0
- package/dist/PlayerProgressBar-C4yp-pJs.mjs.map +1 -0
- package/dist/PlayerProgressBar-Ckvqrxxj.mjs.map +1 -0
- package/dist/PlayerProgressBar-JkhTTJ1j.mjs.map +1 -0
- package/dist/PlayerProgressBar-dPZf2Fgd.mjs +86 -0
- package/dist/PlayerProgressBar-dPZf2Fgd.mjs.map +1 -0
- package/dist/PlayerProgressBar-xos_D8_I.mjs.map +1 -0
- package/dist/PlayerStore-C0e_C1mg.mjs.map +1 -0
- package/dist/PlayerStore-CLBB4vTl.mjs.map +1 -0
- package/dist/PlayerStore-CNq7ffD-.mjs.map +1 -0
- package/dist/PlayerStore-CPx-OF46.mjs.map +1 -0
- package/dist/PlayerStore-D2kYKiYY.mjs.map +1 -0
- package/dist/PlayerStore-D75I--B4.mjs.map +1 -0
- package/dist/PlayerStore-DN54JPUv.mjs.map +1 -0
- package/dist/PlayerStore-PXL_fAz0.mjs +230 -0
- package/dist/PlayerStore-PXL_fAz0.mjs.map +1 -0
- package/dist/PlayerVideo--_Kz9vbZ.mjs +72 -0
- package/dist/PlayerVideo--_Kz9vbZ.mjs.map +1 -0
- package/dist/PlayerVideo-CGxMdLTE.mjs.map +1 -0
- package/dist/PlayerVideo-CSPWdFmf.mjs.map +1 -0
- package/dist/PlayerVideo-DN4cWeQP.mjs.map +1 -0
- package/dist/PlayerVideo-DPkWsgZo.mjs.map +1 -0
- package/dist/PlayerVideo-DT9wZfso.mjs.map +1 -0
- package/dist/PlayerVideo-Dbw8-jzi.mjs.map +1 -0
- package/dist/PlayerVideo-DcndZxyL.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-B0DM5dUQ.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-B4oUahid.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-BCstFOQv.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-BcXsqqhY.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-BgXoXF4i.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-C2P_Q4Fe.mjs +102 -0
- package/dist/PlayerVideoDigiteka-C2P_Q4Fe.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-CGHmdkUL.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-CPJ-l8KX.mjs.map +1 -0
- package/dist/PlayerVideoHls-BOZLkJA2.mjs.map +1 -0
- package/dist/PlayerVideoHls-BZm6iEVQ.mjs.map +1 -0
- package/dist/PlayerVideoHls-Csj2_tFT.mjs.map +1 -0
- package/dist/PlayerVideoHls-DPd15ZKL.mjs.map +1 -0
- package/dist/PlayerVideoHls-DZBGdNv8.mjs.map +1 -0
- package/dist/PlayerVideoHls-Dgxsarmp.mjs.map +1 -0
- package/dist/PlayerVideoHls-Dhc3_vMY.mjs.map +1 -0
- package/dist/PlayerVideoHls-Rk-hz2k-.mjs +232 -0
- package/dist/PlayerVideoHls-Rk-hz2k-.mjs.map +1 -0
- package/dist/PlaylistPage-CARz8SKq.mjs.map +1 -0
- package/dist/PlaylistPage-CdKGH_W2.mjs.map +1 -0
- package/dist/PlaylistPage-CvlY8R47.mjs.map +1 -0
- package/dist/PlaylistPage-CzgrhwRb.mjs.map +1 -0
- package/dist/PlaylistPage-Czoocs0q.mjs.map +1 -0
- package/dist/PlaylistPage-DN8FxJED.mjs.map +1 -0
- package/dist/PlaylistPage-DgbdClfy.mjs.map +1 -0
- package/dist/PlaylistPage-DvJjwvI_.mjs.map +1 -0
- package/dist/PlaylistPage-U_IMEiNw.mjs +228 -0
- package/dist/PlaylistPage-U_IMEiNw.mjs.map +1 -0
- package/dist/PlaylistPage-ubSxWN1i.mjs.map +1 -0
- package/dist/PlaylistPage-vPX_wwEO.mjs.map +1 -0
- package/dist/PlaylistsPage--BdUCleq.mjs.map +1 -0
- package/dist/PlaylistsPage-4p58SShT.mjs +395 -0
- package/dist/PlaylistsPage-4p58SShT.mjs.map +1 -0
- package/dist/PlaylistsPage-BHF-3tgl.mjs.map +1 -0
- package/dist/PlaylistsPage-BHkETgSa.mjs.map +1 -0
- package/dist/PlaylistsPage-C8RfANak.mjs.map +1 -0
- package/dist/PlaylistsPage-CQ3G3kWz.mjs.map +1 -0
- package/dist/PlaylistsPage-DImJmIkL.mjs.map +1 -0
- package/dist/PlaylistsPage-DPDsiGh5.mjs.map +1 -0
- package/dist/PlaylistsPage-dTb2DeOD.mjs.map +1 -0
- package/dist/PodcastFilterList-BNIGxX1P.mjs.map +1 -0
- package/dist/PodcastFilterList-BT0RdGZZ.mjs.map +1 -0
- package/dist/PodcastFilterList-CBWs4fv5.mjs.map +1 -0
- package/dist/PodcastFilterList-CQfMOODn.mjs.map +1 -0
- package/dist/PodcastFilterList-DR2-SQEy.mjs.map +1 -0
- package/dist/PodcastFilterList-Dl0aHVq0.mjs.map +1 -0
- package/dist/PodcastFilterList-Dp00QEzb.mjs.map +1 -0
- package/dist/PodcastFilterList-WhVuAT9m.mjs.map +1 -0
- package/dist/PodcastFilterList-b50X-KG5.mjs.map +1 -0
- package/dist/PodcastFilterList-gOQb-JT-.mjs +254 -0
- package/dist/PodcastFilterList-gOQb-JT-.mjs.map +1 -0
- package/dist/PodcastFilterList-k__beBra.mjs.map +1 -0
- package/dist/PodcastImage-3rt4Du7n.mjs.map +1 -0
- package/dist/PodcastImage-B6tLtLst.mjs.map +1 -0
- package/dist/PodcastImage-BNI3Vww3.mjs.map +1 -0
- package/dist/PodcastImage-CE22bv7L.mjs.map +1 -0
- package/dist/PodcastImage-CEBOyzBz.mjs.map +1 -0
- package/dist/PodcastImage-CznWyL4p.mjs.map +1 -0
- package/dist/PodcastImage-DdDPqcxA.mjs.map +1 -0
- package/dist/PodcastImage-Dg912wL7.mjs.map +1 -0
- package/dist/PodcastImage-DticDvGz.mjs +174 -0
- package/dist/PodcastImage-DticDvGz.mjs.map +1 -0
- package/dist/PodcastImage-PGYxErxr.mjs.map +1 -0
- package/dist/PodcastInlineList-BL3HG-jw.mjs.map +1 -0
- package/dist/PodcastInlineList-BjZOw0wI.mjs.map +1 -0
- package/dist/PodcastInlineList-C3vrMZAk.mjs.map +1 -0
- package/dist/PodcastInlineList-CTD_tFe2.mjs +138 -0
- package/dist/PodcastInlineList-CTD_tFe2.mjs.map +1 -0
- package/dist/PodcastInlineList-ChJ8ddi5.mjs.map +1 -0
- package/dist/PodcastInlineList-Cmu2cTOP.mjs.map +1 -0
- package/dist/PodcastInlineList-D38wBYK7.mjs.map +1 -0
- package/dist/PodcastInlineList-D5Dl0h8V.mjs.map +1 -0
- package/dist/PodcastInlineList-MHNlQLuq.mjs.map +1 -0
- package/dist/PodcastInlineList-tEw2WJmy.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-BfxRCala.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-Btey7iJS.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-C9_KNnaX.mjs +233 -0
- package/dist/PodcastInlineListTemplate-C9_KNnaX.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-CKXco61U.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-CW7XOFr2.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-D4ifVB1D.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-DxGdlfy4.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-a9VjM3GU.mjs.map +1 -0
- package/dist/PodcastIsPlaying-1o91KNzu.mjs +30 -0
- package/dist/PodcastIsPlaying-1o91KNzu.mjs.map +1 -0
- package/dist/PodcastIsPlaying-BIQLnXYe.mjs.map +1 -0
- package/dist/PodcastIsPlaying-C56D5WUb.mjs.map +1 -0
- package/dist/PodcastIsPlaying-CUZDPjY0.mjs.map +1 -0
- package/dist/PodcastIsPlaying-CcUQuYF2.mjs.map +1 -0
- package/dist/PodcastIsPlaying-Dar4_RJh.mjs.map +1 -0
- package/dist/PodcastIsPlaying-DlbPM1vB.mjs.map +1 -0
- package/dist/PodcastIsPlaying-XPmIL3mo.mjs.map +1 -0
- package/dist/PodcastItem-B7tNxSnJ.mjs.map +1 -0
- package/dist/PodcastItem-BLywqk77.mjs.map +1 -0
- package/dist/PodcastItem-BhCkyYQc.mjs.map +1 -0
- package/dist/PodcastItem-BjHbNB4_.mjs.map +1 -0
- package/dist/PodcastItem-Bxe64SHW.mjs.map +1 -0
- package/dist/PodcastItem-CVUC3kcq.mjs +287 -0
- package/dist/PodcastItem-CVUC3kcq.mjs.map +1 -0
- package/dist/PodcastItem-D-4uCT1T.mjs.map +1 -0
- package/dist/PodcastItem-D7cS1290.mjs.map +1 -0
- package/dist/PodcastItem-DRkTXsrb.mjs.map +1 -0
- package/dist/PodcastItem-R0ineZi1.mjs.map +1 -0
- package/dist/PodcastList-B3nkZx5X.mjs.map +1 -0
- package/dist/PodcastList-BPiaze5T.mjs.map +1 -0
- package/dist/PodcastList-BZPaW_8e.mjs.map +1 -0
- package/dist/PodcastList-BbNTOA48.mjs.map +1 -0
- package/dist/PodcastList-BgjMS4hk.mjs.map +1 -0
- package/dist/PodcastList-C3_ZT0bi.mjs.map +1 -0
- package/dist/PodcastList-CHCOgT9V.mjs.map +1 -0
- package/dist/PodcastList-CYST_dBw.mjs.map +1 -0
- package/dist/PodcastList-Cl8RvbI9.mjs +182 -0
- package/dist/PodcastList-Cl8RvbI9.mjs.map +1 -0
- package/dist/PodcastList-CqSK7CYJ.mjs.map +1 -0
- package/dist/PodcastList-CvI49Zla.mjs.map +1 -0
- package/dist/PodcastList-D3nOMQSq.mjs.map +1 -0
- package/dist/PodcastList-DIGFRh1_.mjs.map +1 -0
- package/dist/PodcastList-DdCswN5K.mjs.map +1 -0
- package/dist/PodcastList-Dr9xduuZ.mjs.map +1 -0
- package/dist/PodcastList-DwiKdU4Y.mjs +337 -0
- package/dist/PodcastList-DwiKdU4Y.mjs.map +1 -0
- package/dist/PodcastList-EUhESoCL.mjs.map +1 -0
- package/dist/PodcastList-Hu6r2Woc.mjs.map +1 -0
- package/dist/PodcastList-VjjRlCFP.mjs.map +1 -0
- package/dist/PodcastList-eqLNawaj.mjs.map +1 -0
- package/dist/PodcastList-vxE8PY8Y.mjs.map +1 -0
- package/dist/PodcastPage-2dDuJAeH.mjs.map +1 -0
- package/dist/PodcastPage-3RMuEQQb.mjs.map +1 -0
- package/dist/PodcastPage-BDWMnOpw.mjs.map +1 -0
- package/dist/PodcastPage-BQekxmbS.mjs.map +1 -0
- package/dist/PodcastPage-Ba8l7-aZ.mjs.map +1 -0
- package/dist/PodcastPage-BdI4XBWz.mjs.map +1 -0
- package/dist/PodcastPage-BmKOwWWI.mjs.map +1 -0
- package/dist/PodcastPage-Bs_N7lK9.mjs.map +1 -0
- package/dist/PodcastPage-BzLU5_P6.mjs +756 -0
- package/dist/PodcastPage-BzLU5_P6.mjs.map +1 -0
- package/dist/PodcastPage-C-vR6j8f.mjs.map +1 -0
- package/dist/PodcastPage-CVVpch4m.mjs.map +1 -0
- package/dist/PodcastPage-CaBpSV8P.mjs.map +1 -0
- package/dist/PodcastPage-CgVC5pkN.mjs.map +1 -0
- package/dist/PodcastPage-Ch9RnMIL.mjs.map +1 -0
- package/dist/PodcastPage-Chnk40S3.mjs.map +1 -0
- package/dist/PodcastPage-CxgDjPmw.mjs.map +1 -0
- package/dist/PodcastPage-D9oTXPQA.mjs.map +1 -0
- package/dist/PodcastPage-DArPlovn.mjs.map +1 -0
- package/dist/PodcastPage-DKkGchaE.mjs.map +1 -0
- package/dist/PodcastPage-D_JZDZKR.mjs.map +1 -0
- package/dist/PodcastPage-D_q-yXwq.mjs.map +1 -0
- package/dist/PodcastPage-Dp3jFm5s.mjs.map +1 -0
- package/dist/PodcastPage-DwsbnaXf.mjs.map +1 -0
- package/dist/PodcastPage-ZtKNDeYE.mjs.map +1 -0
- package/dist/PodcastPage-evNbROa8.mjs.map +1 -0
- package/dist/PodcastPage-i-nAt1zr.mjs.map +1 -0
- package/dist/PodcastPage-qoJOnX0L.mjs.map +1 -0
- package/dist/PodcastPlayBar-B1gj_epU.mjs.map +1 -0
- package/dist/PodcastPlayBar-BCxbApQ5.mjs.map +1 -0
- package/dist/PodcastPlayBar-CcpnX-tu.mjs.map +1 -0
- package/dist/PodcastPlayBar-CgN4QvcV.mjs.map +1 -0
- package/dist/PodcastPlayBar-DPEA8kyc.mjs.map +1 -0
- package/dist/PodcastPlayBar-DmF4hHVi.mjs.map +1 -0
- package/dist/PodcastPlayBar-hxLcx9MN.mjs +83 -0
- package/dist/PodcastPlayBar-hxLcx9MN.mjs.map +1 -0
- package/dist/PodcastPlayBar-ts50uiUL.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-0tMLmnJn.mjs +72 -0
- package/dist/PodcastPlayBasicButton-0tMLmnJn.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-CBxGHrsW.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-CMX3TEUr.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-Cfv99_Fm.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-D-2Jnu7W.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-DBNy6QvN.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-DzP7njbX.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-jP7W3Eew.mjs.map +1 -0
- package/dist/PodcastPlayButton-B1ZB8WY8.mjs +236 -0
- package/dist/PodcastPlayButton-B1ZB8WY8.mjs.map +1 -0
- package/dist/PodcastPlayButton-BP4NGIPP.mjs.map +1 -0
- package/dist/PodcastPlayButton-BRl3bOb1.mjs.map +1 -0
- package/dist/PodcastPlayButton-Bxx4WLzB.mjs.map +1 -0
- package/dist/PodcastPlayButton-D4QSivX3.mjs.map +1 -0
- package/dist/PodcastPlayButton-Dq4Sk28P.mjs.map +1 -0
- package/dist/PodcastPlayButton-G0560Ku_.mjs.map +1 -0
- package/dist/PodcastPlayButton-ZEsE86G2.mjs.map +1 -0
- package/dist/PodcastPlayButton-e5wAxIbl.mjs.map +1 -0
- package/dist/PodcastPlayButton-s3FCNszx.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BMxtKmsl.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-Bc59FFVF.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BwHWwEba.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-C0ZXsm08.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-CNifljW-.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-CgCUOZhg.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-CvI8XIs3.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-DD4mRTWL.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-DjvqH3JD.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-SZXCnYSe.mjs +115 -0
- package/dist/PodcastPlaylistInlineList-SZXCnYSe.mjs.map +1 -0
- package/dist/PodcastPresentationList-7I2gJ9sI.mjs.map +1 -0
- package/dist/PodcastPresentationList-B6EQonVG.mjs.map +1 -0
- package/dist/PodcastPresentationList-BNPI4ktk.mjs.map +1 -0
- package/dist/PodcastPresentationList-BU7ViJNL.mjs.map +1 -0
- package/dist/PodcastPresentationList-BYz-tlSL.mjs +200 -0
- package/dist/PodcastPresentationList-BYz-tlSL.mjs.map +1 -0
- package/dist/PodcastPresentationList-Bds0tZH_.mjs.map +1 -0
- package/dist/PodcastPresentationList-CXwTRtdd.mjs.map +1 -0
- package/dist/PodcastPresentationList-DNotAP8F.mjs.map +1 -0
- package/dist/PodcastPresentationList-DQ6VyYOF.mjs.map +1 -0
- package/dist/PodcastPresentationList-Dfr3aC06.mjs.map +1 -0
- package/dist/PodcastProgressBar-BJPSohh3.mjs.map +1 -0
- package/dist/PodcastProgressBar-Bv5JaE8d.mjs.map +1 -0
- package/dist/PodcastProgressBar-C1V8SzsN.mjs.map +1 -0
- package/dist/PodcastProgressBar-C2Q499e-.mjs.map +1 -0
- package/dist/PodcastProgressBar-DS_gFcxN.mjs.map +1 -0
- package/dist/PodcastProgressBar-DT95OgbR.mjs.map +1 -0
- package/dist/PodcastProgressBar-DknFfvhM.mjs.map +1 -0
- package/dist/PodcastProgressBar-DqPW_p3w.mjs +98 -0
- package/dist/PodcastProgressBar-DqPW_p3w.mjs.map +1 -0
- package/dist/PodcastRawTranscript-B3XploAN.mjs.map +1 -0
- package/dist/PodcastRawTranscript-Bn0uehDS.mjs.map +1 -0
- package/dist/PodcastRawTranscript-DHGG6P4H.mjs.map +1 -0
- package/dist/PodcastRawTranscript-DgNTVFR8.mjs.map +1 -0
- package/dist/PodcastRawTranscript-Q9E4SxfK.mjs.map +1 -0
- package/dist/PodcastRawTranscript-TWZD3G5q.mjs.map +1 -0
- package/dist/PodcastRawTranscript-X63ZILM7.mjs.map +1 -0
- package/dist/PodcastRawTranscript-a9_Oy3RK.mjs +184 -0
- package/dist/PodcastRawTranscript-a9_Oy3RK.mjs.map +1 -0
- package/dist/PodcastRubriqueList-BCyW3wEK.mjs.map +1 -0
- package/dist/PodcastRubriqueList-BTbcJXYx.mjs.map +1 -0
- package/dist/PodcastRubriqueList-C95GU8o5.mjs.map +1 -0
- package/dist/PodcastRubriqueList-Ccdnx6On.mjs.map +1 -0
- package/dist/PodcastRubriqueList-DI2csHW1.mjs +83 -0
- package/dist/PodcastRubriqueList-DI2csHW1.mjs.map +1 -0
- package/dist/PodcastRubriqueList-DVkFRxXq.mjs.map +1 -0
- package/dist/PodcastRubriqueList-Dl6QY0i8.mjs.map +1 -0
- package/dist/PodcastRubriqueList-_YhHNC47.mjs.map +1 -0
- package/dist/PodcastSwiperList-BS5c3FoG.mjs.map +1 -0
- package/dist/PodcastSwiperList-BX3Df01j.mjs.map +1 -0
- package/dist/PodcastSwiperList-BrhZmdlc.mjs.map +1 -0
- package/dist/PodcastSwiperList-ByjpnQxI.mjs +219 -0
- package/dist/PodcastSwiperList-ByjpnQxI.mjs.map +1 -0
- package/dist/PodcastSwiperList-Cz46EA8R.mjs.map +1 -0
- package/dist/PodcastSwiperList-DR9LRgSd.mjs.map +1 -0
- package/dist/PodcastSwiperList-DTyt7oEG.mjs.map +1 -0
- package/dist/PodcastSwiperList-Hcu_odVZ.mjs.map +1 -0
- package/dist/PodcastSwiperList-SuxAntDq.mjs.map +1 -0
- package/dist/PodcastSwiperList-lgJ0f6v-.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BA4Li7Kn.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BAegQW6Z.mjs.map +1 -0
- package/dist/PodcastmakerHeader-C4gFjX6v.mjs.map +1 -0
- package/dist/PodcastmakerHeader-CNfRgIK9.mjs.map +1 -0
- package/dist/PodcastmakerHeader-DLivShWW.mjs +58 -0
- package/dist/PodcastmakerHeader-DLivShWW.mjs.map +1 -0
- package/dist/PodcastmakerHeader-DYRMuK-v.mjs.map +1 -0
- package/dist/PodcastmakerHeader-MUM5IU8l.mjs.map +1 -0
- package/dist/PodcastmakerHeader-RXfyAHAn.mjs.map +1 -0
- package/dist/PodcastsPage-B3Bz8Tqk.mjs.map +1 -0
- package/dist/PodcastsPage-BIUMIU5y.mjs.map +1 -0
- package/dist/PodcastsPage-BIk-JeoA.mjs.map +1 -0
- package/dist/PodcastsPage-BZjvnYPf.mjs.map +1 -0
- package/dist/PodcastsPage-BalH_7Xq.mjs.map +1 -0
- package/dist/PodcastsPage-Bk2Ha9lT.mjs.map +1 -0
- package/dist/PodcastsPage-C4FPpWq6.mjs.map +1 -0
- package/dist/PodcastsPage-CZMG21RP.mjs +227 -0
- package/dist/PodcastsPage-CZMG21RP.mjs.map +1 -0
- package/dist/PodcastsPage-ClvhNA-n.mjs.map +1 -0
- package/dist/PodcastsPage-CnSrwx2a.mjs.map +1 -0
- package/dist/PodcastsPage-Cpu5ZFVk.mjs.map +1 -0
- package/dist/PodcastsPage-Cr82uGtg.mjs.map +1 -0
- package/dist/PodcastsPage-DXFl1i4y.mjs.map +1 -0
- package/dist/PodcastsPage-DcM9kL4U.mjs.map +1 -0
- package/dist/PodcastsPage-VA3YxWs-.mjs.map +1 -0
- package/dist/PodcastsPage-bvHqAuLo.mjs.map +1 -0
- package/dist/PodcastsPage-jRvQd8-H.mjs.map +1 -0
- package/dist/PodcastsPage-nijaUW3P.mjs.map +1 -0
- package/dist/PodcastsPage-qCVe5Xxr.mjs.map +1 -0
- package/dist/ProductorSearch-BqTnrQwN.mjs.map +1 -0
- package/dist/ProductorSearch-BrkwY0qW.mjs.map +1 -0
- package/dist/ProductorSearch-Cr79KkYG.mjs +161 -0
- package/dist/ProductorSearch-Cr79KkYG.mjs.map +1 -0
- package/dist/ProductorSearch-D70kZSKq.mjs.map +1 -0
- package/dist/ProductorSearch-DQeG0dsL.mjs.map +1 -0
- package/dist/ProductorSearch-Ybo6vZOo.mjs.map +1 -0
- package/dist/ProductorSearch-g0EL7GLW.mjs.map +1 -0
- package/dist/ProductorSearch-valGKmww.mjs.map +1 -0
- package/dist/ProgressBar-5tVxrk7d.mjs.map +1 -0
- package/dist/ProgressBar-B0xQNpFe.mjs.map +1 -0
- package/dist/ProgressBar-BCwW89su.mjs.map +1 -0
- package/dist/ProgressBar-CTtrIt8Y.mjs.map +1 -0
- package/dist/ProgressBar-D8VdS-u6.mjs.map +1 -0
- package/dist/ProgressBar-DrnLNpyr.mjs +158 -0
- package/dist/ProgressBar-DrnLNpyr.mjs.map +1 -0
- package/dist/ProgressBar-kqIwCrRr.mjs.map +1 -0
- package/dist/ProgressBar-yaX2X7j1.mjs.map +1 -0
- package/dist/QrCode-BABDzMVW.mjs.map +1 -0
- package/dist/QrCode-BbRm6Y4P.mjs.map +1 -0
- package/dist/QrCode-BjIGr_QB.mjs.map +1 -0
- package/dist/QrCode-BqkhBhIb.mjs.map +1 -0
- package/dist/QrCode-CWzLZn66.mjs.map +1 -0
- package/dist/QrCode-D9vjUGQT.mjs.map +1 -0
- package/dist/QrCode-DLNQDbZY.mjs.map +1 -0
- package/dist/QrCode-KyGeDUHb.mjs +177 -0
- package/dist/QrCode-KyGeDUHb.mjs.map +1 -0
- package/dist/QrCodeModal-B30STbET.mjs.map +1 -0
- package/dist/QrCodeModal-BO3ay0jp.mjs.map +1 -0
- package/dist/QrCodeModal-BdVui_h2.mjs.map +1 -0
- package/dist/QrCodeModal-Cp1tz2ux.mjs.map +1 -0
- package/dist/QrCodeModal-DR3qMvAj.mjs.map +1 -0
- package/dist/QrCodeModal-D_LLj88P.mjs.map +1 -0
- package/dist/QrCodeModal-ddgi5Dn-.mjs +64 -0
- package/dist/QrCodeModal-ddgi5Dn-.mjs.map +1 -0
- package/dist/QrCodeModal-hO9aeNia.mjs.map +1 -0
- package/dist/RadioCurrently-BDwQsuQN.mjs.map +1 -0
- package/dist/RadioCurrently-BFcQSGjK.mjs.map +1 -0
- package/dist/RadioCurrently-BTouyjMD.mjs.map +1 -0
- package/dist/RadioCurrently-COTK1cqr.mjs.map +1 -0
- package/dist/RadioCurrently-CYE7UwdY.mjs +112 -0
- package/dist/RadioCurrently-CYE7UwdY.mjs.map +1 -0
- package/dist/RadioCurrently-CpV5ZWBc.mjs.map +1 -0
- package/dist/RadioCurrently-DAZsZquE.mjs.map +1 -0
- package/dist/RadioCurrently-DBIDvpng.mjs.map +1 -0
- package/dist/RadioHistory-BmwiBDV4.mjs.map +1 -0
- package/dist/RadioHistory-C0O4_OsT.mjs.map +1 -0
- package/dist/RadioHistory-CKXFrZUS.mjs.map +1 -0
- package/dist/RadioHistory-CvFPMFbB.mjs.map +1 -0
- package/dist/RadioHistory-CzqQvmuY.mjs +139 -0
- package/dist/RadioHistory-CzqQvmuY.mjs.map +1 -0
- package/dist/RadioHistory-G_5_a-Xl.mjs.map +1 -0
- package/dist/RadioHistory-otNcHfao.mjs.map +1 -0
- package/dist/RadioHistory-wy9WCEk7.mjs.map +1 -0
- package/dist/RadioImage-B4vDVjGl.mjs.map +1 -0
- package/dist/RadioImage-CFNJKVmd.mjs +85 -0
- package/dist/RadioImage-CFNJKVmd.mjs.map +1 -0
- package/dist/RadioImage-CJD_1cPD.mjs.map +1 -0
- package/dist/RadioImage-CWpKxhp0.mjs.map +1 -0
- package/dist/RadioImage-D4wKkO8D.mjs.map +1 -0
- package/dist/RadioImage-DDpMbKJH.mjs.map +1 -0
- package/dist/RadioImage-Da9DH6AB.mjs.map +1 -0
- package/dist/RadioImage-yeXUrgI-.mjs.map +1 -0
- package/dist/RadioList-1z7A9-aH.mjs.map +1 -0
- package/dist/RadioList-BJzYpUIO.mjs.map +1 -0
- package/dist/RadioList-Bp3ghPVU.mjs.map +1 -0
- package/dist/RadioList-CABDJH_f.mjs +125 -0
- package/dist/RadioList-CABDJH_f.mjs.map +1 -0
- package/dist/RadioList-CvcGv1uh.mjs.map +1 -0
- package/dist/RadioList-CzNjPv84.mjs.map +1 -0
- package/dist/RadioList-DpQ5-u0P.mjs.map +1 -0
- package/dist/RadioList-WLBLb0YI.mjs.map +1 -0
- package/dist/RadioPage-274yP6hc.mjs.map +1 -0
- package/dist/RadioPage-BN2k0-YJ.mjs.map +1 -0
- package/dist/RadioPage-Bos6wYdE.mjs.map +1 -0
- package/dist/RadioPage-C0tjXJU4.mjs +137 -0
- package/dist/RadioPage-C0tjXJU4.mjs.map +1 -0
- package/dist/RadioPage-C_cF5sLf.mjs.map +1 -0
- package/dist/RadioPage-CgjOotgE.mjs.map +1 -0
- package/dist/RadioPage-CpOnONRu.mjs.map +1 -0
- package/dist/RadioPage-DqcfLNtb.mjs.map +1 -0
- package/dist/RadioPlanning-BpxOrpmV.mjs.map +1 -0
- package/dist/RadioPlanning-CJoFgQ8-.mjs.map +1 -0
- package/dist/RadioPlanning-CLaptMbp.mjs +290 -0
- package/dist/RadioPlanning-CLaptMbp.mjs.map +1 -0
- package/dist/RadioPlanning-Cb6CDxY7.mjs.map +1 -0
- package/dist/RadioPlanning-CdqYim8D.mjs.map +1 -0
- package/dist/RadioPlanning-Cj3YRRQH.mjs.map +1 -0
- package/dist/RadioPlanning-FBTDOSbe.mjs.map +1 -0
- package/dist/RadioPlanning-geMIOa5T.mjs.map +1 -0
- package/dist/RadioProgressBar-BCFytqQh.mjs.map +1 -0
- package/dist/RadioProgressBar-CIR3yuw_.mjs.map +1 -0
- package/dist/RadioProgressBar-CYPzhKXe.mjs.map +1 -0
- package/dist/RadioProgressBar-Cju0BWUv.mjs.map +1 -0
- package/dist/RadioProgressBar-DLovskzg.mjs.map +1 -0
- package/dist/RadioProgressBar-DZn1mktI.mjs +67 -0
- package/dist/RadioProgressBar-DZn1mktI.mjs.map +1 -0
- package/dist/RadioProgressBar-_tJ-CtG3.mjs.map +1 -0
- package/dist/RadioProgressBar-i5xByEQ-.mjs.map +1 -0
- package/dist/RecaptchaModal-BKuZ3qbr.mjs.map +1 -0
- package/dist/RecaptchaModal-BioW6OiC.mjs.map +1 -0
- package/dist/RecaptchaModal-BrpWu9K9.mjs +148 -0
- package/dist/RecaptchaModal-BrpWu9K9.mjs.map +1 -0
- package/dist/RecaptchaModal-CO1ksS7T.mjs.map +1 -0
- package/dist/RecaptchaModal-CQ3uCmJD.mjs.map +1 -0
- package/dist/RecaptchaModal-ChMI1DoR.mjs.map +1 -0
- package/dist/RecaptchaModal-Ci9nJ3yG.mjs.map +1 -0
- package/dist/RecaptchaModal-D4Vjj7y0.mjs.map +1 -0
- package/dist/ReportAbuseModal-BgwHjFg6.mjs.map +1 -0
- package/dist/ReportAbuseModal-COgkZmXt.mjs.map +1 -0
- package/dist/ReportAbuseModal-CRz91e0n.mjs.map +1 -0
- package/dist/ReportAbuseModal-ClwG80lC.mjs.map +1 -0
- package/dist/ReportAbuseModal-Cnl6Tvy8.mjs.map +1 -0
- package/dist/ReportAbuseModal-CqEVzw2M.mjs +134 -0
- package/dist/ReportAbuseModal-CqEVzw2M.mjs.map +1 -0
- package/dist/ReportAbuseModal-DKXVmm0o.mjs.map +1 -0
- package/dist/ReportAbuseModal-DewdNNiS.mjs.map +1 -0
- package/dist/RightsIndicator-8ke3GBY3.mjs.map +1 -0
- package/dist/RightsIndicator-AgrCCLI5.mjs.map +1 -0
- package/dist/RightsIndicator-BWb-HYqg.mjs.map +1 -0
- package/dist/RightsIndicator-Bq9-wJu7.mjs.map +1 -0
- package/dist/RightsIndicator-CVPQPbom.mjs.map +1 -0
- package/dist/RightsIndicator-CaR0p4ee.mjs +124 -0
- package/dist/RightsIndicator-CaR0p4ee.mjs.map +1 -0
- package/dist/RightsIndicator-Cyf2ER3f.mjs.map +1 -0
- package/dist/RightsIndicator-DEO8E_lt.mjs.map +1 -0
- package/dist/RightsIndicator-DOW0C2QN.mjs.map +1 -0
- package/dist/RightsIndicator-JiOk8W09.mjs.map +1 -0
- package/dist/RightsWrapper-4P5_44Zn.mjs.map +1 -0
- package/dist/RightsWrapper-B2MlGwl3.mjs.map +1 -0
- package/dist/RightsWrapper-BsBytnz4.mjs.map +1 -0
- package/dist/RightsWrapper-C7TGgPwH.mjs +212 -0
- package/dist/RightsWrapper-C7TGgPwH.mjs.map +1 -0
- package/dist/RightsWrapper-COCKm6yj.mjs.map +1 -0
- package/dist/RightsWrapper-CUxXGo2e.mjs.map +1 -0
- package/dist/RightsWrapper-CzKluSmc.mjs.map +1 -0
- package/dist/RightsWrapper-tKyPXHo-.mjs.map +1 -0
- package/dist/RubriqueFilter-B2Mmc1m_.mjs.map +1 -0
- package/dist/RubriqueFilter-B31kE1MN.mjs.map +1 -0
- package/dist/RubriqueFilter-BKhIFAjq.mjs +199 -0
- package/dist/RubriqueFilter-BKhIFAjq.mjs.map +1 -0
- package/dist/RubriqueFilter-BlPRTBZ9.mjs.map +1 -0
- package/dist/RubriqueFilter-Bw1CGja3.mjs.map +1 -0
- package/dist/RubriqueFilter-DN8fTOdd.mjs.map +1 -0
- package/dist/RubriqueFilter-DTZiHQNp.mjs.map +1 -0
- package/dist/RubriqueFilter-DYIUSPbb.mjs.map +1 -0
- package/dist/RubriqueList-B3yhWa4r.mjs.map +1 -0
- package/dist/RubriqueList-BcImnPxf.mjs.map +1 -0
- package/dist/RubriqueList-BoUBJnsM.mjs.map +1 -0
- package/dist/RubriqueList-CBcZOXmS.mjs.map +1 -0
- package/dist/RubriqueList-CQ35roJ9.mjs.map +1 -0
- package/dist/RubriqueList-D1HZo4h4.mjs.map +1 -0
- package/dist/RubriqueList-DJT7Jhvm.mjs.map +1 -0
- package/dist/RubriqueList-NVIfUrtO.mjs +206 -0
- package/dist/RubriqueList-NVIfUrtO.mjs.map +1 -0
- package/dist/RubriquePage-5yGiOukN.mjs.map +1 -0
- package/dist/RubriquePage-BAlehSIS.mjs +108 -0
- package/dist/RubriquePage-BAlehSIS.mjs.map +1 -0
- package/dist/RubriquePage-BNv6lKml.mjs.map +1 -0
- package/dist/RubriquePage-BUmG2wuU.mjs.map +1 -0
- package/dist/RubriquePage-Bf-8HP4Z.mjs.map +1 -0
- package/dist/RubriquePage-Biz4lmwe.mjs.map +1 -0
- package/dist/RubriquePage-C8mZVs_j.mjs.map +1 -0
- package/dist/RubriquePage-CC6UO9Xo.mjs.map +1 -0
- package/dist/RubriquePage-DEmTE5de.mjs.map +1 -0
- package/dist/RubriquePage-Y6qI3PgB.mjs.map +1 -0
- package/dist/RubriquePage-iYQBx70y.mjs.map +1 -0
- package/dist/RubriquePage-zyp_khGg.mjs.map +1 -0
- package/dist/SearchPage-B10P7WGB.mjs +77 -0
- package/dist/SearchPage-B10P7WGB.mjs.map +1 -0
- package/dist/SearchPage-BC1moAjg.mjs.map +1 -0
- package/dist/SearchPage-BZzbnyke.mjs.map +1 -0
- package/dist/SearchPage-BeaSjc-B.mjs.map +1 -0
- package/dist/SearchPage-CByOHDuF.mjs.map +1 -0
- package/dist/SearchPage-DFlPCYK2.mjs.map +1 -0
- package/dist/SearchPage-DHIC3aR2.mjs.map +1 -0
- package/dist/SearchPage-V6v_94HO.mjs.map +1 -0
- package/dist/SearchPage-bw1krInj.mjs.map +1 -0
- package/dist/SearchPage-guLaAWTY.mjs.map +1 -0
- package/dist/SearchPage-wHxIUBu9.mjs.map +1 -0
- package/dist/ShareAnonymous-Be_3QN-J.mjs.map +1 -0
- package/dist/ShareAnonymous-BzgYARps.mjs.map +1 -0
- package/dist/ShareAnonymous-CbH-OUhV.mjs.map +1 -0
- package/dist/ShareAnonymous-DLvzh3bC.mjs.map +1 -0
- package/dist/ShareAnonymous-DYLoT4gJ.mjs.map +1 -0
- package/dist/ShareAnonymous-DjuoOwnz.mjs +321 -0
- package/dist/ShareAnonymous-DjuoOwnz.mjs.map +1 -0
- package/dist/ShareAnonymous-DnL1Cpgf.mjs.map +1 -0
- package/dist/ShareAnonymous-J-PCflFR.mjs.map +1 -0
- package/dist/ShareModalPlayer-BiqEpd9K.mjs.map +1 -0
- package/dist/ShareModalPlayer-CTI3FHwP.mjs.map +1 -0
- package/dist/ShareModalPlayer-CfkTBXcZ.mjs.map +1 -0
- package/dist/ShareModalPlayer-CfzoCZMF.mjs.map +1 -0
- package/dist/ShareModalPlayer-DVncOMoY.mjs.map +1 -0
- package/dist/ShareModalPlayer-De600dAo.mjs.map +1 -0
- package/dist/ShareModalPlayer-K2dfwTgr.mjs.map +1 -0
- package/dist/ShareModalPlayer-iNhuzH6E.mjs +135 -0
- package/dist/ShareModalPlayer-iNhuzH6E.mjs.map +1 -0
- package/dist/ShareNewsletter-BRJ_CnPP.mjs.map +1 -0
- package/dist/ShareNewsletter-BYS_t435.mjs.map +1 -0
- package/dist/ShareNewsletter-BoTYibXG.mjs +211 -0
- package/dist/ShareNewsletter-BoTYibXG.mjs.map +1 -0
- package/dist/ShareNewsletter-D5PUaOO2.mjs.map +1 -0
- package/dist/ShareNewsletter-DVNHTKeM.mjs.map +1 -0
- package/dist/ShareNewsletter-DXLj05xD.mjs.map +1 -0
- package/dist/ShareNewsletter-nYJ02EoC.mjs.map +1 -0
- package/dist/ShareNewsletter-xyNkG-Eb.mjs.map +1 -0
- package/dist/SharePlayer-BBp8Nx8-.mjs.map +1 -0
- package/dist/SharePlayer-BRAOpDKS.mjs.map +1 -0
- package/dist/SharePlayer-BkJ1Pd4K.mjs.map +1 -0
- package/dist/SharePlayer-CpCp4Ww6.mjs.map +1 -0
- package/dist/SharePlayer-D12X58FW.mjs.map +1 -0
- package/dist/SharePlayer-D14yktq2.mjs.map +1 -0
- package/dist/SharePlayer-ITriSrMH.mjs +378 -0
- package/dist/SharePlayer-ITriSrMH.mjs.map +1 -0
- package/dist/SharePlayer-OLpuLZ3x.mjs.map +1 -0
- package/dist/SharePlayerRadio-3be6M1rf.mjs +127 -0
- package/dist/SharePlayerRadio-3be6M1rf.mjs.map +1 -0
- package/dist/SharePlayerRadio-B5csXZHh.mjs.map +1 -0
- package/dist/SharePlayerRadio-BBgUkZJZ.mjs.map +1 -0
- package/dist/SharePlayerRadio-BVxTgEry.mjs.map +1 -0
- package/dist/SharePlayerRadio-DGlbi34G.mjs.map +1 -0
- package/dist/SharePlayerRadio-D_Q6seua.mjs.map +1 -0
- package/dist/SharePlayerRadio-HjAP-F05.mjs.map +1 -0
- package/dist/SharePlayerRadio-kpYanrSh.mjs.map +1 -0
- package/dist/SharePlayerTypes-Bv396CtZ.mjs.map +1 -0
- package/dist/SharePlayerTypes-C8AP5NRT.mjs.map +1 -0
- package/dist/SharePlayerTypes-CW3OGhRV.mjs.map +1 -0
- package/dist/SharePlayerTypes-D0TyOBAl.mjs.map +1 -0
- package/dist/SharePlayerTypes-D3Uf2kAl.mjs.map +1 -0
- package/dist/SharePlayerTypes-DzgN0pmg.mjs.map +1 -0
- package/dist/SharePlayerTypes-TbHoUtLq.mjs +232 -0
- package/dist/SharePlayerTypes-TbHoUtLq.mjs.map +1 -0
- package/dist/SharePlayerTypes-TjPFVlpg.mjs.map +1 -0
- package/dist/ShareSocialsButtons-BX_kCrh9.mjs.map +1 -0
- package/dist/ShareSocialsButtons-D93C1SNn.mjs.map +1 -0
- package/dist/ShareSocialsButtons-D9olMoYw.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DMb-XPVy.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DSJodUeF.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DpL7wz2Q.mjs.map +1 -0
- package/dist/ShareSocialsButtons-HUGfUozM.mjs.map +1 -0
- package/dist/ShareSocialsButtons-nbnbNYrr.mjs +159 -0
- package/dist/ShareSocialsButtons-nbnbNYrr.mjs.map +1 -0
- package/dist/SimpleLayout-2agje2NP.mjs +41 -0
- package/dist/SimpleLayout-2agje2NP.mjs.map +1 -0
- package/dist/SimpleLayout-BCbramPg.mjs.map +1 -0
- package/dist/SimpleLayout-D8o2yJwB.mjs.map +1 -0
- package/dist/SimpleLayout-D8xymMDG.mjs.map +1 -0
- package/dist/SimpleLayout-DZtaADQv.mjs.map +1 -0
- package/dist/SimpleLayout-DZy2Ephk.mjs.map +1 -0
- package/dist/SimpleLayout-DfM_kXS9.mjs.map +1 -0
- package/dist/SimpleLayout-K46zNKJ3.mjs.map +1 -0
- package/dist/SmartLinkPage-6yVwo41a.mjs.map +1 -0
- package/dist/SmartLinkPage-B3oxc6A4.mjs.map +1 -0
- package/dist/SmartLinkPage-BC6Wos_I.mjs.map +1 -0
- package/dist/SmartLinkPage-Bf0nWA38.mjs +238 -0
- package/dist/SmartLinkPage-Bf0nWA38.mjs.map +1 -0
- package/dist/SmartLinkPage-C2iTEBxg.mjs.map +1 -0
- package/dist/SmartLinkPage-CRU-ro5M.mjs.map +1 -0
- package/dist/SmartLinkPage-CUSZPYPK.mjs.map +1 -0
- package/dist/SmartLinkPage-CV9Gx4MZ.mjs.map +1 -0
- package/dist/SubscribeButtons-B7ppg_Sy.mjs.map +1 -0
- package/dist/SubscribeButtons-BiYqm52t.mjs.map +1 -0
- package/dist/SubscribeButtons-BnL1HQJj.mjs.map +1 -0
- package/dist/SubscribeButtons-CSvoc2J7.mjs +203 -0
- package/dist/SubscribeButtons-CSvoc2J7.mjs.map +1 -0
- package/dist/SubscribeButtons-ChJKNJqT.mjs.map +1 -0
- package/dist/SubscribeButtons-D2QxU-Hz.mjs.map +1 -0
- package/dist/SubscribeButtons-DJj_jStJ.mjs.map +1 -0
- package/dist/SubscribeButtons-YXH0jr-u.mjs.map +1 -0
- package/dist/SwiperList-B5iYhj9n.mjs.map +1 -0
- package/dist/SwiperList-CTQ7Jt8y.mjs +207 -0
- package/dist/SwiperList-CTQ7Jt8y.mjs.map +1 -0
- package/dist/SwiperList-D8SO3Jhr.mjs.map +1 -0
- package/dist/SwiperList-D9irPcis.mjs.map +1 -0
- package/dist/SwiperList-DoOIgAp8.mjs.map +1 -0
- package/dist/SwiperList-DozCqnS-.mjs.map +1 -0
- package/dist/SwiperList-e2b8uKKS.mjs.map +1 -0
- package/dist/SwiperList-oOWaXHrC.mjs.map +1 -0
- package/dist/TagList-B7S-QXor.mjs.map +1 -0
- package/dist/TagList-C1yqUuH4.mjs.map +1 -0
- package/dist/TagList-C4X0npf5.mjs.map +1 -0
- package/dist/TagList-CKqTDMGE.mjs.map +1 -0
- package/dist/TagList-CYZO6nJO.mjs.map +1 -0
- package/dist/TagList-DhUwbOtN.mjs.map +1 -0
- package/dist/TagList-EwyNbw72.mjs +134 -0
- package/dist/TagList-EwyNbw72.mjs.map +1 -0
- package/dist/TagList-yzetMdZw.mjs.map +1 -0
- package/dist/TagPage-4o8Pl0Qr.mjs.map +1 -0
- package/dist/TagPage-B_qM5eJI.mjs.map +1 -0
- package/dist/TagPage-BuXAtttP.mjs.map +1 -0
- package/dist/TagPage-Cf0nrWee.mjs.map +1 -0
- package/dist/TagPage-CkecFj3d.mjs +125 -0
- package/dist/TagPage-CkecFj3d.mjs.map +1 -0
- package/dist/TagPage-D02e7yAK.mjs.map +1 -0
- package/dist/TagPage-DThhKzLf.mjs.map +1 -0
- package/dist/TagPage-DVfKFiFB.mjs.map +1 -0
- package/dist/TagPage-DbQ5ECdy.mjs.map +1 -0
- package/dist/TagPage-DiS0Ac5-.mjs.map +1 -0
- package/dist/TagPage-DqlSRAe7.mjs.map +1 -0
- package/dist/TagPage-O77D8BO6.mjs.map +1 -0
- package/dist/TopBar-B5hL24uV.mjs.map +1 -0
- package/dist/TopBar-BEqykP88.mjs.map +1 -0
- package/dist/TopBar-BIrteYP5.mjs.map +1 -0
- package/dist/TopBar-BMtZjPfE.mjs.map +1 -0
- package/dist/TopBar-C4_r5G9G.mjs.map +1 -0
- package/dist/TopBar-CAtSy_fP.mjs.map +1 -0
- package/dist/TopBar-CVz3PW30.mjs.map +1 -0
- package/dist/TopBar-CsxgY0Pa.mjs.map +1 -0
- package/dist/TopBar-DnOonBa9.mjs.map +1 -0
- package/dist/TopBar-N9gAoWc2.mjs +760 -0
- package/dist/TopBar-N9gAoWc2.mjs.map +1 -0
- package/dist/TopBar-TSbSO80C.mjs.map +1 -0
- package/dist/TopBar-dBIKNV4n.mjs.map +1 -0
- package/dist/UserButtonContent-BJ9NQBQt.mjs.map +1 -0
- package/dist/UserButtonContent-C1Z62rxI.mjs.map +1 -0
- package/dist/UserButtonContent-CA-t3hC_.mjs.map +1 -0
- package/dist/UserButtonContent-CInki_2X.mjs +185 -0
- package/dist/UserButtonContent-CInki_2X.mjs.map +1 -0
- package/dist/UserButtonContent-CORUo7UY.mjs.map +1 -0
- package/dist/UserButtonContent-Qb0SDN0h.mjs.map +1 -0
- package/dist/UserButtonContent-W2n-NsWg.mjs.map +1 -0
- package/dist/UserButtonContent-c7YRiGp2.mjs.map +1 -0
- package/dist/VideoModuleBox--kALH8J6.mjs.map +1 -0
- package/dist/VideoModuleBox-BCXduPcv.mjs.map +1 -0
- package/dist/VideoModuleBox-BMvUHgHs.mjs.map +1 -0
- package/dist/VideoModuleBox-BQFnWOE9.mjs.map +1 -0
- package/dist/VideoModuleBox-CAKcfyk0.mjs +85 -0
- package/dist/VideoModuleBox-CAKcfyk0.mjs.map +1 -0
- package/dist/VideoModuleBox-CHyezeSh.mjs.map +1 -0
- package/dist/VideoModuleBox-Dxo7v9cw.mjs.map +1 -0
- package/dist/VideoModuleBox-fepbn_Bw.mjs.map +1 -0
- package/dist/VideoPage--jVboh2e.mjs.map +1 -0
- package/dist/VideoPage-3OW3SyQI.mjs.map +1 -0
- package/dist/VideoPage-B6gP9AJ_.mjs.map +1 -0
- package/dist/VideoPage-B94V1DAX.mjs.map +1 -0
- package/dist/VideoPage-BRSAQnkl.mjs +274 -0
- package/dist/VideoPage-BRSAQnkl.mjs.map +1 -0
- package/dist/VideoPage-CaP2fTTp.mjs.map +1 -0
- package/dist/VideoPage-DKEG0fFH.mjs.map +1 -0
- package/dist/VideoPage-DKuK-muU.mjs.map +1 -0
- package/dist/VideoPage-DXMUgZcF.mjs.map +1 -0
- package/dist/VideoPage-DaXRG9L9.mjs.map +1 -0
- package/dist/classicApi-1jdxJdNn.mjs +1899 -0
- package/dist/classicApi-1jdxJdNn.mjs.map +1 -0
- package/dist/classicApi-BGITtHY6.mjs.map +1 -0
- package/dist/classicApi-Bb7QgY_-.mjs.map +1 -0
- package/dist/classicApi-CM1SG1hB.mjs.map +1 -0
- package/dist/classicApi-CT-zOpO4.mjs.map +1 -0
- package/dist/classicApi-DazNRZ5Q.mjs.map +1 -0
- package/dist/classicApi-DhYbooR3.mjs.map +1 -0
- package/dist/classicApi-DnmetKhT.mjs.map +1 -0
- package/dist/downloadHelper-B-fqJ-zf.mjs.map +1 -0
- package/dist/downloadHelper-B6m5pBKm.mjs.map +1 -0
- package/dist/downloadHelper-B8D7SOOM.mjs.map +1 -0
- package/dist/downloadHelper-CU_Wxd5U.mjs.map +1 -0
- package/dist/downloadHelper-C_zKrGUc.mjs.map +1 -0
- package/dist/downloadHelper-Dr10br-6.mjs.map +1 -0
- package/dist/downloadHelper-LQW1LToj.mjs +36 -0
- package/dist/downloadHelper-LQW1LToj.mjs.map +1 -0
- package/dist/downloadHelper-y_M7FzoH.mjs.map +1 -0
- package/dist/index.mjs +111 -100
- package/dist/index.mjs.map +1 -1
- package/dist/messages-BGiv9Gsb.mjs.map +1 -0
- package/dist/messages-BRLdnntg.mjs.map +1 -0
- package/dist/messages-BlwH5qG0.mjs.map +1 -0
- package/dist/messages-BqVF4jGm.mjs +2763 -0
- package/dist/messages-BqVF4jGm.mjs.map +1 -0
- package/dist/messages-Bw2bPt8M.mjs.map +1 -0
- package/dist/messages-BzSMoDq6.mjs.map +1 -0
- package/dist/messages-Daql_N4V.mjs.map +1 -0
- package/dist/tests.mjs +2 -2
- package/dist/types-8roXR0of.mjs.map +1 -1
- package/dist/types-DmxFXVJz.mjs +12 -0
- package/dist/types-DmxFXVJz.mjs.map +1 -0
- package/dist/useAdvancedParamInit-BFDxm4Zv.mjs.map +1 -0
- package/dist/useAdvancedParamInit-C9i1OLKX.mjs.map +1 -0
- package/dist/useAdvancedParamInit-COJzBPcY.mjs +168 -0
- package/dist/useAdvancedParamInit-COJzBPcY.mjs.map +1 -0
- package/dist/useAdvancedParamInit-CVy6xAhR.mjs.map +1 -0
- package/dist/useAdvancedParamInit-CXubNin6.mjs.map +1 -0
- package/dist/useAdvancedParamInit-CdHU32HT.mjs.map +1 -0
- package/dist/useAdvancedParamInit-CfpyEfbz.mjs.map +1 -0
- package/dist/useAdvancedParamInit-D4gIuSKD.mjs.map +1 -0
- package/dist/useAdvancedParamInit-DV346TAD.mjs.map +1 -0
- package/dist/useAdvancedParamInit-DbfEsrzA.mjs.map +1 -0
- package/dist/useAdvancedParamInit-DcMypQh9.mjs.map +1 -0
- package/dist/useAdvancedParamInit-X9_sZFbf.mjs.map +1 -0
- package/dist/useAppleVideo-BGOd4QiN.mjs +30 -0
- package/dist/useAppleVideo-BGOd4QiN.mjs.map +1 -0
- package/dist/useAppleVideo-CpIdHjzn.mjs.map +1 -0
- package/dist/useDayjs-BODPt2H7.mjs.map +1 -0
- package/dist/useDayjs-BwARZ4CJ.mjs.map +1 -0
- package/dist/useDayjs-Cl4mV4Zl.mjs.map +1 -0
- package/dist/useDayjs-Cpj0Yeao.mjs.map +1 -0
- package/dist/useDayjs-CqMtrxXh.mjs.map +1 -0
- package/dist/useDayjs-DHkflClU.mjs.map +1 -0
- package/dist/useDayjs-DPNxdkJX.mjs +32 -0
- package/dist/useDayjs-DPNxdkJX.mjs.map +1 -0
- package/dist/useDayjs-wjXHxuIo.mjs.map +1 -0
- package/dist/useErrorHandler-BRfB3Nma.mjs +19 -0
- package/dist/useErrorHandler-BRfB3Nma.mjs.map +1 -0
- package/dist/useErrorHandler-CxSuHQ_9.mjs.map +1 -0
- package/dist/useErrorHandler-DU-7-mwV.mjs.map +1 -0
- package/dist/useErrorHandler-DpjCmJBr.mjs.map +1 -0
- package/dist/useErrorHandler-NCoJhMs_.mjs.map +1 -0
- package/dist/useErrorHandler-juiZ5M15.mjs.map +1 -0
- package/dist/useErrorHandler-mgzIIgcg.mjs.map +1 -0
- package/dist/useErrorHandler-sRvbreJI.mjs.map +1 -0
- package/dist/useImageProxy-B8Fo5ez4.mjs.map +1 -0
- package/dist/useImageProxy-C6MR_3fy.mjs.map +1 -0
- package/dist/useImageProxy-CYWAbN4O.mjs.map +1 -0
- package/dist/useImageProxy-Ce8Rqjw3.mjs +20 -0
- package/dist/useImageProxy-Ce8Rqjw3.mjs.map +1 -0
- package/dist/useImageProxy-D35x2zuV.mjs.map +1 -0
- package/dist/useImageProxy-DHvBSxPl.mjs.map +1 -0
- package/dist/useImageProxy-DXJ_9Ajv.mjs.map +1 -0
- package/dist/useImageProxy-Dwmn4CPK.mjs.map +1 -0
- package/dist/useOrgaComputed-BNyuoiqr.mjs.map +1 -0
- package/dist/useOrgaComputed-CqtlhFcz.mjs.map +1 -0
- package/dist/useOrgaComputed-Cu1TPM6V.mjs.map +1 -0
- package/dist/useOrgaComputed-CzlYvP0I.mjs.map +1 -0
- package/dist/useOrgaComputed-DF-_-Jrl.mjs.map +1 -0
- package/dist/useOrgaComputed-DXB4jqMM.mjs +19 -0
- package/dist/useOrgaComputed-DXB4jqMM.mjs.map +1 -0
- package/dist/useOrgaComputed-DqALV5bw.mjs.map +1 -0
- package/dist/useOrgaComputed-y75FS78u.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-BsOt5dL-.mjs +108 -0
- package/dist/usePlayerLogicProgress-BsOt5dL-.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-Cq8T3M3-.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-D5ltA6Fq.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-DY9nXTmQ.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-HyplkwZi.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-onVpP8yQ.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-qPJXeMjl.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-xabvx5Dj.mjs.map +1 -0
- package/dist/usePodcastView-73KBTBhj.mjs.map +1 -0
- package/dist/usePodcastView-BGL-TWPy.mjs.map +1 -0
- package/dist/usePodcastView-Bx-DxLIg.mjs.map +1 -0
- package/dist/usePodcastView-C3EgP7ic.mjs.map +1 -0
- package/dist/usePodcastView-CAIh0pHz.mjs.map +1 -0
- package/dist/usePodcastView-DFnXBBfU.mjs.map +1 -0
- package/dist/usePodcastView-DUG7H7_G.mjs +56 -0
- package/dist/usePodcastView-DUG7H7_G.mjs.map +1 -0
- package/dist/usePodcastView-DyJpgarZ.mjs.map +1 -0
- package/dist/usePresentationItem-B1B3lv7I.mjs.map +1 -0
- package/dist/usePresentationItem-BVFN9AaL.mjs.map +1 -0
- package/dist/usePresentationItem-CDLqFMo6.mjs.map +1 -0
- package/dist/usePresentationItem-CMkPxjL9.mjs.map +1 -0
- package/dist/usePresentationItem-D51GV-y3.mjs.map +1 -0
- package/dist/usePresentationItem-DPhrqvIO.mjs.map +1 -0
- package/dist/usePresentationItem-Djtlqztv.mjs.map +1 -0
- package/dist/usePresentationItem-vnaThjqU.mjs +190 -0
- package/dist/usePresentationItem-vnaThjqU.mjs.map +1 -0
- package/dist/useRights-BFzc-f5r.mjs.map +1 -0
- package/dist/useRights-Bb6Lduj1.mjs.map +1 -0
- package/dist/useRights-BtQenL-m.mjs.map +1 -0
- package/dist/useRights-CacvXcg_.mjs +276 -0
- package/dist/useRights-CacvXcg_.mjs.map +1 -0
- package/dist/useRights-Cm7U9RVV.mjs.map +1 -0
- package/dist/useRights-G8UGBWNE.mjs.map +1 -0
- package/dist/useRights-ZfPDGUYq.mjs.map +1 -0
- package/dist/useRights-pznf2MQ8.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-7LToVEWh.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-B4fRwCc2.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-B6yAljnV.mjs +13 -0
- package/dist/useRubriquesFilterComputed-B6yAljnV.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-B94E8TMb.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-BUhvHrds.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-C6Cj-JB5.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-CJf96968.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-qsLiWlwD.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BPlVhx7S.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-C6Ur8-pi.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-CIx0fFT-.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-CxWXo4lU.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-DGbdF4f8.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-DiwzHD1p.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-gXKJJk5a.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-vy-84z0z.mjs +36 -0
- package/dist/useRubriquesFilterParam-vy-84z0z.mjs.map +1 -0
- package/dist/useSharePlatforms-B8icj2ci.mjs.map +1 -0
- package/dist/useSharePlatforms-BM2OkqJZ.mjs.map +1 -0
- package/dist/useSharePlatforms-BR8_vXB0.mjs +468 -0
- package/dist/useSharePlatforms-BR8_vXB0.mjs.map +1 -0
- package/dist/useSharePlatforms-CIn_6DZg.mjs.map +1 -0
- package/dist/useSharePlatforms-CLrC0mcY.mjs.map +1 -0
- package/dist/useSharePlatforms-CdY4H5fa.mjs.map +1 -0
- package/dist/useSharePlatforms-D3m8oP4P.mjs.map +1 -0
- package/dist/useSharePlatforms-DLNWOmu1.mjs.map +1 -0
- package/dist/useSimplePageParam-0gi4z_Dh.mjs.map +1 -0
- package/dist/useSimplePageParam-4Tpbf3Aw.mjs.map +1 -0
- package/dist/useSimplePageParam-5gqDFPw2.mjs +54 -0
- package/dist/useSimplePageParam-5gqDFPw2.mjs.map +1 -0
- package/dist/useSimplePageParam-BzTu0hr0.mjs.map +1 -0
- package/dist/useSimplePageParam-ChJeNy7l.mjs.map +1 -0
- package/dist/useSimplePageParam-CnI4TOgF.mjs.map +1 -0
- package/dist/useSimplePageParam-D8JdiVAL.mjs.map +1 -0
- package/dist/useSimplePageParam-DpL3Hy9p.mjs.map +1 -0
- package/dist/useSimplePageParam-lFUxz3bl.mjs.map +1 -0
- package/dist/useTranslation-6jVFDIJS.mjs.map +1 -0
- package/dist/useTranslation-BFbcum1F.mjs.map +1 -0
- package/dist/useTranslation-BasfWDh_.mjs.map +1 -0
- package/dist/useTranslation-BtpS4E-y.mjs +205 -0
- package/dist/useTranslation-BtpS4E-y.mjs.map +1 -0
- package/dist/useTranslation-C_6AuQgJ.mjs.map +1 -0
- package/dist/useTranslation-CuXwk0sO.mjs.map +1 -0
- package/dist/useTranslation-DdpPHciF.mjs.map +1 -0
- package/dist/useTranslation-OKjcLwgA.mjs.map +1 -0
- package/dist/usefetchRadioData-BdkLvXty.mjs.map +1 -0
- package/dist/usefetchRadioData-CJH2-YQo.mjs.map +1 -0
- package/dist/usefetchRadioData-CQ1I7kfe.mjs.map +1 -0
- package/dist/usefetchRadioData-CdnOaM6A.mjs +55 -0
- package/dist/usefetchRadioData-CdnOaM6A.mjs.map +1 -0
- package/dist/usefetchRadioData-DYfkhUsz.mjs.map +1 -0
- package/dist/usefetchRadioData-DyDRwB3R.mjs.map +1 -0
- package/dist/usefetchRadioData-N66E_KQK.mjs.map +1 -0
- package/dist/usefetchRadioData-NZLt1-PL.mjs.map +1 -0
- package/package.json +1 -1
- package/src/components/composable/route/types.ts +8 -2
- package/src/components/composable/route/useAdvancedParamInit.ts +10 -3
- package/src/components/composable/useAppleVideo.ts +24 -0
- package/src/components/display/filter/AdvancedSearch.vue +23 -1
- package/src/components/display/playlist/PodcastList.vue +0 -1
- package/src/components/display/podcasts/PodcastList.vue +6 -5
- package/src/components/display/podcasts/PodcastModuleBox.vue +20 -8
- package/src/components/misc/RightsScopeMenu.vue +6 -2
- package/src/components/pages/PodcastPage.vue +3 -0
- package/src/components/pages/PodcastsPage.vue +4 -1
- package/src/locale/de.json +5 -4
- package/src/locale/en.json +5 -4
- package/src/locale/es.json +5 -4
- package/src/locale/fr.json +4 -3
- package/src/locale/it.json +5 -4
- package/src/locale/sl.json +5 -4
- package/src/router/utils.ts +1 -0
- package/src/stores/AuthStore.ts +2 -0
- package/src/stores/class/adserver/adserverConfig.ts +13 -5
- package/src/stores/class/adserver/index.ts +3 -0
- package/src/stores/class/general/category.ts +1 -0
- package/src/stores/class/general/index.ts +2 -0
- package/dist/AdvancedSearch-BDxs2o7K.mjs +0 -429
- package/dist/CategoryFilter-BtvszT_D.mjs +0 -237
- package/dist/CategoryList-BirNjSgi.mjs +0 -182
- package/dist/CategoryPage-zRFFW7lm.mjs +0 -57
- package/dist/ChapteringModal-DSrRb0wM.mjs +0 -82
- package/dist/CheckIdentityModal-BeoPGlll.mjs +0 -86
- package/dist/ClassicAlert-DUQplMvs.mjs +0 -85
- package/dist/ClipboardModal-Dm9Z1sRK.mjs +0 -84
- package/dist/CommentBasicView-BIiF59xV.mjs +0 -129
- package/dist/CommentInput-yE5YpwPd.mjs +0 -186
- package/dist/CommentItem-B95BndID.mjs +0 -232
- package/dist/CommentList-l9y2S0t4.mjs +0 -302
- package/dist/CommentMoreActions-tL6Uqw1X.mjs +0 -286
- package/dist/CommentName-Dg4--t-W.mjs +0 -96
- package/dist/CommentParentInfo-8jbjym0a.mjs +0 -64
- package/dist/CommentPlayer-lesewf4s.mjs +0 -86
- package/dist/CommentSection-BRUVbqPQ.mjs +0 -141
- package/dist/CommentStore-C9bhViPU.mjs +0 -355
- package/dist/ContractPreviewModal-DDJNYv49.mjs +0 -101
- package/dist/DownloadPodcastButton-DXJGjfIn.mjs +0 -53
- package/dist/EditCommentModal-Czp-qN4t.mjs +0 -162
- package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs +0 -82
- package/dist/EmissionInlineList-Bqvh02uF.mjs +0 -188
- package/dist/EmissionItem-DoBM2Zk2.mjs +0 -183
- package/dist/EmissionList-Bh3ZlvV4.mjs +0 -325
- package/dist/EmissionPage-BG6RIWP2.mjs +0 -322
- package/dist/EmissionPlayerItem-CvoVh-dC.mjs +0 -167
- package/dist/EmissionPresentationItem-B2PbYGuW.mjs +0 -78
- package/dist/EmissionPresentationList-BXNJsC5t.mjs +0 -125
- package/dist/EmissionsPage-B1arrsZ7.mjs +0 -199
- package/dist/Error403Page-Bv-DWyb6.mjs +0 -69
- package/dist/ErrorMessage-D2XAzxpC.mjs +0 -44
- package/dist/FooterGarSection-77dYJO_c.mjs +0 -71
- package/dist/FooterSection-B1hXBiqI.mjs +0 -242
- package/dist/HomeDropdown-87gJP-lN.mjs +0 -110
- package/dist/HomePage-Brr9jjcQ.mjs +0 -166
- package/dist/LikeSection-1P9-7FQ5.mjs +0 -167
- package/dist/ListPaginate-CEgFM1e5.mjs +0 -202
- package/dist/LiveHorizontalList-G4GVIv-L.mjs +0 -136
- package/dist/LiveList-BiODr6Zp.mjs +0 -324
- package/dist/LivesPage-vu6VOIIy.mjs +0 -76
- package/dist/MapPage-DmEdjPRe.mjs +0 -303
- package/dist/MobileMenu-xNe7tNdx.mjs +0 -187
- package/dist/NewsletterModal-LqgD6CbF.mjs +0 -82
- package/dist/OrganisationChooser-BiNMu3dn.mjs +0 -190
- package/dist/OrganisationChooserLight-BJwIMZ6G.mjs +0 -84
- package/dist/PageNotFound-ChQf6Ngj.mjs +0 -58
- package/dist/ParticipantInlineList-CcCfd9rJ.mjs +0 -117
- package/dist/ParticipantItem-Ch4_98y_.mjs +0 -138
- package/dist/ParticipantPage-DtAxvp2W.mjs +0 -203
- package/dist/ParticipantsPage-BzdpZCDO.mjs +0 -262
- package/dist/PlayerAnonymousModal-BKaI6E9o.mjs +0 -84
- package/dist/PlayerCompact-B-WRNyqn.mjs +0 -209
- package/dist/PlayerComponent-CUHTRJic.mjs +0 -929
- package/dist/PlayerLarge-Kt-pV6N_.mjs +0 -190
- package/dist/PlayerPlayButton-CAElMmMV.mjs +0 -400
- package/dist/PlayerProgressBar-DWAyhBWx.mjs +0 -86
- package/dist/PlayerStore-7vhL8Npe.mjs +0 -230
- package/dist/PlayerVideo-Dq7OHOig.mjs +0 -72
- package/dist/PlayerVideoDigiteka-pNFWNrON.mjs +0 -102
- package/dist/PlayerVideoHls-CE2SIkEn.mjs +0 -232
- package/dist/PlaylistPage-Cb5ukqXZ.mjs +0 -228
- package/dist/PlaylistsPage-DAVADzhL.mjs +0 -395
- package/dist/PodcastFilterList-CmqrA2oC.mjs +0 -254
- package/dist/PodcastImage-FhC5F4MR.mjs +0 -174
- package/dist/PodcastInlineList-CDumc8n6.mjs +0 -138
- package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs +0 -233
- package/dist/PodcastIsPlaying-DqnPEYSJ.mjs +0 -30
- package/dist/PodcastItem-rF33x3wp.mjs +0 -287
- package/dist/PodcastList-BewxderG.mjs +0 -330
- package/dist/PodcastList-DYLAwHbt.mjs +0 -182
- package/dist/PodcastPage-NMZSFjQm.mjs +0 -756
- package/dist/PodcastPlayBar-D_b7qme_.mjs +0 -83
- package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs +0 -72
- package/dist/PodcastPlayButton-Dgv5W72_.mjs +0 -236
- package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs +0 -115
- package/dist/PodcastPresentationList-DxUwH3dU.mjs +0 -200
- package/dist/PodcastProgressBar-D_togvfJ.mjs +0 -98
- package/dist/PodcastRawTranscript-CHnE4Q9g.mjs +0 -184
- package/dist/PodcastRubriqueList-DqHgAzXW.mjs +0 -83
- package/dist/PodcastSwiperList-PoinXUn2.mjs +0 -219
- package/dist/PodcastmakerHeader-CTOmo93E.mjs +0 -58
- package/dist/PodcastsPage-B1JUH1co.mjs +0 -217
- package/dist/ProductorSearch-XQ1jGYQw.mjs +0 -161
- package/dist/ProgressBar-CyddCXNJ.mjs +0 -158
- package/dist/QrCode-6ZkgX9Ta.mjs +0 -177
- package/dist/QrCodeModal-BNVatZWE.mjs +0 -64
- package/dist/RadioCurrently-Bf-Pg-J_.mjs +0 -112
- package/dist/RadioHistory-C7tOpvUk.mjs +0 -139
- package/dist/RadioImage-CiIj65_a.mjs +0 -85
- package/dist/RadioList-BotOeNwF.mjs +0 -125
- package/dist/RadioPage-CcPPJUmX.mjs +0 -137
- package/dist/RadioPlanning-C8MtglrL.mjs +0 -290
- package/dist/RadioProgressBar-1PEu9PP_.mjs +0 -67
- package/dist/RecaptchaModal-CHFdC9Sq.mjs +0 -148
- package/dist/ReportAbuseModal-CRcYir1i.mjs +0 -134
- package/dist/RightsIndicator-DeX5rK6p.mjs +0 -124
- package/dist/RightsWrapper-B8WfUUyU.mjs +0 -212
- package/dist/RubriqueFilter-DL_FXRSA.mjs +0 -199
- package/dist/RubriqueList-CMOS69Vq.mjs +0 -206
- package/dist/RubriquePage-TE1WN6Ij.mjs +0 -108
- package/dist/SearchPage-DMmu7a0f.mjs +0 -77
- package/dist/ShareAnonymous-BRlQaJhi.mjs +0 -321
- package/dist/ShareModalPlayer-D98G_Ndx.mjs +0 -135
- package/dist/ShareNewsletter-C-clOCKi.mjs +0 -211
- package/dist/SharePlayer-ChACZKgH.mjs +0 -378
- package/dist/SharePlayerRadio-CTMdvwN2.mjs +0 -127
- package/dist/SharePlayerTypes-B7FLniHB.mjs +0 -232
- package/dist/ShareSocialsButtons-DiJVocCJ.mjs +0 -159
- package/dist/SimpleLayout-DLEAl9OH.mjs +0 -41
- package/dist/SmartLinkPage-BJoMvpYI.mjs +0 -238
- package/dist/SubscribeButtons-Va9APuBC.mjs +0 -203
- package/dist/SwiperList-B20Vye8P.mjs +0 -207
- package/dist/TagList-B4PT2uXD.mjs +0 -134
- package/dist/TagPage-BUXelbn2.mjs +0 -125
- package/dist/TopBar-Bg0jGbps.mjs +0 -760
- package/dist/UserButtonContent-CPa7Icpi.mjs +0 -185
- package/dist/VideoModuleBox-CIZ34N35.mjs +0 -85
- package/dist/VideoPage-B-7n9a0w.mjs +0 -274
- package/dist/classicApi-ChvwoPGT.mjs +0 -1906
- package/dist/downloadHelper-CuFfOvc0.mjs +0 -36
- package/dist/messages-C-3-wU0o.mjs +0 -2757
- package/dist/types-8roXR0of.mjs +0 -11
- package/dist/useAdvancedParamInit-DpFW5LOX.mjs +0 -162
- package/dist/useDayjs-CK_TIXDt.mjs +0 -32
- package/dist/useErrorHandler-BZkAkzNC.mjs +0 -19
- package/dist/useImageProxy-DdK55qB4.mjs +0 -20
- package/dist/useOrgaComputed-D5SfqMx9.mjs +0 -19
- package/dist/usePlayerLogicProgress-C-gsD-ec.mjs +0 -108
- package/dist/usePodcastView-DlzuYDsj.mjs +0 -56
- package/dist/usePresentationItem-CUGbjF4i.mjs +0 -190
- package/dist/useRights-DNL2VJUc.mjs +0 -276
- package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs +0 -13
- package/dist/useRubriquesFilterParam-BrWFpJhb.mjs +0 -36
- package/dist/useSharePlatforms-BqPO-hyZ.mjs +0 -468
- package/dist/useSimplePageParam-ByeUUq4Z.mjs +0 -54
- package/dist/useTranslation-Dsw1HxX9.mjs +0 -205
- 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":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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":";;;;;;;;;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-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"}
|