@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":"LikeSection-jKjhnj88.mjs","names":[],"sources":["../src/components/display/comments/like/LikeSection.vue","../src/components/display/comments/like/LikeSection.vue"],"sourcesContent":["<template>\n <div class=\"d-flex align-items-center mt-1\">\n <CheckIdentityModal\n v-if=\"isCheckIdentityActions\"\n :title=\"t('Welcome, thanks for your interaction')\"\n @validate=\"likeActions(isCheckIdentityActions)\"\n @close=\"isCheckIdentityActions = undefined\"\n />\n <template v-for=\"section in feelingSection\" :key=\"section.name\">\n <template v-if=\"section.condition\">\n <LikeButton\n :like=\"'like' === section.name\"\n :is-active=\"section.name === userFeeling\"\n :can-interact=\"canLikeOrDislike\"\n @like-action=\"initiateLikeActions\"\n />\n <span v-if=\"section.counter\" class=\"ms-1 me-2\">{{\n transformInThousands(section.counter)\n }}</span>\n </template>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { defineAsyncComponent, Ref, ref, computed, onBeforeMount } from \"vue\";\nimport classicApi from \"../../../../api/classicApi\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport {\n CommentFeelings,\n CommentPodcast,\n} from \"@/stores/class/general/comment\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nconst CheckIdentityModal = defineAsyncComponent(\n () => import(\"../modal/CheckIdentityModal.vue\"),\n);\nconst LikeButton = defineAsyncComponent(() => import(\"./LikeButton.vue\"));\n\n//Props \nconst props = defineProps({\n comment: { default: () => undefined, type: Object as () => CommentPodcast },\n editRight: { default: false, type: Boolean },\n podcast: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isCheckIdentityActions: Ref<string | undefined> = ref(undefined);\nconst userFeeling: Ref<string | undefined> = ref(undefined);\nconst config: Ref<CommentsConfig | undefined> = ref(undefined);\nconst podcastFeeling: Ref<CommentFeelings | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst configToApply = computed(() => {\n if (props.comment) {\n return config.value?.commentLikes;\n }\n return config.value?.podcastLikes;\n});\nconst podcastId = computed(() => props.podcast?.podcastId ?? 0);\nconst feelingSection = computed(() => {\n return [\n {\n name: \"like\",\n counter: props.comment?.likes ?? podcastFeeling.value?.likesCount,\n condition: configToApply.value?.likeEnabled ?? false,\n },\n {\n name: \"dislike\",\n counter: props.editRight\n ? (props.comment?.dislikes ?? podcastFeeling.value?.dislikesCount)\n : 0,\n condition: configToApply.value?.dislikeEnabled ?? false,\n },\n ];\n});\nconst canLikeOrDislike = computed(() => {\n return (\n !configToApply.value?.authRequired ||\n (configToApply.value.authRequired && undefined !== authStore.authOrgaId)\n );\n});\n\nonBeforeMount(()=>initLikeConfig())\n\n\n//Methods\nasync function initLikeConfig() {\n if (!props.podcast) {\n return;\n }\n config.value = await commentStore.getCommentsConfig(props.podcast);\n if (\n props.comment ||\n (!config.value.podcastLikes.likeEnabled &&\n !config.value.podcastLikes.dislikeEnabled)\n ) {\n return;\n }\n await fetchPodcastCounters();\n}\nasync function fetchPodcastCounters() {\n const data = await classicApi.fetchData<{\n [key: number]: CommentFeelings;\n }>({\n api: 2,\n path: \"podcast/status\",\n parameters: {\n podcastId: [podcastId.value],\n uuid: commentStore.commentUser?.uuid,\n },\n isNotAuth: true,\n });\n podcastFeeling.value = data[podcastId.value];\n if (\"LIKED\" === podcastFeeling.value.feeling) {\n userFeeling.value = \"like\";\n } else if (\"DISLIKED\" === podcastFeeling.value.feeling) {\n userFeeling.value = \"dislike\";\n }\n}\nfunction transformInThousands(nb: number) {\n if (nb >= 1000) {\n return Math.round(nb / 100) / 10 + \"k\";\n }\n return nb.toString();\n}\nasync function initiateLikeActions(actionName: string) {\n if (!commentStore.commentUser?.name) {\n isCheckIdentityActions.value = actionName;\n return;\n }\n likeActions(actionName);\n}\nasync function likeActions(actionName: string) {\n const prefix = props.comment ? \"comment/\" : \"podcast/\";\n const data = await classicApi.putData<{\n [key: number]: CommentFeelings;\n }>({\n api: 2,\n path: prefix + actionName,\n dataToSend: {\n ids: [props.comment?.commentId ?? podcastId.value],\n name: commentStore.commentUser?.name,\n uuid: commentStore.commentUser?.uuid,\n },\n isNotAuth: true,\n });\n if (props.comment) {\n emit(\"update:comment\", {\n ...props.comment,\n ...{\n likes: data[props.comment.commentId].likesCount,\n dislikes: data[props.comment.commentId].dislikesCount,\n },\n });\n } else {\n podcastFeeling.value = data[podcastId.value];\n }\n userFeeling.value = userFeeling.value ? undefined : actionName;\n isCheckIdentityActions.value = undefined;\n}\n</script>\n","<template>\n <div class=\"d-flex align-items-center mt-1\">\n <CheckIdentityModal\n v-if=\"isCheckIdentityActions\"\n :title=\"t('Welcome, thanks for your interaction')\"\n @validate=\"likeActions(isCheckIdentityActions)\"\n @close=\"isCheckIdentityActions = undefined\"\n />\n <template v-for=\"section in feelingSection\" :key=\"section.name\">\n <template v-if=\"section.condition\">\n <LikeButton\n :like=\"'like' === section.name\"\n :is-active=\"section.name === userFeeling\"\n :can-interact=\"canLikeOrDislike\"\n @like-action=\"initiateLikeActions\"\n />\n <span v-if=\"section.counter\" class=\"ms-1 me-2\">{{\n transformInThousands(section.counter)\n }}</span>\n </template>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { defineAsyncComponent, Ref, ref, computed, onBeforeMount } from \"vue\";\nimport classicApi from \"../../../../api/classicApi\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport {\n CommentFeelings,\n CommentPodcast,\n} from \"@/stores/class/general/comment\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nconst CheckIdentityModal = defineAsyncComponent(\n () => import(\"../modal/CheckIdentityModal.vue\"),\n);\nconst LikeButton = defineAsyncComponent(() => import(\"./LikeButton.vue\"));\n\n//Props \nconst props = defineProps({\n comment: { default: () => undefined, type: Object as () => CommentPodcast },\n editRight: { default: false, type: Boolean },\n podcast: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isCheckIdentityActions: Ref<string | undefined> = ref(undefined);\nconst userFeeling: Ref<string | undefined> = ref(undefined);\nconst config: Ref<CommentsConfig | undefined> = ref(undefined);\nconst podcastFeeling: Ref<CommentFeelings | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst configToApply = computed(() => {\n if (props.comment) {\n return config.value?.commentLikes;\n }\n return config.value?.podcastLikes;\n});\nconst podcastId = computed(() => props.podcast?.podcastId ?? 0);\nconst feelingSection = computed(() => {\n return [\n {\n name: \"like\",\n counter: props.comment?.likes ?? podcastFeeling.value?.likesCount,\n condition: configToApply.value?.likeEnabled ?? false,\n },\n {\n name: \"dislike\",\n counter: props.editRight\n ? (props.comment?.dislikes ?? podcastFeeling.value?.dislikesCount)\n : 0,\n condition: configToApply.value?.dislikeEnabled ?? false,\n },\n ];\n});\nconst canLikeOrDislike = computed(() => {\n return (\n !configToApply.value?.authRequired ||\n (configToApply.value.authRequired && undefined !== authStore.authOrgaId)\n );\n});\n\nonBeforeMount(()=>initLikeConfig())\n\n\n//Methods\nasync function initLikeConfig() {\n if (!props.podcast) {\n return;\n }\n config.value = await commentStore.getCommentsConfig(props.podcast);\n if (\n props.comment ||\n (!config.value.podcastLikes.likeEnabled &&\n !config.value.podcastLikes.dislikeEnabled)\n ) {\n return;\n }\n await fetchPodcastCounters();\n}\nasync function fetchPodcastCounters() {\n const data = await classicApi.fetchData<{\n [key: number]: CommentFeelings;\n }>({\n api: 2,\n path: \"podcast/status\",\n parameters: {\n podcastId: [podcastId.value],\n uuid: commentStore.commentUser?.uuid,\n },\n isNotAuth: true,\n });\n podcastFeeling.value = data[podcastId.value];\n if (\"LIKED\" === podcastFeeling.value.feeling) {\n userFeeling.value = \"like\";\n } else if (\"DISLIKED\" === podcastFeeling.value.feeling) {\n userFeeling.value = \"dislike\";\n }\n}\nfunction transformInThousands(nb: number) {\n if (nb >= 1000) {\n return Math.round(nb / 100) / 10 + \"k\";\n }\n return nb.toString();\n}\nasync function initiateLikeActions(actionName: string) {\n if (!commentStore.commentUser?.name) {\n isCheckIdentityActions.value = actionName;\n return;\n }\n likeActions(actionName);\n}\nasync function likeActions(actionName: string) {\n const prefix = props.comment ? \"comment/\" : \"podcast/\";\n const data = await classicApi.putData<{\n [key: number]: CommentFeelings;\n }>({\n api: 2,\n path: prefix + actionName,\n dataToSend: {\n ids: [props.comment?.commentId ?? podcastId.value],\n name: commentStore.commentUser?.name,\n uuid: commentStore.commentUser?.uuid,\n },\n isNotAuth: true,\n });\n if (props.comment) {\n emit(\"update:comment\", {\n ...props.comment,\n ...{\n likes: data[props.comment.commentId].likesCount,\n dislikes: data[props.comment.commentId].dislikesCount,\n },\n });\n } else {\n podcastFeeling.value = data[podcastId.value];\n }\n userFeeling.value = userFeeling.value ? undefined : actionName;\n isCheckIdentityActions.value = undefined;\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,qBAAqB,2BACnB,OAAO,oCACf;EACA,MAAM,aAAa,2BAA2B,OAAO,4BAAmB;EAGxE,MAAM,QAAQ;EAOd,MAAM,OAAO;EAGb,MAAM,yBAAkD,IAAI,KAAA,CAAS;EACrE,MAAM,cAAuC,IAAI,KAAA,CAAS;EAC1D,MAAM,SAA0C,IAAI,KAAA,CAAS;EAC7D,MAAM,iBAAmD,IAAI,KAAA,CAAS;EAItE,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,YAAY,aAAa;EAC/B,MAAM,eAAe,gBAAgB;EAGrC,MAAM,gBAAgB,eAAe;GACnC,IAAI,MAAM,SACR,OAAO,OAAO,OAAO;GAEvB,OAAO,OAAO,OAAO;EACvB,CAAC;EACD,MAAM,YAAY,eAAgB,MAAM,SAAS,aAAa,CAAC;EAC/D,MAAM,iBAAiB,eAAe;GACpC,OAAO,CACL;IACE,MAAM;IACN,SAAS,MAAM,SAAS,SAAS,eAAe,OAAO;IACvD,WAAW,cAAc,OAAO,eAAe;GACjD,GACA;IACE,MAAM;IACN,SAAS,MAAM,YACV,MAAM,SAAS,YAAY,eAAe,OAAO,gBAClD;IACJ,WAAW,cAAc,OAAO,kBAAkB;GACpD,CACF;EACF,CAAC;EACD,MAAM,mBAAmB,eAAe;GACtC,OACE,CAAC,cAAc,OAAO,gBACrB,cAAc,MAAM,gBAAgB,KAAA,MAAc,UAAU;EAEjE,CAAC;EAED,oBAAkB,eAAe,CAAC;EAIlC,eAAe,iBAAiB;GAC9B,IAAI,CAAC,MAAM,SACT;GAEF,OAAO,QAAQ,MAAM,aAAa,kBAAkB,MAAM,OAAO;GACjE,IACE,MAAM,WACL,CAAC,OAAO,MAAM,aAAa,eAC1B,CAAC,OAAO,MAAM,aAAa,gBAE7B;GAEF,MAAM,qBAAqB;EAC7B;EACA,eAAe,uBAAuB;GAYpC,eAAe,SAAQ,MAXJ,mBAAW,UAE3B;IACD,KAAK;IACL,MAAM;IACN,YAAY;KACV,WAAW,CAAC,UAAU,KAAK;KAC3B,MAAM,aAAa,aAAa;IAClC;IACA,WAAW;GACb,CAAC,GAC2B,UAAU;GACtC,IAAI,YAAY,eAAe,MAAM,SACnC,YAAY,QAAQ;QACf,IAAI,eAAe,eAAe,MAAM,SAC7C,YAAY,QAAQ;EAExB;EACA,SAAS,qBAAqB,IAAY;GACxC,IAAI,MAAM,KACR,OAAO,KAAK,MAAM,KAAK,GAAG,IAAI,KAAK;GAErC,OAAO,GAAG,SAAS;EACrB;EACA,eAAe,oBAAoB,YAAoB;GACrD,IAAI,CAAC,aAAa,aAAa,MAAM;IACnC,uBAAuB,QAAQ;IAC/B;GACF;GACA,YAAY,UAAU;EACxB;EACA,eAAe,YAAY,YAAoB;GAC7C,MAAM,SAAS,MAAM,UAAU,aAAa;GAC5C,MAAM,OAAO,MAAM,mBAAW,QAE3B;IACD,KAAK;IACL,MAAM,SAAS;IACf,YAAY;KACV,KAAK,CAAC,MAAM,SAAS,aAAa,UAAU,KAAK;KACjD,MAAM,aAAa,aAAa;KAChC,MAAM,aAAa,aAAa;IAClC;IACA,WAAW;GACb,CAAC;GACD,IAAI,MAAM,SACR,KAAK,kBAAkB;IACrB,GAAG,MAAM;IAEP,OAAO,KAAK,MAAM,QAAQ,WAAW;IACrC,UAAU,KAAK,MAAM,QAAQ,WAAW;GAE5C,CAAC;QAED,eAAe,QAAQ,KAAK,UAAU;GAExC,YAAY,QAAQ,YAAY,QAAQ,KAAA,IAAY;GACpD,uBAAuB,QAAQ,KAAA;EACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBC1KO,OAAM,iCAAgC;;;CAeR,OAAM;;;qBAfzC,mBAoBM,OApBN,YAoBM,CAlBI,OAAA,0BAAA,UAAA,GADR,YAKE,OAAA,uBAAA;;EAHC,OAAO,OAAA,EAAC,sCAAA;EACR,YAAQ,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,YAAY,OAAA,sBAAsB;EAC5C,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,yBAAyB,KAAA;+EAEnC,mBAYW,UAAA,MAAA,WAZiB,OAAA,iBAAX,YAAO;0DAA0B,QAAQ,KAAA,GAAA,CACxC,QAAQ,aAAA,UAAA,GAAxB,mBAUW,UAAA,EAAA,KAAA,EAAA,GAAA,CATT,YAKE,OAAA,eAAA;GAJC,MAAI,WAAa,QAAQ;GACzB,aAAW,QAAQ,SAAS,OAAA;GAC5B,gBAAc,OAAA;GACd,cAAa,OAAA;;;;;MAEJ,QAAQ,WAAA,UAAA,GAApB,mBAES,QAFT,YAES,gBADP,OAAA,qBAAqB,QAAQ,OAAO,CAAA,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA,CAAA,GAAA,EAAA,KAAA,mBAAA,QAAA,IAAA,CAAA,GAAA,EAAA"}
|
|
@@ -2,12 +2,12 @@ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
|
2
2
|
import { t as domHelper_default } from "./domHelper-DTMIrMbs.mjs";
|
|
3
3
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
4
4
|
import { t as ClassicLoading_default } from "./ClassicLoading-Crlw7cAx.mjs";
|
|
5
|
-
import { A as state } from "./classicApi-
|
|
5
|
+
import { A as state } from "./classicApi-xjOqAovv.mjs";
|
|
6
6
|
import { t as PaginateParams_default } from "./PaginateParams-CbAaMAAM.mjs";
|
|
7
7
|
import { t as PaginateSection_default } from "./PaginateSection-BJ6iQai2.mjs";
|
|
8
8
|
import { t as useResizePhone } from "./useResizePhone-CpfFUmfV.mjs";
|
|
9
9
|
import { t as useRouteUpdateParams } from "./useRouteUpdateParams-DurlddRA.mjs";
|
|
10
|
-
import { n as usePlayerStore } from "./PlayerStore-
|
|
10
|
+
import { n as usePlayerStore } from "./PlayerStore-vYmnOEA_.mjs";
|
|
11
11
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, vShow, watch, withDirectives } from "vue";
|
|
12
12
|
import PlusIcon from "vue-material-design-icons/Plus.vue";
|
|
13
13
|
import { useI18n } from "vue-i18n";
|
|
@@ -199,4 +199,4 @@ var ListPaginate_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ListP
|
|
|
199
199
|
//#endregion
|
|
200
200
|
export { ListPaginate_exports as n, ListPaginate_default as t };
|
|
201
201
|
|
|
202
|
-
//# sourceMappingURL=ListPaginate-
|
|
202
|
+
//# sourceMappingURL=ListPaginate-BXNnw_I8.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPaginate-BXNnw_I8.mjs","names":[],"sources":["../src/components/display/list/ListPaginate.vue","../src/components/display/list/ListPaginate.vue"],"sourcesContent":["<template>\n <div :id=\"id\" class=\"d-flex flex-column align-items-center\">\n <ClassicLoading\n v-if=\"loading || errorText\"\n :loading-text=\"loadingText\" :error-text=\"errorText\"\n />\n <template v-if=\"!loading\">\n <div\n v-if=\"!justSizeChosen\"\n class=\"d-flex justify-content-between align-items-center flex-grow-1 w-100\"\n >\n <div class=\"text-secondary me-3\">\n <template v-if=\"textCount\">\n {{ textCount }}\n </template>\n </div>\n <PaginateParams\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :rows-per-page=\"rowsPerPage\"\n @update:rows-per-page=\"changeSize\"\n />\n </div>\n </template>\n <slot name=\"list\" />\n <PaginateSection\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :style=\"pagingStyle\"\n :first=\"first\"\n :rows-per-page=\"rowsPerPage\"\n :total-count=\"totalCount\"\n :range-size=\"rangeSize\"\n @update:first=\"changeFirst\"\n />\n <button\n v-show=\"first + rowsPerPage < totalCount && (isPhone || justSizeChosen)\"\n :disabled=\"loading\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n :title=\"t('See more')\"\n @click=\"fetchMore\"\n >\n <template v-if=\"buttonPlus\">\n {{ t(\"See more\") }}\n </template>\n <PlusIcon :size=\"16\" :class=\"buttonPlus ? 'ms-1' : ''\" />\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport domHelper from \"../../../helper/domHelper\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport PaginateParams from \"./PaginateParams.vue\";\nimport PaginateSection from \"./PaginateSection.vue\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { useRouteUpdateParams } from \"../../composable/route/useRouteUpdateParams\";\nimport { computed, watch } from \"vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n rowsPerPage: { default: 30, type: Number },\n totalCount: { default: 0, type: Number },\n textCount: { default: undefined, type: String },\n id: { default: \"\", type: String },\n loadingText: { default: undefined, type: String },\n errorText: { default: undefined, type: String },\n loading: { default: false, type: Boolean },\n isMobile: { default: false, type: Boolean },\n justSizeChosen: { default: false, type: Boolean },\n playerResponsive: { default: false, type: Boolean },\n forceUpdateParameters: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:first\", \"update:rowsPerPage\", \"update:isMobile\"]);\n\n \n//Composables\nconst { t } = useI18n();\nconst { isPhone, windowWidth } = useResizePhone();\nconst { updateRouteParam, updatePaginateSize } = useRouteUpdateParams();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst buttonPlus = computed(() => state.generalParameters.buttonPlus);\nconst rangeSize = computed(() => {\n if (windowWidth.value > 1600) {\n return 3;\n }\n return windowWidth.value > 1530 ? 2 : 1;\n});\n\n\n//Watch\nwatch(isPhone, () => {emit(\"update:isMobile\", isPhone.value);}, {immediate: true});\nwatch(()=>props.first, () => {\n updateRouteParam({pr:(Math.floor(props.first / props.rowsPerPage) + 1).toString()}, props.forceUpdateParameters);\n});\n\n//Methods\nfunction fetchMore() {\n emit(\"update:first\", props.first + props.rowsPerPage);\n}\nfunction changeFirst(firstValue: number) {\n scrollToTop();\n emit(\"update:first\", firstValue);\n}\nfunction changeSize(sizeValue: number) {\n scrollToTop();\n emit(\"update:rowsPerPage\", sizeValue);\n updatePaginateSize(sizeValue, props.forceUpdateParameters);\n}\nfunction scrollToTop() {\n const element = document.getElementById(props.id);\n if (!element || element.getBoundingClientRect().top > 0) {\n return;\n }\n const y =\n element.getBoundingClientRect().top +\n window.scrollY -\n domHelper.convertRemToPixels(3.5);\n window.scrollTo({ top: y, behavior: \"smooth\" });\n}\n\n/** Style to apply to the paging section */\nfunction pagingStyle(): Record<string, string> {\n // Only change position if player is active and not at the top\n if (props.playerResponsive && state.player.topPlacement !== true) {\n return { 'bottom': playerStore.playerHeight };\n }\n}\n</script>\n","<template>\n <div :id=\"id\" class=\"d-flex flex-column align-items-center\">\n <ClassicLoading\n v-if=\"loading || errorText\"\n :loading-text=\"loadingText\" :error-text=\"errorText\"\n />\n <template v-if=\"!loading\">\n <div\n v-if=\"!justSizeChosen\"\n class=\"d-flex justify-content-between align-items-center flex-grow-1 w-100\"\n >\n <div class=\"text-secondary me-3\">\n <template v-if=\"textCount\">\n {{ textCount }}\n </template>\n </div>\n <PaginateParams\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :rows-per-page=\"rowsPerPage\"\n @update:rows-per-page=\"changeSize\"\n />\n </div>\n </template>\n <slot name=\"list\" />\n <PaginateSection\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :style=\"pagingStyle\"\n :first=\"first\"\n :rows-per-page=\"rowsPerPage\"\n :total-count=\"totalCount\"\n :range-size=\"rangeSize\"\n @update:first=\"changeFirst\"\n />\n <button\n v-show=\"first + rowsPerPage < totalCount && (isPhone || justSizeChosen)\"\n :disabled=\"loading\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n :title=\"t('See more')\"\n @click=\"fetchMore\"\n >\n <template v-if=\"buttonPlus\">\n {{ t(\"See more\") }}\n </template>\n <PlusIcon :size=\"16\" :class=\"buttonPlus ? 'ms-1' : ''\" />\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport domHelper from \"../../../helper/domHelper\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport PaginateParams from \"./PaginateParams.vue\";\nimport PaginateSection from \"./PaginateSection.vue\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { useRouteUpdateParams } from \"../../composable/route/useRouteUpdateParams\";\nimport { computed, watch } from \"vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n rowsPerPage: { default: 30, type: Number },\n totalCount: { default: 0, type: Number },\n textCount: { default: undefined, type: String },\n id: { default: \"\", type: String },\n loadingText: { default: undefined, type: String },\n errorText: { default: undefined, type: String },\n loading: { default: false, type: Boolean },\n isMobile: { default: false, type: Boolean },\n justSizeChosen: { default: false, type: Boolean },\n playerResponsive: { default: false, type: Boolean },\n forceUpdateParameters: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:first\", \"update:rowsPerPage\", \"update:isMobile\"]);\n\n \n//Composables\nconst { t } = useI18n();\nconst { isPhone, windowWidth } = useResizePhone();\nconst { updateRouteParam, updatePaginateSize } = useRouteUpdateParams();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst buttonPlus = computed(() => state.generalParameters.buttonPlus);\nconst rangeSize = computed(() => {\n if (windowWidth.value > 1600) {\n return 3;\n }\n return windowWidth.value > 1530 ? 2 : 1;\n});\n\n\n//Watch\nwatch(isPhone, () => {emit(\"update:isMobile\", isPhone.value);}, {immediate: true});\nwatch(()=>props.first, () => {\n updateRouteParam({pr:(Math.floor(props.first / props.rowsPerPage) + 1).toString()}, props.forceUpdateParameters);\n});\n\n//Methods\nfunction fetchMore() {\n emit(\"update:first\", props.first + props.rowsPerPage);\n}\nfunction changeFirst(firstValue: number) {\n scrollToTop();\n emit(\"update:first\", firstValue);\n}\nfunction changeSize(sizeValue: number) {\n scrollToTop();\n emit(\"update:rowsPerPage\", sizeValue);\n updatePaginateSize(sizeValue, props.forceUpdateParameters);\n}\nfunction scrollToTop() {\n const element = document.getElementById(props.id);\n if (!element || element.getBoundingClientRect().top > 0) {\n return;\n }\n const y =\n element.getBoundingClientRect().top +\n window.scrollY -\n domHelper.convertRemToPixels(3.5);\n window.scrollTo({ top: y, behavior: \"smooth\" });\n}\n\n/** Style to apply to the paging section */\nfunction pagingStyle(): Record<string, string> {\n // Only change position if player is active and not at the top\n if (props.playerResponsive && state.player.topPlacement !== true) {\n return { 'bottom': playerStore.playerHeight };\n }\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPaginate-COsL4t78.mjs","names":[],"sources":["../src/components/display/list/ListPaginate.vue","../src/components/display/list/ListPaginate.vue"],"sourcesContent":["<template>\n <div :id=\"id\" class=\"d-flex flex-column align-items-center\">\n <ClassicLoading\n v-if=\"loading || errorText\"\n :loading-text=\"loadingText\" :error-text=\"errorText\"\n />\n <template v-if=\"!loading\">\n <div\n v-if=\"!justSizeChosen\"\n class=\"d-flex justify-content-between align-items-center flex-grow-1 w-100\"\n >\n <div class=\"text-secondary me-3\">\n <template v-if=\"textCount\">\n {{ textCount }}\n </template>\n </div>\n <PaginateParams\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :rows-per-page=\"rowsPerPage\"\n @update:rows-per-page=\"changeSize\"\n />\n </div>\n </template>\n <slot name=\"list\" />\n <PaginateSection\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :style=\"pagingStyle\"\n :first=\"first\"\n :rows-per-page=\"rowsPerPage\"\n :total-count=\"totalCount\"\n :range-size=\"rangeSize\"\n @update:first=\"changeFirst\"\n />\n <button\n v-show=\"first + rowsPerPage < totalCount && (isPhone || justSizeChosen)\"\n :disabled=\"loading\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n :title=\"t('See more')\"\n @click=\"fetchMore\"\n >\n <template v-if=\"buttonPlus\">\n {{ t(\"See more\") }}\n </template>\n <PlusIcon :size=\"16\" :class=\"buttonPlus ? 'ms-1' : ''\" />\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport domHelper from \"../../../helper/domHelper\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport PaginateParams from \"./PaginateParams.vue\";\nimport PaginateSection from \"./PaginateSection.vue\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { useRouteUpdateParams } from \"../../composable/route/useRouteUpdateParams\";\nimport { computed, watch } from \"vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n rowsPerPage: { default: 30, type: Number },\n totalCount: { default: 0, type: Number },\n textCount: { default: undefined, type: String },\n id: { default: \"\", type: String },\n loadingText: { default: undefined, type: String },\n errorText: { default: undefined, type: String },\n loading: { default: false, type: Boolean },\n isMobile: { default: false, type: Boolean },\n justSizeChosen: { default: false, type: Boolean },\n playerResponsive: { default: false, type: Boolean },\n forceUpdateParameters: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:first\", \"update:rowsPerPage\", \"update:isMobile\"]);\n\n \n//Composables\nconst { t } = useI18n();\nconst { isPhone, windowWidth } = useResizePhone();\nconst { updateRouteParam, updatePaginateSize } = useRouteUpdateParams();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst buttonPlus = computed(() => state.generalParameters.buttonPlus);\nconst rangeSize = computed(() => {\n if (windowWidth.value > 1600) {\n return 3;\n }\n return windowWidth.value > 1530 ? 2 : 1;\n});\n\n\n//Watch\nwatch(isPhone, () => {emit(\"update:isMobile\", isPhone.value);}, {immediate: true});\nwatch(()=>props.first, () => {\n updateRouteParam({pr:(Math.floor(props.first / props.rowsPerPage) + 1).toString()}, props.forceUpdateParameters);\n});\n\n//Methods\nfunction fetchMore() {\n emit(\"update:first\", props.first + props.rowsPerPage);\n}\nfunction changeFirst(firstValue: number) {\n scrollToTop();\n emit(\"update:first\", firstValue);\n}\nfunction changeSize(sizeValue: number) {\n scrollToTop();\n emit(\"update:rowsPerPage\", sizeValue);\n updatePaginateSize(sizeValue, props.forceUpdateParameters);\n}\nfunction scrollToTop() {\n const element = document.getElementById(props.id);\n if (!element || element.getBoundingClientRect().top > 0) {\n return;\n }\n const y =\n element.getBoundingClientRect().top +\n window.scrollY -\n domHelper.convertRemToPixels(3.5);\n window.scrollTo({ top: y, behavior: \"smooth\" });\n}\n\n/** Style to apply to the paging section */\nfunction pagingStyle(): Record<string, string> {\n // Only change position if player is active and not at the top\n if (props.playerResponsive && state.player.topPlacement !== true) {\n return { 'bottom': playerStore.playerHeight };\n }\n}\n</script>\n","<template>\n <div :id=\"id\" class=\"d-flex flex-column align-items-center\">\n <ClassicLoading\n v-if=\"loading || errorText\"\n :loading-text=\"loadingText\" :error-text=\"errorText\"\n />\n <template v-if=\"!loading\">\n <div\n v-if=\"!justSizeChosen\"\n class=\"d-flex justify-content-between align-items-center flex-grow-1 w-100\"\n >\n <div class=\"text-secondary me-3\">\n <template v-if=\"textCount\">\n {{ textCount }}\n </template>\n </div>\n <PaginateParams\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :rows-per-page=\"rowsPerPage\"\n @update:rows-per-page=\"changeSize\"\n />\n </div>\n </template>\n <slot name=\"list\" />\n <PaginateSection\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :style=\"pagingStyle\"\n :first=\"first\"\n :rows-per-page=\"rowsPerPage\"\n :total-count=\"totalCount\"\n :range-size=\"rangeSize\"\n @update:first=\"changeFirst\"\n />\n <button\n v-show=\"first + rowsPerPage < totalCount && (isPhone || justSizeChosen)\"\n :disabled=\"loading\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n :title=\"t('See more')\"\n @click=\"fetchMore\"\n >\n <template v-if=\"buttonPlus\">\n {{ t(\"See more\") }}\n </template>\n <PlusIcon :size=\"16\" :class=\"buttonPlus ? 'ms-1' : ''\" />\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport domHelper from \"../../../helper/domHelper\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport PaginateParams from \"./PaginateParams.vue\";\nimport PaginateSection from \"./PaginateSection.vue\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { useRouteUpdateParams } from \"../../composable/route/useRouteUpdateParams\";\nimport { computed, watch } from \"vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n rowsPerPage: { default: 30, type: Number },\n totalCount: { default: 0, type: Number },\n textCount: { default: undefined, type: String },\n id: { default: \"\", type: String },\n loadingText: { default: undefined, type: String },\n errorText: { default: undefined, type: String },\n loading: { default: false, type: Boolean },\n isMobile: { default: false, type: Boolean },\n justSizeChosen: { default: false, type: Boolean },\n playerResponsive: { default: false, type: Boolean },\n forceUpdateParameters: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:first\", \"update:rowsPerPage\", \"update:isMobile\"]);\n\n \n//Composables\nconst { t } = useI18n();\nconst { isPhone, windowWidth } = useResizePhone();\nconst { updateRouteParam, updatePaginateSize } = useRouteUpdateParams();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst buttonPlus = computed(() => state.generalParameters.buttonPlus);\nconst rangeSize = computed(() => {\n if (windowWidth.value > 1600) {\n return 3;\n }\n return windowWidth.value > 1530 ? 2 : 1;\n});\n\n\n//Watch\nwatch(isPhone, () => {emit(\"update:isMobile\", isPhone.value);}, {immediate: true});\nwatch(()=>props.first, () => {\n updateRouteParam({pr:(Math.floor(props.first / props.rowsPerPage) + 1).toString()}, props.forceUpdateParameters);\n});\n\n//Methods\nfunction fetchMore() {\n emit(\"update:first\", props.first + props.rowsPerPage);\n}\nfunction changeFirst(firstValue: number) {\n scrollToTop();\n emit(\"update:first\", firstValue);\n}\nfunction changeSize(sizeValue: number) {\n scrollToTop();\n emit(\"update:rowsPerPage\", sizeValue);\n updatePaginateSize(sizeValue, props.forceUpdateParameters);\n}\nfunction scrollToTop() {\n const element = document.getElementById(props.id);\n if (!element || element.getBoundingClientRect().top > 0) {\n return;\n }\n const y =\n element.getBoundingClientRect().top +\n window.scrollY -\n domHelper.convertRemToPixels(3.5);\n window.scrollTo({ top: y, behavior: \"smooth\" });\n}\n\n/** Style to apply to the paging section */\nfunction pagingStyle(): Record<string, string> {\n // Only change position if player is active and not at the top\n if (props.playerResponsive && state.player.topPlacement !== true) {\n return { 'bottom': playerStore.playerHeight };\n }\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPaginate-JuC0L113.mjs","names":[],"sources":["../src/components/display/list/ListPaginate.vue","../src/components/display/list/ListPaginate.vue"],"sourcesContent":["<template>\n <div :id=\"id\" class=\"d-flex flex-column align-items-center\">\n <ClassicLoading\n v-if=\"loading || errorText\"\n :loading-text=\"loadingText\" :error-text=\"errorText\"\n />\n <template v-if=\"!loading\">\n <div\n v-if=\"!justSizeChosen\"\n class=\"d-flex justify-content-between align-items-center flex-grow-1 w-100\"\n >\n <div class=\"text-secondary me-3\">\n <template v-if=\"textCount\">\n {{ textCount }}\n </template>\n </div>\n <PaginateParams\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :rows-per-page=\"rowsPerPage\"\n @update:rows-per-page=\"changeSize\"\n />\n </div>\n </template>\n <slot name=\"list\" />\n <PaginateSection\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :style=\"pagingStyle\"\n :first=\"first\"\n :rows-per-page=\"rowsPerPage\"\n :total-count=\"totalCount\"\n :range-size=\"rangeSize\"\n @update:first=\"changeFirst\"\n />\n <button\n v-show=\"first + rowsPerPage < totalCount && (isPhone || justSizeChosen)\"\n :disabled=\"loading\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n :title=\"t('See more')\"\n @click=\"fetchMore\"\n >\n <template v-if=\"buttonPlus\">\n {{ t(\"See more\") }}\n </template>\n <PlusIcon :size=\"16\" :class=\"buttonPlus ? 'ms-1' : ''\" />\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport domHelper from \"../../../helper/domHelper\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport PaginateParams from \"./PaginateParams.vue\";\nimport PaginateSection from \"./PaginateSection.vue\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { useRouteUpdateParams } from \"../../composable/route/useRouteUpdateParams\";\nimport { computed, watch } from \"vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n rowsPerPage: { default: 30, type: Number },\n totalCount: { default: 0, type: Number },\n textCount: { default: undefined, type: String },\n id: { default: \"\", type: String },\n loadingText: { default: undefined, type: String },\n errorText: { default: undefined, type: String },\n loading: { default: false, type: Boolean },\n isMobile: { default: false, type: Boolean },\n justSizeChosen: { default: false, type: Boolean },\n playerResponsive: { default: false, type: Boolean },\n forceUpdateParameters: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:first\", \"update:rowsPerPage\", \"update:isMobile\"]);\n\n \n//Composables\nconst { t } = useI18n();\nconst { isPhone, windowWidth } = useResizePhone();\nconst { updateRouteParam, updatePaginateSize } = useRouteUpdateParams();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst buttonPlus = computed(() => state.generalParameters.buttonPlus);\nconst rangeSize = computed(() => {\n if (windowWidth.value > 1600) {\n return 3;\n }\n return windowWidth.value > 1530 ? 2 : 1;\n});\n\n\n//Watch\nwatch(isPhone, () => {emit(\"update:isMobile\", isPhone.value);}, {immediate: true});\nwatch(()=>props.first, () => {\n updateRouteParam({pr:(Math.floor(props.first / props.rowsPerPage) + 1).toString()}, props.forceUpdateParameters);\n});\n\n//Methods\nfunction fetchMore() {\n emit(\"update:first\", props.first + props.rowsPerPage);\n}\nfunction changeFirst(firstValue: number) {\n scrollToTop();\n emit(\"update:first\", firstValue);\n}\nfunction changeSize(sizeValue: number) {\n scrollToTop();\n emit(\"update:rowsPerPage\", sizeValue);\n updatePaginateSize(sizeValue, props.forceUpdateParameters);\n}\nfunction scrollToTop() {\n const element = document.getElementById(props.id);\n if (!element || element.getBoundingClientRect().top > 0) {\n return;\n }\n const y =\n element.getBoundingClientRect().top +\n window.scrollY -\n domHelper.convertRemToPixels(3.5);\n window.scrollTo({ top: y, behavior: \"smooth\" });\n}\n\n/** Style to apply to the paging section */\nfunction pagingStyle(): Record<string, string> {\n // Only change position if player is active and not at the top\n if (props.playerResponsive && state.player.topPlacement !== true) {\n return { 'bottom': playerStore.playerHeight };\n }\n}\n</script>\n","<template>\n <div :id=\"id\" class=\"d-flex flex-column align-items-center\">\n <ClassicLoading\n v-if=\"loading || errorText\"\n :loading-text=\"loadingText\" :error-text=\"errorText\"\n />\n <template v-if=\"!loading\">\n <div\n v-if=\"!justSizeChosen\"\n class=\"d-flex justify-content-between align-items-center flex-grow-1 w-100\"\n >\n <div class=\"text-secondary me-3\">\n <template v-if=\"textCount\">\n {{ textCount }}\n </template>\n </div>\n <PaginateParams\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :rows-per-page=\"rowsPerPage\"\n @update:rows-per-page=\"changeSize\"\n />\n </div>\n </template>\n <slot name=\"list\" />\n <PaginateSection\n v-if=\"!isPhone && !justSizeChosen && totalCount > 0\"\n :id=\"id\"\n :style=\"pagingStyle\"\n :first=\"first\"\n :rows-per-page=\"rowsPerPage\"\n :total-count=\"totalCount\"\n :range-size=\"rangeSize\"\n @update:first=\"changeFirst\"\n />\n <button\n v-show=\"first + rowsPerPage < totalCount && (isPhone || justSizeChosen)\"\n :disabled=\"loading\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n :title=\"t('See more')\"\n @click=\"fetchMore\"\n >\n <template v-if=\"buttonPlus\">\n {{ t(\"See more\") }}\n </template>\n <PlusIcon :size=\"16\" :class=\"buttonPlus ? 'ms-1' : ''\" />\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport domHelper from \"../../../helper/domHelper\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport PaginateParams from \"./PaginateParams.vue\";\nimport PaginateSection from \"./PaginateSection.vue\";\nimport {useResizePhone} from \"../../composable/useResizePhone\";\nimport { useRouteUpdateParams } from \"../../composable/route/useRouteUpdateParams\";\nimport { computed, watch } from \"vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n rowsPerPage: { default: 30, type: Number },\n totalCount: { default: 0, type: Number },\n textCount: { default: undefined, type: String },\n id: { default: \"\", type: String },\n loadingText: { default: undefined, type: String },\n errorText: { default: undefined, type: String },\n loading: { default: false, type: Boolean },\n isMobile: { default: false, type: Boolean },\n justSizeChosen: { default: false, type: Boolean },\n playerResponsive: { default: false, type: Boolean },\n forceUpdateParameters: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:first\", \"update:rowsPerPage\", \"update:isMobile\"]);\n\n \n//Composables\nconst { t } = useI18n();\nconst { isPhone, windowWidth } = useResizePhone();\nconst { updateRouteParam, updatePaginateSize } = useRouteUpdateParams();\nconst playerStore = usePlayerStore();\n\n\n//Computed\nconst buttonPlus = computed(() => state.generalParameters.buttonPlus);\nconst rangeSize = computed(() => {\n if (windowWidth.value > 1600) {\n return 3;\n }\n return windowWidth.value > 1530 ? 2 : 1;\n});\n\n\n//Watch\nwatch(isPhone, () => {emit(\"update:isMobile\", isPhone.value);}, {immediate: true});\nwatch(()=>props.first, () => {\n updateRouteParam({pr:(Math.floor(props.first / props.rowsPerPage) + 1).toString()}, props.forceUpdateParameters);\n});\n\n//Methods\nfunction fetchMore() {\n emit(\"update:first\", props.first + props.rowsPerPage);\n}\nfunction changeFirst(firstValue: number) {\n scrollToTop();\n emit(\"update:first\", firstValue);\n}\nfunction changeSize(sizeValue: number) {\n scrollToTop();\n emit(\"update:rowsPerPage\", sizeValue);\n updatePaginateSize(sizeValue, props.forceUpdateParameters);\n}\nfunction scrollToTop() {\n const element = document.getElementById(props.id);\n if (!element || element.getBoundingClientRect().top > 0) {\n return;\n }\n const y =\n element.getBoundingClientRect().top +\n window.scrollY -\n domHelper.convertRemToPixels(3.5);\n window.scrollTo({ top: y, behavior: \"smooth\" });\n}\n\n/** Style to apply to the paging section */\nfunction pagingStyle(): Record<string, string> {\n // Only change position if player is active and not at the top\n if (props.playerResponsive && state.player.topPlacement !== true) {\n return { 'bottom': playerStore.playerHeight };\n }\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveHorizontalList-CFs9mGYs.mjs","names":[],"sources":["../src/components/display/live/LiveHorizontalList.vue","../src/components/display/live/LiveHorizontalList.vue"],"sourcesContent":["<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n","<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,QAAQ;EAOd,MAAM,SAAS,IAAI,MAAM,KAAK;EAC9B,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,MAAM,aAAa,IAAI,CAAC;EACxB,MAAM,QAA6B,IAAI,CAAC,CAAC;EACzC,MAAM,WAAW,IAAI,KAAK;EAC1B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,WAAW,IAAI,KAAK;EAG1B,MAAM,EAAE,MAAM,QAAQ;EAGtB,MAAM,eAAe,eAAe;GAClC,IAAI,SAAS,OACX,OAAO,MAAM;GAEf,OAAO,MAAM,MAAM,MACjB,OAAO,OACP,KAAK,IAAI,OAAO,QAAQ,MAAM,OAAO,WAAW,KAAK,CACvD;EACF,CAAC;EAID,MAAM,aAAa,WAAW,CAAC;EAC/B,MAAM,cAAc;GAClB,IAAI,CAAC,MAAM,MAAM,OAAO,UAAU,MAAM,MAAM,MAAM,OAAO,OAAO,WAChE,aAAa,KAAK;EAEtB,CAAC;EAED,oBAAkB,aAAa,IAAI,CAAC;EAIpC,SAAS,aAAa;GACpB,OAAO,QAAQ;GACf,aAAa,IAAI;EACnB;EACA,eAAe,aAAa,OAA+B;GACzD,WAAW,QAAQ;GACnB,IAAI,OACF,SAAS,QAAQ;GAcnB,cAAc,OAAO,MAZF,mBAAW,UAAsC;IAClE,KAAK;IACL,MAAM;IACN,YAAY;KACV,OAAO,OAAO;KACd,MAAM,MAAM;KACZ,YAAY,MAAM;KAClB,MAAM;KACN,eAAe;IACjB;IACA,mBAAmB;GACrB,CAAC,CACwB;EAC3B;EACA,SAAS,cACP,OACA,MACM;GACN,IAAI,OACF,MAAM,MAAM,SAAS;GAEvB,IAAI,OAAO,QAAQ,MAAM,MAAM,QAC7B,KACE,IAAI,IAAI,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,QAAQ,MAAM,OAC3D,IAAI,KACJ,KAEA,MAAM,MAAM,KAAK,iBAAiB,CAAC;GAGvC,MAAM,gBAAgB,KAAK,OAAO,QAAQ,MAAsB;IAC9D,OAAO,SAAS;GAClB,CAAC;GACD,MAAM,QAAQ,MAAM,MACjB,MAAM,GAAG,OAAO,KAAK,EACrB,OAAO,aAAa,EACpB,OAAO,MAAM,MAAM,MAAM,OAAO,QAAQ,MAAM,OAAO,MAAM,MAAM,MAAM,CAAC;GAC3E,WAAW,QAAQ,KAAK;GACxB,IAAI,MAAM,MAAM,MAAM,QACpB,SAAS,QAAQ;GAEnB,WAAW,QAAQ;EACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBC/HQ,OAAM,YAAW;mBAaZ,OAAM,uBAAsB;;QAd5B,OAAA,YAAA,UAAA,GAAX,mBAqBM,OAAA,YAAA,CApBJ,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,0BAAA,CAAA,GAAA,CAAA,GAEN,YAgBe,OAAA,iBAAA;EAfb,IAAG;EACK,OAAO,OAAA;0DAAA,OAAA,SAAM;EACb,iBAAe,OAAA;gEAAA,OAAA,QAAK;EACpB,aAAW,OAAA;6DAAA,OAAA,WAAQ;EAC1B,eAAa,OAAA;EACb,SAAS;EACT,qBAAmB;;EAET,MAAI,cAKP,CAJN,mBAIM,OAJN,YAIM,EAAA,UAAA,IAAA,GAHJ,mBAEW,UAAA,MAAA,WAFW,OAAA,eAAL,MAAC;2DAAwB,EAAE,UAAA,GAAA,CAAA,MACjB,EAAE,aAAA,UAAA,GAA3B,YAAqD,OAAA,gBAAA;;IAAd,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveHorizontalList-CWBQkS78.mjs","names":[],"sources":["../src/components/display/live/LiveHorizontalList.vue","../src/components/display/live/LiveHorizontalList.vue"],"sourcesContent":["<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n","<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,QAAQ;EAOd,MAAM,SAAS,IAAI,MAAM,KAAK;EAC9B,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,MAAM,aAAa,IAAI,CAAC;EACxB,MAAM,QAA6B,IAAI,CAAC,CAAC;EACzC,MAAM,WAAW,IAAI,KAAK;EAC1B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,WAAW,IAAI,KAAK;EAG1B,MAAM,EAAE,MAAM,QAAQ;EAGtB,MAAM,eAAe,eAAe;GAClC,IAAI,SAAS,OACX,OAAO,MAAM;GAEf,OAAO,MAAM,MAAM,MACjB,OAAO,OACP,KAAK,IAAI,OAAO,QAAQ,MAAM,OAAO,WAAW,KAAK,CACvD;EACF,CAAC;EAID,MAAM,aAAa,WAAW,CAAC;EAC/B,MAAM,cAAc;GAClB,IAAI,CAAC,MAAM,MAAM,OAAO,UAAU,MAAM,MAAM,MAAM,OAAO,OAAO,WAChE,aAAa,KAAK;EAEtB,CAAC;EAED,oBAAkB,aAAa,IAAI,CAAC;EAIpC,SAAS,aAAa;GACpB,OAAO,QAAQ;GACf,aAAa,IAAI;EACnB;EACA,eAAe,aAAa,OAA+B;GACzD,WAAW,QAAQ;GACnB,IAAI,OACF,SAAS,QAAQ;GAcnB,cAAc,OAAO,MAZF,mBAAW,UAAsC;IAClE,KAAK;IACL,MAAM;IACN,YAAY;KACV,OAAO,OAAO;KACd,MAAM,MAAM;KACZ,YAAY,MAAM;KAClB,MAAM;KACN,eAAe;IACjB;IACA,mBAAmB;GACrB,CAAC,CACwB;EAC3B;EACA,SAAS,cACP,OACA,MACM;GACN,IAAI,OACF,MAAM,MAAM,SAAS;GAEvB,IAAI,OAAO,QAAQ,MAAM,MAAM,QAC7B,KACE,IAAI,IAAI,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,QAAQ,MAAM,OAC3D,IAAI,KACJ,KAEA,MAAM,MAAM,KAAK,iBAAiB,CAAC;GAGvC,MAAM,gBAAgB,KAAK,OAAO,QAAQ,MAAsB;IAC9D,OAAO,SAAS;GAClB,CAAC;GACD,MAAM,QAAQ,MAAM,MACjB,MAAM,GAAG,OAAO,KAAK,EACrB,OAAO,aAAa,EACpB,OAAO,MAAM,MAAM,MAAM,OAAO,QAAQ,MAAM,OAAO,MAAM,MAAM,MAAM,CAAC;GAC3E,WAAW,QAAQ,KAAK;GACxB,IAAI,MAAM,MAAM,MAAM,QACpB,SAAS,QAAQ;GAEnB,WAAW,QAAQ;EACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBC/HQ,OAAM,YAAW;mBAaZ,OAAM,uBAAsB;;QAd5B,OAAA,YAAA,UAAA,GAAX,mBAqBM,OAAA,YAAA,CApBJ,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,0BAAA,CAAA,GAAA,CAAA,GAEN,YAgBe,OAAA,iBAAA;EAfb,IAAG;EACK,OAAO,OAAA;0DAAA,OAAA,SAAM;EACb,iBAAe,OAAA;gEAAA,OAAA,QAAK;EACpB,aAAW,OAAA;6DAAA,OAAA,WAAQ;EAC1B,eAAa,OAAA;EACb,SAAS;EACT,qBAAmB;;EAET,MAAI,cAKP,CAJN,mBAIM,OAJN,YAIM,EAAA,UAAA,IAAA,GAHJ,mBAEW,UAAA,MAAA,WAFW,OAAA,eAAL,MAAC;2DAAwB,EAAE,UAAA,GAAA,CAAA,MACjB,EAAE,aAAA,UAAA,GAA3B,YAAqD,OAAA,gBAAA;;IAAd,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveHorizontalList-DwPVmnvH.mjs","names":[],"sources":["../src/components/display/live/LiveHorizontalList.vue","../src/components/display/live/LiveHorizontalList.vue"],"sourcesContent":["<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n","<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,QAAQ;EAOd,MAAM,SAAS,IAAI,MAAM,KAAK;EAC9B,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,MAAM,aAAa,IAAI,CAAC;EACxB,MAAM,QAA6B,IAAI,CAAC,CAAC;EACzC,MAAM,WAAW,IAAI,KAAK;EAC1B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,WAAW,IAAI,KAAK;EAG1B,MAAM,EAAE,MAAM,QAAQ;EAGtB,MAAM,eAAe,eAAe;GAClC,IAAI,SAAS,OACX,OAAO,MAAM;GAEf,OAAO,MAAM,MAAM,MACjB,OAAO,OACP,KAAK,IAAI,OAAO,QAAQ,MAAM,OAAO,WAAW,KAAK,CACvD;EACF,CAAC;EAID,MAAM,aAAa,WAAW,CAAC;EAC/B,MAAM,cAAc;GAClB,IAAI,CAAC,MAAM,MAAM,OAAO,UAAU,MAAM,MAAM,MAAM,OAAO,OAAO,WAChE,aAAa,KAAK;EAEtB,CAAC;EAED,oBAAkB,aAAa,IAAI,CAAC;EAIpC,SAAS,aAAa;GACpB,OAAO,QAAQ;GACf,aAAa,IAAI;EACnB;EACA,eAAe,aAAa,OAA+B;GACzD,WAAW,QAAQ;GACnB,IAAI,OACF,SAAS,QAAQ;GAcnB,cAAc,OAAO,MAZF,mBAAW,UAAsC;IAClE,KAAK;IACL,MAAM;IACN,YAAY;KACV,OAAO,OAAO;KACd,MAAM,MAAM;KACZ,YAAY,MAAM;KAClB,MAAM;KACN,eAAe;IACjB;IACA,mBAAmB;GACrB,CAAC,CACwB;EAC3B;EACA,SAAS,cACP,OACA,MACM;GACN,IAAI,OACF,MAAM,MAAM,SAAS;GAEvB,IAAI,OAAO,QAAQ,MAAM,MAAM,QAC7B,KACE,IAAI,IAAI,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,QAAQ,MAAM,OAC3D,IAAI,KACJ,KAEA,MAAM,MAAM,KAAK,iBAAiB,CAAC;GAGvC,MAAM,gBAAgB,KAAK,OAAO,QAAQ,MAAsB;IAC9D,OAAO,SAAS;GAClB,CAAC;GACD,MAAM,QAAQ,MAAM,MACjB,MAAM,GAAG,OAAO,KAAK,EACrB,OAAO,aAAa,EACpB,OAAO,MAAM,MAAM,MAAM,OAAO,QAAQ,MAAM,OAAO,MAAM,MAAM,MAAM,CAAC;GAC3E,WAAW,QAAQ,KAAK;GACxB,IAAI,MAAM,MAAM,MAAM,QACpB,SAAS,QAAQ;GAEnB,WAAW,QAAQ;EACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBC/HQ,OAAM,YAAW;mBAaZ,OAAM,uBAAsB;;QAd5B,OAAA,YAAA,UAAA,GAAX,mBAqBM,OAAA,YAAA,CApBJ,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,0BAAA,CAAA,GAAA,CAAA,GAEN,YAgBe,OAAA,iBAAA;EAfb,IAAG;EACK,OAAO,OAAA;0DAAA,OAAA,SAAM;EACb,iBAAe,OAAA;gEAAA,OAAA,QAAK;EACpB,aAAW,OAAA;6DAAA,OAAA,WAAQ;EAC1B,eAAa,OAAA;EACb,SAAS;EACT,qBAAmB;;EAET,MAAI,cAKP,CAJN,mBAIM,OAJN,YAIM,EAAA,UAAA,IAAA,GAHJ,mBAEW,UAAA,MAAA,WAFW,OAAA,eAAL,MAAC;2DAAwB,EAAE,UAAA,GAAA,CAAA,MACjB,EAAE,aAAA,UAAA,GAA3B,YAAqD,OAAA,gBAAA;;IAAd,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveHorizontalList-jducN58c.mjs","names":[],"sources":["../src/components/display/live/LiveHorizontalList.vue","../src/components/display/live/LiveHorizontalList.vue"],"sourcesContent":["<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n","<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,QAAQ;EAOd,MAAM,SAAS,IAAI,MAAM,KAAK;EAC9B,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,MAAM,aAAa,IAAI,CAAC;EACxB,MAAM,QAA6B,IAAI,CAAC,CAAC;EACzC,MAAM,WAAW,IAAI,KAAK;EAC1B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,WAAW,IAAI,KAAK;EAG1B,MAAM,EAAE,MAAM,QAAQ;EAGtB,MAAM,eAAe,eAAe;GAClC,IAAI,SAAS,OACX,OAAO,MAAM;GAEf,OAAO,MAAM,MAAM,MACjB,OAAO,OACP,KAAK,IAAI,OAAO,QAAQ,MAAM,OAAO,WAAW,KAAK,CACvD;EACF,CAAC;EAID,MAAM,aAAa,WAAW,CAAC;EAC/B,MAAM,cAAc;GAClB,IAAI,CAAC,MAAM,MAAM,OAAO,UAAU,MAAM,MAAM,MAAM,OAAO,OAAO,WAChE,aAAa,KAAK;EAEtB,CAAC;EAED,oBAAkB,aAAa,IAAI,CAAC;EAIpC,SAAS,aAAa;GACpB,OAAO,QAAQ;GACf,aAAa,IAAI;EACnB;EACA,eAAe,aAAa,OAA+B;GACzD,WAAW,QAAQ;GACnB,IAAI,OACF,SAAS,QAAQ;GAcnB,cAAc,OAAO,MAZF,mBAAW,UAAsC;IAClE,KAAK;IACL,MAAM;IACN,YAAY;KACV,OAAO,OAAO;KACd,MAAM,MAAM;KACZ,YAAY,MAAM;KAClB,MAAM;KACN,eAAe;IACjB;IACA,mBAAmB;GACrB,CAAC,CACwB;EAC3B;EACA,SAAS,cACP,OACA,MACM;GACN,IAAI,OACF,MAAM,MAAM,SAAS;GAEvB,IAAI,OAAO,QAAQ,MAAM,MAAM,QAC7B,KACE,IAAI,IAAI,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,QAAQ,MAAM,OAC3D,IAAI,KACJ,KAEA,MAAM,MAAM,KAAK,iBAAiB,CAAC;GAGvC,MAAM,gBAAgB,KAAK,OAAO,QAAQ,MAAsB;IAC9D,OAAO,SAAS;GAClB,CAAC;GACD,MAAM,QAAQ,MAAM,MACjB,MAAM,GAAG,OAAO,KAAK,EACrB,OAAO,aAAa,EACpB,OAAO,MAAM,MAAM,MAAM,OAAO,QAAQ,MAAM,OAAO,MAAM,MAAM,MAAM,CAAC;GAC3E,WAAW,QAAQ,KAAK;GACxB,IAAI,MAAM,MAAM,MAAM,QACpB,SAAS,QAAQ;GAEnB,WAAW,QAAQ;EACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBC/HQ,OAAM,YAAW;mBAaZ,OAAM,uBAAsB;;QAd5B,OAAA,YAAA,UAAA,GAAX,mBAqBM,OAAA,YAAA,CApBJ,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,0BAAA,CAAA,GAAA,CAAA,GAEN,YAgBe,OAAA,iBAAA;EAfb,IAAG;EACK,OAAO,OAAA;0DAAA,OAAA,SAAM;EACb,iBAAe,OAAA;gEAAA,OAAA,QAAK;EACpB,aAAW,OAAA;6DAAA,OAAA,WAAQ;EAC1B,eAAa,OAAA;EACb,SAAS;EACT,qBAAmB;;EAET,MAAI,cAKP,CAJN,mBAIM,OAJN,YAIM,EAAA,UAAA,IAAA,GAHJ,mBAEW,UAAA,MAAA,WAFW,OAAA,eAAL,MAAC;2DAAwB,EAAE,UAAA,GAAA,CAAA,MACjB,EAAE,aAAA,UAAA,GAA3B,YAAqD,OAAA,gBAAA;;IAAd,SAAS"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
2
|
-
import { t as classicApi_default } from "./classicApi-
|
|
3
|
-
import { t as ListPaginate_default } from "./ListPaginate-
|
|
2
|
+
import { t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
|
|
3
|
+
import { t as ListPaginate_default } from "./ListPaginate-BXNnw_I8.mjs";
|
|
4
4
|
import { r as emptyPodcastData } from "./podcast-Da9L7I5Q.mjs";
|
|
5
|
-
import { t as PodcastItem_default } from "./PodcastItem-
|
|
5
|
+
import { t as PodcastItem_default } from "./PodcastItem-_8ErwIDG.mjs";
|
|
6
6
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, onBeforeMount, openBlock, ref, renderList, toDisplayString, watch, withCtx } from "vue";
|
|
7
7
|
import { useI18n } from "vue-i18n";
|
|
8
8
|
//#region src/components/display/live/LiveHorizontalList.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -133,4 +133,4 @@ var LiveHorizontalList_default = /*#__PURE__*/ _plugin_vue_export_helper_default
|
|
|
133
133
|
//#endregion
|
|
134
134
|
export { LiveHorizontalList_default as default };
|
|
135
135
|
|
|
136
|
-
//# sourceMappingURL=LiveHorizontalList-
|
|
136
|
+
//# sourceMappingURL=LiveHorizontalList-wgXkgFLv.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveHorizontalList-wgXkgFLv.mjs","names":[],"sources":["../src/components/display/live/LiveHorizontalList.vue","../src/components/display/live/LiveHorizontalList.vue"],"sourcesContent":["<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n","<template>\n <div v-if=\"notEmpty\">\n <h3 class=\"mb-0 mt-3\">\n {{ t(\"All live emission button\") }}\n </h3>\n <ListPaginate\n id=\"liveListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :total-count=\"totalCount\"\n :loading=\"false\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <template v-for=\"p in displayArray\" :key=\"p.podcastId\">\n <PodcastItem v-if=\"0 !== p.podcastId\" :podcast=\"p\" />\n </template>\n </div>\n </template>\n </ListPaginate>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast, emptyPodcastData } from \"@/stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n emissionId: { default: undefined, type: Number },\n})\n\n//Data \nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst lives: Ref<Array<Podcast>> = ref([]);\nconst notEmpty = ref(false);\nconst inFetching = ref(false);\nconst isMobile = ref(false);\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return lives.value;\n }\n return lives.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\n\n\n//Watch\nwatch(dsize, () => reloadList());\nwatch(dfirst, () => {\n if (!lives.value[dfirst.value] || 0 === lives.value[dfirst.value].podcastId) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(true))\n\n\n//Methods\nfunction reloadList() {\n dfirst.value = 0;\n fetchContent(true);\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n inFetching.value = true;\n if (reset) {\n notEmpty.value = false;\n }\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n first: dfirst.value,\n size: dsize.value,\n emissionId: props.emissionId,\n sort: \"DATE\",\n includeStatus: \"READY_TO_RECORD\",\n },\n specialTreatement: true,\n });\n afterFetching(reset, data);\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n lives.value.length = 0;\n }\n if (dfirst.value > lives.value.length) {\n for (\n let i = lives.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n lives.value.push(emptyPodcastData());\n }\n }\n const responseLives = data.result.filter((l: Podcast | null) => {\n return null !== l;\n });\n lives.value = lives.value\n .slice(0, dfirst.value)\n .concat(responseLives)\n .concat(lives.value.slice(dfirst.value + dsize.value, lives.value.length));\n totalCount.value = data.count;\n if (0 !== lives.value.length) {\n notEmpty.value = true;\n }\n inFetching.value = false;\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,QAAQ;EAOd,MAAM,SAAS,IAAI,MAAM,KAAK;EAC9B,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,MAAM,aAAa,IAAI,CAAC;EACxB,MAAM,QAA6B,IAAI,CAAC,CAAC;EACzC,MAAM,WAAW,IAAI,KAAK;EAC1B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,WAAW,IAAI,KAAK;EAG1B,MAAM,EAAE,MAAM,QAAQ;EAGtB,MAAM,eAAe,eAAe;GAClC,IAAI,SAAS,OACX,OAAO,MAAM;GAEf,OAAO,MAAM,MAAM,MACjB,OAAO,OACP,KAAK,IAAI,OAAO,QAAQ,MAAM,OAAO,WAAW,KAAK,CACvD;EACF,CAAC;EAID,MAAM,aAAa,WAAW,CAAC;EAC/B,MAAM,cAAc;GAClB,IAAI,CAAC,MAAM,MAAM,OAAO,UAAU,MAAM,MAAM,MAAM,OAAO,OAAO,WAChE,aAAa,KAAK;EAEtB,CAAC;EAED,oBAAkB,aAAa,IAAI,CAAC;EAIpC,SAAS,aAAa;GACpB,OAAO,QAAQ;GACf,aAAa,IAAI;EACnB;EACA,eAAe,aAAa,OAA+B;GACzD,WAAW,QAAQ;GACnB,IAAI,OACF,SAAS,QAAQ;GAcnB,cAAc,OAAO,MAZF,mBAAW,UAAsC;IAClE,KAAK;IACL,MAAM;IACN,YAAY;KACV,OAAO,OAAO;KACd,MAAM,MAAM;KACZ,YAAY,MAAM;KAClB,MAAM;KACN,eAAe;IACjB;IACA,mBAAmB;GACrB,CAAC,CACwB;EAC3B;EACA,SAAS,cACP,OACA,MACM;GACN,IAAI,OACF,MAAM,MAAM,SAAS;GAEvB,IAAI,OAAO,QAAQ,MAAM,MAAM,QAC7B,KACE,IAAI,IAAI,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,QAAQ,MAAM,OAC3D,IAAI,KACJ,KAEA,MAAM,MAAM,KAAK,iBAAiB,CAAC;GAGvC,MAAM,gBAAgB,KAAK,OAAO,QAAQ,MAAsB;IAC9D,OAAO,SAAS;GAClB,CAAC;GACD,MAAM,QAAQ,MAAM,MACjB,MAAM,GAAG,OAAO,KAAK,EACrB,OAAO,aAAa,EACpB,OAAO,MAAM,MAAM,MAAM,OAAO,QAAQ,MAAM,OAAO,MAAM,MAAM,MAAM,CAAC;GAC3E,WAAW,QAAQ,KAAK;GACxB,IAAI,MAAM,MAAM,MAAM,QACpB,SAAS,QAAQ;GAEnB,WAAW,QAAQ;EACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBC/HQ,OAAM,YAAW;mBAaZ,OAAM,uBAAsB;;QAd5B,OAAA,YAAA,UAAA,GAAX,mBAqBM,OAAA,YAAA,CApBJ,mBAEK,MAFL,YAEK,gBADA,OAAA,EAAC,0BAAA,CAAA,GAAA,CAAA,GAEN,YAgBe,OAAA,iBAAA;EAfb,IAAG;EACK,OAAO,OAAA;0DAAA,OAAA,SAAM;EACb,iBAAe,OAAA;gEAAA,OAAA,QAAK;EACpB,aAAW,OAAA;6DAAA,OAAA,WAAQ;EAC1B,eAAa,OAAA;EACb,SAAS;EACT,qBAAmB;;EAET,MAAI,cAKP,CAJN,mBAIM,OAJN,YAIM,EAAA,UAAA,IAAA,GAHJ,mBAEW,UAAA,MAAA,WAFW,OAAA,eAAL,MAAC;2DAAwB,EAAE,UAAA,GAAA,CAAA,MACjB,EAAE,aAAA,UAAA,GAA3B,YAAqD,OAAA,gBAAA;;IAAd,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveList-Bp-feBp9.mjs","names":[],"sources":["../src/components/display/live/LiveItem.vue","../src/components/display/live/LiveItem.vue","../src/components/display/live/LiveList.vue","../src/components/display/live/LiveList.vue"],"sourcesContent":["<template>\n <PodcastItem\n v-if=\"live && 0 !== live.podcastId\"\n :podcast=\"live\"\n :fetch-conference=\"fetchConference\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {onBeforeMount, onUnmounted, ref, Ref } from \"vue\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\n\n//Props \nconst props = defineProps({\n fetchConference: { default: undefined, type: Object as () => Conference },\n})\n \n//Emits\nconst emit = defineEmits([\"deleteItem\", \"updateItem\"]);\n\n//Data \nconst live: Ref<Podcast | undefined> = ref(undefined);\nconst watchInterval: Ref<ReturnType<typeof setInterval> | undefined> = ref(undefined);\n\n\nonBeforeMount(()=>initLiveItem());\nonUnmounted(()=>clearWatchStatus())\n\n\n//Methods\nfunction clearWatchStatus() {\n clearInterval(watchInterval.value as unknown as number);\n watchInterval.value = undefined;\n}\nasync function initLiveItem(){\n await fetchPodcastData();\n watchInterval.value = setInterval(() => {\n fetchStatus();\n }, 5000);\n}\nasync function fetchPodcastData(): Promise<void> {\n if (!props.fetchConference?.podcastId) return;\n try {\n live.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.fetchConference.podcastId,\n });\n } catch {\n emit(\"deleteItem\");\n if (props.fetchConference.conferenceId) {\n await classicApi.deleteData({\n api: 9,\n path: \"conference/\" + props.fetchConference.conferenceId,\n });\n }\n }\n}\nasync function fetchStatus(): Promise<void> {\n if (\n !props.fetchConference ||\n (\"PLANNED\" !== props.fetchConference.status &&\n \"PENDING\" !== props.fetchConference.status &&\n \"RECORDING\" !== props.fetchConference.status)\n ) {\n clearWatchStatus();\n return;\n }\n const confInfo = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + props.fetchConference.conferenceId,\n });\n if (confInfo.status !== props.fetchConference.status) {\n emit(\"updateItem\", {\n ...props.fetchConference,\n ...confInfo,\n });\n }\n}\n</script>\n","<template>\n <PodcastItem\n v-if=\"live && 0 !== live.podcastId\"\n :podcast=\"live\"\n :fetch-conference=\"fetchConference\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {onBeforeMount, onUnmounted, ref, Ref } from \"vue\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\n\n//Props \nconst props = defineProps({\n fetchConference: { default: undefined, type: Object as () => Conference },\n})\n \n//Emits\nconst emit = defineEmits([\"deleteItem\", \"updateItem\"]);\n\n//Data \nconst live: Ref<Podcast | undefined> = ref(undefined);\nconst watchInterval: Ref<ReturnType<typeof setInterval> | undefined> = ref(undefined);\n\n\nonBeforeMount(()=>initLiveItem());\nonUnmounted(()=>clearWatchStatus())\n\n\n//Methods\nfunction clearWatchStatus() {\n clearInterval(watchInterval.value as unknown as number);\n watchInterval.value = undefined;\n}\nasync function initLiveItem(){\n await fetchPodcastData();\n watchInterval.value = setInterval(() => {\n fetchStatus();\n }, 5000);\n}\nasync function fetchPodcastData(): Promise<void> {\n if (!props.fetchConference?.podcastId) return;\n try {\n live.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.fetchConference.podcastId,\n });\n } catch {\n emit(\"deleteItem\");\n if (props.fetchConference.conferenceId) {\n await classicApi.deleteData({\n api: 9,\n path: \"conference/\" + props.fetchConference.conferenceId,\n });\n }\n }\n}\nasync function fetchStatus(): Promise<void> {\n if (\n !props.fetchConference ||\n (\"PLANNED\" !== props.fetchConference.status &&\n \"PENDING\" !== props.fetchConference.status &&\n \"RECORDING\" !== props.fetchConference.status)\n ) {\n clearWatchStatus();\n return;\n }\n const confInfo = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + props.fetchConference.conferenceId,\n });\n if (confInfo.status !== props.fetchConference.status) {\n emit(\"updateItem\", {\n ...props.fetchConference,\n ...confInfo,\n });\n }\n}\n</script>\n","<template>\n <section v-if=\"displayLiveList\" class=\"d-flex flex-column align-items-start mt-3\">\n <div\n class=\"d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center\"\n >\n <h2 class=\"mb-0\">\n {{ t(\"Live\") }}\n </h2>\n <router-link\n v-if=\"liveRight && !isPodcastmaker\"\n to=\"/main/priv/edit/live\"\n >\n <button class=\"btn btn-primary\">\n {{ t(\"Launch a new live\") }}\n </button>\n </router-link>\n </div>\n <ClassicSelect\n v-if=\"lives.length || 'ALL' !== selectedStatus\"\n v-model:text-init=\"selectedStatus\"\n id-select=\"status-live-chooser-select\"\n :label=\"t('Selection by status')\"\n :display-label=\"false\"\n :options=\"statusArraySelect\"\n class=\"mb-3\"\n />\n <ClassicLoading\n :loading-text=\"loading ? t('Loading lives...') : undefined\"\n :error-text=\"0 === lives.length ? t('No live currently') : undefined\"\n />\n <template v-if=\"lives.length\">\n <SwiperList v-if=\"!loading\" :list-object=\"lives\">\n <template #octopusSlide=\"{ option, index }\">\n <LiveItem\n :fetch-conference=\"option\"\n @delete-item=\"deleteLive(index)\"\n @update-item=\"updateLive($event, index)\"\n />\n </template>\n </SwiperList>\n </template>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport LiveItem from \"./LiveItem.vue\";\nimport ClassicSelect from \"../../form/ClassicSelect.vue\";\nimport SwiperList from \"../list/SwiperList.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n hideIfEmpty: { default: false, type: Boolean },\n})\n\n//Data \nconst loading = ref(true);\nconst loaded = ref(true);\nconst lives: Ref<Array<Conference>> = ref([]);\nconst isLiveAuthorized = ref(false);\nconst statusClassic= ref([\"RECORDING\", \"PENDING\", \"PLANNED\"]);\nconst statusAdmin = ref([\"DEBRIEFING\", \"ERROR\", \"PUBLISHING\"]);\nconst selectedStatus = ref(\"ALL\");\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst filterStore = useFilterStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayLiveList = computed(() => {\n return (\n (undefined !== filterStore.filterOrgaId ||\n undefined !== props.organisationId) &&\n (!props.hideIfEmpty || (props.hideIfEmpty && 0 !== lives.value.length))\n );\n});\nconst filterOrgaUsed = computed(() => {\n return filterStore.filterOrgaId ? filterStore.filterOrgaId : props.organisationId;\n});\nconst editRight = computed(() => {\n return isEditRights(filterOrgaUsed.value);\n});\nconst liveRight = computed(() => {\n return (\n authStore.isRoleLive &&\n \"true\" === authStore.authOrganisation.attributes?.[\"live.active\"]\n );\n});\nconst statusArraySelect = computed(() => {\n const statusArray = [{ title: t(\"All lives\"), value: \"ALL\" }];\n for (const status of statusFetched.value) {\n let title = \"\";\n switch (status) {\n case \"RECORDING\":\n title = t(\"In live\");\n break;\n case \"PENDING\":\n title = t(\"live upcoming\");\n break;\n case \"PLANNED\":\n title = t(\"live in few time\");\n break;\n case \"DEBRIEFING\":\n title = t(\"In debriefing\");\n break;\n case \"PUBLISHING\":\n title = t(\"In the process of being published\");\n break;\n case \"ERROR\":\n title = t(\"In error\");\n break;\n default:\n break;\n }\n statusArray.push({ title: title, value: status });\n }\n return statusArray;\n});\nconst statusFetched = computed(() => {\n if (editRight.value) {\n return statusClassic.value.concat(statusAdmin.value);\n }\n return statusClassic.value;\n});\n\n\n//Watch\nwatch(filterOrgaUsed, async () => {\n await checkIfLiveAuthorized();\n fetchContent();\n}, {immediate: true});\nwatch(selectedStatus, () => fetchContent());\n\n\n//Methods\nasync function checkIfLiveAuthorized(): Promise<void> {\n if (!filterOrgaUsed.value) {\n return;\n }\n isLiveAuthorized.value = await saveFetchStore.getOrgaLiveEnabled(\n filterOrgaUsed.value,\n );\n}\nfunction endLoading(): void {\n loading.value = false;\n loaded.value = true;\n}\nfunction updateLive(live: Conference, index: number): void {\n lives.value.splice(index, 1, live);\n}\nasync function fetchContent(): Promise<void> {\n lives.value.length = 0;\n if (!filterOrgaUsed.value || !isLiveAuthorized.value) {\n endLoading();\n return;\n }\n loading.value = true;\n loaded.value = false;\n try {\n const dataLives = await classicApi.fetchData<Array<Conference>>({\n api: 9,\n path: \"conference/list\",\n parameters: {\n organisationId: filterOrgaUsed.value,\n withPodcastId: true,\n status:\n \"ALL\" === selectedStatus.value\n ? statusFetched.value\n : selectedStatus.value,\n },\n });\n lives.value = dataLives.filter((p: Conference | null) => {\n return null !== p;\n });\n } catch (error) {\n handle403(error as AxiosError);\n }\n endLoading();\n}\nfunction deleteLive(index: number): void {\n lives.value.splice(index, 1);\n}\n</script>\n","<template>\n <section v-if=\"displayLiveList\" class=\"d-flex flex-column align-items-start mt-3\">\n <div\n class=\"d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center\"\n >\n <h2 class=\"mb-0\">\n {{ t(\"Live\") }}\n </h2>\n <router-link\n v-if=\"liveRight && !isPodcastmaker\"\n to=\"/main/priv/edit/live\"\n >\n <button class=\"btn btn-primary\">\n {{ t(\"Launch a new live\") }}\n </button>\n </router-link>\n </div>\n <ClassicSelect\n v-if=\"lives.length || 'ALL' !== selectedStatus\"\n v-model:text-init=\"selectedStatus\"\n id-select=\"status-live-chooser-select\"\n :label=\"t('Selection by status')\"\n :display-label=\"false\"\n :options=\"statusArraySelect\"\n class=\"mb-3\"\n />\n <ClassicLoading\n :loading-text=\"loading ? t('Loading lives...') : undefined\"\n :error-text=\"0 === lives.length ? t('No live currently') : undefined\"\n />\n <template v-if=\"lives.length\">\n <SwiperList v-if=\"!loading\" :list-object=\"lives\">\n <template #octopusSlide=\"{ option, index }\">\n <LiveItem\n :fetch-conference=\"option\"\n @delete-item=\"deleteLive(index)\"\n @update-item=\"updateLive($event, index)\"\n />\n </template>\n </SwiperList>\n </template>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport LiveItem from \"./LiveItem.vue\";\nimport ClassicSelect from \"../../form/ClassicSelect.vue\";\nimport SwiperList from \"../list/SwiperList.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n hideIfEmpty: { default: false, type: Boolean },\n})\n\n//Data \nconst loading = ref(true);\nconst loaded = ref(true);\nconst lives: Ref<Array<Conference>> = ref([]);\nconst isLiveAuthorized = ref(false);\nconst statusClassic= ref([\"RECORDING\", \"PENDING\", \"PLANNED\"]);\nconst statusAdmin = ref([\"DEBRIEFING\", \"ERROR\", \"PUBLISHING\"]);\nconst selectedStatus = ref(\"ALL\");\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst filterStore = useFilterStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayLiveList = computed(() => {\n return (\n (undefined !== filterStore.filterOrgaId ||\n undefined !== props.organisationId) &&\n (!props.hideIfEmpty || (props.hideIfEmpty && 0 !== lives.value.length))\n );\n});\nconst filterOrgaUsed = computed(() => {\n return filterStore.filterOrgaId ? filterStore.filterOrgaId : props.organisationId;\n});\nconst editRight = computed(() => {\n return isEditRights(filterOrgaUsed.value);\n});\nconst liveRight = computed(() => {\n return (\n authStore.isRoleLive &&\n \"true\" === authStore.authOrganisation.attributes?.[\"live.active\"]\n );\n});\nconst statusArraySelect = computed(() => {\n const statusArray = [{ title: t(\"All lives\"), value: \"ALL\" }];\n for (const status of statusFetched.value) {\n let title = \"\";\n switch (status) {\n case \"RECORDING\":\n title = t(\"In live\");\n break;\n case \"PENDING\":\n title = t(\"live upcoming\");\n break;\n case \"PLANNED\":\n title = t(\"live in few time\");\n break;\n case \"DEBRIEFING\":\n title = t(\"In debriefing\");\n break;\n case \"PUBLISHING\":\n title = t(\"In the process of being published\");\n break;\n case \"ERROR\":\n title = t(\"In error\");\n break;\n default:\n break;\n }\n statusArray.push({ title: title, value: status });\n }\n return statusArray;\n});\nconst statusFetched = computed(() => {\n if (editRight.value) {\n return statusClassic.value.concat(statusAdmin.value);\n }\n return statusClassic.value;\n});\n\n\n//Watch\nwatch(filterOrgaUsed, async () => {\n await checkIfLiveAuthorized();\n fetchContent();\n}, {immediate: true});\nwatch(selectedStatus, () => fetchContent());\n\n\n//Methods\nasync function checkIfLiveAuthorized(): Promise<void> {\n if (!filterOrgaUsed.value) {\n return;\n }\n isLiveAuthorized.value = await saveFetchStore.getOrgaLiveEnabled(\n filterOrgaUsed.value,\n );\n}\nfunction endLoading(): void {\n loading.value = false;\n loaded.value = true;\n}\nfunction updateLive(live: Conference, index: number): void {\n lives.value.splice(index, 1, live);\n}\nasync function fetchContent(): Promise<void> {\n lives.value.length = 0;\n if (!filterOrgaUsed.value || !isLiveAuthorized.value) {\n endLoading();\n return;\n }\n loading.value = true;\n loaded.value = false;\n try {\n const dataLives = await classicApi.fetchData<Array<Conference>>({\n api: 9,\n path: \"conference/list\",\n parameters: {\n organisationId: filterOrgaUsed.value,\n withPodcastId: true,\n status:\n \"ALL\" === selectedStatus.value\n ? statusFetched.value\n : selectedStatus.value,\n },\n });\n lives.value = dataLives.filter((p: Conference | null) => {\n return null !== p;\n });\n } catch (error) {\n handle403(error as AxiosError);\n }\n endLoading();\n}\nfunction deleteLive(index: number): void {\n lives.value.splice(index, 1);\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveList-ByyCyWUl.mjs","names":[],"sources":["../src/components/display/live/LiveItem.vue","../src/components/display/live/LiveItem.vue","../src/components/display/live/LiveList.vue","../src/components/display/live/LiveList.vue"],"sourcesContent":["<template>\n <PodcastItem\n v-if=\"live && 0 !== live.podcastId\"\n :podcast=\"live\"\n :fetch-conference=\"fetchConference\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {onBeforeMount, onUnmounted, ref, Ref } from \"vue\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\n\n//Props \nconst props = defineProps({\n fetchConference: { default: undefined, type: Object as () => Conference },\n})\n \n//Emits\nconst emit = defineEmits([\"deleteItem\", \"updateItem\"]);\n\n//Data \nconst live: Ref<Podcast | undefined> = ref(undefined);\nconst watchInterval: Ref<ReturnType<typeof setInterval> | undefined> = ref(undefined);\n\n\nonBeforeMount(()=>initLiveItem());\nonUnmounted(()=>clearWatchStatus())\n\n\n//Methods\nfunction clearWatchStatus() {\n clearInterval(watchInterval.value as unknown as number);\n watchInterval.value = undefined;\n}\nasync function initLiveItem(){\n await fetchPodcastData();\n watchInterval.value = setInterval(() => {\n fetchStatus();\n }, 5000);\n}\nasync function fetchPodcastData(): Promise<void> {\n if (!props.fetchConference?.podcastId) return;\n try {\n live.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.fetchConference.podcastId,\n });\n } catch {\n emit(\"deleteItem\");\n if (props.fetchConference.conferenceId) {\n await classicApi.deleteData({\n api: 9,\n path: \"conference/\" + props.fetchConference.conferenceId,\n });\n }\n }\n}\nasync function fetchStatus(): Promise<void> {\n if (\n !props.fetchConference ||\n (\"PLANNED\" !== props.fetchConference.status &&\n \"PENDING\" !== props.fetchConference.status &&\n \"RECORDING\" !== props.fetchConference.status)\n ) {\n clearWatchStatus();\n return;\n }\n const confInfo = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + props.fetchConference.conferenceId,\n });\n if (confInfo.status !== props.fetchConference.status) {\n emit(\"updateItem\", {\n ...props.fetchConference,\n ...confInfo,\n });\n }\n}\n</script>\n","<template>\n <PodcastItem\n v-if=\"live && 0 !== live.podcastId\"\n :podcast=\"live\"\n :fetch-conference=\"fetchConference\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {onBeforeMount, onUnmounted, ref, Ref } from \"vue\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\n\n//Props \nconst props = defineProps({\n fetchConference: { default: undefined, type: Object as () => Conference },\n})\n \n//Emits\nconst emit = defineEmits([\"deleteItem\", \"updateItem\"]);\n\n//Data \nconst live: Ref<Podcast | undefined> = ref(undefined);\nconst watchInterval: Ref<ReturnType<typeof setInterval> | undefined> = ref(undefined);\n\n\nonBeforeMount(()=>initLiveItem());\nonUnmounted(()=>clearWatchStatus())\n\n\n//Methods\nfunction clearWatchStatus() {\n clearInterval(watchInterval.value as unknown as number);\n watchInterval.value = undefined;\n}\nasync function initLiveItem(){\n await fetchPodcastData();\n watchInterval.value = setInterval(() => {\n fetchStatus();\n }, 5000);\n}\nasync function fetchPodcastData(): Promise<void> {\n if (!props.fetchConference?.podcastId) return;\n try {\n live.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.fetchConference.podcastId,\n });\n } catch {\n emit(\"deleteItem\");\n if (props.fetchConference.conferenceId) {\n await classicApi.deleteData({\n api: 9,\n path: \"conference/\" + props.fetchConference.conferenceId,\n });\n }\n }\n}\nasync function fetchStatus(): Promise<void> {\n if (\n !props.fetchConference ||\n (\"PLANNED\" !== props.fetchConference.status &&\n \"PENDING\" !== props.fetchConference.status &&\n \"RECORDING\" !== props.fetchConference.status)\n ) {\n clearWatchStatus();\n return;\n }\n const confInfo = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + props.fetchConference.conferenceId,\n });\n if (confInfo.status !== props.fetchConference.status) {\n emit(\"updateItem\", {\n ...props.fetchConference,\n ...confInfo,\n });\n }\n}\n</script>\n","<template>\n <section v-if=\"displayLiveList\" class=\"d-flex flex-column align-items-start mt-3\">\n <div\n class=\"d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center\"\n >\n <h2 class=\"mb-0\">\n {{ t(\"Live\") }}\n </h2>\n <router-link\n v-if=\"liveRight && !isPodcastmaker\"\n to=\"/main/priv/edit/live\"\n >\n <button class=\"btn btn-primary\">\n {{ t(\"Launch a new live\") }}\n </button>\n </router-link>\n </div>\n <ClassicSelect\n v-if=\"lives.length || 'ALL' !== selectedStatus\"\n v-model:text-init=\"selectedStatus\"\n id-select=\"status-live-chooser-select\"\n :label=\"t('Selection by status')\"\n :display-label=\"false\"\n :options=\"statusArraySelect\"\n class=\"mb-3\"\n />\n <ClassicLoading\n :loading-text=\"loading ? t('Loading lives...') : undefined\"\n :error-text=\"0 === lives.length ? t('No live currently') : undefined\"\n />\n <template v-if=\"lives.length\">\n <SwiperList v-if=\"!loading\" :list-object=\"lives\">\n <template #octopusSlide=\"{ option, index }\">\n <LiveItem\n :fetch-conference=\"option\"\n @delete-item=\"deleteLive(index)\"\n @update-item=\"updateLive($event, index)\"\n />\n </template>\n </SwiperList>\n </template>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport LiveItem from \"./LiveItem.vue\";\nimport ClassicSelect from \"../../form/ClassicSelect.vue\";\nimport SwiperList from \"../list/SwiperList.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n hideIfEmpty: { default: false, type: Boolean },\n})\n\n//Data \nconst loading = ref(true);\nconst loaded = ref(true);\nconst lives: Ref<Array<Conference>> = ref([]);\nconst isLiveAuthorized = ref(false);\nconst statusClassic= ref([\"RECORDING\", \"PENDING\", \"PLANNED\"]);\nconst statusAdmin = ref([\"DEBRIEFING\", \"ERROR\", \"PUBLISHING\"]);\nconst selectedStatus = ref(\"ALL\");\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst filterStore = useFilterStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayLiveList = computed(() => {\n return (\n (undefined !== filterStore.filterOrgaId ||\n undefined !== props.organisationId) &&\n (!props.hideIfEmpty || (props.hideIfEmpty && 0 !== lives.value.length))\n );\n});\nconst filterOrgaUsed = computed(() => {\n return filterStore.filterOrgaId ? filterStore.filterOrgaId : props.organisationId;\n});\nconst editRight = computed(() => {\n return isEditRights(filterOrgaUsed.value);\n});\nconst liveRight = computed(() => {\n return (\n authStore.isRoleLive &&\n \"true\" === authStore.authOrganisation.attributes?.[\"live.active\"]\n );\n});\nconst statusArraySelect = computed(() => {\n const statusArray = [{ title: t(\"All lives\"), value: \"ALL\" }];\n for (const status of statusFetched.value) {\n let title = \"\";\n switch (status) {\n case \"RECORDING\":\n title = t(\"In live\");\n break;\n case \"PENDING\":\n title = t(\"live upcoming\");\n break;\n case \"PLANNED\":\n title = t(\"live in few time\");\n break;\n case \"DEBRIEFING\":\n title = t(\"In debriefing\");\n break;\n case \"PUBLISHING\":\n title = t(\"In the process of being published\");\n break;\n case \"ERROR\":\n title = t(\"In error\");\n break;\n default:\n break;\n }\n statusArray.push({ title: title, value: status });\n }\n return statusArray;\n});\nconst statusFetched = computed(() => {\n if (editRight.value) {\n return statusClassic.value.concat(statusAdmin.value);\n }\n return statusClassic.value;\n});\n\n\n//Watch\nwatch(filterOrgaUsed, async () => {\n await checkIfLiveAuthorized();\n fetchContent();\n}, {immediate: true});\nwatch(selectedStatus, () => fetchContent());\n\n\n//Methods\nasync function checkIfLiveAuthorized(): Promise<void> {\n if (!filterOrgaUsed.value) {\n return;\n }\n isLiveAuthorized.value = await saveFetchStore.getOrgaLiveEnabled(\n filterOrgaUsed.value,\n );\n}\nfunction endLoading(): void {\n loading.value = false;\n loaded.value = true;\n}\nfunction updateLive(live: Conference, index: number): void {\n lives.value.splice(index, 1, live);\n}\nasync function fetchContent(): Promise<void> {\n lives.value.length = 0;\n if (!filterOrgaUsed.value || !isLiveAuthorized.value) {\n endLoading();\n return;\n }\n loading.value = true;\n loaded.value = false;\n try {\n const dataLives = await classicApi.fetchData<Array<Conference>>({\n api: 9,\n path: \"conference/list\",\n parameters: {\n organisationId: filterOrgaUsed.value,\n withPodcastId: true,\n status:\n \"ALL\" === selectedStatus.value\n ? statusFetched.value\n : selectedStatus.value,\n },\n });\n lives.value = dataLives.filter((p: Conference | null) => {\n return null !== p;\n });\n } catch (error) {\n handle403(error as AxiosError);\n }\n endLoading();\n}\nfunction deleteLive(index: number): void {\n lives.value.splice(index, 1);\n}\n</script>\n","<template>\n <section v-if=\"displayLiveList\" class=\"d-flex flex-column align-items-start mt-3\">\n <div\n class=\"d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center\"\n >\n <h2 class=\"mb-0\">\n {{ t(\"Live\") }}\n </h2>\n <router-link\n v-if=\"liveRight && !isPodcastmaker\"\n to=\"/main/priv/edit/live\"\n >\n <button class=\"btn btn-primary\">\n {{ t(\"Launch a new live\") }}\n </button>\n </router-link>\n </div>\n <ClassicSelect\n v-if=\"lives.length || 'ALL' !== selectedStatus\"\n v-model:text-init=\"selectedStatus\"\n id-select=\"status-live-chooser-select\"\n :label=\"t('Selection by status')\"\n :display-label=\"false\"\n :options=\"statusArraySelect\"\n class=\"mb-3\"\n />\n <ClassicLoading\n :loading-text=\"loading ? t('Loading lives...') : undefined\"\n :error-text=\"0 === lives.length ? t('No live currently') : undefined\"\n />\n <template v-if=\"lives.length\">\n <SwiperList v-if=\"!loading\" :list-object=\"lives\">\n <template #octopusSlide=\"{ option, index }\">\n <LiveItem\n :fetch-conference=\"option\"\n @delete-item=\"deleteLive(index)\"\n @update-item=\"updateLive($event, index)\"\n />\n </template>\n </SwiperList>\n </template>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport LiveItem from \"./LiveItem.vue\";\nimport ClassicSelect from \"../../form/ClassicSelect.vue\";\nimport SwiperList from \"../list/SwiperList.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n hideIfEmpty: { default: false, type: Boolean },\n})\n\n//Data \nconst loading = ref(true);\nconst loaded = ref(true);\nconst lives: Ref<Array<Conference>> = ref([]);\nconst isLiveAuthorized = ref(false);\nconst statusClassic= ref([\"RECORDING\", \"PENDING\", \"PLANNED\"]);\nconst statusAdmin = ref([\"DEBRIEFING\", \"ERROR\", \"PUBLISHING\"]);\nconst selectedStatus = ref(\"ALL\");\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst filterStore = useFilterStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayLiveList = computed(() => {\n return (\n (undefined !== filterStore.filterOrgaId ||\n undefined !== props.organisationId) &&\n (!props.hideIfEmpty || (props.hideIfEmpty && 0 !== lives.value.length))\n );\n});\nconst filterOrgaUsed = computed(() => {\n return filterStore.filterOrgaId ? filterStore.filterOrgaId : props.organisationId;\n});\nconst editRight = computed(() => {\n return isEditRights(filterOrgaUsed.value);\n});\nconst liveRight = computed(() => {\n return (\n authStore.isRoleLive &&\n \"true\" === authStore.authOrganisation.attributes?.[\"live.active\"]\n );\n});\nconst statusArraySelect = computed(() => {\n const statusArray = [{ title: t(\"All lives\"), value: \"ALL\" }];\n for (const status of statusFetched.value) {\n let title = \"\";\n switch (status) {\n case \"RECORDING\":\n title = t(\"In live\");\n break;\n case \"PENDING\":\n title = t(\"live upcoming\");\n break;\n case \"PLANNED\":\n title = t(\"live in few time\");\n break;\n case \"DEBRIEFING\":\n title = t(\"In debriefing\");\n break;\n case \"PUBLISHING\":\n title = t(\"In the process of being published\");\n break;\n case \"ERROR\":\n title = t(\"In error\");\n break;\n default:\n break;\n }\n statusArray.push({ title: title, value: status });\n }\n return statusArray;\n});\nconst statusFetched = computed(() => {\n if (editRight.value) {\n return statusClassic.value.concat(statusAdmin.value);\n }\n return statusClassic.value;\n});\n\n\n//Watch\nwatch(filterOrgaUsed, async () => {\n await checkIfLiveAuthorized();\n fetchContent();\n}, {immediate: true});\nwatch(selectedStatus, () => fetchContent());\n\n\n//Methods\nasync function checkIfLiveAuthorized(): Promise<void> {\n if (!filterOrgaUsed.value) {\n return;\n }\n isLiveAuthorized.value = await saveFetchStore.getOrgaLiveEnabled(\n filterOrgaUsed.value,\n );\n}\nfunction endLoading(): void {\n loading.value = false;\n loaded.value = true;\n}\nfunction updateLive(live: Conference, index: number): void {\n lives.value.splice(index, 1, live);\n}\nasync function fetchContent(): Promise<void> {\n lives.value.length = 0;\n if (!filterOrgaUsed.value || !isLiveAuthorized.value) {\n endLoading();\n return;\n }\n loading.value = true;\n loaded.value = false;\n try {\n const dataLives = await classicApi.fetchData<Array<Conference>>({\n api: 9,\n path: \"conference/list\",\n parameters: {\n organisationId: filterOrgaUsed.value,\n withPodcastId: true,\n status:\n \"ALL\" === selectedStatus.value\n ? statusFetched.value\n : selectedStatus.value,\n },\n });\n lives.value = dataLives.filter((p: Conference | null) => {\n return null !== p;\n });\n } catch (error) {\n handle403(error as AxiosError);\n }\n endLoading();\n}\nfunction deleteLive(index: number): void {\n lives.value.splice(index, 1);\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
2
2
|
import { t as ClassicLoading_default } from "./ClassicLoading-Crlw7cAx.mjs";
|
|
3
|
-
import { T as useSaveFetchStore, i as useAuthStore, r as useFilterStore, t as classicApi_default } from "./classicApi-
|
|
3
|
+
import { T as useSaveFetchStore, i as useAuthStore, r as useFilterStore, t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
|
|
4
4
|
import { t as ClassicSelect_default } from "./ClassicSelect-BaY2yvwP.mjs";
|
|
5
|
-
import { t as useErrorHandler } from "./useErrorHandler-
|
|
6
|
-
import { t as useOrgaComputed } from "./useOrgaComputed-
|
|
7
|
-
import { t as SwiperList_default } from "./SwiperList-
|
|
8
|
-
import { t as PodcastItem_default } from "./PodcastItem-
|
|
5
|
+
import { t as useErrorHandler } from "./useErrorHandler-D3XVxUh6.mjs";
|
|
6
|
+
import { t as useOrgaComputed } from "./useOrgaComputed-B2Bq0VBT.mjs";
|
|
7
|
+
import { t as SwiperList_default } from "./SwiperList-C51H-enh.mjs";
|
|
8
|
+
import { t as PodcastItem_default } from "./PodcastItem-_8ErwIDG.mjs";
|
|
9
9
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, onBeforeMount, onUnmounted, openBlock, ref, resolveComponent, toDisplayString, watch, withCtx } from "vue";
|
|
10
10
|
import { useI18n } from "vue-i18n";
|
|
11
11
|
//#region src/components/display/live/LiveItem.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -321,4 +321,4 @@ var LiveList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(LiveList_
|
|
|
321
321
|
//#endregion
|
|
322
322
|
export { LiveList_default as default };
|
|
323
323
|
|
|
324
|
-
//# sourceMappingURL=LiveList-
|
|
324
|
+
//# sourceMappingURL=LiveList-CA5n6VeN.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveList-CA5n6VeN.mjs","names":[],"sources":["../src/components/display/live/LiveItem.vue","../src/components/display/live/LiveItem.vue","../src/components/display/live/LiveList.vue","../src/components/display/live/LiveList.vue"],"sourcesContent":["<template>\n <PodcastItem\n v-if=\"live && 0 !== live.podcastId\"\n :podcast=\"live\"\n :fetch-conference=\"fetchConference\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {onBeforeMount, onUnmounted, ref, Ref } from \"vue\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\n\n//Props \nconst props = defineProps({\n fetchConference: { default: undefined, type: Object as () => Conference },\n})\n \n//Emits\nconst emit = defineEmits([\"deleteItem\", \"updateItem\"]);\n\n//Data \nconst live: Ref<Podcast | undefined> = ref(undefined);\nconst watchInterval: Ref<ReturnType<typeof setInterval> | undefined> = ref(undefined);\n\n\nonBeforeMount(()=>initLiveItem());\nonUnmounted(()=>clearWatchStatus())\n\n\n//Methods\nfunction clearWatchStatus() {\n clearInterval(watchInterval.value as unknown as number);\n watchInterval.value = undefined;\n}\nasync function initLiveItem(){\n await fetchPodcastData();\n watchInterval.value = setInterval(() => {\n fetchStatus();\n }, 5000);\n}\nasync function fetchPodcastData(): Promise<void> {\n if (!props.fetchConference?.podcastId) return;\n try {\n live.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.fetchConference.podcastId,\n });\n } catch {\n emit(\"deleteItem\");\n if (props.fetchConference.conferenceId) {\n await classicApi.deleteData({\n api: 9,\n path: \"conference/\" + props.fetchConference.conferenceId,\n });\n }\n }\n}\nasync function fetchStatus(): Promise<void> {\n if (\n !props.fetchConference ||\n (\"PLANNED\" !== props.fetchConference.status &&\n \"PENDING\" !== props.fetchConference.status &&\n \"RECORDING\" !== props.fetchConference.status)\n ) {\n clearWatchStatus();\n return;\n }\n const confInfo = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + props.fetchConference.conferenceId,\n });\n if (confInfo.status !== props.fetchConference.status) {\n emit(\"updateItem\", {\n ...props.fetchConference,\n ...confInfo,\n });\n }\n}\n</script>\n","<template>\n <PodcastItem\n v-if=\"live && 0 !== live.podcastId\"\n :podcast=\"live\"\n :fetch-conference=\"fetchConference\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {onBeforeMount, onUnmounted, ref, Ref } from \"vue\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\n\n//Props \nconst props = defineProps({\n fetchConference: { default: undefined, type: Object as () => Conference },\n})\n \n//Emits\nconst emit = defineEmits([\"deleteItem\", \"updateItem\"]);\n\n//Data \nconst live: Ref<Podcast | undefined> = ref(undefined);\nconst watchInterval: Ref<ReturnType<typeof setInterval> | undefined> = ref(undefined);\n\n\nonBeforeMount(()=>initLiveItem());\nonUnmounted(()=>clearWatchStatus())\n\n\n//Methods\nfunction clearWatchStatus() {\n clearInterval(watchInterval.value as unknown as number);\n watchInterval.value = undefined;\n}\nasync function initLiveItem(){\n await fetchPodcastData();\n watchInterval.value = setInterval(() => {\n fetchStatus();\n }, 5000);\n}\nasync function fetchPodcastData(): Promise<void> {\n if (!props.fetchConference?.podcastId) return;\n try {\n live.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.fetchConference.podcastId,\n });\n } catch {\n emit(\"deleteItem\");\n if (props.fetchConference.conferenceId) {\n await classicApi.deleteData({\n api: 9,\n path: \"conference/\" + props.fetchConference.conferenceId,\n });\n }\n }\n}\nasync function fetchStatus(): Promise<void> {\n if (\n !props.fetchConference ||\n (\"PLANNED\" !== props.fetchConference.status &&\n \"PENDING\" !== props.fetchConference.status &&\n \"RECORDING\" !== props.fetchConference.status)\n ) {\n clearWatchStatus();\n return;\n }\n const confInfo = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + props.fetchConference.conferenceId,\n });\n if (confInfo.status !== props.fetchConference.status) {\n emit(\"updateItem\", {\n ...props.fetchConference,\n ...confInfo,\n });\n }\n}\n</script>\n","<template>\n <section v-if=\"displayLiveList\" class=\"d-flex flex-column align-items-start mt-3\">\n <div\n class=\"d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center\"\n >\n <h2 class=\"mb-0\">\n {{ t(\"Live\") }}\n </h2>\n <router-link\n v-if=\"liveRight && !isPodcastmaker\"\n to=\"/main/priv/edit/live\"\n >\n <button class=\"btn btn-primary\">\n {{ t(\"Launch a new live\") }}\n </button>\n </router-link>\n </div>\n <ClassicSelect\n v-if=\"lives.length || 'ALL' !== selectedStatus\"\n v-model:text-init=\"selectedStatus\"\n id-select=\"status-live-chooser-select\"\n :label=\"t('Selection by status')\"\n :display-label=\"false\"\n :options=\"statusArraySelect\"\n class=\"mb-3\"\n />\n <ClassicLoading\n :loading-text=\"loading ? t('Loading lives...') : undefined\"\n :error-text=\"0 === lives.length ? t('No live currently') : undefined\"\n />\n <template v-if=\"lives.length\">\n <SwiperList v-if=\"!loading\" :list-object=\"lives\">\n <template #octopusSlide=\"{ option, index }\">\n <LiveItem\n :fetch-conference=\"option\"\n @delete-item=\"deleteLive(index)\"\n @update-item=\"updateLive($event, index)\"\n />\n </template>\n </SwiperList>\n </template>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport LiveItem from \"./LiveItem.vue\";\nimport ClassicSelect from \"../../form/ClassicSelect.vue\";\nimport SwiperList from \"../list/SwiperList.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n hideIfEmpty: { default: false, type: Boolean },\n})\n\n//Data \nconst loading = ref(true);\nconst loaded = ref(true);\nconst lives: Ref<Array<Conference>> = ref([]);\nconst isLiveAuthorized = ref(false);\nconst statusClassic= ref([\"RECORDING\", \"PENDING\", \"PLANNED\"]);\nconst statusAdmin = ref([\"DEBRIEFING\", \"ERROR\", \"PUBLISHING\"]);\nconst selectedStatus = ref(\"ALL\");\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst filterStore = useFilterStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayLiveList = computed(() => {\n return (\n (undefined !== filterStore.filterOrgaId ||\n undefined !== props.organisationId) &&\n (!props.hideIfEmpty || (props.hideIfEmpty && 0 !== lives.value.length))\n );\n});\nconst filterOrgaUsed = computed(() => {\n return filterStore.filterOrgaId ? filterStore.filterOrgaId : props.organisationId;\n});\nconst editRight = computed(() => {\n return isEditRights(filterOrgaUsed.value);\n});\nconst liveRight = computed(() => {\n return (\n authStore.isRoleLive &&\n \"true\" === authStore.authOrganisation.attributes?.[\"live.active\"]\n );\n});\nconst statusArraySelect = computed(() => {\n const statusArray = [{ title: t(\"All lives\"), value: \"ALL\" }];\n for (const status of statusFetched.value) {\n let title = \"\";\n switch (status) {\n case \"RECORDING\":\n title = t(\"In live\");\n break;\n case \"PENDING\":\n title = t(\"live upcoming\");\n break;\n case \"PLANNED\":\n title = t(\"live in few time\");\n break;\n case \"DEBRIEFING\":\n title = t(\"In debriefing\");\n break;\n case \"PUBLISHING\":\n title = t(\"In the process of being published\");\n break;\n case \"ERROR\":\n title = t(\"In error\");\n break;\n default:\n break;\n }\n statusArray.push({ title: title, value: status });\n }\n return statusArray;\n});\nconst statusFetched = computed(() => {\n if (editRight.value) {\n return statusClassic.value.concat(statusAdmin.value);\n }\n return statusClassic.value;\n});\n\n\n//Watch\nwatch(filterOrgaUsed, async () => {\n await checkIfLiveAuthorized();\n fetchContent();\n}, {immediate: true});\nwatch(selectedStatus, () => fetchContent());\n\n\n//Methods\nasync function checkIfLiveAuthorized(): Promise<void> {\n if (!filterOrgaUsed.value) {\n return;\n }\n isLiveAuthorized.value = await saveFetchStore.getOrgaLiveEnabled(\n filterOrgaUsed.value,\n );\n}\nfunction endLoading(): void {\n loading.value = false;\n loaded.value = true;\n}\nfunction updateLive(live: Conference, index: number): void {\n lives.value.splice(index, 1, live);\n}\nasync function fetchContent(): Promise<void> {\n lives.value.length = 0;\n if (!filterOrgaUsed.value || !isLiveAuthorized.value) {\n endLoading();\n return;\n }\n loading.value = true;\n loaded.value = false;\n try {\n const dataLives = await classicApi.fetchData<Array<Conference>>({\n api: 9,\n path: \"conference/list\",\n parameters: {\n organisationId: filterOrgaUsed.value,\n withPodcastId: true,\n status:\n \"ALL\" === selectedStatus.value\n ? statusFetched.value\n : selectedStatus.value,\n },\n });\n lives.value = dataLives.filter((p: Conference | null) => {\n return null !== p;\n });\n } catch (error) {\n handle403(error as AxiosError);\n }\n endLoading();\n}\nfunction deleteLive(index: number): void {\n lives.value.splice(index, 1);\n}\n</script>\n","<template>\n <section v-if=\"displayLiveList\" class=\"d-flex flex-column align-items-start mt-3\">\n <div\n class=\"d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center\"\n >\n <h2 class=\"mb-0\">\n {{ t(\"Live\") }}\n </h2>\n <router-link\n v-if=\"liveRight && !isPodcastmaker\"\n to=\"/main/priv/edit/live\"\n >\n <button class=\"btn btn-primary\">\n {{ t(\"Launch a new live\") }}\n </button>\n </router-link>\n </div>\n <ClassicSelect\n v-if=\"lives.length || 'ALL' !== selectedStatus\"\n v-model:text-init=\"selectedStatus\"\n id-select=\"status-live-chooser-select\"\n :label=\"t('Selection by status')\"\n :display-label=\"false\"\n :options=\"statusArraySelect\"\n class=\"mb-3\"\n />\n <ClassicLoading\n :loading-text=\"loading ? t('Loading lives...') : undefined\"\n :error-text=\"0 === lives.length ? t('No live currently') : undefined\"\n />\n <template v-if=\"lives.length\">\n <SwiperList v-if=\"!loading\" :list-object=\"lives\">\n <template #octopusSlide=\"{ option, index }\">\n <LiveItem\n :fetch-conference=\"option\"\n @delete-item=\"deleteLive(index)\"\n @update-item=\"updateLive($event, index)\"\n />\n </template>\n </SwiperList>\n </template>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport LiveItem from \"./LiveItem.vue\";\nimport ClassicSelect from \"../../form/ClassicSelect.vue\";\nimport SwiperList from \"../list/SwiperList.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n hideIfEmpty: { default: false, type: Boolean },\n})\n\n//Data \nconst loading = ref(true);\nconst loaded = ref(true);\nconst lives: Ref<Array<Conference>> = ref([]);\nconst isLiveAuthorized = ref(false);\nconst statusClassic= ref([\"RECORDING\", \"PENDING\", \"PLANNED\"]);\nconst statusAdmin = ref([\"DEBRIEFING\", \"ERROR\", \"PUBLISHING\"]);\nconst selectedStatus = ref(\"ALL\");\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst filterStore = useFilterStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayLiveList = computed(() => {\n return (\n (undefined !== filterStore.filterOrgaId ||\n undefined !== props.organisationId) &&\n (!props.hideIfEmpty || (props.hideIfEmpty && 0 !== lives.value.length))\n );\n});\nconst filterOrgaUsed = computed(() => {\n return filterStore.filterOrgaId ? filterStore.filterOrgaId : props.organisationId;\n});\nconst editRight = computed(() => {\n return isEditRights(filterOrgaUsed.value);\n});\nconst liveRight = computed(() => {\n return (\n authStore.isRoleLive &&\n \"true\" === authStore.authOrganisation.attributes?.[\"live.active\"]\n );\n});\nconst statusArraySelect = computed(() => {\n const statusArray = [{ title: t(\"All lives\"), value: \"ALL\" }];\n for (const status of statusFetched.value) {\n let title = \"\";\n switch (status) {\n case \"RECORDING\":\n title = t(\"In live\");\n break;\n case \"PENDING\":\n title = t(\"live upcoming\");\n break;\n case \"PLANNED\":\n title = t(\"live in few time\");\n break;\n case \"DEBRIEFING\":\n title = t(\"In debriefing\");\n break;\n case \"PUBLISHING\":\n title = t(\"In the process of being published\");\n break;\n case \"ERROR\":\n title = t(\"In error\");\n break;\n default:\n break;\n }\n statusArray.push({ title: title, value: status });\n }\n return statusArray;\n});\nconst statusFetched = computed(() => {\n if (editRight.value) {\n return statusClassic.value.concat(statusAdmin.value);\n }\n return statusClassic.value;\n});\n\n\n//Watch\nwatch(filterOrgaUsed, async () => {\n await checkIfLiveAuthorized();\n fetchContent();\n}, {immediate: true});\nwatch(selectedStatus, () => fetchContent());\n\n\n//Methods\nasync function checkIfLiveAuthorized(): Promise<void> {\n if (!filterOrgaUsed.value) {\n return;\n }\n isLiveAuthorized.value = await saveFetchStore.getOrgaLiveEnabled(\n filterOrgaUsed.value,\n );\n}\nfunction endLoading(): void {\n loading.value = false;\n loaded.value = true;\n}\nfunction updateLive(live: Conference, index: number): void {\n lives.value.splice(index, 1, live);\n}\nasync function fetchContent(): Promise<void> {\n lives.value.length = 0;\n if (!filterOrgaUsed.value || !isLiveAuthorized.value) {\n endLoading();\n return;\n }\n loading.value = true;\n loaded.value = false;\n try {\n const dataLives = await classicApi.fetchData<Array<Conference>>({\n api: 9,\n path: \"conference/list\",\n parameters: {\n organisationId: filterOrgaUsed.value,\n withPodcastId: true,\n status:\n \"ALL\" === selectedStatus.value\n ? statusFetched.value\n : selectedStatus.value,\n },\n });\n lives.value = dataLives.filter((p: Conference | null) => {\n return null !== p;\n });\n } catch (error) {\n handle403(error as AxiosError);\n }\n endLoading();\n}\nfunction deleteLive(index: number): void {\n lives.value.splice(index, 1);\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveList-Cah5VFun.mjs","names":[],"sources":["../src/components/display/live/LiveItem.vue","../src/components/display/live/LiveItem.vue","../src/components/display/live/LiveList.vue","../src/components/display/live/LiveList.vue"],"sourcesContent":["<template>\n <PodcastItem\n v-if=\"live && 0 !== live.podcastId\"\n :podcast=\"live\"\n :fetch-conference=\"fetchConference\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {onBeforeMount, onUnmounted, ref, Ref } from \"vue\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\n\n//Props \nconst props = defineProps({\n fetchConference: { default: undefined, type: Object as () => Conference },\n})\n \n//Emits\nconst emit = defineEmits([\"deleteItem\", \"updateItem\"]);\n\n//Data \nconst live: Ref<Podcast | undefined> = ref(undefined);\nconst watchInterval: Ref<ReturnType<typeof setInterval> | undefined> = ref(undefined);\n\n\nonBeforeMount(()=>initLiveItem());\nonUnmounted(()=>clearWatchStatus())\n\n\n//Methods\nfunction clearWatchStatus() {\n clearInterval(watchInterval.value as unknown as number);\n watchInterval.value = undefined;\n}\nasync function initLiveItem(){\n await fetchPodcastData();\n watchInterval.value = setInterval(() => {\n fetchStatus();\n }, 5000);\n}\nasync function fetchPodcastData(): Promise<void> {\n if (!props.fetchConference?.podcastId) return;\n try {\n live.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.fetchConference.podcastId,\n });\n } catch {\n emit(\"deleteItem\");\n if (props.fetchConference.conferenceId) {\n await classicApi.deleteData({\n api: 9,\n path: \"conference/\" + props.fetchConference.conferenceId,\n });\n }\n }\n}\nasync function fetchStatus(): Promise<void> {\n if (\n !props.fetchConference ||\n (\"PLANNED\" !== props.fetchConference.status &&\n \"PENDING\" !== props.fetchConference.status &&\n \"RECORDING\" !== props.fetchConference.status)\n ) {\n clearWatchStatus();\n return;\n }\n const confInfo = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + props.fetchConference.conferenceId,\n });\n if (confInfo.status !== props.fetchConference.status) {\n emit(\"updateItem\", {\n ...props.fetchConference,\n ...confInfo,\n });\n }\n}\n</script>\n","<template>\n <PodcastItem\n v-if=\"live && 0 !== live.podcastId\"\n :podcast=\"live\"\n :fetch-conference=\"fetchConference\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport PodcastItem from \"../podcasts/PodcastItem.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {onBeforeMount, onUnmounted, ref, Ref } from \"vue\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\n\n//Props \nconst props = defineProps({\n fetchConference: { default: undefined, type: Object as () => Conference },\n})\n \n//Emits\nconst emit = defineEmits([\"deleteItem\", \"updateItem\"]);\n\n//Data \nconst live: Ref<Podcast | undefined> = ref(undefined);\nconst watchInterval: Ref<ReturnType<typeof setInterval> | undefined> = ref(undefined);\n\n\nonBeforeMount(()=>initLiveItem());\nonUnmounted(()=>clearWatchStatus())\n\n\n//Methods\nfunction clearWatchStatus() {\n clearInterval(watchInterval.value as unknown as number);\n watchInterval.value = undefined;\n}\nasync function initLiveItem(){\n await fetchPodcastData();\n watchInterval.value = setInterval(() => {\n fetchStatus();\n }, 5000);\n}\nasync function fetchPodcastData(): Promise<void> {\n if (!props.fetchConference?.podcastId) return;\n try {\n live.value = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.fetchConference.podcastId,\n });\n } catch {\n emit(\"deleteItem\");\n if (props.fetchConference.conferenceId) {\n await classicApi.deleteData({\n api: 9,\n path: \"conference/\" + props.fetchConference.conferenceId,\n });\n }\n }\n}\nasync function fetchStatus(): Promise<void> {\n if (\n !props.fetchConference ||\n (\"PLANNED\" !== props.fetchConference.status &&\n \"PENDING\" !== props.fetchConference.status &&\n \"RECORDING\" !== props.fetchConference.status)\n ) {\n clearWatchStatus();\n return;\n }\n const confInfo = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + props.fetchConference.conferenceId,\n });\n if (confInfo.status !== props.fetchConference.status) {\n emit(\"updateItem\", {\n ...props.fetchConference,\n ...confInfo,\n });\n }\n}\n</script>\n","<template>\n <section v-if=\"displayLiveList\" class=\"d-flex flex-column align-items-start mt-3\">\n <div\n class=\"d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center\"\n >\n <h2 class=\"mb-0\">\n {{ t(\"Live\") }}\n </h2>\n <router-link\n v-if=\"liveRight && !isPodcastmaker\"\n to=\"/main/priv/edit/live\"\n >\n <button class=\"btn btn-primary\">\n {{ t(\"Launch a new live\") }}\n </button>\n </router-link>\n </div>\n <ClassicSelect\n v-if=\"lives.length || 'ALL' !== selectedStatus\"\n v-model:text-init=\"selectedStatus\"\n id-select=\"status-live-chooser-select\"\n :label=\"t('Selection by status')\"\n :display-label=\"false\"\n :options=\"statusArraySelect\"\n class=\"mb-3\"\n />\n <ClassicLoading\n :loading-text=\"loading ? t('Loading lives...') : undefined\"\n :error-text=\"0 === lives.length ? t('No live currently') : undefined\"\n />\n <template v-if=\"lives.length\">\n <SwiperList v-if=\"!loading\" :list-object=\"lives\">\n <template #octopusSlide=\"{ option, index }\">\n <LiveItem\n :fetch-conference=\"option\"\n @delete-item=\"deleteLive(index)\"\n @update-item=\"updateLive($event, index)\"\n />\n </template>\n </SwiperList>\n </template>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport LiveItem from \"./LiveItem.vue\";\nimport ClassicSelect from \"../../form/ClassicSelect.vue\";\nimport SwiperList from \"../list/SwiperList.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n hideIfEmpty: { default: false, type: Boolean },\n})\n\n//Data \nconst loading = ref(true);\nconst loaded = ref(true);\nconst lives: Ref<Array<Conference>> = ref([]);\nconst isLiveAuthorized = ref(false);\nconst statusClassic= ref([\"RECORDING\", \"PENDING\", \"PLANNED\"]);\nconst statusAdmin = ref([\"DEBRIEFING\", \"ERROR\", \"PUBLISHING\"]);\nconst selectedStatus = ref(\"ALL\");\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst filterStore = useFilterStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayLiveList = computed(() => {\n return (\n (undefined !== filterStore.filterOrgaId ||\n undefined !== props.organisationId) &&\n (!props.hideIfEmpty || (props.hideIfEmpty && 0 !== lives.value.length))\n );\n});\nconst filterOrgaUsed = computed(() => {\n return filterStore.filterOrgaId ? filterStore.filterOrgaId : props.organisationId;\n});\nconst editRight = computed(() => {\n return isEditRights(filterOrgaUsed.value);\n});\nconst liveRight = computed(() => {\n return (\n authStore.isRoleLive &&\n \"true\" === authStore.authOrganisation.attributes?.[\"live.active\"]\n );\n});\nconst statusArraySelect = computed(() => {\n const statusArray = [{ title: t(\"All lives\"), value: \"ALL\" }];\n for (const status of statusFetched.value) {\n let title = \"\";\n switch (status) {\n case \"RECORDING\":\n title = t(\"In live\");\n break;\n case \"PENDING\":\n title = t(\"live upcoming\");\n break;\n case \"PLANNED\":\n title = t(\"live in few time\");\n break;\n case \"DEBRIEFING\":\n title = t(\"In debriefing\");\n break;\n case \"PUBLISHING\":\n title = t(\"In the process of being published\");\n break;\n case \"ERROR\":\n title = t(\"In error\");\n break;\n default:\n break;\n }\n statusArray.push({ title: title, value: status });\n }\n return statusArray;\n});\nconst statusFetched = computed(() => {\n if (editRight.value) {\n return statusClassic.value.concat(statusAdmin.value);\n }\n return statusClassic.value;\n});\n\n\n//Watch\nwatch(filterOrgaUsed, async () => {\n await checkIfLiveAuthorized();\n fetchContent();\n}, {immediate: true});\nwatch(selectedStatus, () => fetchContent());\n\n\n//Methods\nasync function checkIfLiveAuthorized(): Promise<void> {\n if (!filterOrgaUsed.value) {\n return;\n }\n isLiveAuthorized.value = await saveFetchStore.getOrgaLiveEnabled(\n filterOrgaUsed.value,\n );\n}\nfunction endLoading(): void {\n loading.value = false;\n loaded.value = true;\n}\nfunction updateLive(live: Conference, index: number): void {\n lives.value.splice(index, 1, live);\n}\nasync function fetchContent(): Promise<void> {\n lives.value.length = 0;\n if (!filterOrgaUsed.value || !isLiveAuthorized.value) {\n endLoading();\n return;\n }\n loading.value = true;\n loaded.value = false;\n try {\n const dataLives = await classicApi.fetchData<Array<Conference>>({\n api: 9,\n path: \"conference/list\",\n parameters: {\n organisationId: filterOrgaUsed.value,\n withPodcastId: true,\n status:\n \"ALL\" === selectedStatus.value\n ? statusFetched.value\n : selectedStatus.value,\n },\n });\n lives.value = dataLives.filter((p: Conference | null) => {\n return null !== p;\n });\n } catch (error) {\n handle403(error as AxiosError);\n }\n endLoading();\n}\nfunction deleteLive(index: number): void {\n lives.value.splice(index, 1);\n}\n</script>\n","<template>\n <section v-if=\"displayLiveList\" class=\"d-flex flex-column align-items-start mt-3\">\n <div\n class=\"d-flex justify-content-between flex-grow-1 mb-3 w-100 align-items-center\"\n >\n <h2 class=\"mb-0\">\n {{ t(\"Live\") }}\n </h2>\n <router-link\n v-if=\"liveRight && !isPodcastmaker\"\n to=\"/main/priv/edit/live\"\n >\n <button class=\"btn btn-primary\">\n {{ t(\"Launch a new live\") }}\n </button>\n </router-link>\n </div>\n <ClassicSelect\n v-if=\"lives.length || 'ALL' !== selectedStatus\"\n v-model:text-init=\"selectedStatus\"\n id-select=\"status-live-chooser-select\"\n :label=\"t('Selection by status')\"\n :display-label=\"false\"\n :options=\"statusArraySelect\"\n class=\"mb-3\"\n />\n <ClassicLoading\n :loading-text=\"loading ? t('Loading lives...') : undefined\"\n :error-text=\"0 === lives.length ? t('No live currently') : undefined\"\n />\n <template v-if=\"lives.length\">\n <SwiperList v-if=\"!loading\" :list-object=\"lives\">\n <template #octopusSlide=\"{ option, index }\">\n <LiveItem\n :fetch-conference=\"option\"\n @delete-item=\"deleteLive(index)\"\n @update-item=\"updateLive($event, index)\"\n />\n </template>\n </SwiperList>\n </template>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport LiveItem from \"./LiveItem.vue\";\nimport ClassicSelect from \"../../form/ClassicSelect.vue\";\nimport SwiperList from \"../list/SwiperList.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n hideIfEmpty: { default: false, type: Boolean },\n})\n\n//Data \nconst loading = ref(true);\nconst loaded = ref(true);\nconst lives: Ref<Array<Conference>> = ref([]);\nconst isLiveAuthorized = ref(false);\nconst statusClassic= ref([\"RECORDING\", \"PENDING\", \"PLANNED\"]);\nconst statusAdmin = ref([\"DEBRIEFING\", \"ERROR\", \"PUBLISHING\"]);\nconst selectedStatus = ref(\"ALL\");\n\n\n//Composables\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst filterStore = useFilterStore();\nconst saveFetchStore = useSaveFetchStore();\n\n\n//Computed\nconst displayLiveList = computed(() => {\n return (\n (undefined !== filterStore.filterOrgaId ||\n undefined !== props.organisationId) &&\n (!props.hideIfEmpty || (props.hideIfEmpty && 0 !== lives.value.length))\n );\n});\nconst filterOrgaUsed = computed(() => {\n return filterStore.filterOrgaId ? filterStore.filterOrgaId : props.organisationId;\n});\nconst editRight = computed(() => {\n return isEditRights(filterOrgaUsed.value);\n});\nconst liveRight = computed(() => {\n return (\n authStore.isRoleLive &&\n \"true\" === authStore.authOrganisation.attributes?.[\"live.active\"]\n );\n});\nconst statusArraySelect = computed(() => {\n const statusArray = [{ title: t(\"All lives\"), value: \"ALL\" }];\n for (const status of statusFetched.value) {\n let title = \"\";\n switch (status) {\n case \"RECORDING\":\n title = t(\"In live\");\n break;\n case \"PENDING\":\n title = t(\"live upcoming\");\n break;\n case \"PLANNED\":\n title = t(\"live in few time\");\n break;\n case \"DEBRIEFING\":\n title = t(\"In debriefing\");\n break;\n case \"PUBLISHING\":\n title = t(\"In the process of being published\");\n break;\n case \"ERROR\":\n title = t(\"In error\");\n break;\n default:\n break;\n }\n statusArray.push({ title: title, value: status });\n }\n return statusArray;\n});\nconst statusFetched = computed(() => {\n if (editRight.value) {\n return statusClassic.value.concat(statusAdmin.value);\n }\n return statusClassic.value;\n});\n\n\n//Watch\nwatch(filterOrgaUsed, async () => {\n await checkIfLiveAuthorized();\n fetchContent();\n}, {immediate: true});\nwatch(selectedStatus, () => fetchContent());\n\n\n//Methods\nasync function checkIfLiveAuthorized(): Promise<void> {\n if (!filterOrgaUsed.value) {\n return;\n }\n isLiveAuthorized.value = await saveFetchStore.getOrgaLiveEnabled(\n filterOrgaUsed.value,\n );\n}\nfunction endLoading(): void {\n loading.value = false;\n loaded.value = true;\n}\nfunction updateLive(live: Conference, index: number): void {\n lives.value.splice(index, 1, live);\n}\nasync function fetchContent(): Promise<void> {\n lives.value.length = 0;\n if (!filterOrgaUsed.value || !isLiveAuthorized.value) {\n endLoading();\n return;\n }\n loading.value = true;\n loaded.value = false;\n try {\n const dataLives = await classicApi.fetchData<Array<Conference>>({\n api: 9,\n path: \"conference/list\",\n parameters: {\n organisationId: filterOrgaUsed.value,\n withPodcastId: true,\n status:\n \"ALL\" === selectedStatus.value\n ? statusFetched.value\n : selectedStatus.value,\n },\n });\n lives.value = dataLives.filter((p: Conference | null) => {\n return null !== p;\n });\n } catch (error) {\n handle403(error as AxiosError);\n }\n endLoading();\n}\nfunction deleteLive(index: number): void {\n lives.value.splice(index, 1);\n}\n</script>\n"],"mappings":"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"}
|