@saooti/octopus-sdk 42.1.0 → 42.1.2
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-BDxs2o7K.mjs +429 -0
- package/dist/AdvancedSearch-BDxs2o7K.mjs.map +1 -0
- package/dist/AdvancedSearch-BHnCcqYo.mjs.map +1 -0
- package/dist/AdvancedSearch-BKZL4Og4.mjs.map +1 -0
- package/dist/AdvancedSearch-CARbyVFc.mjs.map +1 -0
- package/dist/AdvancedSearch-CzWBQyRR.mjs.map +1 -0
- package/dist/AdvancedSearch-DM5MiCRf.mjs.map +1 -0
- package/dist/AdvancedSearch-Wbmubxbf.mjs.map +1 -0
- package/dist/CategoryFilter-BpAevuLH.mjs.map +1 -0
- package/dist/CategoryFilter-BpgBUxCX.mjs.map +1 -0
- package/dist/CategoryFilter-BtvszT_D.mjs +237 -0
- package/dist/CategoryFilter-BtvszT_D.mjs.map +1 -0
- package/dist/CategoryFilter-D-eWUCe_.mjs.map +1 -0
- package/dist/CategoryFilter-D38WmeC3.mjs.map +1 -0
- package/dist/CategoryFilter-DLSD7boE.mjs.map +1 -0
- package/dist/CategoryFilter-DbsUFHSn.mjs.map +1 -0
- package/dist/CategoryList-BirNjSgi.mjs +182 -0
- package/dist/CategoryList-BirNjSgi.mjs.map +1 -0
- package/dist/CategoryList-BrImjKgB.mjs.map +1 -0
- package/dist/CategoryList-BwqfZEqt.mjs.map +1 -0
- package/dist/CategoryList-C-v_Us7L.mjs.map +1 -0
- package/dist/CategoryList-CvNF6D7q.mjs.map +1 -0
- package/dist/CategoryList-DiSaK_Hw.mjs.map +1 -0
- package/dist/CategoryList-DpDoSFYT.mjs.map +1 -0
- package/dist/CategoryPage-BSD7wvZY.mjs.map +1 -0
- package/dist/CategoryPage-C5eTwFuy.mjs.map +1 -0
- package/dist/CategoryPage-Ck7xTJ1X.mjs.map +1 -0
- package/dist/CategoryPage-CmX_-CLt.mjs.map +1 -0
- package/dist/CategoryPage-CnGzdY2g.mjs.map +1 -0
- package/dist/CategoryPage-D5i0OhIn.mjs.map +1 -0
- package/dist/CategoryPage-D7FVaEMo.mjs.map +1 -0
- package/dist/CategoryPage-ymiYVbKH.mjs.map +1 -0
- package/dist/CategoryPage-zRFFW7lm.mjs +57 -0
- package/dist/CategoryPage-zRFFW7lm.mjs.map +1 -0
- package/dist/ChapteringModal-BT3rYLl7.mjs.map +1 -0
- package/dist/ChapteringModal-CZxza2Hl.mjs.map +1 -0
- package/dist/ChapteringModal-DF99rhXl.mjs.map +1 -0
- package/dist/ChapteringModal-DSrRb0wM.mjs +82 -0
- package/dist/ChapteringModal-DSrRb0wM.mjs.map +1 -0
- package/dist/ChapteringModal-DYg4Rsyc.mjs.map +1 -0
- package/dist/ChapteringModal-mbAIsypl.mjs.map +1 -0
- package/dist/ChapteringModal-nWgj6pH1.mjs.map +1 -0
- package/dist/CheckIdentityModal-9R4NGHGc.mjs.map +1 -0
- package/dist/CheckIdentityModal-B1TGBzW-.mjs.map +1 -0
- package/dist/CheckIdentityModal-BeoPGlll.mjs +86 -0
- package/dist/CheckIdentityModal-BeoPGlll.mjs.map +1 -0
- package/dist/CheckIdentityModal-C-LeNKnp.mjs.map +1 -0
- package/dist/CheckIdentityModal-CVh4TWaA.mjs.map +1 -0
- package/dist/CheckIdentityModal-DG5UwIww.mjs.map +1 -0
- package/dist/CheckIdentityModal-DgfR8eN8.mjs.map +1 -0
- package/dist/CheckIdentityModal-Du2Jqur2.mjs.map +1 -0
- package/dist/ClassicAlert-DUQplMvs.mjs +85 -0
- package/dist/ClassicInputText-D2wR2cwa.mjs +371 -0
- package/dist/ClassicInputText-D2wR2cwa.mjs.map +1 -0
- package/dist/ClassicWysiwyg-Bew6KMXn.mjs +230 -0
- package/dist/ClassicWysiwyg-Bew6KMXn.mjs.map +1 -0
- package/dist/ClipboardModal-7VJwXjk7.mjs.map +1 -0
- package/dist/ClipboardModal-BNGanHiD.mjs.map +1 -0
- package/dist/ClipboardModal-BXQoN3az.mjs.map +1 -0
- package/dist/ClipboardModal-BeGqMvLb.mjs.map +1 -0
- package/dist/ClipboardModal-CS-czxOJ.mjs.map +1 -0
- package/dist/ClipboardModal-Dm9Z1sRK.mjs +84 -0
- package/dist/ClipboardModal-Dm9Z1sRK.mjs.map +1 -0
- package/dist/ClipboardModal-PbKpLGXl.mjs.map +1 -0
- package/dist/CommentBasicView-BIiF59xV.mjs +129 -0
- package/dist/CommentInput-BHP1nNsj.mjs.map +1 -0
- package/dist/CommentInput-BJTzH-_a.mjs.map +1 -0
- package/dist/CommentInput-BS_2bqYB.mjs.map +1 -0
- package/dist/CommentInput-Bp_Tu2c1.mjs.map +1 -0
- package/dist/CommentInput-C5ZDqAmV.mjs.map +1 -0
- package/dist/CommentInput-CnLukNZs.mjs.map +1 -0
- package/dist/CommentInput-DRmRcSy-.mjs.map +1 -0
- package/dist/CommentInput-yE5YpwPd.mjs +186 -0
- package/dist/CommentInput-yE5YpwPd.mjs.map +1 -0
- package/dist/CommentItem-B3jrVyCL.mjs.map +1 -0
- package/dist/CommentItem-B95BndID.mjs +232 -0
- package/dist/CommentItem-B95BndID.mjs.map +1 -0
- package/dist/CommentItem-BbVr_2V6.mjs.map +1 -0
- package/dist/CommentItem-CYzCxLtJ.mjs.map +1 -0
- package/dist/CommentItem-Czdd1oCE.mjs.map +1 -0
- package/dist/CommentItem-D39oSH9h.mjs.map +1 -0
- package/dist/CommentItem-DCzZsT7J.mjs.map +1 -0
- package/dist/CommentItem-DPieWrkL.mjs.map +1 -0
- package/dist/CommentItem-DmyqQ7Z6.mjs.map +1 -0
- package/dist/CommentItem-Vvd1NE_W.mjs.map +1 -0
- package/dist/CommentItem-vMMaiTCB.mjs.map +1 -0
- package/dist/CommentList-AZvaBFne.mjs.map +1 -0
- package/dist/CommentList-AwpVcpBT.mjs.map +1 -0
- package/dist/CommentList-BcFHoPtE.mjs.map +1 -0
- package/dist/CommentList-BiDfTOiB.mjs.map +1 -0
- package/dist/CommentList-Bms6vEQA.mjs.map +1 -0
- package/dist/CommentList-CeoSTTP_.mjs.map +1 -0
- package/dist/CommentList-Cn5TPBet.mjs.map +1 -0
- package/dist/CommentList-D0WPAZgF.mjs.map +1 -0
- package/dist/CommentList-Dj_kHO7R.mjs.map +1 -0
- package/dist/CommentList-Iyun_PoW.mjs.map +1 -0
- package/dist/CommentList-l9y2S0t4.mjs +302 -0
- package/dist/CommentList-l9y2S0t4.mjs.map +1 -0
- package/dist/CommentMoreActions-BAroeo8E.mjs.map +1 -0
- package/dist/CommentMoreActions-BLA7K7Wk.mjs.map +1 -0
- package/dist/CommentMoreActions-BR4CRRey.mjs.map +1 -0
- package/dist/CommentMoreActions-CrVm5-lX.mjs.map +1 -0
- package/dist/CommentMoreActions-DL8XqQRk.mjs.map +1 -0
- package/dist/CommentMoreActions-Q4pEU-LO.mjs.map +1 -0
- package/dist/CommentMoreActions-Tqomh5Yr.mjs.map +1 -0
- package/dist/CommentMoreActions-tL6Uqw1X.mjs +286 -0
- package/dist/CommentMoreActions-tL6Uqw1X.mjs.map +1 -0
- package/dist/CommentName-5ZjKhTYa.mjs.map +1 -0
- package/dist/CommentName-BXD3T5EZ.mjs.map +1 -0
- package/dist/CommentName-D6y51EaZ.mjs.map +1 -0
- package/dist/CommentName-Dg4--t-W.mjs +96 -0
- package/dist/CommentName-Dg4--t-W.mjs.map +1 -0
- package/dist/CommentName-Dlnmhpr3.mjs.map +1 -0
- package/dist/CommentName-DxVYb9pg.mjs.map +1 -0
- package/dist/CommentName-RfqW4AQ6.mjs.map +1 -0
- package/dist/CommentName-sDkjL2pg.mjs.map +1 -0
- package/dist/CommentParentInfo-8jbjym0a.mjs +64 -0
- package/dist/CommentParentInfo-8jbjym0a.mjs.map +1 -0
- package/dist/CommentParentInfo-9pG8GbXZ.mjs.map +1 -0
- package/dist/CommentParentInfo-C8OdTBnA.mjs.map +1 -0
- package/dist/CommentParentInfo-CR723vnS.mjs.map +1 -0
- package/dist/CommentParentInfo-CbW6NDS2.mjs.map +1 -0
- package/dist/CommentParentInfo-CmJmczbB.mjs.map +1 -0
- package/dist/CommentParentInfo-DNRID2W9.mjs.map +1 -0
- package/dist/CommentParentInfo-DvhjIGxr.mjs.map +1 -0
- package/dist/CommentParentInfo-Sr7QsGrE.mjs.map +1 -0
- package/dist/CommentPlayer-BAqa0jnq.mjs.map +1 -0
- package/dist/CommentPlayer-CbcrWm1W.mjs.map +1 -0
- package/dist/CommentPlayer-Ckqy3Uy2.mjs.map +1 -0
- package/dist/CommentPlayer-DG-Vm9oa.mjs.map +1 -0
- package/dist/CommentPlayer-DWWiCxmf.mjs.map +1 -0
- package/dist/CommentPlayer-RqOzQeht.mjs.map +1 -0
- package/dist/CommentPlayer-lesewf4s.mjs +86 -0
- package/dist/CommentPlayer-lesewf4s.mjs.map +1 -0
- package/dist/CommentSection-0qvo2Lir.mjs.map +1 -0
- package/dist/CommentSection-B1No9DSa.mjs.map +1 -0
- package/dist/CommentSection-BH0240SR.mjs.map +1 -0
- package/dist/CommentSection-BRUVbqPQ.mjs +141 -0
- package/dist/CommentSection-BRUVbqPQ.mjs.map +1 -0
- package/dist/CommentSection-BW11Kkmw.mjs.map +1 -0
- package/dist/CommentSection-CGRHE7GP.mjs.map +1 -0
- package/dist/CommentSection-CLvjEX6w.mjs.map +1 -0
- package/dist/CommentSection-CRfcutkV.mjs.map +1 -0
- package/dist/CommentSection-ClFb7E4o.mjs.map +1 -0
- package/dist/CommentSection-CsyPvXiH.mjs.map +1 -0
- package/dist/CommentSection-DPMfFBSU.mjs.map +1 -0
- package/dist/CommentStore-B68P59zw.mjs.map +1 -0
- package/dist/CommentStore-BTml7qHF.mjs.map +1 -0
- package/dist/CommentStore-BwTJgPTy.mjs.map +1 -0
- package/dist/CommentStore-C1k1GX5R.mjs.map +1 -0
- package/dist/CommentStore-C9bhViPU.mjs +355 -0
- package/dist/CommentStore-C9bhViPU.mjs.map +1 -0
- package/dist/CommentStore-Ce-VQB6Q.mjs.map +1 -0
- package/dist/CommentStore-WgCnFHHi.mjs.map +1 -0
- package/dist/ContractPreviewModal-B9TjRP6t.mjs.map +1 -0
- package/dist/ContractPreviewModal-BrB9KaNH.mjs.map +1 -0
- package/dist/ContractPreviewModal-DB0Uv_bC.mjs.map +1 -0
- package/dist/ContractPreviewModal-DDJNYv49.mjs +101 -0
- package/dist/ContractPreviewModal-DDJNYv49.mjs.map +1 -0
- package/dist/ContractPreviewModal-Dlnmubps.mjs.map +1 -0
- package/dist/ContractPreviewModal-Duqx-yDT.mjs.map +1 -0
- package/dist/ContractPreviewModal-nMZHO_9q.mjs.map +1 -0
- package/dist/DownloadPodcastButton-BDYJT1At.mjs.map +1 -0
- package/dist/DownloadPodcastButton-C9RI5S7T.mjs.map +1 -0
- package/dist/DownloadPodcastButton-CQFTSstH.mjs.map +1 -0
- package/dist/DownloadPodcastButton-CvO14B8j.mjs.map +1 -0
- package/dist/DownloadPodcastButton-DAH2mwB3.mjs.map +1 -0
- package/dist/DownloadPodcastButton-DXJGjfIn.mjs +53 -0
- package/dist/DownloadPodcastButton-DXJGjfIn.mjs.map +1 -0
- package/dist/DownloadPodcastButton-DunrZi_3.mjs.map +1 -0
- package/dist/EditCommentModal-BHmUXtiy.mjs.map +1 -0
- package/dist/EditCommentModal-Bs7nuqdq.mjs.map +1 -0
- package/dist/EditCommentModal-Czp-qN4t.mjs +162 -0
- package/dist/EditCommentModal-Czp-qN4t.mjs.map +1 -0
- package/dist/EditCommentModal-D90FgueB.mjs.map +1 -0
- package/dist/EditCommentModal-DXo4LVcx.mjs.map +1 -0
- package/dist/EditCommentModal-SelQld7b.mjs.map +1 -0
- package/dist/EditCommentModal-dnPijKAh.mjs.map +1 -0
- package/dist/EditCommentModal-ntxMdZu5.mjs.map +1 -0
- package/dist/EmissionGroupChooser-BWcOXb7T.mjs.map +1 -0
- package/dist/EmissionGroupChooser-CFP7ChoW.mjs.map +1 -0
- package/dist/EmissionGroupChooser-DArypPDT.mjs.map +1 -0
- package/dist/EmissionGroupChooser-Dy1hnlF_.mjs.map +1 -0
- package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs +82 -0
- package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs.map +1 -0
- package/dist/EmissionGroupChooser-ylVvYy2W.mjs.map +1 -0
- package/dist/EmissionGroupChooser-zSxcBqKm.mjs.map +1 -0
- package/dist/EmissionInlineList-BH4EgEIF.mjs.map +1 -0
- package/dist/EmissionInlineList-B_HOW86o.mjs.map +1 -0
- package/dist/EmissionInlineList-Bqvh02uF.mjs +188 -0
- package/dist/EmissionInlineList-Bqvh02uF.mjs.map +1 -0
- package/dist/EmissionInlineList-CBmzKWGR.mjs.map +1 -0
- package/dist/EmissionInlineList-CO8i9b1t.mjs.map +1 -0
- package/dist/EmissionInlineList-Ciye_EZb.mjs.map +1 -0
- package/dist/EmissionInlineList-nNNANPRs.mjs.map +1 -0
- package/dist/EmissionItem-4CsF574w.mjs.map +1 -0
- package/dist/EmissionItem-BhghTyeT.mjs.map +1 -0
- package/dist/EmissionItem-Bv7O9sQY.mjs.map +1 -0
- package/dist/EmissionItem-DC_Gc-Yw.mjs.map +1 -0
- package/dist/EmissionItem-DoBM2Zk2.mjs +183 -0
- package/dist/EmissionItem-DoBM2Zk2.mjs.map +1 -0
- package/dist/EmissionItem-M-lMW-jg.mjs.map +1 -0
- package/dist/EmissionItem-VxhfrUve.mjs.map +1 -0
- package/dist/EmissionItem-aVrOlqEx.mjs.map +1 -0
- package/dist/EmissionItem-imaccCr_.mjs.map +1 -0
- package/dist/EmissionList-BQ1mTIYn.mjs.map +1 -0
- package/dist/EmissionList-BRPN4Bbj.mjs.map +1 -0
- package/dist/EmissionList-BYIBfZWr.mjs.map +1 -0
- package/dist/EmissionList-Bh3ZlvV4.mjs +325 -0
- package/dist/EmissionList-Bh3ZlvV4.mjs.map +1 -0
- package/dist/EmissionList-CCfo5-ne.mjs.map +1 -0
- package/dist/EmissionList-CyEpkgR4.mjs.map +1 -0
- package/dist/EmissionList-DCeUp8TW.mjs.map +1 -0
- package/dist/EmissionList-DJydSpE4.mjs.map +1 -0
- package/dist/EmissionList-WYL-BhnJ.mjs.map +1 -0
- package/dist/EmissionPage-B2oy9fmW.mjs.map +1 -0
- package/dist/EmissionPage-BG6RIWP2.mjs +322 -0
- package/dist/EmissionPage-BG6RIWP2.mjs.map +1 -0
- package/dist/EmissionPage-BTfSMrZf.mjs.map +1 -0
- package/dist/EmissionPage-BpAJ1yOV.mjs.map +1 -0
- package/dist/EmissionPage-BzQpG8xt.mjs.map +1 -0
- package/dist/EmissionPage-Cf529LJJ.mjs.map +1 -0
- package/dist/EmissionPage-CwwNOUrQ.mjs.map +1 -0
- package/dist/EmissionPage-DCdIpmQo.mjs.map +1 -0
- package/dist/EmissionPage-DFnA4TXs.mjs.map +1 -0
- package/dist/EmissionPlayerItem-C3gZhSS3.mjs.map +1 -0
- package/dist/EmissionPlayerItem-CX-QVZ9s.mjs.map +1 -0
- package/dist/EmissionPlayerItem-CmghDKRx.mjs.map +1 -0
- package/dist/EmissionPlayerItem-CoeKMQgN.mjs.map +1 -0
- package/dist/EmissionPlayerItem-CvoVh-dC.mjs +167 -0
- package/dist/EmissionPlayerItem-CvoVh-dC.mjs.map +1 -0
- package/dist/EmissionPlayerItem-D1Ebv-_R.mjs.map +1 -0
- package/dist/EmissionPlayerItem-D6BXdTio.mjs.map +1 -0
- package/dist/EmissionPresentationItem-B2PbYGuW.mjs +78 -0
- package/dist/EmissionPresentationItem-B2PbYGuW.mjs.map +1 -0
- package/dist/EmissionPresentationItem-BQo96is9.mjs.map +1 -0
- package/dist/EmissionPresentationItem-CC_LJc4L.mjs.map +1 -0
- package/dist/EmissionPresentationItem-CQvXZ8NH.mjs.map +1 -0
- package/dist/EmissionPresentationItem-DGNyBwfe.mjs.map +1 -0
- package/dist/EmissionPresentationItem-hWnX_Niv.mjs.map +1 -0
- package/dist/EmissionPresentationItem-qoHKghk0.mjs.map +1 -0
- package/dist/EmissionPresentationList-B2NzHsFl.mjs.map +1 -0
- package/dist/EmissionPresentationList-BQfeuKW5.mjs.map +1 -0
- package/dist/EmissionPresentationList-BXNJsC5t.mjs +125 -0
- package/dist/EmissionPresentationList-BXNJsC5t.mjs.map +1 -0
- package/dist/EmissionPresentationList-CHFD5_a2.mjs.map +1 -0
- package/dist/EmissionPresentationList-D0TKOmTK.mjs.map +1 -0
- package/dist/EmissionPresentationList-Ddvukpya.mjs.map +1 -0
- package/dist/EmissionPresentationList-DnnKYjsb.mjs.map +1 -0
- package/dist/EmissionsPage-4WdKVeuO.mjs.map +1 -0
- package/dist/EmissionsPage-A04HnSMy.mjs.map +1 -0
- package/dist/EmissionsPage-B1arrsZ7.mjs +199 -0
- package/dist/EmissionsPage-B1arrsZ7.mjs.map +1 -0
- package/dist/EmissionsPage-B6SUW-vO.mjs.map +1 -0
- package/dist/EmissionsPage-BvF7n3Yb.mjs.map +1 -0
- package/dist/EmissionsPage-CNFwsWQZ.mjs.map +1 -0
- package/dist/EmissionsPage-CduOfydR.mjs.map +1 -0
- package/dist/EmissionsPage-Cf94lGLe.mjs.map +1 -0
- package/dist/EmissionsPage-O86N2cgU.mjs.map +1 -0
- package/dist/Error403Page-B9KNl0uP.mjs.map +1 -0
- package/dist/Error403Page-BLJFuPG2.mjs.map +1 -0
- package/dist/Error403Page-BmdiuBiS.mjs.map +1 -0
- package/dist/Error403Page-Bpi0DQqg.mjs.map +1 -0
- package/dist/Error403Page-Bv-DWyb6.mjs +69 -0
- package/dist/Error403Page-Bv-DWyb6.mjs.map +1 -0
- package/dist/Error403Page-D4NmqstJ.mjs.map +1 -0
- package/dist/Error403Page-DO2cfKKn.mjs.map +1 -0
- package/dist/ErrorMessage-D2XAzxpC.mjs +44 -0
- package/dist/FooterGarSection-77dYJO_c.mjs +71 -0
- package/dist/FooterGarSection-77dYJO_c.mjs.map +1 -0
- package/dist/FooterGarSection-D4m9HB_o.mjs.map +1 -0
- package/dist/FooterGarSection-DQpsC2u3.mjs.map +1 -0
- package/dist/FooterGarSection-DVMJjVGm.mjs.map +1 -0
- package/dist/FooterGarSection-JoXm35Vy.mjs.map +1 -0
- package/dist/FooterGarSection-SpmxTFrf.mjs.map +1 -0
- package/dist/FooterGarSection-t4vNUGXJ.mjs.map +1 -0
- package/dist/FooterSection-B1hXBiqI.mjs +242 -0
- package/dist/FooterSection-B1hXBiqI.mjs.map +1 -0
- package/dist/FooterSection-BAJcoVwL.mjs.map +1 -0
- package/dist/FooterSection-Bq3lB2TI.mjs.map +1 -0
- package/dist/FooterSection-C5CqAdjV.mjs.map +1 -0
- package/dist/FooterSection-CsQxaQcK.mjs.map +1 -0
- package/dist/FooterSection-DuQdO0l0.mjs.map +1 -0
- package/dist/FooterSection-XGEgsnuF.mjs.map +1 -0
- package/dist/FooterSection-mtZULuem.mjs.map +1 -0
- package/dist/HomeDropdown-87gJP-lN.mjs +110 -0
- package/dist/HomeDropdown-87gJP-lN.mjs.map +1 -0
- package/dist/HomeDropdown-CDNruBUp.mjs.map +1 -0
- package/dist/HomeDropdown-COZXjE97.mjs.map +1 -0
- package/dist/HomeDropdown-CbsZFW4n.mjs.map +1 -0
- package/dist/HomeDropdown-CjYjgO1n.mjs.map +1 -0
- package/dist/HomeDropdown-CxQn-jPC.mjs.map +1 -0
- package/dist/HomeDropdown-DEIBKTqy.mjs.map +1 -0
- package/dist/HomePage-1jBFTx4x.mjs.map +1 -0
- package/dist/HomePage-B5guMcf_.mjs.map +1 -0
- package/dist/HomePage-BapL4kmy.mjs.map +1 -0
- package/dist/HomePage-Brr9jjcQ.mjs +166 -0
- package/dist/HomePage-Brr9jjcQ.mjs.map +1 -0
- package/dist/HomePage-C8nsZZ_c.mjs.map +1 -0
- package/dist/HomePage-CP_NQ_PF.mjs.map +1 -0
- package/dist/HomePage-DnHbPmY9.mjs.map +1 -0
- package/dist/HomePage-Dxhi0hWO.mjs.map +1 -0
- package/dist/HomePage-MPbx0_Rn.mjs.map +1 -0
- package/dist/LikeSection-1P9-7FQ5.mjs +167 -0
- package/dist/LikeSection-1P9-7FQ5.mjs.map +1 -0
- package/dist/LikeSection-BTmkwQD8.mjs.map +1 -0
- package/dist/LikeSection-BUY3_ffV.mjs.map +1 -0
- package/dist/LikeSection-B_WX9gZJ.mjs.map +1 -0
- package/dist/LikeSection-BaUfRdSh.mjs.map +1 -0
- package/dist/LikeSection-CComV07M.mjs.map +1 -0
- package/dist/LikeSection-Cdz0IJU0.mjs.map +1 -0
- package/dist/LikeSection-U8EqRJ-f.mjs.map +1 -0
- package/dist/ListPaginate-8oxuFw7s.mjs.map +1 -0
- package/dist/ListPaginate-Brg8Wr3w.mjs.map +1 -0
- package/dist/ListPaginate-CEgFM1e5.mjs +202 -0
- package/dist/ListPaginate-CEgFM1e5.mjs.map +1 -0
- package/dist/ListPaginate-COITr_yE.mjs.map +1 -0
- package/dist/ListPaginate-DdKoq0e5.mjs.map +1 -0
- package/dist/ListPaginate-FHXkQDy8.mjs.map +1 -0
- package/dist/ListPaginate-zVukPB6N.mjs.map +1 -0
- package/dist/LiveHorizontalList-7JGEvrpb.mjs.map +1 -0
- package/dist/LiveHorizontalList-B1SBPu5Q.mjs.map +1 -0
- package/dist/LiveHorizontalList-B2xa65mW.mjs.map +1 -0
- package/dist/LiveHorizontalList-BUvldEM0.mjs.map +1 -0
- package/dist/LiveHorizontalList-C1hlGGKj.mjs.map +1 -0
- package/dist/LiveHorizontalList-CE9LoLWi.mjs.map +1 -0
- package/dist/LiveHorizontalList-DPNeqKTt.mjs.map +1 -0
- package/dist/LiveHorizontalList-G4GVIv-L.mjs +136 -0
- package/dist/LiveHorizontalList-G4GVIv-L.mjs.map +1 -0
- package/dist/LiveHorizontalList-X8_qayl-.mjs.map +1 -0
- package/dist/LiveList-BbuHhQob.mjs.map +1 -0
- package/dist/LiveList-BiODr6Zp.mjs +324 -0
- package/dist/LiveList-BiODr6Zp.mjs.map +1 -0
- package/dist/LiveList-CPABb0tx.mjs.map +1 -0
- package/dist/LiveList-CR-jqjcU.mjs.map +1 -0
- package/dist/LiveList-DSogJX1N.mjs.map +1 -0
- package/dist/LiveList-DkZ1l2Xt.mjs.map +1 -0
- package/dist/LiveList-Dr_7cqG_.mjs.map +1 -0
- package/dist/LiveList-dc4ARAq2.mjs.map +1 -0
- package/dist/LiveList-oosaj9TJ.mjs.map +1 -0
- package/dist/LivesPage-BHmymrRD.mjs.map +1 -0
- package/dist/LivesPage-BPwVGQdv.mjs.map +1 -0
- package/dist/LivesPage-BfhAMY15.mjs.map +1 -0
- package/dist/LivesPage-CAa4XsJW.mjs.map +1 -0
- package/dist/LivesPage-CHLwG5gj.mjs.map +1 -0
- package/dist/LivesPage-DGA3L9AW.mjs.map +1 -0
- package/dist/LivesPage-DIjoqz-K.mjs.map +1 -0
- package/dist/LivesPage-LF5yGp4X.mjs.map +1 -0
- package/dist/LivesPage-vu6VOIIy.mjs +76 -0
- package/dist/LivesPage-vu6VOIIy.mjs.map +1 -0
- package/dist/MapPage-BAdp_uyS.mjs.map +1 -0
- package/dist/MapPage-BUwYdsZz.mjs.map +1 -0
- package/dist/MapPage-CP0LRWUV.mjs.map +1 -0
- package/dist/MapPage-DmEdjPRe.mjs +303 -0
- package/dist/MapPage-DmEdjPRe.mjs.map +1 -0
- package/dist/MapPage-Dr-Lo2xc.mjs.map +1 -0
- package/dist/MapPage-DsNW6bfn.mjs.map +1 -0
- package/dist/MapPage-acIILN8p.mjs.map +1 -0
- package/dist/MobileMenu-B8KrEHS7.mjs.map +1 -0
- package/dist/MobileMenu-BBX4HKwH.mjs.map +1 -0
- package/dist/MobileMenu-Bz6UhLWC.mjs.map +1 -0
- package/dist/MobileMenu-C3Ti4eGr.mjs.map +1 -0
- package/dist/MobileMenu-C4rmAeeO.mjs.map +1 -0
- package/dist/MobileMenu-D_oFeqsX.mjs.map +1 -0
- package/dist/MobileMenu-xNe7tNdx.mjs +187 -0
- package/dist/MobileMenu-xNe7tNdx.mjs.map +1 -0
- package/dist/NewsletterModal-C0yXR-kQ.mjs.map +1 -0
- package/dist/NewsletterModal-Cdyqy09L.mjs.map +1 -0
- package/dist/NewsletterModal-D586dru6.mjs.map +1 -0
- package/dist/NewsletterModal-DNrt2N6S.mjs.map +1 -0
- package/dist/NewsletterModal-LqgD6CbF.mjs +82 -0
- package/dist/NewsletterModal-LqgD6CbF.mjs.map +1 -0
- package/dist/NewsletterModal-nsrnL-nQ.mjs.map +1 -0
- package/dist/NewsletterModal-uv5C55km.mjs.map +1 -0
- package/dist/OrganisationChooser-BiNMu3dn.mjs +190 -0
- package/dist/OrganisationChooser-BiNMu3dn.mjs.map +1 -0
- package/dist/OrganisationChooser-CTkEs5Lk.mjs.map +1 -0
- package/dist/OrganisationChooser-D2PVq36_.mjs.map +1 -0
- package/dist/OrganisationChooser-D4pgbdT9.mjs.map +1 -0
- package/dist/OrganisationChooser-Df1zfiwF.mjs.map +1 -0
- package/dist/OrganisationChooser-DsfCK19O.mjs.map +1 -0
- package/dist/OrganisationChooser-RBwmBNhI.mjs.map +1 -0
- package/dist/OrganisationChooserLight-BJwIMZ6G.mjs +84 -0
- package/dist/OrganisationChooserLight-BJwIMZ6G.mjs.map +1 -0
- package/dist/OrganisationChooserLight-BsmG2mng.mjs.map +1 -0
- package/dist/OrganisationChooserLight-C1VGVe3p.mjs.map +1 -0
- package/dist/OrganisationChooserLight-CP3_D7XA.mjs.map +1 -0
- package/dist/OrganisationChooserLight-DI8OeLkm.mjs.map +1 -0
- package/dist/OrganisationChooserLight-Dpi7pho1.mjs.map +1 -0
- package/dist/OrganisationChooserLight-DyisKiU3.mjs.map +1 -0
- package/dist/PageNotFound-5He9oK3T.mjs.map +1 -0
- package/dist/PageNotFound-BILSb0NS.mjs.map +1 -0
- package/dist/PageNotFound-C-HodkyM.mjs.map +1 -0
- package/dist/PageNotFound-CJmz7PmV.mjs.map +1 -0
- package/dist/PageNotFound-ChQf6Ngj.mjs +58 -0
- package/dist/PageNotFound-ChQf6Ngj.mjs.map +1 -0
- package/dist/PageNotFound-D8OzzGBQ.mjs.map +1 -0
- package/dist/PageNotFound-Dl4pr9W6.mjs.map +1 -0
- package/dist/ParticipantInlineList-BEnBWVWR.mjs.map +1 -0
- package/dist/ParticipantInlineList-C0nBiyWg.mjs.map +1 -0
- package/dist/ParticipantInlineList-CRBcuszy.mjs.map +1 -0
- package/dist/ParticipantInlineList-CcCfd9rJ.mjs +117 -0
- package/dist/ParticipantInlineList-CcCfd9rJ.mjs.map +1 -0
- package/dist/ParticipantInlineList-Cnqgz2lu.mjs.map +1 -0
- package/dist/ParticipantInlineList-CrEivwtQ.mjs.map +1 -0
- package/dist/ParticipantInlineList-DR2ZAj4I.mjs.map +1 -0
- package/dist/ParticipantInlineList-NKPnosX0.mjs.map +1 -0
- package/dist/ParticipantInlineList-tRiCRhZT.mjs.map +1 -0
- package/dist/ParticipantItem-BUux9Sod.mjs.map +1 -0
- package/dist/ParticipantItem-Bo3lOYet.mjs.map +1 -0
- package/dist/ParticipantItem-CQkg9uA2.mjs.map +1 -0
- package/dist/ParticipantItem-CYD8mFKj.mjs.map +1 -0
- package/dist/ParticipantItem-Ch4_98y_.mjs +138 -0
- package/dist/ParticipantItem-Ch4_98y_.mjs.map +1 -0
- package/dist/ParticipantItem-Duf1Dqiy.mjs.map +1 -0
- package/dist/ParticipantItem-Py7gMJEO.mjs.map +1 -0
- package/dist/ParticipantItem-cWDpHBmw.mjs.map +1 -0
- package/dist/ParticipantItem-sU3HvxsO.mjs.map +1 -0
- package/dist/ParticipantPage-BjbzvT79.mjs.map +1 -0
- package/dist/ParticipantPage-CFOmsr7J.mjs.map +1 -0
- package/dist/ParticipantPage-CJF_q763.mjs.map +1 -0
- package/dist/ParticipantPage-CayKwqJR.mjs.map +1 -0
- package/dist/ParticipantPage-Cc6c48Re.mjs.map +1 -0
- package/dist/ParticipantPage-D-47wU1r.mjs.map +1 -0
- package/dist/ParticipantPage-DhEts9Fb.mjs.map +1 -0
- package/dist/ParticipantPage-DkQssmwq.mjs.map +1 -0
- package/dist/ParticipantPage-DtAxvp2W.mjs +203 -0
- package/dist/ParticipantPage-DtAxvp2W.mjs.map +1 -0
- package/dist/ParticipantsPage-BQWxk0kn.mjs.map +1 -0
- package/dist/ParticipantsPage-ByDJNNQP.mjs.map +1 -0
- package/dist/ParticipantsPage-BzdpZCDO.mjs +262 -0
- package/dist/ParticipantsPage-BzdpZCDO.mjs.map +1 -0
- package/dist/ParticipantsPage-C0zCaBAN.mjs.map +1 -0
- package/dist/ParticipantsPage-CMlr61eA.mjs.map +1 -0
- package/dist/ParticipantsPage-COkwBD_g.mjs.map +1 -0
- package/dist/ParticipantsPage-CxOpIszl.mjs.map +1 -0
- package/dist/ParticipantsPage-DbCJ_xh8.mjs.map +1 -0
- package/dist/ParticipantsPage-lPPbUyo7.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-7vjldHzL.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-BKSUU6ln.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-BKaI6E9o.mjs +84 -0
- package/dist/PlayerAnonymousModal-BKaI6E9o.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-BtghKP8M.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-Bz_vt6vZ.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-CnKXq6ez.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-ZqyARAv3.mjs.map +1 -0
- package/dist/PlayerCompact-B-WRNyqn.mjs +209 -0
- package/dist/PlayerCompact-B-WRNyqn.mjs.map +1 -0
- package/dist/PlayerCompact-B-x6J7cl.mjs.map +1 -0
- package/dist/PlayerCompact-BzcQcgqX.mjs.map +1 -0
- package/dist/PlayerCompact-CcRdWagH.mjs.map +1 -0
- package/dist/PlayerCompact-D2p0ZIHQ.mjs.map +1 -0
- package/dist/PlayerCompact-aIbQLF3h.mjs.map +1 -0
- package/dist/PlayerCompact-gWt2fJaQ.mjs.map +1 -0
- package/dist/PlayerComponent-BzlYi_Ow.mjs.map +1 -0
- package/dist/PlayerComponent-CBZxYTU1.mjs.map +1 -0
- package/dist/PlayerComponent-CUHTRJic.mjs +929 -0
- package/dist/PlayerComponent-CUHTRJic.mjs.map +1 -0
- package/dist/PlayerComponent-D2h1w9z5.mjs.map +1 -0
- package/dist/PlayerComponent-D4U1OmjB.mjs.map +1 -0
- package/dist/PlayerComponent-Dnqs6S8R.mjs.map +1 -0
- package/dist/PlayerComponent-ZTo5F4BH.mjs.map +1 -0
- package/dist/PlayerLarge-2ekd361u.mjs.map +1 -0
- package/dist/PlayerLarge-BisiuTbM.mjs.map +1 -0
- package/dist/PlayerLarge-Cujee7Yx.mjs.map +1 -0
- package/dist/PlayerLarge-DUX0TfTs.mjs.map +1 -0
- package/dist/PlayerLarge-DmbtYNNk.mjs.map +1 -0
- package/dist/PlayerLarge-Kt-pV6N_.mjs +190 -0
- package/dist/PlayerLarge-Kt-pV6N_.mjs.map +1 -0
- package/dist/PlayerLarge-qjnmbVOv.mjs.map +1 -0
- package/dist/PlayerPlayButton-BPsfZCY3.mjs.map +1 -0
- package/dist/PlayerPlayButton-CAElMmMV.mjs +400 -0
- package/dist/PlayerPlayButton-CAElMmMV.mjs.map +1 -0
- package/dist/PlayerPlayButton-CCjszcz0.mjs.map +1 -0
- package/dist/PlayerPlayButton-Ch13_VDS.mjs.map +1 -0
- package/dist/PlayerPlayButton-Cyrw_cga.mjs.map +1 -0
- package/dist/PlayerPlayButton-XWMj19eH.mjs.map +1 -0
- package/dist/PlayerPlayButton-pCY5tl9N.mjs.map +1 -0
- package/dist/PlayerProgressBar-BAOBWS7y.mjs.map +1 -0
- package/dist/PlayerProgressBar-Bx_i6wnH.mjs.map +1 -0
- package/dist/PlayerProgressBar-CwMFzYDi.mjs.map +1 -0
- package/dist/PlayerProgressBar-D-cNkJmu.mjs.map +1 -0
- package/dist/PlayerProgressBar-DWAyhBWx.mjs +86 -0
- package/dist/PlayerProgressBar-DWAyhBWx.mjs.map +1 -0
- package/dist/PlayerProgressBar-Drigrm0o.mjs.map +1 -0
- package/dist/PlayerProgressBar-MfOUpxGI.mjs.map +1 -0
- package/dist/PlayerStore-7LlyIvl0.mjs.map +1 -0
- package/dist/PlayerStore-7vhL8Npe.mjs +230 -0
- package/dist/PlayerStore-7vhL8Npe.mjs.map +1 -0
- package/dist/PlayerStore-B6kwXQZ8.mjs.map +1 -0
- package/dist/PlayerStore-BvkLLLst.mjs.map +1 -0
- package/dist/PlayerStore-C1tm0Oar.mjs.map +1 -0
- package/dist/PlayerStore-DZiDRLQN.mjs.map +1 -0
- package/dist/PlayerStore-kuZWcb-U.mjs.map +1 -0
- package/dist/PlayerVideo-7nnfCTlR.mjs.map +1 -0
- package/dist/PlayerVideo-BofTa3uM.mjs.map +1 -0
- package/dist/PlayerVideo-BtkR6jg2.mjs.map +1 -0
- package/dist/PlayerVideo-CG_vQWU0.mjs.map +1 -0
- package/dist/PlayerVideo-CJ9eefTe.mjs.map +1 -0
- package/dist/PlayerVideo-Dq7OHOig.mjs +72 -0
- package/dist/PlayerVideo-Dq7OHOig.mjs.map +1 -0
- package/dist/PlayerVideo-DqT3hB5y.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-BFLGMVo-.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-CAmI0Em3.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-Cy0L4YOd.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-DnNkrWIT.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-Dt73T6Qs.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-Dud6Y4wc.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-pNFWNrON.mjs +102 -0
- package/dist/PlayerVideoDigiteka-pNFWNrON.mjs.map +1 -0
- package/dist/PlayerVideoHls-BDDiwxGb.mjs.map +1 -0
- package/dist/PlayerVideoHls-CE2SIkEn.mjs +232 -0
- package/dist/PlayerVideoHls-CE2SIkEn.mjs.map +1 -0
- package/dist/PlayerVideoHls-CoK72Ry1.mjs.map +1 -0
- package/dist/PlayerVideoHls-D-nrZlVs.mjs.map +1 -0
- package/dist/PlayerVideoHls-cotysRp5.mjs.map +1 -0
- package/dist/PlayerVideoHls-jOa02CyD.mjs.map +1 -0
- package/dist/PlayerVideoHls-k_3vIV-3.mjs.map +1 -0
- package/dist/PlaylistPage-BZx9ojty.mjs.map +1 -0
- package/dist/PlaylistPage-CBWEAkDm.mjs.map +1 -0
- package/dist/PlaylistPage-Cb5ukqXZ.mjs +228 -0
- package/dist/PlaylistPage-Cb5ukqXZ.mjs.map +1 -0
- package/dist/PlaylistPage-Cv15l4gs.mjs.map +1 -0
- package/dist/PlaylistPage-D6OVQKg7.mjs.map +1 -0
- package/dist/PlaylistPage-D__PNCOf.mjs.map +1 -0
- package/dist/PlaylistPage-Jv5rPWTt.mjs.map +1 -0
- package/dist/PlaylistPage-Le2dLhgP.mjs.map +1 -0
- package/dist/PlaylistPage-Tbq77bN4.mjs.map +1 -0
- package/dist/PlaylistsPage-BSD4BZop.mjs.map +1 -0
- package/dist/PlaylistsPage-C_aZ8Lzc.mjs.map +1 -0
- package/dist/PlaylistsPage-D8YgTvxe.mjs.map +1 -0
- package/dist/PlaylistsPage-DAVADzhL.mjs +395 -0
- package/dist/PlaylistsPage-DAVADzhL.mjs.map +1 -0
- package/dist/PlaylistsPage-DkkPMbPD.mjs.map +1 -0
- package/dist/PlaylistsPage-MqIyXNlI.mjs.map +1 -0
- package/dist/PlaylistsPage-W-eroSMe.mjs.map +1 -0
- package/dist/PodcastFilterList-CPtCzU9P.mjs.map +1 -0
- package/dist/PodcastFilterList-CmqrA2oC.mjs +254 -0
- package/dist/PodcastFilterList-CmqrA2oC.mjs.map +1 -0
- package/dist/PodcastFilterList-Co_yncww.mjs.map +1 -0
- package/dist/PodcastFilterList-CqqSn_UR.mjs.map +1 -0
- package/dist/PodcastFilterList-CsN5tLJ5.mjs.map +1 -0
- package/dist/PodcastFilterList-DluBCeUz.mjs.map +1 -0
- package/dist/PodcastFilterList-DooOZgn6.mjs.map +1 -0
- package/dist/PodcastFilterList-Dt-zeKoY.mjs.map +1 -0
- package/dist/PodcastFilterList-ScEWo73F.mjs.map +1 -0
- package/dist/PodcastImage-BeXlZu-M.mjs.map +1 -0
- package/dist/PodcastImage-C0y1-_Ef.mjs.map +1 -0
- package/dist/PodcastImage-C21I_lnU.mjs.map +1 -0
- package/dist/PodcastImage-CWKY72t1.mjs.map +1 -0
- package/dist/PodcastImage-CbOp5HBb.mjs.map +1 -0
- package/dist/PodcastImage-DamlmvBn.mjs.map +1 -0
- package/dist/PodcastImage-DsU_qbcI.mjs.map +1 -0
- package/dist/PodcastImage-FhC5F4MR.mjs +174 -0
- package/dist/PodcastImage-FhC5F4MR.mjs.map +1 -0
- package/dist/PodcastImage-fBx9FmaM.mjs.map +1 -0
- package/dist/PodcastInlineList-4uf55RGp.mjs.map +1 -0
- package/dist/PodcastInlineList-BFe-4rfk.mjs.map +1 -0
- package/dist/PodcastInlineList-BP-eXViR.mjs.map +1 -0
- package/dist/PodcastInlineList-CDumc8n6.mjs +138 -0
- package/dist/PodcastInlineList-CDumc8n6.mjs.map +1 -0
- package/dist/PodcastInlineList-CMLSSgCl.mjs.map +1 -0
- package/dist/PodcastInlineList-CoLPUU1O.mjs.map +1 -0
- package/dist/PodcastInlineList-DVEOw_jZ.mjs.map +1 -0
- package/dist/PodcastInlineList-NuchUq3F.mjs.map +1 -0
- package/dist/PodcastInlineList-TrVj1WsC.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-Bif2XHIx.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs +233 -0
- package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-CiXIYnv7.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-CpLRagzE.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-D9_3zHeM.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-DJSNNFOh.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-PnoLyihJ.mjs.map +1 -0
- package/dist/PodcastIsPlaying-640MMTTV.mjs.map +1 -0
- package/dist/PodcastIsPlaying-BfKDPivV.mjs.map +1 -0
- package/dist/PodcastIsPlaying-CjnQmJ0x.mjs.map +1 -0
- package/dist/PodcastIsPlaying-DMXKbEjS.mjs.map +1 -0
- package/dist/PodcastIsPlaying-DpUjmLlW.mjs.map +1 -0
- package/dist/PodcastIsPlaying-DqnPEYSJ.mjs +30 -0
- package/dist/PodcastIsPlaying-DqnPEYSJ.mjs.map +1 -0
- package/dist/PodcastIsPlaying-j9a5pcJu.mjs.map +1 -0
- package/dist/PodcastItem-B2omNjKA.mjs.map +1 -0
- package/dist/PodcastItem-BTKSsuZY.mjs.map +1 -0
- package/dist/PodcastItem-BUe2ZVg7.mjs.map +1 -0
- package/dist/PodcastItem-DlzucX-c.mjs.map +1 -0
- package/dist/PodcastItem-DqcitfgD.mjs.map +1 -0
- package/dist/PodcastItem-_eKhUVGk.mjs.map +1 -0
- package/dist/PodcastItem-a9u75Wpq.mjs.map +1 -0
- package/dist/PodcastItem-cssDzcpa.mjs.map +1 -0
- package/dist/PodcastItem-rF33x3wp.mjs +287 -0
- package/dist/PodcastItem-rF33x3wp.mjs.map +1 -0
- package/dist/PodcastList-3w_q0Qic.mjs.map +1 -0
- package/dist/PodcastList-5vsIa70L.mjs.map +1 -0
- package/dist/PodcastList-ATGmVU1-.mjs.map +1 -0
- package/dist/PodcastList-B20GtO2V.mjs.map +1 -0
- package/dist/PodcastList-BSKlfx8q.mjs.map +1 -0
- package/dist/PodcastList-BV902l6U.mjs.map +1 -0
- package/dist/PodcastList-BWYRh4OU.mjs.map +1 -0
- package/dist/PodcastList-BewxderG.mjs +330 -0
- package/dist/PodcastList-BewxderG.mjs.map +1 -0
- package/dist/PodcastList-CHOZ5sWV.mjs.map +1 -0
- package/dist/PodcastList-CMATMgPs.mjs.map +1 -0
- package/dist/PodcastList-CzAh_ZPT.mjs.map +1 -0
- package/dist/PodcastList-DYLAwHbt.mjs +182 -0
- package/dist/PodcastList-DYLAwHbt.mjs.map +1 -0
- package/dist/PodcastList-Dxg8A4ui.mjs.map +1 -0
- package/dist/PodcastList-NQ0QF4lo.mjs.map +1 -0
- package/dist/PodcastList-TLe8ef1p.mjs.map +1 -0
- package/dist/PodcastList-aeKPA2Pa.mjs.map +1 -0
- package/dist/PodcastList-w8j9w3A3.mjs.map +1 -0
- package/dist/PodcastList-zLoXrLjM.mjs.map +1 -0
- package/dist/PodcastPage-7TvhRhNY.mjs.map +1 -0
- package/dist/PodcastPage-9LBDV577.mjs.map +1 -0
- package/dist/PodcastPage-ASnAv0Hy.mjs.map +1 -0
- package/dist/PodcastPage-B8AKWW1N.mjs.map +1 -0
- package/dist/PodcastPage-BHnY1AyE.mjs.map +1 -0
- package/dist/PodcastPage-BOuG5LyA.mjs.map +1 -0
- package/dist/PodcastPage-BvRTyXh8.mjs.map +1 -0
- package/dist/PodcastPage-BwzigA-q.mjs.map +1 -0
- package/dist/PodcastPage-CQvLnC1G.mjs.map +1 -0
- package/dist/PodcastPage-C_8OMBPC.mjs.map +1 -0
- package/dist/PodcastPage-C_Eg4Zbc.mjs.map +1 -0
- package/dist/PodcastPage-CbwfzcE9.mjs.map +1 -0
- package/dist/PodcastPage-CgjKlSvp.mjs.map +1 -0
- package/dist/PodcastPage-CrF52JIi.mjs.map +1 -0
- package/dist/PodcastPage-Culwyrcp.mjs.map +1 -0
- package/dist/PodcastPage-D8kQEHyz.mjs.map +1 -0
- package/dist/PodcastPage-DPXR-5-z.mjs.map +1 -0
- package/dist/PodcastPage-DStxOLRd.mjs.map +1 -0
- package/dist/PodcastPage-DcvotAob.mjs.map +1 -0
- package/dist/PodcastPage-DlZWXScN.mjs.map +1 -0
- package/dist/PodcastPage-DoUwareI.mjs.map +1 -0
- package/dist/PodcastPage-NMZSFjQm.mjs +756 -0
- package/dist/PodcastPage-NMZSFjQm.mjs.map +1 -0
- package/dist/PodcastPage-V1XY5ICb.mjs.map +1 -0
- package/dist/PodcastPage-fC-hXh-c.mjs.map +1 -0
- package/dist/PodcastPage-k8D3U82P.mjs.map +1 -0
- package/dist/PodcastPage-wTylVERN.mjs.map +1 -0
- package/dist/PodcastPage-xjk1WBAv.mjs.map +1 -0
- package/dist/PodcastPlayBar-BEyKbC22.mjs.map +1 -0
- package/dist/PodcastPlayBar-Cggx8A-d.mjs.map +1 -0
- package/dist/PodcastPlayBar-DHIXjuJO.mjs.map +1 -0
- package/dist/PodcastPlayBar-D_b7qme_.mjs +83 -0
- package/dist/PodcastPlayBar-D_b7qme_.mjs.map +1 -0
- package/dist/PodcastPlayBar-N3TwfXUo.mjs.map +1 -0
- package/dist/PodcastPlayBar-_e0LCcGd.mjs.map +1 -0
- package/dist/PodcastPlayBar-lojf3mqg.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-BoFyO-5v.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs +72 -0
- package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-Ca7KCiwF.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-Cot0Hw7f.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-CuRUgSxj.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-D2RrMC3u.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-KJRkgfDO.mjs.map +1 -0
- package/dist/PodcastPlayButton-BE6hVdpb.mjs.map +1 -0
- package/dist/PodcastPlayButton-BL06-DcD.mjs.map +1 -0
- package/dist/PodcastPlayButton-CIlav88-.mjs.map +1 -0
- package/dist/PodcastPlayButton-CfbXWla-.mjs.map +1 -0
- package/dist/PodcastPlayButton-CkUupm2O.mjs.map +1 -0
- package/dist/PodcastPlayButton-Cwh7588y.mjs.map +1 -0
- package/dist/PodcastPlayButton-Dgv5W72_.mjs +236 -0
- package/dist/PodcastPlayButton-Dgv5W72_.mjs.map +1 -0
- package/dist/PodcastPlayButton-DwKPWtV0.mjs.map +1 -0
- package/dist/PodcastPlayButton-vspf9u4U.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-B3cji_kZ.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BdfZY6Bi.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BxUy7Yg7.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-C3khc2NN.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-CQF7SZ6j.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-D8VLeO5u.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-D9PS9Z2X.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-WISkRxKn.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs +115 -0
- package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs.map +1 -0
- package/dist/PodcastPresentationList-6ZP8AnoX.mjs.map +1 -0
- package/dist/PodcastPresentationList-AP-ZURmT.mjs.map +1 -0
- package/dist/PodcastPresentationList-BC6cS2jK.mjs.map +1 -0
- package/dist/PodcastPresentationList-BfakxuQt.mjs.map +1 -0
- package/dist/PodcastPresentationList-CfsRs5zo.mjs.map +1 -0
- package/dist/PodcastPresentationList-Crr-1ywF.mjs.map +1 -0
- package/dist/PodcastPresentationList-Cvn11sIu.mjs.map +1 -0
- package/dist/PodcastPresentationList-DxUwH3dU.mjs +200 -0
- package/dist/PodcastPresentationList-DxUwH3dU.mjs.map +1 -0
- package/dist/PodcastPresentationList-V-rJhaqG.mjs.map +1 -0
- package/dist/PodcastProgressBar-BBwzkXWn.mjs.map +1 -0
- package/dist/PodcastProgressBar-C2Kbdsds.mjs.map +1 -0
- package/dist/PodcastProgressBar-CxWDWvG2.mjs.map +1 -0
- package/dist/PodcastProgressBar-DY-PA2H4.mjs.map +1 -0
- package/dist/PodcastProgressBar-D_togvfJ.mjs +98 -0
- package/dist/PodcastProgressBar-D_togvfJ.mjs.map +1 -0
- package/dist/PodcastProgressBar-lNHC70cW.mjs.map +1 -0
- package/dist/PodcastProgressBar-n2ASk6Jr.mjs.map +1 -0
- package/dist/PodcastRawTranscript-BXaXSOG0.mjs.map +1 -0
- package/dist/PodcastRawTranscript-Bp-DCioJ.mjs.map +1 -0
- package/dist/PodcastRawTranscript-CHnE4Q9g.mjs +184 -0
- package/dist/PodcastRawTranscript-CHnE4Q9g.mjs.map +1 -0
- package/dist/PodcastRawTranscript-Cl5YD7_I.mjs.map +1 -0
- package/dist/PodcastRawTranscript-D2eMeI5k.mjs.map +1 -0
- package/dist/PodcastRawTranscript-DyHxxFrC.mjs.map +1 -0
- package/dist/PodcastRawTranscript-yTs0EUKz.mjs.map +1 -0
- package/dist/PodcastRubriqueList-BSqs8IWw.mjs.map +1 -0
- package/dist/PodcastRubriqueList-BoQ3r-hl.mjs.map +1 -0
- package/dist/PodcastRubriqueList-D6UwV3RM.mjs.map +1 -0
- package/dist/PodcastRubriqueList-DHWcZB1k.mjs.map +1 -0
- package/dist/PodcastRubriqueList-DQhU9j2T.mjs.map +1 -0
- package/dist/PodcastRubriqueList-DqHgAzXW.mjs +83 -0
- package/dist/PodcastRubriqueList-DqHgAzXW.mjs.map +1 -0
- package/dist/PodcastRubriqueList-MKouh9FT.mjs.map +1 -0
- package/dist/PodcastSwiperList-BIlusV0y.mjs.map +1 -0
- package/dist/PodcastSwiperList-BcOEmb2L.mjs.map +1 -0
- package/dist/PodcastSwiperList-Bcl4Sr87.mjs.map +1 -0
- package/dist/PodcastSwiperList-CHiE_5Np.mjs.map +1 -0
- package/dist/PodcastSwiperList-CW7KHrXE.mjs.map +1 -0
- package/dist/PodcastSwiperList-CZ0_rjSj.mjs.map +1 -0
- package/dist/PodcastSwiperList-DlOf7qj-.mjs.map +1 -0
- package/dist/PodcastSwiperList-DwAm99HI.mjs.map +1 -0
- package/dist/PodcastSwiperList-PoinXUn2.mjs +219 -0
- package/dist/PodcastSwiperList-PoinXUn2.mjs.map +1 -0
- package/dist/PodcastmakerHeader-3PeM3wyF.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BC7yZTRo.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BVeOsj4_.mjs.map +1 -0
- package/dist/PodcastmakerHeader-C-vkFOcc.mjs.map +1 -0
- package/dist/PodcastmakerHeader-CLPAECC5.mjs.map +1 -0
- package/dist/PodcastmakerHeader-CTOmo93E.mjs +58 -0
- package/dist/PodcastmakerHeader-CTOmo93E.mjs.map +1 -0
- package/dist/PodcastmakerHeader-DOD21_py.mjs.map +1 -0
- package/dist/PodcastsPage-234XpWuj.mjs.map +1 -0
- package/dist/PodcastsPage-B1JUH1co.mjs +217 -0
- package/dist/PodcastsPage-B1JUH1co.mjs.map +1 -0
- package/dist/PodcastsPage-BNc0uI4a.mjs.map +1 -0
- package/dist/PodcastsPage-C601uah1.mjs.map +1 -0
- package/dist/PodcastsPage-CJHRB5IS.mjs.map +1 -0
- package/dist/PodcastsPage-Cp5g1lhW.mjs.map +1 -0
- package/dist/PodcastsPage-D7jjbbx6.mjs.map +1 -0
- package/dist/PodcastsPage-T8kmqhD6.mjs.map +1 -0
- package/dist/PodcastsPage-xZGU98Tj.mjs.map +1 -0
- package/dist/ProductorSearch-CTMYAxKp.mjs.map +1 -0
- package/dist/ProductorSearch-CeZ-1cW7.mjs.map +1 -0
- package/dist/ProductorSearch-D4fWcKog.mjs.map +1 -0
- package/dist/ProductorSearch-DCH0mawe.mjs.map +1 -0
- package/dist/ProductorSearch-DEQwq8Qp.mjs.map +1 -0
- package/dist/ProductorSearch-XQ1jGYQw.mjs +161 -0
- package/dist/ProductorSearch-XQ1jGYQw.mjs.map +1 -0
- package/dist/ProductorSearch-xyzEQY1e.mjs.map +1 -0
- package/dist/ProgressBar-6lP5chZK.mjs.map +1 -0
- package/dist/ProgressBar-Bt-AMFne.mjs.map +1 -0
- package/dist/ProgressBar-ButRLZKn.mjs.map +1 -0
- package/dist/ProgressBar-CyddCXNJ.mjs +158 -0
- package/dist/ProgressBar-CyddCXNJ.mjs.map +1 -0
- package/dist/ProgressBar-DSMOh1wT.mjs.map +1 -0
- package/dist/ProgressBar-NFkInTLb.mjs.map +1 -0
- package/dist/ProgressBar-Z51T1XCf.mjs.map +1 -0
- package/dist/QrCode-20OgUzN2.mjs.map +1 -0
- package/dist/QrCode-6ZkgX9Ta.mjs +177 -0
- package/dist/QrCode-6ZkgX9Ta.mjs.map +1 -0
- package/dist/QrCode-Bc2uQc55.mjs.map +1 -0
- package/dist/QrCode-CeV2SpH9.mjs.map +1 -0
- package/dist/QrCode-Do-uF9l1.mjs.map +1 -0
- package/dist/QrCode-LWqUFrdO.mjs.map +1 -0
- package/dist/QrCode-pbaY5gW1.mjs.map +1 -0
- package/dist/QrCodeModal-BHfET22K.mjs.map +1 -0
- package/dist/QrCodeModal-BNVatZWE.mjs +64 -0
- package/dist/QrCodeModal-BNVatZWE.mjs.map +1 -0
- package/dist/QrCodeModal-DFfNl0fW.mjs.map +1 -0
- package/dist/QrCodeModal-DemrNflK.mjs.map +1 -0
- package/dist/QrCodeModal-Do265wVe.mjs.map +1 -0
- package/dist/QrCodeModal-NiYU4p1I.mjs.map +1 -0
- package/dist/QrCodeModal-wRXhUjGf.mjs.map +1 -0
- package/dist/RadioCurrently-BFAEfLFX.mjs.map +1 -0
- package/dist/RadioCurrently-Bf-Pg-J_.mjs +112 -0
- package/dist/RadioCurrently-Bf-Pg-J_.mjs.map +1 -0
- package/dist/RadioCurrently-CXjYjO3m.mjs.map +1 -0
- package/dist/RadioCurrently-CZiABA2W.mjs.map +1 -0
- package/dist/RadioCurrently-CoOjRUyE.mjs.map +1 -0
- package/dist/RadioCurrently-JKL0a_SK.mjs.map +1 -0
- package/dist/RadioCurrently-hx7bw94i.mjs.map +1 -0
- package/dist/RadioHistory-BF-qlL2M.mjs.map +1 -0
- package/dist/RadioHistory-Bf2QIRr6.mjs.map +1 -0
- package/dist/RadioHistory-C7tOpvUk.mjs +139 -0
- package/dist/RadioHistory-C7tOpvUk.mjs.map +1 -0
- package/dist/RadioHistory-CQCcGdcs.mjs.map +1 -0
- package/dist/RadioHistory-D-xw6ZDO.mjs.map +1 -0
- package/dist/RadioHistory-D6niGKEI.mjs.map +1 -0
- package/dist/RadioHistory-mkQlj0G1.mjs.map +1 -0
- package/dist/RadioImage-6T5CmnKh.mjs.map +1 -0
- package/dist/RadioImage-BUvykGlw.mjs.map +1 -0
- package/dist/RadioImage-BrYBuloV.mjs.map +1 -0
- package/dist/RadioImage-CMtQaqiz.mjs.map +1 -0
- package/dist/RadioImage-CiIj65_a.mjs +85 -0
- package/dist/RadioImage-CiIj65_a.mjs.map +1 -0
- package/dist/RadioImage-DVwQNtMT.mjs.map +1 -0
- package/dist/RadioImage-XqoEXwZv.mjs.map +1 -0
- package/dist/RadioList-BotOeNwF.mjs +125 -0
- package/dist/RadioList-BotOeNwF.mjs.map +1 -0
- package/dist/RadioList-CjP-UN50.mjs.map +1 -0
- package/dist/RadioList-CroBp4d5.mjs.map +1 -0
- package/dist/RadioList-DUkyj-3T.mjs.map +1 -0
- package/dist/RadioList-Dp5kjFiW.mjs.map +1 -0
- package/dist/RadioList-DpSiNcDT.mjs.map +1 -0
- package/dist/RadioList-k2aCdh24.mjs.map +1 -0
- package/dist/RadioPage-BE4wCcA2.mjs.map +1 -0
- package/dist/RadioPage-BeTgvUPE.mjs.map +1 -0
- package/dist/RadioPage-CcPPJUmX.mjs +137 -0
- package/dist/RadioPage-CcPPJUmX.mjs.map +1 -0
- package/dist/RadioPage-Cqc1x0Ld.mjs.map +1 -0
- package/dist/RadioPage-Cvr1JY6T.mjs.map +1 -0
- package/dist/RadioPage-DwYxk45W.mjs.map +1 -0
- package/dist/RadioPage-IflTSXFQ.mjs.map +1 -0
- package/dist/RadioPlanning-BHklVGWm.mjs.map +1 -0
- package/dist/RadioPlanning-C5dPMP4_.mjs.map +1 -0
- package/dist/RadioPlanning-C8MtglrL.mjs +290 -0
- package/dist/RadioPlanning-C8MtglrL.mjs.map +1 -0
- package/dist/RadioPlanning-DCyp5l76.mjs.map +1 -0
- package/dist/RadioPlanning-Iw9vA8fj.mjs.map +1 -0
- package/dist/RadioPlanning-MiAA82P8.mjs.map +1 -0
- package/dist/RadioPlanning-zfc80hVQ.mjs.map +1 -0
- package/dist/RadioProgressBar-1PEu9PP_.mjs +67 -0
- package/dist/RadioProgressBar-1PEu9PP_.mjs.map +1 -0
- package/dist/RadioProgressBar-B1zJqxTH.mjs.map +1 -0
- package/dist/RadioProgressBar-BE7xpKuz.mjs.map +1 -0
- package/dist/RadioProgressBar-C7Lk7NWa.mjs.map +1 -0
- package/dist/RadioProgressBar-C7syfJeD.mjs.map +1 -0
- package/dist/RadioProgressBar-DKaDO8E3.mjs.map +1 -0
- package/dist/RadioProgressBar-DUwPmtUM.mjs.map +1 -0
- package/dist/RecaptchaModal-B4NgHMv8.mjs.map +1 -0
- package/dist/RecaptchaModal-Bh0R-LJQ.mjs.map +1 -0
- package/dist/RecaptchaModal-CHFdC9Sq.mjs +148 -0
- package/dist/RecaptchaModal-CHFdC9Sq.mjs.map +1 -0
- package/dist/RecaptchaModal-DDN7f19l.mjs.map +1 -0
- package/dist/RecaptchaModal-DZgBJsqv.mjs.map +1 -0
- package/dist/RecaptchaModal-D_Jsgg1Y.mjs.map +1 -0
- package/dist/RecaptchaModal-DeXzozPd.mjs.map +1 -0
- package/dist/ReportAbuseModal-BNmgx7J8.mjs.map +1 -0
- package/dist/ReportAbuseModal-CGdwy6AX.mjs.map +1 -0
- package/dist/ReportAbuseModal-CRcYir1i.mjs +134 -0
- package/dist/ReportAbuseModal-CRcYir1i.mjs.map +1 -0
- package/dist/ReportAbuseModal-Cd05gQRG.mjs.map +1 -0
- package/dist/ReportAbuseModal-DZZSuWJL.mjs.map +1 -0
- package/dist/ReportAbuseModal-Dhr0wNeN.mjs.map +1 -0
- package/dist/ReportAbuseModal-Jkua96nx.mjs.map +1 -0
- package/dist/ReportAbuseModal-fW3qVnqB.mjs.map +1 -0
- package/dist/RightsIndicator-BS3j-fVM.mjs.map +1 -0
- package/dist/RightsIndicator-BfnK3wyp.mjs.map +1 -0
- package/dist/RightsIndicator-CIvYsls2.mjs.map +1 -0
- package/dist/RightsIndicator-DCXOdtYK.mjs.map +1 -0
- package/dist/RightsIndicator-DeX5rK6p.mjs +124 -0
- package/dist/RightsIndicator-DeX5rK6p.mjs.map +1 -0
- package/dist/RightsIndicator-IodEqXTS.mjs.map +1 -0
- package/dist/RightsIndicator-Tp19E3wH.mjs.map +1 -0
- package/dist/RightsIndicator-UnNA-JnX.mjs.map +1 -0
- package/dist/RightsIndicator-fNFREWAW.mjs.map +1 -0
- package/dist/RightsWrapper-B8WfUUyU.mjs +212 -0
- package/dist/RightsWrapper-B8WfUUyU.mjs.map +1 -0
- package/dist/RightsWrapper-C4RmSfic.mjs.map +1 -0
- package/dist/RightsWrapper-CuyTiPNy.mjs.map +1 -0
- package/dist/RightsWrapper-CwfoSSsa.mjs.map +1 -0
- package/dist/RightsWrapper-Dfn3I70v.mjs.map +1 -0
- package/dist/RightsWrapper-Du_voV0a.mjs.map +1 -0
- package/dist/RightsWrapper-cUlJfjI3.mjs.map +1 -0
- package/dist/RubriqueFilter-CM7kr6ig.mjs.map +1 -0
- package/dist/RubriqueFilter-CZDYRGY1.mjs.map +1 -0
- package/dist/RubriqueFilter-ChiOg_xE.mjs.map +1 -0
- package/dist/RubriqueFilter-CmuKuprg.mjs.map +1 -0
- package/dist/RubriqueFilter-DL_FXRSA.mjs +199 -0
- package/dist/RubriqueFilter-DL_FXRSA.mjs.map +1 -0
- package/dist/RubriqueFilter-DrH0XXvc.mjs.map +1 -0
- package/dist/RubriqueFilter-MMI5yYaP.mjs.map +1 -0
- package/dist/RubriqueList-16-5nihG.mjs.map +1 -0
- package/dist/RubriqueList-BdfABEgq.mjs.map +1 -0
- package/dist/RubriqueList-BsPLy3ay.mjs.map +1 -0
- package/dist/RubriqueList-CJa6V4RB.mjs.map +1 -0
- package/dist/RubriqueList-CMOS69Vq.mjs +206 -0
- package/dist/RubriqueList-CMOS69Vq.mjs.map +1 -0
- package/dist/RubriqueList-CqwNtNAT.mjs.map +1 -0
- package/dist/RubriqueList-CwjcXWs4.mjs.map +1 -0
- package/dist/RubriquePage-08LTF55B.mjs.map +1 -0
- package/dist/RubriquePage-CCy-5tNr.mjs.map +1 -0
- package/dist/RubriquePage-CPZDxfSO.mjs.map +1 -0
- package/dist/RubriquePage-CuiSjNdT.mjs.map +1 -0
- package/dist/RubriquePage-D4eQhRIL.mjs.map +1 -0
- package/dist/RubriquePage-DB366qxe.mjs.map +1 -0
- package/dist/RubriquePage-DFHbwv9G.mjs.map +1 -0
- package/dist/RubriquePage-TE1WN6Ij.mjs +108 -0
- package/dist/RubriquePage-TE1WN6Ij.mjs.map +1 -0
- package/dist/RubriquePage-hjdDUqyU.mjs.map +1 -0
- package/dist/SearchPage-B8jX1vjG.mjs.map +1 -0
- package/dist/SearchPage-BwFLn1-g.mjs.map +1 -0
- package/dist/SearchPage-CPD8eLYV.mjs.map +1 -0
- package/dist/SearchPage-CUtOUZtw.mjs.map +1 -0
- package/dist/SearchPage-D21Gk42b.mjs.map +1 -0
- package/dist/SearchPage-DMmu7a0f.mjs +77 -0
- package/dist/SearchPage-DMmu7a0f.mjs.map +1 -0
- package/dist/SearchPage-DucZ1EKg.mjs.map +1 -0
- package/dist/SearchPage-DxnpnU0j.mjs.map +1 -0
- package/dist/SearchPage-oR9fUtW3.mjs.map +1 -0
- package/dist/ShareAnonymous---HePDRB.mjs.map +1 -0
- package/dist/ShareAnonymous-BRlQaJhi.mjs +321 -0
- package/dist/ShareAnonymous-BRlQaJhi.mjs.map +1 -0
- package/dist/ShareAnonymous-BW1VhJ2n.mjs.map +1 -0
- package/dist/ShareAnonymous-CsldJHoJ.mjs.map +1 -0
- package/dist/ShareAnonymous-DEGyPCUj.mjs.map +1 -0
- package/dist/ShareAnonymous-DiNPUc2X.mjs.map +1 -0
- package/dist/ShareAnonymous-eT0sUVWS.mjs.map +1 -0
- package/dist/ShareModalPlayer-BIwH-p5d.mjs.map +1 -0
- package/dist/ShareModalPlayer-CdUUtZ-5.mjs.map +1 -0
- package/dist/ShareModalPlayer-D98G_Ndx.mjs +135 -0
- package/dist/ShareModalPlayer-D98G_Ndx.mjs.map +1 -0
- package/dist/ShareModalPlayer-DANO4VOp.mjs.map +1 -0
- package/dist/ShareModalPlayer-DjvS43q5.mjs.map +1 -0
- package/dist/ShareModalPlayer-b-ZIHCWY.mjs.map +1 -0
- package/dist/ShareModalPlayer-o8Tnrbh1.mjs.map +1 -0
- package/dist/ShareNewsletter--cvmmWE0.mjs.map +1 -0
- package/dist/ShareNewsletter-C-clOCKi.mjs +211 -0
- package/dist/ShareNewsletter-C-clOCKi.mjs.map +1 -0
- package/dist/ShareNewsletter-CUcmJiot.mjs.map +1 -0
- package/dist/ShareNewsletter-Cp4-g5fA.mjs.map +1 -0
- package/dist/ShareNewsletter-D8_5L_AT.mjs.map +1 -0
- package/dist/ShareNewsletter-Je8-QirK.mjs.map +1 -0
- package/dist/ShareNewsletter-N55dIA_B.mjs.map +1 -0
- package/dist/SharePlayer-B4Ljxcx6.mjs.map +1 -0
- package/dist/SharePlayer-BxHten3Y.mjs.map +1 -0
- package/dist/SharePlayer-CD7oGqJ2.mjs.map +1 -0
- package/dist/SharePlayer-CE1qHkec.mjs.map +1 -0
- package/dist/SharePlayer-ChACZKgH.mjs +378 -0
- package/dist/SharePlayer-ChACZKgH.mjs.map +1 -0
- package/dist/SharePlayer-CltOR0Zh.mjs.map +1 -0
- package/dist/SharePlayer-CxoaWa3_.mjs.map +1 -0
- package/dist/SharePlayerRadio-BJVzAG1L.mjs.map +1 -0
- package/dist/SharePlayerRadio-Bixx8yFN.mjs.map +1 -0
- package/dist/SharePlayerRadio-CMsTpb_x.mjs.map +1 -0
- package/dist/SharePlayerRadio-CTMdvwN2.mjs +127 -0
- package/dist/SharePlayerRadio-CTMdvwN2.mjs.map +1 -0
- package/dist/SharePlayerRadio-DU35ed7Y.mjs.map +1 -0
- package/dist/SharePlayerRadio-Djz3HIfx.mjs.map +1 -0
- package/dist/SharePlayerRadio-Dn3ui9OK.mjs.map +1 -0
- package/dist/SharePlayerTypes-B7FLniHB.mjs +232 -0
- package/dist/SharePlayerTypes-B7FLniHB.mjs.map +1 -0
- package/dist/SharePlayerTypes-C8lDg7bE.mjs.map +1 -0
- package/dist/SharePlayerTypes-CFjDgT1d.mjs.map +1 -0
- package/dist/SharePlayerTypes-C_YQdJl2.mjs.map +1 -0
- package/dist/SharePlayerTypes-CzN4HZRH.mjs.map +1 -0
- package/dist/SharePlayerTypes-Dkw0Yqdu.mjs.map +1 -0
- package/dist/SharePlayerTypes-M9s8-uCs.mjs.map +1 -0
- package/dist/ShareSocialsButtons--KcYTi2-.mjs.map +1 -0
- package/dist/ShareSocialsButtons--haMp5t-.mjs.map +1 -0
- package/dist/ShareSocialsButtons-CGq1RtWh.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DEojeSLw.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DLb_GRG-.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DiJVocCJ.mjs +159 -0
- package/dist/ShareSocialsButtons-DiJVocCJ.mjs.map +1 -0
- package/dist/ShareSocialsButtons-IJQ1CgrC.mjs.map +1 -0
- package/dist/SimpleLayout-BAZ05Zz6.mjs.map +1 -0
- package/dist/SimpleLayout-BDnreCwm.mjs.map +1 -0
- package/dist/SimpleLayout-BHNwX8pP.mjs.map +1 -0
- package/dist/SimpleLayout-CPmBnpo-.mjs.map +1 -0
- package/dist/SimpleLayout-CUVtAQSt.mjs.map +1 -0
- package/dist/SimpleLayout-CjDOkAVU.mjs.map +1 -0
- package/dist/SimpleLayout-DLEAl9OH.mjs +41 -0
- package/dist/SimpleLayout-DLEAl9OH.mjs.map +1 -0
- package/dist/SmartLinkPage-BJoMvpYI.mjs +238 -0
- package/dist/SmartLinkPage-BJoMvpYI.mjs.map +1 -0
- package/dist/SmartLinkPage-Bd0ODVRl.mjs.map +1 -0
- package/dist/SmartLinkPage-C_zq0_aw.mjs.map +1 -0
- package/dist/SmartLinkPage-D1QlrObF.mjs.map +1 -0
- package/dist/SmartLinkPage-Dd0BLsjZ.mjs.map +1 -0
- package/dist/SmartLinkPage-DfFv2Nmb.mjs.map +1 -0
- package/dist/SmartLinkPage-wnKKixdQ.mjs.map +1 -0
- package/dist/SubscribeButtons-6HA0Mk9a.mjs.map +1 -0
- package/dist/SubscribeButtons-B6i1IdLa.mjs.map +1 -0
- package/dist/SubscribeButtons-BZrXH39i.mjs.map +1 -0
- package/dist/SubscribeButtons-C64eSNCp.mjs.map +1 -0
- package/dist/SubscribeButtons-DQ5YmkQO.mjs.map +1 -0
- package/dist/SubscribeButtons-EUkx8pZP.mjs.map +1 -0
- package/dist/SubscribeButtons-Va9APuBC.mjs +203 -0
- package/dist/SubscribeButtons-Va9APuBC.mjs.map +1 -0
- package/dist/SwiperList-B20Vye8P.mjs +207 -0
- package/dist/SwiperList-B20Vye8P.mjs.map +1 -0
- package/dist/SwiperList-Bokt5AG5.mjs.map +1 -0
- package/dist/SwiperList-CFKov21b.mjs.map +1 -0
- package/dist/SwiperList-DkllmyUF.mjs.map +1 -0
- package/dist/SwiperList-F5w64QMB.mjs.map +1 -0
- package/dist/SwiperList-LZV53McU.mjs.map +1 -0
- package/dist/SwiperList-ek1fgcDE.mjs.map +1 -0
- package/dist/TagList-B4PT2uXD.mjs +134 -0
- package/dist/TagList-B4PT2uXD.mjs.map +1 -0
- package/dist/TagList-BGlKCk4Q.mjs.map +1 -0
- package/dist/TagList-BjCugYvL.mjs.map +1 -0
- package/dist/TagList-DNMyr3U9.mjs.map +1 -0
- package/dist/TagList-DgsYcSmt.mjs.map +1 -0
- package/dist/TagList-WMAlflFl.mjs.map +1 -0
- package/dist/TagList-aSS_8yRX.mjs.map +1 -0
- package/dist/TagPage-BNeE4Lhq.mjs.map +1 -0
- package/dist/TagPage-BUXelbn2.mjs +125 -0
- package/dist/TagPage-BUXelbn2.mjs.map +1 -0
- package/dist/TagPage-Bsc2U_3X.mjs.map +1 -0
- package/dist/TagPage-C2iQSROU.mjs.map +1 -0
- package/dist/TagPage-CgscaJP0.mjs.map +1 -0
- package/dist/TagPage-DEHCzUJu.mjs.map +1 -0
- package/dist/TagPage-DFQt2R7S.mjs.map +1 -0
- package/dist/TagPage-DPjY0S19.mjs.map +1 -0
- package/dist/TagPage-DRTznoWj.mjs.map +1 -0
- package/dist/TopBar-Bg0jGbps.mjs +760 -0
- package/dist/TopBar-Bg0jGbps.mjs.map +1 -0
- package/dist/TopBar-Br6MU5NS.mjs.map +1 -0
- package/dist/TopBar-C5xvL55I.mjs.map +1 -0
- package/dist/TopBar-Ct2Wi2fl.mjs.map +1 -0
- package/dist/TopBar-Ct9XAxTS.mjs.map +1 -0
- package/dist/TopBar-sSswTZjE.mjs.map +1 -0
- package/dist/TopBar-tJHG0wJq.mjs.map +1 -0
- package/dist/UserButtonContent-CE-161kg.mjs.map +1 -0
- package/dist/UserButtonContent-CPa7Icpi.mjs +185 -0
- package/dist/UserButtonContent-CPa7Icpi.mjs.map +1 -0
- package/dist/UserButtonContent-D4Gfs-j-.mjs.map +1 -0
- package/dist/UserButtonContent-DPWKHiAu.mjs.map +1 -0
- package/dist/UserButtonContent-DV8mGqxl.mjs.map +1 -0
- package/dist/UserButtonContent-DoRcEYhc.mjs.map +1 -0
- package/dist/UserButtonContent-Y-pBXCLI.mjs.map +1 -0
- package/dist/VideoModuleBox-8vaXrEZb.mjs.map +1 -0
- package/dist/VideoModuleBox-BBIipxxW.mjs.map +1 -0
- package/dist/VideoModuleBox-CIZ34N35.mjs +85 -0
- package/dist/VideoModuleBox-CIZ34N35.mjs.map +1 -0
- package/dist/VideoModuleBox-Ckr0ogRq.mjs.map +1 -0
- package/dist/VideoModuleBox-Dqiduxtz.mjs.map +1 -0
- package/dist/VideoModuleBox-Gs2cRVCQ.mjs.map +1 -0
- package/dist/VideoModuleBox-T3Fic5E1.mjs.map +1 -0
- package/dist/VideoPage-5l2yCwzq.mjs.map +1 -0
- package/dist/VideoPage-B-7n9a0w.mjs +274 -0
- package/dist/VideoPage-B-7n9a0w.mjs.map +1 -0
- package/dist/VideoPage-C9RjP0jZ.mjs.map +1 -0
- package/dist/VideoPage-C_EGSeQr.mjs.map +1 -0
- package/dist/VideoPage-Ck6UhhNl.mjs.map +1 -0
- package/dist/VideoPage-CzK2E8of.mjs.map +1 -0
- package/dist/VideoPage-DDW-8u0o.mjs.map +1 -0
- package/dist/VideoPage-DVSiNd8a.mjs.map +1 -0
- package/dist/VideoPage-Dr-rwYv9.mjs.map +1 -0
- package/dist/VideoPage-Gr_u3MAh.mjs.map +1 -0
- package/dist/VideoPage-w0OwVwV2.mjs.map +1 -0
- package/dist/classicApi-BB-XyzeX.mjs.map +1 -0
- package/dist/classicApi-BGltEbgE.mjs.map +1 -0
- package/dist/classicApi-BTNeGEhM.mjs.map +1 -0
- package/dist/classicApi-CaN5kdYr.mjs.map +1 -0
- package/dist/classicApi-ChvwoPGT.mjs +1906 -0
- package/dist/classicApi-ChvwoPGT.mjs.map +1 -0
- package/dist/classicApi-CzfRsZHJ.mjs.map +1 -0
- package/dist/classicApi-D1fMJl0J.mjs.map +1 -0
- package/dist/downloadHelper-C64lrfkY.mjs.map +1 -0
- package/dist/downloadHelper-CMi7-Uui.mjs.map +1 -0
- package/dist/downloadHelper-COaLNbRP.mjs.map +1 -0
- package/dist/downloadHelper-CVAsxSd_.mjs.map +1 -0
- package/dist/downloadHelper-CuFfOvc0.mjs +36 -0
- package/dist/downloadHelper-CuFfOvc0.mjs.map +1 -0
- package/dist/downloadHelper-euySfVzt.mjs.map +1 -0
- package/dist/downloadHelper-fJeVpKge.mjs.map +1 -0
- package/dist/index.mjs +100 -100
- package/dist/messages-BBXCgqNE.mjs.map +1 -0
- package/dist/messages-BfcKCwbs.mjs.map +1 -0
- package/dist/messages-C-3-wU0o.mjs +2757 -0
- package/dist/messages-C-3-wU0o.mjs.map +1 -0
- package/dist/messages-DFgZU_JY.mjs.map +1 -0
- package/dist/messages-DI0RP16T.mjs.map +1 -0
- package/dist/messages-ffqRcdFK.mjs.map +1 -0
- package/dist/messages-tvu0LPPD.mjs.map +1 -0
- package/dist/tests.mjs +2 -2
- package/dist/useAdvancedParamInit-B0q6bEG9.mjs.map +1 -0
- package/dist/useAdvancedParamInit-Bmasoyik.mjs.map +1 -0
- package/dist/useAdvancedParamInit-BnHjPfDr.mjs.map +1 -0
- package/dist/useAdvancedParamInit-Cqr0FvM6.mjs.map +1 -0
- package/dist/useAdvancedParamInit-DpFW5LOX.mjs +162 -0
- package/dist/useAdvancedParamInit-DpFW5LOX.mjs.map +1 -0
- package/dist/useAdvancedParamInit-TYud_aDM.mjs.map +1 -0
- package/dist/useAdvancedParamInit-TnnXwHRW.mjs.map +1 -0
- package/dist/useDayjs-CK_TIXDt.mjs +32 -0
- package/dist/useDayjs-CK_TIXDt.mjs.map +1 -0
- package/dist/useDayjs-CXOnFQYE.mjs.map +1 -0
- package/dist/useDayjs-D_JdvkuA.mjs.map +1 -0
- package/dist/useDayjs-Dcl8o-f2.mjs.map +1 -0
- package/dist/useDayjs-DfbYqqzw.mjs.map +1 -0
- package/dist/useDayjs-DgjE7bQE.mjs.map +1 -0
- package/dist/useDayjs-Qw7bsgun.mjs.map +1 -0
- package/dist/useErrorHandler-B2omq-xn.mjs.map +1 -0
- package/dist/useErrorHandler-BZkAkzNC.mjs +19 -0
- package/dist/useErrorHandler-BZkAkzNC.mjs.map +1 -0
- package/dist/useErrorHandler-BpXnCp74.mjs.map +1 -0
- package/dist/useErrorHandler-Ccs5lCXK.mjs.map +1 -0
- package/dist/useErrorHandler-DDjgV9tS.mjs.map +1 -0
- package/dist/useErrorHandler-TP_xzyLW.mjs.map +1 -0
- package/dist/useErrorHandler-hTEtFcs_.mjs.map +1 -0
- package/dist/useImageProxy-B0l13vKR.mjs.map +1 -0
- package/dist/useImageProxy-BCtwrFPB.mjs.map +1 -0
- package/dist/useImageProxy-CFXtzue5.mjs.map +1 -0
- package/dist/useImageProxy-CLgdcHCl.mjs.map +1 -0
- package/dist/useImageProxy-CNYAGjLf.mjs.map +1 -0
- package/dist/useImageProxy-DdK55qB4.mjs +20 -0
- package/dist/useImageProxy-DdK55qB4.mjs.map +1 -0
- package/dist/useImageProxy-Drr0R83A.mjs.map +1 -0
- package/dist/useOrgaComputed-B07BGfc5.mjs.map +1 -0
- package/dist/useOrgaComputed-CZYeUhPI.mjs.map +1 -0
- package/dist/useOrgaComputed-Cvryrkbp.mjs.map +1 -0
- package/dist/useOrgaComputed-D5SfqMx9.mjs +19 -0
- package/dist/useOrgaComputed-D5SfqMx9.mjs.map +1 -0
- package/dist/useOrgaComputed-D8Aak710.mjs.map +1 -0
- package/dist/useOrgaComputed-Dcs2QQ4K.mjs.map +1 -0
- package/dist/useOrgaComputed-dKPouMl1.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-Bb_pkMxz.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-BckKC1fU.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-C-gsD-ec.mjs +108 -0
- package/dist/usePlayerLogicProgress-C-gsD-ec.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-DRrXB53_.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-KiC9MszQ.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-lypDuxfv.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-mpS1rYM1.mjs.map +1 -0
- package/dist/usePodcastView-3dCNrbxq.mjs.map +1 -0
- package/dist/usePodcastView-Bxbpf2Aj.mjs.map +1 -0
- package/dist/usePodcastView-C4Ak6N5U.mjs.map +1 -0
- package/dist/usePodcastView-CWnGApRW.mjs.map +1 -0
- package/dist/usePodcastView-Cm6ruTDT.mjs.map +1 -0
- package/dist/usePodcastView-DlzuYDsj.mjs +56 -0
- package/dist/usePodcastView-DlzuYDsj.mjs.map +1 -0
- package/dist/usePodcastView-_Gt7IKys.mjs.map +1 -0
- package/dist/usePresentationItem-1wOfXOdb.mjs.map +1 -0
- package/dist/usePresentationItem-BIoivvjV.mjs.map +1 -0
- package/dist/usePresentationItem-BkAS8Vr0.mjs.map +1 -0
- package/dist/usePresentationItem-CUGbjF4i.mjs +190 -0
- package/dist/usePresentationItem-CUGbjF4i.mjs.map +1 -0
- package/dist/usePresentationItem-D5rbUsCh.mjs.map +1 -0
- package/dist/usePresentationItem-Dq1BLr6j.mjs.map +1 -0
- package/dist/usePresentationItem-Dww8g4Vm.mjs.map +1 -0
- package/dist/useRights-2iW8A6VG.mjs.map +1 -0
- package/dist/useRights-Bh8pPIIT.mjs.map +1 -0
- package/dist/useRights-C0SGDVHr.mjs.map +1 -0
- package/dist/useRights-C_1sfdF_.mjs.map +1 -0
- package/dist/useRights-ChjlGASZ.mjs.map +1 -0
- package/dist/useRights-DNL2VJUc.mjs +276 -0
- package/dist/useRights-DNL2VJUc.mjs.map +1 -0
- package/dist/useRights-DeR0K7I4.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-BORLAh8s.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-CC3kqtFK.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-CKezlYVc.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-DHNQz04L.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-DWgN-E8P.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs +13 -0
- package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-NQGEdYXb.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BGBTXNIe.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BbLPbrFy.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BjMqOyMg.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BrWFpJhb.mjs +36 -0
- package/dist/useRubriquesFilterParam-BrWFpJhb.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-DwnlkS0K.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-YXdzWQqQ.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-r0AJqZsJ.mjs.map +1 -0
- package/dist/useSharePlatforms-BqPO-hyZ.mjs +468 -0
- package/dist/useSharePlatforms-BqPO-hyZ.mjs.map +1 -0
- package/dist/useSharePlatforms-CP7lHEZ0.mjs.map +1 -0
- package/dist/useSharePlatforms-C_EB_xsb.mjs.map +1 -0
- package/dist/useSharePlatforms-CcG4_k68.mjs.map +1 -0
- package/dist/useSharePlatforms-CgGpSSII.mjs.map +1 -0
- package/dist/useSharePlatforms-CrHyAS2m.mjs.map +1 -0
- package/dist/useSharePlatforms-D81_zd1r.mjs.map +1 -0
- package/dist/useSimplePageParam-9ps_YIpq.mjs.map +1 -0
- package/dist/useSimplePageParam-ByeUUq4Z.mjs +54 -0
- package/dist/useSimplePageParam-ByeUUq4Z.mjs.map +1 -0
- package/dist/useSimplePageParam-C4qdDtdw.mjs.map +1 -0
- package/dist/useSimplePageParam-COisq-R3.mjs.map +1 -0
- package/dist/useSimplePageParam-DT1XPwfb.mjs.map +1 -0
- package/dist/useSimplePageParam-DZIpRJUc.mjs.map +1 -0
- package/dist/useSimplePageParam-Dw3p3GCC.mjs.map +1 -0
- package/dist/useTranslation-BPLqy26U.mjs.map +1 -0
- package/dist/useTranslation-C4rvyoXK.mjs.map +1 -0
- package/dist/useTranslation-C8Dy1ma7.mjs.map +1 -0
- package/dist/useTranslation-CLkN3q6e.mjs.map +1 -0
- package/dist/useTranslation-COKe4d2D.mjs.map +1 -0
- package/dist/useTranslation-Dsw1HxX9.mjs +205 -0
- package/dist/useTranslation-Dsw1HxX9.mjs.map +1 -0
- package/dist/useTranslation-kKZZLtgm.mjs.map +1 -0
- package/dist/usefetchRadioData-3E5_FJJM.mjs +55 -0
- package/dist/usefetchRadioData-3E5_FJJM.mjs.map +1 -0
- package/dist/usefetchRadioData-B5vQJGHp.mjs.map +1 -0
- package/dist/usefetchRadioData-Cb6piM3h.mjs.map +1 -0
- package/dist/usefetchRadioData-Ch_otD17.mjs.map +1 -0
- package/dist/usefetchRadioData-D5WFrvWd.mjs.map +1 -0
- package/dist/usefetchRadioData-lhw_qPJh.mjs.map +1 -0
- package/dist/usefetchRadioData-qr9F-158.mjs.map +1 -0
- package/package.json +1 -1
- package/src/components/display/podcasts/PodcastModuleBox.vue +293 -252
- package/src/components/form/ClassicWysiwyg.vue +2 -4
- package/src/components/misc/FooterSection.vue +3 -1
- package/src/locale/de.json +3 -1
- package/src/locale/en.json +3 -1
- package/src/locale/es.json +3 -1
- package/src/locale/fr.json +3 -0
- package/src/locale/it.json +3 -1
- package/src/locale/sl.json +3 -1
- package/tests/components/display/podcasts/PodcastModuleBox.spec.ts +68 -0
- package/dist/AdvancedSearch-C__BZuJX.mjs +0 -429
- package/dist/CategoryFilter-DRXTrqyR.mjs +0 -237
- package/dist/CategoryList-BeBPhibG.mjs +0 -182
- package/dist/CategoryPage-CsabctRT.mjs +0 -57
- package/dist/ChapteringModal-BCPmvaRT.mjs +0 -82
- package/dist/CheckIdentityModal-fNecycn-.mjs +0 -86
- package/dist/ClassicAlert-dYigdfoZ.mjs +0 -85
- package/dist/ClassicInputText-B7EAwP2N.mjs +0 -371
- package/dist/ClassicWysiwyg-BKq8ExjM.mjs +0 -230
- package/dist/ClipboardModal-Bd_hrJu_.mjs +0 -84
- package/dist/CommentBasicView-bNaLVdjT.mjs +0 -129
- package/dist/CommentInput-B7qnp3is.mjs +0 -186
- package/dist/CommentItem-DDCavfx_.mjs +0 -232
- package/dist/CommentList-BbEaau4S.mjs +0 -302
- package/dist/CommentMoreActions-CB8419fO.mjs +0 -286
- package/dist/CommentName-DFzxl7mU.mjs +0 -96
- package/dist/CommentParentInfo-BDSceNbu.mjs +0 -64
- package/dist/CommentPlayer-D_cgM4oc.mjs +0 -86
- package/dist/CommentSection-CfhzLqZE.mjs +0 -141
- package/dist/CommentStore-DAa7RQ_3.mjs +0 -355
- package/dist/ContractPreviewModal-CC3KTcFM.mjs +0 -101
- package/dist/DownloadPodcastButton-DdWnV_YZ.mjs +0 -53
- package/dist/EditCommentModal-7vDcLEPD.mjs +0 -162
- package/dist/EmissionGroupChooser-ZJLNTZLc.mjs +0 -82
- package/dist/EmissionInlineList-JQp7JC97.mjs +0 -188
- package/dist/EmissionItem-9HFaHgWp.mjs +0 -183
- package/dist/EmissionList-Clu9bigG.mjs +0 -325
- package/dist/EmissionPage-DX_2HI0y.mjs +0 -322
- package/dist/EmissionPlayerItem-C8IKeJ7q.mjs +0 -167
- package/dist/EmissionPresentationItem-CmxIvauh.mjs +0 -78
- package/dist/EmissionPresentationList-CIx49QaD.mjs +0 -125
- package/dist/EmissionsPage-CxLXKG5S.mjs +0 -199
- package/dist/Error403Page-DARTxoEK.mjs +0 -69
- package/dist/ErrorMessage-DhSwu9H_.mjs +0 -44
- package/dist/FooterGarSection-IH0ADl_V.mjs +0 -71
- package/dist/FooterSection-r3Ehg0kp.mjs +0 -238
- package/dist/HomeDropdown-B9Hg49uX.mjs +0 -110
- package/dist/HomePage-C3t8bQ4X.mjs +0 -166
- package/dist/LikeSection-KEHYZ6eH.mjs +0 -167
- package/dist/ListPaginate-Dd3eeyMI.mjs +0 -202
- package/dist/LiveHorizontalList-CiyK7eIx.mjs +0 -136
- package/dist/LiveList-DnEolyFx.mjs +0 -324
- package/dist/LivesPage-BjOGZLj4.mjs +0 -76
- package/dist/MapPage-BO2h6OPn.mjs +0 -303
- package/dist/MobileMenu-DzyIn4Ww.mjs +0 -187
- package/dist/NewsletterModal-MVu7IC0K.mjs +0 -82
- package/dist/OrganisationChooser-BZnwu6PU.mjs +0 -190
- package/dist/OrganisationChooserLight-DtC9SY2k.mjs +0 -84
- package/dist/PageNotFound-XkbxiC3R.mjs +0 -58
- package/dist/ParticipantInlineList-D13FKP63.mjs +0 -117
- package/dist/ParticipantItem-NaOJtacr.mjs +0 -138
- package/dist/ParticipantPage-CVDQ4I-p.mjs +0 -203
- package/dist/ParticipantsPage-CxDl6EWr.mjs +0 -262
- package/dist/PlayerAnonymousModal-DstBQ-Zs.mjs +0 -84
- package/dist/PlayerCompact-DgsZttBX.mjs +0 -209
- package/dist/PlayerComponent-BDJQLPcs.mjs +0 -929
- package/dist/PlayerLarge-CubFsFCt.mjs +0 -190
- package/dist/PlayerPlayButton-DQBkOGod.mjs +0 -400
- package/dist/PlayerProgressBar-AhqJPkUk.mjs +0 -86
- package/dist/PlayerStore-S4mFfJ75.mjs +0 -230
- package/dist/PlayerVideo-D-TYPaLL.mjs +0 -72
- package/dist/PlayerVideoDigiteka-DMC8L6Mz.mjs +0 -102
- package/dist/PlayerVideoHls-VFKtt3Qx.mjs +0 -232
- package/dist/PlaylistPage-BrZuaX3e.mjs +0 -228
- package/dist/PlaylistsPage-CAaiC48j.mjs +0 -395
- package/dist/PodcastFilterList-YdyFX695.mjs +0 -254
- package/dist/PodcastImage-CF7D3Alx.mjs +0 -174
- package/dist/PodcastInlineList-C_dvAa4O.mjs +0 -138
- package/dist/PodcastInlineListTemplate-DpveKzmq.mjs +0 -233
- package/dist/PodcastIsPlaying-Dx_XNjz4.mjs +0 -30
- package/dist/PodcastItem-C5U2vYiX.mjs +0 -287
- package/dist/PodcastList-BHOJTVqP.mjs +0 -182
- package/dist/PodcastList-Dkh7Kahu.mjs +0 -330
- package/dist/PodcastPage-CTwEe_n7.mjs +0 -725
- package/dist/PodcastPlayBar-BafidGw3.mjs +0 -83
- package/dist/PodcastPlayBasicButton-DqomjSS_.mjs +0 -72
- package/dist/PodcastPlayButton--X67hSEO.mjs +0 -236
- package/dist/PodcastPlaylistInlineList-Csf1PwTQ.mjs +0 -115
- package/dist/PodcastPresentationList-DSQebLtP.mjs +0 -200
- package/dist/PodcastProgressBar-BoRBxgPF.mjs +0 -98
- package/dist/PodcastRawTranscript-HOcGzqam.mjs +0 -184
- package/dist/PodcastRubriqueList-C6IUkNSJ.mjs +0 -83
- package/dist/PodcastSwiperList-B6Rb4sb3.mjs +0 -219
- package/dist/PodcastmakerHeader-SuHA7pwQ.mjs +0 -58
- package/dist/PodcastsPage-BA8vFVBZ.mjs +0 -217
- package/dist/ProductorSearch-DXwssvrx.mjs +0 -161
- package/dist/ProgressBar-BPdSp8k3.mjs +0 -158
- package/dist/QrCode-DIUhV-JI.mjs +0 -177
- package/dist/QrCodeModal-DsqDbf2S.mjs +0 -64
- package/dist/RadioCurrently-2uhupYt4.mjs +0 -112
- package/dist/RadioHistory-7HK9VIXU.mjs +0 -139
- package/dist/RadioImage-DgrrJqhi.mjs +0 -85
- package/dist/RadioList-5WLGZn1M.mjs +0 -125
- package/dist/RadioPage-BLrZ2cZQ.mjs +0 -137
- package/dist/RadioPlanning-CMSEqOnd.mjs +0 -290
- package/dist/RadioProgressBar-imph2EDe.mjs +0 -67
- package/dist/RecaptchaModal-CxDPhjIv.mjs +0 -148
- package/dist/ReportAbuseModal-Cn4dKNYU.mjs +0 -134
- package/dist/RightsIndicator-DMZt2V0j.mjs +0 -124
- package/dist/RightsWrapper-CH6QzSWu.mjs +0 -212
- package/dist/RubriqueFilter-BIBa9NNw.mjs +0 -199
- package/dist/RubriqueList-7NFIBpzM.mjs +0 -206
- package/dist/RubriquePage-Dh4NUQ2M.mjs +0 -108
- package/dist/SearchPage-nupT1-eH.mjs +0 -77
- package/dist/ShareAnonymous-BmIwbMz_.mjs +0 -321
- package/dist/ShareModalPlayer-CKQAlhfC.mjs +0 -135
- package/dist/ShareNewsletter-YyZJPmj3.mjs +0 -211
- package/dist/SharePlayer-B-8165rs.mjs +0 -378
- package/dist/SharePlayerRadio-CqLsQYYx.mjs +0 -127
- package/dist/SharePlayerTypes-Bt2LQhZe.mjs +0 -232
- package/dist/ShareSocialsButtons-CZtpG1zL.mjs +0 -159
- package/dist/SimpleLayout-TPl5v_-v.mjs +0 -41
- package/dist/SmartLinkPage-DsLBvlOf.mjs +0 -238
- package/dist/SubscribeButtons-DTu2q9nM.mjs +0 -203
- package/dist/SwiperList-DkzjytBq.mjs +0 -207
- package/dist/TagList-CZwg6-Wl.mjs +0 -134
- package/dist/TagPage-DX0T8dNu.mjs +0 -125
- package/dist/TopBar-BshQ_eFb.mjs +0 -760
- package/dist/UserButtonContent-BwvIN_8j.mjs +0 -185
- package/dist/VideoModuleBox-CYxZFZQV.mjs +0 -85
- package/dist/VideoPage-B1udtWP7.mjs +0 -274
- package/dist/classicApi-DpwVUC0E.mjs +0 -1906
- package/dist/downloadHelper-DNFvCWE7.mjs +0 -36
- package/dist/messages-DxAfPLH1.mjs +0 -2745
- package/dist/useAdvancedParamInit-XK-FI81b.mjs +0 -162
- package/dist/useDayjs-CD7LNHpM.mjs +0 -32
- package/dist/useErrorHandler-DpcjkDh_.mjs +0 -19
- package/dist/useImageProxy-DI8RhM5W.mjs +0 -20
- package/dist/useOrgaComputed-Cv6ZE0fR.mjs +0 -19
- package/dist/usePlayerLogicProgress-DJXygp1R.mjs +0 -108
- package/dist/usePodcastView-AB8-AjDO.mjs +0 -56
- package/dist/usePresentationItem-BSIM0LPe.mjs +0 -190
- package/dist/useRights-9acWcTMy.mjs +0 -276
- package/dist/useRubriquesFilterComputed-Hr6ZScZJ.mjs +0 -13
- package/dist/useRubriquesFilterParam-CHOhIyzc.mjs +0 -36
- package/dist/useSharePlatforms-BS51_Mgp.mjs +0 -468
- package/dist/useSimplePageParam-CWi9AKl0.mjs +0 -54
- package/dist/useTranslation-Bw07I8Rj.mjs +0 -205
- package/dist/usefetchRadioData-CoAFZngO.mjs +0 -55
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartLinkPage-Dd0BLsjZ.mjs","names":[],"sources":["../src/components/pages/SmartLinkPage.vue","../src/components/pages/SmartLinkPage.vue"],"sourcesContent":["<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n","<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartLinkPage-DfFv2Nmb.mjs","names":[],"sources":["../src/components/pages/SmartLinkPage.vue","../src/components/pages/SmartLinkPage.vue"],"sourcesContent":["<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n","<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartLinkPage-wnKKixdQ.mjs","names":[],"sources":["../src/components/pages/SmartLinkPage.vue","../src/components/pages/SmartLinkPage.vue"],"sourcesContent":["<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n","<template>\n <div v-if=\"element\" class=\"background\">\n <img :src=\"useProxyImageUrl(element.imageUrl, '1600')\">\n </div>\n <article v-if=\"element\">\n <!-- Top part of smartlink, with image, title and description -->\n <div class=\"content\">\n <div class=\"left\">\n <img\n v-lazy=\"useProxyImageUrl(element.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n >\n <!-- Play button when not viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 hide-phone\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n <h1>{{ title }}</h1>\n <div v-html=\"description\" />\n\n <!-- Play button when viewing with phone -->\n <button\n v-if=\"latestPodcast\"\n class=\"btn btn-primary play-button pe-3 mt-4 show-phone-flex\"\n @click=\"playLatestPodcast\"\n >\n <PlayIcon class=\"me-2\" />\n {{ $t('SmartLink - Listen to latest episode') }}\n </button>\n </div>\n\n <!-- Links -->\n <div class=\"platforms\">\n <div\n v-for=\"platform in sharePlatforms\"\n :key=\"platform.name\"\n class=\"platform-btn\"\n >\n <button\n class=\"btn w-100\"\n :style=\"gradient(platform)\"\n @click=\"openLink(platform.url)\"\n >\n <!-- Icon of platform -->\n <component\n :is=\"platform.icon\"\n :size=\"36\"\n :fill-color=\"platform.color\"\n class=\"me-2\"\n />\n\n <span class=\"platform-label\">{{ platform.title }}</span>\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <a target=\"_blank\" href=\"/\">\n <span>{{ $t('SmartLink - Made by') }}</span>\n <img\n src=\"/img/logo_saooti_play_black.svg\"\n height=\"24\"\n class=\"ms-2\"\n >\n </a>\n <a\n v-if=\"podcastmakerElementUrl\"\n target=\"_blank\"\n :href=\"podcastmakerElementUrl\"\n >\n <span v-if=\"playlistId\">{{ $t('SmartLink - To playlist on podcastmaker', { organisation: organisation.name }) }}</span>\n <span v-else-if=\"emissionId\">{{ $t('SmartLink - To emission on podcastmaker', { organisation: organisation.name }) }}</span>\n </a>\n </div>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue';\nimport { useSeoTitleUrl } from '../composable/route/useSeoTitleUrl';\n\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\n\nimport { Emission } from '../../stores/class/general/emission';\nimport { Playlist } from '../../stores/class/general/playlist';\nimport { playlistApi } from '../../api/playlistApi';\nimport { emissionApi } from '../../api/emissionApi';\nimport { useImageProxy } from '../composable/useImageProxy';\nimport { SharePlatform, useSharePlatforms } from '../composable/share/useSharePlatforms';\nimport { Organisation, OrganisationAttributes } from '../../stores/class/general/organisation';\nimport { organisationApi } from '../../api/organisationApi';\nimport { Podcast } from '@/stores/class/general/podcast';\nimport { usePlayerStore } from '../../stores/PlayerStore';\nimport { podcastApi, PodcastSort } from '../../api/podcastApi';\nimport { useSharePath } from '../composable/share/useSharePath';\nimport displayHelper from '../../helper/displayHelper';\nimport { state } from '../../stores/ParamSdkStore';\n\nconst { updatePathParams } = useSeoTitleUrl();\nconst { useProxyImageUrl } = useImageProxy();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\n\n/** Props used when displaying a playlist */\ninterface PlaylistProps {\n /** ID of the playlist to display */\n playlistId: number;\n /** Disallow use of emission id */\n emissionId?: never;\n}\n\n/** Props used when displaying an emission */\ninterface EmissionProps {\n /** Disallow use of playlist id */\n playlistId?: never;\n /** ID of the emission to display */\n emissionId: number;\n}\n\nconst { playlistId, emissionId } = defineProps<PlaylistProps|EmissionProps>();\n\n/** The currently displayed element, if any */\nconst element = ref<Playlist|Emission|null>(null);\n\nonMounted(async() => {\n // Retrieve element\n if (playlistId) {\n element.value = await playlistApi.get(playlistId);\n initPlatforms(element.value.organisation.id);\n } else if (emissionId) {\n element.value = await emissionApi.get(emissionId);\n initPlatforms(element.value.orga.id);\n } else {\n console.error('No content defined');\n }\n\n // Update title & path\n updatePathParams(title.value);\n\n getOrganisationAttributes();\n getLatestPodcast();\n});\n\n/** Title of the element displayed */\nconst title = computed((): string => {\n if (playlistId) {\n return (element.value as Playlist).title;\n }\n if (emissionId) {\n return (element.value as Emission).name;\n }\n return '';\n});\n\n/** Description of the element displayed */\nconst description = computed((): string => {\n let description = element.value.description;\n if (state.smartLink.showOnlyFirstParagraphInDescription === true) {\n // Find everything up to the end of the first paragraph, including newlines\n const pattern = /^(.+?(?:\\n+.*?)*<\\/p>)/;\n const matches = description.match(pattern);\n if (matches && matches.length >= 2) {\n description = matches[1];\n }\n }\n\n return displayHelper.urlify(description);\n});\n\n/** The organisation associated with the element */\nconst organisation = computed((): Organisation|undefined => {\n if (!element.value) {\n return;\n }\n\n if (playlistId) {\n return (element.value as Playlist).organisation;\n } else if (emissionId) {\n return (element.value as Emission).orga;\n }\n return undefined;\n});\n\n/** The URL to the podcastmaker of the organisation, if any */\nconst organisationAttributes = ref<OrganisationAttributes|null>(null);\nconst { getSharePath } = useSharePath();\n\nasync function getOrganisationAttributes(): Promise<void> {\n if (organisation.value) {\n organisationAttributes.value = await organisationApi.getAttributes(organisation.value.id);\n }\n}\n\n/** The URL to the element on the podcastmaker, or original platform, if any */\nconst podcastmakerElementUrl = computed((): string|undefined => {\n // Retrieve full URL of element\n if (playlistId) {\n return getSharePath({ name: 'playlist', params: { playlistId }}, organisationAttributes.value);\n } else if (emissionId) {\n return getSharePath({ name: 'emission', params: { emissionId }}, organisationAttributes.value);\n }\n return undefined;\n});\n\n/**\n * The available share platforms for the element\n */\nconst sharePlatforms = computed(() => {\n if (!element.value) {\n return [];\n }\n return getPlatformsWithLinks(element.value.annotations);\n});\n\nfunction gradient(platform: SharePlatform): Record<string, string> {\n return {\n '--gradient-color': platform.color\n };\n}\n\nfunction openLink(link: string): void {\n window.open(link, '_blank').focus();\n}\n\nconst playerStore = usePlayerStore();\nconst latestPodcast = ref<Podcast|null>(null);\n\nasync function getLatestPodcast(): Promise<void> {\n if (playlistId) {\n const content = await playlistApi.getContent(playlistId);\n if (content.length > 0) {\n const id = content[content.length - 1].podcastId;\n latestPodcast.value = await podcastApi.get(id);\n }\n } else if (emissionId) {\n const result = await podcastApi.searchFull({\n emissionId,\n sort: PodcastSort.DATE,\n size: 1\n });\n\n if (result.count > 0) {\n latestPodcast.value = result.result[0];\n }\n }\n}\n\nfunction playLatestPodcast(): void {\n if (!latestPodcast.value) {\n return;\n }\n\n playerStore.playerPlay(latestPodcast.value);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background {\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Do not take place in page\n position: fixed;\n // Make rest of page appear in front of image\n z-index: -1;\n\n img {\n width: 100%;\n height: 100%;\n // Background image display\n object-fit: cover;\n // Blur image\n filter: blur(40px) sepia(0.4);\n transform: scale(1.1);\n\n @media (width <= 960px) {\n // Better display for small screens\n filter: blur(15px);\n }\n }\n}\n\narticle {\n // Set variables\n --background: white;\n --border-radius: 20px;\n\n margin: 8rem auto 2rem;\n padding: 20px;\n width: 900px;\n border-radius: var(--border-radius);\n\n // Background for card\n background: var(--background);\n // Subtle border\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\n\n @media (width <= 960px) {\n // Adapt card for small screens\n margin-top: 5rem;\n width: 100%;\n }\n\n .play-button {\n width: 250px;\n\n @media (width <= 960px) {\n // Center button\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n &::before {\n // Remove additional content\n display: none;\n }\n }\n\n .left {\n // Align left\n float: left;\n\n @media (width <= 960px) {\n // On small screens, center content\n margin: 0 auto;\n float: none;\n }\n }\n\n .img-box {\n // Move image\n margin-top: -70px;\n margin-bottom: 0px;\n\n // Move image left with content going to its right, and below it\n margin-right: 20px;\n\n // Add a border\n border: 2px solid var(--background);\n border-radius: var(--border-radius);\n\n @media (width <= 960px) {\n margin: -70px auto 10px;\n }\n }\n\n // Section for title & description of content\n .content {\n margin-left: 20px;\n\n @media (width <= 960px) {\n margin-left: 0;\n }\n\n h1 {\n text-align: start !important;\n font-size: var(--octopus-smartlink-title-fontsize);\n color: var(--octopus-smartlink-title-color);\n\n @media (width <= 960px) {\n text-align: center !important;\n }\n }\n }\n\n // Section for displaying platforms\n .platforms {\n // Allow display on columns\n display: flex;\n flex-wrap: wrap;\n margin-top: 50px;\n\n @media (width <= 960px) {\n // Lower top margin when on mobile\n margin-top: 20px;\n }\n\n .platform-btn {\n display: flex;\n padding: 4px 8px;\n // Display on two columns\n flex-basis: 50%;\n // Center elements when possible\n margin: auto;\n\n @media (width <= 960px) {\n // On small screens, buttons take full width\n flex-basis: 100%;\n }\n }\n\n .btn {\n display: flex;\n height: 52px;\n // Center content vertically\n align-items: center;\n padding-left: 40px;\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 40%));\n .platform-label {\n margin-left: 30px;\n }\n\n &:hover {\n background: linear-gradient(155deg, var(--octopus-secondary) 30%, oklch(from var(--gradient-color) l c h / 100%));\n }\n\n }\n }\n}\n\n.footer {\n cursor: pointer;\n margin: 34px auto 0;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n\n @media (width <= 960px) {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n a {\n display: flex;\n align-items: center;\n color: var(--octopus-color-text);\n\n &:hover {\n color: var(--octopus-primary);\n }\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribeButtons-6HA0Mk9a.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribeButtons-B6i1IdLa.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribeButtons-BZrXH39i.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribeButtons-C64eSNCp.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribeButtons-DQ5YmkQO.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribeButtons-EUkx8pZP.mjs","names":[],"sources":["../src/components/display/sharing/SubscribeButtons.vue","../src/components/display/sharing/SubscribeButtons.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subscriptionsDisplay.length || rssUrl\"\n class=\"subscribe-buttons-container\"\n :class=\"{ 'justify-center': justifyCenter }\"\n >\n <div ref=\"subscribeButtonsContainer\">\n <a\n v-for=\"(sub, index) in shownLinks\"\n :id=\"'subLink' + sub.name\"\n :key=\"sub.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :class=\"{\n first: 0 === index,\n last: subscriptionsDisplay.length - 1 === index,\n mono,\n small\n }\"\n class=\"btn share-btn\"\n :href=\"sub.url\"\n :title=\"t('New window', {text: sub.title})\"\n >\n <component\n :is=\"sub.icon\"\n :fill-color=\"fillColor(sub)\"\n :size=\"iconSize\"\n non-decorative\n />\n </a>\n </div>\n <a\n v-if=\"!noRss\"\n id=\"rss-suscribe-button\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"btn share-btn\"\n :class=\"{ mono, small }\"\n :href=\"rssUrl\"\n :title=\"t('New window', {text: t('Rss feed')})\"\n >\n <RssIcon :fill-color=\"fillColor()\" :size=\"iconSize\" />\n </a>\n\n <button\n v-if=\"limit === undefined\"\n v-show=\"hiddenLinks.length\"\n id=\"subscribe-buttons-dropdown\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n <ClassicPopover\n target=\"subscribe-buttons-dropdown\"\n popover-class=\"popover-z-index\"\n :only-click=\"true\"\n :left-pos=\"true\"\n >\n <a\n v-for=\"link in hiddenLinks\"\n :key=\"link.name\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n class=\"octopus-dropdown-item justify-content-start d-flex align-items-center realLink\"\n :href=\"link.url\"\n :title=\"t('New window', {text: link.title})\"\n >\n <component\n :is=\"link.icon\"\n :fill-color=\"fillColor(link)\"\n class=\"me-1\"\n />\n {{ link.title }}\n </a>\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport RssIcon from \"vue-material-design-icons/Rss.vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { type Component, computed, onMounted } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { Playlist } from \"../../../stores/class/general/playlist\";\nimport { useSharePlatforms } from \"../../composable/share/useSharePlatforms\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\ntype Link = {\n name: string;\n icon: Component;\n title: string;\n color?: string;\n url: string | undefined;\n};\n\n//Props \nconst props = withDefaults(defineProps<{\n content: Emission|Playlist;\n windowWidth?: number;\n justifyCenter?: boolean;\n /** Display the icons with just the octopus primary color */\n mono?: boolean;\n /** If set, limit the number of icons (will not display plus button) */\n limit?: number;\n /** Disable the RSS icon */\n noRss?: boolean;\n /** Smaller icons */\n small?: boolean;\n}>(), {\n windowWidth: 0,\n justifyCenter: true,\n mono: false,\n limit: undefined,\n noRss: false,\n small: false\n});\n\n//Composables\nconst { t } = useI18n();\nconst apiStore = useApiStore();\nconst { getPlatformsWithLinks, initPlatforms } = useSharePlatforms();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst maxElements = computed((): number => {\n let number = 5;\n if (isPhone.value) {\n number = 3;\n }\n\n if (props.noRss) {\n number += 1;\n }\n if (subscriptionsDisplay.value.length <= number + 1) {\n number = subscriptionsDisplay.value.length;\n }\n\n if (props.limit !== undefined) {\n return Math.min(number, props.limit);\n } else {\n return number;\n }\n});\n\nconst subscriptionsDisplay = computed(() => {\n return getPlatformsWithLinks(props.content.annotations);\n});\n\nconst shownLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(0, maxElements.value);\n});\n\nconst hiddenLinks = computed((): Array<Link> => {\n return subscriptionsDisplay.value.slice(maxElements.value);\n});\n\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if ((props.content as Emission).emissionId) {\n return api + \"emission/\" + (props.content as Emission).emissionId + \".rss\";\n }\n if ((props.content as Playlist).playlistId) {\n return api + \"playlist/\" + (props.content as Playlist).playlistId + \".rss\";\n }\n return undefined;\n});\n\nconst iconSize = computed((): number => {\n return props.small ? 20 : 24;\n});\n\nonMounted(() => {\n const orga = 'orga' in props.content ? props.content.orga : props.content.organisation;\n initPlatforms(orga.id);\n});\n\nfunction fillColor(link?: Link): string|undefined {\n if (props.mono === true) {\n return 'white';\n } else {\n return link?.color;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.subscribe-buttons-container {\n align-self: center;\n display: inline-flex;\n width: 100%;\n\n &.justify-center {\n justify-content: center;\n }\n\n & > div {\n display: inline-flex;\n justify-content: flex-start;\n overflow: hidden;\n width: fit-content;\n }\n\n @media (width <= 960px) {\n margin-top: 0.8rem;\n }\n}\n\n.share-btn {\n margin-right: .5rem;\n margin-left: .5rem;\n\n &.mono {\n background-color: var(--octopus-primary);\n }\n\n &.small {\n height: 1.8rem !important;\n width: 1.8rem !important;\n margin-right: .2rem;\n margin-left: .2rem;\n }\n}\n</style>\n"],"mappings":"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"}
|