@saooti/octopus-sdk 42.3.0 → 42.3.1
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-DEh3iiuK.mjs → AdvancedSearch-BTbYmlMm.mjs} +8 -8
- package/dist/AdvancedSearch-C6BJzvGT.mjs.map +1 -0
- package/dist/AdvancedSearch-ChnJq71j.mjs.map +1 -0
- package/dist/AdvancedSearch-ChtUj3vS.mjs.map +1 -0
- package/dist/AdvancedSearch-D-9o5KzI.mjs.map +1 -0
- package/dist/AdvancedSearch-DH5YTENK.mjs.map +1 -0
- package/dist/AdvancedSearch-DN3WFduh.mjs.map +1 -0
- package/dist/AdvancedSearch-EpYd6K3d.mjs.map +1 -0
- package/dist/AdvancedSearch-PRJyRSID.mjs.map +1 -0
- package/dist/AdvancedSearch-_E2nwQ-A.mjs.map +1 -0
- package/dist/AdvancedSearch-cLjakm-6.mjs.map +1 -0
- package/dist/AdvancedSearch-k-fQfSBk.mjs.map +1 -0
- package/dist/AdvancedSearch-zFJq-WlO.mjs.map +1 -0
- package/dist/CategoryChooser-CSUjIA0D.mjs.map +1 -0
- package/dist/{CategoryChooser-CeF4n-nw.mjs → CategoryChooser-fAUMJNHu.mjs} +1 -1
- package/dist/CategoryFilter-B0S_nCvS.mjs.map +1 -0
- package/dist/CategoryFilter-BVrLO_pV.mjs.map +1 -0
- package/dist/{CategoryFilter-Djmal5bY.mjs → CategoryFilter-CsYCvEnz.mjs} +3 -3
- package/dist/CategoryFilter-DVwCpHLx.mjs.map +1 -0
- package/dist/CategoryList-B_9GG6Z9.mjs.map +1 -0
- package/dist/{CategoryList-Dksp79Lm.mjs → CategoryList-CDoIfrDw.mjs} +2 -2
- package/dist/CategoryList-CUae_phb.mjs.map +1 -0
- package/dist/CategoryList-DxR0fpKd.mjs.map +1 -0
- package/dist/CategoryPage-C7aKDtgs.mjs.map +1 -0
- package/dist/{CategoryPage-DC8fMny_.mjs → CategoryPage-Cl5Yuxnu.mjs} +2 -2
- package/dist/CategoryPage-DlnAp05t.mjs.map +1 -0
- package/dist/CategoryPage-Dlq5XQBS.mjs.map +1 -0
- package/dist/{CategorySearchFilter-KVYBscdd.mjs → CategorySearchFilter-Cce5zxZB.mjs} +1 -1
- package/dist/CategorySearchFilter-EULpSE2e.mjs.map +1 -0
- package/dist/ChapteringModal-BplEGZj2.mjs.map +1 -0
- package/dist/ChapteringModal-C9yuW_IU.mjs.map +1 -0
- package/dist/{ChapteringModal-Be9FF1yz.mjs → ChapteringModal-DiiVSG7s.mjs} +1 -1
- package/dist/{CheckIdentityModal-nMszYOsW.mjs → CheckIdentityModal-BrnYeGdk.mjs} +3 -3
- package/dist/CheckIdentityModal-BtGdsv2v.mjs.map +1 -0
- package/dist/CheckIdentityModal-CpRO7ehH.mjs.map +1 -0
- package/dist/CheckIdentityModal-Cry9ra4J.mjs.map +1 -0
- package/dist/ClassicDatePicker--q1yYb-S.mjs.map +1 -0
- package/dist/ClassicDatePicker-4ouU5ov9.mjs.map +1 -0
- package/dist/ClassicDatePicker-B8bI9QfF.mjs.map +1 -0
- package/dist/ClassicDatePicker-BTJWityQ.mjs +186 -0
- package/dist/ClassicDatePicker-CChR9LBd.mjs.map +1 -0
- package/dist/ClassicDatePicker-CopJVkF0.mjs.map +1 -0
- package/dist/ClassicDatePicker-DgcJCevR.mjs.map +1 -0
- package/dist/ClassicDatePicker-NxGNQxHE.mjs.map +1 -0
- package/dist/ClassicDatePicker-dgdGXcRk.mjs.map +1 -0
- package/dist/{ClassicEmojiPicker-B4TAlZvo.mjs → ClassicEmojiPicker-C0gm-DA2.mjs} +1 -1
- package/dist/ClassicEmojiPicker-CJZD8H7L.mjs.map +1 -0
- package/dist/{ClassicHelpButton-DT7T8tMe.mjs → ClassicHelpButton-BnRLmYuh.mjs} +1 -1
- package/dist/ClassicHelpButton-Qb4AwvWI.mjs.map +1 -0
- package/dist/{ClassicInputText-DJ5kURGM.mjs → ClassicInputText-YsntJkHk.mjs} +1 -1
- package/dist/ClassicInputText-npkVSUoH.mjs.map +1 -0
- package/dist/ClassicMultiselect-2I2K-o4R.mjs.map +1 -0
- package/dist/{ClassicMultiselect-CDHdJjjV.mjs → ClassicMultiselect-C0yzVQ8Y.mjs} +1 -1
- package/dist/{ClassicNotifications-DEpVRRHg.mjs → ClassicNotifications-8CVfGSqL.mjs} +1 -1
- package/dist/ClassicNotifications-BFQ-R6kO.mjs.map +1 -0
- package/dist/ClassicNotifications-DR0PM1Xp.mjs.map +1 -0
- package/dist/{ClassicPopover-DWR50Nxi.mjs → ClassicPopover-BUb-1WMB.mjs} +1 -1
- package/dist/ClassicPopover-BhMY2SMo.mjs.map +1 -0
- package/dist/ClipboardModal-B_SZ6jDk.mjs.map +1 -0
- package/dist/{ClipboardModal-BUKwZYOf.mjs → ClipboardModal-ByVXPcKD.mjs} +1 -1
- package/dist/ClipboardModal-DjrZQRtY.mjs.map +1 -0
- package/dist/{CommentInput-US8ZtNj1.mjs → CommentInput-CrRstzua.mjs} +4 -4
- package/dist/CommentInput-DPMj47uE.mjs.map +1 -0
- package/dist/CommentInput-DbhOyi7c.mjs.map +1 -0
- package/dist/CommentInput-I97yysBW.mjs.map +1 -0
- package/dist/CommentItem-AItzrTBi.mjs.map +1 -0
- package/dist/CommentItem-B7vvJwZI.mjs.map +1 -0
- package/dist/{CommentItem-CqWZPmbj.mjs → CommentItem-BYU67TIu.mjs} +4 -4
- package/dist/CommentItem-CvNbH7Hf.mjs.map +1 -0
- package/dist/CommentList-BTyyCcX4.mjs.map +1 -0
- package/dist/CommentList-CWrf45Di.mjs.map +1 -0
- package/dist/CommentList-DP6wk4PD.mjs.map +1 -0
- package/dist/{CommentList-CSYpqgNM.mjs → CommentList-snIIudVC.mjs} +2 -2
- package/dist/CommentMoreActions-BNajG7wk.mjs.map +1 -0
- package/dist/CommentMoreActions-C1l4Y_HY.mjs.map +1 -0
- package/dist/CommentMoreActions-DPbJnEEV.mjs.map +1 -0
- package/dist/{CommentMoreActions-T5RN6BGq.mjs → CommentMoreActions-y202UxL5.mjs} +3 -3
- package/dist/{CommentName-DslRo9jg.mjs → CommentName-CHBlEM7I.mjs} +3 -3
- package/dist/CommentName-D5HN8bGE.mjs.map +1 -0
- package/dist/CommentName-DMom_kwo.mjs.map +1 -0
- package/dist/CommentName-OJrxjSxu.mjs.map +1 -0
- package/dist/CommentParentInfo-DWVF5Ewh.mjs.map +1 -0
- package/dist/CommentParentInfo-Do3IlO95.mjs.map +1 -0
- package/dist/{CommentParentInfo-DMX3nkCb.mjs → CommentParentInfo-DoEeaQGU.mjs} +2 -2
- package/dist/CommentParentInfo-DqHfDpKs.mjs.map +1 -0
- package/dist/{CommentPlayer-D3JEVPKX.mjs → CommentPlayer-B4MXG-gG.mjs} +2 -2
- package/dist/CommentPlayer-B67saxPf.mjs.map +1 -0
- package/dist/CommentPlayer-BUtEvkoV.mjs.map +1 -0
- package/dist/CommentSection-BIZMRePu.mjs.map +1 -0
- package/dist/CommentSection-CSehg6MD.mjs.map +1 -0
- package/dist/{CommentSection-Brn0VQcc.mjs → CommentSection-DZf04NxT.mjs} +3 -3
- package/dist/CommentSection-MDKioQWf.mjs.map +1 -0
- package/dist/CommentStore-BBm8MjxW.mjs.map +1 -0
- package/dist/{CommentStore-hPTYaDGr.mjs → CommentStore-CysGkBHp.mjs} +8 -8
- package/dist/CommentStore-F5MVSrDw.mjs.map +1 -0
- package/dist/ContractPreviewModal-CFSkXgB4.mjs.map +1 -0
- package/dist/ContractPreviewModal-CKL6Rb_V.mjs.map +1 -0
- package/dist/{ContractPreviewModal-48Je4Wuy.mjs → ContractPreviewModal-Dd-1KasR.mjs} +2 -2
- package/dist/DateFilter-BwYSwGc-.mjs.map +1 -0
- package/dist/DateFilter-CGTz76bp.mjs.map +1 -0
- package/dist/DateFilter-CfeYepTO.mjs.map +1 -0
- package/dist/{DateFilter-DztHuPm8.mjs → DateFilter-Cnb_S8Up.mjs} +1 -1
- package/dist/DateFilter-DFw66D2V.mjs.map +1 -0
- package/dist/DateFilter-DMOUMeCh.mjs.map +1 -0
- package/dist/DateFilter-DdbvVu9Q.mjs.map +1 -0
- package/dist/DateFilter-Dr1nRuvZ.mjs.map +1 -0
- package/dist/DateFilter-QGaXHkcu.mjs.map +1 -0
- package/dist/{DownloadPodcastButton-BYWuLoNg.mjs → DownloadPodcastButton-6HtR84aE.mjs} +2 -2
- package/dist/DownloadPodcastButton-D2qeKDPT.mjs.map +1 -0
- package/dist/DownloadPodcastButton-Tr_Y4qMu.mjs.map +1 -0
- package/dist/{EditCommentModal-DacFxzLx.mjs → EditCommentModal-BQ03B6LC.mjs} +2 -2
- package/dist/EditCommentModal-BZitN0Ir.mjs.map +1 -0
- package/dist/EditCommentModal-CcmCx_My.mjs.map +1 -0
- package/dist/EditCommentModal-sj0yXd7-.mjs.map +1 -0
- package/dist/EmissionGroupChooser--428fdeK.mjs.map +1 -0
- package/dist/EmissionGroupChooser-BJCKekKM.mjs.map +1 -0
- package/dist/EmissionGroupChooser-ByqGmsGw.mjs.map +1 -0
- package/dist/EmissionGroupChooser-Cb3CF0uc.mjs.map +1 -0
- package/dist/EmissionGroupChooser-D4vMQH8g.mjs.map +1 -0
- package/dist/{EmissionGroupChooser-KmzQjp7d.mjs → EmissionGroupChooser-De_IpEhW.mjs} +2 -2
- package/dist/EmissionInlineList-CdHQBjfR.mjs.map +1 -0
- package/dist/EmissionInlineList-CnA0d_k2.mjs.map +1 -0
- package/dist/EmissionInlineList-DLUvPBNl.mjs.map +1 -0
- package/dist/{EmissionInlineList-BoEIAbLu.mjs → EmissionInlineList-dlb4gUOP.mjs} +5 -5
- package/dist/EmissionItem-B39oFnXF.mjs.map +1 -0
- package/dist/EmissionItem-BkPLFhAo.mjs.map +1 -0
- package/dist/EmissionItem-CjAUdLb7.mjs.map +1 -0
- package/dist/{EmissionItem-BeQWw-UT.mjs → EmissionItem-Dm_IGNkw.mjs} +4 -4
- package/dist/EmissionList-B0UntYdC.mjs.map +1 -0
- package/dist/EmissionList-BQSI4xbi.mjs.map +1 -0
- package/dist/{EmissionList-DB7O1nj5.mjs → EmissionList-C4JEYLyK.mjs} +4 -4
- package/dist/EmissionList-C7lQBdlW.mjs.map +1 -0
- package/dist/EmissionPage-BF6s2ySo.mjs.map +1 -0
- package/dist/EmissionPage-B_-nDP5x.mjs.map +1 -0
- package/dist/EmissionPage-C-ESprrZ.mjs.map +1 -0
- package/dist/{EmissionPage-CNYJ1Puo.mjs → EmissionPage-C4XUdzzm.mjs} +10 -10
- package/dist/EmissionPage-CPXcNHGS.mjs.map +1 -0
- package/dist/EmissionPage-EMgXCVhK.mjs.map +1 -0
- package/dist/EmissionPage-mXbUqOh9.mjs.map +1 -0
- package/dist/{EmissionPlayerItem-S_yqupad.mjs → EmissionPlayerItem-BLIdolRe.mjs} +3 -3
- package/dist/EmissionPlayerItem-C27zJBhY.mjs.map +1 -0
- package/dist/EmissionPlayerItem-C3fkgEaL.mjs.map +1 -0
- package/dist/EmissionPlayerItem-DxXG20G1.mjs.map +1 -0
- package/dist/EmissionPresentationItem-BNnDSWGQ.mjs.map +1 -0
- package/dist/EmissionPresentationItem-BeETY65I.mjs.map +1 -0
- package/dist/{EmissionPresentationItem-kJgKN7Ju.mjs → EmissionPresentationItem-DYDwfqwp.mjs} +1 -1
- package/dist/EmissionPresentationList-BD7rIUok.mjs.map +1 -0
- package/dist/EmissionPresentationList-CGMyY_iu.mjs.map +1 -0
- package/dist/{EmissionPresentationList-Bg9X3CJP.mjs → EmissionPresentationList-Cxi7QnIs.mjs} +3 -3
- package/dist/EmissionsPage-4To0aRBA.mjs.map +1 -0
- package/dist/{EmissionsPage-BLpGH_PR.mjs → EmissionsPage-B0bXLncg.mjs} +5 -5
- package/dist/EmissionsPage-BIspB5uq.mjs.map +1 -0
- package/dist/EmissionsPage-BhUjdpEu.mjs.map +1 -0
- package/dist/EmissionsPage-Bn1R_ipo.mjs.map +1 -0
- package/dist/EmissionsPage-CNXwdJuV.mjs.map +1 -0
- package/dist/EmissionsPage-CPmhIbFf.mjs.map +1 -0
- package/dist/EmissionsPage-Cgzvn2h8.mjs.map +1 -0
- package/dist/EmissionsPage-D09zTpGb.mjs.map +1 -0
- package/dist/EmissionsPage-Dl7qaQT1.mjs.map +1 -0
- package/dist/EmissionsPage-DyleZtu_.mjs.map +1 -0
- package/dist/EmissionsPage-OVpc7k1Z.mjs.map +1 -0
- package/dist/EmissionsPage-wjKBLFM6.mjs.map +1 -0
- package/dist/Error403Page-B6Q7ijY3.mjs.map +1 -0
- package/dist/Error403Page-DF08mgCL.mjs.map +1 -0
- package/dist/{Error403Page-BB69doEn.mjs → Error403Page-DVmC5AOd.mjs} +2 -2
- package/dist/FooterGarSection-BWahCyz0.mjs.map +1 -0
- package/dist/{FooterGarSection-B9nsnpfF.mjs → FooterGarSection-BqPggI3o.mjs} +3 -3
- package/dist/FooterGarSection-CN8ZfO7e.mjs.map +1 -0
- package/dist/FooterSection-BOjr1LRb.mjs.map +1 -0
- package/dist/{FooterSection-DdGtlbk-.mjs → FooterSection-C5FEIJlU.mjs} +11 -11
- package/dist/FooterSection-nVRzKSYN.mjs.map +1 -0
- package/dist/HomeDropdown-3fl_xltN.mjs.map +1 -0
- package/dist/HomeDropdown-DGNkJhG2.mjs.map +1 -0
- package/dist/{HomeDropdown-BqwwLStt.mjs → HomeDropdown-Fx6kQAuH.mjs} +3 -3
- package/dist/HomeDropdown-PvmOUzYb.mjs.map +1 -0
- package/dist/{HomePage-JOUAKKfP.mjs → HomePage-7PT7HmHs.mjs} +3 -3
- package/dist/HomePage-D0Pbu_h1.mjs.map +1 -0
- package/dist/HomePage-D6_D1f33.mjs.map +1 -0
- package/dist/HomePage-ry0NfX1M.mjs.map +1 -0
- package/dist/InlineRubriqueList-BdpS1pVc.mjs.map +1 -0
- package/dist/InlineRubriqueList-BlcjQ4wR.mjs.map +1 -0
- package/dist/{InlineRubriqueList-BzcHKvM4.mjs → InlineRubriqueList-ezgexR-O.mjs} +1 -1
- package/dist/{LikeSection-MmbHMunb.mjs → LikeSection-CGu4yOCr.mjs} +3 -3
- package/dist/LikeSection-Cqj4y7qZ.mjs.map +1 -0
- package/dist/LikeSection-D95IMsZE.mjs.map +1 -0
- package/dist/LikeSection-HJla-zgI.mjs.map +1 -0
- package/dist/{ListPaginate-5uRK_QKJ.mjs → ListPaginate-BPdnBcpe.mjs} +2 -2
- package/dist/ListPaginate-DYzRnp-2.mjs.map +1 -0
- package/dist/ListPaginate-DyR7HLIc.mjs.map +1 -0
- package/dist/LiveHorizontalList-Bqe351Ut.mjs.map +1 -0
- package/dist/{LiveHorizontalList-CpoIRd4C.mjs → LiveHorizontalList-Bs-Rz5Ws.mjs} +3 -3
- package/dist/LiveHorizontalList-CaujYMT3.mjs.map +1 -0
- package/dist/LiveHorizontalList-DhsOZPT3.mjs.map +1 -0
- package/dist/{LiveList-DYFBrNgg.mjs → LiveList-BVOEnAEc.mjs} +5 -5
- package/dist/LiveList-DMB3FxUM.mjs.map +1 -0
- package/dist/LiveList-DOi4GV1x.mjs.map +1 -0
- package/dist/LiveList-Dh1mJVs7.mjs.map +1 -0
- package/dist/LivesPage-BvDLscOE.mjs.map +1 -0
- package/dist/{LivesPage-FSkmBdVw.mjs → LivesPage-DG5VY4HF.mjs} +2 -2
- package/dist/LivesPage-DmSlg7iH.mjs.map +1 -0
- package/dist/LivesPage-yy_5pI8R.mjs.map +1 -0
- package/dist/MapPage-3n-rigBK.mjs.map +1 -0
- package/dist/MapPage-5GwE8Z4E.mjs.map +1 -0
- package/dist/{MapPage-DpBt2gWF.mjs → MapPage-bIe2a9O1.mjs} +2 -2
- package/dist/MobileMenu-BSos17v3.mjs.map +1 -0
- package/dist/{MobileMenu-CjNMfHUP.mjs → MobileMenu-BZ5nOrYw.mjs} +5 -5
- package/dist/MobileMenu-C6W37oJg.mjs.map +1 -0
- package/dist/MobileMenu-K0rNwrW1.mjs.map +1 -0
- package/dist/NewsletterModal-CFGXBtID.mjs.map +1 -0
- package/dist/NewsletterModal-CZNwpCK5.mjs.map +1 -0
- package/dist/{NewsletterModal-BurqHTFc.mjs → NewsletterModal-DZk0mSVC.mjs} +1 -1
- package/dist/OctopusMultiselect-CFUGyzeM.mjs.map +1 -0
- package/dist/OctopusMultiselect-Cn1lqbQo.mjs.map +1 -0
- package/dist/OctopusMultiselect-esu8BY0J.mjs.map +1 -0
- package/dist/{OctopusMultiselect-C8qljiaH.mjs → OctopusMultiselect-noQPQMZQ.mjs} +7 -5
- package/dist/OrganisationChooser-BKfXLT4G.mjs.map +1 -0
- package/dist/{OrganisationChooser-Dx-OT7MW.mjs → OrganisationChooser-C48cWqbY.mjs} +3 -3
- package/dist/OrganisationChooser-PpO7MD7f.mjs.map +1 -0
- package/dist/OrganisationChooser-Y_jO6oXv.mjs.map +1 -0
- package/dist/{OrganisationChooserLight-BF5fT5pV.mjs → OrganisationChooserLight-Bcltbv-v.mjs} +1 -1
- package/dist/OrganisationChooserLight-Dh7wMH40.mjs.map +1 -0
- package/dist/OrganisationChooserLight-Dx_rkvpP.mjs.map +1 -0
- package/dist/PageNotFound-DeW-K_hL.mjs.map +1 -0
- package/dist/{PageNotFound-Cj-3Gv8T.mjs → PageNotFound-DogaoIFX.mjs} +2 -2
- package/dist/PageNotFound-gRuMWYCp.mjs.map +1 -0
- package/dist/ParticipantInlineList-CY_s6aJm.mjs.map +1 -0
- package/dist/{ParticipantInlineList-DEWqM1Io.mjs → ParticipantInlineList-D9pkOlvP.mjs} +4 -4
- package/dist/ParticipantInlineList-DSatB75C.mjs.map +1 -0
- package/dist/ParticipantItem-BG7yqRvD.mjs.map +1 -0
- package/dist/ParticipantItem-BTK25HID.mjs.map +1 -0
- package/dist/{ParticipantItem-BZAUIeSR.mjs → ParticipantItem-CbHOfVon.mjs} +3 -3
- package/dist/ParticipantPage-B4VnV8Yc.mjs.map +1 -0
- package/dist/ParticipantPage-B6Gzg6ul.mjs.map +1 -0
- package/dist/ParticipantPage-CNRNKTtC.mjs.map +1 -0
- package/dist/ParticipantPage-CpkhQjN2.mjs.map +1 -0
- package/dist/ParticipantPage-D61CCIqy.mjs.map +1 -0
- package/dist/ParticipantPage-Dh4JJCmJ.mjs.map +1 -0
- package/dist/{ParticipantPage-CzaHoWij.mjs → ParticipantPage-nTp2MbgB.mjs} +6 -6
- package/dist/{ParticipantsPage-goxJZQZZ.mjs → ParticipantsPage-Bbz9lQ_0.mjs} +6 -6
- package/dist/ParticipantsPage-COaQrVID.mjs.map +1 -0
- package/dist/ParticipantsPage-DRVVU7qp.mjs.map +1 -0
- package/dist/ParticipantsPage-DhKCWwKE.mjs.map +1 -0
- package/dist/{PlayerAnonymousModal-By96BtpA.mjs → PlayerAnonymousModal-B1iZ34O8.mjs} +2 -2
- package/dist/PlayerAnonymousModal-CBZStK-L.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-Cq6-Dn49.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-Cu2GGoAh.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DiXWtNmM.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DrQvDDym.mjs.map +1 -0
- package/dist/PlayerCompact-B9oeGx_g.mjs.map +1 -0
- package/dist/PlayerCompact-DtMginEc.mjs.map +1 -0
- package/dist/PlayerCompact-E8ydrdJ4.mjs.map +1 -0
- package/dist/{PlayerCompact-CjU8xxVH.mjs → PlayerCompact-_39FpkWo.mjs} +4 -4
- package/dist/PlayerComponent-4Wj5XlrS.mjs.map +1 -0
- package/dist/{PlayerComponent-B58O6U6i.mjs → PlayerComponent-B1RsmSf0.mjs} +47 -47
- package/dist/PlayerComponent-BGVzhVz9.mjs.map +1 -0
- package/dist/PlayerComponent-BIshvul2.mjs.map +1 -0
- package/dist/PlayerComponent-BO7wUL2M.mjs.map +1 -0
- package/dist/PlayerComponent-C222I0kT.mjs.map +1 -0
- package/dist/PlayerComponent-CjNZNKKz.mjs.map +1 -0
- package/dist/PlayerComponent-UG_c6_yr.mjs.map +1 -0
- package/dist/{PlayerLarge-CWL5SDzD.mjs → PlayerLarge-BxdyYLOt.mjs} +5 -5
- package/dist/PlayerLarge-CPUAoR9q.mjs.map +1 -0
- package/dist/PlayerLarge-DP7RsA83.mjs.map +1 -0
- package/dist/PlayerLarge-DpiFO7gk.mjs.map +1 -0
- package/dist/PlayerLarge-Dwtmu4gz.mjs.map +1 -0
- package/dist/PlayerLarge-HvRHSw4j.mjs.map +1 -0
- package/dist/PlayerLarge-X5uYCbyS.mjs.map +1 -0
- package/dist/PlayerLarge-qwr3iWSX.mjs.map +1 -0
- package/dist/{PlayerPlayButton-DmvV2YDi.mjs → PlayerPlayButton-BIsfgj0d.mjs} +4 -4
- package/dist/PlayerPlayButton-BQ4zJOrE.mjs.map +1 -0
- package/dist/PlayerPlayButton-kh4ZCdWh.mjs.map +1 -0
- package/dist/PlayerProgressBar-C-I3dk3l.mjs.map +1 -0
- package/dist/PlayerProgressBar-Dr-aFk7O.mjs.map +1 -0
- package/dist/{PlayerProgressBar-Cl_mF4nD.mjs → PlayerProgressBar-dSschgez.mjs} +2 -2
- package/dist/PlayerProgressBar-xc1ZFPJY.mjs.map +1 -0
- package/dist/PlayerStore-Aq_ukXXS.mjs.map +1 -0
- package/dist/PlayerStore-C_QCHbT3.mjs.map +1 -0
- package/dist/{PlayerStore-CKprkxa0.mjs → PlayerStore-DggKki80.mjs} +1 -1
- package/dist/PlayerVideo-BNfhaNUn.mjs.map +1 -0
- package/dist/{PlayerVideo-CVUU7nHT.mjs → PlayerVideo-BWyvKlJT.mjs} +3 -3
- package/dist/PlayerVideo-Bhok6qYS.mjs.map +1 -0
- package/dist/PlayerVideo-CN609whx.mjs.map +1 -0
- package/dist/PlayerVideo-DXG_PsWA.mjs.map +1 -0
- package/dist/PlayerVideo-DzUapxuZ.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-B1rRVLzy.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-B6qODy7b.mjs.map +1 -0
- package/dist/{PlayerVideoDigiteka-DZIqqN8a.mjs → PlayerVideoDigiteka-Dxx63XHI.mjs} +2 -2
- package/dist/PlayerVideoHls-BoAbvi2b.mjs.map +1 -0
- package/dist/PlayerVideoHls-BsHaaJB-.mjs.map +1 -0
- package/dist/PlayerVideoHls-C0ddorEn.mjs.map +1 -0
- package/dist/PlayerVideoHls-DBODDRmV.mjs.map +1 -0
- package/dist/PlayerVideoHls-DVNHm_O2.mjs.map +1 -0
- package/dist/{PlayerVideoHls-BirHOkZD.mjs → PlayerVideoHls-DzbyXZsQ.mjs} +9 -7
- package/dist/{PlaylistPage-DljbABur.mjs → PlaylistPage-BdbqXFwR.mjs} +35 -35
- package/dist/PlaylistPage-BgUaPJet.mjs.map +1 -0
- package/dist/PlaylistPage-BwF2VdGb.mjs.map +1 -0
- package/dist/PlaylistPage-CINwx3zE.mjs.map +1 -0
- package/dist/PlaylistPage-CPB647jC.mjs.map +1 -0
- package/dist/PlaylistPage-DDzE5GQs.mjs.map +1 -0
- package/dist/PlaylistPage-bm1nWKMg.mjs.map +1 -0
- package/dist/PlaylistsPage-BwkVSYIp.mjs.map +1 -0
- package/dist/PlaylistsPage-C62NUvz4.mjs.map +1 -0
- package/dist/{PlaylistsPage-BSW-uPWF.mjs → PlaylistsPage-D08i24b2.mjs} +13 -13
- package/dist/PlaylistsPage-Dvh77ql6.mjs.map +1 -0
- package/dist/PodcastFilterList-BBhzOM64.mjs.map +1 -0
- package/dist/PodcastFilterList-BKBjd36i.mjs.map +1 -0
- package/dist/{PodcastFilterList-YM90eN60.mjs → PodcastFilterList-CL5ebQ69.mjs} +3 -3
- package/dist/PodcastFilterList-D9NTYS1v.mjs.map +1 -0
- package/dist/{PodcastImage-BtiQlrb3.mjs → PodcastImage-BFA22TgZ.mjs} +6 -6
- package/dist/PodcastImage-BhQKB5te.mjs.map +1 -0
- package/dist/PodcastImage-CHx3bUzt.mjs.map +1 -0
- package/dist/PodcastInlineList-CcNd_Hbs.mjs.map +1 -0
- package/dist/{PodcastInlineList-B32BSFqN.mjs → PodcastInlineList-H6BxXx0A.mjs} +1 -1
- package/dist/PodcastInlineList-akLivgog.mjs.map +1 -0
- package/dist/PodcastInlineList-jI2EvXSo.mjs.map +1 -0
- package/dist/{PodcastInlineListTemplate-DTrS1UiG.mjs → PodcastInlineListTemplate-Chbi8aME.mjs} +3 -3
- package/dist/PodcastInlineListTemplate-DT9ZRs61.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-Dh1xF6xT.mjs.map +1 -0
- package/dist/PodcastIsPlaying-C0jcpBQd.mjs.map +1 -0
- package/dist/PodcastIsPlaying-H6P1CHAI.mjs.map +1 -0
- package/dist/{PodcastIsPlaying-BtmHnQi9.mjs → PodcastIsPlaying-ugHcefCy.mjs} +1 -1
- package/dist/{PodcastItem-TdtzApJ6.mjs → PodcastItem-Baki7W0q.mjs} +6 -6
- package/dist/PodcastItem-BfvK4ion.mjs.map +1 -0
- package/dist/PodcastItem-DEhA78z9.mjs.map +1 -0
- package/dist/PodcastItem-DwK_Yu1G.mjs.map +1 -0
- package/dist/PodcastList-B4ic6Cij.mjs.map +1 -0
- package/dist/PodcastList-C2R92m6S.mjs.map +1 -0
- package/dist/PodcastList-DWl6zz_z.mjs.map +1 -0
- package/dist/PodcastList-Dbt4nmKg.mjs.map +1 -0
- package/dist/PodcastList-KaQBRbR9.mjs.map +1 -0
- package/dist/{PodcastList-BAOJhQ7G.mjs → PodcastList-N_XOE-hI.mjs} +5 -5
- package/dist/PodcastList-d3SGLPvF.mjs.map +1 -0
- package/dist/{PodcastList-Bbe3yWiu.mjs → PodcastList-yjd_exFg.mjs} +4 -4
- package/dist/PodcastPage-B0pbZ5o_.mjs.map +1 -0
- package/dist/PodcastPage-BOA44Us4.mjs.map +1 -0
- package/dist/PodcastPage-Bs1wz-0E.mjs.map +1 -0
- package/dist/PodcastPage-C37Wa-qH.mjs.map +1 -0
- package/dist/PodcastPage-D0HYJxaK.mjs.map +1 -0
- package/dist/PodcastPage-D0U6-etV.mjs.map +1 -0
- package/dist/PodcastPage-DwMPY4po.mjs.map +1 -0
- package/dist/{PodcastPage-CAxub2do.mjs → PodcastPage-SUEm-Enm.mjs} +26 -26
- package/dist/PodcastPlayBar-Bo-W_dSK.mjs.map +1 -0
- package/dist/PodcastPlayBar-CBtMWlVc.mjs.map +1 -0
- package/dist/{PodcastPlayBar-gAEttclo.mjs → PodcastPlayBar-COU17bnm.mjs} +3 -3
- package/dist/PodcastPlayBar-Cpr3Ff7J.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-BvJPrxpI.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-CS5TNlmX.mjs.map +1 -0
- package/dist/{PodcastPlayBasicButton-7w91y2ow.mjs → PodcastPlayBasicButton-CVXhEUHB.mjs} +1 -1
- package/dist/{PodcastPlayButton-CQY0d6f-.mjs → PodcastPlayButton--gjzxW0o.mjs} +3 -3
- package/dist/PodcastPlayButton-BqvE4ZUl.mjs.map +1 -0
- package/dist/PodcastPlayButton-DW5Feest.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BV31HaB2.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-C-WYs6aE.mjs.map +1 -0
- package/dist/{PodcastPlaylistInlineList-BE5L8pSP.mjs → PodcastPlaylistInlineList-DsEHaYGZ.mjs} +7 -7
- package/dist/PodcastPlaylistInlineList-HEdFAq1l.mjs.map +1 -0
- package/dist/{PodcastPresentationList-DH6Rq0Z4.mjs → PodcastPresentationList-B9vORr36.mjs} +4 -4
- package/dist/PodcastPresentationList-ChqvdXY0.mjs.map +1 -0
- package/dist/PodcastPresentationList-Dit6HvJr.mjs.map +1 -0
- package/dist/{PodcastProgressBar-DoeG7lDj.mjs → PodcastProgressBar-B0FwZOTT.mjs} +3 -3
- package/dist/PodcastProgressBar-B8ONWq-Z.mjs.map +1 -0
- package/dist/PodcastProgressBar-BoGtJPAa.mjs.map +1 -0
- package/dist/PodcastProgressBar-DTRhKzW-.mjs.map +1 -0
- package/dist/{PodcastRawTranscript-Cktqtbcg.mjs → PodcastRawTranscript-BiuftXu-.mjs} +2 -2
- package/dist/PodcastRawTranscript-C8SJcaQE.mjs.map +1 -0
- package/dist/PodcastRawTranscript-nfzHM0k_.mjs.map +1 -0
- package/dist/PodcastRawTranscript-r5pRtZDg.mjs.map +1 -0
- package/dist/{PodcastSwiperList-DZ26-8xy.mjs → PodcastSwiperList-BKOYhrsH.mjs} +4 -4
- package/dist/PodcastSwiperList-Bsg0q89o.mjs.map +1 -0
- package/dist/PodcastSwiperList-BxsEv7_8.mjs.map +1 -0
- package/dist/PodcastSwiperList-Cju5VHcH.mjs.map +1 -0
- package/dist/PodcastmakerHeader-6fIwE70J.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BBPEy__r.mjs.map +1 -0
- package/dist/{PodcastmakerHeader-MhdOrssb.mjs → PodcastmakerHeader-CIoJwm1L.mjs} +1 -1
- package/dist/PodcastsPage-967SI8kL.mjs.map +1 -0
- package/dist/{PodcastsPage-BXjTDNhn.mjs → PodcastsPage-B5NwPMyn.mjs} +5 -5
- package/dist/PodcastsPage-B7j2XxPZ.mjs.map +1 -0
- package/dist/PodcastsPage-BOzszXpc.mjs.map +1 -0
- package/dist/PodcastsPage-Bw0tzWoX.mjs.map +1 -0
- package/dist/PodcastsPage-D3TAYJV8.mjs.map +1 -0
- package/dist/PodcastsPage-DJsgHs7V.mjs.map +1 -0
- package/dist/PodcastsPage-DKWHzNNA.mjs.map +1 -0
- package/dist/PodcastsPage-DONqoMkB.mjs.map +1 -0
- package/dist/PodcastsPage-DUcfPeLD.mjs.map +1 -0
- package/dist/PodcastsPage-DWBgwD6o.mjs.map +1 -0
- package/dist/PodcastsPage-DZO4H1Ff.mjs.map +1 -0
- package/dist/PodcastsPage-DhEMPqCT.mjs.map +1 -0
- package/dist/ProductorSearch-BgmV_RCq.mjs.map +1 -0
- package/dist/{ProductorSearch-Z36zTZK4.mjs → ProductorSearch-BiUEs7mG.mjs} +3 -3
- package/dist/ProductorSearch-C4Nv2HzS.mjs.map +1 -0
- package/dist/ProductorSearch-DtVe_rU9.mjs.map +1 -0
- package/dist/ProgressBar-BMeSiueh.mjs.map +1 -0
- package/dist/ProgressBar-C15ih0uL.mjs.map +1 -0
- package/dist/{ProgressBar-CTOa-MDz.mjs → ProgressBar-CXB5q3-H.mjs} +2 -2
- package/dist/ProgressBar-DAUOWol1.mjs.map +1 -0
- package/dist/QrCode-BYLxjhwi.mjs.map +1 -0
- package/dist/QrCode-CCigeTaZ.mjs +109 -0
- package/dist/QrCode-CaXoOjo-.mjs.map +1 -0
- package/dist/QrCode-CcQR60hB.mjs.map +1 -0
- package/dist/QrCode-S_eLVZoz.mjs.map +1 -0
- package/dist/QrCode-XZMMiaX5.mjs.map +1 -0
- package/dist/QrCodeModal-BJOu1pAV.mjs.map +1 -0
- package/dist/QrCodeModal-BjT-0P0w.mjs.map +1 -0
- package/dist/QrCodeModal-BrabSTzq.mjs.map +1 -0
- package/dist/QrCodeModal-CjvbRYLW.mjs.map +1 -0
- package/dist/{QrCodeModal-DE3juCsN.mjs → QrCodeModal-Dpw_tCQ6.mjs} +1 -1
- package/dist/QrCodeModal-N2fjbP4S.mjs.map +1 -0
- package/dist/RadioCurrently-B_b8DV2w.mjs.map +1 -0
- package/dist/RadioCurrently-DufvDqm1.mjs.map +1 -0
- package/dist/{RadioCurrently-BlAhcc9E.mjs → RadioCurrently-ysRKhxKU.mjs} +3 -3
- package/dist/RadioHistory-B03bYMxm.mjs.map +1 -0
- package/dist/{RadioHistory-C7S79sZD.mjs → RadioHistory-DjsqvRgH.mjs} +2 -2
- package/dist/RadioHistory-Dv4gt9TM.mjs.map +1 -0
- package/dist/RadioImage-BFdiGgi_.mjs.map +1 -0
- package/dist/{RadioImage-BTn2Lquc.mjs → RadioImage-CSseYIVb.mjs} +4 -4
- package/dist/RadioImage-CrtD33dM.mjs.map +1 -0
- package/dist/RadioList--f7RDhHJ.mjs.map +1 -0
- package/dist/{RadioList-BD3zNwmk.mjs → RadioList-BZFFAobk.mjs} +4 -4
- package/dist/RadioList-De9NQ23Q.mjs.map +1 -0
- package/dist/RadioPage-BK1N--Kr.mjs.map +1 -0
- package/dist/RadioPage-BTtNFJI2.mjs.map +1 -0
- package/dist/RadioPage-CcK0y_5s.mjs.map +1 -0
- package/dist/RadioPage-Cqas0JX6.mjs.map +1 -0
- package/dist/{RadioPage-Bv3oupa1.mjs → RadioPage-Cwooj0wF.mjs} +4 -4
- package/dist/RadioPage-DhSB0sX5.mjs.map +1 -0
- package/dist/RadioPage-DlahFXYC.mjs.map +1 -0
- package/dist/RadioPlanning-BU1E8i4t.mjs.map +1 -0
- package/dist/{RadioPlanning-nkv_Mb_t.mjs → RadioPlanning-BmIxuUBI.mjs} +2 -2
- package/dist/RadioPlanning-Bx-N-xqX.mjs.map +1 -0
- package/dist/RadioProgressBar-0XM3ZTGU.mjs.map +1 -0
- package/dist/{RadioProgressBar-B2EgCOrK.mjs → RadioProgressBar-CQRGuPpC.mjs} +1 -1
- package/dist/RadioProgressBar-oyeS56mV.mjs.map +1 -0
- package/dist/{RecaptchaModal-w-9MlZ45.mjs → RecaptchaModal-BdW4xNlX.mjs} +1 -1
- package/dist/RecaptchaModal-DFlFQcHs.mjs.map +1 -0
- package/dist/RecaptchaModal-iLQ4UYOL.mjs.map +1 -0
- package/dist/ReportAbuseModal-BaPt2DLK.mjs.map +1 -0
- package/dist/ReportAbuseModal-BdZRe29L.mjs.map +1 -0
- package/dist/ReportAbuseModal-CH7Y153n.mjs.map +1 -0
- package/dist/{ReportAbuseModal-O1K7j7NV.mjs → ReportAbuseModal-jjGeXbB9.mjs} +4 -4
- package/dist/RightsIndicator-4pUsBq5j.mjs.map +1 -0
- package/dist/RightsIndicator-BH3jm_1O.mjs.map +1 -0
- package/dist/{RightsIndicator-D0cSu8j2.mjs → RightsIndicator-CPzWpH5Z.mjs} +1 -1
- package/dist/RightsIndicator-d8ffUFIj.mjs.map +1 -0
- package/dist/{RightsWrapper-BUj_1bwR.mjs → RightsWrapper-BTQ8GGUi.mjs} +5 -5
- package/dist/RightsWrapper-C3BRHqqo.mjs.map +1 -0
- package/dist/RightsWrapper-DJG9Ds6c.mjs.map +1 -0
- package/dist/RightsWrapper-nBURBTJX.mjs.map +1 -0
- package/dist/{RubriqueChoice-DaTWiDbl.mjs → RubriqueChoice-C-S-veJJ.mjs} +1 -1
- package/dist/RubriqueChoice-DsmnrUNs.mjs.map +1 -0
- package/dist/{RubriqueChooser-C33LorHa.mjs → RubriqueChooser-CNGn8LcP.mjs} +1 -1
- package/dist/RubriqueChooser-WmzcajTt.mjs.map +1 -0
- package/dist/RubriqueFilter-C9C_OiF5.mjs.map +1 -0
- package/dist/RubriqueFilter-DDI7DjMR.mjs.map +1 -0
- package/dist/RubriqueFilter-_8V1n9-x.mjs.map +1 -0
- package/dist/{RubriqueFilter-RgardNnQ.mjs → RubriqueFilter-rxiG8Wci.mjs} +3 -3
- package/dist/RubriqueList-99-nWSvq.mjs.map +1 -0
- package/dist/RubriqueList-BiRimk17.mjs.map +1 -0
- package/dist/RubriqueList-H_NHILuj.mjs.map +1 -0
- package/dist/{RubriqueList-DA9OYqUl.mjs → RubriqueList-rJj2IycY.mjs} +4 -4
- package/dist/RubriquePage-6KFPBPz8.mjs.map +1 -0
- package/dist/{RubriquePage-xgTOce7c.mjs → RubriquePage-BNEWnk3-.mjs} +4 -4
- package/dist/RubriquePage-Bpt-x7IK.mjs.map +1 -0
- package/dist/RubriquePage-Cwz9OqLO.mjs.map +1 -0
- package/dist/SearchPage-BtZnj3sA.mjs.map +1 -0
- package/dist/SearchPage-CbbbcXxs.mjs.map +1 -0
- package/dist/SearchPage-DMIV2AgJ.mjs.map +1 -0
- package/dist/{SearchPage-C3o5RPP0.mjs → SearchPage-DsZzPoEw.mjs} +2 -2
- package/dist/ShareAnonymous-BeSQozvM.mjs.map +1 -0
- package/dist/ShareAnonymous-BgsR6Ahp.mjs.map +1 -0
- package/dist/ShareAnonymous-CNWR1v6X.mjs.map +1 -0
- package/dist/{ShareAnonymous-bOwwEjPv.mjs → ShareAnonymous-DK2rnLl1.mjs} +3 -3
- package/dist/ShareAnonymous-DVpKBKbi.mjs.map +1 -0
- package/dist/ShareAnonymous-DWArDFT0.mjs.map +1 -0
- package/dist/ShareAnonymous-IaVbb-rp.mjs.map +1 -0
- package/dist/ShareModalPlayer-BHmsvxXF.mjs.map +1 -0
- package/dist/{ShareModalPlayer-D2oBrSly.mjs → ShareModalPlayer-Cfnk68-U.mjs} +1 -1
- package/dist/ShareModalPlayer-DLBU3lsU.mjs.map +1 -0
- package/dist/ShareModalPlayer-O-CmDObW.mjs.map +1 -0
- package/dist/ShareModalPlayer-QYu8Q9ks.mjs.map +1 -0
- package/dist/ShareModalPlayer-Vga-96DM.mjs.map +1 -0
- package/dist/{ShareNewsletter-CNw1LziN.mjs → ShareNewsletter-BWIAt47D.mjs} +1 -1
- package/dist/ShareNewsletter-BhFk6ARk.mjs.map +1 -0
- package/dist/ShareNewsletter-JCO4h7rk.mjs.map +1 -0
- package/dist/SharePlayer-C-RgIOh1.mjs.map +1 -0
- package/dist/{SharePlayer-CRri0YED.mjs → SharePlayer-C0aveOwy.mjs} +2 -2
- package/dist/SharePlayer-CNXrUj8M.mjs.map +1 -0
- package/dist/SharePlayer-D0-qY2dS.mjs.map +1 -0
- package/dist/SharePlayer-DQoFa7iv.mjs.map +1 -0
- package/dist/SharePlayer-DwNl3E7o.mjs.map +1 -0
- package/dist/{SharePlayerRadio-DVsegQMu.mjs → SharePlayerRadio-BqaeyEls.mjs} +2 -2
- package/dist/SharePlayerRadio-CHvCtKdZ.mjs.map +1 -0
- package/dist/SharePlayerRadio-CIsy-rCC.mjs.map +1 -0
- package/dist/SharePlayerRadio-ChfNulnf.mjs.map +1 -0
- package/dist/SharePlayerRadio-DA-W-306.mjs.map +1 -0
- package/dist/SharePlayerRadio-DwPeLUsk.mjs.map +1 -0
- package/dist/SharePlayerTypes-CeMV4n10.mjs.map +1 -0
- package/dist/SharePlayerTypes-DdyoQZDi.mjs.map +1 -0
- package/dist/{SharePlayerTypes-BxkEoBSL.mjs → SharePlayerTypes-DyrqFDVJ.mjs} +1 -1
- package/dist/ShareSocialsButtons-BHWzJVne.mjs.map +1 -0
- package/dist/ShareSocialsButtons-Bjx2ONvj.mjs.map +1 -0
- package/dist/{ShareSocialsButtons-BJ3DqvIO.mjs → ShareSocialsButtons-PqMXhFEk.mjs} +1 -1
- package/dist/{SimpleLayout-BJlcQjx9.mjs → SimpleLayout-9O9FZ69Q.mjs} +2 -2
- package/dist/SimpleLayout-B-QSfHeQ.mjs.map +1 -0
- package/dist/SimpleLayout-BauUacaf.mjs.map +1 -0
- package/dist/SimpleLayout-C29bPtbd.mjs.map +1 -0
- package/dist/SimpleLayout-Cjc3Q9Mb.mjs.map +1 -0
- package/dist/SimpleLayout-D4sVjQGu.mjs.map +1 -0
- package/dist/SimpleLayout-DaoXS--3.mjs.map +1 -0
- package/dist/SimpleLayout-vkWEZHLi.mjs.map +1 -0
- package/dist/{SmartLinkPage-DpD90wc7.mjs → SmartLinkPage-6HgX8LDv.mjs} +16 -16
- package/dist/SmartLinkPage-BcQmox7e.mjs.map +1 -0
- package/dist/SmartLinkPage-M_zB_Xp1.mjs.map +1 -0
- package/dist/SubscribeButtons-CyGYD1B1.mjs.map +1 -0
- package/dist/SubscribeButtons-DjjZQfOU.mjs.map +1 -0
- package/dist/{SubscribeButtons-zlRDGEzS.mjs → SubscribeButtons-IpzqDGIn.mjs} +3 -3
- package/dist/SubscribeButtons-yA2wowFc.mjs.map +1 -0
- package/dist/SwiperList-BNODHhLF.mjs.map +1 -0
- package/dist/SwiperList-Cqklwlg9.mjs.map +1 -0
- package/dist/{SwiperList-BlF3rPq5.mjs → SwiperList-O8nUg87R.mjs} +1 -1
- package/dist/TagList-4RDriU1J.mjs.map +1 -0
- package/dist/TagList-B5JPfT6j.mjs.map +1 -0
- package/dist/TagList-DVjqXiaA.mjs.map +1 -0
- package/dist/{TagList-BBHyaKp-.mjs → TagList-V9fAFATL.mjs} +2 -2
- package/dist/TagPage-BOsz6Bot.mjs.map +1 -0
- package/dist/TagPage-CALmJwxW.mjs.map +1 -0
- package/dist/{TagPage-DLpNBBjP.mjs → TagPage-CsFwN4sE.mjs} +3 -3
- package/dist/TagPage-DMuxYu6y.mjs.map +1 -0
- package/dist/{TopBar-CLWWRgr7.mjs → TopBar-0oG6YPlW.mjs} +37 -37
- package/dist/TopBar-CUCBss7X.mjs.map +1 -0
- package/dist/TopBar-CeQQ1hgH.mjs.map +1 -0
- package/dist/TopBar-DdxThCLR.mjs.map +1 -0
- package/dist/{UserButtonContent-BR3Rlqwp.mjs → UserButtonContent--VK68UsY.mjs} +6 -6
- package/dist/UserButtonContent-067qGenf.mjs.map +1 -0
- package/dist/UserButtonContent-Dqgyrgzv.mjs.map +1 -0
- package/dist/VideoModuleBox-9QgBI-Q-.mjs.map +1 -0
- package/dist/{VideoModuleBox-DxYJVwy3.mjs → VideoModuleBox-Bcqman6a.mjs} +1 -1
- package/dist/VideoModuleBox-BrVK2bDZ.mjs.map +1 -0
- package/dist/VideoModuleBox-DWO47_bZ.mjs.map +1 -0
- package/dist/VideoPage-4MB4zmnA.mjs.map +1 -0
- package/dist/VideoPage-BDGvtr1o.mjs.map +1 -0
- package/dist/{VideoPage-BaeTduNB.mjs → VideoPage-BjlaP2DU.mjs} +6 -6
- package/dist/VideoPage-C-yjvvhl.mjs.map +1 -0
- package/dist/VideoPage-C0_t7XMC.mjs.map +1 -0
- package/dist/VideoPage-CIDpzbkb.mjs.map +1 -0
- package/dist/VideoPage-D2V1oXGC.mjs.map +1 -0
- package/dist/VideoPage-DEJSfeFy.mjs.map +1 -0
- package/dist/{classicApi-pmODlqv5.mjs → classicApi-CGipMqf7.mjs} +267 -256
- package/dist/classicApi-CW1Z-HoF.mjs.map +1 -0
- package/dist/classicApi-OzToKuW1.mjs.map +1 -0
- package/dist/{downloadHelper-BAI-eqgA.mjs → downloadHelper-C3QooCxr.mjs} +1 -1
- package/dist/downloadHelper-D7dUpp5l.mjs.map +1 -0
- package/dist/downloadHelper-DwV3Mmd3.mjs.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.mjs +183 -183
- package/dist/src/components/form/ClassicDatePicker.vue.d.ts +24 -14
- package/dist/src/components/form/OctopusMultiselect.vue.d.ts +2 -0
- package/dist/src/i18n.d.ts +2 -0
- package/dist/tests.mjs +2 -2
- package/dist/useAdvancedParamInit-BKw9VZ53.mjs.map +1 -0
- package/dist/useAdvancedParamInit-CyRmbqqe.mjs.map +1 -0
- package/dist/{useAdvancedParamInit-Bgvt8758.mjs → useAdvancedParamInit-D5roUdHI.mjs} +10 -10
- package/dist/useDayjs-BKBB00TF.mjs.map +1 -0
- package/dist/useDayjs-UQLGUbw5.mjs.map +1 -0
- package/dist/{useDayjs-DGb3L4kJ.mjs → useDayjs-VUs19G9T.mjs} +1 -1
- package/dist/useErrorHandler-BKN3lhJ5.mjs.map +1 -0
- package/dist/useErrorHandler-C3XnRTmp.mjs.map +1 -0
- package/dist/{useErrorHandler-D9W2BURn.mjs → useErrorHandler-x9sjDYSz.mjs} +1 -1
- package/dist/useImageProxy-AEcmDpvW.mjs.map +1 -0
- package/dist/useImageProxy-BzTG_GCn.mjs.map +1 -0
- package/dist/{useImageProxy-8ndy_oTo.mjs → useImageProxy-CCpDzPmQ.mjs} +1 -1
- package/dist/useOrgaComputed-4PduqYTq.mjs.map +1 -0
- package/dist/useOrgaComputed-C2n0FBbv.mjs.map +1 -0
- package/dist/{useOrgaComputed-CBJ5sDOm.mjs → useOrgaComputed-D81Jihm-.mjs} +2 -2
- package/dist/{usePlayerLogicProgress-C2L7cMdd.mjs → usePlayerLogicProgress-BybmSAcs.mjs} +2 -2
- package/dist/usePlayerLogicProgress-CKoCod6g.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-DZaPRo6p.mjs.map +1 -0
- package/dist/usePodcastView-B-2HPFAo.mjs.map +1 -0
- package/dist/{usePodcastView-CoDJJr6Y.mjs → usePodcastView-CkM-n6iO.mjs} +3 -3
- package/dist/usePodcastView-jdYTK1cW.mjs.map +1 -0
- package/dist/{usePresentationItem-DZZVm3hh.mjs → usePresentationItem-CLEGZwI3.mjs} +3 -3
- package/dist/usePresentationItem-Com4i40U.mjs.map +1 -0
- package/dist/usePresentationItem-OpMean0v.mjs.map +1 -0
- package/dist/{useRights-DOXtpjv5.mjs → useRights-BI2tXXjR.mjs} +1 -1
- package/dist/useRights-Bsv9hr7w.mjs.map +1 -0
- package/dist/useRights-DfudFDI6.mjs.map +1 -0
- package/dist/{useRubriquesFilterComputed-DoUOqOrJ.mjs → useRubriquesFilterComputed-D1yqLnK4.mjs} +1 -1
- package/dist/useRubriquesFilterComputed-DGDJp2gc.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-NNE-FElk.mjs.map +1 -0
- package/dist/{useRubriquesFilterParam-BE8BbmAQ.mjs → useRubriquesFilterParam-2eMd5ND7.mjs} +1 -1
- package/dist/useRubriquesFilterParam-DE5dYl6c.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-DXYD4G0D.mjs.map +1 -0
- package/dist/useSharePlatforms-CrQ8r5vT.mjs.map +1 -0
- package/dist/useSharePlatforms-D124fJ_v.mjs.map +1 -0
- package/dist/{useSharePlatforms-ZWYDJZBy.mjs → useSharePlatforms-sXgVxsL5.mjs} +5 -5
- package/dist/{useSimplePageParam-DFKSEyiE.mjs → useSimplePageParam-BrtYXOUt.mjs} +1 -1
- package/dist/useSimplePageParam-CruL7rLG.mjs.map +1 -0
- package/dist/useSimplePageParam-SaBaPhb8.mjs.map +1 -0
- package/dist/{useTranslation-Dr7KU7Y4.mjs → useTranslation-BVQwv02Q.mjs} +9 -9
- package/dist/useTranslation-Bf2zP_6C.mjs.map +1 -0
- package/dist/useTranslation-BuhzZoI8.mjs.map +1 -0
- package/dist/useTranslation-OWqckMEl.mjs.map +1 -0
- package/dist/usefetchRadioData-D01ws733.mjs.map +1 -0
- package/dist/usefetchRadioData-DDRPoD4s.mjs.map +1 -0
- package/dist/{usefetchRadioData-SLWfXkYt.mjs → usefetchRadioData-zyQNqiV3.mjs} +1 -1
- package/package.json +1 -1
- package/src/components/composable/useTranslation.ts +2 -2
- package/src/components/display/sharing/QrCode.vue +63 -64
- package/src/components/form/ClassicDatePicker.vue +32 -20
- package/src/components/form/OctopusMultiselect.vue +3 -4
- package/src/components/misc/ClassicPopover.vue +1 -1
- package/src/components/misc/player/video/PlayerVideoHls.vue +160 -159
- package/src/i18n.ts +38 -29
- package/tests/components/form/ClassicDatePicker.spec.ts +32 -0
- package/tests/components/form/OctopusMultiselect.spec.ts +5 -4
- package/dist/ClassicDatePicker-B7UA9CqR.mjs +0 -187
- package/dist/QrCode-DuScZ7PD.mjs +0 -105
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionInlineList-CdHQBjfR.mjs","names":["classicApi","_resolveComponent","_openBlock","_createElementBlock","_toDisplayString","_createCommentVNode","_createVNode","_createBlock","_withCtx","_normalizeClass","_createTextVNode","_sfc_main"],"sources":["../src/components/display/emission/EmissionInlineList.vue","../src/components/display/emission/EmissionInlineList.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionInlineList-CnA0d_k2.mjs","names":["classicApi","_resolveComponent","_openBlock","_createElementBlock","_toDisplayString","_createCommentVNode","_createVNode","_createBlock","_withCtx","_normalizeClass","_createTextVNode","_sfc_main"],"sources":["../src/components/display/emission/EmissionInlineList.vue","../src/components/display/emission/EmissionInlineList.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionInlineList-DLUvPBNl.mjs","names":["classicApi","_resolveComponent","_openBlock","_createElementBlock","_toDisplayString","_createCommentVNode","_createVNode","_createBlock","_withCtx","_normalizeClass","_createTextVNode","_sfc_main"],"sources":["../src/components/display/emission/EmissionInlineList.vue","../src/components/display/emission/EmissionInlineList.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column list-episode\">\n <h2 v-if=\"title\" class=\"mb-0\">\n {{ title }}\n </h2>\n <ClassicLoading\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n />\n <SwiperList\n v-if=\"(displayRubriquage && rubriques) || !(displayRubriquage && loaded)\"\n :size-item-overload=\"sizeItemOverload\"\n :list-object=\"allEmissions\"\n >\n <template #octopusSlide=\"{ option }\">\n <EmissionPresentationItem\n v-if=\"emissionDisplay === 'simple'\"\n :emission=\"option\"\n class=\"inline-list-element\"\n is-description\n :is-vertical=\"emissionVertical\"\n />\n\n <EmissionPlayerItem\n v-else\n class=\"flex-shrink-0 item-phone-margin\"\n :emission=\"option\"\n :class=\"[mainRubriquage(option)]\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(option)\"\n />\n </template>\n </SwiperList>\n <router-link\n v-if=\"href\"\n :to=\"href\"\n class=\"btn btn-primary align-self-center w-fit-content m-4\"\n >\n {{ buttonText }}\n </router-link>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SwiperList from \"../list/SwiperList.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport EmissionPresentationItem from \"./EmissionPresentationItem.vue\";\nimport EmissionPlayerItem from \"./EmissionPlayerItem.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { computed, onMounted, Ref, ref } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { RouteParams } from \"vue-router\";\n\n//Props \nconst props = defineProps<{\n /**\n * Change style of emission item.\n * Simple is what is seen everywhere, player displays a few podcasts that can\n * be played directly\n */\n emissionDisplay?: 'player'|'simple';\n /** When set to true with the 'simple' emissionDisplay, display emissions vertically */\n emissionVertical?: boolean;\n href?: string|RouteParams;\n buttonText?: string;\n /** Number of podcasts shown when using player display */\n nbPodcasts?: number;\n /** Size, in **rem**, of the emission items */\n itemSize?: number;\n /** Filter on organization */\n organisationId?: string;\n /** Filter on rubrique */\n rubriqueId?: number;\n /** Filter on rubriquage */\n rubriquageId?: number;\n /** Title of the section */\n title?: string;\n}>();\n\n\n//Data \nconst loading = ref(true);\nconst allEmissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\n\n\n//Computed\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\n \nconst sizeItemOverload = computed(() => {\n if (props.itemSize) {\n return props.itemSize;\n } else if (props.emissionDisplay === 'simple') {\n return 25;\n } else {\n return undefined;\n }\n})\n\nonMounted(()=>{\n fetchNext();\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchNext(): Promise<void> {\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: {\n first: 0,\n size: 12,\n organisationId: props.organisationId,\n rubriqueId: props.rubriqueId ? [props.rubriqueId] : [],\n rubriquageId: props.rubriquageId ? [props.rubriquageId] : [],\n sort: \"LAST_PODCAST_DESC\",\n },\n specialTreatement: true,\n });\n allEmissions.value = allEmissions.value.concat(\n data.result.filter((em: Emission | null) => null !== em),\n );\n loading.value = false;\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\n\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n ) {\n return undefined;\n }\n\n const rubrique = rubriques.value.find(\n (element: Rubrique) =>\n element.rubriqueId &&\n emission.rubriqueIds.includes(element.rubriqueId) &&\n element.rubriquageId === displayRubriquage.value,\n );\n if (rubrique) {\n return rubrique.name;\n }\n}\n\nfunction mainRubriquage(emission: Emission): string {\n return state.emissionsPage.mainRubrique &&\n emission.rubriqueIds?.includes(state.emissionsPage.mainRubrique)\n ? \"partenaireRubrique\"\n : \"\";\n}\n</script>\n\n<style scoped lang=\"scss\">\n.list-episode {\n padding: 2rem 0 1rem;\n\n @media (width <= 450px) {\n padding: 0.5rem 0 1rem;\n }\n\n h2 {\n margin-bottom: 1rem;\n }\n}\n\n.inline-list-element {\n @media (width <= 960px) {\n height: 334px;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as e } from "./ClassicLoading-CXfMjpyl.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { j as t, t as n } from "./classicApi-CGipMqf7.mjs";
|
|
3
3
|
import { t as r } from "./_plugin-vue_export-helper-B3ysoDQm.mjs";
|
|
4
|
-
import { t as i } from "./useErrorHandler-
|
|
5
|
-
import { t as a } from "./SwiperList-
|
|
6
|
-
import { t as o } from "./EmissionPresentationItem-
|
|
7
|
-
import { t as s } from "./EmissionPlayerItem-
|
|
4
|
+
import { t as i } from "./useErrorHandler-x9sjDYSz.mjs";
|
|
5
|
+
import { t as a } from "./SwiperList-O8nUg87R.mjs";
|
|
6
|
+
import { t as o } from "./EmissionPresentationItem-DYDwfqwp.mjs";
|
|
7
|
+
import { t as s } from "./EmissionPlayerItem-BLIdolRe.mjs";
|
|
8
8
|
import { computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createTextVNode as f, createVNode as p, defineComponent as m, normalizeClass as h, onMounted as g, openBlock as _, ref as v, resolveComponent as y, toDisplayString as b, unref as x, withCtx as S } from "vue";
|
|
9
9
|
import { useI18n as C } from "vue-i18n";
|
|
10
10
|
//#region src/components/display/emission/EmissionInlineList.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionItem-B39oFnXF.mjs","names":["_hoisted_1","_hoisted_2","_sfc_render","_openBlock","_createElementBlock","_createElementVNode","_renderSlot","displayHelper","classicApi","_resolveComponent","_resolveDirective","_openBlock","_createElementBlock","_createVNode","_withCtx","_withDirectives","_createElementVNode","_createBlock","_createTextVNode","_toDisplayString","_createCommentVNode","_sfc_main"],"sources":["../src/components/misc/ClassicImageBanner.vue","../src/components/display/emission/EmissionItem.vue","../src/components/display/emission/EmissionItem.vue"],"sourcesContent":["<!-- A simple component to display a blur & a banner on an image -->\n<template>\n <div class=\"blur-with-banner\">\n <div class=\"banner\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup>\n</script>\n\n<style lang=\"scss\" scoped>\n.blur-with-banner {\n position: absolute;\n inset: 0;\n background-color:var(--octopus-background-transparent);\n // Allow pointer events to go through (allow click on image beneath blur)\n pointer-events: none;\n\n .banner {\n text-align: center;\n width: 100%;\n font-size: 0.6rem;\n padding: 0.2rem 0;\n color: white;\n background: black;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n }\n}\n</style>","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionItem-BkPLFhAo.mjs","names":["_hoisted_1","_hoisted_2","_sfc_render","_openBlock","_createElementBlock","_createElementVNode","_renderSlot","displayHelper","classicApi","_resolveComponent","_resolveDirective","_openBlock","_createElementBlock","_createVNode","_withCtx","_withDirectives","_createElementVNode","_createBlock","_createTextVNode","_toDisplayString","_createCommentVNode","_sfc_main"],"sources":["../src/components/misc/ClassicImageBanner.vue","../src/components/display/emission/EmissionItem.vue","../src/components/display/emission/EmissionItem.vue"],"sourcesContent":["<!-- A simple component to display a blur & a banner on an image -->\n<template>\n <div class=\"blur-with-banner\">\n <div class=\"banner\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup>\n</script>\n\n<style lang=\"scss\" scoped>\n.blur-with-banner {\n position: absolute;\n inset: 0;\n background-color:var(--octopus-background-transparent);\n // Allow pointer events to go through (allow click on image beneath blur)\n pointer-events: none;\n\n .banner {\n text-align: center;\n width: 100%;\n font-size: 0.6rem;\n padding: 0.2rem 0;\n color: white;\n background: black;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n }\n}\n</style>","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionItem-CjAUdLb7.mjs","names":["_hoisted_1","_hoisted_2","_sfc_render","_openBlock","_createElementBlock","_createElementVNode","_renderSlot","displayHelper","classicApi","_resolveComponent","_resolveDirective","_openBlock","_createElementBlock","_createVNode","_withCtx","_withDirectives","_createElementVNode","_createBlock","_createTextVNode","_toDisplayString","_createCommentVNode","_sfc_main"],"sources":["../src/components/misc/ClassicImageBanner.vue","../src/components/display/emission/EmissionItem.vue","../src/components/display/emission/EmissionItem.vue"],"sourcesContent":["<!-- A simple component to display a blur & a banner on an image -->\n<template>\n <div class=\"blur-with-banner\">\n <div class=\"banner\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup>\n</script>\n\n<style lang=\"scss\" scoped>\n.blur-with-banner {\n position: absolute;\n inset: 0;\n background-color:var(--octopus-background-transparent);\n // Allow pointer events to go through (allow click on image beneath blur)\n pointer-events: none;\n\n .banner {\n text-align: center;\n width: 100%;\n font-size: 0.6rem;\n padding: 0.2rem 0;\n color: white;\n background: black;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n }\n}\n</style>","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n","<template>\n <article class=\"classic-element-container\">\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: emission.name })\"\n class=\"d-flex flex-grow-1 text-dark\"\n >\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n class=\"img-box\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name: emission.name })\"\n >\n <ClassicImageBanner v-if=\"!emissionVisible\">\n {{ t('Emission - Not available for listeners') }}\n </ClassicImageBanner>\n\n <div class=\"classic-element-text\">\n <div class=\"d-flex align-items-center element-name\">\n <AlertIcon\n v-if=\"!activeEmission && !isPodcastmaker && editRight\"\n :size=\"16\"\n class=\"text-danger me-1\"\n :title=\"t('Emission have not podcasts')\"\n />\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ emission.name }}\n </div>\n <div\n ref=\"descriptionEmissionContainer\"\n class=\"element-description htms-wysiwyg-content\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n ref=\"descriptionEmission\"\n v-html=\"description\"\n />\n <!-- eslint-enable -->\n </div>\n <router-link\n v-if=\"!isPodcastmaker\"\n class=\"text-dark mt-auto py-1\"\n :to=\"{\n name: 'productor',\n params: { productorId: emission.orga.id },\n }\"\n >\n © {{ emission.orga.name }}\n </router-link>\n </div>\n </router-link>\n </article>\n</template>\n\n<script setup lang=\"ts\">\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport {useOrgaComputed} from \"../../composable/useOrgaComputed\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport classicApi from \"../../../api/classicApi\";\nimport {useImageProxy} from \"../../composable/useImageProxy\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, onBeforeMount, onMounted, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport ClassicImageBanner from '../../misc/ClassicImageBanner.vue';\n\nimport { useI18n } from \"vue-i18n\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\n\n//Props \nconst props = defineProps<{\n /** The emission to display */\n emission: Emission;\n}>();\n\n//Data \nconst activeEmission = ref(true);\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights } = useOrgaComputed();\n\n//Computed\nconst editRight = computed(() => isEditRights(props.emission.orga.id));\nconst emissionVisible = computed(() => {\n return props.emission.visible !== false;\n});\n\nonBeforeMount(()=>{\n if (!editRight.value) {\n return;\n }\n hasPodcast();\n});\n\nonMounted(()=>{\n const emissionDesc = useTemplateRef('descriptionEmission')?.value as HTMLElement;\n const emissionDescContainer = useTemplateRef('descriptionEmissionContainer')?.value as HTMLElement;\n if (\n null !== emissionDesc &&\n null !== emissionDescContainer &&\n emissionDesc.clientHeight > emissionDescContainer.clientHeight\n ) {\n emissionDescContainer.classList.add(\"after-element-description\");\n }\n})\n\nconst { isPhone } = useResizePhone();\nconst description = computed((): string => {\n let str = props.emission.description;\n if (!str) {\n return '';\n }\n\n // Truncate description on phones\n if (isPhone.value === true) {\n const pattern = /^(.+?<\\/p>)/;\n const matches = str.match(pattern);\n if (matches && matches.length === 2) {\n str = matches[1];\n }\n }\n\n return urlify(str);\n});\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nasync function hasPodcast(): Promise<void> {\n const data = await classicApi.fetchData<ListClassicReturn<Podcast>>({\n api: 0,\n path: \"podcast/search\",\n parameters: {\n emissionId: props.emission.emissionId,\n first: 0,\n size: 0,\n includeStatus: [\"READY\", \"PROCESSING\"],\n },\n specialTreatement: true,\n });\n if (0 === data.count) {\n activeEmission.value = false;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\narticle {\n max-height: 254px; // Image size + a few pixels for border\n\n // Adjust display for small screens\n @media (width <= 960px) {\n max-height: 500px;\n\n a {\n flex-direction: column !important;\n flex-wrap: nowrap !important;\n }\n\n .element-name {\n font-size: 1rem;\n }\n\n .element-description {\n font-size: 0.7rem;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;AAES,IAAAA,eAAA,EAAA,OAAM,mBAAkB;AACpB,IAAAC,eAAA,EAAA,OAAM,SAAQ;;CADvB,OAAAE,UAAA,GAAAC,mBAIM,OAJNJ,cAIM,CAHFK,mBAEM,OAFNJ,cAEM,CADFK,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,IAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;EC8EpB,MAAM,QAAQ;EAMd,MAAM,iBAAiB,IAAI,IAAI;EAG/B,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,EAAE,qBAAqB,cAAc;EAC3C,MAAM,EAAE,gBAAgB,iBAAiB,gBAAgB;EAGzD,MAAM,YAAY,eAAe,aAAa,MAAM,SAAS,KAAK,EAAE,CAAC;EACrE,MAAM,kBAAkB,eAAe;GACrC,OAAO,MAAM,SAAS,YAAY;EACpC,CAAC;EAED,oBAAkB;GAChB,IAAI,CAAC,UAAU,OACb;GAEF,WAAW;EACb,CAAC;EAED,gBAAc;GACZ,MAAM,eAAe,eAAe,qBAAqB,CAAC,EAAE;GAC5D,MAAM,wBAAwB,eAAe,8BAA8B,CAAC,EAAE;GAC9E,IACE,SAAS,gBACT,SAAS,yBACT,aAAa,eAAe,sBAAsB,cAElD,sBAAsB,UAAU,IAAI,2BAA2B;EAEnE,CAAC;EAED,MAAM,EAAE,YAAY,eAAe;EACnC,MAAM,cAAc,eAAuB;GACzC,IAAI,MAAM,MAAM,SAAS;GACzB,IAAI,CAAC,KACH,OAAO;GAIT,IAAI,QAAQ,UAAU,MAAM;IAE1B,MAAM,UAAU,IAAI,MAAM,aAAO;IACjC,IAAI,WAAW,QAAQ,WAAW,GAChC,MAAM,QAAQ;GAElB;GAEA,OAAO,OAAO,GAAG;EACnB,CAAC;EAGD,SAAS,OAAO,MAAsB;GACpC,OAAOC,sBAAc,OAAO,IAAI;EAClC;EACA,eAAe,aAA4B;GAYzC,IAAI,OAAM,MAXSC,mBAAW,UAAsC;IAClE,KAAK;IACL,MAAM;IACN,YAAY;KACV,YAAY,MAAM,SAAS;KAC3B,OAAO;KACP,MAAM;KACN,eAAe,CAAC,SAAS,YAAY;IACvC;IACA,mBAAmB;GACrB,CAAC,EAAA,CACc,OACb,eAAe,QAAQ;EAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7JW,IAAA,aAAA,EAAA,OAAM,4BAA2B;;AAsBjC,IAAA,aAAA,EAAA,OAAM,uBAAsB;AAC1B,IAAA,aAAA,EAAA,OAAM,yCAAwC;;CAejD,KAAI;CACJ,OAAM;;;;;;CAvCd,OAAAG,UAAA,GAAAC,mBA4DU,WA5DV,YA4DU,CA3DRC,YA0Dc,wBAAA;EAzDX,IAAE;;GAA4D,QAAA,EAAA,YAAA,OAAA,SAAS,WAAU;;EAIjF,OAAO,OAAA,EAAC,oBAAA,EAAA,MAA6B,OAAA,SAAS,KAAI,CAAA;EACnD,OAAM;;EAEN,SAAAC,cAQC;GARDC,eAAAC,mBAQC,OAAA;IANC,OAAM;IACN,QAAO;IACP,OAAM;IACN,eAAY;IACZ,KAAI;IACH,OAAO,OAAA,EAAC,uBAAA,EAAA,MAAgC,OAAA,SAAS,KAAI,CAAA;GAN9C,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,CAAA,iBAAA,OAAA,iBAAiB,OAAA,SAAS,UAAQ,KAAA,CAAA,CAAA,CAAA;GAQjB,CAAA,OAAA,mBAA3BL,UAAA,GAAAM,YAEqB,OAAA,uBAAA,EAAA,KAAA,EAAA,GAAA;IADnB,SAAAH,cAAiD,CAA9CI,gBAAAC,gBAAA,OAAA,EAAC,wCAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;;GAGNH,mBAoCM,OApCN,YAoCM;IAnCJA,mBAaM,OAbN,YAaM;KAXK,CAAA,OAAA,kBAAc,CAAK,OAAA,kBAAkB,OAAA,aAD9CL,UAAA,GAAAM,YAKE,OAAA,cAAA;;MAHC,MAAM;MACP,OAAM;MACL,OAAO,OAAA,EAAC,4BAAA;;KAEXJ,YAIE,OAAA,oBAAA;MAHA,QAAA;MACC,UAAU,OAAA;MACX,QAAO;;KACPK,gBAAA,MACFC,gBAAG,OAAA,SAAS,IAAI,GAAA,CAAA;;IAElBH,mBAUM,OAVN,YAUM;KANJI,mBAAA,gCAAA;KACAJ,mBAGE,OAAA;MAFA,KAAI;MACJ,WAAQ,OAAA;;KAEVI,mBAAA,iBAAA;;IAGO,CAAA,OAAA,kBADTT,UAAA,GAAAM,YASc,wBAAA;;KAPZ,OAAM;KACL,IAAE;;MAAsE,QAAA,EAAA,aAAA,OAAA,SAAS,KAAK,GAAE;;;KAI1F,SAAAH,cACG,CADHI,gBAAA,QACGC,gBAAG,OAAA,SAAS,KAAK,IAAI,GAAA,CAAA,CAAA,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { t as e } from "./classicApi-
|
|
1
|
+
import { t as e } from "./classicApi-CGipMqf7.mjs";
|
|
2
2
|
import { t } from "./useResizePhone-4hSkK5pa.mjs";
|
|
3
3
|
import { t as n } from "./_plugin-vue_export-helper-B3ysoDQm.mjs";
|
|
4
4
|
import { t as r } from "./displayHelper-DQtoqc_6.mjs";
|
|
5
|
-
import { t as i } from "./useImageProxy-
|
|
6
|
-
import { t as a } from "./useOrgaComputed-
|
|
7
|
-
import { t as o } from "./RightsIndicator-
|
|
5
|
+
import { t as i } from "./useImageProxy-CCpDzPmQ.mjs";
|
|
6
|
+
import { t as a } from "./useOrgaComputed-D81Jihm-.mjs";
|
|
7
|
+
import { t as o } from "./RightsIndicator-CPzWpH5Z.mjs";
|
|
8
8
|
import { computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, createVNode as p, defineComponent as m, onBeforeMount as h, onMounted as g, openBlock as _, ref as v, renderSlot as y, resolveComponent as b, resolveDirective as x, toDisplayString as S, unref as C, useTemplateRef as w, withCtx as T, withDirectives as E } from "vue";
|
|
9
9
|
import { useI18n as D } from "vue-i18n";
|
|
10
10
|
import O from "vue-material-design-icons/Alert.vue";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionList-B0UntYdC.mjs","names":["classicApi","_resolveComponent","_openBlock","_createBlock","_withCtx","_createElementBlock","_Fragment","_renderList","_createVNode","_createTextVNode","_toDisplayString","_createCommentVNode","_withDirectives","_normalizeClass","_vShow","_sfc_main"],"sources":["../src/components/display/emission/EmissionList.vue","../src/components/display/emission/EmissionList.vue"],"sourcesContent":["<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionList-BQSI4xbi.mjs","names":["classicApi","_resolveComponent","_openBlock","_createBlock","_withCtx","_createElementBlock","_Fragment","_renderList","_createVNode","_createTextVNode","_toDisplayString","_createCommentVNode","_withDirectives","_normalizeClass","_vShow","_sfc_main"],"sources":["../src/components/display/emission/EmissionList.vue","../src/components/display/emission/EmissionList.vue"],"sourcesContent":["<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as e } from "./rolldown-runtime-Dy4uBu1J.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { t as i } from "./ListPaginate-
|
|
4
|
-
import { t as a } from "./useErrorHandler-
|
|
2
|
+
import { j as t, r as n, t as r } from "./classicApi-CGipMqf7.mjs";
|
|
3
|
+
import { t as i } from "./ListPaginate-BPdnBcpe.mjs";
|
|
4
|
+
import { t as a } from "./useErrorHandler-x9sjDYSz.mjs";
|
|
5
5
|
import { n as o } from "./emission-CQ1VuxRc.mjs";
|
|
6
6
|
import { t as s } from "./ClassicLazy-CDhWc5-4.mjs";
|
|
7
7
|
import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createTextVNode as p, createVNode as m, defineAsyncComponent as h, defineComponent as g, normalizeClass as _, onMounted as v, openBlock as y, ref as b, renderList as x, resolveComponent as S, toDisplayString as C, unref as w, vShow as T, watch as E, withCtx as D, withDirectives as O } from "vue";
|
|
@@ -86,7 +86,7 @@ var A = {
|
|
|
86
86
|
}
|
|
87
87
|
},
|
|
88
88
|
setup(e) {
|
|
89
|
-
let g = h(() => import("./EmissionItem-
|
|
89
|
+
let g = h(() => import("./EmissionItem-Dm_IGNkw.mjs")), M = h(() => import("./EmissionPlayerItem-BLIdolRe.mjs").then((e) => e.n)), N = e, P = b(!0), F = b(N.first), I = b(N.size), L = b(0), R = b(0), z = b(!1), B = b([]), V = b(void 0), { t: H } = k(), { handle403: U } = a(), W = n(), G = l(() => z.value ? B.value : B.value.slice(F.value, Math.min(F.value + I.value, L.value))), K = l(() => t.emissionsPage.rubriquage), q = l(() => `${N.first}|${N.size}`), J = l(() => `${N.organisationId}|${N.query}|${N.monetisable}|${N.includeHidden}|\
|
|
90
90
|
${N.iabId}|${N.rubriqueId}|${N.rubriquageId}|${N.before}|\
|
|
91
91
|
${N.after}|${N.sort}|${N.noRubriquageId}|${N.beneficiaries}|\
|
|
92
92
|
${N.emissionGroups}`), Y = l(() => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionList-C7lQBdlW.mjs","names":["classicApi","_resolveComponent","_openBlock","_createBlock","_withCtx","_createElementBlock","_Fragment","_renderList","_createVNode","_createTextVNode","_toDisplayString","_createCommentVNode","_withDirectives","_normalizeClass","_vShow","_sfc_main"],"sources":["../src/components/display/emission/EmissionList.vue","../src/components/display/emission/EmissionList.vue"],"sourcesContent":["<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n","<template>\n <ListPaginate\n id=\"emissionListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && emissions.length > 1\n ? t('Number emissions', { nb: displayCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading emissions ...') : undefined\"\n :player-responsive=\"true\"\n >\n <template #list>\n <div v-if=\"!state.emissionsPage.itemPlayer\" class=\"octopus-element-list two-items-list\">\n <ClassicLazy\n v-for=\"e in displayArray\"\n :key=\"e.emissionId\"\n :min-height=\"250\"\n class=\"d-flex flex-column flex-grow-1\"\n >\n <EmissionItem v-if=\"0 !== e.emissionId\" :emission=\"e\" />\n <template #preview>\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: e.emissionId },\n }\"\n :title=\"t('Series name page', { name: e.name })\"\n >\n {{ e.name }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n <div\n v-else\n v-show=\"(displayRubriquage && rubriques) || !displayRubriquage\"\n class=\"d-flex flex-wrap justify-content-around\"\n >\n <template v-for=\"e in displayArray\" :key=\"e.emissionId\">\n <EmissionPlayerItem\n v-if=\"0 !== e.emissionId\"\n :emission=\"e\"\n class=\"m-3 flex-shrink-0\"\n :class=\"mainRubriquage(e)\"\n :nb-podcasts=\"nbPodcasts\"\n :rubrique-name=\"rubriquesId(e)\"\n />\n </template>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Emission, emptyEmissionData } from \"../../../stores/class/general/emission\";\nimport { Rubrique } from \"../../../stores/class/rubrique/rubrique\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onMounted } from \"vue\";\nimport { FetchParam } from \"../../../stores/class/general/fetchParam\";\nimport { AxiosError } from \"axios\";\nimport { Rubriquage } from \"../../../stores/class/rubrique/rubriquage\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { ListClassicReturn } from \"../../../stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\nimport { EmissionGroup } from \"../../../api/groupsApi\";\nconst EmissionItem = defineAsyncComponent(() => import(\"./EmissionItem.vue\"));\nconst EmissionPlayerItem = defineAsyncComponent(\n () => import(\"./EmissionPlayerItem.vue\"),\n);\n\n//Props \nconst props = defineProps({\n first: { default: 0, type: Number },\n size: { default: 30, type: Number },\n query: { default: undefined, type: String },\n iabId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n monetisable: { default: \"UNDEFINED\", type: String },\n before: { default: undefined, type: String },\n after: { default: undefined, type: String },\n sort: { default: \"DATE\", type: String },\n showCount: { default: false, type: Boolean },\n includeHidden: { default: false, type: Boolean },\n rubriqueId: { default: () => [], type: Array as () => Array<number> },\n rubriquageId: { default: () => [], type: Array as () => Array<number> },\n noRubriquageId: { default: () => [], type: Array as () => Array<number> },\n nbPodcasts: { default: undefined, type: Number },\n /** The beneficiaries to filter on */\n beneficiaries: { default: null, type: Array as () => Array<string> },\n /** The emission groups to filter on */\n emissionGroups: { default: null, type: Array as () => Array<EmissionGroup> }\n})\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst displayCount = ref(0);\nconst isMobile = ref(false);\nconst emissions: Ref<Array<Emission>> = ref([]);\nconst rubriques: Ref<Array<Rubrique> | undefined> = ref(undefined);\n \n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value) {\n return emissions.value;\n }\n return emissions.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst displayRubriquage = computed(() => state.emissionsPage.rubriquage);\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\n/** Computed property to track for configuration changes */\nconst changed = computed(() => {\n return `${props.organisationId}|${props.query}|${props.monetisable}|${props.includeHidden}|\\\n ${props.iabId}|${props.rubriqueId}|${props.rubriquageId}|${props.before}|\\\n ${props.after}|${props.sort}|${props.noRubriquageId}|${props.beneficiaries}|\\\n ${props.emissionGroups}`;\n});\nconst sortText = computed(() => {\n let textSort = \"\";\n switch (props.sort) {\n case \"SCORE\":\n textSort = \" \" + t(\"sort by score\");\n break;\n case \"LAST_PODCAST_DESC\":\n textSort = \" \" + t(\"sort by date\");\n break;\n case \"NAME\":\n textSort = \" \" + t(\"sort by alphabetical\");\n break;\n default:\n textSort = \" \" + t(\"sort by date\");\n break;\n }\n return textSort.replace(\"triés\", \"triées\");\n});\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\n\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () =>fetchContent(true));\nwatch(dsize, () =>fetchContent(true));\nwatch(dfirst, () =>{\n if (\n !emissions.value[dfirst.value] ||\n 0 === emissions.value[dfirst.value].emissionId\n ) {\n fetchContent(false);\n }\n});\n\n\nonMounted(()=>{\n fetchContent(false);\n if (displayRubriquage.value) {\n fetchRubriques();\n }\n})\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n const param: FetchParam = {\n first: reset? 0: dfirst.value,\n size: dsize.value,\n query: props.query,\n groupId: props.emissionGroups?.map(g => g.groupId),\n organisationId: organisation.value,\n monetisable: props.monetisable,\n iabId: props.iabId,\n before: props.before,\n after: props.after,\n sort: props.sort,\n noRubriquageId: props.noRubriquageId.length\n ? props.noRubriquageId\n : undefined,\n rubriqueId: props.rubriqueId.length ? props.rubriqueId : undefined,\n rubriquageId: props.rubriquageId.length ? props.rubriquageId : undefined,\n includeHidden: props.includeHidden,\n beneficiary: props.beneficiaries ?? undefined\n };\n\n // When fetching hidden episodes, also fetch hidden emissions\n if (props.includeHidden === true) {\n param.visible = 'ALL';\n } else {\n param.visible = 'VISIBLE';\n }\n\n // TODO use emissionGroups\n\n try {\n const data = await classicApi.fetchData<ListClassicReturn<Emission>>({\n api: 0,\n path: \"emission/search\",\n parameters: param,\n specialTreatement: true,\n });\n afterFetching(reset, data);\n } catch (error) {\n handle403(error as AxiosError);\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Emission>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n emissions.value.length = 0;\n }\n if (dfirst.value > emissions.value.length) {\n for (\n let i = emissions.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n emissions.value.push(emptyEmissionData());\n }\n }\n displayCount.value = data.count;\n const responseEmissions = data.result.filter((e: Emission | null) => {\n if (null === e) {\n displayCount.value--;\n }\n return null !== e;\n });\n emissions.value = emissions.value\n .slice(0, dfirst.value)\n .concat(responseEmissions)\n .concat(\n emissions.value.slice(dfirst.value + dsize.value, emissions.value.length),\n );\n totalCount.value = data.count;\n loading.value = false;\n}\nasync function fetchRubriques(): Promise<void> {\n const data = await classicApi.fetchData<Rubriquage>({\n api: 0,\n path: \"rubriquage/\" + displayRubriquage.value,\n });\n rubriques.value = data.rubriques;\n}\nfunction mainRubriquage(emission: Emission): string {\n return emission.rubriqueIds?.[0] === state.emissionsPage.mainRubrique\n ? \"partenaireRubrique\"\n : \"\";\n}\nfunction rubriquesId(emission: Emission): string | undefined {\n if (\n !displayRubriquage.value ||\n !emission.rubriqueIds ||\n 0 === emission.rubriqueIds.length ||\n !rubriques.value ||\n !rubriques.value.length\n )\n return undefined;\n const rubrique = rubriques.value.find(\n (element: Rubrique) => element.rubriqueId === emission.rubriqueIds[0],\n );\n if (!rubrique) {\n return undefined;\n }\n return rubrique.name;\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmissionPage-BF6s2ySo.mjs","names":["displayHelper","_resolveDirective","_openBlock","_createElementBlock","_Fragment","_createBlock","_createCommentVNode","_createElementVNode","_normalizeClass","_renderSlot","_withDirectives","_createVNode","_createTextVNode","_toDisplayString","_withCtx","_normalizeProps","_guardReactiveProps","_sfc_main"],"sources":["../src/components/pages/EmissionPage.vue","../src/components/pages/EmissionPage.vue"],"sourcesContent":["<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && emission\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? emission.name : t('Emission')\"\n :img-url=\"emission.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <section class=\"module-box\">\n <slot\n v-if=\"editRight && !isPodcastmaker\"\n name=\"edit-box\"\n :emission=\"emission\"\n :on-updated=\"getEmissionDetails\"\n />\n\n <div class=\"w-100 mb-2\">\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name })\"\n class=\"img-box img-box-podcast mb-3 flex-column justify-content-start align-items-start position-relative flex-shrink-0 float-start me-3\"\n >\n\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ name }}\n </h2>\n <ShareAnonymous\n v-if=\"!editRight\"\n class=\"d-flex justify-content-end flex-grow-1\"\n :emission=\"emission\"\n :organisation-id=\"emission.orga.id\"\n />\n </div>\n <h3 v-if=\"showSubtitle\" class=\"text-secondary\">\n {{ emission.annotations.subtitle }}\n </h3>\n\n <!-- eslint-disable vue/no-v-html -->\n <p\n class=\"html-wysiwyg-content description-text\"\n v-html=\"urlify(description)\"\n />\n <!-- eslint-enable -->\n\n <ErrorMessage v-if=\"emission.visible === false\">\n <div class=\"d-flex\" style=\"align-items: center\">\n <div>{{ t('Emission - Not available for listeners') }}</div>\n\n <ClassicHelpButton relative-class=\"page-element\" small>\n {{ t('Emission - Not available explanation') }}\n </ClassicHelpButton>\n </div>\n </ErrorMessage>\n\n <div v-if=\"lastPodcast\" class=\"d-flex align-items-center mt-3\">\n <PodcastPlayButton\n :podcast=\"lastPodcast\"\n :just-buttons=\"true\"\n />\n <div class=\"ms-2 fw-bold\">\n {{ messageListenEpisode }}\n </div>\n </div>\n\n <!-- Tag list -->\n <TagList\n v-if=\"showTags\"\n :tag-list=\"emission.tags\"\n :orga-id=\"authOrgaId\"\n :emission-annotations=\"emission.annotations\"\n :max=\"state.emissionPage.maxTags\"\n />\n\n <InlineRubriqueList\n v-if=\"emission.rubriqueIds?.length\"\n :orga-id=\"emission.orga.id\"\n :rubrique-ids=\"emission.rubriqueIds\"\n />\n\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </div>\n </section>\n <ShareSocialsButtons\n v-if=\"state.emissionPage.ShareButtons\"\n :organisation-id=\"emission.orga.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight\"\n :emission=\"emission\"\n :organisation-id=\"authOrgaId\"\n />\n <section class=\"module-box\">\n <LiveHorizontalList\n v-if=\"!isPodcastmaker\"\n class=\"mx-2\"\n :emission-id=\"emissionId\"\n />\n <PodcastFilterList\n v-if=\"isInit\"\n v-model:query=\"searchPattern\"\n class=\"mx-2\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :show-count=\"true\"\n :emission-id=\"emissionId\"\n :emission=\"emission\"\n :category-filter=\"false\"\n :edit-right=\"editRight\"\n :productor-id=\"[emission.orga.id]\"\n :force-update-parameters=\"true\"\n @fetch=\"podcastsFetched\"\n />\n </section>\n\n <slot name=\"bottom\" v-bind=\"{ emission }\" />\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Emission doesn't exist`) : undefined\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { state } from \"../../stores/ParamSdkStore\";\nimport displayHelper from \"../../helper/displayHelper\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeUnmount } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport ErrorMessage from \"../misc/ErrorMessage.vue\";\nimport ClassicHelpButton from \"../misc/ClassicHelpButton.vue\";\nimport { emissionApi } from \"../../api/emissionApi\";\nimport { useSeasonsManagement } from \"../composable/useSeasonsManagement\";\nimport RightsIndicator from \"../display/RightsIndicator.vue\"; \nimport InlineRubriqueList from \"../display/rubriques/InlineRubriqueList.vue\"; \n\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../display/sharing/ShareAnonymous.vue\"));\nconst PodcastFilterList = defineAsyncComponent(\n () => import(\"../display/podcasts/PodcastFilterList.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../display/sharing/SubscribeButtons.vue\"),\n);\nconst LiveHorizontalList = defineAsyncComponent(\n () => import(\"../display/live/LiveHorizontalList.vue\"),\n);\nconst PodcastPlayButton = defineAsyncComponent(\n () => import(\"../display/podcasts/PodcastPlayButton.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\nconst TagList = defineAsyncComponent(() => import(\"../display/podcasts/TagList.vue\"));\n\n//Props \nconst props = withDefaults(defineProps<{\n emissionId: number;\n pr?: number;\n ps?: number;\n routeQuery?: string;\n}>(), {\n pr: 0,\n ps: 30,\n routeQuery: ''\n});\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst emission: Ref<Emission | undefined> = ref(undefined);\nconst lastPodcast: Ref<Podcast | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst { handle403 } = useErrorHandler();\nconst filterStore = useFilterStore();\nconst generalStore = useGeneralStore();\nconst route = useRoute();\nconst {\n searchPattern,\n paginateFirst,\n isInit\n} = useSimplePageParam(props, true);\nconst { areSeasonsEnabled, formatSeason, getMaxSeason } = useSeasonsManagement();\n\n\n//Computed\nconst name = computed(() => emission.value?.name ?? \"\");\nconst description = computed(() => emission.value?.description ?? \"\");\nconst editRight = computed(() => isEditRights(emission.value?.orga.id));\n\nconst messageListenEpisode = computed((): string => {\n const base = t(\"Listen to the latest episode\");\n if (lastPodcast.value !== undefined && areSeasonsEnabled(emission.value)) {\n return base + ` (${formatSeason(lastPodcast.value)})`;\n } else {\n return base;\n }\n});\n\n//Watch\nwatch(() => props.emissionId, getEmissionDetails, { immediate: true });\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\nasync function getEmissionDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n emission.value = await emissionApi.get(props.emissionId);\n filterStore.updateOrgaIfNecessary(emission.value.orga.id);\n if (\n \"PUBLIC\" !== emission.value.orga.privacy &&\n filterStore.filterOrgaId !== emission.value.orga.id &&\n route.query.productor !== emission.value.orga.id\n ) {\n initError();\n return;\n }\n generalStore.contentToDisplayUpdate(emission.value);\n updatePathParams(name.value);\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction isReadyAndVisibleAndValid(p: Podcast): boolean {\n return \"READY\" === p.processingStatus && p.availability.visibility && p.valid === true;\n}\n\nfunction podcastsFetched(podcasts: Array<Podcast>, season: number|undefined) {\n\n if (areSeasonsEnabled(emission.value)) {\n // Ignore results that are not from the last season\n const maxSeason = getMaxSeason(emission.value);\n if (season !== undefined && season !== maxSeason) {\n return;\n }\n // If seasons are enabled, take last element\n lastPodcast.value = podcasts.findLast(isReadyAndVisibleAndValid);\n } else {\n // If seasons are disabled, we have a standard date desc sort, so we take\n // first element\n lastPodcast.value = podcasts.find(isReadyAndVisibleAndValid);\n }\n}\n\n/** Indicates whether to display emission name in header */\nconst useEmissionTitle = computed((): boolean => {\n return state.emissionPage?.displayEmissionTitleInHeader === true;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return emission.value.annotations?.subtitle && state.emissionPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show tags */\nconst showTags = computed((): boolean => {\n if (state.emissionPage?.hideTags === true) {\n return false;\n }\n\n return undefined !== emission.value.tags && 0 !== emission.value.tags.length;\n});\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && emission\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? emission.name : t('Emission')\"\n :img-url=\"emission.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <section class=\"module-box\">\n <slot\n v-if=\"editRight && !isPodcastmaker\"\n name=\"edit-box\"\n :emission=\"emission\"\n :on-updated=\"getEmissionDetails\"\n />\n\n <div class=\"w-100 mb-2\">\n <img\n v-lazy=\"useProxyImageUrl(emission.imageUrl, '250')\"\n width=\"250\"\n height=\"250\"\n aria-hidden=\"true\"\n alt=\"\"\n :title=\"t('Emission name image', { name })\"\n class=\"img-box img-box-podcast mb-3 flex-column justify-content-start align-items-start position-relative flex-shrink-0 float-start me-3\"\n >\n\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>\n <RightsIndicator\n inline\n :emission=\"emission\"\n action=\"edit\"\n />\n {{ name }}\n </h2>\n <ShareAnonymous\n v-if=\"!editRight\"\n class=\"d-flex justify-content-end flex-grow-1\"\n :emission=\"emission\"\n :organisation-id=\"emission.orga.id\"\n />\n </div>\n <h3 v-if=\"showSubtitle\" class=\"text-secondary\">\n {{ emission.annotations.subtitle }}\n </h3>\n\n <!-- eslint-disable vue/no-v-html -->\n <p\n class=\"html-wysiwyg-content description-text\"\n v-html=\"urlify(description)\"\n />\n <!-- eslint-enable -->\n\n <ErrorMessage v-if=\"emission.visible === false\">\n <div class=\"d-flex\" style=\"align-items: center\">\n <div>{{ t('Emission - Not available for listeners') }}</div>\n\n <ClassicHelpButton relative-class=\"page-element\" small>\n {{ t('Emission - Not available explanation') }}\n </ClassicHelpButton>\n </div>\n </ErrorMessage>\n\n <div v-if=\"lastPodcast\" class=\"d-flex align-items-center mt-3\">\n <PodcastPlayButton\n :podcast=\"lastPodcast\"\n :just-buttons=\"true\"\n />\n <div class=\"ms-2 fw-bold\">\n {{ messageListenEpisode }}\n </div>\n </div>\n\n <!-- Tag list -->\n <TagList\n v-if=\"showTags\"\n :tag-list=\"emission.tags\"\n :orga-id=\"authOrgaId\"\n :emission-annotations=\"emission.annotations\"\n :max=\"state.emissionPage.maxTags\"\n />\n\n <InlineRubriqueList\n v-if=\"emission.rubriqueIds?.length\"\n :orga-id=\"emission.orga.id\"\n :rubrique-ids=\"emission.rubriqueIds\"\n />\n\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </div>\n </section>\n <ShareSocialsButtons\n v-if=\"state.emissionPage.ShareButtons\"\n :organisation-id=\"emission.orga.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight\"\n :emission=\"emission\"\n :organisation-id=\"authOrgaId\"\n />\n <section class=\"module-box\">\n <LiveHorizontalList\n v-if=\"!isPodcastmaker\"\n class=\"mx-2\"\n :emission-id=\"emissionId\"\n />\n <PodcastFilterList\n v-if=\"isInit\"\n v-model:query=\"searchPattern\"\n class=\"mx-2\"\n :first=\"paginateFirst\"\n :size=\"ps\"\n :show-count=\"true\"\n :emission-id=\"emissionId\"\n :emission=\"emission\"\n :category-filter=\"false\"\n :edit-right=\"editRight\"\n :productor-id=\"[emission.orga.id]\"\n :force-update-parameters=\"true\"\n @fetch=\"podcastsFetched\"\n />\n </section>\n\n <slot name=\"bottom\" v-bind=\"{ emission }\" />\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Emission doesn't exist`) : undefined\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { state } from \"../../stores/ParamSdkStore\";\nimport displayHelper from \"../../helper/displayHelper\";\nimport {useImageProxy} from \"../composable/useImageProxy\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeUnmount } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { useSimplePageParam } from \"../composable/route/useSimplePageParam\";\nimport ErrorMessage from \"../misc/ErrorMessage.vue\";\nimport ClassicHelpButton from \"../misc/ClassicHelpButton.vue\";\nimport { emissionApi } from \"../../api/emissionApi\";\nimport { useSeasonsManagement } from \"../composable/useSeasonsManagement\";\nimport RightsIndicator from \"../display/RightsIndicator.vue\"; \nimport InlineRubriqueList from \"../display/rubriques/InlineRubriqueList.vue\"; \n\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../display/sharing/ShareAnonymous.vue\"));\nconst PodcastFilterList = defineAsyncComponent(\n () => import(\"../display/podcasts/PodcastFilterList.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../display/sharing/SubscribeButtons.vue\"),\n);\nconst LiveHorizontalList = defineAsyncComponent(\n () => import(\"../display/live/LiveHorizontalList.vue\"),\n);\nconst PodcastPlayButton = defineAsyncComponent(\n () => import(\"../display/podcasts/PodcastPlayButton.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\nconst TagList = defineAsyncComponent(() => import(\"../display/podcasts/TagList.vue\"));\n\n//Props \nconst props = withDefaults(defineProps<{\n emissionId: number;\n pr?: number;\n ps?: number;\n routeQuery?: string;\n}>(), {\n pr: 0,\n ps: 30,\n routeQuery: ''\n});\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst emission: Ref<Emission | undefined> = ref(undefined);\nconst lastPodcast: Ref<Podcast | undefined> = ref(undefined);\n\n\n//Composables\nconst { t } = useI18n();\nconst { useProxyImageUrl } = useImageProxy();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst { handle403 } = useErrorHandler();\nconst filterStore = useFilterStore();\nconst generalStore = useGeneralStore();\nconst route = useRoute();\nconst {\n searchPattern,\n paginateFirst,\n isInit\n} = useSimplePageParam(props, true);\nconst { areSeasonsEnabled, formatSeason, getMaxSeason } = useSeasonsManagement();\n\n\n//Computed\nconst name = computed(() => emission.value?.name ?? \"\");\nconst description = computed(() => emission.value?.description ?? \"\");\nconst editRight = computed(() => isEditRights(emission.value?.orga.id));\n\nconst messageListenEpisode = computed((): string => {\n const base = t(\"Listen to the latest episode\");\n if (lastPodcast.value !== undefined && areSeasonsEnabled(emission.value)) {\n return base + ` (${formatSeason(lastPodcast.value)})`;\n } else {\n return base;\n }\n});\n\n//Watch\nwatch(() => props.emissionId, getEmissionDetails, { immediate: true });\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n})\n\n//Methods\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\nasync function getEmissionDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n emission.value = await emissionApi.get(props.emissionId);\n filterStore.updateOrgaIfNecessary(emission.value.orga.id);\n if (\n \"PUBLIC\" !== emission.value.orga.privacy &&\n filterStore.filterOrgaId !== emission.value.orga.id &&\n route.query.productor !== emission.value.orga.id\n ) {\n initError();\n return;\n }\n generalStore.contentToDisplayUpdate(emission.value);\n updatePathParams(name.value);\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction isReadyAndVisibleAndValid(p: Podcast): boolean {\n return \"READY\" === p.processingStatus && p.availability.visibility && p.valid === true;\n}\n\nfunction podcastsFetched(podcasts: Array<Podcast>, season: number|undefined) {\n\n if (areSeasonsEnabled(emission.value)) {\n // Ignore results that are not from the last season\n const maxSeason = getMaxSeason(emission.value);\n if (season !== undefined && season !== maxSeason) {\n return;\n }\n // If seasons are enabled, take last element\n lastPodcast.value = podcasts.findLast(isReadyAndVisibleAndValid);\n } else {\n // If seasons are disabled, we have a standard date desc sort, so we take\n // first element\n lastPodcast.value = podcasts.find(isReadyAndVisibleAndValid);\n }\n}\n\n/** Indicates whether to display emission name in header */\nconst useEmissionTitle = computed((): boolean => {\n return state.emissionPage?.displayEmissionTitleInHeader === true;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return emission.value.annotations?.subtitle && state.emissionPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show tags */\nconst showTags = computed((): boolean => {\n if (state.emissionPage?.hideTags === true) {\n return false;\n }\n\n return undefined !== emission.value.tags && 0 !== emission.value.tags.length;\n});\n</script>\n"],"mappings":"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"}
|