@saooti/octopus-sdk 42.2.1 → 42.2.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-fO5eaqLJ.mjs → AdvancedSearch-C4segSRv.mjs} +6 -6
- package/dist/AdvancedSearch-C4segSRv.mjs.map +1 -0
- package/dist/AdvancedSearch-DD9tnLCw.mjs.map +1 -0
- package/dist/{CategoryFilter-Cu2a0YE9.mjs → CategoryFilter-CpplEC8n.mjs} +5 -5
- package/dist/CategoryFilter-CpplEC8n.mjs.map +1 -0
- package/dist/CategoryFilter-cbQR_ySd.mjs.map +1 -0
- package/dist/{CategoryList-DkxZDrO5.mjs → CategoryList-BTabY3vQ.mjs} +2 -2
- package/dist/CategoryList-BTabY3vQ.mjs.map +1 -0
- package/dist/CategoryList-DHEJoaez.mjs.map +1 -0
- package/dist/CategoryPage-BbsCC3Wr.mjs.map +1 -0
- package/dist/CategoryPage-BxvUmThb.mjs.map +1 -0
- package/dist/{CategoryPage-3HFz1i7_.mjs → CategoryPage-D755GvQZ.mjs} +3 -3
- package/dist/CategoryPage-D755GvQZ.mjs.map +1 -0
- package/dist/CategoryPage-DDBJ2krs.mjs.map +1 -0
- package/dist/CategoryPage-DRCYjOqG.mjs.map +1 -0
- package/dist/ChapteringModal-CSQqCWIk.mjs.map +1 -0
- package/dist/ChapteringModal-Dt8Rsauh.mjs.map +1 -0
- package/dist/{ChapteringModal-C-rdkbSz.mjs → ChapteringModal-ei6ZqVJU.mjs} +2 -2
- package/dist/ChapteringModal-ei6ZqVJU.mjs.map +1 -0
- package/dist/CheckIdentityModal-CNFVJVB_.mjs.map +1 -0
- package/dist/{CheckIdentityModal-N9h8yvhC.mjs → CheckIdentityModal-cpMOuJGv.mjs} +3 -3
- package/dist/CheckIdentityModal-cpMOuJGv.mjs.map +1 -0
- package/dist/ClipboardModal-2ZGF38VB.mjs.map +1 -0
- package/dist/{ClipboardModal-CnieIOJr.mjs → ClipboardModal-DzCUqSph.mjs} +2 -2
- package/dist/ClipboardModal-DzCUqSph.mjs.map +1 -0
- package/dist/CommentInput-CV46HJN8.mjs.map +1 -0
- package/dist/{CommentInput-CEioyN7X.mjs → CommentInput-D_p03L68.mjs} +6 -6
- package/dist/CommentInput-D_p03L68.mjs.map +1 -0
- package/dist/CommentInput-DwRbD74k.mjs.map +1 -0
- package/dist/CommentItem-B6_XUaFR.mjs.map +1 -0
- package/dist/CommentItem-CbbmwVXB.mjs.map +1 -0
- package/dist/CommentItem-DfKKazY0.mjs.map +1 -0
- package/dist/CommentItem-JRjSLmui.mjs.map +1 -0
- package/dist/{CommentItem-BefuRoxQ.mjs → CommentItem-MFN0JNW1.mjs} +8 -8
- package/dist/CommentItem-MFN0JNW1.mjs.map +1 -0
- package/dist/{CommentList-BsPwzqkf.mjs → CommentList-BkKy5ftL.mjs} +3 -3
- package/dist/CommentList-BkKy5ftL.mjs.map +1 -0
- package/dist/CommentList-BrP71Ug4.mjs.map +1 -0
- package/dist/CommentList-Ng_YXr74.mjs.map +1 -0
- package/dist/CommentList-tKA7NFHM.mjs.map +1 -0
- package/dist/CommentList-yarlxaXg.mjs.map +1 -0
- package/dist/{CommentMoreActions-C86aqy8M.mjs → CommentMoreActions-CBSvuOGJ.mjs} +5 -5
- package/dist/CommentMoreActions-CBSvuOGJ.mjs.map +1 -0
- package/dist/CommentMoreActions-D7guBdA7.mjs.map +1 -0
- package/dist/CommentName-frCHmngc.mjs.map +1 -0
- package/dist/{CommentName-DT1QyPi3.mjs → CommentName-zTMSdG4d.mjs} +3 -3
- package/dist/CommentName-zTMSdG4d.mjs.map +1 -0
- package/dist/{CommentParentInfo-9Fe-3e6c.mjs → CommentParentInfo-CRTYPb8P.mjs} +2 -2
- package/dist/CommentParentInfo-CRTYPb8P.mjs.map +1 -0
- package/dist/CommentParentInfo-D8qquB6k.mjs.map +1 -0
- package/dist/CommentParentInfo-DC4Q6wNO.mjs.map +1 -0
- package/dist/CommentParentInfo-temUvqNv.mjs.map +1 -0
- package/dist/{CommentPlayer-CiWQM64Y.mjs → CommentPlayer-BMuLmZdI.mjs} +3 -3
- package/dist/CommentPlayer-BMuLmZdI.mjs.map +1 -0
- package/dist/CommentPlayer-BPA_lEoE.mjs.map +1 -0
- package/dist/CommentPlayer-CUNi1Lxv.mjs.map +1 -0
- package/dist/{CommentSection-Be38YIkC.mjs → CommentSection-B91sHMDT.mjs} +5 -5
- package/dist/CommentSection-B91sHMDT.mjs.map +1 -0
- package/dist/CommentSection-CpYd7i8U.mjs.map +1 -0
- package/dist/CommentSection-CrqweNX4.mjs.map +1 -0
- package/dist/CommentSection-G8rMWPrM.mjs.map +1 -0
- package/dist/CommentSection-xjY6h7nn.mjs.map +1 -0
- package/dist/CommentStore-9WWuGwIj.mjs.map +1 -0
- package/dist/{CommentStore-Dv7j94Uo.mjs → CommentStore-ClU882RI.mjs} +2 -2
- package/dist/CommentStore-ClU882RI.mjs.map +1 -0
- package/dist/ContractPreviewModal-C4_20E99.mjs.map +1 -0
- package/dist/{ContractPreviewModal-CPT6bDpJ.mjs → ContractPreviewModal-Dn5MeLFo.mjs} +2 -2
- package/dist/ContractPreviewModal-Dn5MeLFo.mjs.map +1 -0
- package/dist/{DownloadPodcastButton-6D8qNAkT.mjs → DownloadPodcastButton-BI_sZWcJ.mjs} +3 -3
- package/dist/DownloadPodcastButton-BI_sZWcJ.mjs.map +1 -0
- package/dist/DownloadPodcastButton-CSRcg8Nl.mjs.map +1 -0
- package/dist/EditCommentModal-KAP1l9RK.mjs.map +1 -0
- package/dist/{EditCommentModal-aAcjhc0v.mjs → EditCommentModal-RbVMVDOp.mjs} +2 -2
- package/dist/EditCommentModal-RbVMVDOp.mjs.map +1 -0
- package/dist/{EmissionGroupChooser-Djt1IZg7.mjs → EmissionGroupChooser-BXqM4iXP.mjs} +2 -2
- package/dist/EmissionGroupChooser-BXqM4iXP.mjs.map +1 -0
- package/dist/EmissionGroupChooser-CO1WBOUi.mjs.map +1 -0
- package/dist/EmissionInlineList-B-r4eI3D.mjs.map +1 -0
- package/dist/{EmissionInlineList-BcrKpW8S.mjs → EmissionInlineList-Cy1lbYKY.mjs} +6 -6
- package/dist/EmissionInlineList-Cy1lbYKY.mjs.map +1 -0
- package/dist/EmissionInlineList-IKPyjBTQ.mjs.map +1 -0
- package/dist/EmissionItem-982WkWkg.mjs.map +1 -0
- package/dist/EmissionItem-B8q9hnN5.mjs.map +1 -0
- package/dist/{EmissionItem-DfkPRcPz.mjs → EmissionItem-BwXm3nNx.mjs} +5 -5
- package/dist/EmissionItem-BwXm3nNx.mjs.map +1 -0
- package/dist/EmissionItem-ZDlQ7B9S.mjs.map +1 -0
- package/dist/{EmissionList-DSuGp0JO.mjs → EmissionList-C8OxrndH.mjs} +6 -6
- package/dist/EmissionList-C8OxrndH.mjs.map +1 -0
- package/dist/EmissionList-C9-UUWMV.mjs.map +1 -0
- package/dist/EmissionList-Dk9xS4s_.mjs.map +1 -0
- package/dist/EmissionList-nrY7ASws.mjs.map +1 -0
- package/dist/EmissionList-vH4NX1NW.mjs.map +1 -0
- package/dist/EmissionPage-BHAPlZw-.mjs.map +1 -0
- package/dist/EmissionPage-B_2JalGG.mjs.map +1 -0
- package/dist/EmissionPage-D4PjyZzN.mjs.map +1 -0
- package/dist/EmissionPage-HGPCRuZD.mjs.map +1 -0
- package/dist/{EmissionPage-Bo9fK8HE.mjs → EmissionPage-nCNIiWCo.mjs} +25 -18
- package/dist/EmissionPage-nCNIiWCo.mjs.map +1 -0
- package/dist/EmissionPlayerItem-B_wRzikv.mjs.map +1 -0
- package/dist/{EmissionPlayerItem-D21OrPmm.mjs → EmissionPlayerItem-Degbnz9F.mjs} +5 -5
- package/dist/EmissionPlayerItem-Degbnz9F.mjs.map +1 -0
- package/dist/EmissionPlayerItem-Dkd0o1ee.mjs.map +1 -0
- package/dist/EmissionPresentationItem-BQ7HhOlC.mjs.map +1 -0
- package/dist/{EmissionPresentationItem-CwDIBurH.mjs → EmissionPresentationItem-CwBGPIgz.mjs} +2 -2
- package/dist/EmissionPresentationItem-CwBGPIgz.mjs.map +1 -0
- package/dist/{EmissionPresentationList-CASI5laP.mjs → EmissionPresentationList-BKI5mQdw.mjs} +4 -4
- package/dist/EmissionPresentationList-BKI5mQdw.mjs.map +1 -0
- package/dist/EmissionPresentationList-CLli23rs.mjs.map +1 -0
- package/dist/EmissionsPage-CO2xgVOR.mjs.map +1 -0
- package/dist/{EmissionsPage-Bw8Qtzlk.mjs → EmissionsPage-Cj7su56Z.mjs} +5 -5
- package/dist/EmissionsPage-Cj7su56Z.mjs.map +1 -0
- package/dist/EmissionsPage-DJdy0re_.mjs.map +1 -0
- package/dist/EmissionsPage-DR9r7_gH.mjs.map +1 -0
- package/dist/EmissionsPage-OVNfLKFu.mjs.map +1 -0
- package/dist/Error403Page-Ch535DfU.mjs.map +1 -0
- package/dist/{Error403Page-nTYCHwTi.mjs → Error403Page-DW2kK8ZZ.mjs} +2 -2
- package/dist/Error403Page-DW2kK8ZZ.mjs.map +1 -0
- package/dist/FooterGarSection-B76j-WZS.mjs.map +1 -0
- package/dist/{FooterGarSection-Cod8Key5.mjs → FooterGarSection-DVdF5RFq.mjs} +4 -4
- package/dist/FooterGarSection-DVdF5RFq.mjs.map +1 -0
- package/dist/FooterSection-BQiO-D1p.mjs.map +1 -0
- package/dist/{FooterSection-4WXBZj7c.mjs → FooterSection-CpYI9OGH.mjs} +5 -5
- package/dist/FooterSection-CpYI9OGH.mjs.map +1 -0
- package/dist/{HomeDropdown-CVe7yF6Y.mjs → HomeDropdown-D7FezAO8.mjs} +3 -3
- package/dist/HomeDropdown-D7FezAO8.mjs.map +1 -0
- package/dist/HomeDropdown-DQoMvBgU.mjs.map +1 -0
- package/dist/HomePage-BWs_az04.mjs.map +1 -0
- package/dist/HomePage-CMPKjRFA.mjs.map +1 -0
- package/dist/HomePage-CsXaeTCW.mjs.map +1 -0
- package/dist/HomePage-NH7OxpA_.mjs.map +1 -0
- package/dist/{HomePage-DupmOw6F.mjs → HomePage-vo6At2bL.mjs} +4 -4
- package/dist/HomePage-vo6At2bL.mjs.map +1 -0
- package/dist/{PodcastRubriqueList-BeTq7IRu.mjs → InlineRubriqueList-3ZVN9GJk.mjs} +14 -12
- package/dist/InlineRubriqueList-3ZVN9GJk.mjs.map +1 -0
- package/dist/InlineRubriqueList-D03VCzg8.mjs.map +1 -0
- package/dist/LikeSection-DtthHZj6.mjs.map +1 -0
- package/dist/{LikeSection-DAid96g9.mjs → LikeSection-jKjhnj88.mjs} +4 -4
- package/dist/LikeSection-jKjhnj88.mjs.map +1 -0
- package/dist/{ListPaginate-C9saxru9.mjs → ListPaginate-BXNnw_I8.mjs} +3 -3
- package/dist/ListPaginate-BXNnw_I8.mjs.map +1 -0
- package/dist/ListPaginate-COsL4t78.mjs.map +1 -0
- package/dist/ListPaginate-JuC0L113.mjs.map +1 -0
- package/dist/LiveHorizontalList-CFs9mGYs.mjs.map +1 -0
- package/dist/LiveHorizontalList-CWBQkS78.mjs.map +1 -0
- package/dist/LiveHorizontalList-DwPVmnvH.mjs.map +1 -0
- package/dist/LiveHorizontalList-jducN58c.mjs.map +1 -0
- package/dist/{LiveHorizontalList-OArlzudf.mjs → LiveHorizontalList-wgXkgFLv.mjs} +4 -4
- package/dist/LiveHorizontalList-wgXkgFLv.mjs.map +1 -0
- package/dist/LiveList-Bp-feBp9.mjs.map +1 -0
- package/dist/LiveList-ByyCyWUl.mjs.map +1 -0
- package/dist/{LiveList-EqIo_cye.mjs → LiveList-CA5n6VeN.mjs} +6 -6
- package/dist/LiveList-CA5n6VeN.mjs.map +1 -0
- package/dist/LiveList-Cah5VFun.mjs.map +1 -0
- package/dist/LiveList-DTAnN32j.mjs.map +1 -0
- package/dist/LivesPage-CNPMz3xS.mjs.map +1 -0
- package/dist/{LivesPage-BmHiBN8A.mjs → LivesPage-CTjXgU-Y.mjs} +5 -5
- package/dist/LivesPage-CTjXgU-Y.mjs.map +1 -0
- package/dist/LivesPage-CdhWyikV.mjs.map +1 -0
- package/dist/LivesPage-CwvFSl6G.mjs.map +1 -0
- package/dist/LivesPage-DyIfBEPX.mjs.map +1 -0
- package/dist/{MapPage-DcXKTGGh.mjs → MapPage-C_nGG0_5.mjs} +3 -3
- package/dist/MapPage-C_nGG0_5.mjs.map +1 -0
- package/dist/MapPage-DXV40zWN.mjs.map +1 -0
- package/dist/{MobileMenu-C0IYBWwF.mjs → MobileMenu-C95GAIm0.mjs} +4 -4
- package/dist/MobileMenu-C95GAIm0.mjs.map +1 -0
- package/dist/MobileMenu-CfHqWqsL.mjs.map +1 -0
- package/dist/NewsletterModal-4Lei4Y59.mjs.map +1 -0
- package/dist/{NewsletterModal-BzlUlz3P.mjs → NewsletterModal-B6ky7DBC.mjs} +2 -2
- package/dist/NewsletterModal-B6ky7DBC.mjs.map +1 -0
- package/dist/OrganisationChooser-BufDZsSd.mjs.map +1 -0
- package/dist/{OrganisationChooser-Bm4zqqCH.mjs → OrganisationChooser-CA0_LiTH.mjs} +3 -3
- package/dist/OrganisationChooser-CA0_LiTH.mjs.map +1 -0
- package/dist/{OrganisationChooserLight-BQ9B91mO.mjs → OrganisationChooserLight-BwG5mNdW.mjs} +2 -2
- package/dist/OrganisationChooserLight-BwG5mNdW.mjs.map +1 -0
- package/dist/OrganisationChooserLight-C2oGlc9Z.mjs.map +1 -0
- package/dist/{PageNotFound-BVQ8M8sO.mjs → PageNotFound-BHpjyNDo.mjs} +3 -3
- package/dist/PageNotFound-BHpjyNDo.mjs.map +1 -0
- package/dist/PageNotFound-IMnfLZqX.mjs.map +1 -0
- package/dist/{ParticipantInlineList-BQtQZFW1.mjs → ParticipantInlineList-A8UwjE4m.mjs} +5 -5
- package/dist/ParticipantInlineList-A8UwjE4m.mjs.map +1 -0
- package/dist/ParticipantInlineList-BpVOpEBm.mjs.map +1 -0
- package/dist/ParticipantInlineList-C5jWxedt.mjs.map +1 -0
- package/dist/ParticipantInlineList-C78uhskc.mjs.map +1 -0
- package/dist/ParticipantItem--Wv16z3V.mjs.map +1 -0
- package/dist/ParticipantItem-B3k4mf2V.mjs.map +1 -0
- package/dist/ParticipantItem-DAPOMGZD.mjs.map +1 -0
- package/dist/{ParticipantItem-EDPkxTT-.mjs → ParticipantItem-Szz8WXI6.mjs} +4 -4
- package/dist/ParticipantItem-Szz8WXI6.mjs.map +1 -0
- package/dist/ParticipantPage-BbKUwNKL.mjs.map +1 -0
- package/dist/ParticipantPage-Byq-9aCQ.mjs.map +1 -0
- package/dist/ParticipantPage-D4RVBlE-.mjs.map +1 -0
- package/dist/ParticipantPage-DfLxuZf-.mjs.map +1 -0
- package/dist/{ParticipantPage-BF-s1oof.mjs → ParticipantPage-y3OoBod8.mjs} +9 -9
- package/dist/ParticipantPage-y3OoBod8.mjs.map +1 -0
- package/dist/{ParticipantsPage-Bzt8Hxah.mjs → ParticipantsPage--BxmzVwz.mjs} +7 -7
- package/dist/ParticipantsPage--BxmzVwz.mjs.map +1 -0
- package/dist/ParticipantsPage-BEPHaCy5.mjs.map +1 -0
- package/dist/ParticipantsPage-BlQavFT6.mjs.map +1 -0
- package/dist/ParticipantsPage-D8ja25F9.mjs.map +1 -0
- package/dist/ParticipantsPage-R8LVrDFY.mjs.map +1 -0
- package/dist/{PlayerAnonymousModal-CbrqO1hs.mjs → PlayerAnonymousModal-BGPpTBPW.mjs} +3 -3
- package/dist/PlayerAnonymousModal-BGPpTBPW.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-BW239BiA.mjs.map +1 -0
- package/dist/PlayerCompact-BFC95d7Y.mjs.map +1 -0
- package/dist/PlayerCompact-C-WCTFZN.mjs.map +1 -0
- package/dist/{PlayerCompact-BtKfz384.mjs → PlayerCompact-DnJns8S2.mjs} +4 -4
- package/dist/PlayerCompact-DnJns8S2.mjs.map +1 -0
- package/dist/PlayerComponent-B8AGq9pg.mjs.map +1 -0
- package/dist/{PlayerComponent-CxNkDcFc.mjs → PlayerComponent-BRBrXVjI.mjs} +27 -39
- package/dist/PlayerComponent-BRBrXVjI.mjs.map +1 -0
- package/dist/PlayerComponent-BbvNS7sy.mjs.map +1 -0
- package/dist/PlayerComponent-By_JAwx_.mjs.map +1 -0
- package/dist/PlayerComponent-C425OWjX.mjs.map +1 -0
- package/dist/PlayerComponent-C5PNQ3TW.mjs.map +1 -0
- package/dist/PlayerComponent-Cnk_vePj.mjs.map +1 -0
- package/dist/PlayerComponent-CovfufPB.mjs.map +1 -0
- package/dist/PlayerComponent-DC4jQIwE.mjs.map +1 -0
- package/dist/PlayerComponent-DEUmVv0M.mjs.map +1 -0
- package/dist/PlayerComponent-DOXY0vL0.mjs.map +1 -0
- package/dist/PlayerComponent-DajZbHv7.mjs.map +1 -0
- package/dist/PlayerComponent-DejSC061.mjs.map +1 -0
- package/dist/PlayerComponent-p7W2UNk6.mjs.map +1 -0
- package/dist/PlayerLarge-3zzN7qom.mjs.map +1 -0
- package/dist/{PlayerLarge-BH6BLQxk.mjs → PlayerLarge-B97rRmrJ.mjs} +12 -10
- package/dist/PlayerLarge-B97rRmrJ.mjs.map +1 -0
- package/dist/PlayerLarge-BzwrEgVR.mjs.map +1 -0
- package/dist/PlayerLarge-CLOwDO6Q.mjs.map +1 -0
- package/dist/PlayerLarge-Chv7pMOU.mjs.map +1 -0
- package/dist/PlayerLarge-CkWGaDiY.mjs.map +1 -0
- package/dist/PlayerLarge-D0NMzCRi.mjs.map +1 -0
- package/dist/PlayerLarge-D3obSnYt.mjs.map +1 -0
- package/dist/PlayerLarge-DLGXpE3K.mjs.map +1 -0
- package/dist/PlayerLarge-QtUrqNm5.mjs.map +1 -0
- package/dist/PlayerLarge-juuY9yOX.mjs.map +1 -0
- package/dist/PlayerLarge-n7zyM6b_.mjs.map +1 -0
- package/dist/PlayerLarge-o4FVk0QB.mjs.map +1 -0
- package/dist/PlayerLarge-tMW3v2La.mjs.map +1 -0
- package/dist/PlayerPlayButton-CTu0337E.mjs.map +1 -0
- package/dist/PlayerPlayButton-CfJWIpoP.mjs.map +1 -0
- package/dist/{PlayerPlayButton-DT2OdqnI.mjs → PlayerPlayButton-zKdHGzFr.mjs} +5 -5
- package/dist/PlayerPlayButton-zKdHGzFr.mjs.map +1 -0
- package/dist/{PlayerProgressBar-CSYnPjZb.mjs → PlayerProgressBar-BG5NG596.mjs} +4 -4
- package/dist/PlayerProgressBar-BG5NG596.mjs.map +1 -0
- package/dist/PlayerProgressBar-Cjv8JVY2.mjs.map +1 -0
- package/dist/PlayerProgressBar-Co0_YEF3.mjs.map +1 -0
- package/dist/PlayerStore-B-L2PQ_b.mjs.map +1 -0
- package/dist/PlayerStore-C2XzSrF5.mjs.map +1 -0
- package/dist/{PlayerStore-DukkcHI_.mjs → PlayerStore-vYmnOEA_.mjs} +3 -3
- package/dist/PlayerStore-vYmnOEA_.mjs.map +1 -0
- package/dist/PlayerVideo-DD6NaGkU.mjs.map +1 -0
- package/dist/{PlayerVideo-_Uz00K_T.mjs → PlayerVideo-Ds0oYeTC.mjs} +5 -5
- package/dist/PlayerVideo-Ds0oYeTC.mjs.map +1 -0
- package/dist/PlayerVideo-cYHZOYMv.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-BPJdJNEB.mjs.map +1 -0
- package/dist/{PlayerVideoDigiteka-CjfuxXBF.mjs → PlayerVideoDigiteka-C7xb0ndg.mjs} +3 -3
- package/dist/PlayerVideoDigiteka-C7xb0ndg.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-oqtYXqYK.mjs.map +1 -0
- package/dist/PlayerVideoHls-CB4psqbz.mjs.map +1 -0
- package/dist/{PlayerVideoHls-Dms7iTSo.mjs → PlayerVideoHls-xSNqzBEw.mjs} +4 -4
- package/dist/PlayerVideoHls-xSNqzBEw.mjs.map +1 -0
- package/dist/PlayerVideoHls-zNbegJFp.mjs.map +1 -0
- package/dist/PlaylistPage-BUj1Lzfp.mjs.map +1 -0
- package/dist/PlaylistPage-BhcJkM15.mjs.map +1 -0
- package/dist/PlaylistPage-BsHMB2nn.mjs.map +1 -0
- package/dist/{PlaylistPage-CQX0LhXn.mjs → PlaylistPage-D4mcAo00.mjs} +12 -12
- package/dist/PlaylistPage-D4mcAo00.mjs.map +1 -0
- package/dist/PlaylistPage-DjAgejp8.mjs.map +1 -0
- package/dist/PlaylistsPage-B3V5-WT9.mjs.map +1 -0
- package/dist/PlaylistsPage-DSjvWTw5.mjs.map +1 -0
- package/dist/{PlaylistsPage-Bd-u4qlc.mjs → PlaylistsPage-Dr6HKHf8.mjs} +7 -7
- package/dist/PlaylistsPage-Dr6HKHf8.mjs.map +1 -0
- package/dist/PodcastFilterList-C-8AF1Dn.mjs.map +1 -0
- package/dist/{PodcastFilterList-DkH6bqv_.mjs → PodcastFilterList-CYwPiGko.mjs} +3 -3
- package/dist/PodcastFilterList-CYwPiGko.mjs.map +1 -0
- package/dist/PodcastFilterList-C_d1SyTB.mjs.map +1 -0
- package/dist/PodcastFilterList-ClMsIUaO.mjs.map +1 -0
- package/dist/PodcastFilterList-DBS0kvW6.mjs.map +1 -0
- package/dist/PodcastImage-B8o3T5zK.mjs.map +1 -0
- package/dist/{PodcastImage-BtxcPlrh.mjs → PodcastImage-Bs1lpubL.mjs} +4 -4
- package/dist/PodcastImage-Bs1lpubL.mjs.map +1 -0
- package/dist/PodcastImage-DBB5689n.mjs.map +1 -0
- package/dist/PodcastImage-DNLZH0dY.mjs.map +1 -0
- package/dist/PodcastImage-DrV8oxG8.mjs.map +1 -0
- package/dist/{PodcastInlineList-CVWfH5np.mjs → PodcastInlineList-B7-2QswT.mjs} +2 -2
- package/dist/PodcastInlineList-B7-2QswT.mjs.map +1 -0
- package/dist/PodcastInlineList-BVMV6Wvd.mjs.map +1 -0
- package/dist/PodcastInlineList-BXPpF0YD.mjs.map +1 -0
- package/dist/PodcastInlineList-CLjO1SpD.mjs.map +1 -0
- package/dist/PodcastInlineList-Cf5YF0j9.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-BX0tXOFx.mjs.map +1 -0
- package/dist/{PodcastInlineListTemplate-BWw1Ix-7.mjs → PodcastInlineListTemplate-DCWn3r7s.mjs} +4 -4
- package/dist/PodcastInlineListTemplate-DCWn3r7s.mjs.map +1 -0
- package/dist/PodcastIsPlaying-BG1_FgVX.mjs.map +1 -0
- package/dist/{PodcastIsPlaying-B7YVeSyB.mjs → PodcastIsPlaying-BsObdQGR.mjs} +2 -2
- package/dist/PodcastIsPlaying-BsObdQGR.mjs.map +1 -0
- package/dist/PodcastIsPlaying-Csd-C2jr.mjs.map +1 -0
- package/dist/PodcastItem-CGmEwYT4.mjs.map +1 -0
- package/dist/PodcastItem-CN6gwARQ.mjs.map +1 -0
- package/dist/PodcastItem-CdLjZKxf.mjs.map +1 -0
- package/dist/PodcastItem-D1MwHzhE.mjs.map +1 -0
- package/dist/{PodcastItem-CFk8MX9D.mjs → PodcastItem-_8ErwIDG.mjs} +7 -7
- package/dist/PodcastItem-_8ErwIDG.mjs.map +1 -0
- package/dist/PodcastList-BXla7F3u.mjs.map +1 -0
- package/dist/PodcastList-BqE8dwdc.mjs.map +1 -0
- package/dist/PodcastList-BvC6iOS6.mjs.map +1 -0
- package/dist/PodcastList-CRwA-s7F.mjs.map +1 -0
- package/dist/PodcastList-CVFr9WNS.mjs.map +1 -0
- package/dist/PodcastList-DZKxDulS.mjs.map +1 -0
- package/dist/{PodcastList-BLXPFjvL.mjs → PodcastList-DgLQjL0d.mjs} +6 -6
- package/dist/PodcastList-DgLQjL0d.mjs.map +1 -0
- package/dist/{PodcastList-c0Iwzakm.mjs → PodcastList-DhKeiBbv.mjs} +5 -5
- package/dist/PodcastList-DhKeiBbv.mjs.map +1 -0
- package/dist/PodcastList-Dtq6kEG4.mjs.map +1 -0
- package/dist/PodcastList-Dx-mo7Wo.mjs.map +1 -0
- package/dist/{PodcastPage-C_d9FaS7.mjs → PodcastPage-C5OCwW8q.mjs} +23 -23
- package/dist/PodcastPage-C5OCwW8q.mjs.map +1 -0
- package/dist/PodcastPage-CsVqOGWc.mjs.map +1 -0
- package/dist/PodcastPage-DQInD9ry.mjs.map +1 -0
- package/dist/PodcastPage-Dka9GEzi.mjs.map +1 -0
- package/dist/PodcastPage-acKIH0vO.mjs.map +1 -0
- package/dist/PodcastPlayBar-AgtR8Ia9.mjs.map +1 -0
- package/dist/PodcastPlayBar-D7CyLEM4.mjs.map +1 -0
- package/dist/{PodcastPlayBar-WjGn_KlZ.mjs → PodcastPlayBar-DC5HCx76.mjs} +4 -4
- package/dist/PodcastPlayBar-DC5HCx76.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-DHYxw3NX.mjs.map +1 -0
- package/dist/{PodcastPlayBasicButton-BNKlqhGR.mjs → PodcastPlayBasicButton-PJHza4d_.mjs} +2 -2
- package/dist/PodcastPlayBasicButton-PJHza4d_.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-gK82n3YL.mjs.map +1 -0
- package/dist/{PodcastPlayButton-B9hWbPEk.mjs → PodcastPlayButton-1eaXWTlG.mjs} +4 -4
- package/dist/PodcastPlayButton-1eaXWTlG.mjs.map +1 -0
- package/dist/PodcastPlayButton-Bosq5ozq.mjs.map +1 -0
- package/dist/PodcastPlayButton-DIQi57Oh.mjs.map +1 -0
- package/dist/PodcastPlayButton-DcjbCnlT.mjs.map +1 -0
- package/dist/PodcastPlayButton-DgSCyhrd.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-C0HZum5z.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-CSziI2j4.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-CvX2rauY.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-H_rnCHag.mjs.map +1 -0
- package/dist/{PodcastPlaylistInlineList-_csxbYAx.mjs → PodcastPlaylistInlineList-XTbhC8OJ.mjs} +5 -5
- package/dist/PodcastPlaylistInlineList-XTbhC8OJ.mjs.map +1 -0
- package/dist/{PodcastPresentationList-BD8XmnW0.mjs → PodcastPresentationList-BUl5Rq83.mjs} +5 -5
- package/dist/PodcastPresentationList-BUl5Rq83.mjs.map +1 -0
- package/dist/PodcastPresentationList-BvkEDbtG.mjs.map +1 -0
- package/dist/PodcastPresentationList-C0n-xr5w.mjs.map +1 -0
- package/dist/PodcastPresentationList-CnrMkINf.mjs.map +1 -0
- package/dist/PodcastPresentationList-DC-Oi_eK.mjs.map +1 -0
- package/dist/PodcastProgressBar-CP-0ptRF.mjs.map +1 -0
- package/dist/{PodcastProgressBar-B3XOeeJx.mjs → PodcastProgressBar-VG-mRcpi.mjs} +4 -4
- package/dist/PodcastProgressBar-VG-mRcpi.mjs.map +1 -0
- package/dist/PodcastProgressBar-jY43GoFx.mjs.map +1 -0
- package/dist/PodcastRawTranscript-BAu-dt2V.mjs.map +1 -0
- package/dist/{PodcastRawTranscript-D0Nm7jGM.mjs → PodcastRawTranscript-Bf6f5yNd.mjs} +3 -3
- package/dist/PodcastRawTranscript-Bf6f5yNd.mjs.map +1 -0
- package/dist/{PodcastSwiperList-DJ0O3dqM.mjs → PodcastSwiperList-BhulNkN-.mjs} +5 -5
- package/dist/PodcastSwiperList-BhulNkN-.mjs.map +1 -0
- package/dist/PodcastSwiperList-CGeumBPj.mjs.map +1 -0
- package/dist/PodcastSwiperList-CzUkS6M6.mjs.map +1 -0
- package/dist/PodcastSwiperList-DLKOAjUS.mjs.map +1 -0
- package/dist/PodcastSwiperList-DaTHwrHm.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BZT-U0KX.mjs.map +1 -0
- package/dist/{PodcastmakerHeader-DAATtOG_.mjs → PodcastmakerHeader-Df0g2dCr.mjs} +2 -2
- package/dist/PodcastmakerHeader-Df0g2dCr.mjs.map +1 -0
- package/dist/PodcastsPage-B-Qzlif0.mjs.map +1 -0
- package/dist/PodcastsPage-BoK55Z9G.mjs.map +1 -0
- package/dist/PodcastsPage-CTzbr2VD.mjs.map +1 -0
- package/dist/{PodcastsPage-ZhEVoMp1.mjs → PodcastsPage-DSJUPRZE.mjs} +5 -5
- package/dist/PodcastsPage-DSJUPRZE.mjs.map +1 -0
- package/dist/PodcastsPage-Jg_jAix6.mjs.map +1 -0
- package/dist/{ProductorSearch-xs0kzX_E.mjs → ProductorSearch-BTj9gIOs.mjs} +3 -3
- package/dist/ProductorSearch-BTj9gIOs.mjs.map +1 -0
- package/dist/ProductorSearch-ziDbxrDd.mjs.map +1 -0
- package/dist/ProgressBar-BOq9RfZ2.mjs.map +1 -0
- package/dist/{ProgressBar-0DSoUTwB.mjs → ProgressBar-BVc0_6Lv.mjs} +2 -2
- package/dist/ProgressBar-BVc0_6Lv.mjs.map +1 -0
- package/dist/ProgressBar-Cgt2PqnO.mjs.map +1 -0
- package/dist/QrCode-DNiPIFIA.mjs.map +1 -0
- package/dist/{QrCode-CUP2O18d.mjs → QrCode-MCv4t_Bn.mjs} +2 -2
- package/dist/QrCode-MCv4t_Bn.mjs.map +1 -0
- package/dist/{QrCodeModal-DXBCuki7.mjs → QrCodeModal-Be8E0JlC.mjs} +2 -2
- package/dist/QrCodeModal-Be8E0JlC.mjs.map +1 -0
- package/dist/QrCodeModal-DYDKLLuw.mjs.map +1 -0
- package/dist/RadioCurrently-BJOmCSby.mjs.map +1 -0
- package/dist/RadioCurrently-CZePLInZ.mjs.map +1 -0
- package/dist/{RadioCurrently-D5M81oIX.mjs → RadioCurrently-DWySwV64.mjs} +4 -4
- package/dist/RadioCurrently-DWySwV64.mjs.map +1 -0
- package/dist/RadioHistory-7EGvEAMx.mjs.map +1 -0
- package/dist/RadioHistory-BdMa013x.mjs.map +1 -0
- package/dist/{RadioHistory-BgOve4jk.mjs → RadioHistory-DlQFZYp2.mjs} +3 -3
- package/dist/RadioHistory-DlQFZYp2.mjs.map +1 -0
- package/dist/{RadioImage-CUTRr3DL.mjs → RadioImage-BIe2KpG_.mjs} +5 -5
- package/dist/RadioImage-BIe2KpG_.mjs.map +1 -0
- package/dist/RadioImage-CXFZXN1N.mjs.map +1 -0
- package/dist/RadioImage-CpJmuc8a.mjs.map +1 -0
- package/dist/{RadioList-CwzOFHc1.mjs → RadioList-B23gsiEF.mjs} +5 -5
- package/dist/RadioList-B23gsiEF.mjs.map +1 -0
- package/dist/RadioList-BwzgNcMO.mjs.map +1 -0
- package/dist/RadioList-KvAacjmD.mjs.map +1 -0
- package/dist/RadioPage-CM_4A1AQ.mjs.map +1 -0
- package/dist/RadioPage-DkBL81mI.mjs.map +1 -0
- package/dist/{RadioPage-DVflzCV-.mjs → RadioPage-Jg2kmtna.mjs} +11 -11
- package/dist/RadioPage-Jg2kmtna.mjs.map +1 -0
- package/dist/{RadioPlanning-CJ7Qqyhs.mjs → RadioPlanning-2aWTnbZb.mjs} +3 -3
- package/dist/RadioPlanning-2aWTnbZb.mjs.map +1 -0
- package/dist/RadioPlanning-DHxcBVQo.mjs.map +1 -0
- package/dist/RadioProgressBar-BHAawrHe.mjs.map +1 -0
- package/dist/RadioProgressBar-CPjLAoPB.mjs.map +1 -0
- package/dist/{RadioProgressBar-BmJbzzQA.mjs → RadioProgressBar-yIz1oI5d.mjs} +2 -2
- package/dist/RadioProgressBar-yIz1oI5d.mjs.map +1 -0
- package/dist/RecaptchaModal-DKugsU7h.mjs.map +1 -0
- package/dist/{RecaptchaModal-DX9rAHUg.mjs → RecaptchaModal-dfMCfebx.mjs} +2 -2
- package/dist/RecaptchaModal-dfMCfebx.mjs.map +1 -0
- package/dist/ReportAbuseModal-Bxr7NTvH.mjs.map +1 -0
- package/dist/{ReportAbuseModal-CYCRaFAY.mjs → ReportAbuseModal-DZKRbYXJ.mjs} +4 -4
- package/dist/ReportAbuseModal-DZKRbYXJ.mjs.map +1 -0
- package/dist/RightsIndicator-BgW0q3af.mjs.map +1 -0
- package/dist/RightsIndicator-BtzqiPWc.mjs.map +1 -0
- package/dist/{RightsIndicator-qIU4_wiF.mjs → RightsIndicator-D5I3DOfO.mjs} +2 -2
- package/dist/RightsIndicator-D5I3DOfO.mjs.map +1 -0
- package/dist/RightsIndicator-NOZ05rEh.mjs.map +1 -0
- package/dist/RightsWrapper-Cv41FXNO.mjs.map +1 -0
- package/dist/{RightsWrapper-Cs6prZ3E.mjs → RightsWrapper-HasUbnny.mjs} +3 -3
- package/dist/RightsWrapper-HasUbnny.mjs.map +1 -0
- package/dist/{RubriqueFilter-OA_DJKL1.mjs → RubriqueFilter-3SPVH4nT.mjs} +3 -3
- package/dist/RubriqueFilter-3SPVH4nT.mjs.map +1 -0
- package/dist/RubriqueFilter-B_F2fyA0.mjs.map +1 -0
- package/dist/RubriqueList-CalsqgcR.mjs.map +1 -0
- package/dist/{RubriqueList-B94NM5yi.mjs → RubriqueList-TnVM2-Ry.mjs} +3 -3
- package/dist/RubriqueList-TnVM2-Ry.mjs.map +1 -0
- package/dist/RubriquePage-BhneK7GY.mjs.map +1 -0
- package/dist/RubriquePage-CPV9lztT.mjs.map +1 -0
- package/dist/{RubriquePage-DyusiBmp.mjs → RubriquePage-D223TaA2.mjs} +5 -5
- package/dist/RubriquePage-D223TaA2.mjs.map +1 -0
- package/dist/RubriquePage-DriBVVmv.mjs.map +1 -0
- package/dist/RubriquePage-x_tOmQCH.mjs.map +1 -0
- package/dist/SearchPage-B-KDO-5r.mjs.map +1 -0
- package/dist/{SearchPage-BGOBGS4j.mjs → SearchPage-BH1gYkHn.mjs} +3 -3
- package/dist/SearchPage-BH1gYkHn.mjs.map +1 -0
- package/dist/SearchPage-CXOoJF_2.mjs.map +1 -0
- package/dist/SearchPage-DyX_tEm5.mjs.map +1 -0
- package/dist/SearchPage-IvX74fSJ.mjs.map +1 -0
- package/dist/{ShareAnonymous-Chfdzzra.mjs → ShareAnonymous-4UxjKrIe.mjs} +6 -6
- package/dist/ShareAnonymous-4UxjKrIe.mjs.map +1 -0
- package/dist/ShareAnonymous-C4xPMrgf.mjs.map +1 -0
- package/dist/{ShareModalPlayer-CLY_JFFD.mjs → ShareModalPlayer-B0wPlpdU.mjs} +2 -2
- package/dist/ShareModalPlayer-B0wPlpdU.mjs.map +1 -0
- package/dist/ShareModalPlayer-CEvDV-I_.mjs.map +1 -0
- package/dist/ShareNewsletter-Bno5t4ay.mjs.map +1 -0
- package/dist/{ShareNewsletter-B4dn4-jA.mjs → ShareNewsletter-Cf9w-I6c.mjs} +2 -2
- package/dist/ShareNewsletter-Cf9w-I6c.mjs.map +1 -0
- package/dist/SharePlayer-BLqYnywl.mjs.map +1 -0
- package/dist/{SharePlayer-wHDYsWYd.mjs → SharePlayer-Oy1pWckd.mjs} +4 -4
- package/dist/SharePlayer-Oy1pWckd.mjs.map +1 -0
- package/dist/{SharePlayerRadio-D3LXD_gK.mjs → SharePlayerRadio-CI6glNuI.mjs} +3 -3
- package/dist/SharePlayerRadio-CI6glNuI.mjs.map +1 -0
- package/dist/SharePlayerRadio-c_HFTupz.mjs.map +1 -0
- package/dist/SharePlayerTypes-Dkmmw2We.mjs.map +1 -0
- package/dist/{SharePlayerTypes-eYSeVl-W.mjs → SharePlayerTypes-cUgCFZ65.mjs} +2 -2
- package/dist/SharePlayerTypes-cUgCFZ65.mjs.map +1 -0
- package/dist/{ShareSocialsButtons-iHtSoQ3K.mjs → ShareSocialsButtons-BYsXc2Jr.mjs} +2 -2
- package/dist/ShareSocialsButtons-BYsXc2Jr.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DZLZc1c6.mjs.map +1 -0
- package/dist/SimpleLayout-BCsUQENG.mjs.map +1 -0
- package/dist/SimpleLayout-BGKNHHjx.mjs.map +1 -0
- package/dist/SimpleLayout-BHIdltFB.mjs.map +1 -0
- package/dist/SimpleLayout-BKkwQmN6.mjs.map +1 -0
- package/dist/SimpleLayout-BORx9hRX.mjs.map +1 -0
- package/dist/{SimpleLayout-Bk74CAAr.mjs → SimpleLayout-BTJyAJO6.mjs} +3 -3
- package/dist/SimpleLayout-BTJyAJO6.mjs.map +1 -0
- package/dist/SimpleLayout-BvOAauzs.mjs.map +1 -0
- package/dist/SimpleLayout-C3xekYgM.mjs.map +1 -0
- package/dist/SimpleLayout-C4xNk0R4.mjs.map +1 -0
- package/dist/SimpleLayout-CDcsE-Be.mjs.map +1 -0
- package/dist/SimpleLayout-D3M_c1Eu.mjs.map +1 -0
- package/dist/SimpleLayout-DJgC3LcZ.mjs.map +1 -0
- package/dist/SimpleLayout-DkvEZxow.mjs.map +1 -0
- package/dist/SimpleLayout-gtbBGlVV.mjs.map +1 -0
- package/dist/SmartLinkPage-BF8hfaWZ.mjs.map +1 -0
- package/dist/{SmartLinkPage-DbuQT8GM.mjs → SmartLinkPage-DQljzYa-.mjs} +5 -5
- package/dist/SmartLinkPage-DQljzYa-.mjs.map +1 -0
- package/dist/SmartLinkPage-DmlqwhYP.mjs.map +1 -0
- package/dist/SubscribeButtons-DO4MRuDr.mjs.map +1 -0
- package/dist/{SubscribeButtons-rnonTVzT.mjs → SubscribeButtons-lAAMYQCm.mjs} +3 -3
- package/dist/SubscribeButtons-lAAMYQCm.mjs.map +1 -0
- package/dist/{SwiperList-C1v0T1wx.mjs → SwiperList-C51H-enh.mjs} +2 -2
- package/dist/SwiperList-C51H-enh.mjs.map +1 -0
- package/dist/SwiperList-Dsq1MFX6.mjs.map +1 -0
- package/dist/TagList-B5C9zojs.mjs.map +1 -0
- package/dist/{TagList-VeuYS_zJ.mjs → TagList-D3Bn2fIn.mjs} +2 -2
- package/dist/TagList-D3Bn2fIn.mjs.map +1 -0
- package/dist/TagPage-B71pZpRY.mjs.map +1 -0
- package/dist/{TagPage-Bd81QJHn.mjs → TagPage-Brw9iL1F.mjs} +4 -4
- package/dist/TagPage-Brw9iL1F.mjs.map +1 -0
- package/dist/TagPage-CWRyUZkD.mjs.map +1 -0
- package/dist/TagPage-DFo25ZeP.mjs.map +1 -0
- package/dist/TagPage-sI917OpV.mjs.map +1 -0
- package/dist/TopBar-CaCA8kOs.mjs.map +1 -0
- package/dist/{TopBar-CZVp2T7C.mjs → TopBar-DIdhyJi_.mjs} +7 -7
- package/dist/TopBar-DIdhyJi_.mjs.map +1 -0
- package/dist/{UserButtonContent-DmNyGmWr.mjs → UserButtonContent-D13cVA34.mjs} +7 -7
- package/dist/UserButtonContent-D13cVA34.mjs.map +1 -0
- package/dist/UserButtonContent-DMKyXEmF.mjs.map +1 -0
- package/dist/{VideoModuleBox-yJZpgCw6.mjs → VideoModuleBox-CFQmvPrA.mjs} +2 -2
- package/dist/VideoModuleBox-CFQmvPrA.mjs.map +1 -0
- package/dist/VideoModuleBox-DsBLAMrh.mjs.map +1 -0
- package/dist/VideoPage-CfJeWV-R.mjs.map +1 -0
- package/dist/VideoPage-CnIZYz-k.mjs.map +1 -0
- package/dist/VideoPage-D6UNKt2D.mjs.map +1 -0
- package/dist/{VideoPage-y6G4Y2Zi.mjs → VideoPage-DU9dJviO.mjs} +10 -10
- package/dist/VideoPage-DU9dJviO.mjs.map +1 -0
- package/dist/VideoPage-OIb28KAS.mjs.map +1 -0
- package/dist/classicApi-C70YSK8J.mjs.map +1 -0
- package/dist/classicApi-DuzZv1Wk.mjs.map +1 -1
- package/dist/{classicApi-CkDHWZG1.mjs → classicApi-xjOqAovv.mjs} +11 -8
- package/dist/classicApi-xjOqAovv.mjs.map +1 -0
- package/dist/downloadHelper-C4q0i5xN.mjs.map +1 -0
- package/dist/{downloadHelper-DLdkblYN.mjs → downloadHelper-DY3fF3dA.mjs} +2 -2
- package/dist/downloadHelper-DY3fF3dA.mjs.map +1 -0
- package/dist/index.mjs +102 -97
- package/dist/index.mjs.map +1 -1
- package/dist/tests.mjs +2 -2
- package/dist/{useAdvancedParamInit-B7G2Mvjv.mjs → useAdvancedParamInit-CCprE3H2.mjs} +6 -6
- package/dist/useAdvancedParamInit-CCprE3H2.mjs.map +1 -0
- package/dist/useAdvancedParamInit-CT8CdPFW.mjs.map +1 -0
- package/dist/useDayjs-BPXVSBns.mjs.map +1 -0
- package/dist/{useDayjs-C3cnTiDW.mjs → useDayjs-DPVjvJPN.mjs} +2 -2
- package/dist/useDayjs-DPVjvJPN.mjs.map +1 -0
- package/dist/useErrorHandler-BxQT9ZGf.mjs.map +1 -0
- package/dist/{useErrorHandler-DtLjD9t_.mjs → useErrorHandler-D3XVxUh6.mjs} +2 -2
- package/dist/useErrorHandler-D3XVxUh6.mjs.map +1 -0
- package/dist/{useImageProxy-Bj0cOCct.mjs → useImageProxy-BdQJmj4a.mjs} +2 -2
- package/dist/useImageProxy-BdQJmj4a.mjs.map +1 -0
- package/dist/useImageProxy-DROuweGY.mjs.map +1 -0
- package/dist/{useOrgaComputed-BLSpEDfb.mjs → useOrgaComputed-B2Bq0VBT.mjs} +2 -2
- package/dist/useOrgaComputed-B2Bq0VBT.mjs.map +1 -0
- package/dist/useOrgaComputed-CGomgs0r.mjs.map +1 -0
- package/dist/{usePlayerLogicProgress-75G9QMg_.mjs → usePlayerLogicProgress-DcHbYGOR.mjs} +3 -3
- package/dist/usePlayerLogicProgress-DcHbYGOR.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-Dchl5sUO.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-lqnQ5qNd.mjs.map +1 -0
- package/dist/{usePodcastView-BftS642h.mjs → usePodcastView-BDZ6CGQj.mjs} +4 -4
- package/dist/usePodcastView-BDZ6CGQj.mjs.map +1 -0
- package/dist/usePodcastView-CI5le-WW.mjs.map +1 -0
- package/dist/usePresentationItem-Cw9fBYUi.mjs.map +1 -0
- package/dist/{usePresentationItem-CNXIk-Sf.mjs → usePresentationItem-UwAuhVqo.mjs} +4 -4
- package/dist/usePresentationItem-UwAuhVqo.mjs.map +1 -0
- package/dist/useRights-D8CLzCMH.mjs.map +1 -0
- package/dist/{useRights-Co0TgD8y.mjs → useRights-DSZ-5pFg.mjs} +2 -2
- package/dist/useRights-DSZ-5pFg.mjs.map +1 -0
- package/dist/{useRubriquesFilterComputed-VsdTUNL6.mjs → useRubriquesFilterComputed-BkDeXTf-.mjs} +2 -2
- package/dist/useRubriquesFilterComputed-BkDeXTf-.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-Bkre15fg.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BmE8v1fS.mjs.map +1 -0
- package/dist/{useRubriquesFilterParam--x07HEw1.mjs → useRubriquesFilterParam-Delgf48y.mjs} +2 -2
- package/dist/useRubriquesFilterParam-Delgf48y.mjs.map +1 -0
- package/dist/{useSharePlatforms-CSSRTkTG.mjs → useSharePlatforms-07n3JYu2.mjs} +3 -3
- package/dist/useSharePlatforms-07n3JYu2.mjs.map +1 -0
- package/dist/useSharePlatforms-B_3OwBFv.mjs.map +1 -0
- package/dist/{useSimplePageParam-ClaGQ9yj.mjs → useSimplePageParam-CsY_ie3c.mjs} +2 -2
- package/dist/useSimplePageParam-CsY_ie3c.mjs.map +1 -0
- package/dist/useSimplePageParam-ki2VyM-X.mjs.map +1 -0
- package/dist/{useTranslation-BNshNMQT.mjs → useTranslation-ChEasnl9.mjs} +25 -8
- package/dist/useTranslation-ChEasnl9.mjs.map +1 -0
- package/dist/useTranslation-D0R0BSx9.mjs.map +1 -0
- package/dist/usefetchRadioData-BPmkztGC.mjs.map +1 -0
- package/dist/{usefetchRadioData-C2cwiaCP.mjs → usefetchRadioData-CkrAfN1c.mjs} +2 -2
- package/dist/usefetchRadioData-CkrAfN1c.mjs.map +1 -0
- package/package.json +1 -1
- package/src/components/composable/player/usePlayerLive.ts +8 -7
- package/src/stores/AuthStore.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartLinkPage-DmlqwhYP.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-DO4MRuDr.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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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
2
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
3
|
-
import { O as useApiStore } from "./classicApi-
|
|
3
|
+
import { O as useApiStore } from "./classicApi-xjOqAovv.mjs";
|
|
4
4
|
import { t as useResizePhone } from "./useResizePhone-CpfFUmfV.mjs";
|
|
5
|
-
import { r as useSharePlatforms } from "./useSharePlatforms-
|
|
5
|
+
import { r as useSharePlatforms } from "./useSharePlatforms-07n3JYu2.mjs";
|
|
6
6
|
import { t as ClassicPopover_default } from "./ClassicPopover-BIyLKorz.mjs";
|
|
7
7
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, onMounted, openBlock, renderList, resolveDynamicComponent, toDisplayString, vShow, withCtx, withDirectives } from "vue";
|
|
8
8
|
import PlusIcon from "vue-material-design-icons/Plus.vue";
|
|
@@ -200,4 +200,4 @@ var SubscribeButtons_default = /*#__PURE__*/ _plugin_vue_export_helper_default(S
|
|
|
200
200
|
//#endregion
|
|
201
201
|
export { SubscribeButtons_exports as n, SubscribeButtons_default as t };
|
|
202
202
|
|
|
203
|
-
//# sourceMappingURL=SubscribeButtons-
|
|
203
|
+
//# sourceMappingURL=SubscribeButtons-lAAMYQCm.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribeButtons-lAAMYQCm.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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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
2
|
import { t as domHelper_default } from "./domHelper-DTMIrMbs.mjs";
|
|
3
3
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
4
|
-
import { A as state } from "./classicApi-
|
|
4
|
+
import { A as state } from "./classicApi-xjOqAovv.mjs";
|
|
5
5
|
import { t as useResizePhone } from "./useResizePhone-CpfFUmfV.mjs";
|
|
6
6
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, getCurrentInstance, nextTick, onMounted, openBlock, ref, renderList, renderSlot, useTemplateRef, watch, withCtx } from "vue";
|
|
7
7
|
import { Swiper, SwiperSlide } from "swiper/vue";
|
|
@@ -204,4 +204,4 @@ var SwiperList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(SwiperL
|
|
|
204
204
|
//#endregion
|
|
205
205
|
export { SwiperList_exports as n, SwiperList_default as t };
|
|
206
206
|
|
|
207
|
-
//# sourceMappingURL=SwiperList-
|
|
207
|
+
//# sourceMappingURL=SwiperList-C51H-enh.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwiperList-C51H-enh.mjs","names":[],"sources":["../src/components/display/list/SwiperList.vue","../src/components/display/list/SwiperList.vue"],"sourcesContent":["<template>\n <div ref=\"root\" class=\"position-relative w-100\">\n <template v-if=\"!isPhone\">\n <swiper\n :key=\"manualReload\"\n :slides-per-view=\"numberItem\"\n :space-between=\"gapPx\"\n :loop=\"loop\"\n :slides-offset-before=\"offsetSwiper\"\n :slides-offset-after=\"offsetSwiper\"\n :allow-slide-next=\"loop\"\n :allow-slide-prev=\"loop\"\n :navigation=\"navigationOptions\"\n :modules=\"modules\"\n @slides-updated=\"slidesUpdated\"\n @slide-change=\"slideChange\"\n >\n <swiper-slide v-for=\"(obj, index) in listObject\" :key=\"index\">\n <slot v-if=\"composableInit\" name=\"octopusSlide\" :option=\"obj\" :index=\"index\" />\n </swiper-slide>\n </swiper>\n <div :id=\"prevElId\" class=\"swiper-button-prev\" />\n <div :id=\"nextElId\" class=\"swiper-button-next\" />\n </template>\n <div v-else-if=\"composableInit\" class=\"element-list-inline\">\n <div v-for=\"(obj, index) in listObject\" :key=\"obj\" class=\"element-list-item\">\n <slot name=\"octopusSlide\" :option=\"obj\" :index=\"index\" />\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport domHelper from \"../../../helper/domHelper\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Swiper, SwiperSlide } from \"swiper/vue\";\nimport { Navigation } from \"swiper/modules\";\nimport \"swiper/css\";\nimport \"swiper/css/navigation\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { computed, getCurrentInstance, nextTick, onMounted, ref, useTemplateRef, watch } from \"vue\";\n\n//Props \nconst props = defineProps({\n listObject: { default: () => [], type: Array as () => Array<unknown> },\n /** Size, in **rem**, of the emission items */\n sizeItemOverload: { default: undefined, type: Number },\n})\n \n//Data\nconst gapPx = 10;\nconst manualReload = ref(0);\nconst numberItem = ref(5);\nconst offsetSwiper = ref(0);\nconst widthSwiperUsable = ref(0);\nconst itemSizeWithoutRecalculed = ref(0);\nconst composableInit = ref(false);\nconst rootRef = useTemplateRef('root');\n\n\n//Composables\nconst { isPhone, windowWidth } = useResizePhone();\n\n\n//Computed\nconst sizeItem = computed(() => {\n if (props.sizeItemOverload) {\n return props.sizeItemOverload;\n }\n if (windowWidth.value <= 450) {\n return 12.5;\n }\n return state.generalParameters.podcastItem\n ? state.generalParameters.podcastItem\n : 13.5;\n});\nconst itemRecalculizedSize = computed(() => {\n const totalGap = gapPx * Math.max(numberItem.value - 1, 0);\n return (widthSwiperUsable.value - totalGap) / numberItem.value;\n});\n\n/** Indicates that the swiper should loop */\nconst loop = computed((): boolean => {\n return (props.listObject.length > numberItem.value);\n});\n\nconst modules = computed(() => {\n if (loop.value === true) {\n return [Navigation];\n } else {\n return [];\n }\n});\n\nconst uid = computed((): number => {\n const instance = getCurrentInstance();\n return instance.uid;\n});\nconst prevElId = computed((): string => 'swiper-button-prev-' + uid.value);\nconst nextElId = computed((): string => 'swiper-button-next-' + uid.value);\nconst navigationOptions = computed(() => ({\n prevEl: '#' + prevElId.value,\n nextEl: '#' + nextElId.value\n}));\n\n//Watch\nwatch(windowWidth, () => onWindowResize());\nwatch(()=>props.listObject, () => {\n manualReload.value += 1;\n}, {deep:true});\n\n\nonMounted(()=>{\n nextTick(() => {\n onWindowResize();\n composableInit.value = true;\n });\n})\n\n\n//Methods\nfunction onWindowResize(){\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n widthSwiperUsable.value =el.offsetWidth - offsetSwiper.value * 2;\n const itemSizePx = domHelper.convertRemToPixels(sizeItem.value + 0.5);\n numberItem.value = Math.max(\n 1,\n Math.floor((widthSwiperUsable.value + gapPx) / (itemSizePx + gapPx)),\n );\n itemSizeWithoutRecalculed.value =el.offsetWidth / numberItem.value;\n}\nfunction slidesUpdated() {\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n const slides = el.getElementsByClassName(\"swiper-slide\") as Array<HTMLElement>;\n for (const slide of slides) {\n slide.style.width = itemRecalculizedSize.value + \"px\";\n }\n}\nfunction slideChange() {\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n const wrapper = el.getElementsByClassName(\"swiper-wrapper\")[0] as HTMLElement;\n if (wrapper.style.transform.includes(\"translate3d(40px\")) {\n return;\n }\n const matches = /^^translate3d\\((-*\\d+\\.*\\d*)px/.exec(\n wrapper.style.transform,\n );\n if (!matches || matches.length <= 1) {\n return;\n }\n const transformPixel = parseFloat(matches[1]) - offsetSwiper.value;\n const nbTransformItems = Math.round(\n transformPixel / itemSizeWithoutRecalculed.value,\n );\n wrapper.style.transform =\n \"translate3d(\" +\n (nbTransformItems * (itemRecalculizedSize.value + gapPx) + offsetSwiper.value) +\n \"px, 0px, 0px)\";\n}\n</script>\n\n<style lang=\"scss\">\n:root {\n --swiper-navigation-sides-offset: -50px;\n}\n\n.swiper {\n width: 100%;\n height: 100%;\n}\n\n.swiper-button-next,\n.swiper-button-prev {\n color: var(--octopus-primary) !important;\n //height: 100%;\n inset-block:0;\n margin: 0;\n width: 40px;\n z-index: 5;\n //background: var(--octopus-background);\n}\n\n.swiper-button-lock {\n display: flex;\n}\n\n.swiper-slide {\n display: flex !important;\n align-items: center;\n justify-content: center;\n}\n</style>\n","<template>\n <div ref=\"root\" class=\"position-relative w-100\">\n <template v-if=\"!isPhone\">\n <swiper\n :key=\"manualReload\"\n :slides-per-view=\"numberItem\"\n :space-between=\"gapPx\"\n :loop=\"loop\"\n :slides-offset-before=\"offsetSwiper\"\n :slides-offset-after=\"offsetSwiper\"\n :allow-slide-next=\"loop\"\n :allow-slide-prev=\"loop\"\n :navigation=\"navigationOptions\"\n :modules=\"modules\"\n @slides-updated=\"slidesUpdated\"\n @slide-change=\"slideChange\"\n >\n <swiper-slide v-for=\"(obj, index) in listObject\" :key=\"index\">\n <slot v-if=\"composableInit\" name=\"octopusSlide\" :option=\"obj\" :index=\"index\" />\n </swiper-slide>\n </swiper>\n <div :id=\"prevElId\" class=\"swiper-button-prev\" />\n <div :id=\"nextElId\" class=\"swiper-button-next\" />\n </template>\n <div v-else-if=\"composableInit\" class=\"element-list-inline\">\n <div v-for=\"(obj, index) in listObject\" :key=\"obj\" class=\"element-list-item\">\n <slot name=\"octopusSlide\" :option=\"obj\" :index=\"index\" />\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport domHelper from \"../../../helper/domHelper\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Swiper, SwiperSlide } from \"swiper/vue\";\nimport { Navigation } from \"swiper/modules\";\nimport \"swiper/css\";\nimport \"swiper/css/navigation\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { computed, getCurrentInstance, nextTick, onMounted, ref, useTemplateRef, watch } from \"vue\";\n\n//Props \nconst props = defineProps({\n listObject: { default: () => [], type: Array as () => Array<unknown> },\n /** Size, in **rem**, of the emission items */\n sizeItemOverload: { default: undefined, type: Number },\n})\n \n//Data\nconst gapPx = 10;\nconst manualReload = ref(0);\nconst numberItem = ref(5);\nconst offsetSwiper = ref(0);\nconst widthSwiperUsable = ref(0);\nconst itemSizeWithoutRecalculed = ref(0);\nconst composableInit = ref(false);\nconst rootRef = useTemplateRef('root');\n\n\n//Composables\nconst { isPhone, windowWidth } = useResizePhone();\n\n\n//Computed\nconst sizeItem = computed(() => {\n if (props.sizeItemOverload) {\n return props.sizeItemOverload;\n }\n if (windowWidth.value <= 450) {\n return 12.5;\n }\n return state.generalParameters.podcastItem\n ? state.generalParameters.podcastItem\n : 13.5;\n});\nconst itemRecalculizedSize = computed(() => {\n const totalGap = gapPx * Math.max(numberItem.value - 1, 0);\n return (widthSwiperUsable.value - totalGap) / numberItem.value;\n});\n\n/** Indicates that the swiper should loop */\nconst loop = computed((): boolean => {\n return (props.listObject.length > numberItem.value);\n});\n\nconst modules = computed(() => {\n if (loop.value === true) {\n return [Navigation];\n } else {\n return [];\n }\n});\n\nconst uid = computed((): number => {\n const instance = getCurrentInstance();\n return instance.uid;\n});\nconst prevElId = computed((): string => 'swiper-button-prev-' + uid.value);\nconst nextElId = computed((): string => 'swiper-button-next-' + uid.value);\nconst navigationOptions = computed(() => ({\n prevEl: '#' + prevElId.value,\n nextEl: '#' + nextElId.value\n}));\n\n//Watch\nwatch(windowWidth, () => onWindowResize());\nwatch(()=>props.listObject, () => {\n manualReload.value += 1;\n}, {deep:true});\n\n\nonMounted(()=>{\n nextTick(() => {\n onWindowResize();\n composableInit.value = true;\n });\n})\n\n\n//Methods\nfunction onWindowResize(){\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n widthSwiperUsable.value =el.offsetWidth - offsetSwiper.value * 2;\n const itemSizePx = domHelper.convertRemToPixels(sizeItem.value + 0.5);\n numberItem.value = Math.max(\n 1,\n Math.floor((widthSwiperUsable.value + gapPx) / (itemSizePx + gapPx)),\n );\n itemSizeWithoutRecalculed.value =el.offsetWidth / numberItem.value;\n}\nfunction slidesUpdated() {\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n const slides = el.getElementsByClassName(\"swiper-slide\") as Array<HTMLElement>;\n for (const slide of slides) {\n slide.style.width = itemRecalculizedSize.value + \"px\";\n }\n}\nfunction slideChange() {\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n const wrapper = el.getElementsByClassName(\"swiper-wrapper\")[0] as HTMLElement;\n if (wrapper.style.transform.includes(\"translate3d(40px\")) {\n return;\n }\n const matches = /^^translate3d\\((-*\\d+\\.*\\d*)px/.exec(\n wrapper.style.transform,\n );\n if (!matches || matches.length <= 1) {\n return;\n }\n const transformPixel = parseFloat(matches[1]) - offsetSwiper.value;\n const nbTransformItems = Math.round(\n transformPixel / itemSizeWithoutRecalculed.value,\n );\n wrapper.style.transform =\n \"translate3d(\" +\n (nbTransformItems * (itemRecalculizedSize.value + gapPx) + offsetSwiper.value) +\n \"px, 0px, 0px)\";\n}\n</script>\n\n<style lang=\"scss\">\n:root {\n --swiper-navigation-sides-offset: -50px;\n}\n\n.swiper {\n width: 100%;\n height: 100%;\n}\n\n.swiper-button-next,\n.swiper-button-prev {\n color: var(--octopus-primary) !important;\n //height: 100%;\n inset-block:0;\n margin: 0;\n width: 40px;\n z-index: 5;\n //background: var(--octopus-background);\n}\n\n.swiper-button-lock {\n display: flex;\n}\n\n.swiper-slide {\n display: flex !important;\n align-items: center;\n justify-content: center;\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwiperList-Dsq1MFX6.mjs","names":[],"sources":["../src/components/display/list/SwiperList.vue","../src/components/display/list/SwiperList.vue"],"sourcesContent":["<template>\n <div ref=\"root\" class=\"position-relative w-100\">\n <template v-if=\"!isPhone\">\n <swiper\n :key=\"manualReload\"\n :slides-per-view=\"numberItem\"\n :space-between=\"gapPx\"\n :loop=\"loop\"\n :slides-offset-before=\"offsetSwiper\"\n :slides-offset-after=\"offsetSwiper\"\n :allow-slide-next=\"loop\"\n :allow-slide-prev=\"loop\"\n :navigation=\"navigationOptions\"\n :modules=\"modules\"\n @slides-updated=\"slidesUpdated\"\n @slide-change=\"slideChange\"\n >\n <swiper-slide v-for=\"(obj, index) in listObject\" :key=\"index\">\n <slot v-if=\"composableInit\" name=\"octopusSlide\" :option=\"obj\" :index=\"index\" />\n </swiper-slide>\n </swiper>\n <div :id=\"prevElId\" class=\"swiper-button-prev\" />\n <div :id=\"nextElId\" class=\"swiper-button-next\" />\n </template>\n <div v-else-if=\"composableInit\" class=\"element-list-inline\">\n <div v-for=\"(obj, index) in listObject\" :key=\"obj\" class=\"element-list-item\">\n <slot name=\"octopusSlide\" :option=\"obj\" :index=\"index\" />\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport domHelper from \"../../../helper/domHelper\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Swiper, SwiperSlide } from \"swiper/vue\";\nimport { Navigation } from \"swiper/modules\";\nimport \"swiper/css\";\nimport \"swiper/css/navigation\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { computed, getCurrentInstance, nextTick, onMounted, ref, useTemplateRef, watch } from \"vue\";\n\n//Props \nconst props = defineProps({\n listObject: { default: () => [], type: Array as () => Array<unknown> },\n /** Size, in **rem**, of the emission items */\n sizeItemOverload: { default: undefined, type: Number },\n})\n \n//Data\nconst gapPx = 10;\nconst manualReload = ref(0);\nconst numberItem = ref(5);\nconst offsetSwiper = ref(0);\nconst widthSwiperUsable = ref(0);\nconst itemSizeWithoutRecalculed = ref(0);\nconst composableInit = ref(false);\nconst rootRef = useTemplateRef('root');\n\n\n//Composables\nconst { isPhone, windowWidth } = useResizePhone();\n\n\n//Computed\nconst sizeItem = computed(() => {\n if (props.sizeItemOverload) {\n return props.sizeItemOverload;\n }\n if (windowWidth.value <= 450) {\n return 12.5;\n }\n return state.generalParameters.podcastItem\n ? state.generalParameters.podcastItem\n : 13.5;\n});\nconst itemRecalculizedSize = computed(() => {\n const totalGap = gapPx * Math.max(numberItem.value - 1, 0);\n return (widthSwiperUsable.value - totalGap) / numberItem.value;\n});\n\n/** Indicates that the swiper should loop */\nconst loop = computed((): boolean => {\n return (props.listObject.length > numberItem.value);\n});\n\nconst modules = computed(() => {\n if (loop.value === true) {\n return [Navigation];\n } else {\n return [];\n }\n});\n\nconst uid = computed((): number => {\n const instance = getCurrentInstance();\n return instance.uid;\n});\nconst prevElId = computed((): string => 'swiper-button-prev-' + uid.value);\nconst nextElId = computed((): string => 'swiper-button-next-' + uid.value);\nconst navigationOptions = computed(() => ({\n prevEl: '#' + prevElId.value,\n nextEl: '#' + nextElId.value\n}));\n\n//Watch\nwatch(windowWidth, () => onWindowResize());\nwatch(()=>props.listObject, () => {\n manualReload.value += 1;\n}, {deep:true});\n\n\nonMounted(()=>{\n nextTick(() => {\n onWindowResize();\n composableInit.value = true;\n });\n})\n\n\n//Methods\nfunction onWindowResize(){\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n widthSwiperUsable.value =el.offsetWidth - offsetSwiper.value * 2;\n const itemSizePx = domHelper.convertRemToPixels(sizeItem.value + 0.5);\n numberItem.value = Math.max(\n 1,\n Math.floor((widthSwiperUsable.value + gapPx) / (itemSizePx + gapPx)),\n );\n itemSizeWithoutRecalculed.value =el.offsetWidth / numberItem.value;\n}\nfunction slidesUpdated() {\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n const slides = el.getElementsByClassName(\"swiper-slide\") as Array<HTMLElement>;\n for (const slide of slides) {\n slide.style.width = itemRecalculizedSize.value + \"px\";\n }\n}\nfunction slideChange() {\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n const wrapper = el.getElementsByClassName(\"swiper-wrapper\")[0] as HTMLElement;\n if (wrapper.style.transform.includes(\"translate3d(40px\")) {\n return;\n }\n const matches = /^^translate3d\\((-*\\d+\\.*\\d*)px/.exec(\n wrapper.style.transform,\n );\n if (!matches || matches.length <= 1) {\n return;\n }\n const transformPixel = parseFloat(matches[1]) - offsetSwiper.value;\n const nbTransformItems = Math.round(\n transformPixel / itemSizeWithoutRecalculed.value,\n );\n wrapper.style.transform =\n \"translate3d(\" +\n (nbTransformItems * (itemRecalculizedSize.value + gapPx) + offsetSwiper.value) +\n \"px, 0px, 0px)\";\n}\n</script>\n\n<style lang=\"scss\">\n:root {\n --swiper-navigation-sides-offset: -50px;\n}\n\n.swiper {\n width: 100%;\n height: 100%;\n}\n\n.swiper-button-next,\n.swiper-button-prev {\n color: var(--octopus-primary) !important;\n //height: 100%;\n inset-block:0;\n margin: 0;\n width: 40px;\n z-index: 5;\n //background: var(--octopus-background);\n}\n\n.swiper-button-lock {\n display: flex;\n}\n\n.swiper-slide {\n display: flex !important;\n align-items: center;\n justify-content: center;\n}\n</style>\n","<template>\n <div ref=\"root\" class=\"position-relative w-100\">\n <template v-if=\"!isPhone\">\n <swiper\n :key=\"manualReload\"\n :slides-per-view=\"numberItem\"\n :space-between=\"gapPx\"\n :loop=\"loop\"\n :slides-offset-before=\"offsetSwiper\"\n :slides-offset-after=\"offsetSwiper\"\n :allow-slide-next=\"loop\"\n :allow-slide-prev=\"loop\"\n :navigation=\"navigationOptions\"\n :modules=\"modules\"\n @slides-updated=\"slidesUpdated\"\n @slide-change=\"slideChange\"\n >\n <swiper-slide v-for=\"(obj, index) in listObject\" :key=\"index\">\n <slot v-if=\"composableInit\" name=\"octopusSlide\" :option=\"obj\" :index=\"index\" />\n </swiper-slide>\n </swiper>\n <div :id=\"prevElId\" class=\"swiper-button-prev\" />\n <div :id=\"nextElId\" class=\"swiper-button-next\" />\n </template>\n <div v-else-if=\"composableInit\" class=\"element-list-inline\">\n <div v-for=\"(obj, index) in listObject\" :key=\"obj\" class=\"element-list-item\">\n <slot name=\"octopusSlide\" :option=\"obj\" :index=\"index\" />\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport domHelper from \"../../../helper/domHelper\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Swiper, SwiperSlide } from \"swiper/vue\";\nimport { Navigation } from \"swiper/modules\";\nimport \"swiper/css\";\nimport \"swiper/css/navigation\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { computed, getCurrentInstance, nextTick, onMounted, ref, useTemplateRef, watch } from \"vue\";\n\n//Props \nconst props = defineProps({\n listObject: { default: () => [], type: Array as () => Array<unknown> },\n /** Size, in **rem**, of the emission items */\n sizeItemOverload: { default: undefined, type: Number },\n})\n \n//Data\nconst gapPx = 10;\nconst manualReload = ref(0);\nconst numberItem = ref(5);\nconst offsetSwiper = ref(0);\nconst widthSwiperUsable = ref(0);\nconst itemSizeWithoutRecalculed = ref(0);\nconst composableInit = ref(false);\nconst rootRef = useTemplateRef('root');\n\n\n//Composables\nconst { isPhone, windowWidth } = useResizePhone();\n\n\n//Computed\nconst sizeItem = computed(() => {\n if (props.sizeItemOverload) {\n return props.sizeItemOverload;\n }\n if (windowWidth.value <= 450) {\n return 12.5;\n }\n return state.generalParameters.podcastItem\n ? state.generalParameters.podcastItem\n : 13.5;\n});\nconst itemRecalculizedSize = computed(() => {\n const totalGap = gapPx * Math.max(numberItem.value - 1, 0);\n return (widthSwiperUsable.value - totalGap) / numberItem.value;\n});\n\n/** Indicates that the swiper should loop */\nconst loop = computed((): boolean => {\n return (props.listObject.length > numberItem.value);\n});\n\nconst modules = computed(() => {\n if (loop.value === true) {\n return [Navigation];\n } else {\n return [];\n }\n});\n\nconst uid = computed((): number => {\n const instance = getCurrentInstance();\n return instance.uid;\n});\nconst prevElId = computed((): string => 'swiper-button-prev-' + uid.value);\nconst nextElId = computed((): string => 'swiper-button-next-' + uid.value);\nconst navigationOptions = computed(() => ({\n prevEl: '#' + prevElId.value,\n nextEl: '#' + nextElId.value\n}));\n\n//Watch\nwatch(windowWidth, () => onWindowResize());\nwatch(()=>props.listObject, () => {\n manualReload.value += 1;\n}, {deep:true});\n\n\nonMounted(()=>{\n nextTick(() => {\n onWindowResize();\n composableInit.value = true;\n });\n})\n\n\n//Methods\nfunction onWindowResize(){\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n widthSwiperUsable.value =el.offsetWidth - offsetSwiper.value * 2;\n const itemSizePx = domHelper.convertRemToPixels(sizeItem.value + 0.5);\n numberItem.value = Math.max(\n 1,\n Math.floor((widthSwiperUsable.value + gapPx) / (itemSizePx + gapPx)),\n );\n itemSizeWithoutRecalculed.value =el.offsetWidth / numberItem.value;\n}\nfunction slidesUpdated() {\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n const slides = el.getElementsByClassName(\"swiper-slide\") as Array<HTMLElement>;\n for (const slide of slides) {\n slide.style.width = itemRecalculizedSize.value + \"px\";\n }\n}\nfunction slideChange() {\n const el = rootRef?.value as HTMLElement;\n if (!el) return;\n const wrapper = el.getElementsByClassName(\"swiper-wrapper\")[0] as HTMLElement;\n if (wrapper.style.transform.includes(\"translate3d(40px\")) {\n return;\n }\n const matches = /^^translate3d\\((-*\\d+\\.*\\d*)px/.exec(\n wrapper.style.transform,\n );\n if (!matches || matches.length <= 1) {\n return;\n }\n const transformPixel = parseFloat(matches[1]) - offsetSwiper.value;\n const nbTransformItems = Math.round(\n transformPixel / itemSizeWithoutRecalculed.value,\n );\n wrapper.style.transform =\n \"translate3d(\" +\n (nbTransformItems * (itemRecalculizedSize.value + gapPx) + offsetSwiper.value) +\n \"px, 0px, 0px)\";\n}\n</script>\n\n<style lang=\"scss\">\n:root {\n --swiper-navigation-sides-offset: -50px;\n}\n\n.swiper {\n width: 100%;\n height: 100%;\n}\n\n.swiper-button-next,\n.swiper-button-prev {\n color: var(--octopus-primary) !important;\n //height: 100%;\n inset-block:0;\n margin: 0;\n width: 40px;\n z-index: 5;\n //background: var(--octopus-background);\n}\n\n.swiper-button-lock {\n display: flex;\n}\n\n.swiper-slide {\n display: flex !important;\n align-items: center;\n justify-content: center;\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagList-B5C9zojs.mjs","names":[],"sources":["../src/components/display/podcasts/TagList.vue","../src/components/display/podcasts/TagList.vue"],"sourcesContent":["<template>\n <div\n v-if=\"undefined !== tagListFiltered && 0 !== tagListFiltered.length\"\n class=\"tag-list-component d-flex align-items-center flex-wrap mb-3 small-text\"\n >\n <div class=\"fw-bold me-3\">\n {{ t(\"Podcast tags\") + \" : \" }}\n </div>\n <router-link\n v-for=\"(tag, index) in tags\"\n :key=\"tag\"\n class=\"d-flex align-items-center border p-1 m-1 text-dark\"\n :to=\"{\n name: 'tag',\n params: { tag },\n query: organisationQuery\n }\"\n >\n <template v-if=\"!isOuestFranceTag(tag)\">{{ tag }}</template>\n <template v-else>\n <button\n :id=\"'tag-list-from-podcast-page' + index\"\n class=\"btn-transparent d-flex align-items-center\"\n >\n <img\n width=\"20\"\n height=\"20\"\n class=\"ouest-france-logo\"\n aria-hidden=\"true\"\n alt=\"\"\n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n {{ formateOfTag(tag) }}\n </button>\n <ClassicPopover\n :target=\"'tag-list-from-podcast-page' + index\"\n :content=\"tag.substring(4, tag.length)\"\n relative-class=\"page-element\"\n :is-fixed=\"true\"\n />\n </template>\n </router-link>\n\n <button\n v-if=\"limitTags && !showAllTags\"\n class=\"btn\"\n @click=\"showAllTags = true\"\n >\n {{ t('See more') }}\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, ref } from \"vue\";\nconst ClassicPopover = defineAsyncComponent(\n () => import(\"../../misc/ClassicPopover.vue\"),\n);\nimport {useTagOf} from \"../../composable/useTagOf\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n tagList: { default: () => [], type: Array as () => Array<string> },\n podcastAnnotations: {\n default: () => {},\n type: Object as () => {\n [key: string]: string | number | boolean | undefined;\n },\n },\n orgaId: {default: \"\", type: String },\n /** Max number of tags to display */\n max: { type: Number, default: undefined }\n})\n\n\n//Composables\nconst { t } = useI18n()\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst filterStore = useFilterStore();\n\nconst showAllTags = ref(false);\n\n//Computed\nconst limitTags = computed((): boolean => {\n return !!props.max && tagListFiltered.value.length > props.max;\n});\n\nconst tags = computed(() => {\n if (limitTags.value && !showAllTags.value) {\n return limitedTags.value;\n } else {\n return tagListFiltered.value;\n }\n});\n\nconst tagListFiltered = computed(() => {\n const tags = props.tagList.filter((tag: string) => {\n return !tag.match(/^\\[\\[.*\\]\\]$/);\n });\n\n // Each tag is only displayed once\n return tags.filter((tag, index) => tags.indexOf(tag) === index);\n});\n\nconst limitedTags = computed(() => {\n return tagListFiltered.value.slice(0, props.max);\n});\n\nconst organisationQuery = computed(() => {\n if(filterStore.filterOrgaId){\n return undefined;\n }\n return { o: props.orgaId };\n});\n/* const ouestFranceMainTag = computed(() => {\n if (props.podcastAnnotations?.[\"mainOfTag\"]) {\n for (const key in props.podcastAnnotations) {\n if (\n props.podcastAnnotations[key] ===\n props.podcastAnnotations[\"mainOfTag\"] &&\n key !== \"mainOfTag\"\n ) {\n return \"[of]\" + key;\n }\n }\n }\n return undefined;\n}); */\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .tag-list-component {\n .ouest-france-logo {\n width: 20px;\n height: 20px;\n margin-right: 5px;\n }\n\n .main-of-tag {\n box-shadow: var(--octopus-shadow) 0 5px 15px;\n font-size: 0.9rem;\n }\n }\n\n .btn {\n font-size: 12px;\n padding: 4px 8px;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"undefined !== tagListFiltered && 0 !== tagListFiltered.length\"\n class=\"tag-list-component d-flex align-items-center flex-wrap mb-3 small-text\"\n >\n <div class=\"fw-bold me-3\">\n {{ t(\"Podcast tags\") + \" : \" }}\n </div>\n <router-link\n v-for=\"(tag, index) in tags\"\n :key=\"tag\"\n class=\"d-flex align-items-center border p-1 m-1 text-dark\"\n :to=\"{\n name: 'tag',\n params: { tag },\n query: organisationQuery\n }\"\n >\n <template v-if=\"!isOuestFranceTag(tag)\">{{ tag }}</template>\n <template v-else>\n <button\n :id=\"'tag-list-from-podcast-page' + index\"\n class=\"btn-transparent d-flex align-items-center\"\n >\n <img\n width=\"20\"\n height=\"20\"\n class=\"ouest-france-logo\"\n aria-hidden=\"true\"\n alt=\"\"\n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n {{ formateOfTag(tag) }}\n </button>\n <ClassicPopover\n :target=\"'tag-list-from-podcast-page' + index\"\n :content=\"tag.substring(4, tag.length)\"\n relative-class=\"page-element\"\n :is-fixed=\"true\"\n />\n </template>\n </router-link>\n\n <button\n v-if=\"limitTags && !showAllTags\"\n class=\"btn\"\n @click=\"showAllTags = true\"\n >\n {{ t('See more') }}\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, ref } from \"vue\";\nconst ClassicPopover = defineAsyncComponent(\n () => import(\"../../misc/ClassicPopover.vue\"),\n);\nimport {useTagOf} from \"../../composable/useTagOf\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n tagList: { default: () => [], type: Array as () => Array<string> },\n podcastAnnotations: {\n default: () => {},\n type: Object as () => {\n [key: string]: string | number | boolean | undefined;\n },\n },\n orgaId: {default: \"\", type: String },\n /** Max number of tags to display */\n max: { type: Number, default: undefined }\n})\n\n\n//Composables\nconst { t } = useI18n()\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst filterStore = useFilterStore();\n\nconst showAllTags = ref(false);\n\n//Computed\nconst limitTags = computed((): boolean => {\n return !!props.max && tagListFiltered.value.length > props.max;\n});\n\nconst tags = computed(() => {\n if (limitTags.value && !showAllTags.value) {\n return limitedTags.value;\n } else {\n return tagListFiltered.value;\n }\n});\n\nconst tagListFiltered = computed(() => {\n const tags = props.tagList.filter((tag: string) => {\n return !tag.match(/^\\[\\[.*\\]\\]$/);\n });\n\n // Each tag is only displayed once\n return tags.filter((tag, index) => tags.indexOf(tag) === index);\n});\n\nconst limitedTags = computed(() => {\n return tagListFiltered.value.slice(0, props.max);\n});\n\nconst organisationQuery = computed(() => {\n if(filterStore.filterOrgaId){\n return undefined;\n }\n return { o: props.orgaId };\n});\n/* const ouestFranceMainTag = computed(() => {\n if (props.podcastAnnotations?.[\"mainOfTag\"]) {\n for (const key in props.podcastAnnotations) {\n if (\n props.podcastAnnotations[key] ===\n props.podcastAnnotations[\"mainOfTag\"] &&\n key !== \"mainOfTag\"\n ) {\n return \"[of]\" + key;\n }\n }\n }\n return undefined;\n}); */\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .tag-list-component {\n .ouest-france-logo {\n width: 20px;\n height: 20px;\n margin-right: 5px;\n }\n\n .main-of-tag {\n box-shadow: var(--octopus-shadow) 0 5px 15px;\n font-size: 0.9rem;\n }\n }\n\n .btn {\n font-size: 12px;\n padding: 4px 8px;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDA,MAAM,iBAAiB,2BACf,OAAO,iCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EAMA,MAAM,QAAQ;EAed,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,EAAE,kBAAkB,iBAAiB,SAAS;EACpD,MAAM,cAAc,eAAe;EAEnC,MAAM,cAAc,IAAI,KAAK;EAG7B,MAAM,YAAY,eAAwB;GACxC,OAAO,CAAC,CAAC,MAAM,OAAO,gBAAgB,MAAM,SAAS,MAAM;EAC7D,CAAC;EAED,MAAM,OAAO,eAAe;GAC1B,IAAI,UAAU,SAAS,CAAC,YAAY,OAClC,OAAO,YAAY;QAEnB,OAAO,gBAAgB;EAE3B,CAAC;EAED,MAAM,kBAAkB,eAAe;GACrC,MAAM,OAAO,MAAM,QAAQ,QAAQ,QAAgB;IACjD,OAAO,CAAC,IAAI,MAAM,cAAc;GAClC,CAAC;GAGD,OAAO,KAAK,QAAQ,KAAK,UAAU,KAAK,QAAQ,GAAG,MAAM,KAAK;EAChE,CAAC;EAED,MAAM,cAAc,eAAe;GACjC,OAAO,gBAAgB,MAAM,MAAM,GAAG,MAAM,GAAG;EACjD,CAAC;;;;;;;;;;;;;sBAEyB,eAAe;IACvC,IAAG,YAAY,cACb;IAEF,OAAO,EAAE,GAAG,MAAM,OAAO;GAC3B,CAAA;;;;;;;;;;;;;CCjHI,OAAM;;mBAED,OAAM,eAAc;;;;QAHnB,KAAA,MAAc,OAAA,mBAAe,MAAU,OAAA,gBAAgB,UAAA,UAAA,GAD/D,mBAkDM,OAlDN,YAkDM;EA9CJ,mBAEM,OAFN,YAEM,gBADD,OAAA,EAAC,cAAA,IAAA,KAAA,GAAA,CAAA;oBAEN,mBAkCc,UAAA,MAAA,WAjCW,OAAA,OAAf,KAAK,UAAK;uBADpB,YAkCc,wBAAA;IAhCX,KAAK;IACN,OAAM;IACL,IAAE;;eAA2C,IAAG;YAAmB,OAAA;;;2BAMR,CAAA,CAA3C,OAAA,iBAAiB,GAAG,KAAA,UAAA,GAArC,mBAA4D,UAAA,EAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,gBAAjB,GAAG,GAAA,CAAA,CAAA,GAAA,EAAA,MAAA,UAAA,GAC9C,mBAsBW,UAAA,EAAA,KAAA,EAAA,GAAA,CArBT,mBAcS,UAAA;KAbN,IAAE,+BAAiC;KACpC,OAAM;kCAEN,mBAQE,OAAA;KAPA,OAAM;KACN,QAAO;KACP,OAAM;KACN,eAAY;KACZ,KAAI;KACJ,OAAM;KACN,KAAA;mCACA,MACF,gBAAG,OAAA,aAAa,GAAG,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA,UAAA,GAErB,YAKE,OAAA,mBAAA;KAJC,QAAM,+BAAiC;KACvC,SAAS,IAAI,UAAS,GAAI,IAAI,MAAM;KACrC,kBAAe;KACd,YAAU;;;;;EAMT,OAAA,aAAS,CAAK,OAAA,eAAA,UAAA,GADtB,mBAMS,UAAA;;GAJP,OAAM;GACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,cAAW;qBAEhB,OAAA,EAAC,UAAA,CAAA,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
2
|
-
import { r as useFilterStore } from "./classicApi-
|
|
2
|
+
import { r as useFilterStore } from "./classicApi-xjOqAovv.mjs";
|
|
3
3
|
import { t as useTagOf } from "./useTagOf-JxYdEyRm.mjs";
|
|
4
4
|
import "./ouest_france_logo-WOgdbVGH.mjs";
|
|
5
5
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, openBlock, ref, renderList, resolveComponent, toDisplayString, withCtx } from "vue";
|
|
@@ -131,4 +131,4 @@ var TagList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(TagList_vu
|
|
|
131
131
|
//#endregion
|
|
132
132
|
export { TagList_default as default };
|
|
133
133
|
|
|
134
|
-
//# sourceMappingURL=TagList-
|
|
134
|
+
//# sourceMappingURL=TagList-D3Bn2fIn.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagList-D3Bn2fIn.mjs","names":[],"sources":["../src/components/display/podcasts/TagList.vue","../src/components/display/podcasts/TagList.vue"],"sourcesContent":["<template>\n <div\n v-if=\"undefined !== tagListFiltered && 0 !== tagListFiltered.length\"\n class=\"tag-list-component d-flex align-items-center flex-wrap mb-3 small-text\"\n >\n <div class=\"fw-bold me-3\">\n {{ t(\"Podcast tags\") + \" : \" }}\n </div>\n <router-link\n v-for=\"(tag, index) in tags\"\n :key=\"tag\"\n class=\"d-flex align-items-center border p-1 m-1 text-dark\"\n :to=\"{\n name: 'tag',\n params: { tag },\n query: organisationQuery\n }\"\n >\n <template v-if=\"!isOuestFranceTag(tag)\">{{ tag }}</template>\n <template v-else>\n <button\n :id=\"'tag-list-from-podcast-page' + index\"\n class=\"btn-transparent d-flex align-items-center\"\n >\n <img\n width=\"20\"\n height=\"20\"\n class=\"ouest-france-logo\"\n aria-hidden=\"true\"\n alt=\"\"\n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n {{ formateOfTag(tag) }}\n </button>\n <ClassicPopover\n :target=\"'tag-list-from-podcast-page' + index\"\n :content=\"tag.substring(4, tag.length)\"\n relative-class=\"page-element\"\n :is-fixed=\"true\"\n />\n </template>\n </router-link>\n\n <button\n v-if=\"limitTags && !showAllTags\"\n class=\"btn\"\n @click=\"showAllTags = true\"\n >\n {{ t('See more') }}\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, ref } from \"vue\";\nconst ClassicPopover = defineAsyncComponent(\n () => import(\"../../misc/ClassicPopover.vue\"),\n);\nimport {useTagOf} from \"../../composable/useTagOf\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n tagList: { default: () => [], type: Array as () => Array<string> },\n podcastAnnotations: {\n default: () => {},\n type: Object as () => {\n [key: string]: string | number | boolean | undefined;\n },\n },\n orgaId: {default: \"\", type: String },\n /** Max number of tags to display */\n max: { type: Number, default: undefined }\n})\n\n\n//Composables\nconst { t } = useI18n()\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst filterStore = useFilterStore();\n\nconst showAllTags = ref(false);\n\n//Computed\nconst limitTags = computed((): boolean => {\n return !!props.max && tagListFiltered.value.length > props.max;\n});\n\nconst tags = computed(() => {\n if (limitTags.value && !showAllTags.value) {\n return limitedTags.value;\n } else {\n return tagListFiltered.value;\n }\n});\n\nconst tagListFiltered = computed(() => {\n const tags = props.tagList.filter((tag: string) => {\n return !tag.match(/^\\[\\[.*\\]\\]$/);\n });\n\n // Each tag is only displayed once\n return tags.filter((tag, index) => tags.indexOf(tag) === index);\n});\n\nconst limitedTags = computed(() => {\n return tagListFiltered.value.slice(0, props.max);\n});\n\nconst organisationQuery = computed(() => {\n if(filterStore.filterOrgaId){\n return undefined;\n }\n return { o: props.orgaId };\n});\n/* const ouestFranceMainTag = computed(() => {\n if (props.podcastAnnotations?.[\"mainOfTag\"]) {\n for (const key in props.podcastAnnotations) {\n if (\n props.podcastAnnotations[key] ===\n props.podcastAnnotations[\"mainOfTag\"] &&\n key !== \"mainOfTag\"\n ) {\n return \"[of]\" + key;\n }\n }\n }\n return undefined;\n}); */\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .tag-list-component {\n .ouest-france-logo {\n width: 20px;\n height: 20px;\n margin-right: 5px;\n }\n\n .main-of-tag {\n box-shadow: var(--octopus-shadow) 0 5px 15px;\n font-size: 0.9rem;\n }\n }\n\n .btn {\n font-size: 12px;\n padding: 4px 8px;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"undefined !== tagListFiltered && 0 !== tagListFiltered.length\"\n class=\"tag-list-component d-flex align-items-center flex-wrap mb-3 small-text\"\n >\n <div class=\"fw-bold me-3\">\n {{ t(\"Podcast tags\") + \" : \" }}\n </div>\n <router-link\n v-for=\"(tag, index) in tags\"\n :key=\"tag\"\n class=\"d-flex align-items-center border p-1 m-1 text-dark\"\n :to=\"{\n name: 'tag',\n params: { tag },\n query: organisationQuery\n }\"\n >\n <template v-if=\"!isOuestFranceTag(tag)\">{{ tag }}</template>\n <template v-else>\n <button\n :id=\"'tag-list-from-podcast-page' + index\"\n class=\"btn-transparent d-flex align-items-center\"\n >\n <img\n width=\"20\"\n height=\"20\"\n class=\"ouest-france-logo\"\n aria-hidden=\"true\"\n alt=\"\"\n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n {{ formateOfTag(tag) }}\n </button>\n <ClassicPopover\n :target=\"'tag-list-from-podcast-page' + index\"\n :content=\"tag.substring(4, tag.length)\"\n relative-class=\"page-element\"\n :is-fixed=\"true\"\n />\n </template>\n </router-link>\n\n <button\n v-if=\"limitTags && !showAllTags\"\n class=\"btn\"\n @click=\"showAllTags = true\"\n >\n {{ t('See more') }}\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, ref } from \"vue\";\nconst ClassicPopover = defineAsyncComponent(\n () => import(\"../../misc/ClassicPopover.vue\"),\n);\nimport {useTagOf} from \"../../composable/useTagOf\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n tagList: { default: () => [], type: Array as () => Array<string> },\n podcastAnnotations: {\n default: () => {},\n type: Object as () => {\n [key: string]: string | number | boolean | undefined;\n },\n },\n orgaId: {default: \"\", type: String },\n /** Max number of tags to display */\n max: { type: Number, default: undefined }\n})\n\n\n//Composables\nconst { t } = useI18n()\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst filterStore = useFilterStore();\n\nconst showAllTags = ref(false);\n\n//Computed\nconst limitTags = computed((): boolean => {\n return !!props.max && tagListFiltered.value.length > props.max;\n});\n\nconst tags = computed(() => {\n if (limitTags.value && !showAllTags.value) {\n return limitedTags.value;\n } else {\n return tagListFiltered.value;\n }\n});\n\nconst tagListFiltered = computed(() => {\n const tags = props.tagList.filter((tag: string) => {\n return !tag.match(/^\\[\\[.*\\]\\]$/);\n });\n\n // Each tag is only displayed once\n return tags.filter((tag, index) => tags.indexOf(tag) === index);\n});\n\nconst limitedTags = computed(() => {\n return tagListFiltered.value.slice(0, props.max);\n});\n\nconst organisationQuery = computed(() => {\n if(filterStore.filterOrgaId){\n return undefined;\n }\n return { o: props.orgaId };\n});\n/* const ouestFranceMainTag = computed(() => {\n if (props.podcastAnnotations?.[\"mainOfTag\"]) {\n for (const key in props.podcastAnnotations) {\n if (\n props.podcastAnnotations[key] ===\n props.podcastAnnotations[\"mainOfTag\"] &&\n key !== \"mainOfTag\"\n ) {\n return \"[of]\" + key;\n }\n }\n }\n return undefined;\n}); */\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .tag-list-component {\n .ouest-france-logo {\n width: 20px;\n height: 20px;\n margin-right: 5px;\n }\n\n .main-of-tag {\n box-shadow: var(--octopus-shadow) 0 5px 15px;\n font-size: 0.9rem;\n }\n }\n\n .btn {\n font-size: 12px;\n padding: 4px 8px;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDA,MAAM,iBAAiB,2BACf,OAAO,iCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EAMA,MAAM,QAAQ;EAed,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,EAAE,kBAAkB,iBAAiB,SAAS;EACpD,MAAM,cAAc,eAAe;EAEnC,MAAM,cAAc,IAAI,KAAK;EAG7B,MAAM,YAAY,eAAwB;GACxC,OAAO,CAAC,CAAC,MAAM,OAAO,gBAAgB,MAAM,SAAS,MAAM;EAC7D,CAAC;EAED,MAAM,OAAO,eAAe;GAC1B,IAAI,UAAU,SAAS,CAAC,YAAY,OAClC,OAAO,YAAY;QAEnB,OAAO,gBAAgB;EAE3B,CAAC;EAED,MAAM,kBAAkB,eAAe;GACrC,MAAM,OAAO,MAAM,QAAQ,QAAQ,QAAgB;IACjD,OAAO,CAAC,IAAI,MAAM,cAAc;GAClC,CAAC;GAGD,OAAO,KAAK,QAAQ,KAAK,UAAU,KAAK,QAAQ,GAAG,MAAM,KAAK;EAChE,CAAC;EAED,MAAM,cAAc,eAAe;GACjC,OAAO,gBAAgB,MAAM,MAAM,GAAG,MAAM,GAAG;EACjD,CAAC;;;;;;;;;;;;;sBAEyB,eAAe;IACvC,IAAG,YAAY,cACb;IAEF,OAAO,EAAE,GAAG,MAAM,OAAO;GAC3B,CAAA;;;;;;;;;;;;;CCjHI,OAAM;;mBAED,OAAM,eAAc;;;;QAHnB,KAAA,MAAc,OAAA,mBAAe,MAAU,OAAA,gBAAgB,UAAA,UAAA,GAD/D,mBAkDM,OAlDN,YAkDM;EA9CJ,mBAEM,OAFN,YAEM,gBADD,OAAA,EAAC,cAAA,IAAA,KAAA,GAAA,CAAA;oBAEN,mBAkCc,UAAA,MAAA,WAjCW,OAAA,OAAf,KAAK,UAAK;uBADpB,YAkCc,wBAAA;IAhCX,KAAK;IACN,OAAM;IACL,IAAE;;eAA2C,IAAG;YAAmB,OAAA;;;2BAMR,CAAA,CAA3C,OAAA,iBAAiB,GAAG,KAAA,UAAA,GAArC,mBAA4D,UAAA,EAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,gBAAjB,GAAG,GAAA,CAAA,CAAA,GAAA,EAAA,MAAA,UAAA,GAC9C,mBAsBW,UAAA,EAAA,KAAA,EAAA,GAAA,CArBT,mBAcS,UAAA;KAbN,IAAE,+BAAiC;KACpC,OAAM;kCAEN,mBAQE,OAAA;KAPA,OAAM;KACN,QAAO;KACP,OAAM;KACN,eAAY;KACZ,KAAI;KACJ,OAAM;KACN,KAAA;mCACA,MACF,gBAAG,OAAA,aAAa,GAAG,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA,UAAA,GAErB,YAKE,OAAA,mBAAA;KAJC,QAAM,+BAAiC;KACvC,SAAS,IAAI,UAAS,GAAI,IAAI,MAAM;KACrC,kBAAe;KACd,YAAU;;;;;EAMT,OAAA,aAAS,CAAK,OAAA,eAAA,UAAA,GADtB,mBAMS,UAAA;;GAJP,OAAM;GACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,cAAW;qBAEhB,OAAA,EAAC,UAAA,CAAA,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagPage-B71pZpRY.mjs","names":[],"sources":["../src/components/pages/TagPage.vue","../src/components/pages/TagPage.vue"],"sourcesContent":["<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n","<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCA,MAAM,kBAAkB,2BAChB,OAAO,kCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EAGA,MAAM,QAAQ;EASd,MAAM,eAAe,IAAI,EAAE;EAC3B,MAAM,OAAO,IAAI,KAAK;EAGtB,MAAM,EACJ,eACA,gBACA,eACA,eACA,WACE,mBAAmB,KAAK;EAC5B,MAAM,EAAE,kBAAkB,iBAAiB,SAAS;EACpD,MAAM,EAAE,qBAAqB,eAAe;EAC5C,MAAM,EAAC,MAAK,QAAQ;EAGpB,MAAM,YAAY,eAAc,eAAe,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;EAClF,MAAM,YAAY,eAAc;GAC9B,IAAG,cAAc,MAAM,QACrB,OAAO;EAGX,CAAC;EAGD,YAAU,MAAM,KAAK,YAAY;GAC/B,MAAM,YAAY,MAAM,OAAM;GAC9B,KAAK,QAAQ,iBAAiB,SAAS;GACvC,aAAa,QAAO,KAAK,QAAS,aAAa,SAAS,IAAG;GAC3D,iBAAiB,EAAE,sBAAsB,EAAC,KAAI,aAAa,MAAK,CAAC,CAAC;EACpE,GAAG,EAAC,WAAW,KAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CCjFK,OAAM;;;;CAKvB,OAAM;CACN,QAAO;CACP,OAAM;CACN,eAAY;CACZ,KAAI;CAEJ,OAAM;CACN,KAAA;;;QAZS,OAAA,UAAA,UAAA,GAAf,mBA2BU,WA3BV,YA2BU;EA1BR,mBAaK,MAAA,MAAA,CAAA,gBAAA,gBAZA,OAAA,EAAC,sBAAA,EAAA,KAA4B,OAAA,aAAY,CAAA,CAAA,IAAI,KAChD,CAAA,GACQ,OAAA,QAAA,UAAA,GADR,mBAUE,OAVF,UAUE,KAAA,mBAAA,QAAA,IAAA,CAAA,CAAA;EAEJ,YAGE,OAAA,oBAAA;GAFQ,mBAAiB,OAAA;oEAAA,OAAA,iBAAc;GAC/B,kBAAgB,OAAA;mEAAA,OAAA,gBAAa;;EAEvC,YAOE,OAAA,gBAAA;GANC,OAAO,OAAA;GACP,MAAM,OAAA;GACN,eAAW,CAAG,OAAA,GAAG;GACjB,mBAAiB,OAAA;GACjB,OAAO,OAAA;GACP,iBAAe,OAAA,aAAS"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
2
2
|
import { t as useTagOf } from "./useTagOf-JxYdEyRm.mjs";
|
|
3
|
-
import { t as useSimplePageParam } from "./useSimplePageParam-
|
|
3
|
+
import { t as useSimplePageParam } from "./useSimplePageParam-CsY_ie3c.mjs";
|
|
4
4
|
import { t as useSeoTitleUrl } from "./useSeoTitleUrl-CrM1YzAc.mjs";
|
|
5
|
-
import { t as PodcastList_default } from "./PodcastList-
|
|
5
|
+
import { t as PodcastList_default } from "./PodcastList-DhKeiBbv.mjs";
|
|
6
6
|
import { t as ouest_france_logo_default } from "./ouest_france_logo-WOgdbVGH.mjs";
|
|
7
7
|
import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, openBlock, ref, toDisplayString, watch } from "vue";
|
|
8
8
|
import { useI18n } from "vue-i18n";
|
|
@@ -33,7 +33,7 @@ var TagPage_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
33
33
|
},
|
|
34
34
|
setup(__props, { expose: __expose }) {
|
|
35
35
|
__expose();
|
|
36
|
-
const ProductorSearch = defineAsyncComponent(() => import("./ProductorSearch-
|
|
36
|
+
const ProductorSearch = defineAsyncComponent(() => import("./ProductorSearch-BTj9gIOs.mjs").then((n) => n.n));
|
|
37
37
|
const props = __props;
|
|
38
38
|
const titleDisplay = ref("");
|
|
39
39
|
const isOf = ref(false);
|
|
@@ -122,4 +122,4 @@ var TagPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default(TagPage_vu
|
|
|
122
122
|
//#endregion
|
|
123
123
|
export { TagPage_default as default };
|
|
124
124
|
|
|
125
|
-
//# sourceMappingURL=TagPage-
|
|
125
|
+
//# sourceMappingURL=TagPage-Brw9iL1F.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagPage-Brw9iL1F.mjs","names":[],"sources":["../src/components/pages/TagPage.vue","../src/components/pages/TagPage.vue"],"sourcesContent":["<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n","<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCA,MAAM,kBAAkB,2BAChB,OAAO,kCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EAGA,MAAM,QAAQ;EASd,MAAM,eAAe,IAAI,EAAE;EAC3B,MAAM,OAAO,IAAI,KAAK;EAGtB,MAAM,EACJ,eACA,gBACA,eACA,eACA,WACE,mBAAmB,KAAK;EAC5B,MAAM,EAAE,kBAAkB,iBAAiB,SAAS;EACpD,MAAM,EAAE,qBAAqB,eAAe;EAC5C,MAAM,EAAC,MAAK,QAAQ;EAGpB,MAAM,YAAY,eAAc,eAAe,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;EAClF,MAAM,YAAY,eAAc;GAC9B,IAAG,cAAc,MAAM,QACrB,OAAO;EAGX,CAAC;EAGD,YAAU,MAAM,KAAK,YAAY;GAC/B,MAAM,YAAY,MAAM,OAAM;GAC9B,KAAK,QAAQ,iBAAiB,SAAS;GACvC,aAAa,QAAO,KAAK,QAAS,aAAa,SAAS,IAAG;GAC3D,iBAAiB,EAAE,sBAAsB,EAAC,KAAI,aAAa,MAAK,CAAC,CAAC;EACpE,GAAG,EAAC,WAAW,KAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CCjFK,OAAM;;;;CAKvB,OAAM;CACN,QAAO;CACP,OAAM;CACN,eAAY;CACZ,KAAI;CAEJ,OAAM;CACN,KAAA;;;QAZS,OAAA,UAAA,UAAA,GAAf,mBA2BU,WA3BV,YA2BU;EA1BR,mBAaK,MAAA,MAAA,CAAA,gBAAA,gBAZA,OAAA,EAAC,sBAAA,EAAA,KAA4B,OAAA,aAAY,CAAA,CAAA,IAAI,KAChD,CAAA,GACQ,OAAA,QAAA,UAAA,GADR,mBAUE,OAVF,UAUE,KAAA,mBAAA,QAAA,IAAA,CAAA,CAAA;EAEJ,YAGE,OAAA,oBAAA;GAFQ,mBAAiB,OAAA;oEAAA,OAAA,iBAAc;GAC/B,kBAAgB,OAAA;mEAAA,OAAA,gBAAa;;EAEvC,YAOE,OAAA,gBAAA;GANC,OAAO,OAAA;GACP,MAAM,OAAA;GACN,eAAW,CAAG,OAAA,GAAG;GACjB,mBAAiB,OAAA;GACjB,OAAO,OAAA;GACP,iBAAe,OAAA,aAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagPage-CWRyUZkD.mjs","names":[],"sources":["../src/components/pages/TagPage.vue","../src/components/pages/TagPage.vue"],"sourcesContent":["<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n","<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCA,MAAM,kBAAkB,2BAChB,OAAO,kCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EAGA,MAAM,QAAQ;EASd,MAAM,eAAe,IAAI,EAAE;EAC3B,MAAM,OAAO,IAAI,KAAK;EAGtB,MAAM,EACJ,eACA,gBACA,eACA,eACA,WACE,mBAAmB,KAAK;EAC5B,MAAM,EAAE,kBAAkB,iBAAiB,SAAS;EACpD,MAAM,EAAE,qBAAqB,eAAe;EAC5C,MAAM,EAAC,MAAK,QAAQ;EAGpB,MAAM,YAAY,eAAc,eAAe,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;EAClF,MAAM,YAAY,eAAc;GAC9B,IAAG,cAAc,MAAM,QACrB,OAAO;EAGX,CAAC;EAGD,YAAU,MAAM,KAAK,YAAY;GAC/B,MAAM,YAAY,MAAM,OAAM;GAC9B,KAAK,QAAQ,iBAAiB,SAAS;GACvC,aAAa,QAAO,KAAK,QAAS,aAAa,SAAS,IAAG;GAC3D,iBAAiB,EAAE,sBAAsB,EAAC,KAAI,aAAa,MAAK,CAAC,CAAC;EACpE,GAAG,EAAC,WAAW,KAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CCjFK,OAAM;;;;CAKvB,OAAM;CACN,QAAO;CACP,OAAM;CACN,eAAY;CACZ,KAAI;CAEJ,OAAM;CACN,KAAA;;;QAZS,OAAA,UAAA,UAAA,GAAf,mBA2BU,WA3BV,YA2BU;EA1BR,mBAaK,MAAA,MAAA,CAAA,gBAAA,gBAZA,OAAA,EAAC,sBAAA,EAAA,KAA4B,OAAA,aAAY,CAAA,CAAA,IAAI,KAChD,CAAA,GACQ,OAAA,QAAA,UAAA,GADR,mBAUE,OAVF,UAUE,KAAA,mBAAA,QAAA,IAAA,CAAA,CAAA;EAEJ,YAGE,OAAA,oBAAA;GAFQ,mBAAiB,OAAA;oEAAA,OAAA,iBAAc;GAC/B,kBAAgB,OAAA;mEAAA,OAAA,gBAAa;;EAEvC,YAOE,OAAA,gBAAA;GANC,OAAO,OAAA;GACP,MAAM,OAAA;GACN,eAAW,CAAG,OAAA,GAAG;GACjB,mBAAiB,OAAA;GACjB,OAAO,OAAA;GACP,iBAAe,OAAA,aAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagPage-DFo25ZeP.mjs","names":[],"sources":["../src/components/pages/TagPage.vue","../src/components/pages/TagPage.vue"],"sourcesContent":["<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n","<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCA,MAAM,kBAAkB,2BAChB,OAAO,kCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EAGA,MAAM,QAAQ;EASd,MAAM,eAAe,IAAI,EAAE;EAC3B,MAAM,OAAO,IAAI,KAAK;EAGtB,MAAM,EACJ,eACA,gBACA,eACA,eACA,WACE,mBAAmB,KAAK;EAC5B,MAAM,EAAE,kBAAkB,iBAAiB,SAAS;EACpD,MAAM,EAAE,qBAAqB,eAAe;EAC5C,MAAM,EAAC,MAAK,QAAQ;EAGpB,MAAM,YAAY,eAAc,eAAe,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;EAClF,MAAM,YAAY,eAAc;GAC9B,IAAG,cAAc,MAAM,QACrB,OAAO;EAGX,CAAC;EAGD,YAAU,MAAM,KAAK,YAAY;GAC/B,MAAM,YAAY,MAAM,OAAM;GAC9B,KAAK,QAAQ,iBAAiB,SAAS;GACvC,aAAa,QAAO,KAAK,QAAS,aAAa,SAAS,IAAG;GAC3D,iBAAiB,EAAE,sBAAsB,EAAC,KAAI,aAAa,MAAK,CAAC,CAAC;EACpE,GAAG,EAAC,WAAW,KAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CCjFK,OAAM;;;;CAKvB,OAAM;CACN,QAAO;CACP,OAAM;CACN,eAAY;CACZ,KAAI;CAEJ,OAAM;CACN,KAAA;;;QAZS,OAAA,UAAA,UAAA,GAAf,mBA2BU,WA3BV,YA2BU;EA1BR,mBAaK,MAAA,MAAA,CAAA,gBAAA,gBAZA,OAAA,EAAC,sBAAA,EAAA,KAA4B,OAAA,aAAY,CAAA,CAAA,IAAI,KAChD,CAAA,GACQ,OAAA,QAAA,UAAA,GADR,mBAUE,OAVF,UAUE,KAAA,mBAAA,QAAA,IAAA,CAAA,CAAA;EAEJ,YAGE,OAAA,oBAAA;GAFQ,mBAAiB,OAAA;oEAAA,OAAA,iBAAc;GAC/B,kBAAgB,OAAA;mEAAA,OAAA,gBAAa;;EAEvC,YAOE,OAAA,gBAAA;GANC,OAAO,OAAA;GACP,MAAM,OAAA;GACN,eAAW,CAAG,OAAA,GAAG;GACjB,mBAAiB,OAAA;GACjB,OAAO,OAAA;GACP,iBAAe,OAAA,aAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagPage-sI917OpV.mjs","names":[],"sources":["../src/components/pages/TagPage.vue","../src/components/pages/TagPage.vue"],"sourcesContent":["<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n","<template>\n <section v-if=\"isInit\" class=\"page-box tag-page\">\n <h1>\n {{ t(\"Search for keyword\", {tag:titleDisplay})}}\n <img\n v-if=\"isOf\"\n width=\"30\"\n height=\"30\"\n class=\"ouest-france-logo-tag-page\"\n aria-hidden=\"true\"\n alt=\"\"\n \n title=\"Ouest France\"\n src=\"/img/ouest_france_logo.svg\" \n />\n </h1>\n <ProductorSearch\n v-model:organisation-id=\"organisationId\"\n v-model:search-pattern=\"searchPattern\"\n />\n <PodcastList\n :first=\"paginateFirst\"\n :size=\"ps\"\n :include-tag=\"[tag]\"\n :organisation-id=\"orgaArray\"\n :query=\"searchMinSize\"\n :sort-criteria=\"sortOrder ?? 'DATE'\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { useSeoTitleUrl } from \"../composable/route/useSeoTitleUrl\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport { useTagOf } from \"../composable/useTagOf\";\nimport PodcastList from \"../display/podcasts/PodcastList.vue\";\nimport { computed, defineAsyncComponent, ref, watch } from \"vue\";\nconst ProductorSearch = defineAsyncComponent(\n () => import(\"../display/filter/ProductorSearch.vue\"),\n);\n\n//Props \nconst props = defineProps({\n pr: { default: 0, type: Number },\n ps: { default: 30, type: Number },\n tag: { default: undefined, type: String },\n routeOrga: { default: undefined, type: String },\n routeQuery: { default: \"\", type: String },\n});\n\n//Data \nconst titleDisplay = ref(\"\");\nconst isOf = ref(false);\n\n//Composables\nconst {\n searchPattern,\n organisationId,\n searchMinSize,\n paginateFirst,\n isInit\n} = useSimplePageParam(props);\nconst { isOuestFranceTag, formateOfTag } = useTagOf();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {t} = useI18n();\n\n//Computed\nconst orgaArray = computed(() =>organisationId.value ? [organisationId.value] : []);\nconst sortOrder = computed(() =>{\n if(searchMinSize.value.length){\n return \"SCORE\";\n }\n return undefined;\n});\n\n//Watch\nwatch(()=>props.tag, async () => {\n const tagString = props.tag?? \"\";\n isOf.value = isOuestFranceTag(tagString);\n titleDisplay.value= isOf.value ? formateOfTag(tagString) :tagString;\n updatePathParams(t(\"Search for keyword\", {tag:titleDisplay.value}));\n}, {immediate: true});\n\n</script>\n<style lang=\"scss\">\n.octopus-app .tag-page{\n .ouest-france-logo-tag-page{\n width: 30px;\n height: 30px;\n margin-left: 10px;\n vertical-align: center;\n @media (width <= 500px) {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCA,MAAM,kBAAkB,2BAChB,OAAO,kCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EAGA,MAAM,QAAQ;EASd,MAAM,eAAe,IAAI,EAAE;EAC3B,MAAM,OAAO,IAAI,KAAK;EAGtB,MAAM,EACJ,eACA,gBACA,eACA,eACA,WACE,mBAAmB,KAAK;EAC5B,MAAM,EAAE,kBAAkB,iBAAiB,SAAS;EACpD,MAAM,EAAE,qBAAqB,eAAe;EAC5C,MAAM,EAAC,MAAK,QAAQ;EAGpB,MAAM,YAAY,eAAc,eAAe,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;EAClF,MAAM,YAAY,eAAc;GAC9B,IAAG,cAAc,MAAM,QACrB,OAAO;EAGX,CAAC;EAGD,YAAU,MAAM,KAAK,YAAY;GAC/B,MAAM,YAAY,MAAM,OAAM;GAC9B,KAAK,QAAQ,iBAAiB,SAAS;GACvC,aAAa,QAAO,KAAK,QAAS,aAAa,SAAS,IAAG;GAC3D,iBAAiB,EAAE,sBAAsB,EAAC,KAAI,aAAa,MAAK,CAAC,CAAC;EACpE,GAAG,EAAC,WAAW,KAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CCjFK,OAAM;;;;CAKvB,OAAM;CACN,QAAO;CACP,OAAM;CACN,eAAY;CACZ,KAAI;CAEJ,OAAM;CACN,KAAA;;;QAZS,OAAA,UAAA,UAAA,GAAf,mBA2BU,WA3BV,YA2BU;EA1BR,mBAaK,MAAA,MAAA,CAAA,gBAAA,gBAZA,OAAA,EAAC,sBAAA,EAAA,KAA4B,OAAA,aAAY,CAAA,CAAA,IAAI,KAChD,CAAA,GACQ,OAAA,QAAA,UAAA,GADR,mBAUE,OAVF,UAUE,KAAA,mBAAA,QAAA,IAAA,CAAA,CAAA;EAEJ,YAGE,OAAA,oBAAA;GAFQ,mBAAiB,OAAA;oEAAA,OAAA,iBAAc;GAC/B,kBAAgB,OAAA;mEAAA,OAAA,gBAAa;;EAEvC,YAOE,OAAA,gBAAA;GANC,OAAO,OAAA;GACP,MAAM,OAAA;GACN,eAAW,CAAG,OAAA,GAAG;GACjB,mBAAiB,OAAA;GACjB,OAAO,OAAA;GACP,iBAAe,OAAA,aAAS"}
|