@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":"PlaylistsPage-BHkETgSa.mjs","names":[],"sources":["../src/components/display/playlist/PlaylistItem.vue","../src/components/display/playlist/PlaylistItem.vue","../src/stores/class/general/playlist.ts","../src/components/display/playlist/PlaylistList.vue","../src/components/display/playlist/PlaylistList.vue","../src/components/pages/PlaylistsPage.vue","../src/components/pages/PlaylistsPage.vue"],"sourcesContent":["<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","import { emptyOrganisationData, Organisation } from \"./organisation\";\nimport { Person } from \"../user/person\";\nimport { FetchParam } from \"./fetchParam\";\nimport { Annotations } from \".\";\nimport { ItuneCategory } from \"./ituneCategory\";\n\n/**\n * Type of ambiance for the playlist\n * see #11919\n */\nexport enum PlaylistAmbianceType {\n NONE = \"NONE\",\n AMIBANCE = \"AMBIANCE\",\n AMBIANCE_PROGRAMMED = \"AMBIANCE_PROGRAMMED\"\n}\n\nexport interface Playlist {\n ambianceType?: PlaylistAmbianceType;\n imageUrl?: string;\n description: string;\n organisation?: Organisation;\n playlistId: number;\n podcasts?: Array<number | undefined>;\n score: number;\n title: string;\n type: string;\n samplingViews?: Array<PlaylistRule>;\n publisher?: Person;\n /** The annotations of the playlist */\n annotations?: Annotations;\n copyright?: string;\n optItunesCategories?: Array<ItuneCategory>;\n}\n\nexport function emptyPlaylistData(): Playlist {\n return {\n ambianceType: PlaylistAmbianceType.NONE,\n description: \"\",\n playlistId: 0,\n podcasts: undefined,\n score: 0,\n title: \"\",\n type: \"DYNAMIC\",\n samplingViews: [],\n organisation: emptyOrganisationData()\n };\n}\n\nexport interface PlaylistRule {\n maxSize: number;\n podcastId?: number;\n query?: FetchParam;\n type?: string;\n title?: string;\n}\n\nexport function emptyPlaylistRule(): PlaylistRule {\n return {\n maxSize: 1,\n query: {},\n title: undefined,\n };\n}\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistsPage-C8RfANak.mjs","names":[],"sources":["../src/components/display/playlist/PlaylistItem.vue","../src/components/display/playlist/PlaylistItem.vue","../src/stores/class/general/playlist.ts","../src/components/display/playlist/PlaylistList.vue","../src/components/display/playlist/PlaylistList.vue","../src/components/pages/PlaylistsPage.vue","../src/components/pages/PlaylistsPage.vue"],"sourcesContent":["<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","import { emptyOrganisationData, Organisation } from \"./organisation\";\nimport { Person } from \"../user/person\";\nimport { FetchParam } from \"./fetchParam\";\nimport { Annotations } from \".\";\nimport { ItuneCategory } from \"./ituneCategory\";\n\n/**\n * Type of ambiance for the playlist\n * see #11919\n */\nexport enum PlaylistAmbianceType {\n NONE = \"NONE\",\n AMIBANCE = \"AMBIANCE\",\n AMBIANCE_PROGRAMMED = \"AMBIANCE_PROGRAMMED\"\n}\n\nexport interface Playlist {\n ambianceType?: PlaylistAmbianceType;\n imageUrl?: string;\n description: string;\n organisation?: Organisation;\n playlistId: number;\n podcasts?: Array<number | undefined>;\n score: number;\n title: string;\n type: string;\n samplingViews?: Array<PlaylistRule>;\n publisher?: Person;\n /** The annotations of the playlist */\n annotations?: Annotations;\n copyright?: string;\n optItunesCategories?: Array<ItuneCategory>;\n}\n\nexport function emptyPlaylistData(): Playlist {\n return {\n ambianceType: PlaylistAmbianceType.NONE,\n description: \"\",\n playlistId: 0,\n podcasts: undefined,\n score: 0,\n title: \"\",\n type: \"DYNAMIC\",\n samplingViews: [],\n organisation: emptyOrganisationData()\n };\n}\n\nexport interface PlaylistRule {\n maxSize: number;\n podcastId?: number;\n query?: FetchParam;\n type?: string;\n title?: string;\n}\n\nexport function emptyPlaylistRule(): PlaylistRule {\n return {\n maxSize: 1,\n query: {},\n title: undefined,\n };\n}\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistsPage-CQ3G3kWz.mjs","names":[],"sources":["../src/components/display/playlist/PlaylistItem.vue","../src/components/display/playlist/PlaylistItem.vue","../src/stores/class/general/playlist.ts","../src/components/display/playlist/PlaylistList.vue","../src/components/display/playlist/PlaylistList.vue","../src/components/pages/PlaylistsPage.vue","../src/components/pages/PlaylistsPage.vue"],"sourcesContent":["<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","import { emptyOrganisationData, Organisation } from \"./organisation\";\nimport { Person } from \"../user/person\";\nimport { FetchParam } from \"./fetchParam\";\nimport { Annotations } from \".\";\nimport { ItuneCategory } from \"./ituneCategory\";\n\n/**\n * Type of ambiance for the playlist\n * see #11919\n */\nexport enum PlaylistAmbianceType {\n NONE = \"NONE\",\n AMIBANCE = \"AMBIANCE\",\n AMBIANCE_PROGRAMMED = \"AMBIANCE_PROGRAMMED\"\n}\n\nexport interface Playlist {\n ambianceType?: PlaylistAmbianceType;\n imageUrl?: string;\n description: string;\n organisation?: Organisation;\n playlistId: number;\n podcasts?: Array<number | undefined>;\n score: number;\n title: string;\n type: string;\n samplingViews?: Array<PlaylistRule>;\n publisher?: Person;\n /** The annotations of the playlist */\n annotations?: Annotations;\n copyright?: string;\n optItunesCategories?: Array<ItuneCategory>;\n}\n\nexport function emptyPlaylistData(): Playlist {\n return {\n ambianceType: PlaylistAmbianceType.NONE,\n description: \"\",\n playlistId: 0,\n podcasts: undefined,\n score: 0,\n title: \"\",\n type: \"DYNAMIC\",\n samplingViews: [],\n organisation: emptyOrganisationData()\n };\n}\n\nexport interface PlaylistRule {\n maxSize: number;\n podcastId?: number;\n query?: FetchParam;\n type?: string;\n title?: string;\n}\n\nexport function emptyPlaylistRule(): PlaylistRule {\n return {\n maxSize: 1,\n query: {},\n title: undefined,\n };\n}\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistsPage-DImJmIkL.mjs","names":[],"sources":["../src/components/display/playlist/PlaylistItem.vue","../src/components/display/playlist/PlaylistItem.vue","../src/stores/class/general/playlist.ts","../src/components/display/playlist/PlaylistList.vue","../src/components/display/playlist/PlaylistList.vue","../src/components/pages/PlaylistsPage.vue","../src/components/pages/PlaylistsPage.vue"],"sourcesContent":["<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","import { emptyOrganisationData, Organisation } from \"./organisation\";\nimport { Person } from \"../user/person\";\nimport { FetchParam } from \"./fetchParam\";\nimport { Annotations } from \".\";\nimport { ItuneCategory } from \"./ituneCategory\";\n\n/**\n * Type of ambiance for the playlist\n * see #11919\n */\nexport enum PlaylistAmbianceType {\n NONE = \"NONE\",\n AMIBANCE = \"AMBIANCE\",\n AMBIANCE_PROGRAMMED = \"AMBIANCE_PROGRAMMED\"\n}\n\nexport interface Playlist {\n ambianceType?: PlaylistAmbianceType;\n imageUrl?: string;\n description: string;\n organisation?: Organisation;\n playlistId: number;\n podcasts?: Array<number | undefined>;\n score: number;\n title: string;\n type: string;\n samplingViews?: Array<PlaylistRule>;\n publisher?: Person;\n /** The annotations of the playlist */\n annotations?: Annotations;\n copyright?: string;\n optItunesCategories?: Array<ItuneCategory>;\n}\n\nexport function emptyPlaylistData(): Playlist {\n return {\n ambianceType: PlaylistAmbianceType.NONE,\n description: \"\",\n playlistId: 0,\n podcasts: undefined,\n score: 0,\n title: \"\",\n type: \"DYNAMIC\",\n samplingViews: [],\n organisation: emptyOrganisationData()\n };\n}\n\nexport interface PlaylistRule {\n maxSize: number;\n podcastId?: number;\n query?: FetchParam;\n type?: string;\n title?: string;\n}\n\nexport function emptyPlaylistRule(): PlaylistRule {\n return {\n maxSize: 1,\n query: {},\n title: undefined,\n };\n}\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistsPage-DPDsiGh5.mjs","names":[],"sources":["../src/components/display/playlist/PlaylistItem.vue","../src/components/display/playlist/PlaylistItem.vue","../src/stores/class/general/playlist.ts","../src/components/display/playlist/PlaylistList.vue","../src/components/display/playlist/PlaylistList.vue","../src/components/pages/PlaylistsPage.vue","../src/components/pages/PlaylistsPage.vue"],"sourcesContent":["<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","import { emptyOrganisationData, Organisation } from \"./organisation\";\nimport { Person } from \"../user/person\";\nimport { FetchParam } from \"./fetchParam\";\nimport { Annotations } from \".\";\nimport { ItuneCategory } from \"./ituneCategory\";\n\n/**\n * Type of ambiance for the playlist\n * see #11919\n */\nexport enum PlaylistAmbianceType {\n NONE = \"NONE\",\n AMIBANCE = \"AMBIANCE\",\n AMBIANCE_PROGRAMMED = \"AMBIANCE_PROGRAMMED\"\n}\n\nexport interface Playlist {\n ambianceType?: PlaylistAmbianceType;\n imageUrl?: string;\n description: string;\n organisation?: Organisation;\n playlistId: number;\n podcasts?: Array<number | undefined>;\n score: number;\n title: string;\n type: string;\n samplingViews?: Array<PlaylistRule>;\n publisher?: Person;\n /** The annotations of the playlist */\n annotations?: Annotations;\n copyright?: string;\n optItunesCategories?: Array<ItuneCategory>;\n}\n\nexport function emptyPlaylistData(): Playlist {\n return {\n ambianceType: PlaylistAmbianceType.NONE,\n description: \"\",\n playlistId: 0,\n podcasts: undefined,\n score: 0,\n title: \"\",\n type: \"DYNAMIC\",\n samplingViews: [],\n organisation: emptyOrganisationData()\n };\n}\n\nexport interface PlaylistRule {\n maxSize: number;\n podcastId?: number;\n query?: FetchParam;\n type?: string;\n title?: string;\n}\n\nexport function emptyPlaylistRule(): PlaylistRule {\n return {\n maxSize: 1,\n query: {},\n title: undefined,\n };\n}\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaylistsPage-dTb2DeOD.mjs","names":[],"sources":["../src/components/display/playlist/PlaylistItem.vue","../src/components/display/playlist/PlaylistItem.vue","../src/stores/class/general/playlist.ts","../src/components/display/playlist/PlaylistList.vue","../src/components/display/playlist/PlaylistList.vue","../src/components/pages/PlaylistsPage.vue","../src/components/pages/PlaylistsPage.vue"],"sourcesContent":["<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: playlist.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <div class=\"classic-element-text\">\n <div v-if=\"!activePlaylist\" class=\"sticker-empty-ressource\">\n {{ t(\"Empty playlist\") }}\n </div>\n <div class=\"d-flex align-items-center element-name basic-line-clamp\">\n {{ name }}\n </div>\n <div\n ref=\"descriptionPlaylistContainer\"\n class=\"element-description html-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div ref=\"descriptionPlaylist\" v-html=\"urlify(description)\" />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && playlist.organisation\"\n :to=\"{\n name: 'productor',\n params: { productorId: playlist.organisation.id },\n }\"\n class=\"text-dark mt-auto py-1\"\n >\n © {{ playlist.organisation.name }}\n </router-link>\n </div>\n <img\n v-lazy=\"useProxyImageUrl(playlist.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n \n :title=\"t('Playlist name image', { name: name })\"\n class=\"img-box\"\n />\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onMounted, useTemplateRef } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n playlist: { default: () => ({}), type: Object as () => Playlist },\n})\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\n\n//Computed\nconst description = computed(() => props.playlist.description ?? \"\");\nconst name = computed(() => props.playlist.title ?? \"\");\nconst activePlaylist = computed(() => 0 !== Object.keys(props.playlist.samplingViews ?? []).length);\n\nonMounted(()=>{\n const playlistDesc = useTemplateRef('descriptionPlaylist')?.value as HTMLElement;\n const playlistDescContainer = useTemplateRef('descriptionPlaylistContainer')?.value as HTMLElement;\n if (playlistDesc?.clientHeight > playlistDescContainer?.clientHeight) {\n playlistDescContainer.classList.add(\"after-element-description\");\n }\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n<style lang=\"scss\">\n.octopus-app .sticker-empty-ressource{\n position: absolute;\n top: 5px;\n right: 5px;\n align-self: center;\n background: var(--octopus-tertiary);\n padding: 0.5rem;\n transition: all 0.5s ease;\n color: var(--octopus-color-on-primary);\n font-size: 0.6rem;\n font-weight: bold;\n letter-spacing: 1px;\n box-shadow: 10px 10px 34px -15px var(--octopus-shadow);\n border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;\n border: solid 2px var(--octopus-color-text);\n cursor: auto;\n\n &:hover {\n box-shadow: 2px 8px 4px -6px var(--octopus-shadow);\n background: var(--octopus-primary);\n }\n}\n</style>\n\n","import { emptyOrganisationData, Organisation } from \"./organisation\";\nimport { Person } from \"../user/person\";\nimport { FetchParam } from \"./fetchParam\";\nimport { Annotations } from \".\";\nimport { ItuneCategory } from \"./ituneCategory\";\n\n/**\n * Type of ambiance for the playlist\n * see #11919\n */\nexport enum PlaylistAmbianceType {\n NONE = \"NONE\",\n AMIBANCE = \"AMBIANCE\",\n AMBIANCE_PROGRAMMED = \"AMBIANCE_PROGRAMMED\"\n}\n\nexport interface Playlist {\n ambianceType?: PlaylistAmbianceType;\n imageUrl?: string;\n description: string;\n organisation?: Organisation;\n playlistId: number;\n podcasts?: Array<number | undefined>;\n score: number;\n title: string;\n type: string;\n samplingViews?: Array<PlaylistRule>;\n publisher?: Person;\n /** The annotations of the playlist */\n annotations?: Annotations;\n copyright?: string;\n optItunesCategories?: Array<ItuneCategory>;\n}\n\nexport function emptyPlaylistData(): Playlist {\n return {\n ambianceType: PlaylistAmbianceType.NONE,\n description: \"\",\n playlistId: 0,\n podcasts: undefined,\n score: 0,\n title: \"\",\n type: \"DYNAMIC\",\n samplingViews: [],\n organisation: emptyOrganisationData()\n };\n}\n\nexport interface PlaylistRule {\n maxSize: number;\n podcastId?: number;\n query?: FetchParam;\n type?: string;\n title?: string;\n}\n\nexport function emptyPlaylistRule(): PlaylistRule {\n return {\n maxSize: 1,\n query: {},\n title: undefined,\n };\n}\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"playlistListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n displayCount > 1\n ? `${t('Number playlists', { nb: displayCount })}`\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading content ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.playlistId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <PlaylistItem v-if=\"0 !== p.playlistId\" :playlist=\"p\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'playlist',\n params: { playlistId: p.playlistId },\n }\"\n :title=\"t('Playlist name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport classicApi from \"../../../api/classicApi\";\nimport PlaylistItem from \"./PlaylistItem.vue\";\nimport { Playlist, emptyPlaylistData } from \"@/stores/class/general/playlist\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n organisationId: { default: undefined, type: String },\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst playlists: Ref<Array<Playlist>> = ref([]);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return playlists.value;\n }\n return playlists.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changed = computed(() => `${props.organisationId}|${props.query}`);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst sort = computed(() => !props.query ? \"NAME\" : \"SCORE\");\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () => {\n if (\n !playlists.value[dfirst.value] ||\n 0 === playlists.value[dfirst.value].playlistId\n ) {\n fetchContent(false);\n }\n});\n\nonMounted(()=>fetchContent(false))\n\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n query: props.query,\n organisationId: organisation.value,\n type: \"NONE\",\n sort: sort.value,\n };\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Playlist>>({\n api: 0,\n path: \"playlist/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Playlist>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n playlists.value.length = 0;\n }\n if (dfirst.value > playlists.value.length) {\n for (\n let i = playlists.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n playlists.value.push(emptyPlaylistData());\n }\n }\n displayCount.value = data.count;\n const responsePlaylists = data.result.filter((e: Playlist | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n playlists.value = playlists.value\n .slice(0, dfirst.value)\n .concat(responsePlaylists)\n .concat(\n playlists.value.slice(dfirst.value + dsize.value, playlists.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n","<template>\n <section v-if=\"isInit\" class=\"page-box\">\n <router-link\n v-if=\"isRolePlaylists && !isPodcastmaker\"\n to=\"/main/priv/edit/playlist\"\n class=\"d-flex justify-content-center my-3\"\n >\n <div class=\"btn btn-primary\">\n {{ t(\"Create playlist\") }}\n </div>\n </router-link>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n type=\"playlist\"\n />\n <PlaylistList\n :show-count=\"true\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :query=\"searchMinSize\"\n :organisation-id=\"organisationId\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport PlaylistList from \"../display/playlist/PlaylistList.vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props\nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n\n//Composables\nconst { t } = useI18n();\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst authStore = useAuthStore();\n\n\n//Computed\nconst isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\nconst isRolePlaylists = computed(() =>authStore.isRolePlaylists);\n\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PodcastFilterList-BNIGxX1P.mjs","names":[],"sources":["../src/components/display/podcasts/PodcastFilterList.vue","../src/components/display/podcasts/PodcastFilterList.vue"],"sourcesContent":["<template>\n <section class=\"py-3\">\n <h3 class=\"mb-2\">\n {{ titleFilter }}\n </h3>\n <div class=\"d-flex align-items-stretch flex-wrap mb-2\">\n <div id=\"podcast-filter-list-category-chooser\" class=\"w-50-responsive pe-3\">\n <CategoryChooser\n height=\"100%\"\n :defaultanswer=\"t('No category filter')\"\n @selected=\"onCategorySelected\"\n />\n </div>\n <ClassicSearch\n v-model:text-init=\"searchPattern\"\n class=\"w-50-responsive\"\n id-search=\"podcast-filter-search\"\n :label=\"t('Search')\"\n />\n </div>\n\n <PodcastList\n v-if=\"!showSeasons\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n @fetch=\"fetch\"\n />\n <ClassicNav\n v-else\n v-model:active-tab=\"activeSeasonTab\"\n :tab-number=\"emission.seasons.length\"\n >\n <template v-for=\"(season, i) in seasons\" #[tabNameSlot(i)]>\n {{ $t('Podcast - Season N', { season }) }}\n </template>\n\n <template\n v-for=\"(season, i) in seasons\"\n #[tabContentSlot(i)]\n :key=\"season\"\n >\n <PodcastList\n class=\"flex-grow-1\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n :seasons=\"[season]\"\n @fetch=\"fetch($event, season)\"\n />\n </template>\n </ClassicNav>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicSearch from \"../../form/ClassicSearch.vue\";\nimport PodcastList from \"./PodcastList.vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { defineAsyncComponent, ref, Ref, computed, watch } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nimport ClassicNav from \"../../misc/ClassicNav.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { PodcastSort } from \"../../../api/podcastApi\";\nconst CategoryChooser = defineAsyncComponent(\n () => import(\"../categories/CategoryChooser.vue\"),\n);\n\n//Props \nconst props = withDefaults(defineProps<{\n first?: number;\n size?: number;\n query?: string;\n participantId?: number;\n name?: string;\n emissionId?: number;\n categoryFilter?: boolean;\n reload?: boolean;\n editRight?: boolean;\n productorId?: Array<string>;\n showCount?: boolean;\n forceUpdateParameters?: boolean;\n /**\n * Emission for which to display podcasts\n * If set, will check for seasons\n */\n emission?: Emission;\n}>(), {\n first: 0,\n size: 30\n});\n\n//Emits\nconst emit = defineEmits<{\n (e: \"fetch\", podcasts: Array<Podcast>, season: number|undefined): void;\n (e: \"update:query\", query: string): void;\n}>();\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst searchPattern = ref(props.query ?? \"\");\nconst reloadList = ref(false);\nconst iabId : Ref<number | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst { areSeasonsEnabled, getMaxSeason } = useSeasonsManagement();\n\n//Computed\nconst titleFilter = computed(() => {\n return props.name\n ? t(\"All podcast button\", { name: props.name })\n : t(\"All podcast emission button\");\n});\nconst query = computed(() => searchPattern.value.length > 3 ? searchPattern.value : \"\");\n\nconst showSeasons = computed(() => {\n return props.emission !== undefined && areSeasonsEnabled(props.emission) && (props.emission.seasons?.length ?? 0) > 0;\n});\n\nconst seasons = computed((): Array<number> => [...props.emission.seasons].sort());\n\nconst activeSeasonTab = ref(showSeasons.value ? props.emission.seasons?.indexOf(getMaxSeason(props.emission)) ?? 0 : 0);\n\nconst sort = computed((): PodcastSort => {\n if(showSeasons.value === true) {\n return PodcastSort.SEASONAL;\n } else if(!query.value.length) {\n return PodcastSort.DATE;\n } else {\n return PodcastSort.SCORE;\n }\n});\n\n//Watch\nwatch(()=>props.reload, () => {\n reloadList.value = !reloadList.value;\n});\nwatch(searchPattern, () => {\n emit('update:query', searchPattern.value);\n});\n\n//Methods\nfunction onCategorySelected(category: Category | undefined): void {\n iabId.value = category?.id ? category.id : undefined;\n}\nfunction fetch(podcasts: Array<Podcast>, season?: number): void {\n emit(\"fetch\", podcasts, season);\n}\n\n/** Name of the slot for the tab's title */\nfunction tabNameSlot(index: number): string {\n return `${index}`;\n}\n/** Name of the slot for the tab's content */\nfunction tabContentSlot(index: number): string {\n return `tab${index}`;\n}\n</script>\n","<template>\n <section class=\"py-3\">\n <h3 class=\"mb-2\">\n {{ titleFilter }}\n </h3>\n <div class=\"d-flex align-items-stretch flex-wrap mb-2\">\n <div id=\"podcast-filter-list-category-chooser\" class=\"w-50-responsive pe-3\">\n <CategoryChooser\n height=\"100%\"\n :defaultanswer=\"t('No category filter')\"\n @selected=\"onCategorySelected\"\n />\n </div>\n <ClassicSearch\n v-model:text-init=\"searchPattern\"\n class=\"w-50-responsive\"\n id-search=\"podcast-filter-search\"\n :label=\"t('Search')\"\n />\n </div>\n\n <PodcastList\n v-if=\"!showSeasons\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n @fetch=\"fetch\"\n />\n <ClassicNav\n v-else\n v-model:active-tab=\"activeSeasonTab\"\n :tab-number=\"emission.seasons.length\"\n >\n <template v-for=\"(season, i) in seasons\" #[tabNameSlot(i)]>\n {{ $t('Podcast - Season N', { season }) }}\n </template>\n\n <template\n v-for=\"(season, i) in seasons\"\n #[tabContentSlot(i)]\n :key=\"season\"\n >\n <PodcastList\n class=\"flex-grow-1\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n :seasons=\"[season]\"\n @fetch=\"fetch($event, season)\"\n />\n </template>\n </ClassicNav>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicSearch from \"../../form/ClassicSearch.vue\";\nimport PodcastList from \"./PodcastList.vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { defineAsyncComponent, ref, Ref, computed, watch } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nimport ClassicNav from \"../../misc/ClassicNav.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { PodcastSort } from \"../../../api/podcastApi\";\nconst CategoryChooser = defineAsyncComponent(\n () => import(\"../categories/CategoryChooser.vue\"),\n);\n\n//Props \nconst props = withDefaults(defineProps<{\n first?: number;\n size?: number;\n query?: string;\n participantId?: number;\n name?: string;\n emissionId?: number;\n categoryFilter?: boolean;\n reload?: boolean;\n editRight?: boolean;\n productorId?: Array<string>;\n showCount?: boolean;\n forceUpdateParameters?: boolean;\n /**\n * Emission for which to display podcasts\n * If set, will check for seasons\n */\n emission?: Emission;\n}>(), {\n first: 0,\n size: 30\n});\n\n//Emits\nconst emit = defineEmits<{\n (e: \"fetch\", podcasts: Array<Podcast>, season: number|undefined): void;\n (e: \"update:query\", query: string): void;\n}>();\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst searchPattern = ref(props.query ?? \"\");\nconst reloadList = ref(false);\nconst iabId : Ref<number | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst { areSeasonsEnabled, getMaxSeason } = useSeasonsManagement();\n\n//Computed\nconst titleFilter = computed(() => {\n return props.name\n ? t(\"All podcast button\", { name: props.name })\n : t(\"All podcast emission button\");\n});\nconst query = computed(() => searchPattern.value.length > 3 ? searchPattern.value : \"\");\n\nconst showSeasons = computed(() => {\n return props.emission !== undefined && areSeasonsEnabled(props.emission) && (props.emission.seasons?.length ?? 0) > 0;\n});\n\nconst seasons = computed((): Array<number> => [...props.emission.seasons].sort());\n\nconst activeSeasonTab = ref(showSeasons.value ? props.emission.seasons?.indexOf(getMaxSeason(props.emission)) ?? 0 : 0);\n\nconst sort = computed((): PodcastSort => {\n if(showSeasons.value === true) {\n return PodcastSort.SEASONAL;\n } else if(!query.value.length) {\n return PodcastSort.DATE;\n } else {\n return PodcastSort.SCORE;\n }\n});\n\n//Watch\nwatch(()=>props.reload, () => {\n reloadList.value = !reloadList.value;\n});\nwatch(searchPattern, () => {\n emit('update:query', searchPattern.value);\n});\n\n//Methods\nfunction onCategorySelected(category: Category | undefined): void {\n iabId.value = category?.id ? category.id : undefined;\n}\nfunction fetch(podcasts: Array<Podcast>, season?: number): void {\n emit(\"fetch\", podcasts, season);\n}\n\n/** Name of the slot for the tab's title */\nfunction tabNameSlot(index: number): string {\n return `${index}`;\n}\n/** Name of the slot for the tab's content */\nfunction tabContentSlot(index: number): string {\n return `tab${index}`;\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsFA,MAAM,kBAAkB,2BAChB,OAAO,kCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EAGA,MAAM,QAAQ;EAwBd,MAAM,OAAO;EAMb,MAAM,SAAS,IAAI,MAAM,KAAK;EAC9B,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,MAAM,gBAAgB,IAAI,MAAM,SAAS,EAAE;EAC3C,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,QAAiC,IAAI,KAAA,CAAS;EAGpD,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,EAAE,mBAAmB,iBAAiB,qBAAqB;EAGjE,MAAM,cAAc,eAAe;GACjC,OAAO,MAAM,OACT,EAAE,sBAAsB,EAAE,MAAM,MAAM,KAAK,CAAC,IAC5C,EAAE,6BAA6B;EACrC,CAAC;EACD,MAAM,QAAQ,eAAe,cAAc,MAAM,SAAS,IAAI,cAAc,QAAQ,EAAE;EAEtF,MAAM,cAAc,eAAe;GACjC,OAAO,MAAM,aAAa,KAAA,KAAa,kBAAkB,MAAM,QAAQ,MAAM,MAAM,SAAS,SAAS,UAAU,KAAK;EACtH,CAAC;EAED,MAAM,UAAU,eAA8B,CAAC,GAAG,MAAM,SAAS,OAAO,EAAE,KAAK,CAAC;EAEhF,MAAM,kBAAkB,IAAI,YAAY,QAAQ,MAAM,SAAS,SAAS,QAAQ,aAAa,MAAM,QAAQ,CAAC,KAAK,IAAI,CAAC;EAEtH,MAAM,OAAO,eAA4B;GACvC,IAAG,YAAY,UAAU,MACvB,OAAO,YAAY;QACd,IAAG,CAAC,MAAM,MAAM,QACrB,OAAO,YAAY;QAEnB,OAAO,YAAY;EAEvB,CAAC;EAGD,YAAU,MAAM,cAAc;GAC5B,WAAW,QAAQ,CAAC,WAAW;EACjC,CAAC;EACD,MAAM,qBAAqB;GACzB,KAAK,gBAAgB,cAAc,KAAK;EAC1C,CAAC;EAGD,SAAS,mBAAmB,UAAsC;GAChE,MAAM,QAAQ,UAAU,KAAK,SAAS,KAAK,KAAA;EAC7C;EACA,SAAS,MAAM,UAA0B,QAAuB;GAC9D,KAAK,SAAS,UAAU,MAAM;EAChC;;EAGA,SAAS,YAAY,OAAuB;GAC1C,OAAO,GAAG;EACZ;;EAEA,SAAS,eAAe,OAAuB;GAC7C,OAAO,MAAM;EACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBCnLW,OAAM,OAAM;mBACf,OAAM,OAAM;mBAGX,OAAM,4CAA2C;;CAC/C,IAAG;CAAuC,OAAM;;;qBALzD,mBAuEU,WAvEV,YAuEU;EAtER,mBAEK,MAFL,YAEK,gBADA,OAAA,WAAW,GAAA,CAAA;EAEhB,mBAcM,OAdN,YAcM,CAbJ,mBAMM,OANN,YAMM,CALJ,YAIE,OAAA,oBAAA;GAHA,QAAO;GACN,eAAe,OAAA,EAAC,oBAAA;GAChB,YAAU,OAAA;oCAGf,YAKE,OAAA,kBAAA;GAJQ,aAAW,OAAA;8DAAA,OAAA,gBAAa;GAChC,OAAM;GACN,aAAU;GACT,OAAO,OAAA,EAAC,QAAA;;GAKJ,OAAA,eAAA,UAAA,GADT,YAgBE,OAAA,gBAAA;;GAdC,OAAO,OAAA;GACP,MAAM,OAAA;GACN,UAAQ,OAAA;GACR,OAAO,OAAA;GACP,kBAAgB,OAAA;GAChB,eAAa,OAAA;GACb,mBAAiB,OAAA;GACjB,iBAAe,OAAA;GACf,QAAQ,OAAA;GACR,kBAAgB,OAAA;GAChB,cAAY,OAAA;GACZ,qBAAmB;GACnB,2BAAyB,OAAA;GACzB,SAAO,OAAA;;;;;;;;;;;;;;sBAEV,YAiCa,OAAA,eAAA;;GA/BH,cAAY,OAAA;+DAAA,OAAA,kBAAe;GAClC,cAAY,OAAA,SAAS,QAAQ;uCAEE,OAAA,UAAd,QAAQ,MAAC;;UAAe,OAAA,YAAY,CAAC;sBACX,CAAA,gBAAA,gBAAvC,KAAA,GAAE,sBAAA,EAAyB,OAAM,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;iBAId,OAAA,UAAd,QAAQ,MAAC;;UAChB,OAAA,eAAe,CAAC;sBAoBf,CAjBF,YAiBE,OAAA,gBAAA;KAhBA,OAAM;KACL,OAAO,OAAA;KACP,MAAM,OAAA;KACN,UAAQ,OAAA;KACR,OAAO,OAAA;KACP,kBAAgB,OAAA;KAChB,eAAa,OAAA;KACb,mBAAiB,OAAA;KACjB,iBAAe,OAAA;KACf,QAAQ,OAAA;KACR,kBAAgB,OAAA;KAChB,cAAY,OAAA;KACZ,qBAAmB;KACnB,2BAAyB,OAAA;KACzB,SAAO,CAAG,MAAM;KAChB,UAAK,WAAE,OAAA,MAAM,QAAQ,MAAM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PodcastFilterList-BT0RdGZZ.mjs","names":[],"sources":["../src/components/display/podcasts/PodcastFilterList.vue","../src/components/display/podcasts/PodcastFilterList.vue"],"sourcesContent":["<template>\n <section class=\"py-3\">\n <h3 class=\"mb-2\">\n {{ titleFilter }}\n </h3>\n <div class=\"d-flex align-items-stretch flex-wrap mb-2\">\n <div id=\"podcast-filter-list-category-chooser\" class=\"w-50-responsive pe-3\">\n <CategoryChooser\n height=\"100%\"\n :defaultanswer=\"t('No category filter')\"\n @selected=\"onCategorySelected\"\n />\n </div>\n <ClassicSearch\n v-model:text-init=\"searchPattern\"\n class=\"w-50-responsive\"\n id-search=\"podcast-filter-search\"\n :label=\"t('Search')\"\n />\n </div>\n\n <PodcastList\n v-if=\"!showSeasons\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n @fetch=\"fetch\"\n />\n <ClassicNav\n v-else\n v-model:active-tab=\"activeSeasonTab\"\n :tab-number=\"emission.seasons.length\"\n >\n <template v-for=\"(season, i) in seasons\" #[tabNameSlot(i)]>\n {{ $t('Podcast - Season N', { season }) }}\n </template>\n\n <template\n v-for=\"(season, i) in seasons\"\n #[tabContentSlot(i)]\n :key=\"season\"\n >\n <PodcastList\n class=\"flex-grow-1\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n :seasons=\"[season]\"\n @fetch=\"fetch($event, season)\"\n />\n </template>\n </ClassicNav>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicSearch from \"../../form/ClassicSearch.vue\";\nimport PodcastList from \"./PodcastList.vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { defineAsyncComponent, ref, Ref, computed, watch } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nimport ClassicNav from \"../../misc/ClassicNav.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { PodcastSort } from \"../../../api/podcastApi\";\nconst CategoryChooser = defineAsyncComponent(\n () => import(\"../categories/CategoryChooser.vue\"),\n);\n\n//Props \nconst props = withDefaults(defineProps<{\n first?: number;\n size?: number;\n query?: string;\n participantId?: number;\n name?: string;\n emissionId?: number;\n categoryFilter?: boolean;\n reload?: boolean;\n editRight?: boolean;\n productorId?: Array<string>;\n showCount?: boolean;\n forceUpdateParameters?: boolean;\n /**\n * Emission for which to display podcasts\n * If set, will check for seasons\n */\n emission?: Emission;\n}>(), {\n first: 0,\n size: 30\n});\n\n//Emits\nconst emit = defineEmits<{\n (e: \"fetch\", podcasts: Array<Podcast>, season: number|undefined): void;\n (e: \"update:query\", query: string): void;\n}>();\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst searchPattern = ref(props.query ?? \"\");\nconst reloadList = ref(false);\nconst iabId : Ref<number | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst { areSeasonsEnabled, getMaxSeason } = useSeasonsManagement();\n\n//Computed\nconst titleFilter = computed(() => {\n return props.name\n ? t(\"All podcast button\", { name: props.name })\n : t(\"All podcast emission button\");\n});\nconst query = computed(() => searchPattern.value.length > 3 ? searchPattern.value : \"\");\n\nconst showSeasons = computed(() => {\n return props.emission !== undefined && areSeasonsEnabled(props.emission) && (props.emission.seasons?.length ?? 0) > 0;\n});\n\nconst seasons = computed((): Array<number> => [...props.emission.seasons].sort());\n\nconst activeSeasonTab = ref(showSeasons.value ? props.emission.seasons?.indexOf(getMaxSeason(props.emission)) ?? 0 : 0);\n\nconst sort = computed((): PodcastSort => {\n if(showSeasons.value === true) {\n return PodcastSort.SEASONAL;\n } else if(!query.value.length) {\n return PodcastSort.DATE;\n } else {\n return PodcastSort.SCORE;\n }\n});\n\n//Watch\nwatch(()=>props.reload, () => {\n reloadList.value = !reloadList.value;\n});\nwatch(searchPattern, () => {\n emit('update:query', searchPattern.value);\n});\n\n//Methods\nfunction onCategorySelected(category: Category | undefined): void {\n iabId.value = category?.id ? category.id : undefined;\n}\nfunction fetch(podcasts: Array<Podcast>, season?: number): void {\n emit(\"fetch\", podcasts, season);\n}\n\n/** Name of the slot for the tab's title */\nfunction tabNameSlot(index: number): string {\n return `${index}`;\n}\n/** Name of the slot for the tab's content */\nfunction tabContentSlot(index: number): string {\n return `tab${index}`;\n}\n</script>\n","<template>\n <section class=\"py-3\">\n <h3 class=\"mb-2\">\n {{ titleFilter }}\n </h3>\n <div class=\"d-flex align-items-stretch flex-wrap mb-2\">\n <div id=\"podcast-filter-list-category-chooser\" class=\"w-50-responsive pe-3\">\n <CategoryChooser\n height=\"100%\"\n :defaultanswer=\"t('No category filter')\"\n @selected=\"onCategorySelected\"\n />\n </div>\n <ClassicSearch\n v-model:text-init=\"searchPattern\"\n class=\"w-50-responsive\"\n id-search=\"podcast-filter-search\"\n :label=\"t('Search')\"\n />\n </div>\n\n <PodcastList\n v-if=\"!showSeasons\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n @fetch=\"fetch\"\n />\n <ClassicNav\n v-else\n v-model:active-tab=\"activeSeasonTab\"\n :tab-number=\"emission.seasons.length\"\n >\n <template v-for=\"(season, i) in seasons\" #[tabNameSlot(i)]>\n {{ $t('Podcast - Season N', { season }) }}\n </template>\n\n <template\n v-for=\"(season, i) in seasons\"\n #[tabContentSlot(i)]\n :key=\"season\"\n >\n <PodcastList\n class=\"flex-grow-1\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n :seasons=\"[season]\"\n @fetch=\"fetch($event, season)\"\n />\n </template>\n </ClassicNav>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicSearch from \"../../form/ClassicSearch.vue\";\nimport PodcastList from \"./PodcastList.vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { defineAsyncComponent, ref, Ref, computed, watch } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nimport ClassicNav from \"../../misc/ClassicNav.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { PodcastSort } from \"../../../api/podcastApi\";\nconst CategoryChooser = defineAsyncComponent(\n () => import(\"../categories/CategoryChooser.vue\"),\n);\n\n//Props \nconst props = withDefaults(defineProps<{\n first?: number;\n size?: number;\n query?: string;\n participantId?: number;\n name?: string;\n emissionId?: number;\n categoryFilter?: boolean;\n reload?: boolean;\n editRight?: boolean;\n productorId?: Array<string>;\n showCount?: boolean;\n forceUpdateParameters?: boolean;\n /**\n * Emission for which to display podcasts\n * If set, will check for seasons\n */\n emission?: Emission;\n}>(), {\n first: 0,\n size: 30\n});\n\n//Emits\nconst emit = defineEmits<{\n (e: \"fetch\", podcasts: Array<Podcast>, season: number|undefined): void;\n (e: \"update:query\", query: string): void;\n}>();\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst searchPattern = ref(props.query ?? \"\");\nconst reloadList = ref(false);\nconst iabId : Ref<number | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst { areSeasonsEnabled, getMaxSeason } = useSeasonsManagement();\n\n//Computed\nconst titleFilter = computed(() => {\n return props.name\n ? t(\"All podcast button\", { name: props.name })\n : t(\"All podcast emission button\");\n});\nconst query = computed(() => searchPattern.value.length > 3 ? searchPattern.value : \"\");\n\nconst showSeasons = computed(() => {\n return props.emission !== undefined && areSeasonsEnabled(props.emission) && (props.emission.seasons?.length ?? 0) > 0;\n});\n\nconst seasons = computed((): Array<number> => [...props.emission.seasons].sort());\n\nconst activeSeasonTab = ref(showSeasons.value ? props.emission.seasons?.indexOf(getMaxSeason(props.emission)) ?? 0 : 0);\n\nconst sort = computed((): PodcastSort => {\n if(showSeasons.value === true) {\n return PodcastSort.SEASONAL;\n } else if(!query.value.length) {\n return PodcastSort.DATE;\n } else {\n return PodcastSort.SCORE;\n }\n});\n\n//Watch\nwatch(()=>props.reload, () => {\n reloadList.value = !reloadList.value;\n});\nwatch(searchPattern, () => {\n emit('update:query', searchPattern.value);\n});\n\n//Methods\nfunction onCategorySelected(category: Category | undefined): void {\n iabId.value = category?.id ? category.id : undefined;\n}\nfunction fetch(podcasts: Array<Podcast>, season?: number): void {\n emit(\"fetch\", podcasts, season);\n}\n\n/** Name of the slot for the tab's title */\nfunction tabNameSlot(index: number): string {\n return `${index}`;\n}\n/** Name of the slot for the tab's content */\nfunction tabContentSlot(index: number): string {\n return `tab${index}`;\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PodcastFilterList-CBWs4fv5.mjs","names":[],"sources":["../src/components/display/podcasts/PodcastFilterList.vue","../src/components/display/podcasts/PodcastFilterList.vue"],"sourcesContent":["<template>\n <section class=\"py-3\">\n <h3 class=\"mb-2\">\n {{ titleFilter }}\n </h3>\n <div class=\"d-flex align-items-stretch flex-wrap mb-2\">\n <div id=\"podcast-filter-list-category-chooser\" class=\"w-50-responsive pe-3\">\n <CategoryChooser\n height=\"100%\"\n :defaultanswer=\"t('No category filter')\"\n @selected=\"onCategorySelected\"\n />\n </div>\n <ClassicSearch\n v-model:text-init=\"searchPattern\"\n class=\"w-50-responsive\"\n id-search=\"podcast-filter-search\"\n :label=\"t('Search')\"\n />\n </div>\n\n <PodcastList\n v-if=\"!showSeasons\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n @fetch=\"fetch\"\n />\n <ClassicNav\n v-else\n v-model:active-tab=\"activeSeasonTab\"\n :tab-number=\"emission.seasons.length\"\n >\n <template v-for=\"(season, i) in seasons\" #[tabNameSlot(i)]>\n {{ $t('Podcast - Season N', { season }) }}\n </template>\n\n <template\n v-for=\"(season, i) in seasons\"\n #[tabContentSlot(i)]\n :key=\"season\"\n >\n <PodcastList\n class=\"flex-grow-1\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n :seasons=\"[season]\"\n @fetch=\"fetch($event, season)\"\n />\n </template>\n </ClassicNav>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicSearch from \"../../form/ClassicSearch.vue\";\nimport PodcastList from \"./PodcastList.vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { defineAsyncComponent, ref, Ref, computed, watch } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nimport ClassicNav from \"../../misc/ClassicNav.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { PodcastSort } from \"../../../api/podcastApi\";\nconst CategoryChooser = defineAsyncComponent(\n () => import(\"../categories/CategoryChooser.vue\"),\n);\n\n//Props \nconst props = withDefaults(defineProps<{\n first?: number;\n size?: number;\n query?: string;\n participantId?: number;\n name?: string;\n emissionId?: number;\n categoryFilter?: boolean;\n reload?: boolean;\n editRight?: boolean;\n productorId?: Array<string>;\n showCount?: boolean;\n forceUpdateParameters?: boolean;\n /**\n * Emission for which to display podcasts\n * If set, will check for seasons\n */\n emission?: Emission;\n}>(), {\n first: 0,\n size: 30\n});\n\n//Emits\nconst emit = defineEmits<{\n (e: \"fetch\", podcasts: Array<Podcast>, season: number|undefined): void;\n (e: \"update:query\", query: string): void;\n}>();\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst searchPattern = ref(props.query ?? \"\");\nconst reloadList = ref(false);\nconst iabId : Ref<number | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst { areSeasonsEnabled, getMaxSeason } = useSeasonsManagement();\n\n//Computed\nconst titleFilter = computed(() => {\n return props.name\n ? t(\"All podcast button\", { name: props.name })\n : t(\"All podcast emission button\");\n});\nconst query = computed(() => searchPattern.value.length > 3 ? searchPattern.value : \"\");\n\nconst showSeasons = computed(() => {\n return props.emission !== undefined && areSeasonsEnabled(props.emission) && (props.emission.seasons?.length ?? 0) > 0;\n});\n\nconst seasons = computed((): Array<number> => [...props.emission.seasons].sort());\n\nconst activeSeasonTab = ref(showSeasons.value ? props.emission.seasons?.indexOf(getMaxSeason(props.emission)) ?? 0 : 0);\n\nconst sort = computed((): PodcastSort => {\n if(showSeasons.value === true) {\n return PodcastSort.SEASONAL;\n } else if(!query.value.length) {\n return PodcastSort.DATE;\n } else {\n return PodcastSort.SCORE;\n }\n});\n\n//Watch\nwatch(()=>props.reload, () => {\n reloadList.value = !reloadList.value;\n});\nwatch(searchPattern, () => {\n emit('update:query', searchPattern.value);\n});\n\n//Methods\nfunction onCategorySelected(category: Category | undefined): void {\n iabId.value = category?.id ? category.id : undefined;\n}\nfunction fetch(podcasts: Array<Podcast>, season?: number): void {\n emit(\"fetch\", podcasts, season);\n}\n\n/** Name of the slot for the tab's title */\nfunction tabNameSlot(index: number): string {\n return `${index}`;\n}\n/** Name of the slot for the tab's content */\nfunction tabContentSlot(index: number): string {\n return `tab${index}`;\n}\n</script>\n","<template>\n <section class=\"py-3\">\n <h3 class=\"mb-2\">\n {{ titleFilter }}\n </h3>\n <div class=\"d-flex align-items-stretch flex-wrap mb-2\">\n <div id=\"podcast-filter-list-category-chooser\" class=\"w-50-responsive pe-3\">\n <CategoryChooser\n height=\"100%\"\n :defaultanswer=\"t('No category filter')\"\n @selected=\"onCategorySelected\"\n />\n </div>\n <ClassicSearch\n v-model:text-init=\"searchPattern\"\n class=\"w-50-responsive\"\n id-search=\"podcast-filter-search\"\n :label=\"t('Search')\"\n />\n </div>\n\n <PodcastList\n v-if=\"!showSeasons\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n @fetch=\"fetch\"\n />\n <ClassicNav\n v-else\n v-model:active-tab=\"activeSeasonTab\"\n :tab-number=\"emission.seasons.length\"\n >\n <template v-for=\"(season, i) in seasons\" #[tabNameSlot(i)]>\n {{ $t('Podcast - Season N', { season }) }}\n </template>\n\n <template\n v-for=\"(season, i) in seasons\"\n #[tabContentSlot(i)]\n :key=\"season\"\n >\n <PodcastList\n class=\"flex-grow-1\"\n :first=\"dfirst\"\n :size=\"dsize\"\n :iab-id=\"iabId\"\n :query=\"query\"\n :participant-id=\"participantId\"\n :emission-id=\"emissionId\"\n :organisation-id=\"productorId\"\n :sort-criteria=\"sort\"\n :reload=\"reloadList\"\n :include-hidden=\"editRight\"\n :show-count=\"showCount\"\n :display-sort-text=\"false\"\n :force-update-parameters=\"forceUpdateParameters\"\n :seasons=\"[season]\"\n @fetch=\"fetch($event, season)\"\n />\n </template>\n </ClassicNav>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicSearch from \"../../form/ClassicSearch.vue\";\nimport PodcastList from \"./PodcastList.vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { defineAsyncComponent, ref, Ref, computed, watch } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nimport ClassicNav from \"../../misc/ClassicNav.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { PodcastSort } from \"../../../api/podcastApi\";\nconst CategoryChooser = defineAsyncComponent(\n () => import(\"../categories/CategoryChooser.vue\"),\n);\n\n//Props \nconst props = withDefaults(defineProps<{\n first?: number;\n size?: number;\n query?: string;\n participantId?: number;\n name?: string;\n emissionId?: number;\n categoryFilter?: boolean;\n reload?: boolean;\n editRight?: boolean;\n productorId?: Array<string>;\n showCount?: boolean;\n forceUpdateParameters?: boolean;\n /**\n * Emission for which to display podcasts\n * If set, will check for seasons\n */\n emission?: Emission;\n}>(), {\n first: 0,\n size: 30\n});\n\n//Emits\nconst emit = defineEmits<{\n (e: \"fetch\", podcasts: Array<Podcast>, season: number|undefined): void;\n (e: \"update:query\", query: string): void;\n}>();\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst searchPattern = ref(props.query ?? \"\");\nconst reloadList = ref(false);\nconst iabId : Ref<number | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst { areSeasonsEnabled, getMaxSeason } = useSeasonsManagement();\n\n//Computed\nconst titleFilter = computed(() => {\n return props.name\n ? t(\"All podcast button\", { name: props.name })\n : t(\"All podcast emission button\");\n});\nconst query = computed(() => searchPattern.value.length > 3 ? searchPattern.value : \"\");\n\nconst showSeasons = computed(() => {\n return props.emission !== undefined && areSeasonsEnabled(props.emission) && (props.emission.seasons?.length ?? 0) > 0;\n});\n\nconst seasons = computed((): Array<number> => [...props.emission.seasons].sort());\n\nconst activeSeasonTab = ref(showSeasons.value ? props.emission.seasons?.indexOf(getMaxSeason(props.emission)) ?? 0 : 0);\n\nconst sort = computed((): PodcastSort => {\n if(showSeasons.value === true) {\n return PodcastSort.SEASONAL;\n } else if(!query.value.length) {\n return PodcastSort.DATE;\n } else {\n return PodcastSort.SCORE;\n }\n});\n\n//Watch\nwatch(()=>props.reload, () => {\n reloadList.value = !reloadList.value;\n});\nwatch(searchPattern, () => {\n emit('update:query', searchPattern.value);\n});\n\n//Methods\nfunction onCategorySelected(category: Category | undefined): void {\n iabId.value = category?.id ? category.id : undefined;\n}\nfunction fetch(podcasts: Array<Podcast>, season?: number): void {\n emit(\"fetch\", podcasts, season);\n}\n\n/** Name of the slot for the tab's title */\nfunction tabNameSlot(index: number): string {\n return `${index}`;\n}\n/** Name of the slot for the tab's content */\nfunction tabContentSlot(index: number): string {\n return `tab${index}`;\n}\n</script>\n"],"mappings":"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"}
|