@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":"useAdvancedParamInit-CCprE3H2.mjs","names":[],"sources":["../src/components/composable/route/useAdvancedParamInit.ts"],"sourcesContent":["import { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { useOrgaComputed } from \"../useOrgaComputed\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { useSimplePageParam } from './useSimplePageParam';\nimport { useRubriquesFilterParam } from './useRubriquesFilterParam';\nimport { computed, nextTick, onMounted, Ref, ref, watch } from \"vue\";\nimport dayjs from \"dayjs\";\n\nimport { RouteProps } from \"./types\";\nimport { EmissionGroup, groupsApi } from \"../../../api/groupsApi\";\nimport { useRights } from \"../useRights\";\n\nexport const useAdvancedParamInit = (props: RouteProps, isEmission: boolean) => {\n\n const { searchPattern,organisationId, searchMinSize, paginateFirst, initSearchPattern, initOrga} = useSimplePageParam(props, false, true);\n const { isEditRights, isPodcastmaker } = useOrgaComputed();\n const { stringifyRubriquesFilter } = useRubriquesFilterParam();\n\n const filterStore = useFilterStore();\n const { canValidatePodcast } = useRights();\n\n const isInit = ref(false);\n const monetisable = ref(\"UNDEFINED\");// UNDEFINED, YES, NO\n const fromDate: Ref<string|undefined> = ref(undefined);\n const toDate: Ref<string|undefined> = ref(undefined);\n const includeHidden = ref(false);\n const sort = ref(\"DATE\"); // SCORE, DATE, POPULARITY, NAME, LAST_PODCAST_DESC\n const validity = ref(\"true\"); \n const iabId: Ref<number|undefined> = ref(undefined);\n const rubriqueFilter: Ref<Array<RubriquageFilter>> = ref([]);\n const beneficiaries = ref<string[]|null>(null);\n const emissionGroups = ref<EmissionGroup[]|null>(null);\n const onlyMyEpisodes = ref(false);\n\n const organisationRight = computed(() => isEditRights(organisationId.value));\n const organisation = computed(() => organisationId.value ?? filterStore.filterOrgaId);\n const rubriquesFilterArrayIds = computed(() => {\n const allRubriquageId: Array<number> = [];\n const noRubriquageId: Array<number> = [];\n const rubriqueId: Array<number> = [];\n for(const filter of rubriqueFilter.value){\n if (-1 === filter.rubriqueId) {\n noRubriquageId.push(filter.rubriquageId);\n } else if (0 === filter.rubriqueId) {\n allRubriquageId.push(filter.rubriquageId);\n } else {\n rubriqueId.push(filter.rubriqueId);\n }\n }\n return {\n rubriquageId: allRubriquageId,\n rubriqueId: rubriqueId,\n noRubriquageId: noRubriquageId\n }\n });\n\n watch(() => props.routeQuery, initSearchPattern);\n watch(() => props.routeMonetisable, initMonetisable);\n watch(() => props.routeSort, initSort);\n watch(() => props.routeIncludeHidden, initIncludeHidden);\n watch(() => props.routeValidity, initValidity);\n watch(() => props.routeFrom, initFromDate);\n watch(() => props.routeTo, initToDate);\n watch(() => props.routeIab, () => {iabId.value = props.routeIab;});\n watch(() => props.routeOrga, initOrga);\n watch(() => props.routeRubriques, initRubriquageFilter);\n watch(() => props.routeBeneficiaries, initBeneficiariesFilter);\n watch(() => props.routeOnlyMyEpisodes, initOnlyMyEpisodes);\n watch(() => props.routeEmissionGroups, initEmissionGroups);\n watch(organisationId, () => {\n if (!isInit.value) {\n return;\n }\n rubriqueFilter.value = [];\n });\n\n onMounted(() => {\n initAdvancedParams();\n })\n\n function initAdvancedParams(){\n iabId.value = filterStore.filterIab?.id ?? props.routeIab;\n initRubriquageFilter();\n initIncludeHidden();\n initValidity();\n initMonetisable();\n initSort();\n initFromDate();\n initToDate();\n initBeneficiariesFilter();\n initOnlyMyEpisodes();\n initEmissionGroups();\n nextTick(() => {\n isInit.value = true;\n });\n }\n\n function initFromDate(){\n if(dayjs(props.routeFrom).isValid()){\n fromDate.value = props.routeFrom;\n }\n }\n\n function initToDate(){\n if(dayjs(props.routeTo).isValid()){\n toDate.value = props.routeTo;\n }\n }\n\n function initMonetisable(){\n if([\"YES\", \"NO\"].includes(props.routeMonetisable)){\n monetisable.value = props.routeMonetisable;\n }else{\n monetisable.value = \"UNDEFINED\";\n }\n }\n\n function initSort(){\n if([\"SCORE\", \"POPULARITY\", \"NAME\", \"DATE_ASC\"].includes(props.routeSort)){\n sort.value = props.routeSort;\n }else{\n sort.value = isEmission ? \"LAST_PODCAST_DESC\" : \"DATE\";\n }\n }\n\n function initIncludeHidden(){\n includeHidden.value = undefined !== organisation.value && organisationRight.value && \"false\"!==props.routeIncludeHidden;\n }\n\n function initValidity() {\n const cantDisplay = isPodcastmaker.value || isEmission || !includeHidden.value || !canValidatePodcast();\n if(cantDisplay){\n validity.value = \"true\";\n }else{\n validity.value = props.routeValidity;\n }\n }\n\n function initRubriquageFilter(){\n if(props.routeRubriques === stringifyRubriquesFilter(rubriqueFilter.value)){\n return\n }\n const rubriqueFilterToUpdate = [];\n if(props.routeRubriques?.trim().length){\n const arrayFilter = props.routeRubriques.split(\",\");\n for(const filter of arrayFilter){\n const rubriqueFilter = filter.split(\":\");\n rubriqueFilterToUpdate.push({\n rubriquageId: parseInt(rubriqueFilter[0]),\n rubriqueId: parseInt(rubriqueFilter[1]),\n nameRubriquage: \"\",\n nameRubrique: \"\",\n })\n }\n }\n rubriqueFilter.value = rubriqueFilterToUpdate;\n }\n\n function initBeneficiariesFilter() {\n const data = props.routeBeneficiaries;\n // No beneficiaries\n if (\n data === undefined ||\n data === null ||\n data.length === 0\n ) {\n beneficiaries.value = null;\n return;\n }\n\n // No changes\n if(beneficiaries.value && data === beneficiaries.value){\n return;\n }\n\n beneficiaries.value = data;\n }\n\n function initOnlyMyEpisodes() {\n const data = props.routeOnlyMyEpisodes;\n onlyMyEpisodes.value = data;\n }\n\n async function initEmissionGroups(): Promise<void> {\n const data = props.routeEmissionGroups;\n // No groups\n if (\n data === undefined ||\n data === null ||\n data.length === 0\n ) {\n emissionGroups.value = null;\n return;\n }\n\n // No changes\n if(emissionGroups.value && data === emissionGroups.value.map(g => g.groupId)){\n return;\n }\n\n const groups = await groupsApi.getAllById(data);\n\n emissionGroups.value = Object.values(groups);\n }\n\n return {\n organisationId,\n searchPattern,\n monetisable,\n iabId,\n sort,\n includeHidden,\n fromDate,\n toDate,\n rubriqueFilter,\n searchMinSize,\n paginateFirst,\n validity,\n rubriquesFilterArrayIds,\n isInit,\n beneficiaries,\n emissionGroups,\n onlyMyEpisodes\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAdvancedParamInit-CT8CdPFW.mjs","names":[],"sources":["../src/components/composable/route/useAdvancedParamInit.ts"],"sourcesContent":["import { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { useOrgaComputed } from \"../useOrgaComputed\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { useSimplePageParam } from './useSimplePageParam';\nimport { useRubriquesFilterParam } from './useRubriquesFilterParam';\nimport { computed, nextTick, onMounted, Ref, ref, watch } from \"vue\";\nimport dayjs from \"dayjs\";\n\nimport { RouteProps } from \"./types\";\nimport { EmissionGroup, groupsApi } from \"../../../api/groupsApi\";\nimport { useRights } from \"../useRights\";\n\nexport const useAdvancedParamInit = (props: RouteProps, isEmission: boolean) => {\n\n const { searchPattern,organisationId, searchMinSize, paginateFirst, initSearchPattern, initOrga} = useSimplePageParam(props, false, true);\n const { isEditRights, isPodcastmaker } = useOrgaComputed();\n const { stringifyRubriquesFilter } = useRubriquesFilterParam();\n\n const filterStore = useFilterStore();\n const { canValidatePodcast } = useRights();\n\n const isInit = ref(false);\n const monetisable = ref(\"UNDEFINED\");// UNDEFINED, YES, NO\n const fromDate: Ref<string|undefined> = ref(undefined);\n const toDate: Ref<string|undefined> = ref(undefined);\n const includeHidden = ref(false);\n const sort = ref(\"DATE\"); // SCORE, DATE, POPULARITY, NAME, LAST_PODCAST_DESC\n const validity = ref(\"true\"); \n const iabId: Ref<number|undefined> = ref(undefined);\n const rubriqueFilter: Ref<Array<RubriquageFilter>> = ref([]);\n const beneficiaries = ref<string[]|null>(null);\n const emissionGroups = ref<EmissionGroup[]|null>(null);\n const onlyMyEpisodes = ref(false);\n\n const organisationRight = computed(() => isEditRights(organisationId.value));\n const organisation = computed(() => organisationId.value ?? filterStore.filterOrgaId);\n const rubriquesFilterArrayIds = computed(() => {\n const allRubriquageId: Array<number> = [];\n const noRubriquageId: Array<number> = [];\n const rubriqueId: Array<number> = [];\n for(const filter of rubriqueFilter.value){\n if (-1 === filter.rubriqueId) {\n noRubriquageId.push(filter.rubriquageId);\n } else if (0 === filter.rubriqueId) {\n allRubriquageId.push(filter.rubriquageId);\n } else {\n rubriqueId.push(filter.rubriqueId);\n }\n }\n return {\n rubriquageId: allRubriquageId,\n rubriqueId: rubriqueId,\n noRubriquageId: noRubriquageId\n }\n });\n\n watch(() => props.routeQuery, initSearchPattern);\n watch(() => props.routeMonetisable, initMonetisable);\n watch(() => props.routeSort, initSort);\n watch(() => props.routeIncludeHidden, initIncludeHidden);\n watch(() => props.routeValidity, initValidity);\n watch(() => props.routeFrom, initFromDate);\n watch(() => props.routeTo, initToDate);\n watch(() => props.routeIab, () => {iabId.value = props.routeIab;});\n watch(() => props.routeOrga, initOrga);\n watch(() => props.routeRubriques, initRubriquageFilter);\n watch(() => props.routeBeneficiaries, initBeneficiariesFilter);\n watch(() => props.routeOnlyMyEpisodes, initOnlyMyEpisodes);\n watch(() => props.routeEmissionGroups, initEmissionGroups);\n watch(organisationId, () => {\n if (!isInit.value) {\n return;\n }\n rubriqueFilter.value = [];\n });\n\n onMounted(() => {\n initAdvancedParams();\n })\n\n function initAdvancedParams(){\n iabId.value = filterStore.filterIab?.id ?? props.routeIab;\n initRubriquageFilter();\n initIncludeHidden();\n initValidity();\n initMonetisable();\n initSort();\n initFromDate();\n initToDate();\n initBeneficiariesFilter();\n initOnlyMyEpisodes();\n initEmissionGroups();\n nextTick(() => {\n isInit.value = true;\n });\n }\n\n function initFromDate(){\n if(dayjs(props.routeFrom).isValid()){\n fromDate.value = props.routeFrom;\n }\n }\n\n function initToDate(){\n if(dayjs(props.routeTo).isValid()){\n toDate.value = props.routeTo;\n }\n }\n\n function initMonetisable(){\n if([\"YES\", \"NO\"].includes(props.routeMonetisable)){\n monetisable.value = props.routeMonetisable;\n }else{\n monetisable.value = \"UNDEFINED\";\n }\n }\n\n function initSort(){\n if([\"SCORE\", \"POPULARITY\", \"NAME\", \"DATE_ASC\"].includes(props.routeSort)){\n sort.value = props.routeSort;\n }else{\n sort.value = isEmission ? \"LAST_PODCAST_DESC\" : \"DATE\";\n }\n }\n\n function initIncludeHidden(){\n includeHidden.value = undefined !== organisation.value && organisationRight.value && \"false\"!==props.routeIncludeHidden;\n }\n\n function initValidity() {\n const cantDisplay = isPodcastmaker.value || isEmission || !includeHidden.value || !canValidatePodcast();\n if(cantDisplay){\n validity.value = \"true\";\n }else{\n validity.value = props.routeValidity;\n }\n }\n\n function initRubriquageFilter(){\n if(props.routeRubriques === stringifyRubriquesFilter(rubriqueFilter.value)){\n return\n }\n const rubriqueFilterToUpdate = [];\n if(props.routeRubriques?.trim().length){\n const arrayFilter = props.routeRubriques.split(\",\");\n for(const filter of arrayFilter){\n const rubriqueFilter = filter.split(\":\");\n rubriqueFilterToUpdate.push({\n rubriquageId: parseInt(rubriqueFilter[0]),\n rubriqueId: parseInt(rubriqueFilter[1]),\n nameRubriquage: \"\",\n nameRubrique: \"\",\n })\n }\n }\n rubriqueFilter.value = rubriqueFilterToUpdate;\n }\n\n function initBeneficiariesFilter() {\n const data = props.routeBeneficiaries;\n // No beneficiaries\n if (\n data === undefined ||\n data === null ||\n data.length === 0\n ) {\n beneficiaries.value = null;\n return;\n }\n\n // No changes\n if(beneficiaries.value && data === beneficiaries.value){\n return;\n }\n\n beneficiaries.value = data;\n }\n\n function initOnlyMyEpisodes() {\n const data = props.routeOnlyMyEpisodes;\n onlyMyEpisodes.value = data;\n }\n\n async function initEmissionGroups(): Promise<void> {\n const data = props.routeEmissionGroups;\n // No groups\n if (\n data === undefined ||\n data === null ||\n data.length === 0\n ) {\n emissionGroups.value = null;\n return;\n }\n\n // No changes\n if(emissionGroups.value && data === emissionGroups.value.map(g => g.groupId)){\n return;\n }\n\n const groups = await groupsApi.getAllById(data);\n\n emissionGroups.value = Object.values(groups);\n }\n\n return {\n organisationId,\n searchPattern,\n monetisable,\n iabId,\n sort,\n includeHidden,\n fromDate,\n toDate,\n rubriqueFilter,\n searchMinSize,\n paginateFirst,\n validity,\n rubriquesFilterArrayIds,\n isInit,\n beneficiaries,\n emissionGroups,\n onlyMyEpisodes\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDayjs-BPXVSBns.mjs","names":[],"sources":["../src/components/composable/useDayjs.ts"],"sourcesContent":["import dayjs, { Dayjs } from \"dayjs\";\nimport { useI18n } from \"vue-i18n\"\n\nimport \"dayjs/locale/de\";\nimport \"dayjs/locale/es\";\nimport \"dayjs/locale/fr\";\nimport \"dayjs/locale/it\";\nimport \"dayjs/locale/sl\";\n\nimport duration from \"dayjs/plugin/duration\";\ndayjs.extend(duration);\n\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\ndayjs.extend(localizedFormat);\n\nimport { state } from \"../../stores/ParamSdkStore\";\n\nexport const useDayjs = () => {\n const { locale } = useI18n();\n\n function composableDayjs(param?: string|number|Date|Dayjs): Dayjs {\n return dayjs(param).locale(locale.value);\n }\n composableDayjs.duration = dayjs.duration;\n\n function formatDate(param: string|number|Date|Dayjs, forceTime?: boolean): string {\n const withTime = forceTime ?? state.generalParameters.showTimeWithDates === true;\n const format = withTime ? 'D MMMM YYYY - HH:mm' : 'D MMMM YYYY';\n return composableDayjs(param).format(format);\n }\n\n return {\n formatDate,\n dayjs: composableDayjs\n }\n}\n"],"mappings":";;;;;;;;;;;AAUA,MAAM,OAAO,QAAQ;AAGrB,MAAM,OAAO,eAAe;AAI5B,IAAa,iBAAiB;CAC1B,MAAM,EAAE,WAAW,QAAQ;CAE3B,SAAS,gBAAgB,OAAyC;EAC9D,OAAO,MAAM,KAAK,EAAE,OAAO,OAAO,KAAK;CAC3C;CACA,gBAAgB,WAAW,MAAM;CAEjC,SAAS,WAAW,OAAiC,WAA6B;EAE9E,MAAM,SADW,aAAa,MAAM,kBAAkB,sBAAsB,OAClD,wBAAwB;EAClD,OAAO,gBAAgB,KAAK,EAAE,OAAO,MAAM;CAC/C;CAEA,OAAO;EACH;EACA,OAAO;CACX;AACJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as state } from "./classicApi-
|
|
1
|
+
import { A as state } from "./classicApi-xjOqAovv.mjs";
|
|
2
2
|
import { useI18n } from "vue-i18n";
|
|
3
3
|
import dayjs from "dayjs";
|
|
4
4
|
import "dayjs/locale/de";
|
|
@@ -29,4 +29,4 @@ var useDayjs = () => {
|
|
|
29
29
|
//#endregion
|
|
30
30
|
export { useDayjs as t };
|
|
31
31
|
|
|
32
|
-
//# sourceMappingURL=useDayjs-
|
|
32
|
+
//# sourceMappingURL=useDayjs-DPVjvJPN.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDayjs-DPVjvJPN.mjs","names":[],"sources":["../src/components/composable/useDayjs.ts"],"sourcesContent":["import dayjs, { Dayjs } from \"dayjs\";\nimport { useI18n } from \"vue-i18n\"\n\nimport \"dayjs/locale/de\";\nimport \"dayjs/locale/es\";\nimport \"dayjs/locale/fr\";\nimport \"dayjs/locale/it\";\nimport \"dayjs/locale/sl\";\n\nimport duration from \"dayjs/plugin/duration\";\ndayjs.extend(duration);\n\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\ndayjs.extend(localizedFormat);\n\nimport { state } from \"../../stores/ParamSdkStore\";\n\nexport const useDayjs = () => {\n const { locale } = useI18n();\n\n function composableDayjs(param?: string|number|Date|Dayjs): Dayjs {\n return dayjs(param).locale(locale.value);\n }\n composableDayjs.duration = dayjs.duration;\n\n function formatDate(param: string|number|Date|Dayjs, forceTime?: boolean): string {\n const withTime = forceTime ?? state.generalParameters.showTimeWithDates === true;\n const format = withTime ? 'D MMMM YYYY - HH:mm' : 'D MMMM YYYY';\n return composableDayjs(param).format(format);\n }\n\n return {\n formatDate,\n dayjs: composableDayjs\n }\n}\n"],"mappings":";;;;;;;;;;;AAUA,MAAM,OAAO,QAAQ;AAGrB,MAAM,OAAO,eAAe;AAI5B,IAAa,iBAAiB;CAC1B,MAAM,EAAE,WAAW,QAAQ;CAE3B,SAAS,gBAAgB,OAAyC;EAC9D,OAAO,MAAM,KAAK,EAAE,OAAO,OAAO,KAAK;CAC3C;CACA,gBAAgB,WAAW,MAAM;CAEjC,SAAS,WAAW,OAAiC,WAA6B;EAE9E,MAAM,SADW,aAAa,MAAM,kBAAkB,sBAAsB,OAClD,wBAAwB;EAClD,OAAO,gBAAgB,KAAK,EAAE,OAAO,MAAM;CAC/C;CAEA,OAAO;EACH;EACA,OAAO;CACX;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useErrorHandler-BxQT9ZGf.mjs","names":[],"sources":["../src/components/composable/useErrorHandler.ts"],"sourcesContent":["import { AxiosError } from \"axios\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useRouter } from \"vue-router\";\n\nexport const useErrorHandler = ()=>{\n\n const authStore = useAuthStore();\n const router = useRouter();\n\n function handle403(error: AxiosError): void {\n if (403 === error.response?.status) {\n if (undefined === authStore.authOrgaId) {\n window.location.href = window.location.origin + \"/sso/login\";\n } else {\n console.error(error);\n router.push({\n path: \"/main/pub/error\",\n });\n }\n }\n }\n\n return {\n handle403\n }\n}\n"],"mappings":";;;AAIA,IAAa,wBAAsB;CAEjC,MAAM,YAAY,aAAa;CAC/B,MAAM,SAAS,UAAU;CAEzB,SAAS,UAAU,OAAyB;EAC1C,IAAI,QAAQ,MAAM,UAAU,QAC1B,IAAI,KAAA,MAAc,UAAU,YAC1B,OAAO,SAAS,OAAO,OAAO,SAAS,SAAS;OAC3C;GACL,QAAQ,MAAM,KAAK;GACnB,OAAO,KAAK,EACV,MAAM,kBACR,CAAC;EACH;CAEJ;CAEA,OAAO,EACL,UACF;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as useAuthStore } from "./classicApi-
|
|
1
|
+
import { i as useAuthStore } from "./classicApi-xjOqAovv.mjs";
|
|
2
2
|
import { useRouter } from "vue-router";
|
|
3
3
|
//#region src/components/composable/useErrorHandler.ts
|
|
4
4
|
var useErrorHandler = () => {
|
|
@@ -16,4 +16,4 @@ var useErrorHandler = () => {
|
|
|
16
16
|
//#endregion
|
|
17
17
|
export { useErrorHandler as t };
|
|
18
18
|
|
|
19
|
-
//# sourceMappingURL=useErrorHandler-
|
|
19
|
+
//# sourceMappingURL=useErrorHandler-D3XVxUh6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useErrorHandler-D3XVxUh6.mjs","names":[],"sources":["../src/components/composable/useErrorHandler.ts"],"sourcesContent":["import { AxiosError } from \"axios\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useRouter } from \"vue-router\";\n\nexport const useErrorHandler = ()=>{\n\n const authStore = useAuthStore();\n const router = useRouter();\n\n function handle403(error: AxiosError): void {\n if (403 === error.response?.status) {\n if (undefined === authStore.authOrgaId) {\n window.location.href = window.location.origin + \"/sso/login\";\n } else {\n console.error(error);\n router.push({\n path: \"/main/pub/error\",\n });\n }\n }\n }\n\n return {\n handle403\n }\n}\n"],"mappings":";;;AAIA,IAAa,wBAAsB;CAEjC,MAAM,YAAY,aAAa;CAC/B,MAAM,SAAS,UAAU;CAEzB,SAAS,UAAU,OAAyB;EAC1C,IAAI,QAAQ,MAAM,UAAU,QAC1B,IAAI,KAAA,MAAc,UAAU,YAC1B,OAAO,SAAS,OAAO,OAAO,SAAS,SAAS;OAC3C;GACL,QAAQ,MAAM,KAAK;GACnB,OAAO,KAAK,EACV,MAAM,kBACR,CAAC;EACH;CAEJ;CAEA,OAAO,EACL,UACF;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { O as useApiStore } from "./classicApi-
|
|
1
|
+
import { O as useApiStore } from "./classicApi-xjOqAovv.mjs";
|
|
2
2
|
//#region src/components/composable/useImageProxy.ts
|
|
3
3
|
var useImageProxy = () => {
|
|
4
4
|
const apiStore = useApiStore();
|
|
@@ -17,4 +17,4 @@ var useImageProxy = () => {
|
|
|
17
17
|
//#endregion
|
|
18
18
|
export { useImageProxy as t };
|
|
19
19
|
|
|
20
|
-
//# sourceMappingURL=useImageProxy-
|
|
20
|
+
//# sourceMappingURL=useImageProxy-BdQJmj4a.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useImageProxy-BdQJmj4a.mjs","names":[],"sources":["../src/components/composable/useImageProxy.ts"],"sourcesContent":["import { useApiStore } from \"../../stores/ApiStore\";\nexport const useImageProxy = ()=>{\n\n const apiStore = useApiStore();\n\n function useProxyImageUrl(url: string|undefined, width: string, height?: string, blur=false): string {\n if (!url) {\n return \"\";\n }\n\n // Encode URL to prevent some display issues\n url = encodeURI(url);\n\n if (apiStore.imageUrl && url.includes(\"http\")) {\n const size = height ? \"height=\" + height : \"width=\" + width;\n const encode = btoa(url).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n return (\n apiStore.imageUrl +\n \"image/\" +\n (blur ? \"noRedirect/\":\"\")+\n encode +\n \"?\" +\n size +\n \"&useWebp=true\"+\n (blur ? \"&blur=true\":\"\")\n );\n }\n return url;\n }\n\n return {\n useProxyImageUrl\n }\n}\n"],"mappings":";;AACA,IAAa,sBAAoB;CAE/B,MAAM,WAAW,YAAY;CAE7B,SAAS,iBAAiB,KAAuB,OAAe,QAAiB,OAAK,OAAe;EACnG,IAAI,CAAC,KACH,OAAO;EAIT,MAAM,UAAU,GAAG;EAEnB,IAAI,SAAS,YAAY,IAAI,SAAS,MAAM,GAAG;GAC7C,MAAM,OAAO,SAAS,YAAY,SAAS,WAAW;GACtD,MAAM,SAAS,KAAK,GAAG,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE;GAClF,OACE,SAAS,WACT,YACC,OAAO,gBAAc,MACtB,SACA,MACA,OACA,mBACC,OAAO,eAAa;EAEzB;EACA,OAAO;CACT;CAEA,OAAO,EACL,iBACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useImageProxy-DROuweGY.mjs","names":[],"sources":["../src/components/composable/useImageProxy.ts"],"sourcesContent":["import { useApiStore } from \"../../stores/ApiStore\";\nexport const useImageProxy = ()=>{\n\n const apiStore = useApiStore();\n\n function useProxyImageUrl(url: string|undefined, width: string, height?: string, blur=false): string {\n if (!url) {\n return \"\";\n }\n\n // Encode URL to prevent some display issues\n url = encodeURI(url);\n\n if (apiStore.imageUrl && url.includes(\"http\")) {\n const size = height ? \"height=\" + height : \"width=\" + width;\n const encode = btoa(url).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n return (\n apiStore.imageUrl +\n \"image/\" +\n (blur ? \"noRedirect/\":\"\")+\n encode +\n \"?\" +\n size +\n \"&useWebp=true\"+\n (blur ? \"&blur=true\":\"\")\n );\n }\n return url;\n }\n\n return {\n useProxyImageUrl\n }\n}\n"],"mappings":";;AACA,IAAa,sBAAoB;CAE/B,MAAM,WAAW,YAAY;CAE7B,SAAS,iBAAiB,KAAuB,OAAe,QAAiB,OAAK,OAAe;EACnG,IAAI,CAAC,KACH,OAAO;EAIT,MAAM,UAAU,GAAG;EAEnB,IAAI,SAAS,YAAY,IAAI,SAAS,MAAM,GAAG;GAC7C,MAAM,OAAO,SAAS,YAAY,SAAS,WAAW;GACtD,MAAM,SAAS,KAAK,GAAG,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE;GAClF,OACE,SAAS,WACT,YACC,OAAO,gBAAc,MACtB,SACA,MACA,OACA,mBACC,OAAO,eAAa;EAEzB;EACA,OAAO;CACT;CAEA,OAAO,EACL,iBACF;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as state, i as useAuthStore } from "./classicApi-
|
|
1
|
+
import { A as state, i as useAuthStore } from "./classicApi-xjOqAovv.mjs";
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
//#region src/components/composable/useOrgaComputed.ts
|
|
4
4
|
var useOrgaComputed = () => {
|
|
@@ -16,4 +16,4 @@ var useOrgaComputed = () => {
|
|
|
16
16
|
//#endregion
|
|
17
17
|
export { useOrgaComputed as t };
|
|
18
18
|
|
|
19
|
-
//# sourceMappingURL=useOrgaComputed-
|
|
19
|
+
//# sourceMappingURL=useOrgaComputed-B2Bq0VBT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrgaComputed-B2Bq0VBT.mjs","names":[],"sources":["../src/components/composable/useOrgaComputed.ts"],"sourcesContent":["import { computed } from \"vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\n\nexport const useOrgaComputed = ()=>{\n\n const authStore = useAuthStore();\n\n const isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\n\n function isEditRights(orgaId?: string, condition = true){\n return (\n (condition && undefined!==authStore.authOrgaId&&\n authStore.authOrgaId === orgaId) ||\n authStore.isRoleAdmin\n );\n }\n\n return {\n isPodcastmaker,\n isEditRights,\n authOrgaId: authStore.authOrgaId\n }\n}\n"],"mappings":";;;AAIA,IAAa,wBAAsB;CAEjC,MAAM,YAAY,aAAa;CAE/B,MAAM,iBAAiB,eAAc,MAAM,kBAAkB,YAAuB;CAEpF,SAAS,aAAa,QAAiB,YAAY,MAAK;EACtD,OACG,aAAa,KAAA,MAAY,UAAU,cAClC,UAAU,eAAe,UACzB,UAAU;CAEhB;CAEA,OAAO;EACL;EACA;EACA,YAAY,UAAU;CACxB;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrgaComputed-CGomgs0r.mjs","names":[],"sources":["../src/components/composable/useOrgaComputed.ts"],"sourcesContent":["import { computed } from \"vue\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { state } from \"../../stores/ParamSdkStore\";\n\nexport const useOrgaComputed = ()=>{\n\n const authStore = useAuthStore();\n\n const isPodcastmaker = computed(() =>state.generalParameters.podcastmaker as boolean);\n\n function isEditRights(orgaId?: string, condition = true){\n return (\n (condition && undefined!==authStore.authOrgaId&&\n authStore.authOrgaId === orgaId) ||\n authStore.isRoleAdmin\n );\n }\n\n return {\n isPodcastmaker,\n isEditRights,\n authOrgaId: authStore.authOrgaId\n }\n}\n"],"mappings":";;;AAIA,IAAa,wBAAsB;CAEjC,MAAM,YAAY,aAAa;CAE/B,MAAM,iBAAiB,eAAc,MAAM,kBAAkB,YAAuB;CAEpF,SAAS,aAAa,QAAiB,YAAY,MAAK;EACtD,OACG,aAAa,KAAA,MAAY,UAAU,cAClC,UAAU,eAAe,UACzB,UAAU;CAEhB;CAEA,OAAO;EACL;EACA;EACA,YAAY,UAAU;CACxB;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as useAuthStore, t as classicApi_default } from "./classicApi-
|
|
2
|
-
import { n as usePlayerStore } from "./PlayerStore-
|
|
1
|
+
import { i as useAuthStore, t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
|
|
2
|
+
import { n as usePlayerStore } from "./PlayerStore-vYmnOEA_.mjs";
|
|
3
3
|
import { computed, onMounted, ref, watch } from "vue";
|
|
4
4
|
//#region src/components/composable/player/usePlayerLogicProgress.ts
|
|
5
5
|
var usePlayerLogicProgress = () => {
|
|
@@ -105,4 +105,4 @@ var usePlayerLogicProgress = () => {
|
|
|
105
105
|
//#endregion
|
|
106
106
|
export { usePlayerLogicProgress as t };
|
|
107
107
|
|
|
108
|
-
//# sourceMappingURL=usePlayerLogicProgress-
|
|
108
|
+
//# sourceMappingURL=usePlayerLogicProgress-DcHbYGOR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePlayerLogicProgress-DcHbYGOR.mjs","names":[],"sources":["../src/components/composable/player/usePlayerLogicProgress.ts"],"sourcesContent":["import { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { computed, onMounted, Ref, ref, watch} from 'vue';\nimport classicApi from \"../../../api/classicApi\";\n\nexport const usePlayerLogicProgress = ()=>{\n const listenTime= ref(0);\n const notListenTime= ref(0);\n const lastSend= ref(0);\n const downloadId: Ref<string | null>= ref(null);\n const urlLiveSent= ref(false);\n\n const playerStore = usePlayerStore();\n const authStore = useAuthStore();\n\n const intervalToSend = computed(() => { \n if(lastSend.value < 180){\n return 10;\n }\n if(lastSend.value < 1800){\n return 30;\n }\n return 60;\n });\n\n watch(listenTime, async (newVal) => {\n if (\n (playerStore.playerRadio && !playerStore.playerPodcast && !playerStore.playerLive) ||\n !downloadId.value ||\n newVal - lastSend.value < intervalToSend.value\n ) {\n return;\n }\n lastSend.value = newVal;\n await sendListeningProgress(newVal);\n });\n\n watch(()=>playerStore.playerSeekTime, async () => {\n if (undefined===playerStore.playerSeekTime) {\n return;\n }\n if (playerStore.playerPodcast || playerStore.playerLive) {\n notListenTime.value = playerStore.playerSeekTime - listenTime.value;\n }\n if(playerStore.playerVideo){\n return;\n }\n const audioPlayer: HTMLAudioElement | null = document.querySelector(\"#audio-player\");\n if (!audioPlayer) {\n return;\n }\n audioPlayer.currentTime = playerStore.playerSeekTime;\n });\n\n\n\n onMounted(() => {\n window.addEventListener(\"beforeunload\", endListeningProgress);\n })\n\n async function initLiveDownloadId() {\n if (!playerStore.playerLive || downloadId.value) {\n return;\n }\n try {\n const mediaType = playerStore.playerVideo ? \"VIDEO\":\"AUDIO\";\n const downloadIdFetched = await classicApi.fetchData<string | null>({\n api:0,\n path: \"podcast/download/live2/\" + playerStore.playerLive.podcastId,\n parameters:{\n mediaType: mediaType,\n origin: \"octopus\",\n distributorId: authStore.authOrgaId,\n },\n });\n setDownloadId(downloadIdFetched);\n } catch(e) {\n downloadId.value = null;\n console.error(\"ERROR downloadId\", e);\n }\n }\n\n /**\n * @param currentTime: Temps en seconds\n */\n function onTimeUpdateProgress(currentTime: number): void {\n if (!downloadId.value) {\n return;\n }\n if (\n playerStore.playerLive &&\n 0 === listenTime.value &&\n 0 !== currentTime\n ) {\n notListenTime.value = currentTime;\n listenTime.value = 1;\n } else {\n const newListenTime = currentTime - notListenTime.value;\n const diffTime = newListenTime - listenTime.value;\n if(diffTime > 0 && diffTime<1) {\n listenTime.value = newListenTime;\n }\n }\n }\n\n function setDownloadId(newValue: string | null): void {\n endListeningProgress();\n downloadId.value = newValue;\n }\n\n async function endListeningProgress(): Promise<void> {\n if (!downloadId.value) {\n return;\n }\n await sendListeningProgress(listenTime.value);\n downloadId.value = null;\n notListenTime.value = 0;\n lastSend.value = 0;\n listenTime.value = 0;\n urlLiveSent.value = false;\n playerStore.playerUpdatePlayerHlsUrl(undefined);\n }\n\n async function sendListeningProgress(listenTime:number){\n let paramUrlLive= \"\";\n if(!urlLiveSent.value && playerStore.playerHlsUrl){\n paramUrlLive=\"&url=\"+encodeURI(playerStore.playerHlsUrl);\n urlLiveSent.value = true;\n }\n\n // Send listening updates if listening lasted more than 30 seconds\n try {\n await classicApi.putData<string | null>({\n api: 0,\n path:\"podcast/listen/\" +downloadId.value +\"?seconds=\" +Math.round(listenTime)+paramUrlLive,\n isNotAuth:true\n });\n } catch(e) {\n //Do nothing\n console.error(e);\n }\n }\n\n return {\n listenTime,\n downloadId,\n initLiveDownloadId,\n setDownloadId,\n onTimeUpdateProgress,\n endListeningProgress\n }\n}\n"],"mappings":";;;;AAKA,IAAa,+BAA6B;CACxC,MAAM,aAAY,IAAI,CAAC;CACvB,MAAM,gBAAe,IAAI,CAAC;CAC1B,MAAM,WAAU,IAAI,CAAC;CACrB,MAAM,aAAgC,IAAI,IAAI;CAC9C,MAAM,cAAa,IAAI,KAAK;CAE5B,MAAM,cAAc,eAAe;CACnC,MAAM,YAAY,aAAa;CAE/B,MAAM,iBAAiB,eAAe;EACpC,IAAG,SAAS,QAAQ,KAClB,OAAO;EAET,IAAG,SAAS,QAAQ,MAClB,OAAO;EAET,OAAO;CACT,CAAC;CAED,MAAM,YAAY,OAAO,WAAW;EAClC,IACG,YAAY,eAAe,CAAC,YAAY,iBAAiB,CAAC,YAAY,cACvE,CAAC,WAAW,SACZ,SAAS,SAAS,QAAQ,eAAe,OAEzC;EAEF,SAAS,QAAQ;EACjB,MAAM,sBAAsB,MAAM;CACpC,CAAC;CAED,YAAU,YAAY,gBAAgB,YAAY;EAChD,IAAI,KAAA,MAAY,YAAY,gBAC1B;EAEF,IAAI,YAAY,iBAAiB,YAAY,YAC3C,cAAc,QAAQ,YAAY,iBAAiB,WAAW;EAEhE,IAAG,YAAY,aACb;EAEF,MAAM,cAAuC,SAAS,cAAc,eAAe;EACnF,IAAI,CAAC,aACH;EAEF,YAAY,cAAc,YAAY;CACxC,CAAC;CAID,gBAAgB;EACZ,OAAO,iBAAiB,gBAAgB,oBAAoB;CAChE,CAAC;CAED,eAAe,qBAAqB;EAClC,IAAI,CAAC,YAAY,cAAc,WAAW,OACxC;EAEF,IAAI;GACF,MAAM,YAAY,YAAY,cAAc,UAAQ;GAUpD,cAAc,MATkB,mBAAW,UAAyB;IAClE,KAAI;IACJ,MAAM,4BAA4B,YAAY,WAAW;IACzD,YAAW;KACE;KACX,QAAQ;KACR,eAAe,UAAU;IAC3B;GACF,CAAC,CAC8B;EACjC,SAAQ,GAAG;GACT,WAAW,QAAQ;GACnB,QAAQ,MAAM,oBAAoB,CAAC;EACrC;CACF;;;;CAKA,SAAS,qBAAqB,aAA2B;EACvD,IAAI,CAAC,WAAW,OACd;EAEF,IACE,YAAY,cACZ,MAAM,WAAW,SACjB,MAAM,aACN;GACA,cAAc,QAAQ;GACtB,WAAW,QAAQ;EACrB,OAAO;GACL,MAAM,gBAAgB,cAAc,cAAc;GAClD,MAAM,WAAW,gBAAgB,WAAW;GAC5C,IAAG,WAAW,KAAK,WAAS,GAC1B,WAAW,QAAQ;EAEvB;CACF;CAEA,SAAS,cAAc,UAA+B;EACpD,qBAAqB;EACrB,WAAW,QAAQ;CACrB;CAEA,eAAe,uBAAsC;EACnD,IAAI,CAAC,WAAW,OACd;EAEF,MAAM,sBAAsB,WAAW,KAAK;EAC5C,WAAW,QAAQ;EACnB,cAAc,QAAQ;EACtB,SAAS,QAAQ;EACjB,WAAW,QAAQ;EACnB,YAAY,QAAQ;EACpB,YAAY,yBAAyB,KAAA,CAAS;CAChD;CAEA,eAAe,sBAAsB,YAAkB;EACrD,IAAI,eAAc;EAClB,IAAG,CAAC,YAAY,SAAS,YAAY,cAAa;GAChD,eAAa,UAAQ,UAAU,YAAY,YAAY;GACvD,YAAY,QAAQ;EACtB;EAGA,IAAI;GACF,MAAM,mBAAW,QAAuB;IACtC,KAAK;IACL,MAAK,oBAAmB,WAAW,QAAO,cAAa,KAAK,MAAM,UAAU,IAAE;IAC9E,WAAU;GACZ,CAAC;EACH,SAAQ,GAAG;GAET,QAAQ,MAAM,CAAC;EACjB;CACF;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePlayerLogicProgress-Dchl5sUO.mjs","names":[],"sources":["../src/components/composable/player/usePlayerLogicProgress.ts"],"sourcesContent":["import { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { computed, onMounted, Ref, ref, watch} from 'vue';\nimport classicApi from \"../../../api/classicApi\";\n\nexport const usePlayerLogicProgress = ()=>{\n const listenTime= ref(0);\n const notListenTime= ref(0);\n const lastSend= ref(0);\n const downloadId: Ref<string | null>= ref(null);\n const urlLiveSent= ref(false);\n\n const playerStore = usePlayerStore();\n const authStore = useAuthStore();\n\n const intervalToSend = computed(() => { \n if(lastSend.value < 180){\n return 10;\n }\n if(lastSend.value < 1800){\n return 30;\n }\n return 60;\n });\n\n watch(listenTime, async (newVal) => {\n if (\n (playerStore.playerRadio && !playerStore.playerPodcast && !playerStore.playerLive) ||\n !downloadId.value ||\n newVal - lastSend.value < intervalToSend.value\n ) {\n return;\n }\n lastSend.value = newVal;\n await sendListeningProgress(newVal);\n });\n\n watch(()=>playerStore.playerSeekTime, async () => {\n if (undefined===playerStore.playerSeekTime) {\n return;\n }\n if (playerStore.playerPodcast || playerStore.playerLive) {\n notListenTime.value = playerStore.playerSeekTime - listenTime.value;\n }\n if(playerStore.playerVideo){\n return;\n }\n const audioPlayer: HTMLAudioElement | null = document.querySelector(\"#audio-player\");\n if (!audioPlayer) {\n return;\n }\n audioPlayer.currentTime = playerStore.playerSeekTime;\n });\n\n\n\n onMounted(() => {\n window.addEventListener(\"beforeunload\", endListeningProgress);\n })\n\n async function initLiveDownloadId() {\n if (!playerStore.playerLive || downloadId.value) {\n return;\n }\n try {\n const mediaType = playerStore.playerVideo ? \"VIDEO\":\"AUDIO\";\n const downloadIdFetched = await classicApi.fetchData<string | null>({\n api:0,\n path: \"podcast/download/live2/\" + playerStore.playerLive.podcastId,\n parameters:{\n mediaType: mediaType,\n origin: \"octopus\",\n distributorId: authStore.authOrgaId,\n },\n });\n setDownloadId(downloadIdFetched);\n } catch(e) {\n downloadId.value = null;\n console.error(\"ERROR downloadId\", e);\n }\n }\n\n /**\n * @param currentTime: Temps en seconds\n */\n function onTimeUpdateProgress(currentTime: number): void {\n if (!downloadId.value) {\n return;\n }\n if (\n playerStore.playerLive &&\n 0 === listenTime.value &&\n 0 !== currentTime\n ) {\n notListenTime.value = currentTime;\n listenTime.value = 1;\n } else {\n const newListenTime = currentTime - notListenTime.value;\n const diffTime = newListenTime - listenTime.value;\n if(diffTime > 0 && diffTime<1) {\n listenTime.value = newListenTime;\n }\n }\n }\n\n function setDownloadId(newValue: string | null): void {\n endListeningProgress();\n downloadId.value = newValue;\n }\n\n async function endListeningProgress(): Promise<void> {\n if (!downloadId.value) {\n return;\n }\n await sendListeningProgress(listenTime.value);\n downloadId.value = null;\n notListenTime.value = 0;\n lastSend.value = 0;\n listenTime.value = 0;\n urlLiveSent.value = false;\n playerStore.playerUpdatePlayerHlsUrl(undefined);\n }\n\n async function sendListeningProgress(listenTime:number){\n let paramUrlLive= \"\";\n if(!urlLiveSent.value && playerStore.playerHlsUrl){\n paramUrlLive=\"&url=\"+encodeURI(playerStore.playerHlsUrl);\n urlLiveSent.value = true;\n }\n\n // Send listening updates if listening lasted more than 30 seconds\n try {\n await classicApi.putData<string | null>({\n api: 0,\n path:\"podcast/listen/\" +downloadId.value +\"?seconds=\" +Math.round(listenTime)+paramUrlLive,\n isNotAuth:true\n });\n } catch(e) {\n //Do nothing\n console.error(e);\n }\n }\n\n return {\n listenTime,\n downloadId,\n initLiveDownloadId,\n setDownloadId,\n onTimeUpdateProgress,\n endListeningProgress\n }\n}\n"],"mappings":";;;;AAKA,IAAa,+BAA6B;CACxC,MAAM,aAAY,IAAI,CAAC;CACvB,MAAM,gBAAe,IAAI,CAAC;CAC1B,MAAM,WAAU,IAAI,CAAC;CACrB,MAAM,aAAgC,IAAI,IAAI;CAC9C,MAAM,cAAa,IAAI,KAAK;CAE5B,MAAM,cAAc,eAAe;CACnC,MAAM,YAAY,aAAa;CAE/B,MAAM,iBAAiB,eAAe;EACpC,IAAG,SAAS,QAAQ,KAClB,OAAO;EAET,IAAG,SAAS,QAAQ,MAClB,OAAO;EAET,OAAO;CACT,CAAC;CAED,MAAM,YAAY,OAAO,WAAW;EAClC,IACG,YAAY,eAAe,CAAC,YAAY,iBAAiB,CAAC,YAAY,cACvE,CAAC,WAAW,SACZ,SAAS,SAAS,QAAQ,eAAe,OAEzC;EAEF,SAAS,QAAQ;EACjB,MAAM,sBAAsB,MAAM;CACpC,CAAC;CAED,YAAU,YAAY,gBAAgB,YAAY;EAChD,IAAI,KAAA,MAAY,YAAY,gBAC1B;EAEF,IAAI,YAAY,iBAAiB,YAAY,YAC3C,cAAc,QAAQ,YAAY,iBAAiB,WAAW;EAEhE,IAAG,YAAY,aACb;EAEF,MAAM,cAAuC,SAAS,cAAc,eAAe;EACnF,IAAI,CAAC,aACH;EAEF,YAAY,cAAc,YAAY;CACxC,CAAC;CAID,gBAAgB;EACZ,OAAO,iBAAiB,gBAAgB,oBAAoB;CAChE,CAAC;CAED,eAAe,qBAAqB;EAClC,IAAI,CAAC,YAAY,cAAc,WAAW,OACxC;EAEF,IAAI;GACF,MAAM,YAAY,YAAY,cAAc,UAAQ;GAUpD,cAAc,MATkB,mBAAW,UAAyB;IAClE,KAAI;IACJ,MAAM,4BAA4B,YAAY,WAAW;IACzD,YAAW;KACE;KACX,QAAQ;KACR,eAAe,UAAU;IAC3B;GACF,CAAC,CAC8B;EACjC,SAAQ,GAAG;GACT,WAAW,QAAQ;GACnB,QAAQ,MAAM,oBAAoB,CAAC;EACrC;CACF;;;;CAKA,SAAS,qBAAqB,aAA2B;EACvD,IAAI,CAAC,WAAW,OACd;EAEF,IACE,YAAY,cACZ,MAAM,WAAW,SACjB,MAAM,aACN;GACA,cAAc,QAAQ;GACtB,WAAW,QAAQ;EACrB,OAAO;GACL,MAAM,gBAAgB,cAAc,cAAc;GAClD,MAAM,WAAW,gBAAgB,WAAW;GAC5C,IAAG,WAAW,KAAK,WAAS,GAC1B,WAAW,QAAQ;EAEvB;CACF;CAEA,SAAS,cAAc,UAA+B;EACpD,qBAAqB;EACrB,WAAW,QAAQ;CACrB;CAEA,eAAe,uBAAsC;EACnD,IAAI,CAAC,WAAW,OACd;EAEF,MAAM,sBAAsB,WAAW,KAAK;EAC5C,WAAW,QAAQ;EACnB,cAAc,QAAQ;EACtB,SAAS,QAAQ;EACjB,WAAW,QAAQ;EACnB,YAAY,QAAQ;EACpB,YAAY,yBAAyB,KAAA,CAAS;CAChD;CAEA,eAAe,sBAAsB,YAAkB;EACrD,IAAI,eAAc;EAClB,IAAG,CAAC,YAAY,SAAS,YAAY,cAAa;GAChD,eAAa,UAAQ,UAAU,YAAY,YAAY;GACvD,YAAY,QAAQ;EACtB;EAGA,IAAI;GACF,MAAM,mBAAW,QAAuB;IACtC,KAAK;IACL,MAAK,oBAAmB,WAAW,QAAO,cAAa,KAAK,MAAM,UAAU,IAAE;IAC9E,WAAU;GACZ,CAAC;EACH,SAAQ,GAAG;GAET,QAAQ,MAAM,CAAC;EACjB;CACF;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePlayerLogicProgress-lqnQ5qNd.mjs","names":[],"sources":["../src/components/composable/player/usePlayerLogicProgress.ts"],"sourcesContent":["import { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { computed, onMounted, Ref, ref, watch} from 'vue';\nimport classicApi from \"../../../api/classicApi\";\n\nexport const usePlayerLogicProgress = ()=>{\n const listenTime= ref(0);\n const notListenTime= ref(0);\n const lastSend= ref(0);\n const downloadId: Ref<string | null>= ref(null);\n const urlLiveSent= ref(false);\n\n const playerStore = usePlayerStore();\n const authStore = useAuthStore();\n\n const intervalToSend = computed(() => { \n if(lastSend.value < 180){\n return 10;\n }\n if(lastSend.value < 1800){\n return 30;\n }\n return 60;\n });\n\n watch(listenTime, async (newVal) => {\n if (\n (playerStore.playerRadio && !playerStore.playerPodcast && !playerStore.playerLive) ||\n !downloadId.value ||\n newVal - lastSend.value < intervalToSend.value\n ) {\n return;\n }\n lastSend.value = newVal;\n await sendListeningProgress(newVal);\n });\n\n watch(()=>playerStore.playerSeekTime, async () => {\n if (undefined===playerStore.playerSeekTime) {\n return;\n }\n if (playerStore.playerPodcast || playerStore.playerLive) {\n notListenTime.value = playerStore.playerSeekTime - listenTime.value;\n }\n if(playerStore.playerVideo){\n return;\n }\n const audioPlayer: HTMLAudioElement | null = document.querySelector(\"#audio-player\");\n if (!audioPlayer) {\n return;\n }\n audioPlayer.currentTime = playerStore.playerSeekTime;\n });\n\n\n\n onMounted(() => {\n window.addEventListener(\"beforeunload\", endListeningProgress);\n })\n\n async function initLiveDownloadId() {\n if (!playerStore.playerLive || downloadId.value) {\n return;\n }\n try {\n const mediaType = playerStore.playerVideo ? \"VIDEO\":\"AUDIO\";\n const downloadIdFetched = await classicApi.fetchData<string | null>({\n api:0,\n path: \"podcast/download/live2/\" + playerStore.playerLive.podcastId,\n parameters:{\n mediaType: mediaType,\n origin: \"octopus\",\n distributorId: authStore.authOrgaId,\n },\n });\n setDownloadId(downloadIdFetched);\n } catch(e) {\n downloadId.value = null;\n console.error(\"ERROR downloadId\", e);\n }\n }\n\n /**\n * @param currentTime: Temps en seconds\n */\n function onTimeUpdateProgress(currentTime: number): void {\n if (!downloadId.value) {\n return;\n }\n if (\n playerStore.playerLive &&\n 0 === listenTime.value &&\n 0 !== currentTime\n ) {\n notListenTime.value = currentTime;\n listenTime.value = 1;\n } else {\n const newListenTime = currentTime - notListenTime.value;\n const diffTime = newListenTime - listenTime.value;\n if(diffTime > 0 && diffTime<1) {\n listenTime.value = newListenTime;\n }\n }\n }\n\n function setDownloadId(newValue: string | null): void {\n endListeningProgress();\n downloadId.value = newValue;\n }\n\n async function endListeningProgress(): Promise<void> {\n if (!downloadId.value) {\n return;\n }\n await sendListeningProgress(listenTime.value);\n downloadId.value = null;\n notListenTime.value = 0;\n lastSend.value = 0;\n listenTime.value = 0;\n urlLiveSent.value = false;\n playerStore.playerUpdatePlayerHlsUrl(undefined);\n }\n\n async function sendListeningProgress(listenTime:number){\n let paramUrlLive= \"\";\n if(!urlLiveSent.value && playerStore.playerHlsUrl){\n paramUrlLive=\"&url=\"+encodeURI(playerStore.playerHlsUrl);\n urlLiveSent.value = true;\n }\n\n // Send listening updates if listening lasted more than 30 seconds\n try {\n await classicApi.putData<string | null>({\n api: 0,\n path:\"podcast/listen/\" +downloadId.value +\"?seconds=\" +Math.round(listenTime)+paramUrlLive,\n isNotAuth:true\n });\n } catch(e) {\n //Do nothing\n console.error(e);\n }\n }\n\n return {\n listenTime,\n downloadId,\n initLiveDownloadId,\n setDownloadId,\n onTimeUpdateProgress,\n endListeningProgress\n }\n}\n"],"mappings":";;;;AAKA,IAAa,+BAA6B;CACxC,MAAM,aAAY,IAAI,CAAC;CACvB,MAAM,gBAAe,IAAI,CAAC;CAC1B,MAAM,WAAU,IAAI,CAAC;CACrB,MAAM,aAAgC,IAAI,IAAI;CAC9C,MAAM,cAAa,IAAI,KAAK;CAE5B,MAAM,cAAc,eAAe;CACnC,MAAM,YAAY,aAAa;CAE/B,MAAM,iBAAiB,eAAe;EACpC,IAAG,SAAS,QAAQ,KAClB,OAAO;EAET,IAAG,SAAS,QAAQ,MAClB,OAAO;EAET,OAAO;CACT,CAAC;CAED,MAAM,YAAY,OAAO,WAAW;EAClC,IACG,YAAY,eAAe,CAAC,YAAY,iBAAiB,CAAC,YAAY,cACvE,CAAC,WAAW,SACZ,SAAS,SAAS,QAAQ,eAAe,OAEzC;EAEF,SAAS,QAAQ;EACjB,MAAM,sBAAsB,MAAM;CACpC,CAAC;CAED,YAAU,YAAY,gBAAgB,YAAY;EAChD,IAAI,KAAA,MAAY,YAAY,gBAC1B;EAEF,IAAI,YAAY,iBAAiB,YAAY,YAC3C,cAAc,QAAQ,YAAY,iBAAiB,WAAW;EAEhE,IAAG,YAAY,aACb;EAEF,MAAM,cAAuC,SAAS,cAAc,eAAe;EACnF,IAAI,CAAC,aACH;EAEF,YAAY,cAAc,YAAY;CACxC,CAAC;CAID,gBAAgB;EACZ,OAAO,iBAAiB,gBAAgB,oBAAoB;CAChE,CAAC;CAED,eAAe,qBAAqB;EAClC,IAAI,CAAC,YAAY,cAAc,WAAW,OACxC;EAEF,IAAI;GACF,MAAM,YAAY,YAAY,cAAc,UAAQ;GAUpD,cAAc,MATkB,mBAAW,UAAyB;IAClE,KAAI;IACJ,MAAM,4BAA4B,YAAY,WAAW;IACzD,YAAW;KACE;KACX,QAAQ;KACR,eAAe,UAAU;IAC3B;GACF,CAAC,CAC8B;EACjC,SAAQ,GAAG;GACT,WAAW,QAAQ;GACnB,QAAQ,MAAM,oBAAoB,CAAC;EACrC;CACF;;;;CAKA,SAAS,qBAAqB,aAA2B;EACvD,IAAI,CAAC,WAAW,OACd;EAEF,IACE,YAAY,cACZ,MAAM,WAAW,SACjB,MAAM,aACN;GACA,cAAc,QAAQ;GACtB,WAAW,QAAQ;EACrB,OAAO;GACL,MAAM,gBAAgB,cAAc,cAAc;GAClD,MAAM,WAAW,gBAAgB,WAAW;GAC5C,IAAG,WAAW,KAAK,WAAS,GAC1B,WAAW,QAAQ;EAEvB;CACF;CAEA,SAAS,cAAc,UAA+B;EACpD,qBAAqB;EACrB,WAAW,QAAQ;CACrB;CAEA,eAAe,uBAAsC;EACnD,IAAI,CAAC,WAAW,OACd;EAEF,MAAM,sBAAsB,WAAW,KAAK;EAC5C,WAAW,QAAQ;EACnB,cAAc,QAAQ;EACtB,SAAS,QAAQ;EACjB,WAAW,QAAQ;EACnB,YAAY,QAAQ;EACpB,YAAY,yBAAyB,KAAA,CAAS;CAChD;CAEA,eAAe,sBAAsB,YAAkB;EACrD,IAAI,eAAc;EAClB,IAAG,CAAC,YAAY,SAAS,YAAY,cAAa;GAChD,eAAa,UAAQ,UAAU,YAAY,YAAY;GACvD,YAAY,QAAQ;EACtB;EAGA,IAAI;GACF,MAAM,mBAAW,QAAuB;IACtC,KAAK;IACL,MAAK,oBAAmB,WAAW,QAAO,cAAa,KAAK,MAAM,UAAU,IAAE;IAC9E,WAAU;GACZ,CAAC;EACH,SAAQ,GAAG;GAET,QAAQ,MAAM,CAAC;EACjB;CACF;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A as state } from "./classicApi-
|
|
2
|
-
import { t as useOrgaComputed } from "./useOrgaComputed-
|
|
3
|
-
import { t as useDayjs } from "./useDayjs-
|
|
1
|
+
import { A as state } from "./classicApi-xjOqAovv.mjs";
|
|
2
|
+
import { t as useOrgaComputed } from "./useOrgaComputed-B2Bq0VBT.mjs";
|
|
3
|
+
import { t as useDayjs } from "./useDayjs-DPVjvJPN.mjs";
|
|
4
4
|
import { computed } from "vue";
|
|
5
5
|
import { useI18n } from "vue-i18n";
|
|
6
6
|
import humanizeDuration from "humanize-duration";
|
|
@@ -53,4 +53,4 @@ var usePodcastView = (podcast, podcastConference) => {
|
|
|
53
53
|
//#endregion
|
|
54
54
|
export { usePodcastView as t };
|
|
55
55
|
|
|
56
|
-
//# sourceMappingURL=usePodcastView-
|
|
56
|
+
//# sourceMappingURL=usePodcastView-BDZ6CGQj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePodcastView-BDZ6CGQj.mjs","names":[],"sources":["../src/components/composable/podcasts/usePodcastView.ts"],"sourcesContent":["import { Conference } from '@/stores/class/conference/conference';\nimport { Podcast } from '@/stores/class/general/podcast';\n// @ts-expect-error Bibliothèque non typée\nimport humanizeDuration from \"humanize-duration\";\nimport {computed, Ref} from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport {useOrgaComputed} from \"../useOrgaComputed\"\nimport { state } from '../../../stores/ParamSdkStore';\nimport { useDayjs } from '../useDayjs';\n\nexport const usePodcastView = (podcast: Ref<Podcast|undefined>, podcastConference: Ref<Conference|undefined>)=>{\n\n const {locale} = useI18n();\n const { dayjs } = useDayjs();\n\n const {isEditRights, isPodcastmaker} = useOrgaComputed();\n\n\n const editRight = computed(() => { \n return isEditRights(podcast.value?.organisation.id);\n });\n const isLiveReadyToRecord = computed(() => { \n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value.processingStatus\n );\n });\n const isCounter = computed(() => { \n return (\n isLiveReadyToRecord.value &&\n undefined !== podcastConference.value &&\n (\"PLANNED\" === podcastConference.value.status ||\n \"PENDING\" === podcastConference.value.status)\n );\n });\n\n const timeRemaining = computed(() => { \n return !podcast.value ? 0: dayjs(podcast.value.pubDate).diff(dayjs(), \"seconds\");\n });\n\n const isPlannedInProcessor = computed(() => \"PLANNED\" === podcast.value?.processingStatus);\n \n const date = computed(() => { \n if (!podcast.value || 1970 === dayjs(podcast.value.pubDate).year()) {\n return \"\";\n }\n if (isLiveReadyToRecord.value || state.generalParameters.showTimeWithDates) {\n return dayjs(podcast.value.pubDate).format(\"D MMMM YYYY - HH:mm\");\n }\n return dayjs(podcast.value.pubDate).format(\"D MMMM YYYY\");\n });\n\n const duration = computed(() => { \n if (!podcast.value || podcast.value.duration <= 1){return \"\"};\n if (podcast.value.duration > 600000) {\n return humanizeDuration(podcast.value.duration, {\n language: locale.value,\n largest: 1,\n round: true,\n });\n }\n return humanizeDuration(podcast.value.duration, {\n language: locale.value,\n largest: 2,\n round: true,\n });\n });\n\n const durationIso = computed(() => { \n if (!podcast.value || podcast.value.duration <= 1){return \"\";}\n return dayjs.duration({ milliseconds: podcast.value.duration }).toISOString();\n });\n\treturn {\n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n editRight,\n isPodcastmaker\n\t}\n}\n"],"mappings":";;;;;;;AAUA,IAAa,kBAAkB,SAAkC,sBAA+C;CAE9G,MAAM,EAAC,WAAU,QAAQ;CACzB,MAAM,EAAE,UAAU,SAAS;CAE3B,MAAM,EAAC,cAAc,mBAAkB,gBAAgB;CAGvD,MAAM,YAAY,eAAe;EAC/B,OAAO,aAAa,QAAQ,OAAO,aAAa,EAAE;CACpD,CAAC;CACD,MAAM,sBAAsB,eAAe;EACzC,OACE,KAAA,MAAc,QAAQ,OAAO,gBAC7B,MAAM,QAAQ,MAAM,gBACpB,sBAAsB,QAAQ,MAAM;CAExC,CAAC;CA8CF,OAAO;EACJ;EACA,WA/CgB,eAAe;GAC/B,OACE,oBAAoB,SACpB,KAAA,MAAe,kBAAkB,UAChC,cAAe,kBAAkB,MAAM,UACtC,cAAe,kBAAkB,MAAM;EAE7C,CAwCE;EACA,eAvCoB,eAAe;GACnC,OAAO,CAAC,QAAQ,QAAQ,IAAG,MAAM,QAAQ,MAAM,OAAO,EAAE,KAAK,MAAM,GAAG,SAAS;EACjF,CAqCE;EACA,sBApC2B,eAAe,cAAc,QAAQ,OAAO,gBAoCvE;EACA,MAnCW,eAAe;GAC1B,IAAI,CAAC,QAAQ,SAAS,SAAS,MAAM,QAAQ,MAAM,OAAO,EAAE,KAAK,GAC/D,OAAO;GAET,IAAI,oBAAoB,SAAS,MAAM,kBAAkB,mBACvD,OAAO,MAAM,QAAQ,MAAM,OAAO,EAAE,OAAO,qBAAqB;GAElE,OAAO,MAAM,QAAQ,MAAM,OAAO,EAAE,OAAO,aAAa;EAC1D,CA2BE;EACA,UA1Be,eAAe;GAC9B,IAAI,CAAC,QAAQ,SAAS,QAAQ,MAAM,YAAY,GAAG,OAAO;GAC1D,IAAI,QAAQ,MAAM,WAAW,KAC3B,OAAO,iBAAiB,QAAQ,MAAM,UAAU;IAC9C,UAAU,OAAO;IACjB,SAAS;IACT,OAAO;GACT,CAAC;GAEH,OAAO,iBAAiB,QAAQ,MAAM,UAAU;IAC9C,UAAU,OAAO;IACjB,SAAS;IACT,OAAO;GACT,CAAC;EACH,CAYE;EACA,aAXkB,eAAe;GACjC,IAAI,CAAC,QAAQ,SAAS,QAAQ,MAAM,YAAY,GAAG,OAAO;GAC1D,OAAO,MAAM,SAAS,EAAE,cAAc,QAAQ,MAAM,SAAS,CAAC,EAAE,YAAY;EAC9E,CAQE;EACA;EACA;CACH;AACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePodcastView-CI5le-WW.mjs","names":[],"sources":["../src/components/composable/podcasts/usePodcastView.ts"],"sourcesContent":["import { Conference } from '@/stores/class/conference/conference';\nimport { Podcast } from '@/stores/class/general/podcast';\n// @ts-expect-error Bibliothèque non typée\nimport humanizeDuration from \"humanize-duration\";\nimport {computed, Ref} from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport {useOrgaComputed} from \"../useOrgaComputed\"\nimport { state } from '../../../stores/ParamSdkStore';\nimport { useDayjs } from '../useDayjs';\n\nexport const usePodcastView = (podcast: Ref<Podcast|undefined>, podcastConference: Ref<Conference|undefined>)=>{\n\n const {locale} = useI18n();\n const { dayjs } = useDayjs();\n\n const {isEditRights, isPodcastmaker} = useOrgaComputed();\n\n\n const editRight = computed(() => { \n return isEditRights(podcast.value?.organisation.id);\n });\n const isLiveReadyToRecord = computed(() => { \n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value.processingStatus\n );\n });\n const isCounter = computed(() => { \n return (\n isLiveReadyToRecord.value &&\n undefined !== podcastConference.value &&\n (\"PLANNED\" === podcastConference.value.status ||\n \"PENDING\" === podcastConference.value.status)\n );\n });\n\n const timeRemaining = computed(() => { \n return !podcast.value ? 0: dayjs(podcast.value.pubDate).diff(dayjs(), \"seconds\");\n });\n\n const isPlannedInProcessor = computed(() => \"PLANNED\" === podcast.value?.processingStatus);\n \n const date = computed(() => { \n if (!podcast.value || 1970 === dayjs(podcast.value.pubDate).year()) {\n return \"\";\n }\n if (isLiveReadyToRecord.value || state.generalParameters.showTimeWithDates) {\n return dayjs(podcast.value.pubDate).format(\"D MMMM YYYY - HH:mm\");\n }\n return dayjs(podcast.value.pubDate).format(\"D MMMM YYYY\");\n });\n\n const duration = computed(() => { \n if (!podcast.value || podcast.value.duration <= 1){return \"\"};\n if (podcast.value.duration > 600000) {\n return humanizeDuration(podcast.value.duration, {\n language: locale.value,\n largest: 1,\n round: true,\n });\n }\n return humanizeDuration(podcast.value.duration, {\n language: locale.value,\n largest: 2,\n round: true,\n });\n });\n\n const durationIso = computed(() => { \n if (!podcast.value || podcast.value.duration <= 1){return \"\";}\n return dayjs.duration({ milliseconds: podcast.value.duration }).toISOString();\n });\n\treturn {\n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n editRight,\n isPodcastmaker\n\t}\n}\n"],"mappings":";;;;;;;AAUA,IAAa,kBAAkB,SAAkC,sBAA+C;CAE9G,MAAM,EAAC,WAAU,QAAQ;CACzB,MAAM,EAAE,UAAU,SAAS;CAE3B,MAAM,EAAC,cAAc,mBAAkB,gBAAgB;CAGvD,MAAM,YAAY,eAAe;EAC/B,OAAO,aAAa,QAAQ,OAAO,aAAa,EAAE;CACpD,CAAC;CACD,MAAM,sBAAsB,eAAe;EACzC,OACE,KAAA,MAAc,QAAQ,OAAO,gBAC7B,MAAM,QAAQ,MAAM,gBACpB,sBAAsB,QAAQ,MAAM;CAExC,CAAC;CA8CF,OAAO;EACJ;EACA,WA/CgB,eAAe;GAC/B,OACE,oBAAoB,SACpB,KAAA,MAAe,kBAAkB,UAChC,cAAe,kBAAkB,MAAM,UACtC,cAAe,kBAAkB,MAAM;EAE7C,CAwCE;EACA,eAvCoB,eAAe;GACnC,OAAO,CAAC,QAAQ,QAAQ,IAAG,MAAM,QAAQ,MAAM,OAAO,EAAE,KAAK,MAAM,GAAG,SAAS;EACjF,CAqCE;EACA,sBApC2B,eAAe,cAAc,QAAQ,OAAO,gBAoCvE;EACA,MAnCW,eAAe;GAC1B,IAAI,CAAC,QAAQ,SAAS,SAAS,MAAM,QAAQ,MAAM,OAAO,EAAE,KAAK,GAC/D,OAAO;GAET,IAAI,oBAAoB,SAAS,MAAM,kBAAkB,mBACvD,OAAO,MAAM,QAAQ,MAAM,OAAO,EAAE,OAAO,qBAAqB;GAElE,OAAO,MAAM,QAAQ,MAAM,OAAO,EAAE,OAAO,aAAa;EAC1D,CA2BE;EACA,UA1Be,eAAe;GAC9B,IAAI,CAAC,QAAQ,SAAS,QAAQ,MAAM,YAAY,GAAG,OAAO;GAC1D,IAAI,QAAQ,MAAM,WAAW,KAC3B,OAAO,iBAAiB,QAAQ,MAAM,UAAU;IAC9C,UAAU,OAAO;IACjB,SAAS;IACT,OAAO;GACT,CAAC;GAEH,OAAO,iBAAiB,QAAQ,MAAM,UAAU;IAC9C,UAAU,OAAO;IACjB,SAAS;IACT,OAAO;GACT,CAAC;EACH,CAYE;EACA,aAXkB,eAAe;GACjC,IAAI,CAAC,QAAQ,SAAS,QAAQ,MAAM,YAAY,GAAG,OAAO;GAC1D,OAAO,MAAM,SAAS,EAAE,cAAc,QAAQ,MAAM,SAAS,CAAC,EAAE,YAAY;EAC9E,CAQE;EACA;EACA;CACH;AACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePresentationItem-Cw9fBYUi.mjs","names":[],"sources":["../src/components/layouts/PresentationItem.vue","../src/components/layouts/PresentationItem.vue","../src/components/composable/usePresentationItem.ts"],"sourcesContent":["<!--\n Component to display an element with its description\n-->\n<template>\n <article\n class=\"classic-element-container item-presentation-container mt-3\"\n :class=\"vertical ? 'vertical-item' : ''\"\n >\n <router-link\n :to=\"route\"\n class=\"d-flex-column flex-grow-1 text-dark\"\n :class=\"vertical ? 'flex-column' : ''\"\n >\n <div\n class=\"img-box\"\n :class=\"vertical ? 'img-box-bigger' : ''\"\n >\n <img\n v-lazy=\"useProxyImageUrl(imageUrl, tailleImage)\"\n :width=\"tailleImage\"\n :height=\"tailleImage\"\n aria-hidden=\"true\"\n :alt=\"name\"\n :title=\"name\"\n >\n\n <div class=\"tags\">\n <span\n v-for=\"tag in tags\"\n :key=\"tag\"\n >\n {{ tag }}\n </span>\n </div>\n\n <slot name=\"after-image\" />\n </div>\n \n <div\n class=\"classic-element-text pb-0\"\n :class=\"{ 'pt-1': vertical }\"\n >\n <div class=\"element-name mb-2 basic-line-clamp\">\n {{ name }}\n </div>\n <div\n v-if=\"!isPhone && (description || additionalInfo)\"\n ref=\"descriptionItemContainer\"\n class=\"element-description htms-wysiwyg-content mt-0\"\n >\n <div v-if=\"additionalInfo\" class=\"mb-2\">\n <div\n v-for=\"info, index in additionalInfo\"\n :key=\"index\"\n class=\"text-secondary\"\n >\n {{ info }}\n </div>\n </div>\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"description\"\n ref=\"descriptionItem\"\n v-html=\"urlify(description || '')\"\n />\n <!-- eslint-enable -->\n </div>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport {useResizePhone} from \"../composable/useResizePhone\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport displayHelper from \"../../helper/displayHelper\";\nimport { nextTick, useTemplateRef, watch, computed } from \"vue\";\nimport { RouteLocationRaw } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /** The route to which to redirect when clicking on element */\n route: RouteLocationRaw|string;\n /** The URL to the image */\n imageUrl: string;\n /** The name of the element */\n name: string;\n /** Tags associated with the element (rubriques, themes, etc) */\n tags?: Array<string>;\n /** Additional info displayed below name */\n additionalInfo?: Array<string>;\n /** The description of the element */\n description?: string;\n /** When true display the card vertically */\n vertical?: boolean;\n}>();\n\n//Data\nconst descriptionItemRef = useTemplateRef('descriptionItem');\nconst descriptionItemContainerRef = useTemplateRef('descriptionItemContainer');\n\n\n//Composables\nconst { isPhone } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\n\n// Computed\n// Calcul de la taille de l'image\nconst tailleImage = computed(() => {\n // L'élément fait 400 de large à la verticale, mais on prend en compte les bordures\n if (props.vertical) {\n return '396';\n } else if (isPhone.value) {\n return '246';\n } else {\n return '250';\n }\n});\n\n//Watch\nwatch(isPhone, async () => {\n nextTick(() => {\n if (!props.description || isPhone.value) {\n return;\n }\n const itemDesc = descriptionItemRef?.value as HTMLElement;\n const itemDescContainer = descriptionItemContainerRef?.value as HTMLElement;\n if (\n itemDesc &&\n itemDescContainer &&\n itemDesc.clientHeight > itemDescContainer.clientHeight\n ) {\n itemDescContainer.classList.add(\"after-element-description\");\n }\n });\n}, { immediate: true });\n\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .item-presentation-container {\n @media (width <= 960px) {\n width: 250px !important;\n margin-right: 0.5rem;\n }\n\n .element-description {\n height: 0;\n flex-grow: 1;\n max-height: unset;\n\n p:first-child {\n // Prevent unecessary space before first paragraph\n margin-top: 0 !important;\n }\n }\n }\n\n .classic-element-container.vertical-item {\n flex-grow: 0;\n width: 400px;\n flex-shrink: 0;\n }\n\n .img-box {\n // Make it relative so that absolute elements associated with the image\n // are positioned within the image box\n position: relative;\n\n @media (width <= 960px) {\n height: calc(var(--octopus-image-size) - 4);\n }\n }\n\n .img-box-bigger {\n // L'élément fait 400 de large à la verticale, mais on prend en compte les bordures\n width: 396px;\n height: 396px;\n }\n\n .tags {\n position: absolute;\n top: 10px;\n left: 10px;\n\n display: flex;\n gap: 10px;\n flex-wrap: wrap;\n\n > span {\n background-color: white;\n padding: .25em .75em;\n font-size: 14px;\n font-weight: bold;\n color: var(--octopus-primary);\n border-radius: var(--octopus-border-radius);\n border: 1px solid color-mix(in lch, var(--octopus-primary), transparent 60%);\n\n // Limit width\n max-width: 200px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n}\n</style>\n","<!--\n Component to display an element with its description\n-->\n<template>\n <article\n class=\"classic-element-container item-presentation-container mt-3\"\n :class=\"vertical ? 'vertical-item' : ''\"\n >\n <router-link\n :to=\"route\"\n class=\"d-flex-column flex-grow-1 text-dark\"\n :class=\"vertical ? 'flex-column' : ''\"\n >\n <div\n class=\"img-box\"\n :class=\"vertical ? 'img-box-bigger' : ''\"\n >\n <img\n v-lazy=\"useProxyImageUrl(imageUrl, tailleImage)\"\n :width=\"tailleImage\"\n :height=\"tailleImage\"\n aria-hidden=\"true\"\n :alt=\"name\"\n :title=\"name\"\n >\n\n <div class=\"tags\">\n <span\n v-for=\"tag in tags\"\n :key=\"tag\"\n >\n {{ tag }}\n </span>\n </div>\n\n <slot name=\"after-image\" />\n </div>\n \n <div\n class=\"classic-element-text pb-0\"\n :class=\"{ 'pt-1': vertical }\"\n >\n <div class=\"element-name mb-2 basic-line-clamp\">\n {{ name }}\n </div>\n <div\n v-if=\"!isPhone && (description || additionalInfo)\"\n ref=\"descriptionItemContainer\"\n class=\"element-description htms-wysiwyg-content mt-0\"\n >\n <div v-if=\"additionalInfo\" class=\"mb-2\">\n <div\n v-for=\"info, index in additionalInfo\"\n :key=\"index\"\n class=\"text-secondary\"\n >\n {{ info }}\n </div>\n </div>\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"description\"\n ref=\"descriptionItem\"\n v-html=\"urlify(description || '')\"\n />\n <!-- eslint-enable -->\n </div>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport {useResizePhone} from \"../composable/useResizePhone\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport displayHelper from \"../../helper/displayHelper\";\nimport { nextTick, useTemplateRef, watch, computed } from \"vue\";\nimport { RouteLocationRaw } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /** The route to which to redirect when clicking on element */\n route: RouteLocationRaw|string;\n /** The URL to the image */\n imageUrl: string;\n /** The name of the element */\n name: string;\n /** Tags associated with the element (rubriques, themes, etc) */\n tags?: Array<string>;\n /** Additional info displayed below name */\n additionalInfo?: Array<string>;\n /** The description of the element */\n description?: string;\n /** When true display the card vertically */\n vertical?: boolean;\n}>();\n\n//Data\nconst descriptionItemRef = useTemplateRef('descriptionItem');\nconst descriptionItemContainerRef = useTemplateRef('descriptionItemContainer');\n\n\n//Composables\nconst { isPhone } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\n\n// Computed\n// Calcul de la taille de l'image\nconst tailleImage = computed(() => {\n // L'élément fait 400 de large à la verticale, mais on prend en compte les bordures\n if (props.vertical) {\n return '396';\n } else if (isPhone.value) {\n return '246';\n } else {\n return '250';\n }\n});\n\n//Watch\nwatch(isPhone, async () => {\n nextTick(() => {\n if (!props.description || isPhone.value) {\n return;\n }\n const itemDesc = descriptionItemRef?.value as HTMLElement;\n const itemDescContainer = descriptionItemContainerRef?.value as HTMLElement;\n if (\n itemDesc &&\n itemDescContainer &&\n itemDesc.clientHeight > itemDescContainer.clientHeight\n ) {\n itemDescContainer.classList.add(\"after-element-description\");\n }\n });\n}, { immediate: true });\n\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .item-presentation-container {\n @media (width <= 960px) {\n width: 250px !important;\n margin-right: 0.5rem;\n }\n\n .element-description {\n height: 0;\n flex-grow: 1;\n max-height: unset;\n\n p:first-child {\n // Prevent unecessary space before first paragraph\n margin-top: 0 !important;\n }\n }\n }\n\n .classic-element-container.vertical-item {\n flex-grow: 0;\n width: 400px;\n flex-shrink: 0;\n }\n\n .img-box {\n // Make it relative so that absolute elements associated with the image\n // are positioned within the image box\n position: relative;\n\n @media (width <= 960px) {\n height: calc(var(--octopus-image-size) - 4);\n }\n }\n\n .img-box-bigger {\n // L'élément fait 400 de large à la verticale, mais on prend en compte les bordures\n width: 396px;\n height: 396px;\n }\n\n .tags {\n position: absolute;\n top: 10px;\n left: 10px;\n\n display: flex;\n gap: 10px;\n flex-wrap: wrap;\n\n > span {\n background-color: white;\n padding: .25em .75em;\n font-size: 14px;\n font-weight: bold;\n color: var(--octopus-primary);\n border-radius: var(--octopus-border-radius);\n border: 1px solid color-mix(in lch, var(--octopus-primary), transparent 60%);\n\n // Limit width\n max-width: 200px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n}\n</style>\n","import { Emission } from \"@/stores/class/general/emission\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { Podcast } from \"../../stores/class/general/podcast\";\nimport { rubriquesApi } from \"../../api\";\nimport { useDayjs } from \"./useDayjs\";\nimport { unique } from \"@/helper/arrayHelper\";\n\nexport const usePresentationItem = () => {\n const generalStore = useGeneralStore();\n const { formatDate } = useDayjs();\n\n function iabTags(emission: Emission): Array<string> {\n return generalStore.storedCategories\n .filter(cat => emission.iabIds.includes(cat.id))\n .map(cat => cat.name);\n }\n\n async function rubriqueTags(element: Podcast|Emission, filterRubriquageId?: number): Promise<Array<string>> {\n const rubriqueIds: Array<number> = [];\n if (element.rubriqueIds) {\n rubriqueIds.push(...element.rubriqueIds);\n }\n if ('emission' in element && element.emission.rubriqueIds) {\n rubriqueIds.push(...element.emission.rubriqueIds);\n }\n const uniqueRubriqueIds = rubriqueIds.filter(unique);\n const promises = uniqueRubriqueIds.map(rubriquesApi.getCachedRubrique);\n const rubriques = await Promise.all(promises);\n\n if (filterRubriquageId) {\n return rubriques.filter(r => r.rubriquageId === filterRubriquageId).map(r => r.name);\n } else {\n return rubriques.map(r => r.name);\n }\n }\n \n async function tagsFor(element: Podcast|Emission): Promise<Array<string>|undefined> {\n const type = state.presentationItems.tags;\n let tags: Array<string>|undefined = undefined;\n if (type === 'iab') {\n const emission = 'emission' in element ? element.emission : element;\n tags = iabTags(emission);\n } else if (type === 'rubrique') {\n tags = await rubriqueTags(element, state.presentationItems.tagsRubriquageId);\n }\n\n if (tags && state.presentationItems.tagsLimit) {\n return tags.slice(0, state.presentationItems.tagsLimit);\n }\n\n return tags;\n }\n\n async function additionalInfoFor(element: Podcast|Emission): Promise<Array<string>|undefined> {\n const prop = state.presentationItems.additionalInfo;\n const restrictiveRubriquageId = state.presentationItems.restrictiveRubriquageId;\n if (!prop?.length) {\n return undefined;\n }\n\n const podcast = 'emission' in element ? element : null;\n const emission = podcast?.emission ?? element as Emission;\n\n const result = await Promise.all(prop.map(async property => {\n if (property === 'date') {\n if (podcast?.pubDate) {\n return formatDate(podcast.pubDate);\n } else {\n return null;\n }\n } else if (property === 'productor') {\n return emission.orga.name;\n } else if (property === 'restrictive-rubrique' && restrictiveRubriquageId !== undefined) {\n const rubriques = await rubriqueTags(element, restrictiveRubriquageId);\n return rubriques.join(', ');\n }\n return null;\n }));\n\n return result.filter(p => p !== null);\n }\n\n return { tagsFor, additionalInfoFor };\n};\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
2
|
-
import { A as state, s as rubriquesApi, v as unique } from "./classicApi-
|
|
2
|
+
import { A as state, s as rubriquesApi, v as unique } from "./classicApi-xjOqAovv.mjs";
|
|
3
3
|
import { t as useResizePhone } from "./useResizePhone-CpfFUmfV.mjs";
|
|
4
4
|
import { t as displayHelper_default } from "./displayHelper-CpXshNzz.mjs";
|
|
5
|
-
import { t as useImageProxy } from "./useImageProxy-
|
|
5
|
+
import { t as useImageProxy } from "./useImageProxy-BdQJmj4a.mjs";
|
|
6
6
|
import { t as useGeneralStore } from "./GeneralStore-CUlq_NjO.mjs";
|
|
7
|
-
import { t as useDayjs } from "./useDayjs-
|
|
7
|
+
import { t as useDayjs } from "./useDayjs-DPVjvJPN.mjs";
|
|
8
8
|
import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, normalizeClass, openBlock, renderList, renderSlot, resolveComponent, resolveDirective, toDisplayString, useTemplateRef, watch, withCtx, withDirectives } from "vue";
|
|
9
9
|
//#region src/components/layouts/PresentationItem.vue?vue&type=script&setup=true&lang.ts
|
|
10
10
|
var PresentationItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
@@ -187,4 +187,4 @@ var usePresentationItem = () => {
|
|
|
187
187
|
//#endregion
|
|
188
188
|
export { PresentationItem_default as n, usePresentationItem as t };
|
|
189
189
|
|
|
190
|
-
//# sourceMappingURL=usePresentationItem-
|
|
190
|
+
//# sourceMappingURL=usePresentationItem-UwAuhVqo.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePresentationItem-UwAuhVqo.mjs","names":[],"sources":["../src/components/layouts/PresentationItem.vue","../src/components/layouts/PresentationItem.vue","../src/components/composable/usePresentationItem.ts"],"sourcesContent":["<!--\n Component to display an element with its description\n-->\n<template>\n <article\n class=\"classic-element-container item-presentation-container mt-3\"\n :class=\"vertical ? 'vertical-item' : ''\"\n >\n <router-link\n :to=\"route\"\n class=\"d-flex-column flex-grow-1 text-dark\"\n :class=\"vertical ? 'flex-column' : ''\"\n >\n <div\n class=\"img-box\"\n :class=\"vertical ? 'img-box-bigger' : ''\"\n >\n <img\n v-lazy=\"useProxyImageUrl(imageUrl, tailleImage)\"\n :width=\"tailleImage\"\n :height=\"tailleImage\"\n aria-hidden=\"true\"\n :alt=\"name\"\n :title=\"name\"\n >\n\n <div class=\"tags\">\n <span\n v-for=\"tag in tags\"\n :key=\"tag\"\n >\n {{ tag }}\n </span>\n </div>\n\n <slot name=\"after-image\" />\n </div>\n \n <div\n class=\"classic-element-text pb-0\"\n :class=\"{ 'pt-1': vertical }\"\n >\n <div class=\"element-name mb-2 basic-line-clamp\">\n {{ name }}\n </div>\n <div\n v-if=\"!isPhone && (description || additionalInfo)\"\n ref=\"descriptionItemContainer\"\n class=\"element-description htms-wysiwyg-content mt-0\"\n >\n <div v-if=\"additionalInfo\" class=\"mb-2\">\n <div\n v-for=\"info, index in additionalInfo\"\n :key=\"index\"\n class=\"text-secondary\"\n >\n {{ info }}\n </div>\n </div>\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"description\"\n ref=\"descriptionItem\"\n v-html=\"urlify(description || '')\"\n />\n <!-- eslint-enable -->\n </div>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport {useResizePhone} from \"../composable/useResizePhone\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport displayHelper from \"../../helper/displayHelper\";\nimport { nextTick, useTemplateRef, watch, computed } from \"vue\";\nimport { RouteLocationRaw } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /** The route to which to redirect when clicking on element */\n route: RouteLocationRaw|string;\n /** The URL to the image */\n imageUrl: string;\n /** The name of the element */\n name: string;\n /** Tags associated with the element (rubriques, themes, etc) */\n tags?: Array<string>;\n /** Additional info displayed below name */\n additionalInfo?: Array<string>;\n /** The description of the element */\n description?: string;\n /** When true display the card vertically */\n vertical?: boolean;\n}>();\n\n//Data\nconst descriptionItemRef = useTemplateRef('descriptionItem');\nconst descriptionItemContainerRef = useTemplateRef('descriptionItemContainer');\n\n\n//Composables\nconst { isPhone } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\n\n// Computed\n// Calcul de la taille de l'image\nconst tailleImage = computed(() => {\n // L'élément fait 400 de large à la verticale, mais on prend en compte les bordures\n if (props.vertical) {\n return '396';\n } else if (isPhone.value) {\n return '246';\n } else {\n return '250';\n }\n});\n\n//Watch\nwatch(isPhone, async () => {\n nextTick(() => {\n if (!props.description || isPhone.value) {\n return;\n }\n const itemDesc = descriptionItemRef?.value as HTMLElement;\n const itemDescContainer = descriptionItemContainerRef?.value as HTMLElement;\n if (\n itemDesc &&\n itemDescContainer &&\n itemDesc.clientHeight > itemDescContainer.clientHeight\n ) {\n itemDescContainer.classList.add(\"after-element-description\");\n }\n });\n}, { immediate: true });\n\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .item-presentation-container {\n @media (width <= 960px) {\n width: 250px !important;\n margin-right: 0.5rem;\n }\n\n .element-description {\n height: 0;\n flex-grow: 1;\n max-height: unset;\n\n p:first-child {\n // Prevent unecessary space before first paragraph\n margin-top: 0 !important;\n }\n }\n }\n\n .classic-element-container.vertical-item {\n flex-grow: 0;\n width: 400px;\n flex-shrink: 0;\n }\n\n .img-box {\n // Make it relative so that absolute elements associated with the image\n // are positioned within the image box\n position: relative;\n\n @media (width <= 960px) {\n height: calc(var(--octopus-image-size) - 4);\n }\n }\n\n .img-box-bigger {\n // L'élément fait 400 de large à la verticale, mais on prend en compte les bordures\n width: 396px;\n height: 396px;\n }\n\n .tags {\n position: absolute;\n top: 10px;\n left: 10px;\n\n display: flex;\n gap: 10px;\n flex-wrap: wrap;\n\n > span {\n background-color: white;\n padding: .25em .75em;\n font-size: 14px;\n font-weight: bold;\n color: var(--octopus-primary);\n border-radius: var(--octopus-border-radius);\n border: 1px solid color-mix(in lch, var(--octopus-primary), transparent 60%);\n\n // Limit width\n max-width: 200px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n}\n</style>\n","<!--\n Component to display an element with its description\n-->\n<template>\n <article\n class=\"classic-element-container item-presentation-container mt-3\"\n :class=\"vertical ? 'vertical-item' : ''\"\n >\n <router-link\n :to=\"route\"\n class=\"d-flex-column flex-grow-1 text-dark\"\n :class=\"vertical ? 'flex-column' : ''\"\n >\n <div\n class=\"img-box\"\n :class=\"vertical ? 'img-box-bigger' : ''\"\n >\n <img\n v-lazy=\"useProxyImageUrl(imageUrl, tailleImage)\"\n :width=\"tailleImage\"\n :height=\"tailleImage\"\n aria-hidden=\"true\"\n :alt=\"name\"\n :title=\"name\"\n >\n\n <div class=\"tags\">\n <span\n v-for=\"tag in tags\"\n :key=\"tag\"\n >\n {{ tag }}\n </span>\n </div>\n\n <slot name=\"after-image\" />\n </div>\n \n <div\n class=\"classic-element-text pb-0\"\n :class=\"{ 'pt-1': vertical }\"\n >\n <div class=\"element-name mb-2 basic-line-clamp\">\n {{ name }}\n </div>\n <div\n v-if=\"!isPhone && (description || additionalInfo)\"\n ref=\"descriptionItemContainer\"\n class=\"element-description htms-wysiwyg-content mt-0\"\n >\n <div v-if=\"additionalInfo\" class=\"mb-2\">\n <div\n v-for=\"info, index in additionalInfo\"\n :key=\"index\"\n class=\"text-secondary\"\n >\n {{ info }}\n </div>\n </div>\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"description\"\n ref=\"descriptionItem\"\n v-html=\"urlify(description || '')\"\n />\n <!-- eslint-enable -->\n </div>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport {useResizePhone} from \"../composable/useResizePhone\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport displayHelper from \"../../helper/displayHelper\";\nimport { nextTick, useTemplateRef, watch, computed } from \"vue\";\nimport { RouteLocationRaw } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /** The route to which to redirect when clicking on element */\n route: RouteLocationRaw|string;\n /** The URL to the image */\n imageUrl: string;\n /** The name of the element */\n name: string;\n /** Tags associated with the element (rubriques, themes, etc) */\n tags?: Array<string>;\n /** Additional info displayed below name */\n additionalInfo?: Array<string>;\n /** The description of the element */\n description?: string;\n /** When true display the card vertically */\n vertical?: boolean;\n}>();\n\n//Data\nconst descriptionItemRef = useTemplateRef('descriptionItem');\nconst descriptionItemContainerRef = useTemplateRef('descriptionItemContainer');\n\n\n//Composables\nconst { isPhone } = useResizePhone();\nconst { useProxyImageUrl } = useImageProxy();\n\n// Computed\n// Calcul de la taille de l'image\nconst tailleImage = computed(() => {\n // L'élément fait 400 de large à la verticale, mais on prend en compte les bordures\n if (props.vertical) {\n return '396';\n } else if (isPhone.value) {\n return '246';\n } else {\n return '250';\n }\n});\n\n//Watch\nwatch(isPhone, async () => {\n nextTick(() => {\n if (!props.description || isPhone.value) {\n return;\n }\n const itemDesc = descriptionItemRef?.value as HTMLElement;\n const itemDescContainer = descriptionItemContainerRef?.value as HTMLElement;\n if (\n itemDesc &&\n itemDescContainer &&\n itemDesc.clientHeight > itemDescContainer.clientHeight\n ) {\n itemDescContainer.classList.add(\"after-element-description\");\n }\n });\n}, { immediate: true });\n\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .item-presentation-container {\n @media (width <= 960px) {\n width: 250px !important;\n margin-right: 0.5rem;\n }\n\n .element-description {\n height: 0;\n flex-grow: 1;\n max-height: unset;\n\n p:first-child {\n // Prevent unecessary space before first paragraph\n margin-top: 0 !important;\n }\n }\n }\n\n .classic-element-container.vertical-item {\n flex-grow: 0;\n width: 400px;\n flex-shrink: 0;\n }\n\n .img-box {\n // Make it relative so that absolute elements associated with the image\n // are positioned within the image box\n position: relative;\n\n @media (width <= 960px) {\n height: calc(var(--octopus-image-size) - 4);\n }\n }\n\n .img-box-bigger {\n // L'élément fait 400 de large à la verticale, mais on prend en compte les bordures\n width: 396px;\n height: 396px;\n }\n\n .tags {\n position: absolute;\n top: 10px;\n left: 10px;\n\n display: flex;\n gap: 10px;\n flex-wrap: wrap;\n\n > span {\n background-color: white;\n padding: .25em .75em;\n font-size: 14px;\n font-weight: bold;\n color: var(--octopus-primary);\n border-radius: var(--octopus-border-radius);\n border: 1px solid color-mix(in lch, var(--octopus-primary), transparent 60%);\n\n // Limit width\n max-width: 200px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n}\n</style>\n","import { Emission } from \"@/stores/class/general/emission\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { Podcast } from \"../../stores/class/general/podcast\";\nimport { rubriquesApi } from \"../../api\";\nimport { useDayjs } from \"./useDayjs\";\nimport { unique } from \"@/helper/arrayHelper\";\n\nexport const usePresentationItem = () => {\n const generalStore = useGeneralStore();\n const { formatDate } = useDayjs();\n\n function iabTags(emission: Emission): Array<string> {\n return generalStore.storedCategories\n .filter(cat => emission.iabIds.includes(cat.id))\n .map(cat => cat.name);\n }\n\n async function rubriqueTags(element: Podcast|Emission, filterRubriquageId?: number): Promise<Array<string>> {\n const rubriqueIds: Array<number> = [];\n if (element.rubriqueIds) {\n rubriqueIds.push(...element.rubriqueIds);\n }\n if ('emission' in element && element.emission.rubriqueIds) {\n rubriqueIds.push(...element.emission.rubriqueIds);\n }\n const uniqueRubriqueIds = rubriqueIds.filter(unique);\n const promises = uniqueRubriqueIds.map(rubriquesApi.getCachedRubrique);\n const rubriques = await Promise.all(promises);\n\n if (filterRubriquageId) {\n return rubriques.filter(r => r.rubriquageId === filterRubriquageId).map(r => r.name);\n } else {\n return rubriques.map(r => r.name);\n }\n }\n \n async function tagsFor(element: Podcast|Emission): Promise<Array<string>|undefined> {\n const type = state.presentationItems.tags;\n let tags: Array<string>|undefined = undefined;\n if (type === 'iab') {\n const emission = 'emission' in element ? element.emission : element;\n tags = iabTags(emission);\n } else if (type === 'rubrique') {\n tags = await rubriqueTags(element, state.presentationItems.tagsRubriquageId);\n }\n\n if (tags && state.presentationItems.tagsLimit) {\n return tags.slice(0, state.presentationItems.tagsLimit);\n }\n\n return tags;\n }\n\n async function additionalInfoFor(element: Podcast|Emission): Promise<Array<string>|undefined> {\n const prop = state.presentationItems.additionalInfo;\n const restrictiveRubriquageId = state.presentationItems.restrictiveRubriquageId;\n if (!prop?.length) {\n return undefined;\n }\n\n const podcast = 'emission' in element ? element : null;\n const emission = podcast?.emission ?? element as Emission;\n\n const result = await Promise.all(prop.map(async property => {\n if (property === 'date') {\n if (podcast?.pubDate) {\n return formatDate(podcast.pubDate);\n } else {\n return null;\n }\n } else if (property === 'productor') {\n return emission.orga.name;\n } else if (property === 'restrictive-rubrique' && restrictiveRubriquageId !== undefined) {\n const rubriques = await rubriqueTags(element, restrictiveRubriquageId);\n return rubriques.join(', ');\n }\n return null;\n }));\n\n return result.filter(p => p !== null);\n }\n\n return { tagsFor, additionalInfoFor };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRights-D8CLzCMH.mjs","names":[],"sources":["../src/components/composable/useRights.ts"],"sourcesContent":["import { Mix } from \"../../stores/class/radio/mix\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport type { Emission } from \"../../stores/class/general/emission\";\nimport type { Podcast } from \"../../stores/class/general/podcast\";\nimport { PlaylistMedia } from \"../../stores/class/radio/playlistMedia\";\nimport { Cartouchier } from \"../../stores/class/cartouchier/cartouchier\";\nimport { Media } from \"../../stores/class/general/media\";\nimport { Conference } from \"../../stores/class/conference/conference\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\n\ntype Role =\n 'ADMIN'|'ORGANISATION'|\n 'PRODUCTION'|'RESTRICTED_PRODUCTION'|'PODCAST_CRUD'|'PODCAST_VALIDATION'|\n 'PLAYLISTS'|'ANIMATION'|'RESTRICTED_ANIMATION'|'RADIO'|'LIVE'|\n 'EDITION'\n ;\n\nexport enum ActionRight {\n /** User can perform the action */\n Allowed = 'allowed',\n /** User lacks the required role */\n DeniedNoRight = 'no_right', \n /** User has a restricted role but does not own the resource **/\n DeniedNotOwner = 'not_owner',\n /** User is scoped to specific rubriques */\n DeniedInsufficientScope = 'no_scope'\n}\n\n// Constraint type for the object passed to deriveCanFunctions.\n// any[] is intentional: it allows functions with any parameter signature to satisfy\n// the constraint while still enforcing that the return type is ActionRight.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SyncRightFns = Record<string, (...args: any[]) => ActionRight>;\n\n// Maps every key of the form `get${A}Right` to `can${A}`, preserving the parameter\n// types of the original function but changing the return type to boolean.\n// Keys that do not match the naming convention are dropped (mapped to never).\ntype CanFns<T extends SyncRightFns> = {\n [K in keyof T as K extends `get${infer A}Right` ? `can${A}` : never]:\n T[K] extends (...args: infer P) => ActionRight ? (...args: P) => boolean : never;\n};\n\n/**\n * Generates boolean shortcut functions from a set of `getRightXxx` functions.\n *\n * Convention: `get${Action}Right(…args) → ActionRight`\n * becomes `can${Action}(…args) → boolean`\n *\n * The generated function returns true when the underlying getRightXxx returns\n * ActionRight.Allowed, and false otherwise. This means callers that only need\n * a simple yes/no answer can use canXxx(), while callers that need the specific\n * denial reason (DeniedNoRight vs DeniedNotOwner) can call getRightXxx() directly.\n *\n * Only synchronous functions should be passed here; async rights functions must\n * be wrapped manually.\n */\nfunction deriveCanFunctions<T extends SyncRightFns>(fns: T): CanFns<T> {\n const result = {} as CanFns<T>;\n for (const key of Object.keys(fns) as (keyof T & string)[]) {\n if (key.startsWith('get') && key.endsWith('Right')) {\n const canKey = `can${key.slice(3, -5)}` as keyof CanFns<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (result as any)[canKey] = (...args: unknown[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (fns as any)[key](...args) === ActionRight.Allowed;\n }\n }\n return result;\n}\n\n/**\n * Composable to manage rights.\n * Based on AuthStore, but converts roles to easily usable tests for various\n * actions.\n */\nexport const useRights = () => {\n const authStore = useAuthStore();\n\n function roleContainsAny(...roles: Role[]): boolean {\n return (authStore.authRole as Role[]).findIndex((r: Role) => roles.includes(r)) > -1;\n }\n\n function hasSufficientScope(elementRubriques: Array<number> = [], parentRubriques: Array<number> = []): boolean {\n const ids = elementRubriques.concat(parentRubriques);\n const scope = authStore.userScope;\n if (scope.length === 0) {\n return true;\n }\n\n for (const id of scope) {\n if (ids.includes(id)) {\n return true;\n }\n }\n\n return false;\n }\n\n ////////////////////////////\n // Emission rights\n ////////////////////////////\n function getCreateEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditEmissionRight(emission: Emission): ActionRight {\n if (!hasSufficientScope(emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n \n if (\n (!emission.emissionId && getCreateEmissionRight() === ActionRight.Allowed) ||\n roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ) {\n return ActionRight.Allowed;\n }\n\n if (roleContainsAny('RESTRICTED_PRODUCTION')) {\n return emission.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteEmissionRight(emission: Emission): ActionRight {\n // In case of restricted production, it will only delete podcasts\n // created by user, and delete the emission only if empty afterwards\n if (roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'RESTRICTED_PRODUCTION')) {\n return hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditCommentsConfigEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // Podcast rights\n function getCreatePodcastRight(emission?: Emission): ActionRight {\n if(roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return !emission || hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getDuplicatePodcastRight(): ActionRight {\n // Same as creation but notably without PODCAST_CRUD and RESTRICTED_ANIMATION\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPodcastRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n if (roleContainsAny('PODCAST_CRUD')) {\n return podcast.valid === false && podcast.publisher?.userId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePodcastRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getValidatePodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'PODCAST_VALIDATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCommentsConfigPodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Playlist rights\n ////////////////////////////\n function getCreatePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Participant rights\n ////////////////////////////\n function getCreateParticipantRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function getParticipantEditRight(participantId: number|undefined): Promise<ActionRight> {\n // New participants can be edited, and also with sufficient rights\n return (!participantId || roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION'))\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function canEditParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n async function canDeleteParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n ////////////////////////////\n // Rubriques/rubriquage rights\n ////////////////////////////\n function getCreateRubriquesRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'EDITION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function getEditRubriquesRight(_element: Rubrique|Rubriquage): ActionRight {\n return getCreateRubriquesRight();\n }\n\n ////////////////////////////\n // Aggregator rights\n ////////////////////////////\n function getCreateAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeleteAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Cartouchier rights\n ////////////////////////////\n function getCreateCartouchierRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCartouchierRight(element: Cartouchier): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteCartouchierRight(element: Cartouchier): ActionRight {\n return getEditCartouchierRight(element);\n }\n\n ////////////////////////////\n // PlaylistMedia rights\n ////////////////////////////\n function getCreatePlaylistMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistMediaRight(element: PlaylistMedia): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistMediaRight(element: PlaylistMedia): ActionRight {\n return getEditPlaylistMediaRight(element);\n }\n\n ////////////////////////////\n // Media rights\n ////////////////////////////\n function getCreateMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMediaRight(element: Media): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteMediaRight(element: Media): ActionRight {\n return getEditMediaRight(element);\n }\n\n ////////////////////////////\n // Mix rights\n ////////////////////////////\n function getCreateMixRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'RADIO')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMixRight(_element: Mix): ActionRight {\n return getCreateMixRight();\n }\n\n function getDeleteMixRight(element: Mix): ActionRight {\n return getEditMixRight(element);\n }\n\n ////////////////////////////\n // Transcript/translation rights\n ////////////////////////////\n function getEditTranscriptRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'PODCAST_CRUD')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getEditTranscriptVisibilityRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditTranslationRight(podcast: Podcast): ActionRight {\n return getEditTranscriptRight(podcast);\n }\n\n ////////////////////////////\n // Live\n ////////////////////////////\n function getAccessRecordingRight(conference: Conference, isLive: boolean): ActionRight {\n if (isLive) {\n return roleContainsAny('LIVE') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n } else {\n return roleContainsAny('ANIMATION', 'RESTRICTED_ANIMATION') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n }\n }\n\n ////////////////////////////\n // Other action rights\n ////////////////////////////\n function getEditCodeInsertPlayerRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditChapteringRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getCreatePromoVideoRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n } else if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditPromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n function getDeletePromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n // View/utility checks — outside the action pattern\n function canSeeHistory(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION');\n }\n\n function isRestrictedProduction(): boolean {\n return roleContainsAny('RESTRICTED_PRODUCTION') && !roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n const rightFns = {\n // Emissions\n getCreateEmissionRight,\n getEditEmissionRight,\n getDeleteEmissionRight,\n getEditCommentsConfigEmissionRight,\n // Podcasts\n getCreatePodcastRight,\n getDuplicatePodcastRight,\n getEditPodcastRight,\n getDeletePodcastRight,\n getValidatePodcastRight,\n getEditCommentsConfigPodcastRight,\n // Playlists\n getCreatePlaylistRight,\n getEditPlaylistRight,\n getDeletePlaylistRight,\n // Participants (sync only)\n getCreateParticipantRight,\n // Rubriques/Rubriquages\n getCreateRubriquesRight,\n getEditRubriquesRight,\n // Aggregators\n getCreateAggregatorRight,\n getEditAggregatorRight,\n getDeleteAggregatorRight,\n // Cartouchier\n getCreateCartouchierRight,\n getEditCartouchierRight,\n getDeleteCartouchierRight,\n // PlaylistMedia\n getCreatePlaylistMediaRight,\n getEditPlaylistMediaRight,\n getDeletePlaylistMediaRight,\n // Media\n getCreateMediaRight,\n getEditMediaRight,\n getDeleteMediaRight,\n // Mix\n getCreateMixRight,\n getEditMixRight,\n getDeleteMixRight,\n // Translation/transcription\n getEditTranscriptRight,\n getEditTranscriptVisibilityRight,\n getEditTranslationRight,\n // Other\n getAccessRecordingRight,\n getEditCodeInsertPlayerRight,\n getEditChapteringRight,\n getCreatePromoVideoRight,\n getEditPromoVideoRight,\n getDeletePromoVideoRight\n };\n\n const canFns = deriveCanFunctions(rightFns);\n\n function canReadRSSRules(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n function canEditRSSRules(): boolean {\n return canReadRSSRules();\n }\n\n return {\n ...rightFns,\n ...canFns,\n // Async participant (kept manually — async functions excluded from deriveCanFunctions)\n getParticipantEditRight,\n canEditParticipant,\n canDeleteParticipant,\n // RSS Rules (manual — outside the getRightXxx convention)\n canReadRSSRules,\n canEditRSSRules,\n // View/utility checks\n canSeeHistory,\n isRestrictedProduction,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as useAuthStore } from "./classicApi-
|
|
1
|
+
import { i as useAuthStore } from "./classicApi-xjOqAovv.mjs";
|
|
2
2
|
//#region src/components/composable/useRights.ts
|
|
3
3
|
var ActionRight = /* @__PURE__ */ function(ActionRight) {
|
|
4
4
|
/** User can perform the action */
|
|
@@ -273,4 +273,4 @@ var useRights = () => {
|
|
|
273
273
|
//#endregion
|
|
274
274
|
export { useRights as n, ActionRight as t };
|
|
275
275
|
|
|
276
|
-
//# sourceMappingURL=useRights-
|
|
276
|
+
//# sourceMappingURL=useRights-DSZ-5pFg.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRights-DSZ-5pFg.mjs","names":[],"sources":["../src/components/composable/useRights.ts"],"sourcesContent":["import { Mix } from \"../../stores/class/radio/mix\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport type { Emission } from \"../../stores/class/general/emission\";\nimport type { Podcast } from \"../../stores/class/general/podcast\";\nimport { PlaylistMedia } from \"../../stores/class/radio/playlistMedia\";\nimport { Cartouchier } from \"../../stores/class/cartouchier/cartouchier\";\nimport { Media } from \"../../stores/class/general/media\";\nimport { Conference } from \"../../stores/class/conference/conference\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\n\ntype Role =\n 'ADMIN'|'ORGANISATION'|\n 'PRODUCTION'|'RESTRICTED_PRODUCTION'|'PODCAST_CRUD'|'PODCAST_VALIDATION'|\n 'PLAYLISTS'|'ANIMATION'|'RESTRICTED_ANIMATION'|'RADIO'|'LIVE'|\n 'EDITION'\n ;\n\nexport enum ActionRight {\n /** User can perform the action */\n Allowed = 'allowed',\n /** User lacks the required role */\n DeniedNoRight = 'no_right', \n /** User has a restricted role but does not own the resource **/\n DeniedNotOwner = 'not_owner',\n /** User is scoped to specific rubriques */\n DeniedInsufficientScope = 'no_scope'\n}\n\n// Constraint type for the object passed to deriveCanFunctions.\n// any[] is intentional: it allows functions with any parameter signature to satisfy\n// the constraint while still enforcing that the return type is ActionRight.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SyncRightFns = Record<string, (...args: any[]) => ActionRight>;\n\n// Maps every key of the form `get${A}Right` to `can${A}`, preserving the parameter\n// types of the original function but changing the return type to boolean.\n// Keys that do not match the naming convention are dropped (mapped to never).\ntype CanFns<T extends SyncRightFns> = {\n [K in keyof T as K extends `get${infer A}Right` ? `can${A}` : never]:\n T[K] extends (...args: infer P) => ActionRight ? (...args: P) => boolean : never;\n};\n\n/**\n * Generates boolean shortcut functions from a set of `getRightXxx` functions.\n *\n * Convention: `get${Action}Right(…args) → ActionRight`\n * becomes `can${Action}(…args) → boolean`\n *\n * The generated function returns true when the underlying getRightXxx returns\n * ActionRight.Allowed, and false otherwise. This means callers that only need\n * a simple yes/no answer can use canXxx(), while callers that need the specific\n * denial reason (DeniedNoRight vs DeniedNotOwner) can call getRightXxx() directly.\n *\n * Only synchronous functions should be passed here; async rights functions must\n * be wrapped manually.\n */\nfunction deriveCanFunctions<T extends SyncRightFns>(fns: T): CanFns<T> {\n const result = {} as CanFns<T>;\n for (const key of Object.keys(fns) as (keyof T & string)[]) {\n if (key.startsWith('get') && key.endsWith('Right')) {\n const canKey = `can${key.slice(3, -5)}` as keyof CanFns<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (result as any)[canKey] = (...args: unknown[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (fns as any)[key](...args) === ActionRight.Allowed;\n }\n }\n return result;\n}\n\n/**\n * Composable to manage rights.\n * Based on AuthStore, but converts roles to easily usable tests for various\n * actions.\n */\nexport const useRights = () => {\n const authStore = useAuthStore();\n\n function roleContainsAny(...roles: Role[]): boolean {\n return (authStore.authRole as Role[]).findIndex((r: Role) => roles.includes(r)) > -1;\n }\n\n function hasSufficientScope(elementRubriques: Array<number> = [], parentRubriques: Array<number> = []): boolean {\n const ids = elementRubriques.concat(parentRubriques);\n const scope = authStore.userScope;\n if (scope.length === 0) {\n return true;\n }\n\n for (const id of scope) {\n if (ids.includes(id)) {\n return true;\n }\n }\n\n return false;\n }\n\n ////////////////////////////\n // Emission rights\n ////////////////////////////\n function getCreateEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditEmissionRight(emission: Emission): ActionRight {\n if (!hasSufficientScope(emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n \n if (\n (!emission.emissionId && getCreateEmissionRight() === ActionRight.Allowed) ||\n roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ) {\n return ActionRight.Allowed;\n }\n\n if (roleContainsAny('RESTRICTED_PRODUCTION')) {\n return emission.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteEmissionRight(emission: Emission): ActionRight {\n // In case of restricted production, it will only delete podcasts\n // created by user, and delete the emission only if empty afterwards\n if (roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'RESTRICTED_PRODUCTION')) {\n return hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditCommentsConfigEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // Podcast rights\n function getCreatePodcastRight(emission?: Emission): ActionRight {\n if(roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return !emission || hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getDuplicatePodcastRight(): ActionRight {\n // Same as creation but notably without PODCAST_CRUD and RESTRICTED_ANIMATION\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPodcastRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n if (roleContainsAny('PODCAST_CRUD')) {\n return podcast.valid === false && podcast.publisher?.userId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePodcastRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getValidatePodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'PODCAST_VALIDATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCommentsConfigPodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Playlist rights\n ////////////////////////////\n function getCreatePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Participant rights\n ////////////////////////////\n function getCreateParticipantRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function getParticipantEditRight(participantId: number|undefined): Promise<ActionRight> {\n // New participants can be edited, and also with sufficient rights\n return (!participantId || roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION'))\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function canEditParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n async function canDeleteParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n ////////////////////////////\n // Rubriques/rubriquage rights\n ////////////////////////////\n function getCreateRubriquesRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'EDITION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function getEditRubriquesRight(_element: Rubrique|Rubriquage): ActionRight {\n return getCreateRubriquesRight();\n }\n\n ////////////////////////////\n // Aggregator rights\n ////////////////////////////\n function getCreateAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeleteAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Cartouchier rights\n ////////////////////////////\n function getCreateCartouchierRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCartouchierRight(element: Cartouchier): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteCartouchierRight(element: Cartouchier): ActionRight {\n return getEditCartouchierRight(element);\n }\n\n ////////////////////////////\n // PlaylistMedia rights\n ////////////////////////////\n function getCreatePlaylistMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistMediaRight(element: PlaylistMedia): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistMediaRight(element: PlaylistMedia): ActionRight {\n return getEditPlaylistMediaRight(element);\n }\n\n ////////////////////////////\n // Media rights\n ////////////////////////////\n function getCreateMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMediaRight(element: Media): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteMediaRight(element: Media): ActionRight {\n return getEditMediaRight(element);\n }\n\n ////////////////////////////\n // Mix rights\n ////////////////////////////\n function getCreateMixRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'RADIO')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMixRight(_element: Mix): ActionRight {\n return getCreateMixRight();\n }\n\n function getDeleteMixRight(element: Mix): ActionRight {\n return getEditMixRight(element);\n }\n\n ////////////////////////////\n // Transcript/translation rights\n ////////////////////////////\n function getEditTranscriptRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'PODCAST_CRUD')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getEditTranscriptVisibilityRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditTranslationRight(podcast: Podcast): ActionRight {\n return getEditTranscriptRight(podcast);\n }\n\n ////////////////////////////\n // Live\n ////////////////////////////\n function getAccessRecordingRight(conference: Conference, isLive: boolean): ActionRight {\n if (isLive) {\n return roleContainsAny('LIVE') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n } else {\n return roleContainsAny('ANIMATION', 'RESTRICTED_ANIMATION') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n }\n }\n\n ////////////////////////////\n // Other action rights\n ////////////////////////////\n function getEditCodeInsertPlayerRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditChapteringRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getCreatePromoVideoRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n } else if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditPromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n function getDeletePromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n // View/utility checks — outside the action pattern\n function canSeeHistory(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION');\n }\n\n function isRestrictedProduction(): boolean {\n return roleContainsAny('RESTRICTED_PRODUCTION') && !roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n const rightFns = {\n // Emissions\n getCreateEmissionRight,\n getEditEmissionRight,\n getDeleteEmissionRight,\n getEditCommentsConfigEmissionRight,\n // Podcasts\n getCreatePodcastRight,\n getDuplicatePodcastRight,\n getEditPodcastRight,\n getDeletePodcastRight,\n getValidatePodcastRight,\n getEditCommentsConfigPodcastRight,\n // Playlists\n getCreatePlaylistRight,\n getEditPlaylistRight,\n getDeletePlaylistRight,\n // Participants (sync only)\n getCreateParticipantRight,\n // Rubriques/Rubriquages\n getCreateRubriquesRight,\n getEditRubriquesRight,\n // Aggregators\n getCreateAggregatorRight,\n getEditAggregatorRight,\n getDeleteAggregatorRight,\n // Cartouchier\n getCreateCartouchierRight,\n getEditCartouchierRight,\n getDeleteCartouchierRight,\n // PlaylistMedia\n getCreatePlaylistMediaRight,\n getEditPlaylistMediaRight,\n getDeletePlaylistMediaRight,\n // Media\n getCreateMediaRight,\n getEditMediaRight,\n getDeleteMediaRight,\n // Mix\n getCreateMixRight,\n getEditMixRight,\n getDeleteMixRight,\n // Translation/transcription\n getEditTranscriptRight,\n getEditTranscriptVisibilityRight,\n getEditTranslationRight,\n // Other\n getAccessRecordingRight,\n getEditCodeInsertPlayerRight,\n getEditChapteringRight,\n getCreatePromoVideoRight,\n getEditPromoVideoRight,\n getDeletePromoVideoRight\n };\n\n const canFns = deriveCanFunctions(rightFns);\n\n function canReadRSSRules(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n function canEditRSSRules(): boolean {\n return canReadRSSRules();\n }\n\n return {\n ...rightFns,\n ...canFns,\n // Async participant (kept manually — async functions excluded from deriveCanFunctions)\n getParticipantEditRight,\n canEditParticipant,\n canDeleteParticipant,\n // RSS Rules (manual — outside the getRightXxx convention)\n canReadRSSRules,\n canEditRSSRules,\n // View/utility checks\n canSeeHistory,\n isRestrictedProduction,\n };\n};\n"],"mappings":"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"}
|
package/dist/{useRubriquesFilterComputed-VsdTUNL6.mjs → useRubriquesFilterComputed-BkDeXTf-.mjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as useFilterStore } from "./classicApi-
|
|
1
|
+
import { r as useFilterStore } from "./classicApi-xjOqAovv.mjs";
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
//#region src/components/composable/route/useRubriquesFilterComputed.ts
|
|
4
4
|
var useRubriquesFilterComputed = () => {
|
|
@@ -10,4 +10,4 @@ var useRubriquesFilterComputed = () => {
|
|
|
10
10
|
//#endregion
|
|
11
11
|
export { useRubriquesFilterComputed as t };
|
|
12
12
|
|
|
13
|
-
//# sourceMappingURL=useRubriquesFilterComputed-
|
|
13
|
+
//# sourceMappingURL=useRubriquesFilterComputed-BkDeXTf-.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRubriquesFilterComputed-BkDeXTf-.mjs","names":[],"sources":["../src/components/composable/route/useRubriquesFilterComputed.ts"],"sourcesContent":["import { RubriquageFilter } from '@/stores/class/rubrique/rubriquageFilter';\nimport { useFilterStore } from '../../../stores/FilterStore';\nimport { computed } from 'vue';\n\nexport const useRubriquesFilterComputed = ()=>{\n\n const filterStore = useFilterStore();\n\n const rubriqueQueryParam = computed(() => { \n if (filterStore.filterRubrique?.length) {\n return filterStore.filterRubrique\n .map(\n (value: RubriquageFilter) =>\n value.rubriquageId + \":\" + value.rubriqueId,\n )\n .join();\n }\n return undefined;\n });\n\n return {\n rubriqueQueryParam\n }\n}\n"],"mappings":";;;AAIA,IAAa,mCAAiC;CAE5C,MAAM,cAAe,eAAe;CAcpC,OAAO,EACL,oBAbyB,eAAe;EACxC,IAAI,YAAY,gBAAgB,QAC9B,OAAO,YAAY,eAChB,KACE,UACC,MAAM,eAAe,MAAM,MAAM,UACrC,EACC,KAAK;CAGZ,CAGE,EACF;AACF"}
|