@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":"TopBar-CaCA8kOs.mjs","names":[],"sources":["../src/components/misc/RightsScopeSelector.vue","../src/components/misc/RightsScopeSelector.vue","../src/components/misc/RightsScopeMenu.vue","../src/components/misc/RightsScopeMenu.vue","../src/components/misc/TopBarMainContent.vue","../src/components/misc/TopBarMainContent.vue","../src/components/misc/TopBar.vue","../src/components/misc/TopBar.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subOrganisations.length > 0\"\n class=\"d-flex flex-column ms-4\"\n >\n <span class=\"label mb-1\">\n {{ t('RightsScopeSelector - Title', { rubriquage: rubriquage?.title}) }}\n </span>\n <div class=\"d-flex value\">\n <button\n type=\"button\"\n class=\"btn-transparent d-flex align-items-center\"\n aria-controls=\"suborga-list-menu\"\n :aria-expanded=\"open\"\n @click=\"$emit('change')\"\n >\n <span\n v-if=\"selectedSubOrganisation\"\n class=\"me-2 selected\"\n >\n {{ selectedSubOrganisation.name }}\n </span>\n <span v-else class=\"me-2\">\n {{ t('RightsScopeSelector - No filter') }}\n </span>\n <SwapIcon class=\"icon\" />\n </button>\n <button\n v-if=\"selectedSubOrganisation\"\n type=\"button\"\n class=\"btn-transparent\"\n @click=\"unselectSubOrganisation\"\n >\n <ClearIcon\n class=\"icon\"\n :title=\"t('RightsScopeSelector - Clear filter')\"\n />\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { ref, toRef, watch } from \"vue\";\nimport { useSubOrganisations } from \"../composable/useSubOrganisations\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { rubriquesApi } from \"@/api\";\n\nimport SwapIcon from \"vue-material-design-icons/SwapHorizontalCircleOutline.vue\";\nimport ClearIcon from \"vue-material-design-icons/CloseCircleOutline.vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst authOrgaId = toRef(authStore, 'authOrgaId');\nconst rubriquage = ref<Rubriquage|null>(null);\nconst {\n selectedSubOrganisation,\n subOrganisations,\n unselectSubOrganisation\n} = useSubOrganisations(authOrgaId);\n\ndefineProps<{\n /** Whether the sub organisation menu controlled by this selector is open */\n open?: boolean;\n}>();\n\ndefineEmits<{\n (e: 'change'): void;\n}>();\n\nwatch(authOrgaId, async () => {\n rubriquage.value = await rubriquesApi.findRestrictiveRubriquage(authOrgaId.value);\n}, { immediate: true });\n</script>\n\n<style scoped lang=\"scss\">\n#header-scope-selector:deep(.octopus-select-field) {\n background: transparent;\n border-color: rgba(255, 255, 255, 0.1);\n margin-left: 200px;\n\n .octopus-select-value {\n color: var(--octopus-secondary);\n font-weight: bold;\n align-content: center;\n }\n\n input {\n color: white;\n }\n\n button {\n color: rgba(255, 255, 255, 0.3);\n }\n}\n\n.value {\n color: var(--octopus-secondary);\n font-weight: bold;\n align-content: center;\n align-items: center;\n\n button {\n color: inherit;\n font-weight: inherit;\n text-align: start;\n padding: 0;\n }\n\n span:not(.selected):not(.icon) {\n opacity: .5;\n transition: opacity .5s;\n\n &:hover {\n opacity: .7;\n }\n }\n}\n\n.label {\n color: rgba(255, 255, 255, 0.3);\n font-weight: 600;\n font-style: italic;\n font-size: 14px;\n white-space: nowrap;\n overflow-y: visible;\n}\n\n.icon {\n opacity: .7;\n transition: opacity .5s;\n\n &:hover {\n opacity: 1;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subOrganisations.length > 0\"\n class=\"d-flex flex-column ms-4\"\n >\n <span class=\"label mb-1\">\n {{ t('RightsScopeSelector - Title', { rubriquage: rubriquage?.title}) }}\n </span>\n <div class=\"d-flex value\">\n <button\n type=\"button\"\n class=\"btn-transparent d-flex align-items-center\"\n aria-controls=\"suborga-list-menu\"\n :aria-expanded=\"open\"\n @click=\"$emit('change')\"\n >\n <span\n v-if=\"selectedSubOrganisation\"\n class=\"me-2 selected\"\n >\n {{ selectedSubOrganisation.name }}\n </span>\n <span v-else class=\"me-2\">\n {{ t('RightsScopeSelector - No filter') }}\n </span>\n <SwapIcon class=\"icon\" />\n </button>\n <button\n v-if=\"selectedSubOrganisation\"\n type=\"button\"\n class=\"btn-transparent\"\n @click=\"unselectSubOrganisation\"\n >\n <ClearIcon\n class=\"icon\"\n :title=\"t('RightsScopeSelector - Clear filter')\"\n />\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { ref, toRef, watch } from \"vue\";\nimport { useSubOrganisations } from \"../composable/useSubOrganisations\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { rubriquesApi } from \"@/api\";\n\nimport SwapIcon from \"vue-material-design-icons/SwapHorizontalCircleOutline.vue\";\nimport ClearIcon from \"vue-material-design-icons/CloseCircleOutline.vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst authOrgaId = toRef(authStore, 'authOrgaId');\nconst rubriquage = ref<Rubriquage|null>(null);\nconst {\n selectedSubOrganisation,\n subOrganisations,\n unselectSubOrganisation\n} = useSubOrganisations(authOrgaId);\n\ndefineProps<{\n /** Whether the sub organisation menu controlled by this selector is open */\n open?: boolean;\n}>();\n\ndefineEmits<{\n (e: 'change'): void;\n}>();\n\nwatch(authOrgaId, async () => {\n rubriquage.value = await rubriquesApi.findRestrictiveRubriquage(authOrgaId.value);\n}, { immediate: true });\n</script>\n\n<style scoped lang=\"scss\">\n#header-scope-selector:deep(.octopus-select-field) {\n background: transparent;\n border-color: rgba(255, 255, 255, 0.1);\n margin-left: 200px;\n\n .octopus-select-value {\n color: var(--octopus-secondary);\n font-weight: bold;\n align-content: center;\n }\n\n input {\n color: white;\n }\n\n button {\n color: rgba(255, 255, 255, 0.3);\n }\n}\n\n.value {\n color: var(--octopus-secondary);\n font-weight: bold;\n align-content: center;\n align-items: center;\n\n button {\n color: inherit;\n font-weight: inherit;\n text-align: start;\n padding: 0;\n }\n\n span:not(.selected):not(.icon) {\n opacity: .5;\n transition: opacity .5s;\n\n &:hover {\n opacity: .7;\n }\n }\n}\n\n.label {\n color: rgba(255, 255, 255, 0.3);\n font-weight: 600;\n font-style: italic;\n font-size: 14px;\n white-space: nowrap;\n overflow-y: visible;\n}\n\n.icon {\n opacity: .7;\n transition: opacity .5s;\n\n &:hover {\n opacity: 1;\n }\n}\n</style>\n","<template>\n <div\n id=\"suborga-list-menu\"\n ref=\"menuNav\"\n role=\"dialog\"\n aria-labelledby=\"suborga-list-menu-title\"\n :class=\"{ shown: open }\"\n :inert=\"!open\"\n >\n <button\n type=\"button\"\n class=\"btn-transparent close-btn\"\n @click=\"close\"\n >\n <CloseIcon :title=\"t('Close')\" />\n </button>\n\n <div class=\"search\">\n <h3 id=\"suborga-list-menu-title\">\n {{ t('RightsScopeMenu - Title') }}\n </h3>\n <ClassicInputText\n v-model:text-init=\"search\"\n :placeholder=\"t('RightsScopeMenu - Search')\"\n can-be-null\n />\n </div>\n\n <div v-if=\"showFirstList\" class=\"suborga-list mb-4\">\n <h4>{{ t('RightsScopeMenu - First list - Title') }}</h4>\n <span\n v-for=\"suborga in userSubOrgas\"\n :key=\"suborga.id\"\n class=\"suborga\"\n @click=\"select(suborga)\"\n >\n {{ suborga.name }}\n </span>\n </div>\n\n <div class=\"suborga-list\">\n <h4>{{ secondListTitle }}</h4>\n\n <div v-if=\"showLetters\" class=\"letters mt-2\">\n <button\n v-for=\"letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\"\n :key=\"letter\"\n type=\"button\"\n class=\"letter\"\n :title=\"subOrgaByLetter.has(letter) ? undefined : t('RightsScopeMenu - Letters - No sub orga for letter')\"\n :disabled=\"!subOrgaByLetter.has(letter)\"\n @click=\"scrollToLetter(letter)\"\n >\n {{ letter }}\n </button>\n </div>\n\n <div\n v-for=\"[letter, suborgaForLetter] in subOrgaByLetter\"\n :key=\"'suborgas-' + letter\"\n >\n <div\n :id=\"'suborga-letter-' + letter\"\n class=\"letter\"\n tabindex=\"-1\"\n >\n {{ letter }}\n </div>\n <span\n v-for=\"suborga in suborgaForLetter\"\n :key=\"suborga.id\"\n class=\"suborga\"\n @click=\"select(suborga)\"\n >\n {{ suborga.name }}\n </span>\n </div>\n </div>\n\n <p role=\"status\" class=\"text-indic px-3\">\n <template v-if=\"noResult\">\n {{ t('RightsScopeMenu - No result') }}\n </template>\n </p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, nextTick, onUnmounted, ref, toRef, useTemplateRef, watch } from 'vue';\nimport { getClassicInputText, useAuthStore } from '@saooti/octopus-sdk'; \nimport { SubOrganisation, useSubOrganisations } from '../composable/useSubOrganisations';\nimport { useI18n } from 'vue-i18n';\nimport CloseIcon from 'vue-material-design-icons/Close.vue';\n\nconst ClassicInputText = defineAsyncComponent(getClassicInputText);\n\nconst { t } = useI18n();\n\n///////////////////////////////\n// Menu\n///////////////////////////////\nconst props = defineProps<{\n open?: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: 'update:open', open: boolean): void;\n}>();\n\nconst menuNav = useTemplateRef('menuNav');\nlet previousFocus: HTMLElement | null = null;\n\nwatch(() => props.open, async open => {\n if (open) {\n previousFocus = document.activeElement as HTMLElement | null;\n setTimeout(() => document.addEventListener('click', openOnClick), 200);\n document.addEventListener('keydown', closeOnEscape);\n // Wait for the menu to no longer be inert before focusing\n await nextTick();\n menuNav.value?.querySelector('input')?.focus();\n } else {\n removeListeners();\n // Only give focus back if it would otherwise be lost (inside the\n // closed menu, or on body), to avoid stealing it after a click\n // elsewhere\n const active = document.activeElement;\n if (active === document.body || menuNav.value?.contains(active)) {\n previousFocus?.focus();\n }\n }\n});\n\nonUnmounted(removeListeners);\n\nfunction removeListeners(): void {\n document.removeEventListener('click', openOnClick);\n document.removeEventListener('keydown', closeOnEscape);\n}\n\nfunction close(): void {\n emit('update:open', false);\n}\n\nfunction openOnClick(event: MouseEvent) {\n const menu = menuNav.value;\n if (props.open && event.target && !menu?.contains(event.target as Node)) {\n close();\n }\n}\n\nfunction closeOnEscape(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n close();\n }\n}\n\nfunction prefersReducedMotion(): boolean {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n\n///////////////////////////////\n// Display list\n///////////////////////////////\nconst search = ref('');\nconst authStore = useAuthStore();\nconst { subOrganisations, selectSubOrganisation } = useSubOrganisations(toRef(authStore, 'authOrgaId'));\n\nfunction normalize(str: string): string {\n // Separate accented character in letter/diacritic, then remove the\n // diacritic\n return str.toUpperCase().normalize(\"NFD\").replace(/\\p{Diacritic}/gu, '');\n}\n\nconst normalizedSearch = computed((): string => {\n return normalize(search.value);\n});\n\nconst userSubOrgas = computed((): Array<SubOrganisation> => {\n const userScope = authStore.userScope;\n return subOrganisations.value\n .filter(sub => sub.name.includes(normalizedSearch.value))\n .filter(sub => userScope.includes(sub.id))\n .sort((o1, o2) => o1.name.localeCompare(o2.name))\n ;\n});\n\nconst showFirstList = computed((): boolean => {\n return userSubOrgas.value.length > 0;\n});\n\nconst secondListTitle = computed((): string => {\n const userScope = authStore.userScope;\n if (userScope.length === 0) {\n return t('RightsScopeMenu - Second list - Title unscoped');\n } else {\n return t('RightsScopeMenu - Second list - Title scoped');\n }\n});\n\nconst showLetters = computed((): boolean => {\n return subOrganisations.value.length > 10;\n});\n\nconst subOrgaByLetter = computed((): Map<string, Array<SubOrganisation>> => {\n const data: Map<string, Array<SubOrganisation>> = new Map();\n\n const filtered = subOrganisations.value\n .filter(sub => sub.name.includes(normalizedSearch.value))\n .filter(sub => !userSubOrgas.value.includes(sub))\n .sort((o1, o2) => o1.name.localeCompare(o2.name))\n ;\n\n if (showLetters.value) {\n filtered.forEach((sub: SubOrganisation) => {\n const firstLetter = sub.name[0];\n if (data.has(firstLetter)) {\n const present = data.get(firstLetter);\n present!.push(sub);\n } else {\n data.set(firstLetter, [sub]);\n }\n });\n } else {\n data.set(null, filtered);\n }\n\n data.values().forEach(ary => ary.sort((a, b) => a.name.localeCompare(b.name)));\n\n return data;\n});\n\nconst noResult = computed((): boolean => {\n return !showFirstList.value\n && [...subOrgaByLetter.value.values()].every(ary => ary.length === 0);\n});\n\nfunction scrollToLetter(letter: string): void {\n if (!subOrgaByLetter.value.has(letter)) {\n return;\n }\n const container = menuNav.value;\n const target: HTMLElement | null | undefined = container?.querySelector(`#suborga-letter-${letter}`);\n if (container && target) {\n container.scrollTo({\n top: target.offsetTop,\n behavior: prefersReducedMotion() ? 'auto' : 'smooth'\n });\n target.focus({ preventScroll: true });\n }\n}\n\n///////////////////////////////\n// Sub orga selection\n///////////////////////////////\nfunction select(org: SubOrganisation): void {\n selectSubOrganisation(org);\n emit('update:open', false);\n}\n</script>\n\n<style scoped lang=\"scss\">\n#suborga-list-menu-btn {\n transition: rotate 0.3s ease-out;\n \n &.active {\n rotate: 90deg;\n }\n}\n\n#suborga-list-menu {\n z-index: 100;\n \n --width: 30dvw;\n\n // Positioning\n position: fixed;\n left: 0;\n top: 0;\n width: var(--width);\n height: 100dvh;\n\n // Margins\n padding: 1.5em 0;\n\n // Overflow\n overflow-y: auto;\n\n // Style\n background-color: white;\n //border-radius: 0 var(--octopus-border-radius);\n border-right: 2px solid var(--octopus-primary);\n\n // Animation\n @media (prefers-reduced-motion: no-preference) {\n transition: left 0.6s ease-out;\n }\n\n &.shown {\n left: 0;\n }\n\n &:not(.shown) {\n left: calc(var(--width) * -1);\n }\n\n @media(width <= 960px) {\n --width: 100dvw;\n }\n}\n\n.close-btn {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n}\n\nh4 {\n margin-left: 10px;\n color: var(--octopus-primary);\n}\n\n.letter {\n color: var(--pm-accent);\n font-weight: bold;\n font-size: 1em;\n background-color: oklch(from var(--pm-accent) l c h / 15%);\n}\n\n.search {\n padding: 0 1rem;\n\n h3 {\n color: var(--pm-accent);\n text-align: center;\n }\n}\n\n.letters {\n display: grid;\n grid-template-columns: repeat(9, 28px);\n width: fit-content;\n margin: auto;\n\n .letter {\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n color: black;\n margin: 7px 0 8px;\n width: 24px;\n height: 24px;\n border-radius: 8px;\n font-size: 12px;\n padding: 0 !important;\n cursor: pointer;\n\n &:disabled {\n background-color: #EBF3FE;\n cursor: not-allowed;\n }\n }\n}\n\n.suborga-list {\n .letter {\n padding: 0.1rem 1rem;\n color: var(--octopus-primary);\n }\n\n .suborga {\n display: block;\n padding: 0.5rem 1.4rem;\n cursor: pointer;\n\n &:not(:last-child) {\n border-bottom: 1px solid var(--octopus-primary-really-transparent);\n }\n }\n}\n</style>\n","<template>\n <div\n id=\"suborga-list-menu\"\n ref=\"menuNav\"\n role=\"dialog\"\n aria-labelledby=\"suborga-list-menu-title\"\n :class=\"{ shown: open }\"\n :inert=\"!open\"\n >\n <button\n type=\"button\"\n class=\"btn-transparent close-btn\"\n @click=\"close\"\n >\n <CloseIcon :title=\"t('Close')\" />\n </button>\n\n <div class=\"search\">\n <h3 id=\"suborga-list-menu-title\">\n {{ t('RightsScopeMenu - Title') }}\n </h3>\n <ClassicInputText\n v-model:text-init=\"search\"\n :placeholder=\"t('RightsScopeMenu - Search')\"\n can-be-null\n />\n </div>\n\n <div v-if=\"showFirstList\" class=\"suborga-list mb-4\">\n <h4>{{ t('RightsScopeMenu - First list - Title') }}</h4>\n <span\n v-for=\"suborga in userSubOrgas\"\n :key=\"suborga.id\"\n class=\"suborga\"\n @click=\"select(suborga)\"\n >\n {{ suborga.name }}\n </span>\n </div>\n\n <div class=\"suborga-list\">\n <h4>{{ secondListTitle }}</h4>\n\n <div v-if=\"showLetters\" class=\"letters mt-2\">\n <button\n v-for=\"letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\"\n :key=\"letter\"\n type=\"button\"\n class=\"letter\"\n :title=\"subOrgaByLetter.has(letter) ? undefined : t('RightsScopeMenu - Letters - No sub orga for letter')\"\n :disabled=\"!subOrgaByLetter.has(letter)\"\n @click=\"scrollToLetter(letter)\"\n >\n {{ letter }}\n </button>\n </div>\n\n <div\n v-for=\"[letter, suborgaForLetter] in subOrgaByLetter\"\n :key=\"'suborgas-' + letter\"\n >\n <div\n :id=\"'suborga-letter-' + letter\"\n class=\"letter\"\n tabindex=\"-1\"\n >\n {{ letter }}\n </div>\n <span\n v-for=\"suborga in suborgaForLetter\"\n :key=\"suborga.id\"\n class=\"suborga\"\n @click=\"select(suborga)\"\n >\n {{ suborga.name }}\n </span>\n </div>\n </div>\n\n <p role=\"status\" class=\"text-indic px-3\">\n <template v-if=\"noResult\">\n {{ t('RightsScopeMenu - No result') }}\n </template>\n </p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, nextTick, onUnmounted, ref, toRef, useTemplateRef, watch } from 'vue';\nimport { getClassicInputText, useAuthStore } from '@saooti/octopus-sdk'; \nimport { SubOrganisation, useSubOrganisations } from '../composable/useSubOrganisations';\nimport { useI18n } from 'vue-i18n';\nimport CloseIcon from 'vue-material-design-icons/Close.vue';\n\nconst ClassicInputText = defineAsyncComponent(getClassicInputText);\n\nconst { t } = useI18n();\n\n///////////////////////////////\n// Menu\n///////////////////////////////\nconst props = defineProps<{\n open?: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: 'update:open', open: boolean): void;\n}>();\n\nconst menuNav = useTemplateRef('menuNav');\nlet previousFocus: HTMLElement | null = null;\n\nwatch(() => props.open, async open => {\n if (open) {\n previousFocus = document.activeElement as HTMLElement | null;\n setTimeout(() => document.addEventListener('click', openOnClick), 200);\n document.addEventListener('keydown', closeOnEscape);\n // Wait for the menu to no longer be inert before focusing\n await nextTick();\n menuNav.value?.querySelector('input')?.focus();\n } else {\n removeListeners();\n // Only give focus back if it would otherwise be lost (inside the\n // closed menu, or on body), to avoid stealing it after a click\n // elsewhere\n const active = document.activeElement;\n if (active === document.body || menuNav.value?.contains(active)) {\n previousFocus?.focus();\n }\n }\n});\n\nonUnmounted(removeListeners);\n\nfunction removeListeners(): void {\n document.removeEventListener('click', openOnClick);\n document.removeEventListener('keydown', closeOnEscape);\n}\n\nfunction close(): void {\n emit('update:open', false);\n}\n\nfunction openOnClick(event: MouseEvent) {\n const menu = menuNav.value;\n if (props.open && event.target && !menu?.contains(event.target as Node)) {\n close();\n }\n}\n\nfunction closeOnEscape(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n close();\n }\n}\n\nfunction prefersReducedMotion(): boolean {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n\n///////////////////////////////\n// Display list\n///////////////////////////////\nconst search = ref('');\nconst authStore = useAuthStore();\nconst { subOrganisations, selectSubOrganisation } = useSubOrganisations(toRef(authStore, 'authOrgaId'));\n\nfunction normalize(str: string): string {\n // Separate accented character in letter/diacritic, then remove the\n // diacritic\n return str.toUpperCase().normalize(\"NFD\").replace(/\\p{Diacritic}/gu, '');\n}\n\nconst normalizedSearch = computed((): string => {\n return normalize(search.value);\n});\n\nconst userSubOrgas = computed((): Array<SubOrganisation> => {\n const userScope = authStore.userScope;\n return subOrganisations.value\n .filter(sub => sub.name.includes(normalizedSearch.value))\n .filter(sub => userScope.includes(sub.id))\n .sort((o1, o2) => o1.name.localeCompare(o2.name))\n ;\n});\n\nconst showFirstList = computed((): boolean => {\n return userSubOrgas.value.length > 0;\n});\n\nconst secondListTitle = computed((): string => {\n const userScope = authStore.userScope;\n if (userScope.length === 0) {\n return t('RightsScopeMenu - Second list - Title unscoped');\n } else {\n return t('RightsScopeMenu - Second list - Title scoped');\n }\n});\n\nconst showLetters = computed((): boolean => {\n return subOrganisations.value.length > 10;\n});\n\nconst subOrgaByLetter = computed((): Map<string, Array<SubOrganisation>> => {\n const data: Map<string, Array<SubOrganisation>> = new Map();\n\n const filtered = subOrganisations.value\n .filter(sub => sub.name.includes(normalizedSearch.value))\n .filter(sub => !userSubOrgas.value.includes(sub))\n .sort((o1, o2) => o1.name.localeCompare(o2.name))\n ;\n\n if (showLetters.value) {\n filtered.forEach((sub: SubOrganisation) => {\n const firstLetter = sub.name[0];\n if (data.has(firstLetter)) {\n const present = data.get(firstLetter);\n present!.push(sub);\n } else {\n data.set(firstLetter, [sub]);\n }\n });\n } else {\n data.set(null, filtered);\n }\n\n data.values().forEach(ary => ary.sort((a, b) => a.name.localeCompare(b.name)));\n\n return data;\n});\n\nconst noResult = computed((): boolean => {\n return !showFirstList.value\n && [...subOrgaByLetter.value.values()].every(ary => ary.length === 0);\n});\n\nfunction scrollToLetter(letter: string): void {\n if (!subOrgaByLetter.value.has(letter)) {\n return;\n }\n const container = menuNav.value;\n const target: HTMLElement | null | undefined = container?.querySelector(`#suborga-letter-${letter}`);\n if (container && target) {\n container.scrollTo({\n top: target.offsetTop,\n behavior: prefersReducedMotion() ? 'auto' : 'smooth'\n });\n target.focus({ preventScroll: true });\n }\n}\n\n///////////////////////////////\n// Sub orga selection\n///////////////////////////////\nfunction select(org: SubOrganisation): void {\n selectSubOrganisation(org);\n emit('update:open', false);\n}\n</script>\n\n<style scoped lang=\"scss\">\n#suborga-list-menu-btn {\n transition: rotate 0.3s ease-out;\n \n &.active {\n rotate: 90deg;\n }\n}\n\n#suborga-list-menu {\n z-index: 100;\n \n --width: 30dvw;\n\n // Positioning\n position: fixed;\n left: 0;\n top: 0;\n width: var(--width);\n height: 100dvh;\n\n // Margins\n padding: 1.5em 0;\n\n // Overflow\n overflow-y: auto;\n\n // Style\n background-color: white;\n //border-radius: 0 var(--octopus-border-radius);\n border-right: 2px solid var(--octopus-primary);\n\n // Animation\n @media (prefers-reduced-motion: no-preference) {\n transition: left 0.6s ease-out;\n }\n\n &.shown {\n left: 0;\n }\n\n &:not(.shown) {\n left: calc(var(--width) * -1);\n }\n\n @media(width <= 960px) {\n --width: 100dvw;\n }\n}\n\n.close-btn {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n}\n\nh4 {\n margin-left: 10px;\n color: var(--octopus-primary);\n}\n\n.letter {\n color: var(--pm-accent);\n font-weight: bold;\n font-size: 1em;\n background-color: oklch(from var(--pm-accent) l c h / 15%);\n}\n\n.search {\n padding: 0 1rem;\n\n h3 {\n color: var(--pm-accent);\n text-align: center;\n }\n}\n\n.letters {\n display: grid;\n grid-template-columns: repeat(9, 28px);\n width: fit-content;\n margin: auto;\n\n .letter {\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n color: black;\n margin: 7px 0 8px;\n width: 24px;\n height: 24px;\n border-radius: 8px;\n font-size: 12px;\n padding: 0 !important;\n cursor: pointer;\n\n &:disabled {\n background-color: #EBF3FE;\n cursor: not-allowed;\n }\n }\n}\n\n.suborga-list {\n .letter {\n padding: 0.1rem 1rem;\n color: var(--octopus-primary);\n }\n\n .suborga {\n display: block;\n padding: 0.5rem 1.4rem;\n cursor: pointer;\n\n &:not(:last-child) {\n border-bottom: 1px solid var(--octopus-primary-really-transparent);\n }\n }\n}\n</style>\n","<template>\n <div class=\"top-bar-grid header-content\" :class=\"{ scrolled: titleIsDisplayed }\">\n <div class=\"d-flex align-items-center\">\n <!-- Logo to the left -->\n <router-link\n class=\"top-bar-logo d-block\"\n :to=\"{\n name: 'home',\n query: getQueriesRouter('home'),\n }\"\n :title=\"t('Home')\"\n >\n <img\n v-if=\"!filterStore.filterOrgaId || '' === imgUrl\"\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n width=\"140\"\n height=\"50\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n <img\n v-else\n :src=\"useProxyImageUrl(imgUrl, '', '80')\"\n aria-hidden=\"true\"\n alt=\"\"\n class=\"client-logo\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : ''\"\n >\n </router-link>\n\n <RightsScopeMenu v-model:open=\"menuOpen\" />\n <RightsScopeSelector\n class=\"ms-4\"\n :open=\"menuOpen\"\n @change=\"menuOpen = true\"\n />\n </div>\n\n <h1 v-if=\"titleIsDisplayed\" class=\"text-truncate m-0 align-self-center\">\n {{ titleDisplay }}\n </h1>\n\n <!-- Right section -->\n <div\n class=\"d-flex right-section\"\n :class=\"[\n inContentDisplayPage || isPhone\n ? 'flex-row-reverse align-items-center'\n : 'flex-column align-items-end',\n ]\"\n >\n <!-- Logo to the right -->\n <template v-if=\"filterStore.filterOrgaId && '' !== imgUrl\">\n <img\n v-if=\"authStore.isGarRole\"\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n width=\"100\"\n height=\"29\"\n class=\"ms-2\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n <a\n v-else\n href=\"https://www.saooti.com/\"\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n :title=\"t('New window', {text: 'Saooti'})\"\n >\n <img\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n title=\"Saooti\"\n width=\"100\"\n height=\"29\"\n class=\"ms-2\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n </a>\n </template>\n\n <div role=\"navigation\" class=\"d-flex align-items-center justify-content-end flex-grow-1\">\n <nav :aria-label=\"t('Site menu')\">\n <ul class=\"d-flex\">\n <template v-for=\"link in routerLinkArray\" :key=\"link.routeName\">\n <li v-if=\"link.condition\" class=\"li-style-none\">\n <router-link\n v-show=\"!isPhone\"\n :to=\"{\n name: link.routeName,\n query: getQueriesRouter(link.routeName),\n }\"\n class=\"link-hover py-2 px-3\"\n >\n {{ link.title }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n <button\n v-show=\"!isPhone && !inContentDisplayPage\"\n id=\"more-dropdown\"\n :title=\"t('More')\"\n class=\"d-flex-column flex-nowrap align-items-center btn-transparent py-2 px-3 text-white\"\n >\n <span class=\"link-hover\">\n {{ t(\"More\") }}\n </span>\n <ChevronDownIcon />\n </button>\n <ClassicPopover\n target=\"more-dropdown\"\n :only-click=\"true\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :is-top-layer=\"true\"\n >\n <nav class=\"d-flex flex-column\" :aria-label=\"t('Site menu')\">\n <ul class=\"p-0 m-0\">\n <template v-for=\"link in routerLinkInsideArray\" :key=\"link.routeName\">\n <li\n v-if=\"link.condition\"\n class=\"li-style-none\"\n >\n <router-link\n :to=\"{\n name: link.routeName,\n query: getQueriesRouter(link.routeName),\n }\"\n class=\"p-1 octopus-dropdown-item\"\n >\n {{ link.title }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n </ClassicPopover>\n\n <MobileMenu\n :is-education=\"generalStore.platformEducation\"\n :show=\"mobileMenuDisplay\"\n :not-podcast-and-emission=\"inContentDisplayPage && !scrolled\"\n />\n <HomeDropdown\n :is-education=\"generalStore.platformEducation\"\n :mobile-menu-display=\"mobileMenuDisplay\"\n v-bind=\"options?.homeDropdown\"\n />\n <router-link\n v-show=\"!isPhone && !inContentDisplayPage\"\n :title=\"t('Search')\"\n :to=\"{\n name: 'podcasts',\n }\"\n class=\"btn admin-button m-1 text-blue-octopus\"\n role=\"search\"\n >\n <MagnifyIcon :size=\"30\" />\n </router-link>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport MagnifyIcon from \"vue-material-design-icons/Magnify.vue\";\nimport { useRubriquesFilterComputed } from \"../composable/route/useRubriquesFilterComputed\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport HomeDropdown, { type HomeDropdownProps } from \"./HomeDropdown.vue\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport ClassicPopover from \"../misc/ClassicPopover.vue\";\nimport { defineAsyncComponent, computed, ref } from \"vue\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport RightsScopeSelector from \"./RightsScopeSelector.vue\";\nimport RightsScopeMenu from \"./RightsScopeMenu.vue\"; \nconst MobileMenu = defineAsyncComponent(() => import(\"./MobileMenu.vue\"));\n\nexport interface TopBarMainContentOptions {\n homeDropdown?: HomeDropdownProps;\n}\n\nexport interface TopBarMainContentProps {\n isPhone?: boolean;\n titleDisplay?: string;\n scrolled?: boolean;\n};\n\n//Props \nconst props = defineProps<TopBarMainContentProps & {\n /** Props for subcomponents */\n options?: TopBarMainContentOptions;\n}>();\n\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { rubriqueQueryParam } = useRubriquesFilterComputed();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\n\nconst menuOpen = ref(false);\n\n//Computed\nconst mobileMenuDisplay = computed(() => props.isPhone || inContentDisplayPage.value);\nconst titleIsDisplayed = computed(() => inContentDisplayPage.value && props.scrolled && !props.isPhone);\nconst inContentDisplayPage = computed(() => 0 !== props.titleDisplay.length);\nconst routerLinkArray = computed(() => [{\n title: t(\"Radio & Live\"),\n routeName: \"lives\",\n condition:\n !inContentDisplayPage.value &&\n (state.generalParameters.isLiveTab as boolean) &&\n ((filterStore.filterOrgaId && filterStore.filterLive) || !filterStore.filterOrgaId),\n}, {\n title: t(\"Podcasts\"),\n routeName: \"podcasts\",\n condition:\n !inContentDisplayPage.value ||\n (inContentDisplayPage.value && !props.scrolled),\n}, {\n title: t(\"Emissions\"),\n routeName: \"emissions\",\n condition:\n !inContentDisplayPage.value ||\n (inContentDisplayPage.value && !props.scrolled),\n}]);\n\nconst routerLinkInsideArray = computed(() =>{\n return [\n {\n title: t(\"Speakers\"),\n routeName: \"participants\",\n condition: true,\n },\n {\n title: t(\"Playlists\"),\n routeName: \"playlists\",\n condition: true,\n },\n {\n title: t(\"Productors\"),\n routeName: \"productors\",\n condition:\n !state.generalParameters.podcastmaker && (!filterStore.filterOrgaId || generalStore.platformEducation),\n },\n ];\n});\nconst logoUrl = computed(() =>{\n if (generalStore.platformEducation) {\n return \"/img/logo_education_white.svg\";\n }\n return props.isPhone\n ? \"/img/logo_octopus_bubble.svg\"\n : \"/img/logo_saooti_play_white.svg\";\n});\nconst imgUrl = computed(() =>{\n if (!filterStore.filterImgUrl?.includes(\"emptypodcast\")){\n return `${filterStore.filterImgUrl}`;\n }\n return \"\";\n});\n \n//Methods\nfunction getQueriesRouter(routeName: string) {\n if (\"podcasts\" !== routeName && \"emissions\" !== routeName && \"home\" !== routeName) {\n return { productor: filterStore.filterOrgaId };\n }\n return {\n productor: filterStore.filterOrgaId,\n iabId: filterStore.filterIab?.id,\n rubriquesId: rubriqueQueryParam.value,\n };\n}\n</script>\n\n<style scoped lang=\"scss\">\n.top-bar-grid {\n display: grid;\n grid-template-columns: 1fr 5fr;\n padding: 0 1rem 0 0.5rem;\n\n &.scrolled {\n grid-template-columns: 1fr 2fr 1fr;\n }\n\n @media (width <= 450px) {\n padding: 0 0.5rem;\n }\n\n .link-hover {\n color: white;\n font-weight: bold;\n font-size: 0.93rem;\n text-decoration: underline;\n text-decoration-color: transparent;\n transition: text-decoration-color 250ms;\n text-underline-offset: 8px;\n\n &.link-hover:hover,\n &.link-hover.router-link-exact-active.router-link-active {\n color: white;\n text-decoration-color: white;\n }\n }\n\n .client-logo {\n border-radius: var(--octopus-border-radius);\n }\n\n .top-bar-logo img {\n max-width: 140px !important;\n max-height: 4rem;\n height: 4rem;\n\n &.education-logo {\n height: auto;\n }\n\n @media (width <= 650px) {\n max-height: 2rem;\n }\n }\n\n .octopus-logo {\n @media (width <= 960px) {\n max-width: 30px !important;\n }\n }\n}\n\n.right-section {\n padding-top: 0.5rem;\n}\n</style>\n","<template>\n <div class=\"top-bar-grid header-content\" :class=\"{ scrolled: titleIsDisplayed }\">\n <div class=\"d-flex align-items-center\">\n <!-- Logo to the left -->\n <router-link\n class=\"top-bar-logo d-block\"\n :to=\"{\n name: 'home',\n query: getQueriesRouter('home'),\n }\"\n :title=\"t('Home')\"\n >\n <img\n v-if=\"!filterStore.filterOrgaId || '' === imgUrl\"\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n width=\"140\"\n height=\"50\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n <img\n v-else\n :src=\"useProxyImageUrl(imgUrl, '', '80')\"\n aria-hidden=\"true\"\n alt=\"\"\n class=\"client-logo\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : ''\"\n >\n </router-link>\n\n <RightsScopeMenu v-model:open=\"menuOpen\" />\n <RightsScopeSelector\n class=\"ms-4\"\n :open=\"menuOpen\"\n @change=\"menuOpen = true\"\n />\n </div>\n\n <h1 v-if=\"titleIsDisplayed\" class=\"text-truncate m-0 align-self-center\">\n {{ titleDisplay }}\n </h1>\n\n <!-- Right section -->\n <div\n class=\"d-flex right-section\"\n :class=\"[\n inContentDisplayPage || isPhone\n ? 'flex-row-reverse align-items-center'\n : 'flex-column align-items-end',\n ]\"\n >\n <!-- Logo to the right -->\n <template v-if=\"filterStore.filterOrgaId && '' !== imgUrl\">\n <img\n v-if=\"authStore.isGarRole\"\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n width=\"100\"\n height=\"29\"\n class=\"ms-2\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n <a\n v-else\n href=\"https://www.saooti.com/\"\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n :title=\"t('New window', {text: 'Saooti'})\"\n >\n <img\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n title=\"Saooti\"\n width=\"100\"\n height=\"29\"\n class=\"ms-2\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n </a>\n </template>\n\n <div role=\"navigation\" class=\"d-flex align-items-center justify-content-end flex-grow-1\">\n <nav :aria-label=\"t('Site menu')\">\n <ul class=\"d-flex\">\n <template v-for=\"link in routerLinkArray\" :key=\"link.routeName\">\n <li v-if=\"link.condition\" class=\"li-style-none\">\n <router-link\n v-show=\"!isPhone\"\n :to=\"{\n name: link.routeName,\n query: getQueriesRouter(link.routeName),\n }\"\n class=\"link-hover py-2 px-3\"\n >\n {{ link.title }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n <button\n v-show=\"!isPhone && !inContentDisplayPage\"\n id=\"more-dropdown\"\n :title=\"t('More')\"\n class=\"d-flex-column flex-nowrap align-items-center btn-transparent py-2 px-3 text-white\"\n >\n <span class=\"link-hover\">\n {{ t(\"More\") }}\n </span>\n <ChevronDownIcon />\n </button>\n <ClassicPopover\n target=\"more-dropdown\"\n :only-click=\"true\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :is-top-layer=\"true\"\n >\n <nav class=\"d-flex flex-column\" :aria-label=\"t('Site menu')\">\n <ul class=\"p-0 m-0\">\n <template v-for=\"link in routerLinkInsideArray\" :key=\"link.routeName\">\n <li\n v-if=\"link.condition\"\n class=\"li-style-none\"\n >\n <router-link\n :to=\"{\n name: link.routeName,\n query: getQueriesRouter(link.routeName),\n }\"\n class=\"p-1 octopus-dropdown-item\"\n >\n {{ link.title }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n </ClassicPopover>\n\n <MobileMenu\n :is-education=\"generalStore.platformEducation\"\n :show=\"mobileMenuDisplay\"\n :not-podcast-and-emission=\"inContentDisplayPage && !scrolled\"\n />\n <HomeDropdown\n :is-education=\"generalStore.platformEducation\"\n :mobile-menu-display=\"mobileMenuDisplay\"\n v-bind=\"options?.homeDropdown\"\n />\n <router-link\n v-show=\"!isPhone && !inContentDisplayPage\"\n :title=\"t('Search')\"\n :to=\"{\n name: 'podcasts',\n }\"\n class=\"btn admin-button m-1 text-blue-octopus\"\n role=\"search\"\n >\n <MagnifyIcon :size=\"30\" />\n </router-link>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport MagnifyIcon from \"vue-material-design-icons/Magnify.vue\";\nimport { useRubriquesFilterComputed } from \"../composable/route/useRubriquesFilterComputed\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport HomeDropdown, { type HomeDropdownProps } from \"./HomeDropdown.vue\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport ClassicPopover from \"../misc/ClassicPopover.vue\";\nimport { defineAsyncComponent, computed, ref } from \"vue\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport RightsScopeSelector from \"./RightsScopeSelector.vue\";\nimport RightsScopeMenu from \"./RightsScopeMenu.vue\"; \nconst MobileMenu = defineAsyncComponent(() => import(\"./MobileMenu.vue\"));\n\nexport interface TopBarMainContentOptions {\n homeDropdown?: HomeDropdownProps;\n}\n\nexport interface TopBarMainContentProps {\n isPhone?: boolean;\n titleDisplay?: string;\n scrolled?: boolean;\n};\n\n//Props \nconst props = defineProps<TopBarMainContentProps & {\n /** Props for subcomponents */\n options?: TopBarMainContentOptions;\n}>();\n\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { rubriqueQueryParam } = useRubriquesFilterComputed();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\n\nconst menuOpen = ref(false);\n\n//Computed\nconst mobileMenuDisplay = computed(() => props.isPhone || inContentDisplayPage.value);\nconst titleIsDisplayed = computed(() => inContentDisplayPage.value && props.scrolled && !props.isPhone);\nconst inContentDisplayPage = computed(() => 0 !== props.titleDisplay.length);\nconst routerLinkArray = computed(() => [{\n title: t(\"Radio & Live\"),\n routeName: \"lives\",\n condition:\n !inContentDisplayPage.value &&\n (state.generalParameters.isLiveTab as boolean) &&\n ((filterStore.filterOrgaId && filterStore.filterLive) || !filterStore.filterOrgaId),\n}, {\n title: t(\"Podcasts\"),\n routeName: \"podcasts\",\n condition:\n !inContentDisplayPage.value ||\n (inContentDisplayPage.value && !props.scrolled),\n}, {\n title: t(\"Emissions\"),\n routeName: \"emissions\",\n condition:\n !inContentDisplayPage.value ||\n (inContentDisplayPage.value && !props.scrolled),\n}]);\n\nconst routerLinkInsideArray = computed(() =>{\n return [\n {\n title: t(\"Speakers\"),\n routeName: \"participants\",\n condition: true,\n },\n {\n title: t(\"Playlists\"),\n routeName: \"playlists\",\n condition: true,\n },\n {\n title: t(\"Productors\"),\n routeName: \"productors\",\n condition:\n !state.generalParameters.podcastmaker && (!filterStore.filterOrgaId || generalStore.platformEducation),\n },\n ];\n});\nconst logoUrl = computed(() =>{\n if (generalStore.platformEducation) {\n return \"/img/logo_education_white.svg\";\n }\n return props.isPhone\n ? \"/img/logo_octopus_bubble.svg\"\n : \"/img/logo_saooti_play_white.svg\";\n});\nconst imgUrl = computed(() =>{\n if (!filterStore.filterImgUrl?.includes(\"emptypodcast\")){\n return `${filterStore.filterImgUrl}`;\n }\n return \"\";\n});\n \n//Methods\nfunction getQueriesRouter(routeName: string) {\n if (\"podcasts\" !== routeName && \"emissions\" !== routeName && \"home\" !== routeName) {\n return { productor: filterStore.filterOrgaId };\n }\n return {\n productor: filterStore.filterOrgaId,\n iabId: filterStore.filterIab?.id,\n rubriquesId: rubriqueQueryParam.value,\n };\n}\n</script>\n\n<style scoped lang=\"scss\">\n.top-bar-grid {\n display: grid;\n grid-template-columns: 1fr 5fr;\n padding: 0 1rem 0 0.5rem;\n\n &.scrolled {\n grid-template-columns: 1fr 2fr 1fr;\n }\n\n @media (width <= 450px) {\n padding: 0 0.5rem;\n }\n\n .link-hover {\n color: white;\n font-weight: bold;\n font-size: 0.93rem;\n text-decoration: underline;\n text-decoration-color: transparent;\n transition: text-decoration-color 250ms;\n text-underline-offset: 8px;\n\n &.link-hover:hover,\n &.link-hover.router-link-exact-active.router-link-active {\n color: white;\n text-decoration-color: white;\n }\n }\n\n .client-logo {\n border-radius: var(--octopus-border-radius);\n }\n\n .top-bar-logo img {\n max-width: 140px !important;\n max-height: 4rem;\n height: 4rem;\n\n &.education-logo {\n height: auto;\n }\n\n @media (width <= 650px) {\n max-height: 2rem;\n }\n }\n\n .octopus-logo {\n @media (width <= 960px) {\n max-width: 30px !important;\n }\n }\n}\n\n.right-section {\n padding-top: 0.5rem;\n}\n</style>\n","<template>\n <header\n role=\"banner\"\n class=\"header-saooti-play\"\n :style=\"headerBackgroundImage\"\n :class=\"[generalStore.contentToDisplay ? 'header-img-bg':'bg-gradient', scrolled? 'scrolled':'', needToBlur ? 'header-force-blur':'']\"\n >\n <TopBarMainContent\n :is-phone=\"isPhone\"\n :scrolled=\"scrolled\"\n :title-display=\"titleToDisplay\"\n style=\"height: var(--header-size);\"\n :class=\"headerBackgroundImage.length ? 'header-opacity':''\"\n :options=\"options?.topBarMainContent\"\n />\n </header>\n\n <div\n v-if=\"generalStore.contentToDisplay\"\n class=\"header-content-bg\"\n :style=\"headerBackgroundImage\"\n :class=\"{ scrolled: scrolled, 'header-force-blur':needToBlur }\"\n >\n <div class=\"header-additional-content header-content\">\n <h1 v-if=\"!scrolled\" class=\"text-truncate\">\n {{ titleToDisplay }}\n </h1>\n <SubscribeButtons\n v-if=\"!authStore.isGarRole && content\"\n v-show=\"!scrolled\"\n :content=\"content\"\n :window-width=\"windowWidth\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport TopBarMainContent, { type TopBarMainContentOptions } from \"./TopBarMainContent.vue\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, onMounted, ref, watch } from \"vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport {useResizePhone} from \"../composable/useResizePhone\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport axios from \"axios\";\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../display/sharing/SubscribeButtons.vue\"),\n);\n\ndefineProps<{\n options?: {\n topBarMainContent?: TopBarMainContentOptions\n }\n}>();\n\n//Data \nconst scrolled = ref(false);\nconst oldScrollY = ref(0);\nconst minScroll = ref(0);\nconst headerBackgroundImage = ref(\"\");\nconst needToBlur = ref(false);\n\n\n//Composables\nconst { isPhone, windowWidth } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\n\n//Computed\nconst titleToDisplay = computed(() => {\n if ((generalStore.contentToDisplay as Podcast)?.podcastId) {\n return (generalStore.contentToDisplay as Podcast).emission.name;\n }\n if ((generalStore.contentToDisplay as Playlist)?.playlistId) {\n return (generalStore.contentToDisplay as Playlist).title;\n }\n if ((generalStore.contentToDisplay as Emission)?.emissionId) {\n return (generalStore.contentToDisplay as Emission).name;\n }\n if ((generalStore.contentToDisplay as Canal)?.id) {\n return (generalStore.contentToDisplay as Canal).name;\n }\n return \"\";\n});\n\n/** The element displayed by the subscribe buttons */\nconst content = computed(() => {\n if ((generalStore.contentToDisplay as Podcast)?.podcastId) {\n return (generalStore.contentToDisplay as Podcast).emission;\n }\n if ((generalStore.contentToDisplay as Emission)?.emissionId) {\n return generalStore.contentToDisplay as Emission;\n }\n if ((generalStore.contentToDisplay as Playlist)?.playlistId) {\n return generalStore.contentToDisplay as Playlist;\n }\n return null;\n});\n\n//Watch\nwatch(()=>generalStore.contentToDisplay, async () => {\n if(!generalStore.contentToDisplay){\n headerBackgroundImage.value = \"\";\n needToBlur.value = false;\n return;\n }\n const widthAsked = window.innerWidth > 960 ? \"1600\":\"1000\";\n const proxyUrl = useProxyImageUrl(generalStore.contentToDisplay.imageUrl, widthAsked, undefined, true);\n try {\n const result = await axios.get(proxyUrl);\n headerBackgroundImage.value = `background-image: url('${result.data}');`;\n needToBlur.value = result.data === generalStore.contentToDisplay.imageUrl;\n } catch {\n if (generalStore.contentToDisplay.imageUrl) {\n const url = encodeURI(generalStore.contentToDisplay.imageUrl);\n headerBackgroundImage.value = `background-image: url('${url}');`;\n needToBlur.value = true;\n } else {\n headerBackgroundImage.value = '';\n }\n }\n}, {deep: true, immediate: true});\n\n\nonMounted(()=>{\n window.addEventListener(\"scroll\", handleScroll);\n})\nonBeforeUnmount(() => {\n window.removeEventListener(\"scroll\", handleScroll);\n})\n\n\n//Methods\nfunction handleScroll(): void {\n if (\n window.scrollY - oldScrollY.value > 0 &&\n window.scrollY > 1 &&\n document.body.offsetHeight - window.innerHeight > 40\n ) {\n if (!scrolled.value) {\n scrolled.value = true;\n minScroll.value = 0;\n }\n } else if (\n window.scrollY - oldScrollY.value < 0 &&\n window.scrollY < 1 &&\n minScroll.value > 20\n ) {\n scrolled.value = false;\n minScroll.value = 0;\n }\n oldScrollY.value = window.scrollY;\n if (minScroll.value < window.scrollY) {\n minScroll.value = window.scrollY;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app {\n --header-size: 5rem;\n --header-additional-content-size: 22rem;\n @media (width <= 650px) {\n --header-size: 3.5rem;\n }\n @media (width <= 550px) {\n --header-additional-content-size: 13rem;\n }\n .header-saooti-play{\n z-index: 11;\n position: sticky;\n top: 0;\n background-color: black;\n &.header-img-bg{\n background-position: center -20vw;\n background-repeat: no-repeat;\n background-size: cover;\n }\n &.bg-gradient, &.scrolled{\n box-shadow: 0 2px 15px 5px var(--octopus-shadow) !important; \n }\n }\n .header-content-bg{\n background-position: center calc(calc(var(--header-size) * -1) - 20vw);\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n display: flex;\n background-color: black;\n transition: height 0.7s;\n height: calc(var(--header-additional-content-size) - var(--header-size));\n @starting-style {\n height: 0rem;\n }\n &.scrolled {\n height: 0rem;\n }\n }\n .header-additional-content{\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n width: 100%;\n }\n .header-additional-content, .header-opacity{\n background: oklch(0 0 0 / 0.5);\n }\n .header-force-blur .header-additional-content, .header-force-blur .header-opacity{\n backdrop-filter: blur(8px);\n }\n .header-content{\n *:focus-visible {\n box-shadow: 0 0 10px 1px white !important;\n }\n h1 {\n color: white !important;\n font-size: 1.8rem;\n margin: 2rem 5rem;\n @media (width <= 550px) {\n font-size: 1rem;\n margin: 1rem 0.5rem 0.5rem;\n }\n }\n .admin-button:hover,\n .share-btn:hover {\n background: white;\n }\n }\n}\n</style>\n","<template>\n <header\n role=\"banner\"\n class=\"header-saooti-play\"\n :style=\"headerBackgroundImage\"\n :class=\"[generalStore.contentToDisplay ? 'header-img-bg':'bg-gradient', scrolled? 'scrolled':'', needToBlur ? 'header-force-blur':'']\"\n >\n <TopBarMainContent\n :is-phone=\"isPhone\"\n :scrolled=\"scrolled\"\n :title-display=\"titleToDisplay\"\n style=\"height: var(--header-size);\"\n :class=\"headerBackgroundImage.length ? 'header-opacity':''\"\n :options=\"options?.topBarMainContent\"\n />\n </header>\n\n <div\n v-if=\"generalStore.contentToDisplay\"\n class=\"header-content-bg\"\n :style=\"headerBackgroundImage\"\n :class=\"{ scrolled: scrolled, 'header-force-blur':needToBlur }\"\n >\n <div class=\"header-additional-content header-content\">\n <h1 v-if=\"!scrolled\" class=\"text-truncate\">\n {{ titleToDisplay }}\n </h1>\n <SubscribeButtons\n v-if=\"!authStore.isGarRole && content\"\n v-show=\"!scrolled\"\n :content=\"content\"\n :window-width=\"windowWidth\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport TopBarMainContent, { type TopBarMainContentOptions } from \"./TopBarMainContent.vue\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, onMounted, ref, watch } from \"vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport {useResizePhone} from \"../composable/useResizePhone\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport axios from \"axios\";\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../display/sharing/SubscribeButtons.vue\"),\n);\n\ndefineProps<{\n options?: {\n topBarMainContent?: TopBarMainContentOptions\n }\n}>();\n\n//Data \nconst scrolled = ref(false);\nconst oldScrollY = ref(0);\nconst minScroll = ref(0);\nconst headerBackgroundImage = ref(\"\");\nconst needToBlur = ref(false);\n\n\n//Composables\nconst { isPhone, windowWidth } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\n\n//Computed\nconst titleToDisplay = computed(() => {\n if ((generalStore.contentToDisplay as Podcast)?.podcastId) {\n return (generalStore.contentToDisplay as Podcast).emission.name;\n }\n if ((generalStore.contentToDisplay as Playlist)?.playlistId) {\n return (generalStore.contentToDisplay as Playlist).title;\n }\n if ((generalStore.contentToDisplay as Emission)?.emissionId) {\n return (generalStore.contentToDisplay as Emission).name;\n }\n if ((generalStore.contentToDisplay as Canal)?.id) {\n return (generalStore.contentToDisplay as Canal).name;\n }\n return \"\";\n});\n\n/** The element displayed by the subscribe buttons */\nconst content = computed(() => {\n if ((generalStore.contentToDisplay as Podcast)?.podcastId) {\n return (generalStore.contentToDisplay as Podcast).emission;\n }\n if ((generalStore.contentToDisplay as Emission)?.emissionId) {\n return generalStore.contentToDisplay as Emission;\n }\n if ((generalStore.contentToDisplay as Playlist)?.playlistId) {\n return generalStore.contentToDisplay as Playlist;\n }\n return null;\n});\n\n//Watch\nwatch(()=>generalStore.contentToDisplay, async () => {\n if(!generalStore.contentToDisplay){\n headerBackgroundImage.value = \"\";\n needToBlur.value = false;\n return;\n }\n const widthAsked = window.innerWidth > 960 ? \"1600\":\"1000\";\n const proxyUrl = useProxyImageUrl(generalStore.contentToDisplay.imageUrl, widthAsked, undefined, true);\n try {\n const result = await axios.get(proxyUrl);\n headerBackgroundImage.value = `background-image: url('${result.data}');`;\n needToBlur.value = result.data === generalStore.contentToDisplay.imageUrl;\n } catch {\n if (generalStore.contentToDisplay.imageUrl) {\n const url = encodeURI(generalStore.contentToDisplay.imageUrl);\n headerBackgroundImage.value = `background-image: url('${url}');`;\n needToBlur.value = true;\n } else {\n headerBackgroundImage.value = '';\n }\n }\n}, {deep: true, immediate: true});\n\n\nonMounted(()=>{\n window.addEventListener(\"scroll\", handleScroll);\n})\nonBeforeUnmount(() => {\n window.removeEventListener(\"scroll\", handleScroll);\n})\n\n\n//Methods\nfunction handleScroll(): void {\n if (\n window.scrollY - oldScrollY.value > 0 &&\n window.scrollY > 1 &&\n document.body.offsetHeight - window.innerHeight > 40\n ) {\n if (!scrolled.value) {\n scrolled.value = true;\n minScroll.value = 0;\n }\n } else if (\n window.scrollY - oldScrollY.value < 0 &&\n window.scrollY < 1 &&\n minScroll.value > 20\n ) {\n scrolled.value = false;\n minScroll.value = 0;\n }\n oldScrollY.value = window.scrollY;\n if (minScroll.value < window.scrollY) {\n minScroll.value = window.scrollY;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app {\n --header-size: 5rem;\n --header-additional-content-size: 22rem;\n @media (width <= 650px) {\n --header-size: 3.5rem;\n }\n @media (width <= 550px) {\n --header-additional-content-size: 13rem;\n }\n .header-saooti-play{\n z-index: 11;\n position: sticky;\n top: 0;\n background-color: black;\n &.header-img-bg{\n background-position: center -20vw;\n background-repeat: no-repeat;\n background-size: cover;\n }\n &.bg-gradient, &.scrolled{\n box-shadow: 0 2px 15px 5px var(--octopus-shadow) !important; \n }\n }\n .header-content-bg{\n background-position: center calc(calc(var(--header-size) * -1) - 20vw);\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n display: flex;\n background-color: black;\n transition: height 0.7s;\n height: calc(var(--header-additional-content-size) - var(--header-size));\n @starting-style {\n height: 0rem;\n }\n &.scrolled {\n height: 0rem;\n }\n }\n .header-additional-content{\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n width: 100%;\n }\n .header-additional-content, .header-opacity{\n background: oklch(0 0 0 / 0.5);\n }\n .header-force-blur .header-additional-content, .header-force-blur .header-opacity{\n backdrop-filter: blur(8px);\n }\n .header-content{\n *:focus-visible {\n box-shadow: 0 0 10px 1px white !important;\n }\n h1 {\n color: white !important;\n font-size: 1.8rem;\n margin: 2rem 5rem;\n @media (width <= 550px) {\n font-size: 1rem;\n margin: 1rem 0.5rem 0.5rem;\n }\n }\n .admin-button:hover,\n .share-btn:hover {\n background: white;\n }\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
2
|
-
import { A as state, a as useSubOrganisations, i as useAuthStore$1, r as useFilterStore, s as rubriquesApi } from "./classicApi-
|
|
2
|
+
import { A as state, a as useSubOrganisations, i as useAuthStore$1, r as useFilterStore, s as rubriquesApi } from "./classicApi-xjOqAovv.mjs";
|
|
3
3
|
import { t as useResizePhone } from "./useResizePhone-CpfFUmfV.mjs";
|
|
4
|
-
import { t as useImageProxy } from "./useImageProxy-
|
|
4
|
+
import { t as useImageProxy } from "./useImageProxy-BdQJmj4a.mjs";
|
|
5
5
|
import { t as useGeneralStore } from "./GeneralStore-CUlq_NjO.mjs";
|
|
6
6
|
import { t as ClassicPopover_default } from "./ClassicPopover-BIyLKorz.mjs";
|
|
7
|
-
import { t as useRubriquesFilterComputed } from "./useRubriquesFilterComputed-
|
|
8
|
-
import { t as HomeDropdown_default } from "./HomeDropdown-
|
|
7
|
+
import { t as useRubriquesFilterComputed } from "./useRubriquesFilterComputed-BkDeXTf-.mjs";
|
|
8
|
+
import { t as HomeDropdown_default } from "./HomeDropdown-D7FezAO8.mjs";
|
|
9
9
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, mergeProps, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onUnmounted, openBlock, ref, renderList, resolveComponent, toDisplayString, toRef, useTemplateRef, vShow, watch, withCtx, withDirectives } from "vue";
|
|
10
10
|
import { useI18n } from "vue-i18n";
|
|
11
11
|
import axios from "axios";
|
|
@@ -343,7 +343,7 @@ var TopBarMainContent_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
|
|
|
343
343
|
},
|
|
344
344
|
setup(__props, { expose: __expose }) {
|
|
345
345
|
__expose();
|
|
346
|
-
const MobileMenu = defineAsyncComponent(() => import("./MobileMenu-
|
|
346
|
+
const MobileMenu = defineAsyncComponent(() => import("./MobileMenu-C95GAIm0.mjs"));
|
|
347
347
|
const props = __props;
|
|
348
348
|
const { t } = useI18n();
|
|
349
349
|
const { useProxyImageUrl } = useImageProxy();
|
|
@@ -622,7 +622,7 @@ var TopBar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
622
622
|
} },
|
|
623
623
|
setup(__props, { expose: __expose }) {
|
|
624
624
|
__expose();
|
|
625
|
-
const SubscribeButtons = defineAsyncComponent(() => import("./SubscribeButtons-
|
|
625
|
+
const SubscribeButtons = defineAsyncComponent(() => import("./SubscribeButtons-lAAMYQCm.mjs").then((n) => n.n));
|
|
626
626
|
const scrolled = ref(false);
|
|
627
627
|
const oldScrollY = ref(0);
|
|
628
628
|
const minScroll = ref(0);
|
|
@@ -757,4 +757,4 @@ var TopBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(TopBar_vue_
|
|
|
757
757
|
//#endregion
|
|
758
758
|
export { TopBar_default as default };
|
|
759
759
|
|
|
760
|
-
//# sourceMappingURL=TopBar-
|
|
760
|
+
//# sourceMappingURL=TopBar-DIdhyJi_.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TopBar-DIdhyJi_.mjs","names":[],"sources":["../src/components/misc/RightsScopeSelector.vue","../src/components/misc/RightsScopeSelector.vue","../src/components/misc/RightsScopeMenu.vue","../src/components/misc/RightsScopeMenu.vue","../src/components/misc/TopBarMainContent.vue","../src/components/misc/TopBarMainContent.vue","../src/components/misc/TopBar.vue","../src/components/misc/TopBar.vue"],"sourcesContent":["<template>\n <div\n v-if=\"subOrganisations.length > 0\"\n class=\"d-flex flex-column ms-4\"\n >\n <span class=\"label mb-1\">\n {{ t('RightsScopeSelector - Title', { rubriquage: rubriquage?.title}) }}\n </span>\n <div class=\"d-flex value\">\n <button\n type=\"button\"\n class=\"btn-transparent d-flex align-items-center\"\n aria-controls=\"suborga-list-menu\"\n :aria-expanded=\"open\"\n @click=\"$emit('change')\"\n >\n <span\n v-if=\"selectedSubOrganisation\"\n class=\"me-2 selected\"\n >\n {{ selectedSubOrganisation.name }}\n </span>\n <span v-else class=\"me-2\">\n {{ t('RightsScopeSelector - No filter') }}\n </span>\n <SwapIcon class=\"icon\" />\n </button>\n <button\n v-if=\"selectedSubOrganisation\"\n type=\"button\"\n class=\"btn-transparent\"\n @click=\"unselectSubOrganisation\"\n >\n <ClearIcon\n class=\"icon\"\n :title=\"t('RightsScopeSelector - Clear filter')\"\n />\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { ref, toRef, watch } from \"vue\";\nimport { useSubOrganisations } from \"../composable/useSubOrganisations\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { rubriquesApi } from \"@/api\";\n\nimport SwapIcon from \"vue-material-design-icons/SwapHorizontalCircleOutline.vue\";\nimport ClearIcon from \"vue-material-design-icons/CloseCircleOutline.vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst authOrgaId = toRef(authStore, 'authOrgaId');\nconst rubriquage = ref<Rubriquage|null>(null);\nconst {\n selectedSubOrganisation,\n subOrganisations,\n unselectSubOrganisation\n} = useSubOrganisations(authOrgaId);\n\ndefineProps<{\n /** Whether the sub organisation menu controlled by this selector is open */\n open?: boolean;\n}>();\n\ndefineEmits<{\n (e: 'change'): void;\n}>();\n\nwatch(authOrgaId, async () => {\n rubriquage.value = await rubriquesApi.findRestrictiveRubriquage(authOrgaId.value);\n}, { immediate: true });\n</script>\n\n<style scoped lang=\"scss\">\n#header-scope-selector:deep(.octopus-select-field) {\n background: transparent;\n border-color: rgba(255, 255, 255, 0.1);\n margin-left: 200px;\n\n .octopus-select-value {\n color: var(--octopus-secondary);\n font-weight: bold;\n align-content: center;\n }\n\n input {\n color: white;\n }\n\n button {\n color: rgba(255, 255, 255, 0.3);\n }\n}\n\n.value {\n color: var(--octopus-secondary);\n font-weight: bold;\n align-content: center;\n align-items: center;\n\n button {\n color: inherit;\n font-weight: inherit;\n text-align: start;\n padding: 0;\n }\n\n span:not(.selected):not(.icon) {\n opacity: .5;\n transition: opacity .5s;\n\n &:hover {\n opacity: .7;\n }\n }\n}\n\n.label {\n color: rgba(255, 255, 255, 0.3);\n font-weight: 600;\n font-style: italic;\n font-size: 14px;\n white-space: nowrap;\n overflow-y: visible;\n}\n\n.icon {\n opacity: .7;\n transition: opacity .5s;\n\n &:hover {\n opacity: 1;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"subOrganisations.length > 0\"\n class=\"d-flex flex-column ms-4\"\n >\n <span class=\"label mb-1\">\n {{ t('RightsScopeSelector - Title', { rubriquage: rubriquage?.title}) }}\n </span>\n <div class=\"d-flex value\">\n <button\n type=\"button\"\n class=\"btn-transparent d-flex align-items-center\"\n aria-controls=\"suborga-list-menu\"\n :aria-expanded=\"open\"\n @click=\"$emit('change')\"\n >\n <span\n v-if=\"selectedSubOrganisation\"\n class=\"me-2 selected\"\n >\n {{ selectedSubOrganisation.name }}\n </span>\n <span v-else class=\"me-2\">\n {{ t('RightsScopeSelector - No filter') }}\n </span>\n <SwapIcon class=\"icon\" />\n </button>\n <button\n v-if=\"selectedSubOrganisation\"\n type=\"button\"\n class=\"btn-transparent\"\n @click=\"unselectSubOrganisation\"\n >\n <ClearIcon\n class=\"icon\"\n :title=\"t('RightsScopeSelector - Clear filter')\"\n />\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { ref, toRef, watch } from \"vue\";\nimport { useSubOrganisations } from \"../composable/useSubOrganisations\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { rubriquesApi } from \"@/api\";\n\nimport SwapIcon from \"vue-material-design-icons/SwapHorizontalCircleOutline.vue\";\nimport ClearIcon from \"vue-material-design-icons/CloseCircleOutline.vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst authOrgaId = toRef(authStore, 'authOrgaId');\nconst rubriquage = ref<Rubriquage|null>(null);\nconst {\n selectedSubOrganisation,\n subOrganisations,\n unselectSubOrganisation\n} = useSubOrganisations(authOrgaId);\n\ndefineProps<{\n /** Whether the sub organisation menu controlled by this selector is open */\n open?: boolean;\n}>();\n\ndefineEmits<{\n (e: 'change'): void;\n}>();\n\nwatch(authOrgaId, async () => {\n rubriquage.value = await rubriquesApi.findRestrictiveRubriquage(authOrgaId.value);\n}, { immediate: true });\n</script>\n\n<style scoped lang=\"scss\">\n#header-scope-selector:deep(.octopus-select-field) {\n background: transparent;\n border-color: rgba(255, 255, 255, 0.1);\n margin-left: 200px;\n\n .octopus-select-value {\n color: var(--octopus-secondary);\n font-weight: bold;\n align-content: center;\n }\n\n input {\n color: white;\n }\n\n button {\n color: rgba(255, 255, 255, 0.3);\n }\n}\n\n.value {\n color: var(--octopus-secondary);\n font-weight: bold;\n align-content: center;\n align-items: center;\n\n button {\n color: inherit;\n font-weight: inherit;\n text-align: start;\n padding: 0;\n }\n\n span:not(.selected):not(.icon) {\n opacity: .5;\n transition: opacity .5s;\n\n &:hover {\n opacity: .7;\n }\n }\n}\n\n.label {\n color: rgba(255, 255, 255, 0.3);\n font-weight: 600;\n font-style: italic;\n font-size: 14px;\n white-space: nowrap;\n overflow-y: visible;\n}\n\n.icon {\n opacity: .7;\n transition: opacity .5s;\n\n &:hover {\n opacity: 1;\n }\n}\n</style>\n","<template>\n <div\n id=\"suborga-list-menu\"\n ref=\"menuNav\"\n role=\"dialog\"\n aria-labelledby=\"suborga-list-menu-title\"\n :class=\"{ shown: open }\"\n :inert=\"!open\"\n >\n <button\n type=\"button\"\n class=\"btn-transparent close-btn\"\n @click=\"close\"\n >\n <CloseIcon :title=\"t('Close')\" />\n </button>\n\n <div class=\"search\">\n <h3 id=\"suborga-list-menu-title\">\n {{ t('RightsScopeMenu - Title') }}\n </h3>\n <ClassicInputText\n v-model:text-init=\"search\"\n :placeholder=\"t('RightsScopeMenu - Search')\"\n can-be-null\n />\n </div>\n\n <div v-if=\"showFirstList\" class=\"suborga-list mb-4\">\n <h4>{{ t('RightsScopeMenu - First list - Title') }}</h4>\n <span\n v-for=\"suborga in userSubOrgas\"\n :key=\"suborga.id\"\n class=\"suborga\"\n @click=\"select(suborga)\"\n >\n {{ suborga.name }}\n </span>\n </div>\n\n <div class=\"suborga-list\">\n <h4>{{ secondListTitle }}</h4>\n\n <div v-if=\"showLetters\" class=\"letters mt-2\">\n <button\n v-for=\"letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\"\n :key=\"letter\"\n type=\"button\"\n class=\"letter\"\n :title=\"subOrgaByLetter.has(letter) ? undefined : t('RightsScopeMenu - Letters - No sub orga for letter')\"\n :disabled=\"!subOrgaByLetter.has(letter)\"\n @click=\"scrollToLetter(letter)\"\n >\n {{ letter }}\n </button>\n </div>\n\n <div\n v-for=\"[letter, suborgaForLetter] in subOrgaByLetter\"\n :key=\"'suborgas-' + letter\"\n >\n <div\n :id=\"'suborga-letter-' + letter\"\n class=\"letter\"\n tabindex=\"-1\"\n >\n {{ letter }}\n </div>\n <span\n v-for=\"suborga in suborgaForLetter\"\n :key=\"suborga.id\"\n class=\"suborga\"\n @click=\"select(suborga)\"\n >\n {{ suborga.name }}\n </span>\n </div>\n </div>\n\n <p role=\"status\" class=\"text-indic px-3\">\n <template v-if=\"noResult\">\n {{ t('RightsScopeMenu - No result') }}\n </template>\n </p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, nextTick, onUnmounted, ref, toRef, useTemplateRef, watch } from 'vue';\nimport { getClassicInputText, useAuthStore } from '@saooti/octopus-sdk'; \nimport { SubOrganisation, useSubOrganisations } from '../composable/useSubOrganisations';\nimport { useI18n } from 'vue-i18n';\nimport CloseIcon from 'vue-material-design-icons/Close.vue';\n\nconst ClassicInputText = defineAsyncComponent(getClassicInputText);\n\nconst { t } = useI18n();\n\n///////////////////////////////\n// Menu\n///////////////////////////////\nconst props = defineProps<{\n open?: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: 'update:open', open: boolean): void;\n}>();\n\nconst menuNav = useTemplateRef('menuNav');\nlet previousFocus: HTMLElement | null = null;\n\nwatch(() => props.open, async open => {\n if (open) {\n previousFocus = document.activeElement as HTMLElement | null;\n setTimeout(() => document.addEventListener('click', openOnClick), 200);\n document.addEventListener('keydown', closeOnEscape);\n // Wait for the menu to no longer be inert before focusing\n await nextTick();\n menuNav.value?.querySelector('input')?.focus();\n } else {\n removeListeners();\n // Only give focus back if it would otherwise be lost (inside the\n // closed menu, or on body), to avoid stealing it after a click\n // elsewhere\n const active = document.activeElement;\n if (active === document.body || menuNav.value?.contains(active)) {\n previousFocus?.focus();\n }\n }\n});\n\nonUnmounted(removeListeners);\n\nfunction removeListeners(): void {\n document.removeEventListener('click', openOnClick);\n document.removeEventListener('keydown', closeOnEscape);\n}\n\nfunction close(): void {\n emit('update:open', false);\n}\n\nfunction openOnClick(event: MouseEvent) {\n const menu = menuNav.value;\n if (props.open && event.target && !menu?.contains(event.target as Node)) {\n close();\n }\n}\n\nfunction closeOnEscape(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n close();\n }\n}\n\nfunction prefersReducedMotion(): boolean {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n\n///////////////////////////////\n// Display list\n///////////////////////////////\nconst search = ref('');\nconst authStore = useAuthStore();\nconst { subOrganisations, selectSubOrganisation } = useSubOrganisations(toRef(authStore, 'authOrgaId'));\n\nfunction normalize(str: string): string {\n // Separate accented character in letter/diacritic, then remove the\n // diacritic\n return str.toUpperCase().normalize(\"NFD\").replace(/\\p{Diacritic}/gu, '');\n}\n\nconst normalizedSearch = computed((): string => {\n return normalize(search.value);\n});\n\nconst userSubOrgas = computed((): Array<SubOrganisation> => {\n const userScope = authStore.userScope;\n return subOrganisations.value\n .filter(sub => sub.name.includes(normalizedSearch.value))\n .filter(sub => userScope.includes(sub.id))\n .sort((o1, o2) => o1.name.localeCompare(o2.name))\n ;\n});\n\nconst showFirstList = computed((): boolean => {\n return userSubOrgas.value.length > 0;\n});\n\nconst secondListTitle = computed((): string => {\n const userScope = authStore.userScope;\n if (userScope.length === 0) {\n return t('RightsScopeMenu - Second list - Title unscoped');\n } else {\n return t('RightsScopeMenu - Second list - Title scoped');\n }\n});\n\nconst showLetters = computed((): boolean => {\n return subOrganisations.value.length > 10;\n});\n\nconst subOrgaByLetter = computed((): Map<string, Array<SubOrganisation>> => {\n const data: Map<string, Array<SubOrganisation>> = new Map();\n\n const filtered = subOrganisations.value\n .filter(sub => sub.name.includes(normalizedSearch.value))\n .filter(sub => !userSubOrgas.value.includes(sub))\n .sort((o1, o2) => o1.name.localeCompare(o2.name))\n ;\n\n if (showLetters.value) {\n filtered.forEach((sub: SubOrganisation) => {\n const firstLetter = sub.name[0];\n if (data.has(firstLetter)) {\n const present = data.get(firstLetter);\n present!.push(sub);\n } else {\n data.set(firstLetter, [sub]);\n }\n });\n } else {\n data.set(null, filtered);\n }\n\n data.values().forEach(ary => ary.sort((a, b) => a.name.localeCompare(b.name)));\n\n return data;\n});\n\nconst noResult = computed((): boolean => {\n return !showFirstList.value\n && [...subOrgaByLetter.value.values()].every(ary => ary.length === 0);\n});\n\nfunction scrollToLetter(letter: string): void {\n if (!subOrgaByLetter.value.has(letter)) {\n return;\n }\n const container = menuNav.value;\n const target: HTMLElement | null | undefined = container?.querySelector(`#suborga-letter-${letter}`);\n if (container && target) {\n container.scrollTo({\n top: target.offsetTop,\n behavior: prefersReducedMotion() ? 'auto' : 'smooth'\n });\n target.focus({ preventScroll: true });\n }\n}\n\n///////////////////////////////\n// Sub orga selection\n///////////////////////////////\nfunction select(org: SubOrganisation): void {\n selectSubOrganisation(org);\n emit('update:open', false);\n}\n</script>\n\n<style scoped lang=\"scss\">\n#suborga-list-menu-btn {\n transition: rotate 0.3s ease-out;\n \n &.active {\n rotate: 90deg;\n }\n}\n\n#suborga-list-menu {\n z-index: 100;\n \n --width: 30dvw;\n\n // Positioning\n position: fixed;\n left: 0;\n top: 0;\n width: var(--width);\n height: 100dvh;\n\n // Margins\n padding: 1.5em 0;\n\n // Overflow\n overflow-y: auto;\n\n // Style\n background-color: white;\n //border-radius: 0 var(--octopus-border-radius);\n border-right: 2px solid var(--octopus-primary);\n\n // Animation\n @media (prefers-reduced-motion: no-preference) {\n transition: left 0.6s ease-out;\n }\n\n &.shown {\n left: 0;\n }\n\n &:not(.shown) {\n left: calc(var(--width) * -1);\n }\n\n @media(width <= 960px) {\n --width: 100dvw;\n }\n}\n\n.close-btn {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n}\n\nh4 {\n margin-left: 10px;\n color: var(--octopus-primary);\n}\n\n.letter {\n color: var(--pm-accent);\n font-weight: bold;\n font-size: 1em;\n background-color: oklch(from var(--pm-accent) l c h / 15%);\n}\n\n.search {\n padding: 0 1rem;\n\n h3 {\n color: var(--pm-accent);\n text-align: center;\n }\n}\n\n.letters {\n display: grid;\n grid-template-columns: repeat(9, 28px);\n width: fit-content;\n margin: auto;\n\n .letter {\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n color: black;\n margin: 7px 0 8px;\n width: 24px;\n height: 24px;\n border-radius: 8px;\n font-size: 12px;\n padding: 0 !important;\n cursor: pointer;\n\n &:disabled {\n background-color: #EBF3FE;\n cursor: not-allowed;\n }\n }\n}\n\n.suborga-list {\n .letter {\n padding: 0.1rem 1rem;\n color: var(--octopus-primary);\n }\n\n .suborga {\n display: block;\n padding: 0.5rem 1.4rem;\n cursor: pointer;\n\n &:not(:last-child) {\n border-bottom: 1px solid var(--octopus-primary-really-transparent);\n }\n }\n}\n</style>\n","<template>\n <div\n id=\"suborga-list-menu\"\n ref=\"menuNav\"\n role=\"dialog\"\n aria-labelledby=\"suborga-list-menu-title\"\n :class=\"{ shown: open }\"\n :inert=\"!open\"\n >\n <button\n type=\"button\"\n class=\"btn-transparent close-btn\"\n @click=\"close\"\n >\n <CloseIcon :title=\"t('Close')\" />\n </button>\n\n <div class=\"search\">\n <h3 id=\"suborga-list-menu-title\">\n {{ t('RightsScopeMenu - Title') }}\n </h3>\n <ClassicInputText\n v-model:text-init=\"search\"\n :placeholder=\"t('RightsScopeMenu - Search')\"\n can-be-null\n />\n </div>\n\n <div v-if=\"showFirstList\" class=\"suborga-list mb-4\">\n <h4>{{ t('RightsScopeMenu - First list - Title') }}</h4>\n <span\n v-for=\"suborga in userSubOrgas\"\n :key=\"suborga.id\"\n class=\"suborga\"\n @click=\"select(suborga)\"\n >\n {{ suborga.name }}\n </span>\n </div>\n\n <div class=\"suborga-list\">\n <h4>{{ secondListTitle }}</h4>\n\n <div v-if=\"showLetters\" class=\"letters mt-2\">\n <button\n v-for=\"letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\"\n :key=\"letter\"\n type=\"button\"\n class=\"letter\"\n :title=\"subOrgaByLetter.has(letter) ? undefined : t('RightsScopeMenu - Letters - No sub orga for letter')\"\n :disabled=\"!subOrgaByLetter.has(letter)\"\n @click=\"scrollToLetter(letter)\"\n >\n {{ letter }}\n </button>\n </div>\n\n <div\n v-for=\"[letter, suborgaForLetter] in subOrgaByLetter\"\n :key=\"'suborgas-' + letter\"\n >\n <div\n :id=\"'suborga-letter-' + letter\"\n class=\"letter\"\n tabindex=\"-1\"\n >\n {{ letter }}\n </div>\n <span\n v-for=\"suborga in suborgaForLetter\"\n :key=\"suborga.id\"\n class=\"suborga\"\n @click=\"select(suborga)\"\n >\n {{ suborga.name }}\n </span>\n </div>\n </div>\n\n <p role=\"status\" class=\"text-indic px-3\">\n <template v-if=\"noResult\">\n {{ t('RightsScopeMenu - No result') }}\n </template>\n </p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, nextTick, onUnmounted, ref, toRef, useTemplateRef, watch } from 'vue';\nimport { getClassicInputText, useAuthStore } from '@saooti/octopus-sdk'; \nimport { SubOrganisation, useSubOrganisations } from '../composable/useSubOrganisations';\nimport { useI18n } from 'vue-i18n';\nimport CloseIcon from 'vue-material-design-icons/Close.vue';\n\nconst ClassicInputText = defineAsyncComponent(getClassicInputText);\n\nconst { t } = useI18n();\n\n///////////////////////////////\n// Menu\n///////////////////////////////\nconst props = defineProps<{\n open?: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: 'update:open', open: boolean): void;\n}>();\n\nconst menuNav = useTemplateRef('menuNav');\nlet previousFocus: HTMLElement | null = null;\n\nwatch(() => props.open, async open => {\n if (open) {\n previousFocus = document.activeElement as HTMLElement | null;\n setTimeout(() => document.addEventListener('click', openOnClick), 200);\n document.addEventListener('keydown', closeOnEscape);\n // Wait for the menu to no longer be inert before focusing\n await nextTick();\n menuNav.value?.querySelector('input')?.focus();\n } else {\n removeListeners();\n // Only give focus back if it would otherwise be lost (inside the\n // closed menu, or on body), to avoid stealing it after a click\n // elsewhere\n const active = document.activeElement;\n if (active === document.body || menuNav.value?.contains(active)) {\n previousFocus?.focus();\n }\n }\n});\n\nonUnmounted(removeListeners);\n\nfunction removeListeners(): void {\n document.removeEventListener('click', openOnClick);\n document.removeEventListener('keydown', closeOnEscape);\n}\n\nfunction close(): void {\n emit('update:open', false);\n}\n\nfunction openOnClick(event: MouseEvent) {\n const menu = menuNav.value;\n if (props.open && event.target && !menu?.contains(event.target as Node)) {\n close();\n }\n}\n\nfunction closeOnEscape(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n close();\n }\n}\n\nfunction prefersReducedMotion(): boolean {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n\n///////////////////////////////\n// Display list\n///////////////////////////////\nconst search = ref('');\nconst authStore = useAuthStore();\nconst { subOrganisations, selectSubOrganisation } = useSubOrganisations(toRef(authStore, 'authOrgaId'));\n\nfunction normalize(str: string): string {\n // Separate accented character in letter/diacritic, then remove the\n // diacritic\n return str.toUpperCase().normalize(\"NFD\").replace(/\\p{Diacritic}/gu, '');\n}\n\nconst normalizedSearch = computed((): string => {\n return normalize(search.value);\n});\n\nconst userSubOrgas = computed((): Array<SubOrganisation> => {\n const userScope = authStore.userScope;\n return subOrganisations.value\n .filter(sub => sub.name.includes(normalizedSearch.value))\n .filter(sub => userScope.includes(sub.id))\n .sort((o1, o2) => o1.name.localeCompare(o2.name))\n ;\n});\n\nconst showFirstList = computed((): boolean => {\n return userSubOrgas.value.length > 0;\n});\n\nconst secondListTitle = computed((): string => {\n const userScope = authStore.userScope;\n if (userScope.length === 0) {\n return t('RightsScopeMenu - Second list - Title unscoped');\n } else {\n return t('RightsScopeMenu - Second list - Title scoped');\n }\n});\n\nconst showLetters = computed((): boolean => {\n return subOrganisations.value.length > 10;\n});\n\nconst subOrgaByLetter = computed((): Map<string, Array<SubOrganisation>> => {\n const data: Map<string, Array<SubOrganisation>> = new Map();\n\n const filtered = subOrganisations.value\n .filter(sub => sub.name.includes(normalizedSearch.value))\n .filter(sub => !userSubOrgas.value.includes(sub))\n .sort((o1, o2) => o1.name.localeCompare(o2.name))\n ;\n\n if (showLetters.value) {\n filtered.forEach((sub: SubOrganisation) => {\n const firstLetter = sub.name[0];\n if (data.has(firstLetter)) {\n const present = data.get(firstLetter);\n present!.push(sub);\n } else {\n data.set(firstLetter, [sub]);\n }\n });\n } else {\n data.set(null, filtered);\n }\n\n data.values().forEach(ary => ary.sort((a, b) => a.name.localeCompare(b.name)));\n\n return data;\n});\n\nconst noResult = computed((): boolean => {\n return !showFirstList.value\n && [...subOrgaByLetter.value.values()].every(ary => ary.length === 0);\n});\n\nfunction scrollToLetter(letter: string): void {\n if (!subOrgaByLetter.value.has(letter)) {\n return;\n }\n const container = menuNav.value;\n const target: HTMLElement | null | undefined = container?.querySelector(`#suborga-letter-${letter}`);\n if (container && target) {\n container.scrollTo({\n top: target.offsetTop,\n behavior: prefersReducedMotion() ? 'auto' : 'smooth'\n });\n target.focus({ preventScroll: true });\n }\n}\n\n///////////////////////////////\n// Sub orga selection\n///////////////////////////////\nfunction select(org: SubOrganisation): void {\n selectSubOrganisation(org);\n emit('update:open', false);\n}\n</script>\n\n<style scoped lang=\"scss\">\n#suborga-list-menu-btn {\n transition: rotate 0.3s ease-out;\n \n &.active {\n rotate: 90deg;\n }\n}\n\n#suborga-list-menu {\n z-index: 100;\n \n --width: 30dvw;\n\n // Positioning\n position: fixed;\n left: 0;\n top: 0;\n width: var(--width);\n height: 100dvh;\n\n // Margins\n padding: 1.5em 0;\n\n // Overflow\n overflow-y: auto;\n\n // Style\n background-color: white;\n //border-radius: 0 var(--octopus-border-radius);\n border-right: 2px solid var(--octopus-primary);\n\n // Animation\n @media (prefers-reduced-motion: no-preference) {\n transition: left 0.6s ease-out;\n }\n\n &.shown {\n left: 0;\n }\n\n &:not(.shown) {\n left: calc(var(--width) * -1);\n }\n\n @media(width <= 960px) {\n --width: 100dvw;\n }\n}\n\n.close-btn {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n}\n\nh4 {\n margin-left: 10px;\n color: var(--octopus-primary);\n}\n\n.letter {\n color: var(--pm-accent);\n font-weight: bold;\n font-size: 1em;\n background-color: oklch(from var(--pm-accent) l c h / 15%);\n}\n\n.search {\n padding: 0 1rem;\n\n h3 {\n color: var(--pm-accent);\n text-align: center;\n }\n}\n\n.letters {\n display: grid;\n grid-template-columns: repeat(9, 28px);\n width: fit-content;\n margin: auto;\n\n .letter {\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n color: black;\n margin: 7px 0 8px;\n width: 24px;\n height: 24px;\n border-radius: 8px;\n font-size: 12px;\n padding: 0 !important;\n cursor: pointer;\n\n &:disabled {\n background-color: #EBF3FE;\n cursor: not-allowed;\n }\n }\n}\n\n.suborga-list {\n .letter {\n padding: 0.1rem 1rem;\n color: var(--octopus-primary);\n }\n\n .suborga {\n display: block;\n padding: 0.5rem 1.4rem;\n cursor: pointer;\n\n &:not(:last-child) {\n border-bottom: 1px solid var(--octopus-primary-really-transparent);\n }\n }\n}\n</style>\n","<template>\n <div class=\"top-bar-grid header-content\" :class=\"{ scrolled: titleIsDisplayed }\">\n <div class=\"d-flex align-items-center\">\n <!-- Logo to the left -->\n <router-link\n class=\"top-bar-logo d-block\"\n :to=\"{\n name: 'home',\n query: getQueriesRouter('home'),\n }\"\n :title=\"t('Home')\"\n >\n <img\n v-if=\"!filterStore.filterOrgaId || '' === imgUrl\"\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n width=\"140\"\n height=\"50\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n <img\n v-else\n :src=\"useProxyImageUrl(imgUrl, '', '80')\"\n aria-hidden=\"true\"\n alt=\"\"\n class=\"client-logo\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : ''\"\n >\n </router-link>\n\n <RightsScopeMenu v-model:open=\"menuOpen\" />\n <RightsScopeSelector\n class=\"ms-4\"\n :open=\"menuOpen\"\n @change=\"menuOpen = true\"\n />\n </div>\n\n <h1 v-if=\"titleIsDisplayed\" class=\"text-truncate m-0 align-self-center\">\n {{ titleDisplay }}\n </h1>\n\n <!-- Right section -->\n <div\n class=\"d-flex right-section\"\n :class=\"[\n inContentDisplayPage || isPhone\n ? 'flex-row-reverse align-items-center'\n : 'flex-column align-items-end',\n ]\"\n >\n <!-- Logo to the right -->\n <template v-if=\"filterStore.filterOrgaId && '' !== imgUrl\">\n <img\n v-if=\"authStore.isGarRole\"\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n width=\"100\"\n height=\"29\"\n class=\"ms-2\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n <a\n v-else\n href=\"https://www.saooti.com/\"\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n :title=\"t('New window', {text: 'Saooti'})\"\n >\n <img\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n title=\"Saooti\"\n width=\"100\"\n height=\"29\"\n class=\"ms-2\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n </a>\n </template>\n\n <div role=\"navigation\" class=\"d-flex align-items-center justify-content-end flex-grow-1\">\n <nav :aria-label=\"t('Site menu')\">\n <ul class=\"d-flex\">\n <template v-for=\"link in routerLinkArray\" :key=\"link.routeName\">\n <li v-if=\"link.condition\" class=\"li-style-none\">\n <router-link\n v-show=\"!isPhone\"\n :to=\"{\n name: link.routeName,\n query: getQueriesRouter(link.routeName),\n }\"\n class=\"link-hover py-2 px-3\"\n >\n {{ link.title }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n <button\n v-show=\"!isPhone && !inContentDisplayPage\"\n id=\"more-dropdown\"\n :title=\"t('More')\"\n class=\"d-flex-column flex-nowrap align-items-center btn-transparent py-2 px-3 text-white\"\n >\n <span class=\"link-hover\">\n {{ t(\"More\") }}\n </span>\n <ChevronDownIcon />\n </button>\n <ClassicPopover\n target=\"more-dropdown\"\n :only-click=\"true\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :is-top-layer=\"true\"\n >\n <nav class=\"d-flex flex-column\" :aria-label=\"t('Site menu')\">\n <ul class=\"p-0 m-0\">\n <template v-for=\"link in routerLinkInsideArray\" :key=\"link.routeName\">\n <li\n v-if=\"link.condition\"\n class=\"li-style-none\"\n >\n <router-link\n :to=\"{\n name: link.routeName,\n query: getQueriesRouter(link.routeName),\n }\"\n class=\"p-1 octopus-dropdown-item\"\n >\n {{ link.title }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n </ClassicPopover>\n\n <MobileMenu\n :is-education=\"generalStore.platformEducation\"\n :show=\"mobileMenuDisplay\"\n :not-podcast-and-emission=\"inContentDisplayPage && !scrolled\"\n />\n <HomeDropdown\n :is-education=\"generalStore.platformEducation\"\n :mobile-menu-display=\"mobileMenuDisplay\"\n v-bind=\"options?.homeDropdown\"\n />\n <router-link\n v-show=\"!isPhone && !inContentDisplayPage\"\n :title=\"t('Search')\"\n :to=\"{\n name: 'podcasts',\n }\"\n class=\"btn admin-button m-1 text-blue-octopus\"\n role=\"search\"\n >\n <MagnifyIcon :size=\"30\" />\n </router-link>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport MagnifyIcon from \"vue-material-design-icons/Magnify.vue\";\nimport { useRubriquesFilterComputed } from \"../composable/route/useRubriquesFilterComputed\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport HomeDropdown, { type HomeDropdownProps } from \"./HomeDropdown.vue\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport ClassicPopover from \"../misc/ClassicPopover.vue\";\nimport { defineAsyncComponent, computed, ref } from \"vue\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport RightsScopeSelector from \"./RightsScopeSelector.vue\";\nimport RightsScopeMenu from \"./RightsScopeMenu.vue\"; \nconst MobileMenu = defineAsyncComponent(() => import(\"./MobileMenu.vue\"));\n\nexport interface TopBarMainContentOptions {\n homeDropdown?: HomeDropdownProps;\n}\n\nexport interface TopBarMainContentProps {\n isPhone?: boolean;\n titleDisplay?: string;\n scrolled?: boolean;\n};\n\n//Props \nconst props = defineProps<TopBarMainContentProps & {\n /** Props for subcomponents */\n options?: TopBarMainContentOptions;\n}>();\n\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { rubriqueQueryParam } = useRubriquesFilterComputed();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\n\nconst menuOpen = ref(false);\n\n//Computed\nconst mobileMenuDisplay = computed(() => props.isPhone || inContentDisplayPage.value);\nconst titleIsDisplayed = computed(() => inContentDisplayPage.value && props.scrolled && !props.isPhone);\nconst inContentDisplayPage = computed(() => 0 !== props.titleDisplay.length);\nconst routerLinkArray = computed(() => [{\n title: t(\"Radio & Live\"),\n routeName: \"lives\",\n condition:\n !inContentDisplayPage.value &&\n (state.generalParameters.isLiveTab as boolean) &&\n ((filterStore.filterOrgaId && filterStore.filterLive) || !filterStore.filterOrgaId),\n}, {\n title: t(\"Podcasts\"),\n routeName: \"podcasts\",\n condition:\n !inContentDisplayPage.value ||\n (inContentDisplayPage.value && !props.scrolled),\n}, {\n title: t(\"Emissions\"),\n routeName: \"emissions\",\n condition:\n !inContentDisplayPage.value ||\n (inContentDisplayPage.value && !props.scrolled),\n}]);\n\nconst routerLinkInsideArray = computed(() =>{\n return [\n {\n title: t(\"Speakers\"),\n routeName: \"participants\",\n condition: true,\n },\n {\n title: t(\"Playlists\"),\n routeName: \"playlists\",\n condition: true,\n },\n {\n title: t(\"Productors\"),\n routeName: \"productors\",\n condition:\n !state.generalParameters.podcastmaker && (!filterStore.filterOrgaId || generalStore.platformEducation),\n },\n ];\n});\nconst logoUrl = computed(() =>{\n if (generalStore.platformEducation) {\n return \"/img/logo_education_white.svg\";\n }\n return props.isPhone\n ? \"/img/logo_octopus_bubble.svg\"\n : \"/img/logo_saooti_play_white.svg\";\n});\nconst imgUrl = computed(() =>{\n if (!filterStore.filterImgUrl?.includes(\"emptypodcast\")){\n return `${filterStore.filterImgUrl}`;\n }\n return \"\";\n});\n \n//Methods\nfunction getQueriesRouter(routeName: string) {\n if (\"podcasts\" !== routeName && \"emissions\" !== routeName && \"home\" !== routeName) {\n return { productor: filterStore.filterOrgaId };\n }\n return {\n productor: filterStore.filterOrgaId,\n iabId: filterStore.filterIab?.id,\n rubriquesId: rubriqueQueryParam.value,\n };\n}\n</script>\n\n<style scoped lang=\"scss\">\n.top-bar-grid {\n display: grid;\n grid-template-columns: 1fr 5fr;\n padding: 0 1rem 0 0.5rem;\n\n &.scrolled {\n grid-template-columns: 1fr 2fr 1fr;\n }\n\n @media (width <= 450px) {\n padding: 0 0.5rem;\n }\n\n .link-hover {\n color: white;\n font-weight: bold;\n font-size: 0.93rem;\n text-decoration: underline;\n text-decoration-color: transparent;\n transition: text-decoration-color 250ms;\n text-underline-offset: 8px;\n\n &.link-hover:hover,\n &.link-hover.router-link-exact-active.router-link-active {\n color: white;\n text-decoration-color: white;\n }\n }\n\n .client-logo {\n border-radius: var(--octopus-border-radius);\n }\n\n .top-bar-logo img {\n max-width: 140px !important;\n max-height: 4rem;\n height: 4rem;\n\n &.education-logo {\n height: auto;\n }\n\n @media (width <= 650px) {\n max-height: 2rem;\n }\n }\n\n .octopus-logo {\n @media (width <= 960px) {\n max-width: 30px !important;\n }\n }\n}\n\n.right-section {\n padding-top: 0.5rem;\n}\n</style>\n","<template>\n <div class=\"top-bar-grid header-content\" :class=\"{ scrolled: titleIsDisplayed }\">\n <div class=\"d-flex align-items-center\">\n <!-- Logo to the left -->\n <router-link\n class=\"top-bar-logo d-block\"\n :to=\"{\n name: 'home',\n query: getQueriesRouter('home'),\n }\"\n :title=\"t('Home')\"\n >\n <img\n v-if=\"!filterStore.filterOrgaId || '' === imgUrl\"\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n width=\"140\"\n height=\"50\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n <img\n v-else\n :src=\"useProxyImageUrl(imgUrl, '', '80')\"\n aria-hidden=\"true\"\n alt=\"\"\n class=\"client-logo\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : ''\"\n >\n </router-link>\n\n <RightsScopeMenu v-model:open=\"menuOpen\" />\n <RightsScopeSelector\n class=\"ms-4\"\n :open=\"menuOpen\"\n @change=\"menuOpen = true\"\n />\n </div>\n\n <h1 v-if=\"titleIsDisplayed\" class=\"text-truncate m-0 align-self-center\">\n {{ titleDisplay }}\n </h1>\n\n <!-- Right section -->\n <div\n class=\"d-flex right-section\"\n :class=\"[\n inContentDisplayPage || isPhone\n ? 'flex-row-reverse align-items-center'\n : 'flex-column align-items-end',\n ]\"\n >\n <!-- Logo to the right -->\n <template v-if=\"filterStore.filterOrgaId && '' !== imgUrl\">\n <img\n v-if=\"authStore.isGarRole\"\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n width=\"100\"\n height=\"29\"\n class=\"ms-2\"\n title=\"Logo\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n <a\n v-else\n href=\"https://www.saooti.com/\"\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n :title=\"t('New window', {text: 'Saooti'})\"\n >\n <img\n :src=\"logoUrl\"\n aria-hidden=\"true\"\n alt=\"\"\n title=\"Saooti\"\n width=\"100\"\n height=\"29\"\n class=\"ms-2\"\n :class=\"generalStore.platformEducation ? 'education-logo' : 'octopus-logo'\"\n >\n </a>\n </template>\n\n <div role=\"navigation\" class=\"d-flex align-items-center justify-content-end flex-grow-1\">\n <nav :aria-label=\"t('Site menu')\">\n <ul class=\"d-flex\">\n <template v-for=\"link in routerLinkArray\" :key=\"link.routeName\">\n <li v-if=\"link.condition\" class=\"li-style-none\">\n <router-link\n v-show=\"!isPhone\"\n :to=\"{\n name: link.routeName,\n query: getQueriesRouter(link.routeName),\n }\"\n class=\"link-hover py-2 px-3\"\n >\n {{ link.title }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n <button\n v-show=\"!isPhone && !inContentDisplayPage\"\n id=\"more-dropdown\"\n :title=\"t('More')\"\n class=\"d-flex-column flex-nowrap align-items-center btn-transparent py-2 px-3 text-white\"\n >\n <span class=\"link-hover\">\n {{ t(\"More\") }}\n </span>\n <ChevronDownIcon />\n </button>\n <ClassicPopover\n target=\"more-dropdown\"\n :only-click=\"true\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :is-top-layer=\"true\"\n >\n <nav class=\"d-flex flex-column\" :aria-label=\"t('Site menu')\">\n <ul class=\"p-0 m-0\">\n <template v-for=\"link in routerLinkInsideArray\" :key=\"link.routeName\">\n <li\n v-if=\"link.condition\"\n class=\"li-style-none\"\n >\n <router-link\n :to=\"{\n name: link.routeName,\n query: getQueriesRouter(link.routeName),\n }\"\n class=\"p-1 octopus-dropdown-item\"\n >\n {{ link.title }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n </ClassicPopover>\n\n <MobileMenu\n :is-education=\"generalStore.platformEducation\"\n :show=\"mobileMenuDisplay\"\n :not-podcast-and-emission=\"inContentDisplayPage && !scrolled\"\n />\n <HomeDropdown\n :is-education=\"generalStore.platformEducation\"\n :mobile-menu-display=\"mobileMenuDisplay\"\n v-bind=\"options?.homeDropdown\"\n />\n <router-link\n v-show=\"!isPhone && !inContentDisplayPage\"\n :title=\"t('Search')\"\n :to=\"{\n name: 'podcasts',\n }\"\n class=\"btn admin-button m-1 text-blue-octopus\"\n role=\"search\"\n >\n <MagnifyIcon :size=\"30\" />\n </router-link>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport MagnifyIcon from \"vue-material-design-icons/Magnify.vue\";\nimport { useRubriquesFilterComputed } from \"../composable/route/useRubriquesFilterComputed\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport HomeDropdown, { type HomeDropdownProps } from \"./HomeDropdown.vue\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport ClassicPopover from \"../misc/ClassicPopover.vue\";\nimport { defineAsyncComponent, computed, ref } from \"vue\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useI18n } from \"vue-i18n\";\nimport RightsScopeSelector from \"./RightsScopeSelector.vue\";\nimport RightsScopeMenu from \"./RightsScopeMenu.vue\"; \nconst MobileMenu = defineAsyncComponent(() => import(\"./MobileMenu.vue\"));\n\nexport interface TopBarMainContentOptions {\n homeDropdown?: HomeDropdownProps;\n}\n\nexport interface TopBarMainContentProps {\n isPhone?: boolean;\n titleDisplay?: string;\n scrolled?: boolean;\n};\n\n//Props \nconst props = defineProps<TopBarMainContentProps & {\n /** Props for subcomponents */\n options?: TopBarMainContentOptions;\n}>();\n\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { rubriqueQueryParam } = useRubriquesFilterComputed();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\n\nconst menuOpen = ref(false);\n\n//Computed\nconst mobileMenuDisplay = computed(() => props.isPhone || inContentDisplayPage.value);\nconst titleIsDisplayed = computed(() => inContentDisplayPage.value && props.scrolled && !props.isPhone);\nconst inContentDisplayPage = computed(() => 0 !== props.titleDisplay.length);\nconst routerLinkArray = computed(() => [{\n title: t(\"Radio & Live\"),\n routeName: \"lives\",\n condition:\n !inContentDisplayPage.value &&\n (state.generalParameters.isLiveTab as boolean) &&\n ((filterStore.filterOrgaId && filterStore.filterLive) || !filterStore.filterOrgaId),\n}, {\n title: t(\"Podcasts\"),\n routeName: \"podcasts\",\n condition:\n !inContentDisplayPage.value ||\n (inContentDisplayPage.value && !props.scrolled),\n}, {\n title: t(\"Emissions\"),\n routeName: \"emissions\",\n condition:\n !inContentDisplayPage.value ||\n (inContentDisplayPage.value && !props.scrolled),\n}]);\n\nconst routerLinkInsideArray = computed(() =>{\n return [\n {\n title: t(\"Speakers\"),\n routeName: \"participants\",\n condition: true,\n },\n {\n title: t(\"Playlists\"),\n routeName: \"playlists\",\n condition: true,\n },\n {\n title: t(\"Productors\"),\n routeName: \"productors\",\n condition:\n !state.generalParameters.podcastmaker && (!filterStore.filterOrgaId || generalStore.platformEducation),\n },\n ];\n});\nconst logoUrl = computed(() =>{\n if (generalStore.platformEducation) {\n return \"/img/logo_education_white.svg\";\n }\n return props.isPhone\n ? \"/img/logo_octopus_bubble.svg\"\n : \"/img/logo_saooti_play_white.svg\";\n});\nconst imgUrl = computed(() =>{\n if (!filterStore.filterImgUrl?.includes(\"emptypodcast\")){\n return `${filterStore.filterImgUrl}`;\n }\n return \"\";\n});\n \n//Methods\nfunction getQueriesRouter(routeName: string) {\n if (\"podcasts\" !== routeName && \"emissions\" !== routeName && \"home\" !== routeName) {\n return { productor: filterStore.filterOrgaId };\n }\n return {\n productor: filterStore.filterOrgaId,\n iabId: filterStore.filterIab?.id,\n rubriquesId: rubriqueQueryParam.value,\n };\n}\n</script>\n\n<style scoped lang=\"scss\">\n.top-bar-grid {\n display: grid;\n grid-template-columns: 1fr 5fr;\n padding: 0 1rem 0 0.5rem;\n\n &.scrolled {\n grid-template-columns: 1fr 2fr 1fr;\n }\n\n @media (width <= 450px) {\n padding: 0 0.5rem;\n }\n\n .link-hover {\n color: white;\n font-weight: bold;\n font-size: 0.93rem;\n text-decoration: underline;\n text-decoration-color: transparent;\n transition: text-decoration-color 250ms;\n text-underline-offset: 8px;\n\n &.link-hover:hover,\n &.link-hover.router-link-exact-active.router-link-active {\n color: white;\n text-decoration-color: white;\n }\n }\n\n .client-logo {\n border-radius: var(--octopus-border-radius);\n }\n\n .top-bar-logo img {\n max-width: 140px !important;\n max-height: 4rem;\n height: 4rem;\n\n &.education-logo {\n height: auto;\n }\n\n @media (width <= 650px) {\n max-height: 2rem;\n }\n }\n\n .octopus-logo {\n @media (width <= 960px) {\n max-width: 30px !important;\n }\n }\n}\n\n.right-section {\n padding-top: 0.5rem;\n}\n</style>\n","<template>\n <header\n role=\"banner\"\n class=\"header-saooti-play\"\n :style=\"headerBackgroundImage\"\n :class=\"[generalStore.contentToDisplay ? 'header-img-bg':'bg-gradient', scrolled? 'scrolled':'', needToBlur ? 'header-force-blur':'']\"\n >\n <TopBarMainContent\n :is-phone=\"isPhone\"\n :scrolled=\"scrolled\"\n :title-display=\"titleToDisplay\"\n style=\"height: var(--header-size);\"\n :class=\"headerBackgroundImage.length ? 'header-opacity':''\"\n :options=\"options?.topBarMainContent\"\n />\n </header>\n\n <div\n v-if=\"generalStore.contentToDisplay\"\n class=\"header-content-bg\"\n :style=\"headerBackgroundImage\"\n :class=\"{ scrolled: scrolled, 'header-force-blur':needToBlur }\"\n >\n <div class=\"header-additional-content header-content\">\n <h1 v-if=\"!scrolled\" class=\"text-truncate\">\n {{ titleToDisplay }}\n </h1>\n <SubscribeButtons\n v-if=\"!authStore.isGarRole && content\"\n v-show=\"!scrolled\"\n :content=\"content\"\n :window-width=\"windowWidth\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport TopBarMainContent, { type TopBarMainContentOptions } from \"./TopBarMainContent.vue\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, onMounted, ref, watch } from \"vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport {useResizePhone} from \"../composable/useResizePhone\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport axios from \"axios\";\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../display/sharing/SubscribeButtons.vue\"),\n);\n\ndefineProps<{\n options?: {\n topBarMainContent?: TopBarMainContentOptions\n }\n}>();\n\n//Data \nconst scrolled = ref(false);\nconst oldScrollY = ref(0);\nconst minScroll = ref(0);\nconst headerBackgroundImage = ref(\"\");\nconst needToBlur = ref(false);\n\n\n//Composables\nconst { isPhone, windowWidth } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\n\n//Computed\nconst titleToDisplay = computed(() => {\n if ((generalStore.contentToDisplay as Podcast)?.podcastId) {\n return (generalStore.contentToDisplay as Podcast).emission.name;\n }\n if ((generalStore.contentToDisplay as Playlist)?.playlistId) {\n return (generalStore.contentToDisplay as Playlist).title;\n }\n if ((generalStore.contentToDisplay as Emission)?.emissionId) {\n return (generalStore.contentToDisplay as Emission).name;\n }\n if ((generalStore.contentToDisplay as Canal)?.id) {\n return (generalStore.contentToDisplay as Canal).name;\n }\n return \"\";\n});\n\n/** The element displayed by the subscribe buttons */\nconst content = computed(() => {\n if ((generalStore.contentToDisplay as Podcast)?.podcastId) {\n return (generalStore.contentToDisplay as Podcast).emission;\n }\n if ((generalStore.contentToDisplay as Emission)?.emissionId) {\n return generalStore.contentToDisplay as Emission;\n }\n if ((generalStore.contentToDisplay as Playlist)?.playlistId) {\n return generalStore.contentToDisplay as Playlist;\n }\n return null;\n});\n\n//Watch\nwatch(()=>generalStore.contentToDisplay, async () => {\n if(!generalStore.contentToDisplay){\n headerBackgroundImage.value = \"\";\n needToBlur.value = false;\n return;\n }\n const widthAsked = window.innerWidth > 960 ? \"1600\":\"1000\";\n const proxyUrl = useProxyImageUrl(generalStore.contentToDisplay.imageUrl, widthAsked, undefined, true);\n try {\n const result = await axios.get(proxyUrl);\n headerBackgroundImage.value = `background-image: url('${result.data}');`;\n needToBlur.value = result.data === generalStore.contentToDisplay.imageUrl;\n } catch {\n if (generalStore.contentToDisplay.imageUrl) {\n const url = encodeURI(generalStore.contentToDisplay.imageUrl);\n headerBackgroundImage.value = `background-image: url('${url}');`;\n needToBlur.value = true;\n } else {\n headerBackgroundImage.value = '';\n }\n }\n}, {deep: true, immediate: true});\n\n\nonMounted(()=>{\n window.addEventListener(\"scroll\", handleScroll);\n})\nonBeforeUnmount(() => {\n window.removeEventListener(\"scroll\", handleScroll);\n})\n\n\n//Methods\nfunction handleScroll(): void {\n if (\n window.scrollY - oldScrollY.value > 0 &&\n window.scrollY > 1 &&\n document.body.offsetHeight - window.innerHeight > 40\n ) {\n if (!scrolled.value) {\n scrolled.value = true;\n minScroll.value = 0;\n }\n } else if (\n window.scrollY - oldScrollY.value < 0 &&\n window.scrollY < 1 &&\n minScroll.value > 20\n ) {\n scrolled.value = false;\n minScroll.value = 0;\n }\n oldScrollY.value = window.scrollY;\n if (minScroll.value < window.scrollY) {\n minScroll.value = window.scrollY;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app {\n --header-size: 5rem;\n --header-additional-content-size: 22rem;\n @media (width <= 650px) {\n --header-size: 3.5rem;\n }\n @media (width <= 550px) {\n --header-additional-content-size: 13rem;\n }\n .header-saooti-play{\n z-index: 11;\n position: sticky;\n top: 0;\n background-color: black;\n &.header-img-bg{\n background-position: center -20vw;\n background-repeat: no-repeat;\n background-size: cover;\n }\n &.bg-gradient, &.scrolled{\n box-shadow: 0 2px 15px 5px var(--octopus-shadow) !important; \n }\n }\n .header-content-bg{\n background-position: center calc(calc(var(--header-size) * -1) - 20vw);\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n display: flex;\n background-color: black;\n transition: height 0.7s;\n height: calc(var(--header-additional-content-size) - var(--header-size));\n @starting-style {\n height: 0rem;\n }\n &.scrolled {\n height: 0rem;\n }\n }\n .header-additional-content{\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n width: 100%;\n }\n .header-additional-content, .header-opacity{\n background: oklch(0 0 0 / 0.5);\n }\n .header-force-blur .header-additional-content, .header-force-blur .header-opacity{\n backdrop-filter: blur(8px);\n }\n .header-content{\n *:focus-visible {\n box-shadow: 0 0 10px 1px white !important;\n }\n h1 {\n color: white !important;\n font-size: 1.8rem;\n margin: 2rem 5rem;\n @media (width <= 550px) {\n font-size: 1rem;\n margin: 1rem 0.5rem 0.5rem;\n }\n }\n .admin-button:hover,\n .share-btn:hover {\n background: white;\n }\n }\n}\n</style>\n","<template>\n <header\n role=\"banner\"\n class=\"header-saooti-play\"\n :style=\"headerBackgroundImage\"\n :class=\"[generalStore.contentToDisplay ? 'header-img-bg':'bg-gradient', scrolled? 'scrolled':'', needToBlur ? 'header-force-blur':'']\"\n >\n <TopBarMainContent\n :is-phone=\"isPhone\"\n :scrolled=\"scrolled\"\n :title-display=\"titleToDisplay\"\n style=\"height: var(--header-size);\"\n :class=\"headerBackgroundImage.length ? 'header-opacity':''\"\n :options=\"options?.topBarMainContent\"\n />\n </header>\n\n <div\n v-if=\"generalStore.contentToDisplay\"\n class=\"header-content-bg\"\n :style=\"headerBackgroundImage\"\n :class=\"{ scrolled: scrolled, 'header-force-blur':needToBlur }\"\n >\n <div class=\"header-additional-content header-content\">\n <h1 v-if=\"!scrolled\" class=\"text-truncate\">\n {{ titleToDisplay }}\n </h1>\n <SubscribeButtons\n v-if=\"!authStore.isGarRole && content\"\n v-show=\"!scrolled\"\n :content=\"content\"\n :window-width=\"windowWidth\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport TopBarMainContent, { type TopBarMainContentOptions } from \"./TopBarMainContent.vue\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, onMounted, ref, watch } from \"vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport {useResizePhone} from \"../composable/useResizePhone\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { Canal } from \"@/stores/class/radio/canal\";\nimport axios from \"axios\";\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../display/sharing/SubscribeButtons.vue\"),\n);\n\ndefineProps<{\n options?: {\n topBarMainContent?: TopBarMainContentOptions\n }\n}>();\n\n//Data \nconst scrolled = ref(false);\nconst oldScrollY = ref(0);\nconst minScroll = ref(0);\nconst headerBackgroundImage = ref(\"\");\nconst needToBlur = ref(false);\n\n\n//Composables\nconst { isPhone, windowWidth } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\n\n//Computed\nconst titleToDisplay = computed(() => {\n if ((generalStore.contentToDisplay as Podcast)?.podcastId) {\n return (generalStore.contentToDisplay as Podcast).emission.name;\n }\n if ((generalStore.contentToDisplay as Playlist)?.playlistId) {\n return (generalStore.contentToDisplay as Playlist).title;\n }\n if ((generalStore.contentToDisplay as Emission)?.emissionId) {\n return (generalStore.contentToDisplay as Emission).name;\n }\n if ((generalStore.contentToDisplay as Canal)?.id) {\n return (generalStore.contentToDisplay as Canal).name;\n }\n return \"\";\n});\n\n/** The element displayed by the subscribe buttons */\nconst content = computed(() => {\n if ((generalStore.contentToDisplay as Podcast)?.podcastId) {\n return (generalStore.contentToDisplay as Podcast).emission;\n }\n if ((generalStore.contentToDisplay as Emission)?.emissionId) {\n return generalStore.contentToDisplay as Emission;\n }\n if ((generalStore.contentToDisplay as Playlist)?.playlistId) {\n return generalStore.contentToDisplay as Playlist;\n }\n return null;\n});\n\n//Watch\nwatch(()=>generalStore.contentToDisplay, async () => {\n if(!generalStore.contentToDisplay){\n headerBackgroundImage.value = \"\";\n needToBlur.value = false;\n return;\n }\n const widthAsked = window.innerWidth > 960 ? \"1600\":\"1000\";\n const proxyUrl = useProxyImageUrl(generalStore.contentToDisplay.imageUrl, widthAsked, undefined, true);\n try {\n const result = await axios.get(proxyUrl);\n headerBackgroundImage.value = `background-image: url('${result.data}');`;\n needToBlur.value = result.data === generalStore.contentToDisplay.imageUrl;\n } catch {\n if (generalStore.contentToDisplay.imageUrl) {\n const url = encodeURI(generalStore.contentToDisplay.imageUrl);\n headerBackgroundImage.value = `background-image: url('${url}');`;\n needToBlur.value = true;\n } else {\n headerBackgroundImage.value = '';\n }\n }\n}, {deep: true, immediate: true});\n\n\nonMounted(()=>{\n window.addEventListener(\"scroll\", handleScroll);\n})\nonBeforeUnmount(() => {\n window.removeEventListener(\"scroll\", handleScroll);\n})\n\n\n//Methods\nfunction handleScroll(): void {\n if (\n window.scrollY - oldScrollY.value > 0 &&\n window.scrollY > 1 &&\n document.body.offsetHeight - window.innerHeight > 40\n ) {\n if (!scrolled.value) {\n scrolled.value = true;\n minScroll.value = 0;\n }\n } else if (\n window.scrollY - oldScrollY.value < 0 &&\n window.scrollY < 1 &&\n minScroll.value > 20\n ) {\n scrolled.value = false;\n minScroll.value = 0;\n }\n oldScrollY.value = window.scrollY;\n if (minScroll.value < window.scrollY) {\n minScroll.value = window.scrollY;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app {\n --header-size: 5rem;\n --header-additional-content-size: 22rem;\n @media (width <= 650px) {\n --header-size: 3.5rem;\n }\n @media (width <= 550px) {\n --header-additional-content-size: 13rem;\n }\n .header-saooti-play{\n z-index: 11;\n position: sticky;\n top: 0;\n background-color: black;\n &.header-img-bg{\n background-position: center -20vw;\n background-repeat: no-repeat;\n background-size: cover;\n }\n &.bg-gradient, &.scrolled{\n box-shadow: 0 2px 15px 5px var(--octopus-shadow) !important; \n }\n }\n .header-content-bg{\n background-position: center calc(calc(var(--header-size) * -1) - 20vw);\n background-repeat: no-repeat;\n background-size: cover;\n width: 100%;\n display: flex;\n background-color: black;\n transition: height 0.7s;\n height: calc(var(--header-additional-content-size) - var(--header-size));\n @starting-style {\n height: 0rem;\n }\n &.scrolled {\n height: 0rem;\n }\n }\n .header-additional-content{\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n width: 100%;\n }\n .header-additional-content, .header-opacity{\n background: oklch(0 0 0 / 0.5);\n }\n .header-force-blur .header-additional-content, .header-force-blur .header-opacity{\n backdrop-filter: blur(8px);\n }\n .header-content{\n *:focus-visible {\n box-shadow: 0 0 10px 1px white !important;\n }\n h1 {\n color: white !important;\n font-size: 1.8rem;\n margin: 2rem 5rem;\n @media (width <= 550px) {\n font-size: 1rem;\n margin: 1rem 0.5rem 0.5rem;\n }\n }\n .admin-button:hover,\n .share-btn:hover {\n background: white;\n }\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
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 { A as state, O as useApiStore, i as useAuthStore } from "./classicApi-
|
|
3
|
+
import { A as state, O as useApiStore, i as useAuthStore } from "./classicApi-xjOqAovv.mjs";
|
|
4
4
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderList, resolveComponent, toDisplayString, withCtx } from "vue";
|
|
5
5
|
import { useI18n } from "vue-i18n";
|
|
6
6
|
import { useRoute } from "vue-router";
|
|
@@ -63,25 +63,25 @@ var UserButtonContent_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
|
|
|
63
63
|
{
|
|
64
64
|
title: t("My space"),
|
|
65
65
|
class: "octopus-dropdown-item show-small-screen",
|
|
66
|
-
path: "
|
|
66
|
+
path: { name: "backoffice" },
|
|
67
67
|
condition: isAuthenticatedWithOrga.value
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
title: t("Upload"),
|
|
71
71
|
class: "octopus-dropdown-item show-small-screen",
|
|
72
|
-
path: "
|
|
72
|
+
path: { name: "upload-podcast" },
|
|
73
73
|
condition: isAuthenticatedWithOrga.value && authStore.isRoleContribution
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
|
-
title: t("
|
|
76
|
+
title: t("User profile - Title - My profile"),
|
|
77
77
|
class: "octopus-dropdown-item",
|
|
78
|
-
path: "
|
|
78
|
+
path: { name: "my-profile" },
|
|
79
79
|
condition: true
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
title: t("Edit my organisation"),
|
|
83
83
|
class: "octopus-dropdown-item",
|
|
84
|
-
path: "
|
|
84
|
+
path: { name: "edit-organisation" },
|
|
85
85
|
condition: isAuthenticatedWithOrga.value && (authStore.isRoleOrganisation || 1 < organisationsAvailable.value.length)
|
|
86
86
|
}
|
|
87
87
|
];
|
|
@@ -182,4 +182,4 @@ var UserButtonContent_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
|
|
|
182
182
|
//#endregion
|
|
183
183
|
export { UserButtonContent_exports as n, UserButtonContent_default as t };
|
|
184
184
|
|
|
185
|
-
//# sourceMappingURL=UserButtonContent-
|
|
185
|
+
//# sourceMappingURL=UserButtonContent-D13cVA34.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserButtonContent-D13cVA34.mjs","names":[],"sources":["../src/components/misc/UserButtonContent.vue","../src/components/misc/UserButtonContent.vue"],"sourcesContent":["<template>\n <nav :aria-label=\"navLabel\">\n <ul class=\"p-0 m-0\">\n <template v-if=\"specificRoutes.length\">\n <li\n v-for=\"routerBack in specificRoutes\"\n :key=\"routerBack.path\"\n class=\"li-style-none\"\n >\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && routerBack.condition\"\n :class=\"routerBack.class\"\n :to=\"routerBack.path\"\n >\n {{ routerBack.title }}\n </router-link>\n </li>\n <hr v-if=\"displayUserContent\">\n </template>\n <template v-if=\"displayUserContent\">\n <template v-if=\"!isAuthenticated\">\n <li class=\"li-style-none\">\n <a class=\"octopus-dropdown-item realLink\" :href=\"pathLogin\">\n {{ t(\"Login\") }}\n </a>\n </li>\n <li class=\"li-style-none\">\n <router-link\n v-if=\"!state.generalParameters.podcastmaker\"\n class=\"octopus-dropdown-item\"\n to=\"/main/pub/create\"\n >\n {{ t(\"Create an account\") }}\n </router-link>\n </li>\n </template>\n <template v-else>\n <li\n v-for=\"routeBackoffice in routerBackoffice\"\n :key=\"routeBackoffice.path\"\n class=\"li-style-none\"\n >\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && routeBackoffice.condition\"\n :class=\"routeBackoffice.class\"\n :to=\"routeBackoffice.path\"\n >\n {{ routeBackoffice.title }}\n </router-link>\n </li>\n <hr>\n <template v-if=\"helpLinks.length\">\n <li\n v-for=\"helpLink in helpLinks\"\n :key=\"helpLink.title\"\n class=\"li-style-none\"\n >\n <a\n :href=\"helpLink.href\"\n class=\"octopus-dropdown-item realLink\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text: helpLink.title})\"\n >\n {{ helpLink.title }}\n <OpenInNewIcon class=\"ms-1\" :size=\"15\" />\n </a>\n </li>\n <hr>\n </template>\n <li class=\"li-style-none\">\n <a class=\"octopus-dropdown-item c-hand\" href=\"/logout\">\n {{ t(\"Logout\") }}\n </a>\n </li>\n </template>\n <li class=\"li-style-none\">\n <router-link\n v-if=\"!authStore.isGarRole\"\n class=\"octopus-dropdown-item\"\n to=\"/main/pub/contact\"\n >\n {{ t(\"Contact\") }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport OpenInNewIcon from \"vue-material-design-icons/OpenInNew.vue\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { computed } from \"vue\";\nimport { useApiStore } from \"../../stores/ApiStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteLocationAsPathGeneric, RouteLocationAsRelativeGeneric, useRoute } from \"vue-router\";\n\n//Interface\ninterface RouteInfo{\n title: string;\n class: string;\n path: string | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric;\n condition: boolean\n}\n\n//Props \nconst props = defineProps({\n isEducation: { default: false, type: Boolean },\n navLabel: { default: \"\", type: String },\n specificRoutes: { default: ()=>[], type: Array as ()=> Array<RouteInfo> },\n displayUserContent: { default: true, type: Boolean },\n})\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst route = useRoute();\n\n//Computed\nconst isAuthenticated = computed(() => undefined !== authStore.authProfile?.userId);\nconst pathLogin = computed(() => \"/sso/login?redirect_url=\"+encodeURI(apiStore.frontendUrl + route.fullPath));\nconst isAuthenticatedWithOrga = computed(() => undefined !== authStore.authOrgaId);\nconst organisationsAvailable = computed(() => authStore.authProfile?.organisations ?? []);\n\nconst helpLinks = computed(() => {\n if (authStore.isGarRole || props.isEducation) {\n return [];\n }\n return [\n { title:t(\"Help\"), href: \"https://help.octopus.saooti.com/Aide/\"},\n { title: t(\"TutoMag\"), href: \"https://help.octopus.saooti.com/\" },\n ];\n});\nconst routerBackoffice = computed(() => {\n if(!isAuthenticated.value){\n return [];\n }\n\n return [\n {\n title: t(\"My space\"),\n class: \"octopus-dropdown-item show-small-screen\",\n path: { name: \"backoffice\" },\n condition: isAuthenticatedWithOrga.value,\n },\n {\n title: t(\"Upload\"),\n class: \"octopus-dropdown-item show-small-screen\",\n path: { name: \"upload-podcast\" },\n condition: isAuthenticatedWithOrga.value && authStore.isRoleContribution,\n },\n {\n title: t(\"User profile - Title - My profile\"),\n class: \"octopus-dropdown-item\",\n path: { name: \"my-profile\" },\n condition: true,\n },\n {\n title: t(\"Edit my organisation\"),\n class: \"octopus-dropdown-item\",\n path: { name: \"edit-organisation\" },\n condition:\n isAuthenticatedWithOrga.value &&\n (authStore.isRoleOrganisation || 1 < organisationsAvailable.value.length),\n },\n ];\n});\n\n</script>\n","<template>\n <nav :aria-label=\"navLabel\">\n <ul class=\"p-0 m-0\">\n <template v-if=\"specificRoutes.length\">\n <li\n v-for=\"routerBack in specificRoutes\"\n :key=\"routerBack.path\"\n class=\"li-style-none\"\n >\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && routerBack.condition\"\n :class=\"routerBack.class\"\n :to=\"routerBack.path\"\n >\n {{ routerBack.title }}\n </router-link>\n </li>\n <hr v-if=\"displayUserContent\">\n </template>\n <template v-if=\"displayUserContent\">\n <template v-if=\"!isAuthenticated\">\n <li class=\"li-style-none\">\n <a class=\"octopus-dropdown-item realLink\" :href=\"pathLogin\">\n {{ t(\"Login\") }}\n </a>\n </li>\n <li class=\"li-style-none\">\n <router-link\n v-if=\"!state.generalParameters.podcastmaker\"\n class=\"octopus-dropdown-item\"\n to=\"/main/pub/create\"\n >\n {{ t(\"Create an account\") }}\n </router-link>\n </li>\n </template>\n <template v-else>\n <li\n v-for=\"routeBackoffice in routerBackoffice\"\n :key=\"routeBackoffice.path\"\n class=\"li-style-none\"\n >\n <router-link\n v-if=\"!state.generalParameters.podcastmaker && routeBackoffice.condition\"\n :class=\"routeBackoffice.class\"\n :to=\"routeBackoffice.path\"\n >\n {{ routeBackoffice.title }}\n </router-link>\n </li>\n <hr>\n <template v-if=\"helpLinks.length\">\n <li\n v-for=\"helpLink in helpLinks\"\n :key=\"helpLink.title\"\n class=\"li-style-none\"\n >\n <a\n :href=\"helpLink.href\"\n class=\"octopus-dropdown-item realLink\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text: helpLink.title})\"\n >\n {{ helpLink.title }}\n <OpenInNewIcon class=\"ms-1\" :size=\"15\" />\n </a>\n </li>\n <hr>\n </template>\n <li class=\"li-style-none\">\n <a class=\"octopus-dropdown-item c-hand\" href=\"/logout\">\n {{ t(\"Logout\") }}\n </a>\n </li>\n </template>\n <li class=\"li-style-none\">\n <router-link\n v-if=\"!authStore.isGarRole\"\n class=\"octopus-dropdown-item\"\n to=\"/main/pub/contact\"\n >\n {{ t(\"Contact\") }}\n </router-link>\n </li>\n </template>\n </ul>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport OpenInNewIcon from \"vue-material-design-icons/OpenInNew.vue\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { computed } from \"vue\";\nimport { useApiStore } from \"../../stores/ApiStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteLocationAsPathGeneric, RouteLocationAsRelativeGeneric, useRoute } from \"vue-router\";\n\n//Interface\ninterface RouteInfo{\n title: string;\n class: string;\n path: string | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric;\n condition: boolean\n}\n\n//Props \nconst props = defineProps({\n isEducation: { default: false, type: Boolean },\n navLabel: { default: \"\", type: String },\n specificRoutes: { default: ()=>[], type: Array as ()=> Array<RouteInfo> },\n displayUserContent: { default: true, type: Boolean },\n})\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst route = useRoute();\n\n//Computed\nconst isAuthenticated = computed(() => undefined !== authStore.authProfile?.userId);\nconst pathLogin = computed(() => \"/sso/login?redirect_url=\"+encodeURI(apiStore.frontendUrl + route.fullPath));\nconst isAuthenticatedWithOrga = computed(() => undefined !== authStore.authOrgaId);\nconst organisationsAvailable = computed(() => authStore.authProfile?.organisations ?? []);\n\nconst helpLinks = computed(() => {\n if (authStore.isGarRole || props.isEducation) {\n return [];\n }\n return [\n { title:t(\"Help\"), href: \"https://help.octopus.saooti.com/Aide/\"},\n { title: t(\"TutoMag\"), href: \"https://help.octopus.saooti.com/\" },\n ];\n});\nconst routerBackoffice = computed(() => {\n if(!isAuthenticated.value){\n return [];\n }\n\n return [\n {\n title: t(\"My space\"),\n class: \"octopus-dropdown-item show-small-screen\",\n path: { name: \"backoffice\" },\n condition: isAuthenticatedWithOrga.value,\n },\n {\n title: t(\"Upload\"),\n class: \"octopus-dropdown-item show-small-screen\",\n path: { name: \"upload-podcast\" },\n condition: isAuthenticatedWithOrga.value && authStore.isRoleContribution,\n },\n {\n title: t(\"User profile - Title - My profile\"),\n class: \"octopus-dropdown-item\",\n path: { name: \"my-profile\" },\n condition: true,\n },\n {\n title: t(\"Edit my organisation\"),\n class: \"octopus-dropdown-item\",\n path: { name: \"edit-organisation\" },\n condition:\n isAuthenticatedWithOrga.value &&\n (authStore.isRoleOrganisation || 1 < organisationsAvailable.value.length),\n },\n ];\n});\n\n</script>\n"],"mappings":"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"}
|