@saooti/octopus-sdk 42.0.4 → 42.0.5
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/AccessibilityModal-Bk-lyxlI.mjs +119 -0
- package/dist/AccessibilityModal-Bk-lyxlI.mjs.map +1 -0
- package/dist/AccessibilityModal-DqRtmHwG.mjs.map +1 -0
- package/dist/AdsProgressBar-B6Mi09W8.mjs +28 -0
- package/dist/AdsProgressBar-B6Mi09W8.mjs.map +1 -0
- package/dist/AdsProgressBar-CAP7Zj--.mjs.map +1 -0
- package/dist/AdvancedSearch-CVglkFkt.mjs.map +1 -0
- package/dist/AdvancedSearch-D6vwfxo5.mjs +317 -0
- package/dist/AdvancedSearch-D6vwfxo5.mjs.map +1 -0
- package/dist/AdvancedSearch-DINUCkA8.mjs.map +1 -0
- package/dist/AdvancedSearch-XvvmHfah.mjs.map +1 -0
- package/dist/AmazonMusicIcon-BbyyRbP4.mjs +49 -0
- package/dist/AmazonMusicIcon-BbyyRbP4.mjs.map +1 -0
- package/dist/AmazonMusicIcon-D5vNh4HG.mjs.map +1 -0
- package/dist/ApplePodcastIcon-Cq5SSyRm.mjs +51 -0
- package/dist/ApplePodcastIcon-Cq5SSyRm.mjs.map +1 -0
- package/dist/ApplePodcastIcon-DtC4TS8H.mjs.map +1 -0
- package/dist/CategoryChooser-DWEL9V5p.mjs.map +1 -0
- package/dist/CategoryChooser-DklLXzrz.mjs +216 -0
- package/dist/CategoryChooser-DklLXzrz.mjs.map +1 -0
- package/dist/CategoryFilter-BYG8Fnzn.mjs.map +1 -0
- package/dist/CategoryFilter-Bg279Zhp.mjs.map +1 -0
- package/dist/CategoryFilter-CmS3Ny_9.mjs +205 -0
- package/dist/CategoryFilter-CmS3Ny_9.mjs.map +1 -0
- package/dist/CategoryList-CfMKagU8.mjs +153 -0
- package/dist/CategoryList-CfMKagU8.mjs.map +1 -0
- package/dist/CategoryList-CtYJ1Otd.mjs.map +1 -0
- package/dist/CategoryList-fb__vBIZ.mjs.map +1 -0
- package/dist/CategoryPage-BXpFZSoD.mjs.map +1 -0
- package/dist/CategoryPage-CjFCzM5T.mjs.map +1 -0
- package/dist/CategoryPage-D8ZeqW_O.mjs +41 -0
- package/dist/CategoryPage-D8ZeqW_O.mjs.map +1 -0
- package/dist/CategoryPage-DOpUFF1y.mjs.map +1 -0
- package/dist/CategorySearchFilter-1oMd2Mm5.mjs +54 -0
- package/dist/CategorySearchFilter-1oMd2Mm5.mjs.map +1 -0
- package/dist/CategorySearchFilter-CEGWqMSt.mjs.map +1 -0
- package/dist/ChapteringModal-Bj_VrtB1.mjs.map +1 -0
- package/dist/ChapteringModal-C35ILBs7.mjs +64 -0
- package/dist/ChapteringModal-C35ILBs7.mjs.map +1 -0
- package/dist/ChapteringModal-CN-qJH9j.mjs.map +1 -0
- package/dist/CheckIdentityModal-4XD5uK5v.mjs.map +1 -0
- package/dist/CheckIdentityModal-RQYssX9o.mjs.map +1 -0
- package/dist/CheckIdentityModal-ekQqQKIU.mjs +62 -0
- package/dist/CheckIdentityModal-ekQqQKIU.mjs.map +1 -0
- package/dist/ChooseEpisodesNumber-BbsEFK07.mjs +50 -0
- package/dist/ChooseEpisodesNumber-BbsEFK07.mjs.map +1 -0
- package/dist/ChooseEpisodesNumber-OlhXXsCa.mjs.map +1 -0
- package/dist/ClassicAccordion-H690GTb-.mjs +87 -0
- package/dist/ClassicAccordion-H690GTb-.mjs.map +1 -0
- package/dist/ClassicAccordion-S0e-IhFa.mjs.map +1 -0
- package/dist/ClassicAlert-D51F43qS.mjs +57 -0
- package/dist/ClassicAlert-D51F43qS.mjs.map +1 -0
- package/dist/ClassicAlert-DUQplMvs.mjs.map +1 -0
- package/dist/ClassicBigChip-BbWdjK3W.mjs.map +1 -0
- package/dist/ClassicBigChip-CMefjO08.mjs.map +1 -0
- package/dist/ClassicBigChip-CaUJ5EI5.mjs +33 -0
- package/dist/ClassicBigChip-CaUJ5EI5.mjs.map +1 -0
- package/dist/ClassicCheckbox-BHKCPtLR.mjs.map +1 -0
- package/dist/ClassicCheckbox-CqA5WUGc.mjs +113 -0
- package/dist/ClassicCheckbox-CqA5WUGc.mjs.map +1 -0
- package/dist/ClassicContentEditable-BSsnA6oo.mjs.map +1 -0
- package/dist/ClassicContentEditable-R2O8-zPZ.mjs +52 -0
- package/dist/ClassicContentEditable-R2O8-zPZ.mjs.map +1 -0
- package/dist/ClassicCopyButton-M9AP3MKD.mjs.map +1 -0
- package/dist/ClassicCopyButton-y5PyWjLR.mjs +69 -0
- package/dist/ClassicCopyButton-y5PyWjLR.mjs.map +1 -0
- package/dist/ClassicDatePicker-CS5ufjLj.mjs +226 -0
- package/dist/ClassicDatePicker-CS5ufjLj.mjs.map +1 -0
- package/dist/ClassicDatePicker-DWVn4oHu.mjs.map +1 -0
- package/dist/ClassicEmojiPicker-BJeHH_oM.mjs +74 -0
- package/dist/ClassicEmojiPicker-BJeHH_oM.mjs.map +1 -0
- package/dist/ClassicEmojiPicker-EQy5H_zL.mjs.map +1 -0
- package/dist/ClassicHelpButton-B6jXpEKT.mjs.map +1 -0
- package/dist/ClassicHelpButton-DkCQoPpA.mjs +57 -0
- package/dist/ClassicHelpButton-DkCQoPpA.mjs.map +1 -0
- package/dist/ClassicInputText-B7EAwP2N.mjs.map +1 -0
- package/dist/ClassicInputText-adAE0MPy.mjs +335 -0
- package/dist/ClassicInputText-adAE0MPy.mjs.map +1 -0
- package/dist/ClassicLazy-7mFHxG6O.mjs.map +1 -0
- package/dist/ClassicLazy-DKgiCdDI.mjs +92 -0
- package/dist/ClassicLazy-DKgiCdDI.mjs.map +1 -0
- package/dist/ClassicLoading-Crlw7cAx.mjs.map +1 -0
- package/dist/ClassicLoading-DZLIyuUd.mjs +52 -0
- package/dist/ClassicLoading-DZLIyuUd.mjs.map +1 -0
- package/dist/ClassicModal-CilwHp9p.mjs.map +1 -0
- package/dist/ClassicModal-DbRPVcJr.mjs +87 -0
- package/dist/ClassicModal-DbRPVcJr.mjs.map +1 -0
- package/dist/ClassicModalInBody-BkaRcZZx.mjs.map +1 -0
- package/dist/ClassicModalInBody-Dq9PBoaB.mjs +77 -0
- package/dist/ClassicModalInBody-Dq9PBoaB.mjs.map +1 -0
- package/dist/ClassicMultiselect-BEY-HpGk.mjs.map +1 -0
- package/dist/ClassicMultiselect-wJ9U_4b2.mjs +246 -0
- package/dist/ClassicMultiselect-wJ9U_4b2.mjs.map +1 -0
- package/dist/ClassicNav-Dvm8faD9.mjs.map +1 -0
- package/dist/ClassicNav-P2h4OFEY.mjs +65 -0
- package/dist/ClassicNav-P2h4OFEY.mjs.map +1 -0
- package/dist/ClassicPopover-BIyLKorz.mjs.map +1 -0
- package/dist/ClassicPopover-Bk5kf37e.mjs +261 -0
- package/dist/ClassicPopover-Bk5kf37e.mjs.map +1 -0
- package/dist/ClassicRadio-BwylgGYF.mjs.map +1 -0
- package/dist/ClassicRadio-Dr6od5uM.mjs +78 -0
- package/dist/ClassicRadio-Dr6od5uM.mjs.map +1 -0
- package/dist/ClassicRadioLabel-DIij8S-y.mjs +86 -0
- package/dist/ClassicRadioLabel-DIij8S-y.mjs.map +1 -0
- package/dist/ClassicRadioLabel-ynBzFxC2.mjs.map +1 -0
- package/dist/ClassicSearch-BPWOTzhw.mjs +76 -0
- package/dist/ClassicSearch-BPWOTzhw.mjs.map +1 -0
- package/dist/ClassicSearch-D5yT0JRA.mjs.map +1 -0
- package/dist/ClassicSelect-BaY2yvwP.mjs.map +1 -0
- package/dist/ClassicSelect-BeCuKMad.mjs +138 -0
- package/dist/ClassicSelect-BeCuKMad.mjs.map +1 -0
- package/dist/ClassicSpinner-CL99QR-h.mjs +39 -0
- package/dist/ClassicSpinner-CL99QR-h.mjs.map +1 -0
- package/dist/ClassicSpinner-lNq7TnmD.mjs.map +1 -0
- package/dist/ClassicTabs-Bcine4_p.mjs.map +1 -0
- package/dist/ClassicTabs-sNP268jp.mjs +52 -0
- package/dist/ClassicTabs-sNP268jp.mjs.map +1 -0
- package/dist/ClassicTagInput-DrIZVI0X.mjs +82 -0
- package/dist/ClassicTagInput-DrIZVI0X.mjs.map +1 -0
- package/dist/ClassicTagInput-HM3VUbHp.mjs.map +1 -0
- package/dist/ClassicWysiwyg-BKq8ExjM.mjs.map +1 -0
- package/dist/ClassicWysiwyg-CRx5L0lR.mjs +200 -0
- package/dist/ClassicWysiwyg-CRx5L0lR.mjs.map +1 -0
- package/dist/ClipboardModal-DcUIqJGT.mjs +64 -0
- package/dist/ClipboardModal-DcUIqJGT.mjs.map +1 -0
- package/dist/ClipboardModal-MJw-Q5H5.mjs.map +1 -0
- package/dist/ClipboardModal-VRWz6S2A.mjs.map +1 -0
- package/dist/CommentBasicView-BIiF59xV.mjs.map +1 -0
- package/dist/CommentBasicView-CmDziW-M.mjs +103 -0
- package/dist/CommentBasicView-CmDziW-M.mjs.map +1 -0
- package/dist/CommentInput-BH-j4xYE.mjs.map +1 -0
- package/dist/CommentInput-CCpv7RF8.mjs +150 -0
- package/dist/CommentInput-CCpv7RF8.mjs.map +1 -0
- package/dist/CommentInput-DOuugk5A.mjs.map +1 -0
- package/dist/CommentItem-B1wXPEZZ.mjs +194 -0
- package/dist/CommentItem-B1wXPEZZ.mjs.map +1 -0
- package/dist/CommentItem-DuJsZoIk.mjs.map +1 -0
- package/dist/CommentItem-XLeueLaZ.mjs.map +1 -0
- package/dist/CommentList-ByBLWHYE.mjs.map +1 -0
- package/dist/CommentList-CIoNgXiD.mjs.map +1 -0
- package/dist/CommentList-dSoD09Di.mjs +262 -0
- package/dist/CommentList-dSoD09Di.mjs.map +1 -0
- package/dist/CommentMoreActions-CnczLaid.mjs +248 -0
- package/dist/CommentMoreActions-CnczLaid.mjs.map +1 -0
- package/dist/CommentMoreActions-CyEIOrzQ.mjs.map +1 -0
- package/dist/CommentMoreActions-X9tC_I0A.mjs.map +1 -0
- package/dist/CommentName-CkGKXK3_.mjs +73 -0
- package/dist/CommentName-CkGKXK3_.mjs.map +1 -0
- package/dist/CommentName-rapSs0fp.mjs.map +1 -0
- package/dist/CommentName-sabBJAA8.mjs.map +1 -0
- package/dist/CommentParentInfo-CQXTtdBn.mjs.map +1 -0
- package/dist/CommentParentInfo-D3nI0C85.mjs.map +1 -0
- package/dist/CommentParentInfo-J1vHOCm3.mjs +47 -0
- package/dist/CommentParentInfo-J1vHOCm3.mjs.map +1 -0
- package/dist/CommentPlayer-70dIz2Rg.mjs +67 -0
- package/dist/CommentPlayer-70dIz2Rg.mjs.map +1 -0
- package/dist/CommentPlayer-BVhVIPgD.mjs.map +1 -0
- package/dist/CommentPlayer-Cfa-z5qQ.mjs.map +1 -0
- package/dist/CommentSection-2kJz9TRg.mjs.map +1 -0
- package/dist/CommentSection-Bz6q4N6d.mjs +113 -0
- package/dist/CommentSection-Bz6q4N6d.mjs.map +1 -0
- package/dist/CommentSection-DRpvhHqB.mjs.map +1 -0
- package/dist/CommentStore-BFkEAz_S.mjs.map +1 -0
- package/dist/CommentStore-BjQ0AGHa.mjs +355 -0
- package/dist/CommentStore-BjQ0AGHa.mjs.map +1 -0
- package/dist/ContractPreviewModal-DhoEBsqo.mjs +75 -0
- package/dist/ContractPreviewModal-DhoEBsqo.mjs.map +1 -0
- package/dist/ContractPreviewModal-DjCwrq7e.mjs.map +1 -0
- package/dist/ContractPreviewModal-Dqyo5xUg.mjs.map +1 -0
- package/dist/CountDown-CAUtA0Vp.mjs.map +1 -0
- package/dist/CountDown-Ce0nxiby.mjs +28 -0
- package/dist/CountDown-Ce0nxiby.mjs.map +1 -0
- package/dist/CountdownOctopus-CR9zvBmW.mjs +34 -0
- package/dist/CountdownOctopus-CR9zvBmW.mjs.map +1 -0
- package/dist/CountdownOctopus-i6-l0aLA.mjs.map +1 -0
- package/dist/DateFilter-DD9cY_la.mjs.map +1 -0
- package/dist/DateFilter-DkU1MSa-.mjs +101 -0
- package/dist/DateFilter-DkU1MSa-.mjs.map +1 -0
- package/dist/DeezerIcon-BUdIKeqN.mjs.map +1 -0
- package/dist/DeezerIcon-D4cq4iPQ.mjs +49 -0
- package/dist/DeezerIcon-D4cq4iPQ.mjs.map +1 -0
- package/dist/DownloadPodcastButton-C5jl5QoM.mjs.map +1 -0
- package/dist/DownloadPodcastButton-Cbtq6s60.mjs.map +1 -0
- package/dist/DownloadPodcastButton-DLMz5Siw.mjs +39 -0
- package/dist/DownloadPodcastButton-DLMz5Siw.mjs.map +1 -0
- package/dist/EditCommentModal-3jlBtPco.mjs.map +1 -0
- package/dist/EditCommentModal-B5xc_AC2.mjs.map +1 -0
- package/dist/EditCommentModal-_iEit4p4.mjs +134 -0
- package/dist/EditCommentModal-_iEit4p4.mjs.map +1 -0
- package/dist/EditFtpIcon-D5VaHXWl.mjs.map +1 -0
- package/dist/EditFtpIcon-Do2G7rmM.mjs +47 -0
- package/dist/EditFtpIcon-Do2G7rmM.mjs.map +1 -0
- package/dist/EmissionGroupChooser-CQ6wTihw.mjs.map +1 -0
- package/dist/EmissionGroupChooser-D3xCu4tW.mjs +55 -0
- package/dist/EmissionGroupChooser-D3xCu4tW.mjs.map +1 -0
- package/dist/EmissionGroupChooser-DheKnUrA.mjs.map +1 -0
- package/dist/EmissionInlineList-CPgw-_jC.mjs +129 -0
- package/dist/EmissionInlineList-CPgw-_jC.mjs.map +1 -0
- package/dist/EmissionInlineList-CeCcnsfP.mjs.map +1 -0
- package/dist/EmissionInlineList-DD5tKHdg.mjs.map +1 -0
- package/dist/EmissionItem-Cl53in7H.mjs +144 -0
- package/dist/EmissionItem-Cl53in7H.mjs.map +1 -0
- package/dist/EmissionItem-DO1G4P7I.mjs.map +1 -0
- package/dist/EmissionItem-Dyamdgqm.mjs.map +1 -0
- package/dist/EmissionItem-NQh_dIN1.mjs.map +1 -0
- package/dist/EmissionList-CNizEXC9.mjs.map +1 -0
- package/dist/EmissionList-D4DFhKPt.mjs +286 -0
- package/dist/EmissionList-D4DFhKPt.mjs.map +1 -0
- package/dist/EmissionList-DfhK6dgl.mjs.map +1 -0
- package/dist/EmissionList-JEE2Remj.mjs.map +1 -0
- package/dist/EmissionPage-B1OhP9b5.mjs.map +1 -0
- package/dist/EmissionPage-B3fju1Sc.mjs +247 -0
- package/dist/EmissionPage-B3fju1Sc.mjs.map +1 -0
- package/dist/EmissionPage-Cizyfg77.mjs.map +1 -0
- package/dist/EmissionPage-Dq4ECbbk.mjs.map +1 -0
- package/dist/EmissionPlayerItem-BzFck8k6.mjs +148 -0
- package/dist/EmissionPlayerItem-BzFck8k6.mjs.map +1 -0
- package/dist/EmissionPlayerItem-DhOuAEBr.mjs.map +1 -0
- package/dist/EmissionPlayerItem-DiM1VHun.mjs.map +1 -0
- package/dist/EmissionPresentationItem-CEjtj9mf.mjs +54 -0
- package/dist/EmissionPresentationItem-CEjtj9mf.mjs.map +1 -0
- package/dist/EmissionPresentationItem-DSCyFHjR.mjs.map +1 -0
- package/dist/EmissionPresentationItem-TpmURnni.mjs.map +1 -0
- package/dist/EmissionPresentationList-C80QlXif.mjs.map +1 -0
- package/dist/EmissionPresentationList-D1UcWrLn.mjs +104 -0
- package/dist/EmissionPresentationList-D1UcWrLn.mjs.map +1 -0
- package/dist/EmissionPresentationList-uApAVXPy.mjs.map +1 -0
- package/dist/EmissionsPage-B-Lgftdx.mjs.map +1 -0
- package/dist/EmissionsPage-CQm8C671.mjs +120 -0
- package/dist/EmissionsPage-CQm8C671.mjs.map +1 -0
- package/dist/EmissionsPage-CiV3jjrr.mjs.map +1 -0
- package/dist/EmissionsPage-Dop7rOfp.mjs.map +1 -0
- package/dist/Error403Page-8Z8InpBQ.mjs.map +1 -0
- package/dist/Error403Page-B4wfiYPh.mjs +56 -0
- package/dist/Error403Page-B4wfiYPh.mjs.map +1 -0
- package/dist/Error403Page-Du1eHk-4.mjs.map +1 -0
- package/dist/ErrorMessage-D2XAzxpC.mjs.map +1 -0
- package/dist/ErrorMessage-DcUdnqSU.mjs +33 -0
- package/dist/ErrorMessage-DcUdnqSU.mjs.map +1 -0
- package/dist/FooterGarSection-BlQXLOSL.mjs.map +1 -0
- package/dist/FooterGarSection-CFtIQW51.mjs.map +1 -0
- package/dist/FooterGarSection-DSu-iiPb.mjs +54 -0
- package/dist/FooterGarSection-DSu-iiPb.mjs.map +1 -0
- package/dist/FooterSection-CAGk8GmW.mjs +196 -0
- package/dist/FooterSection-CAGk8GmW.mjs.map +1 -0
- package/dist/FooterSection-CYVlRfnp.mjs.map +1 -0
- package/dist/FooterSection-LpLoB0-0.mjs.map +1 -0
- package/dist/GeneralStore-CUlq_NjO.mjs +45 -0
- package/dist/GeneralStore-CUlq_NjO.mjs.map +1 -0
- package/dist/HomeDropdown-DWCPphGw.mjs.map +1 -0
- package/dist/HomeDropdown-Dcyt9IM6.mjs +81 -0
- package/dist/HomeDropdown-Dcyt9IM6.mjs.map +1 -0
- package/dist/HomeDropdown-j5CLhQP9.mjs.map +1 -0
- package/dist/HomePage-D947-CtJ.mjs.map +1 -0
- package/dist/HomePage-DoZG25gj.mjs +142 -0
- package/dist/HomePage-DoZG25gj.mjs.map +1 -0
- package/dist/HomePage-DvbT5DWY.mjs.map +1 -0
- package/dist/HomePage-o7H3mupQ.mjs.map +1 -0
- package/dist/IHeartIcon-70F_rHQh.mjs.map +1 -0
- package/dist/IHeartIcon-D9X-Udgq.mjs +53 -0
- package/dist/IHeartIcon-D9X-Udgq.mjs.map +1 -0
- package/dist/LikeButton-DFkrvbgE.mjs.map +1 -0
- package/dist/LikeButton-gkh5hlOU.mjs +61 -0
- package/dist/LikeButton-gkh5hlOU.mjs.map +1 -0
- package/dist/LikeSection-BLrRZGlp.mjs +137 -0
- package/dist/LikeSection-BLrRZGlp.mjs.map +1 -0
- package/dist/LikeSection-DGKUdmkX.mjs.map +1 -0
- package/dist/LikeSection-no5OlBSF.mjs.map +1 -0
- package/dist/ListPaginate-BWWtCWZX.mjs +174 -0
- package/dist/ListPaginate-BWWtCWZX.mjs.map +1 -0
- package/dist/ListPaginate-DwmCOplg.mjs.map +1 -0
- package/dist/ListPaginate-QZ7t7y81.mjs.map +1 -0
- package/dist/LiveHorizontalList-BObeVsFj.mjs.map +1 -0
- package/dist/LiveHorizontalList-CDS6piq6.mjs +111 -0
- package/dist/LiveHorizontalList-CDS6piq6.mjs.map +1 -0
- package/dist/LiveHorizontalList-D_GkeFWa.mjs.map +1 -0
- package/dist/LiveHorizontalList-bMtchMkz.mjs.map +1 -0
- package/dist/LiveList-Bf2IwhCb.mjs +265 -0
- package/dist/LiveList-Bf2IwhCb.mjs.map +1 -0
- package/dist/LiveList-CLi1Bq0h.mjs.map +1 -0
- package/dist/LiveList-DZy0OfFl.mjs.map +1 -0
- package/dist/LiveList-uGUcdGMJ.mjs.map +1 -0
- package/dist/LivesPage-4xpcvJSQ.mjs.map +1 -0
- package/dist/LivesPage-BqEg0zT2.mjs.map +1 -0
- package/dist/LivesPage-CNPiAlnt.mjs.map +1 -0
- package/dist/LivesPage-CfYmRxnV.mjs +55 -0
- package/dist/LivesPage-CfYmRxnV.mjs.map +1 -0
- package/dist/MapPage-BDhnH1Kl.mjs.map +1 -0
- package/dist/MapPage-DjLcn4uk.mjs +276 -0
- package/dist/MapPage-DjLcn4uk.mjs.map +1 -0
- package/dist/MapPage-gETfgUu-.mjs.map +1 -0
- package/dist/MessageModal-B35dCbWB.mjs.map +1 -0
- package/dist/MessageModal-BWI3HTM0.mjs +116 -0
- package/dist/MessageModal-BWI3HTM0.mjs.map +1 -0
- package/dist/MobileMenu-B51ClvR4.mjs.map +1 -0
- package/dist/MobileMenu-BPtGG3Nt.mjs.map +1 -0
- package/dist/MobileMenu-CdvJhI_5.mjs +162 -0
- package/dist/MobileMenu-CdvJhI_5.mjs.map +1 -0
- package/dist/MonetizableFilter-BGQTUtwX.mjs.map +1 -0
- package/dist/MonetizableFilter-DOlNz4IP.mjs +66 -0
- package/dist/MonetizableFilter-DOlNz4IP.mjs.map +1 -0
- package/dist/NewsletterModal-3Hv1lNuN.mjs.map +1 -0
- package/dist/NewsletterModal-Cit-Ckrg.mjs.map +1 -0
- package/dist/NewsletterModal-Cq-ZW_Y_.mjs +64 -0
- package/dist/NewsletterModal-Cq-ZW_Y_.mjs.map +1 -0
- package/dist/OctopusMultiselect-CDijfV8W.mjs +325 -0
- package/dist/OctopusMultiselect-CDijfV8W.mjs.map +1 -0
- package/dist/OctopusMultiselect-tXNIWVpp.mjs.map +1 -0
- package/dist/OrganisationChooser-CH20oK8w.mjs +164 -0
- package/dist/OrganisationChooser-CH20oK8w.mjs.map +1 -0
- package/dist/OrganisationChooser-foPC-Rwo.mjs.map +1 -0
- package/dist/OrganisationChooser-m6bJKDBa.mjs.map +1 -0
- package/dist/OrganisationChooserLight-BGPuDaCx.mjs.map +1 -0
- package/dist/OrganisationChooserLight-DJHyYp6k.mjs.map +1 -0
- package/dist/OrganisationChooserLight-DqO0gfx7.mjs +63 -0
- package/dist/OrganisationChooserLight-DqO0gfx7.mjs.map +1 -0
- package/dist/PageLogout-Bc8zBpoo.mjs.map +1 -0
- package/dist/PageLogout-xQXWO2UF.mjs +21 -0
- package/dist/PageLogout-xQXWO2UF.mjs.map +1 -0
- package/dist/PageNotFound-BPFW-fzo.mjs.map +1 -0
- package/dist/PageNotFound-Dpv0tY-G.mjs +45 -0
- package/dist/PageNotFound-Dpv0tY-G.mjs.map +1 -0
- package/dist/PageNotFound-r_6Ei8S9.mjs.map +1 -0
- package/dist/PaginateParams-CbAaMAAM.mjs.map +1 -0
- package/dist/PaginateParams-CjJoKjUD.mjs +90 -0
- package/dist/PaginateParams-CjJoKjUD.mjs.map +1 -0
- package/dist/PaginateSection-BJ6iQai2.mjs.map +1 -0
- package/dist/PaginateSection-I875HiC5.mjs +184 -0
- package/dist/PaginateSection-I875HiC5.mjs.map +1 -0
- package/dist/ParticipantDescription-BsS6OEz9.mjs +57 -0
- package/dist/ParticipantDescription-BsS6OEz9.mjs.map +1 -0
- package/dist/ParticipantDescription-CwREwvZy.mjs.map +1 -0
- package/dist/ParticipantInlineList-BmE7OeIA.mjs.map +1 -0
- package/dist/ParticipantInlineList-C1BElB13.mjs +95 -0
- package/dist/ParticipantInlineList-C1BElB13.mjs.map +1 -0
- package/dist/ParticipantInlineList-DasTqo5z.mjs.map +1 -0
- package/dist/ParticipantItem-B3n9mXtJ.mjs +113 -0
- package/dist/ParticipantItem-B3n9mXtJ.mjs.map +1 -0
- package/dist/ParticipantItem-BOYW9dkV.mjs.map +1 -0
- package/dist/ParticipantItem-DiD5ANdf.mjs.map +1 -0
- package/dist/ParticipantPage-DI9J2hc9.mjs +161 -0
- package/dist/ParticipantPage-DI9J2hc9.mjs.map +1 -0
- package/dist/ParticipantPage-Dd0RQWvi.mjs.map +1 -0
- package/dist/ParticipantPage-DpEOyLsF.mjs.map +1 -0
- package/dist/ParticipantPage-KSNX-i8c.mjs.map +1 -0
- package/dist/ParticipantsPage-CC--r1ny.mjs.map +1 -0
- package/dist/ParticipantsPage-CVfRUkIM.mjs +215 -0
- package/dist/ParticipantsPage-CVfRUkIM.mjs.map +1 -0
- package/dist/ParticipantsPage-DF_C3M6I.mjs.map +1 -0
- package/dist/PlayVideoIcon-CQJTc1O7.mjs.map +1 -0
- package/dist/PlayVideoIcon-QfmloAS6.mjs +50 -0
- package/dist/PlayVideoIcon-QfmloAS6.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-B_IyhbMR.mjs +67 -0
- package/dist/PlayerAnonymousModal-B_IyhbMR.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-C_13dRO7.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DH3k1hXl.mjs.map +1 -0
- package/dist/PlayerCommonParameters-BF8-HN2S.mjs +32 -0
- package/dist/PlayerCommonParameters-BF8-HN2S.mjs.map +1 -0
- package/dist/PlayerCommonParameters-Dn-OIiO8.mjs.map +1 -0
- package/dist/PlayerCompact-BFLLRuDe.mjs.map +1 -0
- package/dist/PlayerCompact-DEeOaAfG.mjs.map +1 -0
- package/dist/PlayerCompact-DdCp2i_P.mjs +157 -0
- package/dist/PlayerCompact-DdCp2i_P.mjs.map +1 -0
- package/dist/PlayerComponent-BA2dlmRD.mjs.map +1 -0
- package/dist/PlayerComponent-CWtN6Je1.mjs +894 -0
- package/dist/PlayerComponent-CWtN6Je1.mjs.map +1 -0
- package/dist/PlayerComponent-im3MzRzo.mjs.map +1 -0
- package/dist/PlayerFmIcon-BGCKu8Y2.mjs +49 -0
- package/dist/PlayerFmIcon-BGCKu8Y2.mjs.map +1 -0
- package/dist/PlayerFmIcon-BxQ1g45P.mjs.map +1 -0
- package/dist/PlayerLarge-3OMY0_Tt.mjs.map +1 -0
- package/dist/PlayerLarge-BqjHyRf7.mjs.map +1 -0
- package/dist/PlayerLarge-I7FONG3B.mjs +153 -0
- package/dist/PlayerLarge-I7FONG3B.mjs.map +1 -0
- package/dist/PlayerParameters-fpNIoYO9.mjs.map +1 -0
- package/dist/PlayerParameters-y4IXdHiE.mjs +195 -0
- package/dist/PlayerParameters-y4IXdHiE.mjs.map +1 -0
- package/dist/PlayerPlayButton-Bm6Rp8bS.mjs +327 -0
- package/dist/PlayerPlayButton-Bm6Rp8bS.mjs.map +1 -0
- package/dist/PlayerPlayButton-DdIezDHQ.mjs.map +1 -0
- package/dist/PlayerPlayButton-T1Fr5nWh.mjs.map +1 -0
- package/dist/PlayerProgressBar-5jLv6Y7S.mjs.map +1 -0
- package/dist/PlayerProgressBar-8Q9iCyLs.mjs.map +1 -0
- package/dist/PlayerProgressBar-C38YCi9Z.mjs +75 -0
- package/dist/PlayerProgressBar-C38YCi9Z.mjs.map +1 -0
- package/dist/PlayerStore-BVK7ItEM.mjs.map +1 -0
- package/dist/PlayerStore-DB5dkc3c.mjs +230 -0
- package/dist/PlayerStore-DB5dkc3c.mjs.map +1 -0
- package/dist/PlayerVideo-Bud1rcxU.mjs +52 -0
- package/dist/PlayerVideo-Bud1rcxU.mjs.map +1 -0
- package/dist/PlayerVideo-CX3JS9bK.mjs.map +1 -0
- package/dist/PlayerVideo-D0mTmRCq.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-CiTtloWK.mjs +82 -0
- package/dist/PlayerVideoDigiteka-CiTtloWK.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-DjlfXgIZ.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-Dn3neAtr.mjs.map +1 -0
- package/dist/PlayerVideoHls-BJj1m924.mjs.map +1 -0
- package/dist/PlayerVideoHls-D909ECaY.mjs.map +1 -0
- package/dist/PlayerVideoHls-DjAlSV39.mjs +199 -0
- package/dist/PlayerVideoHls-DjAlSV39.mjs.map +1 -0
- package/dist/PlayerYoutubeEmbed-D0A4EWhU.mjs.map +1 -0
- package/dist/PlayerYoutubeEmbed-D5ZhaHbv.mjs +32 -0
- package/dist/PlayerYoutubeEmbed-D5ZhaHbv.mjs.map +1 -0
- package/dist/PlaylistPage-B-qoOMDN.mjs.map +1 -0
- package/dist/PlaylistPage-Botg5_jv.mjs.map +1 -0
- package/dist/PlaylistPage-C56-smtp.mjs.map +1 -0
- package/dist/PlaylistPage-aIWF8InW.mjs +180 -0
- package/dist/PlaylistPage-aIWF8InW.mjs.map +1 -0
- package/dist/PlaylistsPage-BSNE0BZ9.mjs.map +1 -0
- package/dist/PlaylistsPage-D2QbHMQu.mjs.map +1 -0
- package/dist/PlaylistsPage-Pnn895N-.mjs +322 -0
- package/dist/PlaylistsPage-Pnn895N-.mjs.map +1 -0
- package/dist/PocketCastIcon-Nm45VN7b.mjs.map +1 -0
- package/dist/PocketCastIcon-RfG93aY3.mjs +49 -0
- package/dist/PocketCastIcon-RfG93aY3.mjs.map +1 -0
- package/dist/PodcastAddictIcon-DRF7w4QM.mjs.map +1 -0
- package/dist/PodcastAddictIcon-v149CijV.mjs +52 -0
- package/dist/PodcastAddictIcon-v149CijV.mjs.map +1 -0
- package/dist/PodcastFilterList-CQ8vxYW7.mjs.map +1 -0
- package/dist/PodcastFilterList-CZzD028O.mjs.map +1 -0
- package/dist/PodcastFilterList-Khjz0Dny.mjs +179 -0
- package/dist/PodcastFilterList-Khjz0Dny.mjs.map +1 -0
- package/dist/PodcastFilterList-NSECjEDk.mjs.map +1 -0
- package/dist/PodcastImage-B-_N0gS4.mjs.map +1 -0
- package/dist/PodcastImage-BrfDAORW.mjs +148 -0
- package/dist/PodcastImage-BrfDAORW.mjs.map +1 -0
- package/dist/PodcastImage-DTrISr_U.mjs.map +1 -0
- package/dist/PodcastInlineList-BkHA9K7I.mjs +126 -0
- package/dist/PodcastInlineList-BkHA9K7I.mjs.map +1 -0
- package/dist/PodcastInlineList-Bq-uF-n4.mjs.map +1 -0
- package/dist/PodcastInlineList-DOkuKLLe.mjs.map +1 -0
- package/dist/PodcastInlineList-cWF3ymZw.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-BWUKzZU9.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-Bc479tGK.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-CiuRCR7t.mjs +206 -0
- package/dist/PodcastInlineListTemplate-CiuRCR7t.mjs.map +1 -0
- package/dist/PodcastIsPlaying-B2uIZI7V.mjs.map +1 -0
- package/dist/PodcastIsPlaying-DEviEW23.mjs +21 -0
- package/dist/PodcastIsPlaying-DEviEW23.mjs.map +1 -0
- package/dist/PodcastIsPlaying-DzzRwggt.mjs.map +1 -0
- package/dist/PodcastItem-6qkOg90q.mjs +213 -0
- package/dist/PodcastItem-6qkOg90q.mjs.map +1 -0
- package/dist/PodcastItem-DLD5hfk7.mjs.map +1 -0
- package/dist/PodcastItem-ltLOqm-_.mjs.map +1 -0
- package/dist/PodcastItem-naoxNwra.mjs.map +1 -0
- package/dist/PodcastList-5vFekv1m.mjs.map +1 -0
- package/dist/PodcastList-B60tYB2G.mjs.map +1 -0
- package/dist/PodcastList-B9xZlEH4.mjs +152 -0
- package/dist/PodcastList-B9xZlEH4.mjs.map +1 -0
- package/dist/PodcastList-BYBjpOL8.mjs.map +1 -0
- package/dist/PodcastList-BuDcObSr.mjs.map +1 -0
- package/dist/PodcastList-DQanN0Bb.mjs.map +1 -0
- package/dist/PodcastList-gdQbPtGY.mjs +234 -0
- package/dist/PodcastList-gdQbPtGY.mjs.map +1 -0
- package/dist/PodcastList-jCzCt_eR.mjs.map +1 -0
- package/dist/PodcastPage-B5WpXRPn.mjs.map +1 -0
- package/dist/PodcastPage-BFjlYZGL.mjs.map +1 -0
- package/dist/PodcastPage-BUlluWvM.mjs.map +1 -0
- package/dist/PodcastPage-D3aBkgdA.mjs +585 -0
- package/dist/PodcastPage-D3aBkgdA.mjs.map +1 -0
- package/dist/PodcastPlannedSpinner-BJDQ4VPx.mjs +20 -0
- package/dist/PodcastPlannedSpinner-BJDQ4VPx.mjs.map +1 -0
- package/dist/PodcastPlannedSpinner-BN7unEqf.mjs.map +1 -0
- package/dist/PodcastPlayBar-BotWFQoJ.mjs.map +1 -0
- package/dist/PodcastPlayBar-C7pDzmXr.mjs +65 -0
- package/dist/PodcastPlayBar-C7pDzmXr.mjs.map +1 -0
- package/dist/PodcastPlayBar-Dc71_DSn.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-9u92vEzq.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-BRbHFpVR.mjs +52 -0
- package/dist/PodcastPlayBasicButton-BRbHFpVR.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-Ds_kg-b1.mjs.map +1 -0
- package/dist/PodcastPlayButton-CMaudNx5.mjs +203 -0
- package/dist/PodcastPlayButton-CMaudNx5.mjs.map +1 -0
- package/dist/PodcastPlayButton-RjnyBBYO.mjs.map +1 -0
- package/dist/PodcastPlayButton-TpwW09jp.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BLAD7cMN.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BllOtctp.mjs +82 -0
- package/dist/PodcastPlaylistInlineList-BllOtctp.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-CSITiCoX.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-kO0naL9A.mjs.map +1 -0
- package/dist/PodcastPresentationList-BcKJ9XZ7.mjs +152 -0
- package/dist/PodcastPresentationList-BcKJ9XZ7.mjs.map +1 -0
- package/dist/PodcastPresentationList-CRCO4abw.mjs.map +1 -0
- package/dist/PodcastPresentationList-CSWhzlnX.mjs.map +1 -0
- package/dist/PodcastProgressBar-Ctp0I77F.mjs.map +1 -0
- package/dist/PodcastProgressBar-Dih-EtLn.mjs.map +1 -0
- package/dist/PodcastProgressBar-xAMieMIt.mjs +80 -0
- package/dist/PodcastProgressBar-xAMieMIt.mjs.map +1 -0
- package/dist/PodcastRawTranscript-BbCPFt3l.mjs.map +1 -0
- package/dist/PodcastRawTranscript-CdKhzP8l.mjs +146 -0
- package/dist/PodcastRawTranscript-CdKhzP8l.mjs.map +1 -0
- package/dist/PodcastRawTranscript-Cp0XSlnz.mjs.map +1 -0
- package/dist/PodcastRubriqueList-BGiDpOsb.mjs.map +1 -0
- package/dist/PodcastRubriqueList-BqhnhoEz.mjs +65 -0
- package/dist/PodcastRubriqueList-BqhnhoEz.mjs.map +1 -0
- package/dist/PodcastRubriqueList-CPaVKHY5.mjs.map +1 -0
- package/dist/PodcastSeasonInfo-BwD--f9z.mjs +37 -0
- package/dist/PodcastSeasonInfo-BwD--f9z.mjs.map +1 -0
- package/dist/PodcastSeasonInfo-DL_CsYTY.mjs.map +1 -0
- package/dist/PodcastSwiperList-C2H-uWk9.mjs.map +1 -0
- package/dist/PodcastSwiperList-CY2NOyCN.mjs.map +1 -0
- package/dist/PodcastSwiperList-Cj4G10ln.mjs.map +1 -0
- package/dist/PodcastSwiperList-DI-90c4F.mjs +191 -0
- package/dist/PodcastSwiperList-DI-90c4F.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BubtZY7u.mjs.map +1 -0
- package/dist/PodcastmakerHeader-CURC8nyy.mjs.map +1 -0
- package/dist/PodcastmakerHeader-DLy0YSgm.mjs +46 -0
- package/dist/PodcastmakerHeader-DLy0YSgm.mjs.map +1 -0
- package/dist/PodcastsPage-CYG8bXaW.mjs.map +1 -0
- package/dist/PodcastsPage-DZlGTlaX.mjs +135 -0
- package/dist/PodcastsPage-DZlGTlaX.mjs.map +1 -0
- package/dist/PodcastsPage-PTwwATNT.mjs.map +1 -0
- package/dist/PodcastsPage-dOgLCDY5.mjs.map +1 -0
- package/dist/PresentationLayout-BWueEtST.mjs +70 -0
- package/dist/PresentationLayout-BWueEtST.mjs.map +1 -0
- package/dist/PresentationLayout-BmcVqEo8.mjs.map +1 -0
- package/dist/ProductorSearch-Bp7S8Sut.mjs.map +1 -0
- package/dist/ProductorSearch-ir5rkehT.mjs +132 -0
- package/dist/ProductorSearch-ir5rkehT.mjs.map +1 -0
- package/dist/ProductorSearch-yQPCj7Pa.mjs.map +1 -0
- package/dist/ProgressBar-B6z6oHHm.mjs.map +1 -0
- package/dist/ProgressBar-DLbzpY3L.mjs.map +1 -0
- package/dist/ProgressBar-ubd7c7H0.mjs +135 -0
- package/dist/ProgressBar-ubd7c7H0.mjs.map +1 -0
- package/dist/QrCode-BR3jPdJS.mjs +140 -0
- package/dist/QrCode-BR3jPdJS.mjs.map +1 -0
- package/dist/QrCode-C7IL9c3c.mjs.map +1 -0
- package/dist/QrCode-D86qgrdm.mjs.map +1 -0
- package/dist/QrCodeModal-9PCWJenP.mjs.map +1 -0
- package/dist/QrCodeModal-Cf1O9nwT.mjs.map +1 -0
- package/dist/QrCodeModal-DnREe0Jk.mjs +48 -0
- package/dist/QrCodeModal-DnREe0Jk.mjs.map +1 -0
- package/dist/RadioCurrently-BNzaJNoY.mjs +89 -0
- package/dist/RadioCurrently-BNzaJNoY.mjs.map +1 -0
- package/dist/RadioCurrently-Bz4kKaGc.mjs.map +1 -0
- package/dist/RadioCurrently-COaGoNF8.mjs.map +1 -0
- package/dist/RadioHistory-B_PBz6hY.mjs.map +1 -0
- package/dist/RadioHistory-DMGTXE4V.mjs +116 -0
- package/dist/RadioHistory-DMGTXE4V.mjs.map +1 -0
- package/dist/RadioHistory-Yhqmee1d.mjs.map +1 -0
- package/dist/RadioImage-B5jrzD8s.mjs.map +1 -0
- package/dist/RadioImage-BgrUZZIa.mjs +66 -0
- package/dist/RadioImage-BgrUZZIa.mjs.map +1 -0
- package/dist/RadioImage-D2MFmuqR.mjs.map +1 -0
- package/dist/RadioList-Bab4Pj9m.mjs.map +1 -0
- package/dist/RadioList-Bh8ub58m.mjs +95 -0
- package/dist/RadioList-Bh8ub58m.mjs.map +1 -0
- package/dist/RadioList-Ctbf98I9.mjs.map +1 -0
- package/dist/RadioPage-BY7YU_yL.mjs.map +1 -0
- package/dist/RadioPage-BtsGEI5i.mjs +105 -0
- package/dist/RadioPage-BtsGEI5i.mjs.map +1 -0
- package/dist/RadioPage-DtS3r-48.mjs.map +1 -0
- package/dist/RadioPlanning-B-sRUVGb.mjs.map +1 -0
- package/dist/RadioPlanning-D2RNEdEQ.mjs.map +1 -0
- package/dist/RadioPlanning-DMighzUU.mjs +257 -0
- package/dist/RadioPlanning-DMighzUU.mjs.map +1 -0
- package/dist/RadioProgressBar-4MT37o9a.mjs.map +1 -0
- package/dist/RadioProgressBar-CiapCPN-.mjs +47 -0
- package/dist/RadioProgressBar-CiapCPN-.mjs.map +1 -0
- package/dist/RadioProgressBar-DrxSXvmY.mjs.map +1 -0
- package/dist/RadiolineIcon-CIePjE9k.mjs.map +1 -0
- package/dist/RadiolineIcon-QP88nzG8.mjs +50 -0
- package/dist/RadiolineIcon-QP88nzG8.mjs.map +1 -0
- package/dist/RecaptchaModal-BThWkUuj.mjs.map +1 -0
- package/dist/RecaptchaModal-BkETInqb.mjs.map +1 -0
- package/dist/RecaptchaModal-DlThDzSF.mjs +119 -0
- package/dist/RecaptchaModal-DlThDzSF.mjs.map +1 -0
- package/dist/ReportAbuseModal-BfYBle6z.mjs.map +1 -0
- package/dist/ReportAbuseModal-Bnhfpowa.mjs.map +1 -0
- package/dist/ReportAbuseModal-Pd8P9tNB.mjs +107 -0
- package/dist/ReportAbuseModal-Pd8P9tNB.mjs.map +1 -0
- package/dist/RightsIndicator-COEtdoj_.mjs.map +1 -0
- package/dist/RightsIndicator-CZtSrb5K.mjs.map +1 -0
- package/dist/RightsIndicator-DNmA3L9O.mjs.map +1 -0
- package/dist/RightsIndicator-DYhqEbAB.mjs +69 -0
- package/dist/RightsIndicator-DYhqEbAB.mjs.map +1 -0
- package/dist/RightsWrapper-BHIinXXL.mjs.map +1 -0
- package/dist/RightsWrapper-CewAJoDY.mjs.map +1 -0
- package/dist/RightsWrapper-Cz5TnSUC.mjs +164 -0
- package/dist/RightsWrapper-Cz5TnSUC.mjs.map +1 -0
- package/dist/RubriqueChoice-BN4nirmx.mjs +120 -0
- package/dist/RubriqueChoice-BN4nirmx.mjs.map +1 -0
- package/dist/RubriqueChoice-BxmZoBZL.mjs.map +1 -0
- package/dist/RubriqueChoice-C4rglHV1.mjs.map +1 -0
- package/dist/RubriqueChooser-BceFw2x2.mjs.map +1 -0
- package/dist/RubriqueChooser-BgIvDDv7.mjs +213 -0
- package/dist/RubriqueChooser-BgIvDDv7.mjs.map +1 -0
- package/dist/RubriqueFilter-BwBU4kpV.mjs +168 -0
- package/dist/RubriqueFilter-BwBU4kpV.mjs.map +1 -0
- package/dist/RubriqueFilter-C7lAoJNq.mjs.map +1 -0
- package/dist/RubriqueFilter-CKF-seUZ.mjs.map +1 -0
- package/dist/RubriqueFilter-oDd4AytG.mjs.map +1 -0
- package/dist/RubriqueList-Cr0vXMew.mjs.map +1 -0
- package/dist/RubriqueList-D2PPns3m.mjs +169 -0
- package/dist/RubriqueList-D2PPns3m.mjs.map +1 -0
- package/dist/RubriqueList-zHKQE6OL.mjs.map +1 -0
- package/dist/RubriquePage-2ITwxYLr.mjs.map +1 -0
- package/dist/RubriquePage-Bpt2wwjK.mjs.map +1 -0
- package/dist/RubriquePage-CFrQ5Hw-.mjs +86 -0
- package/dist/RubriquePage-CFrQ5Hw-.mjs.map +1 -0
- package/dist/RubriquePage-Cf9QJQJB.mjs.map +1 -0
- package/dist/SearchOrder-CJ0Fj6Wd.mjs.map +1 -0
- package/dist/SearchOrder-CLl5slg5.mjs +70 -0
- package/dist/SearchOrder-CLl5slg5.mjs.map +1 -0
- package/dist/SearchPage-BopqRW_4.mjs.map +1 -0
- package/dist/SearchPage-BskiH0Hg.mjs +58 -0
- package/dist/SearchPage-BskiH0Hg.mjs.map +1 -0
- package/dist/SearchPage-D0Tz8ELe.mjs.map +1 -0
- package/dist/SearchPage-DLj9zYeL.mjs.map +1 -0
- package/dist/ShareAnonymous-B16PsWEJ.mjs +249 -0
- package/dist/ShareAnonymous-B16PsWEJ.mjs.map +1 -0
- package/dist/ShareAnonymous-CBVGRI6L.mjs.map +1 -0
- package/dist/ShareAnonymous-DmDaW3PH.mjs.map +1 -0
- package/dist/ShareModalPlayer-BV_1CKus.mjs.map +1 -0
- package/dist/ShareModalPlayer-SIkm_vpv.mjs.map +1 -0
- package/dist/ShareModalPlayer-lGW9vRFS.mjs +111 -0
- package/dist/ShareModalPlayer-lGW9vRFS.mjs.map +1 -0
- package/dist/ShareNewsletter-BigVU8EV.mjs.map +1 -0
- package/dist/ShareNewsletter-CRQBK_3P.mjs +181 -0
- package/dist/ShareNewsletter-CRQBK_3P.mjs.map +1 -0
- package/dist/ShareNewsletter-CleivWOu.mjs.map +1 -0
- package/dist/SharePlayer-CGlvYVn4.mjs.map +1 -0
- package/dist/SharePlayer-CSKYsE9H.mjs.map +1 -0
- package/dist/SharePlayer-Cdjz1NrC.mjs +319 -0
- package/dist/SharePlayer-Cdjz1NrC.mjs.map +1 -0
- package/dist/SharePlayerColors-D-9MoYm6.mjs.map +1 -0
- package/dist/SharePlayerColors-p_LreBcc.mjs +61 -0
- package/dist/SharePlayerColors-p_LreBcc.mjs.map +1 -0
- package/dist/SharePlayerRadio-BJBbDNn5.mjs.map +1 -0
- package/dist/SharePlayerRadio-DbHw7Vcn.mjs +99 -0
- package/dist/SharePlayerRadio-DbHw7Vcn.mjs.map +1 -0
- package/dist/SharePlayerRadio-OMXyRc4D.mjs.map +1 -0
- package/dist/SharePlayerTypes-BTWxUJWi.mjs +206 -0
- package/dist/SharePlayerTypes-BTWxUJWi.mjs.map +1 -0
- package/dist/SharePlayerTypes-C2_JNU6C.mjs.map +1 -0
- package/dist/SharePlayerTypes-DBERUe0_.mjs.map +1 -0
- package/dist/ShareSocialsButtons-Bwh9bMoR.mjs +132 -0
- package/dist/ShareSocialsButtons-Bwh9bMoR.mjs.map +1 -0
- package/dist/ShareSocialsButtons-CMOEQdYB.mjs.map +1 -0
- package/dist/ShareSocialsButtons-D0b8OawP.mjs.map +1 -0
- package/dist/SimpleLayout-BRjk598k.mjs.map +1 -0
- package/dist/SimpleLayout-D9uJF7mS.mjs +28 -0
- package/dist/SimpleLayout-D9uJF7mS.mjs.map +1 -0
- package/dist/SimpleLayout-b-QQv5aQ.mjs.map +1 -0
- package/dist/SmartLinkPage-CSTfusv3.mjs.map +1 -0
- package/dist/SmartLinkPage-CeGDzza8.mjs +187 -0
- package/dist/SmartLinkPage-CeGDzza8.mjs.map +1 -0
- package/dist/SmartLinkPage-DGRvD-vv.mjs.map +1 -0
- package/dist/SnackBar-DdE1dYhi.mjs.map +1 -0
- package/dist/SnackBar-jRnNt--Z.mjs +150 -0
- package/dist/SnackBar-jRnNt--Z.mjs.map +1 -0
- package/dist/SubscribeButtons-CHsq-Vk7.mjs +160 -0
- package/dist/SubscribeButtons-CHsq-Vk7.mjs.map +1 -0
- package/dist/SubscribeButtons-CJhlLSWX.mjs.map +1 -0
- package/dist/SubscribeButtons-ChrHIXBv.mjs.map +1 -0
- package/dist/SwiperList-BKiF8jIc.mjs +170 -0
- package/dist/SwiperList-BKiF8jIc.mjs.map +1 -0
- package/dist/SwiperList-BoALb00d.mjs.map +1 -0
- package/dist/SwiperList-DBmjvvCX.mjs.map +1 -0
- package/dist/TagList-BECg0vNz.mjs.map +1 -0
- package/dist/TagList-DRJvO9Gr.mjs.map +1 -0
- package/dist/TagList-DiGc-7Rj.mjs +110 -0
- package/dist/TagList-DiGc-7Rj.mjs.map +1 -0
- package/dist/TagPage-Bn2cVKpN.mjs.map +1 -0
- package/dist/TagPage-C9x5XWOd.mjs.map +1 -0
- package/dist/TagPage-DchdAQV2.mjs.map +1 -0
- package/dist/TagPage-Vd8JH7-r.mjs +99 -0
- package/dist/TagPage-Vd8JH7-r.mjs.map +1 -0
- package/dist/TopBar-B20_SqNY.mjs.map +1 -0
- package/dist/TopBar-DRclhhd6.mjs.map +1 -0
- package/dist/TopBar-FHuZ4j9H.mjs +358 -0
- package/dist/TopBar-FHuZ4j9H.mjs.map +1 -0
- package/dist/TuninIcon-BplDWgtD.mjs.map +1 -0
- package/dist/TuninIcon-SHr7Y1qJ.mjs +49 -0
- package/dist/TuninIcon-SHr7Y1qJ.mjs.map +1 -0
- package/dist/UserButtonContent-B-AMExwJ.mjs.map +1 -0
- package/dist/UserButtonContent-Btivzl2V.mjs.map +1 -0
- package/dist/UserButtonContent-I7ahjnuS.mjs +163 -0
- package/dist/UserButtonContent-I7ahjnuS.mjs.map +1 -0
- package/dist/VastStore-BPwOrXvb.mjs +80 -0
- package/dist/VastStore-BPwOrXvb.mjs.map +1 -0
- package/dist/VideoModuleBox-Bw0xu9_f.mjs.map +1 -0
- package/dist/VideoModuleBox-C8zDhbqA.mjs.map +1 -0
- package/dist/VideoModuleBox-Cl6YoznO.mjs +70 -0
- package/dist/VideoModuleBox-Cl6YoznO.mjs.map +1 -0
- package/dist/VideoPage-B-lgTFnX.mjs.map +1 -0
- package/dist/VideoPage-B5Tp2PMs.mjs +222 -0
- package/dist/VideoPage-B5Tp2PMs.mjs.map +1 -0
- package/dist/VideoPage-X3dZyaQH.mjs.map +1 -0
- package/dist/XIcon-DAVMitPh.mjs +49 -0
- package/dist/XIcon-DAVMitPh.mjs.map +1 -0
- package/dist/XIcon-Dz4rI_Hd.mjs.map +1 -0
- package/dist/_plugin-vue_export-helper-BOaGB7Aw.mjs +8 -0
- package/dist/aggregatorsApi-hyFtV8aL.mjs.map +1 -0
- package/dist/api-tznrp2lH.mjs.map +1 -0
- package/dist/apiUtils-D4ULJJbh.mjs.map +1 -0
- package/dist/buttons-cdGcewjB.mjs.map +1 -0
- package/dist/buttons-kyb_6P3e.mjs.map +1 -0
- package/dist/buttons-uGrbDDaA.mjs +113 -0
- package/dist/buttons-uGrbDDaA.mjs.map +1 -0
- package/dist/classicApi-BKNiWOG4.mjs +1790 -0
- package/dist/classicApi-BKNiWOG4.mjs.map +1 -0
- package/dist/classicApi-DC7iamat.mjs.map +1 -0
- package/dist/config-C73GMJpz.mjs +9 -0
- package/dist/config-C73GMJpz.mjs.map +1 -0
- package/dist/cookiesHelper-BQksSais.mjs +23 -0
- package/dist/cookiesHelper-BQksSais.mjs.map +1 -0
- package/dist/displayHelper-CpXshNzz.mjs +22 -0
- package/dist/displayHelper-CpXshNzz.mjs.map +1 -0
- package/dist/domHelper-DTMIrMbs.mjs +15 -0
- package/dist/domHelper-DTMIrMbs.mjs.map +1 -0
- package/dist/downloadHelper-CWLRMcjc.mjs +36 -0
- package/dist/downloadHelper-CWLRMcjc.mjs.map +1 -0
- package/dist/downloadHelper-DB969RNb.mjs.map +1 -0
- package/dist/educationen-B0PNsHqt.mjs +18 -0
- package/dist/educationen-B0PNsHqt.mjs.map +1 -0
- package/dist/educationfr-DnXyASTX.mjs +6 -0
- package/dist/educationfr-DnXyASTX.mjs.map +1 -0
- package/dist/emission-ByePXT9Y.mjs +33 -0
- package/dist/emission-ByePXT9Y.mjs.map +1 -0
- package/dist/emissionApi-WS6yl56a.mjs.map +1 -0
- package/dist/groupsApi-CecqFbyg.mjs.map +1 -0
- package/dist/i18n-l4HCrPF3.mjs.map +1 -0
- package/dist/icons-1GR2yFzw.mjs.map +1 -0
- package/dist/icons-B4eHXcRy.mjs +18 -0
- package/dist/icons-B4eHXcRy.mjs.map +1 -0
- package/dist/index.css +7208 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +735 -408
- package/dist/index.mjs.map +1 -0
- package/dist/keys-TjlLYNQE.mjs +18 -0
- package/dist/keys-TjlLYNQE.mjs.map +1 -0
- package/dist/localisation-iXoGtJ3j.mjs +13 -0
- package/dist/localisation-iXoGtJ3j.mjs.map +1 -0
- package/dist/logo_saooti_play_black-BLx_RUuM.mjs +6 -0
- package/dist/logo_saooti_play_black-BLx_RUuM.mjs.map +1 -0
- package/dist/messages-Czjqh0tU.mjs +2679 -0
- package/dist/messages-Czjqh0tU.mjs.map +1 -0
- package/dist/organisation-CxyRYjC0.mjs +19 -0
- package/dist/organisation-CxyRYjC0.mjs.map +1 -0
- package/dist/ouest_france_logo-WOgdbVGH.mjs +6 -0
- package/dist/ouest_france_logo-WOgdbVGH.mjs.map +1 -0
- package/dist/playlistApi-LcxgQmJH.mjs.map +1 -0
- package/dist/podcast-Da9L7I5Q.mjs +76 -0
- package/dist/podcast-Da9L7I5Q.mjs.map +1 -0
- package/dist/podcastApi-5-MtD1l_.mjs.map +1 -0
- package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
- package/dist/src/components/composable/usePresentationItem.d.ts +1 -1
- package/dist/src/i18n.d.ts +8 -1
- package/dist/src/locale/messages.d.ts +30 -0
- package/dist/src/stores/ParamSdkStore.d.ts +6 -1
- package/dist/src/stores/class/general/organisation.d.ts +2 -0
- package/dist/stringHelper-DFr4Khve.mjs +15 -0
- package/dist/stringHelper-DFr4Khve.mjs.map +1 -0
- package/dist/tests-mocks.mjs +16 -14
- package/dist/tests-mocks.mjs.map +1 -0
- package/dist/tests.mjs +86 -51
- package/dist/tests.mjs.map +1 -0
- package/dist/transcriptionApi-Drk3sv6J.mjs.map +1 -0
- package/dist/types-8roXR0of.mjs +11 -0
- package/dist/types-8roXR0of.mjs.map +1 -0
- package/dist/useAdvancedParamInit-Ci4c333p.mjs +162 -0
- package/dist/useAdvancedParamInit-Ci4c333p.mjs.map +1 -0
- package/dist/useAdvancedParamInit-CpNDHede.mjs.map +1 -0
- package/dist/useCountdown-DPweZzmz.mjs +51 -0
- package/dist/useCountdown-DPweZzmz.mjs.map +1 -0
- package/dist/useDayjs-BqojyoqU.mjs +32 -0
- package/dist/useDayjs-BqojyoqU.mjs.map +1 -0
- package/dist/useDayjs-zt5R5ZIe.mjs.map +1 -0
- package/dist/useErrorHandler-DNz9da5N.mjs +19 -0
- package/dist/useErrorHandler-DNz9da5N.mjs.map +1 -0
- package/dist/useErrorHandler-Nce0QKlB.mjs.map +1 -0
- package/dist/useImageProxy-B2vNJKgd.mjs +20 -0
- package/dist/useImageProxy-B2vNJKgd.mjs.map +1 -0
- package/dist/useImageProxy-C7wjiN0F.mjs.map +1 -0
- package/dist/useOrgaComputed-D8ikvtGw.mjs.map +1 -0
- package/dist/useOrgaComputed-T8Mhcne0.mjs +19 -0
- package/dist/useOrgaComputed-T8Mhcne0.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-CSdUmqxN.mjs +108 -0
- package/dist/usePlayerLogicProgress-CSdUmqxN.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-DnNbZCWg.mjs.map +1 -0
- package/dist/usePodcastView-BJw3J1sE.mjs.map +1 -0
- package/dist/usePodcastView-DR83HM0j.mjs +56 -0
- package/dist/usePodcastView-DR83HM0j.mjs.map +1 -0
- package/dist/usePresentationItem-BLUjp4Le.mjs.map +1 -0
- package/dist/usePresentationItem-C28KKH4P.mjs.map +1 -0
- package/dist/usePresentationItem-rJkFlZFu.mjs +144 -0
- package/dist/usePresentationItem-rJkFlZFu.mjs.map +1 -0
- package/dist/useResizePhone-CpfFUmfV.mjs +37 -0
- package/dist/useResizePhone-CpfFUmfV.mjs.map +1 -0
- package/dist/useRights-JVTbEOUh.mjs +276 -0
- package/dist/useRights-JVTbEOUh.mjs.map +1 -0
- package/dist/useRights-Z6_G-y4s.mjs.map +1 -0
- package/dist/useRouteUpdateParams-DurlddRA.mjs +59 -0
- package/dist/useRouteUpdateParams-DurlddRA.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-CQxqKOWL.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-CWUxRSYK.mjs +13 -0
- package/dist/useRubriquesFilterComputed-CWUxRSYK.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-D7JQhKT5.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-U-wcZUul.mjs +36 -0
- package/dist/useRubriquesFilterParam-U-wcZUul.mjs.map +1 -0
- package/dist/useSeasonsManagement-D-ngDipg.mjs +44 -0
- package/dist/useSeasonsManagement-D-ngDipg.mjs.map +1 -0
- package/dist/useSelenium-DwQtyBRt.mjs +11 -0
- package/dist/useSelenium-DwQtyBRt.mjs.map +1 -0
- package/dist/useSeoTitleUrl-CrM1YzAc.mjs +31 -0
- package/dist/useSeoTitleUrl-CrM1YzAc.mjs.map +1 -0
- package/dist/useSharePath-Vh29oc9Z.mjs +70 -0
- package/dist/useSharePath-Vh29oc9Z.mjs.map +1 -0
- package/dist/useSharePlatforms-B8R3fZy9.mjs.map +1 -0
- package/dist/useSharePlatforms-D0v8XOk3.mjs.map +1 -0
- package/dist/useSharePlatforms-aq487WBa.mjs +415 -0
- package/dist/useSharePlatforms-aq487WBa.mjs.map +1 -0
- package/dist/useSimplePageParam-CL9Tbu3B.mjs.map +1 -0
- package/dist/useSimplePageParam-CPjjYD88.mjs +54 -0
- package/dist/useSimplePageParam-CPjjYD88.mjs.map +1 -0
- package/dist/useTagOf-JxYdEyRm.mjs +20 -0
- package/dist/useTagOf-JxYdEyRm.mjs.map +1 -0
- package/dist/useTranslation-B-nJSPAk.mjs +205 -0
- package/dist/useTranslation-B-nJSPAk.mjs.map +1 -0
- package/dist/useTranslation-DjbHwIm7.mjs.map +1 -0
- package/dist/usefetchRadioData-CHglTIFu.mjs.map +1 -0
- package/dist/usefetchRadioData-gMdg1_Yh.mjs +55 -0
- package/dist/usefetchRadioData-gMdg1_Yh.mjs.map +1 -0
- package/dist/youtubeVideoHelper-DOeaXxVp.mjs +16 -0
- package/dist/youtubeVideoHelper-DOeaXxVp.mjs.map +1 -0
- package/package.json +8 -8
- package/src/components/display/live/RadioCurrently.vue +3 -4
- package/src/components/layouts/PresentationLayout.vue +9 -3
- package/src/components/misc/ProgressBar.vue +0 -1
- package/src/components/misc/player/ads/AdsProgressBar.vue +17 -1
- package/src/components/misc/player/radio/RadioProgressBar.vue +16 -0
- package/dist/AccessibilityModal-CBIb3UQS.mjs +0 -93
- package/dist/AdsProgressBar-BwRrrKOT.mjs +0 -19
- package/dist/AdvancedSearch-Bd9tK-4i.mjs +0 -249
- package/dist/AmazonMusicIcon-6zqZK6Q9.mjs +0 -39
- package/dist/ApplePodcastIcon-C3ogP5y5.mjs +0 -40
- package/dist/CategoryChooser-Ct0No4RM.mjs +0 -173
- package/dist/CategoryFilter-CNCjhnMP.mjs +0 -146
- package/dist/CategoryList-Buh73sPa.mjs +0 -107
- package/dist/CategoryPage-guP6_hCq.mjs +0 -28
- package/dist/CategorySearchFilter-BRfxF0yK.mjs +0 -39
- package/dist/ChapteringModal-B29-28dk.mjs +0 -46
- package/dist/CheckIdentityModal-Dh-7hC5M.mjs +0 -51
- package/dist/ChooseEpisodesNumber-CXJO5dfs.mjs +0 -33
- package/dist/ClassicAccordion-Czni43ek.mjs +0 -71
- package/dist/ClassicAlert-1IB6N33c.mjs +0 -35
- package/dist/ClassicBigChip-D6QO8W-G.mjs +0 -25
- package/dist/ClassicCheckbox-xPu56Drn.mjs +0 -89
- package/dist/ClassicContentEditable-CWmtRihd.mjs +0 -45
- package/dist/ClassicCopyButton-DJ9T09fS.mjs +0 -52
- package/dist/ClassicDatePicker-BrPx6CHY.mjs +0 -187
- package/dist/ClassicEmojiPicker-2c55qjy6.mjs +0 -63
- package/dist/ClassicHelpButton-DdEJu6tX.mjs +0 -34
- package/dist/ClassicInputText-ILQDQz8R.mjs +0 -270
- package/dist/ClassicLazy-DhdsXyI4.mjs +0 -56
- package/dist/ClassicLoading-CXfMjpyl.mjs +0 -40
- package/dist/ClassicModal-Dl2IdzXZ.mjs +0 -63
- package/dist/ClassicModalInBody-D5-RfQ8Z.mjs +0 -58
- package/dist/ClassicMultiselect-DKdQdAtp.mjs +0 -201
- package/dist/ClassicNav-DYez6p1J.mjs +0 -47
- package/dist/ClassicPopover-6uo-YUgO.mjs +0 -167
- package/dist/ClassicRadio-BbJEgMB7.mjs +0 -61
- package/dist/ClassicRadioLabel-DgimkkQe.mjs +0 -76
- package/dist/ClassicSearch-CtL1cpnF.mjs +0 -63
- package/dist/ClassicSelect-BpA0jKN6.mjs +0 -111
- package/dist/ClassicSpinner-DFRDD51g.mjs +0 -28
- package/dist/ClassicTabs-DYOZLNK2.mjs +0 -40
- package/dist/ClassicTagInput-DiRwA8CF.mjs +0 -62
- package/dist/ClassicWysiwyg-CbBzD-21.mjs +0 -164
- package/dist/ClipboardModal-DBIetCe6.mjs +0 -56
- package/dist/CommentBasicView-CJgGRZXW.mjs +0 -76
- package/dist/CommentInput-BuXFDUZI.mjs +0 -111
- package/dist/CommentItem-C1KdIG3j.mjs +0 -155
- package/dist/CommentList-DTKpZSb6.mjs +0 -204
- package/dist/CommentMoreActions-BiyzPozQ.mjs +0 -191
- package/dist/CommentName-BdoUJC9A.mjs +0 -56
- package/dist/CommentParentInfo-kXKfL3N4.mjs +0 -36
- package/dist/CommentPlayer-BIOwn4Ao.mjs +0 -47
- package/dist/CommentSection-CQGAn83J.mjs +0 -79
- package/dist/CommentStore-CVBkPvHJ.mjs +0 -279
- package/dist/ContractPreviewModal-BJEnYMoK.mjs +0 -53
- package/dist/CountDown-o6ye6yv1.mjs +0 -17
- package/dist/CountdownOctopus-D0X5hVBu.mjs +0 -23
- package/dist/DateFilter-67VvJ4ez.mjs +0 -79
- package/dist/DeezerIcon-CybxfijL.mjs +0 -39
- package/dist/DownloadPodcastButton-CcUJ8Wuh.mjs +0 -30
- package/dist/EditCommentModal-DoVppFIY.mjs +0 -114
- package/dist/EditFtpIcon-B1FO4hqc.mjs +0 -39
- package/dist/EmissionGroupChooser-B10wDKyp.mjs +0 -44
- package/dist/EmissionInlineList-Cn8j50o6.mjs +0 -113
- package/dist/EmissionItem-CQbtdUNM.mjs +0 -116
- package/dist/EmissionList-E0Hsq0mr.mjs +0 -230
- package/dist/EmissionPage-BY0IY-Ci.mjs +0 -188
- package/dist/EmissionPlayerItem-KHWB18Ru.mjs +0 -119
- package/dist/EmissionPresentationItem-2hfEZ9Wc.mjs +0 -41
- package/dist/EmissionPresentationList-Da6YRCuJ.mjs +0 -92
- package/dist/EmissionsPage-BpPlQ1vL.mjs +0 -112
- package/dist/Error403Page-D7zKplcn.mjs +0 -40
- package/dist/ErrorMessage-B4gtlriP.mjs +0 -22
- package/dist/FooterGarSection-CwAVj0X8.mjs +0 -39
- package/dist/FooterSection-CklRE0yr.mjs +0 -148
- package/dist/GeneralStore-Darfv4af.mjs +0 -39
- package/dist/HomeDropdown-D65QDBBQ.mjs +0 -66
- package/dist/HomePage-stJtq5XR.mjs +0 -106
- package/dist/IHeartIcon-DP1otYre.mjs +0 -42
- package/dist/LikeButton-Cu8jAJHx.mjs +0 -40
- package/dist/LikeSection-xB4hZ4kv.mjs +0 -96
- package/dist/ListPaginate-gdpJpyC6.mjs +0 -147
- package/dist/LiveHorizontalList-D1QZCKdq.mjs +0 -77
- package/dist/LiveList-CerWcFJv.mjs +0 -206
- package/dist/LivesPage-C-jtDd4n.mjs +0 -40
- package/dist/MapPage-Bef5gLQu.mjs +0 -240
- package/dist/MessageModal-BcqS77v6.mjs +0 -101
- package/dist/MobileMenu-CV5t_RXg.mjs +0 -136
- package/dist/MonetizableFilter-B7NHzXEY.mjs +0 -58
- package/dist/NewsletterModal-CEI0I08q.mjs +0 -53
- package/dist/OctopusMultiselect-CaLjXg_3.mjs +0 -234
- package/dist/OrganisationChooser-CvHoHxHL.mjs +0 -133
- package/dist/OrganisationChooserLight-CJ7IbvRM.mjs +0 -48
- package/dist/PageLogout-CVZHOw8c.mjs +0 -12
- package/dist/PageNotFound-Cgmgm9i1.mjs +0 -37
- package/dist/PaginateParams-Bjz3ZI-5.mjs +0 -75
- package/dist/PaginateSection-Oip_5JHt.mjs +0 -137
- package/dist/ParticipantDescription-DVSfKvtg.mjs +0 -46
- package/dist/ParticipantInlineList-CVsGpX6b.mjs +0 -84
- package/dist/ParticipantItem-BIWNtU2J.mjs +0 -91
- package/dist/ParticipantPage-BvSoNApw.mjs +0 -129
- package/dist/ParticipantsPage-ho_vMsWs.mjs +0 -168
- package/dist/PlayVideoIcon-BhTQpMyL.mjs +0 -40
- package/dist/PlayerAnonymousModal-DI-OzIJ0.mjs +0 -61
- package/dist/PlayerCommonParameters-x0zV7AoW.mjs +0 -27
- package/dist/PlayerCompact-BjS5HFvK.mjs +0 -128
- package/dist/PlayerComponent-CajQtPxX.mjs +0 -592
- package/dist/PlayerFmIcon-D7gURz4r.mjs +0 -39
- package/dist/PlayerLarge-H4sl7hoe.mjs +0 -128
- package/dist/PlayerParameters-kVBMXQIb.mjs +0 -173
- package/dist/PlayerPlayButton-DfzHBM_X.mjs +0 -231
- package/dist/PlayerProgressBar-CSY72hgw.mjs +0 -67
- package/dist/PlayerStore-C4T1vCHz.mjs +0 -166
- package/dist/PlayerVideo-BfR5fBo_.mjs +0 -35
- package/dist/PlayerVideoDigiteka-C6ZA6XkR.mjs +0 -59
- package/dist/PlayerVideoHls-B8dm2-2-.mjs +0 -125
- package/dist/PlayerYoutubeEmbed-D-UrFhXm.mjs +0 -25
- package/dist/PlaylistPage-DTy_55xp.mjs +0 -135
- package/dist/PlaylistsPage-m-ST2PUd.mjs +0 -254
- package/dist/PocketCastIcon-CM5NDsDa.mjs +0 -39
- package/dist/PodcastAddictIcon-CW3Uxj4I.mjs +0 -42
- package/dist/PodcastFilterList-Bz8c8rOJ.mjs +0 -139
- package/dist/PodcastImage-BGQti5JM.mjs +0 -115
- package/dist/PodcastInlineList-WvkPSh1V.mjs +0 -117
- package/dist/PodcastInlineListTemplate-D1bIqp9s.mjs +0 -180
- package/dist/PodcastIsPlaying-mWJppqAl.mjs +0 -17
- package/dist/PodcastItem-CYPwjD38.mjs +0 -158
- package/dist/PodcastList-BfqxVGag.mjs +0 -184
- package/dist/PodcastList-D3jE4KxK.mjs +0 -113
- package/dist/PodcastPage-GTzk5mUv.mjs +0 -409
- package/dist/PodcastPlannedSpinner-DcDDays8.mjs +0 -12
- package/dist/PodcastPlayBar-YJnOuGTK.mjs +0 -39
- package/dist/PodcastPlayBasicButton-BYpnGOO1.mjs +0 -44
- package/dist/PodcastPlayButton-CJ8BRg-T.mjs +0 -118
- package/dist/PodcastPlaylistInlineList-CmgnXWqI.mjs +0 -63
- package/dist/PodcastPresentationList-BBbhrj5M.mjs +0 -130
- package/dist/PodcastProgressBar-DDmGqHRZ.mjs +0 -66
- package/dist/PodcastRawTranscript-uMquvyIx.mjs +0 -100
- package/dist/PodcastRubriqueList-CMcls_jK.mjs +0 -46
- package/dist/PodcastSeasonInfo-DDGSqj8M.mjs +0 -28
- package/dist/PodcastSwiperList-CR4Daki7.mjs +0 -164
- package/dist/PodcastmakerHeader-Blma5tOE.mjs +0 -33
- package/dist/PodcastsPage-BZfbH613.mjs +0 -123
- package/dist/PresentationLayout-LcZqb8bn.mjs +0 -62
- package/dist/ProductorSearch-Cyo0OOte.mjs +0 -91
- package/dist/ProgressBar-h-6hD6C6.mjs +0 -112
- package/dist/QrCode-CB7uCURG.mjs +0 -105
- package/dist/QrCodeModal-uLXUjfFk.mjs +0 -43
- package/dist/RadioCurrently-CxTpzc3O.mjs +0 -57
- package/dist/RadioHistory-DaY_apJL.mjs +0 -89
- package/dist/RadioImage-CGdu0tqS.mjs +0 -46
- package/dist/RadioList-Dwjy8BJK.mjs +0 -70
- package/dist/RadioPage-B0cZlWcd.mjs +0 -72
- package/dist/RadioPlanning-yTAzd4fk.mjs +0 -183
- package/dist/RadioProgressBar-DLRlsyeG.mjs +0 -31
- package/dist/RadiolineIcon-CxHZGhfr.mjs +0 -40
- package/dist/RecaptchaModal-eBNvLZYg.mjs +0 -95
- package/dist/ReportAbuseModal-0i7fa_Kb.mjs +0 -92
- package/dist/RightsIndicator-BFKSa05U.mjs +0 -58
- package/dist/RightsWrapper-BRWuAx2F.mjs +0 -104
- package/dist/RubriqueChoice-DWvVVaMg.mjs +0 -101
- package/dist/RubriqueChooser-B7wvJeQc.mjs +0 -165
- package/dist/RubriqueFilter-BLW_L9Wm.mjs +0 -119
- package/dist/RubriqueList-DKBuYW37.mjs +0 -117
- package/dist/RubriquePage-D4b-tHSI.mjs +0 -71
- package/dist/SearchOrder-D_dAhj9M.mjs +0 -62
- package/dist/SearchPage-DiEabf9d.mjs +0 -38
- package/dist/ShareAnonymous-DnvGBSfx.mjs +0 -189
- package/dist/ShareModalPlayer-CXYjEN8k.mjs +0 -87
- package/dist/ShareNewsletter-C6U_Jjnm.mjs +0 -143
- package/dist/SharePlayer-B7YLKRAB.mjs +0 -210
- package/dist/SharePlayerColors-BpdifsHh.mjs +0 -49
- package/dist/SharePlayerRadio-Dy6UuwWM.mjs +0 -66
- package/dist/SharePlayerTypes-CeecVrvy.mjs +0 -148
- package/dist/ShareSocialsButtons-ty0wa4Hj.mjs +0 -100
- package/dist/SimpleLayout-BgflH0r5.mjs +0 -22
- package/dist/SmartLinkPage-BmXB-5t-.mjs +0 -131
- package/dist/SnackBar-BL-mLRun.mjs +0 -128
- package/dist/SubscribeButtons-Bqc3UtOf.mjs +0 -120
- package/dist/SwiperList-nkm8nHZC.mjs +0 -119
- package/dist/TagList-BcJZfwL5.mjs +0 -80
- package/dist/TagPage-DFUbxGht.mjs +0 -79
- package/dist/TopBar-1YG7Pruy.mjs +0 -260
- package/dist/TuninIcon-DENNxlP8.mjs +0 -39
- package/dist/UserButtonContent-CKxL8aX3.mjs +0 -125
- package/dist/VastStore-8IiEgtQW.mjs +0 -71
- package/dist/VideoModuleBox-B54AebXt.mjs +0 -58
- package/dist/VideoPage-BxYH2SFo.mjs +0 -148
- package/dist/XIcon-DNBT2Zgf.mjs +0 -39
- package/dist/_plugin-vue_export-helper-B3ysoDQm.mjs +0 -8
- package/dist/buttons-CWMRsA_g.mjs +0 -79
- package/dist/classicApi-DR5O2l0-.mjs +0 -1183
- package/dist/config-DMjLBcZ2.mjs +0 -7
- package/dist/cookiesHelper-BQ3M1-Xr.mjs +0 -20
- package/dist/displayHelper-DQtoqc_6.mjs +0 -11
- package/dist/domHelper-BPw2kGCL.mjs +0 -12
- package/dist/downloadHelper-DqI60vwY.mjs +0 -23
- package/dist/educationen-KT401RLo.mjs +0 -16
- package/dist/educationfr-BIafOUp-.mjs +0 -4
- package/dist/emission-CQ1VuxRc.mjs +0 -22
- package/dist/icons-aOUoelo6.mjs +0 -11
- package/dist/keys-CV5SBM1i.mjs +0 -4
- package/dist/localisation-CBnt682X.mjs +0 -9
- package/dist/logo_saooti_play_black-Doe3es2H.mjs +0 -4
- package/dist/messages-DxUrH00s.mjs +0 -2677
- package/dist/organisation-JgfYj1Jp.mjs +0 -17
- package/dist/ouest_france_logo-9dPaEPNA.mjs +0 -4
- package/dist/podcast-BoNHyuLe.mjs +0 -53
- package/dist/rolldown-runtime-Dy4uBu1J.mjs +0 -11
- package/dist/stringHelper-8Cu4x0-T.mjs +0 -13
- package/dist/types-BMNwRfo9.mjs +0 -8
- package/dist/useAdvancedParamInit-DIw4V0uk.mjs +0 -111
- package/dist/useCountdown-vXzlLAgF.mjs +0 -32
- package/dist/useDayjs-CCvXE-aF.mjs +0 -28
- package/dist/useErrorHandler-CNqmf6tv.mjs +0 -12
- package/dist/useImageProxy-C3duE5Uj.mjs +0 -16
- package/dist/useOrgaComputed-ZwTfEXF-.mjs +0 -16
- package/dist/usePlayerLogicProgress--FrjZ3zY.mjs +0 -68
- package/dist/usePodcastView-EmNdC0A1.mjs +0 -31
- package/dist/usePresentationItem-PCEJ9BHI.mjs +0 -100
- package/dist/useResizePhone-4hSkK5pa.mjs +0 -28
- package/dist/useRights-D4GJoff9.mjs +0 -221
- package/dist/useRouteUpdateParams-DJLm3IAI.mjs +0 -55
- package/dist/useRubriquesFilterComputed-BKI04l9G.mjs +0 -11
- package/dist/useRubriquesFilterParam-C5AZlQOX.mjs +0 -32
- package/dist/useSeasonsManagement-DwbmJywJ.mjs +0 -24
- package/dist/useSelenium-DAM6EF3J.mjs +0 -9
- package/dist/useSeoTitleUrl-UfPXDCPa.mjs +0 -25
- package/dist/useSharePath-D9G8Jdlb.mjs +0 -40
- package/dist/useSharePlatforms-DWJtsHHs.mjs +0 -322
- package/dist/useSimplePageParam-DJBHk-Yr.mjs +0 -39
- package/dist/useTagOf-Btweq3v2.mjs +0 -17
- package/dist/useTranslation-xTuUuIiz.mjs +0 -139
- package/dist/usefetchRadioData-SnCkZcGt.mjs +0 -48
- package/dist/youtubeVideoHelper-Cdlokujb.mjs +0 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PodcastList-jCzCt_eR.mjs","names":[],"sources":["../src/components/display/podcasts/PodcastList.vue","../src/components/display/podcasts/PodcastList.vue"],"sourcesContent":["<!--\n Component displaying a list of podcast\n DO NOT confuse this with PodcastList from playlist\n-->\n<template>\n <ListPaginate\n id=\"podcastListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && podcasts.length > 1\n ? t('Number podcasts', { nb: totalCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading podcasts ...') : undefined\"\n :error-text=\"\n !loading && !podcasts.length\n ? t(`No podcast match your query`)\n : undefined\n \"\n :just-size-chosen=\"justSizeChosen\"\n :player-responsive=\"true\"\n :force-update-parameters=\"forceUpdateParameters\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.podcastId\"\n :min-height=\"410\"\n >\n <PodcastItem\n v-if=\"0 !== p.podcastId\"\n :podcast=\"p\"\n />\n <template #preview>\n <router-link\n :to=\"{\n name: 'podcast',\n params: { podcastId: p.podcastId },\n }\"\n :title=\"t('Episode name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport PodcastItem from \"./PodcastItem.vue\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Podcast, PodcastProcessingStatus, emptyPodcastData } from \"../../../stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useI18n } from \"vue-i18n\";\nimport { podcastApi, PodcastMonetisation, PodcastSearchOptions, PodcastSort } from \"../../../api/podcastApi\";\nimport { EmissionGroup } from \"@/api/groupsApi\";\n\n//Props \nconst props = withDefaults(defineProps<{\n first?: number;\n size?: number;\n organisationId?: Array<string>;\n emissionId?: number;\n iabId?: number;\n participantId?: number;\n query?: string;\n monetisable?: PodcastMonetisation;\n popularSort?: boolean;\n reload?: boolean;\n before?: string;\n after?: string;\n includeHidden?: boolean;\n /** Enable the display of number of items in ListPaginate */\n showCount?: boolean;\n displaySortText?: boolean;\n /** Criteria to sort on */\n sortCriteria?: PodcastSort;\n validity?: 'true'|'false'|''|boolean; // TODO improve this\n rubriqueId?: Array<number>;\n rubriquageId?: Array<number>;\n noRubriquageId?: Array<number>;\n justSizeChosen?: boolean;\n withVideo?: boolean;\n includeTag?: Array<string>;\n forceUpdateParameters?: boolean;\n /** The beneficiaries to filter on */\n beneficiaries?: Array<string>;\n /** The emission groups to filter on */\n emissionGroups?: Array<EmissionGroup>;\n /** The seasons to filter on */\n seasons?: Array<number>;\n}>(), {\n first: 0,\n size: 30,\n popularSort: false,\n reload: false,\n includeHidden: false,\n showCount: false,\n displaySortText: true,\n validity: '',\n justSizeChosen: false,\n withVideo: undefined,\n forceUpdateParameters: false\n});\n\n//Emits\nconst emit = defineEmits([\"fetch\", \"emptyList\"]);\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst isMobile = ref(false);\nconst podcasts: Ref<Array<Podcast>> = ref([]);\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value || props.justSizeChosen) {\n return podcasts.value;\n }\n return podcasts.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst changed = computed(() => {\n return `${organisation.value}|${props.emissionId}|${props.sortCriteria}|${sort.value}\n ${props.iabId}|${props.participantId}|${props.query}|${props.monetisable}|${props.popularSort}|\n ${props.rubriqueId}|${props.rubriquageId}|${props.before}|${props.after}|${props.includeHidden}|${props.noRubriquageId}|${props.validity}|\n ${props.withVideo}|${props.includeTag}|${props.beneficiaries}|${props.emissionGroups}`;\n});\nconst organisation = computed(() => {\n if (props.organisationId) {\n return props.organisationId;\n }\n return filterStore.filterOrgaId ? [filterStore.filterOrgaId] : [];\n});\nconst sort = computed(() => props.popularSort ? PodcastSort.POPULARITY : (props.sortCriteria ?? PodcastSort.DATE));\nconst sortText = computed(() => {\n if (!props.displaySortText) {\n return \"\";\n }\n switch (props.sortCriteria) {\n case \"SCORE\":\n return \" \" + t(\"sort by score\");\n case \"DATE\":\n return \" \" + t(\"sort by date\");\n case \"NAME\":\n return \" \" + t(\"sort by alphabetical\");\n default:\n return \" \" + t(\"sort by date\");\n }\n});\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(()=>props.reload, () => fetchContent(true));\nwatch(dsize, () => fetchContent(true));\nwatch(dfirst, () => {\n if (\n !podcasts.value[dfirst.value] ||\n 0 === podcasts.value[dfirst.value].podcastId\n ) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(false))\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n\n // Sadly we kinda have no idea what will be passed as 'validity', we need to\n // handle multiple cases.\n let validity: undefined|boolean = undefined;\n if (props.validity !== undefined && props.validity !== '') {\n validity = props.validity === 'true' || props.validity === true;\n }\n \n const param: PodcastSearchOptions = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n organisationId: organisation.value,\n emissionId: props.emissionId,\n groupId: props.emissionGroups?.map(g => g.groupId),\n iabId: props.iabId,\n participantId: props.participantId,\n query: props.query,\n monetisable: props.monetisable,\n sort: sort.value,\n pubDateBefore: props.before,\n pubDateAfter: props.after,\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 validity,\n /* publisherId:\n !this.onlyValid && !authStore.isRoleProduction\n ? authStore.authProfile?.userId\n : undefined, */\n processingStatus: [PodcastProcessingStatus.Ready, PodcastProcessingStatus.Processing],\n withVideo: props.withVideo,\n tags: props.includeTag?.length ? props.includeTag : undefined,\n beneficiaries: props.beneficiaries ?? undefined,\n season: props.seasons\n };\n\n try {\n const data = await podcastApi.searchFull(param, true);\n afterFetching(reset, data);\n } catch (error) {\n if (error instanceof AxiosError) {\n handle403(error as AxiosError);\n } else {\n console.error('error', error);\n }\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n podcasts.value.length = 0;\n }\n if (dfirst.value > podcasts.value.length) {\n for (\n let i = podcasts.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n podcasts.value.push(emptyPodcastData());\n }\n }\n const responsePodcasts = data.result.filter((p: Podcast | null) => {\n return null !== p;\n });\n podcasts.value = podcasts.value\n .slice(0, dfirst.value)\n .concat(responsePodcasts)\n .concat(\n podcasts.value.slice(dfirst.value + dsize.value, podcasts.value.length),\n );\n emit(\"fetch\", podcasts.value);\n totalCount.value = props.justSizeChosen ? props.size : data.count;\n if (0 === podcasts.value.length) {\n emit(\"emptyList\");\n }\n loading.value = false;\n}\n</script>\n","<!--\n Component displaying a list of podcast\n DO NOT confuse this with PodcastList from playlist\n-->\n<template>\n <ListPaginate\n id=\"podcastListPaginate\"\n v-model:first=\"dfirst\"\n v-model:rows-per-page=\"dsize\"\n v-model:is-mobile=\"isMobile\"\n :text-count=\"\n showCount && podcasts.length > 1\n ? t('Number podcasts', { nb: totalCount }) + sortText\n : undefined\n \"\n :total-count=\"totalCount\"\n :loading=\"loading\"\n :loading-text=\"loading ? t('Loading podcasts ...') : undefined\"\n :error-text=\"\n !loading && !podcasts.length\n ? t(`No podcast match your query`)\n : undefined\n \"\n :just-size-chosen=\"justSizeChosen\"\n :player-responsive=\"true\"\n :force-update-parameters=\"forceUpdateParameters\"\n >\n <template #list>\n <div class=\"octopus-element-list\">\n <ClassicLazy\n v-for=\"p in displayArray\"\n :key=\"p.podcastId\"\n :min-height=\"410\"\n >\n <PodcastItem\n v-if=\"0 !== p.podcastId\"\n :podcast=\"p\"\n />\n <template #preview>\n <router-link\n :to=\"{\n name: 'podcast',\n params: { podcastId: p.podcastId },\n }\"\n :title=\"t('Episode name page', { name: p.title })\"\n >\n {{ p.title }}\n </router-link>\n </template>\n </ClassicLazy>\n </div>\n </template>\n </ListPaginate>\n</template>\n\n<script setup lang=\"ts\">\nimport ListPaginate from \"../list/ListPaginate.vue\";\nimport {useErrorHandler} from \"../../composable/useErrorHandler\";\nimport PodcastItem from \"./PodcastItem.vue\";\nimport ClassicLazy from \"../../misc/ClassicLazy.vue\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { Podcast, PodcastProcessingStatus, emptyPodcastData } from \"../../../stores/class/general/podcast\";\nimport { computed, onBeforeMount, Ref, ref, watch } from \"vue\";\nimport { AxiosError } from \"axios\";\nimport { useI18n } from \"vue-i18n\";\nimport { podcastApi, PodcastMonetisation, PodcastSearchOptions, PodcastSort } from \"../../../api/podcastApi\";\nimport { EmissionGroup } from \"@/api/groupsApi\";\n\n//Props \nconst props = withDefaults(defineProps<{\n first?: number;\n size?: number;\n organisationId?: Array<string>;\n emissionId?: number;\n iabId?: number;\n participantId?: number;\n query?: string;\n monetisable?: PodcastMonetisation;\n popularSort?: boolean;\n reload?: boolean;\n before?: string;\n after?: string;\n includeHidden?: boolean;\n /** Enable the display of number of items in ListPaginate */\n showCount?: boolean;\n displaySortText?: boolean;\n /** Criteria to sort on */\n sortCriteria?: PodcastSort;\n validity?: 'true'|'false'|''|boolean; // TODO improve this\n rubriqueId?: Array<number>;\n rubriquageId?: Array<number>;\n noRubriquageId?: Array<number>;\n justSizeChosen?: boolean;\n withVideo?: boolean;\n includeTag?: Array<string>;\n forceUpdateParameters?: boolean;\n /** The beneficiaries to filter on */\n beneficiaries?: Array<string>;\n /** The emission groups to filter on */\n emissionGroups?: Array<EmissionGroup>;\n /** The seasons to filter on */\n seasons?: Array<number>;\n}>(), {\n first: 0,\n size: 30,\n popularSort: false,\n reload: false,\n includeHidden: false,\n showCount: false,\n displaySortText: true,\n validity: '',\n justSizeChosen: false,\n withVideo: undefined,\n forceUpdateParameters: false\n});\n\n//Emits\nconst emit = defineEmits([\"fetch\", \"emptyList\"]);\n\n//Data \nconst loading = ref(true);\nconst dfirst = ref(props.first);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst isMobile = ref(false);\nconst podcasts: Ref<Array<Podcast>> = ref([]);\n\n//Composables\nconst { t } = useI18n();\nconst {handle403} = useErrorHandler();\nconst filterStore = useFilterStore();\n\n//Computed\nconst displayArray = computed(() => {\n if (isMobile.value || props.justSizeChosen) {\n return podcasts.value;\n }\n return podcasts.value.slice(\n dfirst.value,\n Math.min(dfirst.value + dsize.value, totalCount.value),\n );\n});\nconst changePaginate = computed(() => `${props.first}|${props.size}`);\nconst changed = computed(() => {\n return `${organisation.value}|${props.emissionId}|${props.sortCriteria}|${sort.value}\n ${props.iabId}|${props.participantId}|${props.query}|${props.monetisable}|${props.popularSort}|\n ${props.rubriqueId}|${props.rubriquageId}|${props.before}|${props.after}|${props.includeHidden}|${props.noRubriquageId}|${props.validity}|\n ${props.withVideo}|${props.includeTag}|${props.beneficiaries}|${props.emissionGroups}`;\n});\nconst organisation = computed(() => {\n if (props.organisationId) {\n return props.organisationId;\n }\n return filterStore.filterOrgaId ? [filterStore.filterOrgaId] : [];\n});\nconst sort = computed(() => props.popularSort ? PodcastSort.POPULARITY : (props.sortCriteria ?? PodcastSort.DATE));\nconst sortText = computed(() => {\n if (!props.displaySortText) {\n return \"\";\n }\n switch (props.sortCriteria) {\n case \"SCORE\":\n return \" \" + t(\"sort by score\");\n case \"DATE\":\n return \" \" + t(\"sort by date\");\n case \"NAME\":\n return \" \" + t(\"sort by alphabetical\");\n default:\n return \" \" + t(\"sort by date\");\n }\n});\n\n//Watch\nwatch(changePaginate, () => {\n dfirst.value = props.first;\n dsize.value = props.size;\n});\nwatch(changed, () => fetchContent(true));\nwatch(()=>props.reload, () => fetchContent(true));\nwatch(dsize, () => fetchContent(true));\nwatch(dfirst, () => {\n if (\n !podcasts.value[dfirst.value] ||\n 0 === podcasts.value[dfirst.value].podcastId\n ) {\n fetchContent(false);\n }\n});\n\nonBeforeMount(()=>fetchContent(false))\n\n//Methods\nasync function fetchContent(reset: boolean): Promise<void> {\n loading.value = true;\n\n // Sadly we kinda have no idea what will be passed as 'validity', we need to\n // handle multiple cases.\n let validity: undefined|boolean = undefined;\n if (props.validity !== undefined && props.validity !== '') {\n validity = props.validity === 'true' || props.validity === true;\n }\n \n const param: PodcastSearchOptions = {\n first: reset ? 0 : dfirst.value,\n size: dsize.value,\n organisationId: organisation.value,\n emissionId: props.emissionId,\n groupId: props.emissionGroups?.map(g => g.groupId),\n iabId: props.iabId,\n participantId: props.participantId,\n query: props.query,\n monetisable: props.monetisable,\n sort: sort.value,\n pubDateBefore: props.before,\n pubDateAfter: props.after,\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 validity,\n /* publisherId:\n !this.onlyValid && !authStore.isRoleProduction\n ? authStore.authProfile?.userId\n : undefined, */\n processingStatus: [PodcastProcessingStatus.Ready, PodcastProcessingStatus.Processing],\n withVideo: props.withVideo,\n tags: props.includeTag?.length ? props.includeTag : undefined,\n beneficiaries: props.beneficiaries ?? undefined,\n season: props.seasons\n };\n\n try {\n const data = await podcastApi.searchFull(param, true);\n afterFetching(reset, data);\n } catch (error) {\n if (error instanceof AxiosError) {\n handle403(error as AxiosError);\n } else {\n console.error('error', error);\n }\n }\n}\nfunction afterFetching(\n reset: boolean,\n data: { count: number; result: Array<Podcast>; sort: string },\n): void {\n if (reset) {\n dfirst.value = 0;\n podcasts.value.length = 0;\n }\n if (dfirst.value > podcasts.value.length) {\n for (\n let i = podcasts.value.length - 1, len = dfirst.value + dsize.value;\n i < len;\n i++\n ) {\n podcasts.value.push(emptyPodcastData());\n }\n }\n const responsePodcasts = data.result.filter((p: Podcast | null) => {\n return null !== p;\n });\n podcasts.value = podcasts.value\n .slice(0, dfirst.value)\n .concat(responsePodcasts)\n .concat(\n podcasts.value.slice(dfirst.value + dsize.value, podcasts.value.length),\n );\n emit(\"fetch\", podcasts.value);\n totalCount.value = props.justSizeChosen ? props.size : data.count;\n if (0 === podcasts.value.length) {\n emit(\"emptyList\");\n }\n loading.value = false;\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PodcastPage-B5WpXRPn.mjs","names":[],"sources":["../src/components/display/podcasts/PodcastModuleBox.vue","../src/components/display/podcasts/PodcastModuleBox.vue","../src/components/pages/PodcastPage.vue","../src/components/pages/PodcastPage.vue"],"sourcesContent":["<template>\n <section v-if=\"podcast\" class=\"module-box\">\n <slot\n v-if=\"!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator\"\n name=\"recording-item-button\"\n :podcast=\"podcast\"\n :live=\"true\"\n :recording=\"podcastConference\"\n :on-delete-item=\"removeDeleted\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <slot\n v-else-if=\"editRight && isEditBox\"\n name=\"edit-box\"\n :podcast=\"podcast\"\n :display-studio-access=\"isDebriefing\"\n :on-update-transcription=\"resetTranscription\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <div class=\"mb-2 w-100\">\n <PodcastImage\n :class=\"[\n isLiveReadyToRecord &&\n podcastConference &&\n 'null' !== podcastConference &&\n podcastConference.status\n ? podcastConference.status.toLowerCase() + '-shadow'\n : '',\n ]\"\n class=\"me-3\"\n show-processing\n :hide-play=\"isLiveReadyToRecord\"\n :podcast=\"podcast\"\n :playing-podcast=\"playingPodcast\"\n :fetch-conference=\"podcastConference\"\n :is-animator-live=\"isOctopusAndAnimator\"\n />\n <div class=\"d-flex justify-content-between flex-wrap mb-2\">\n <time \n v-if=\"0 !== date.length\" :class=\"!isLiveReady ? 'me-5' : ''\"\n :datetime=\"podcast.pubDate\">\n {{ date }}\n </time>\n <div v-if=\"isLiveReady\" class=\"text-danger\">\n {{ t(\"Episode record in live\") }}\n </div>\n <div class=\"d-flex flex-column align-items-end\">\n <time :datetime=\"durationIso\">\n {{ duration }}\n </time>\n <ShareAnonymous v-if=\"!editRight\" :podcast=\"podcast\" :organisation-id=\"podcast.organisation.id\"/>\n </div>\n </div>\n <h2 :class=\"{ 'mb-3': !showSubtitle }\">\n <RightsIndicator\n :podcast=\"podcast\"\n action=\"edit\"\n inline\n />\n {{ podcast.title }}\n </h2>\n <h3 v-if=\"showSubtitle\" class=\"mb-3 text-secondary\">\n {{ podcast.annotations.subtitle }}\n </h3>\n \n <PodcastPlannedSpinner v-if=\"isPlannedInProcessor\" />\n <Countdown v-if=\"isCounter\" :time-remaining=\"timeRemaining\" />\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"showSummary\"\n class=\"description-text html-wysiwyg-content\"\n :class=\"{ 'mb-4': showSummary && showDescription }\"\n v-html=\"urlify(podcast.summary)\"\n />\n <div\n v-if=\"showDescription\"\n class=\"description-text html-wysiwyg-content\"\n v-html=\"urlify(podcast.description)\"\n />\n <!-- eslint-enable -->\n <div class=\"my-3\">\n <div class=\"mb-1\">\n {{ t(\"Emission\") + \" : \" }}\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: podcast.emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: podcast.emission.name })\"\n >\n {{ podcast.emission.name }}\n </router-link>\n </div>\n <ParticipantDescription :participants=\"podcast.animators\" />\n <ParticipantDescription\n :participants=\"podcast.guests\"\n :is-guest=\"true\"\n />\n <div v-if=\"!isPodcastmaker\" class=\"mb-1\">\n {{ t(\"Producted by : \") }}\n <router-link\n :to=\"{\n name: 'productor',\n params: { productorId: podcast.organisation.id },\n }\"\n >\n {{ podcast.organisation.name }}\n </router-link>\n </div>\n <div v-if=\"showSeasonNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Season')} : ${podcast.seasonNumber}` }}\n </div>\n <div v-if=\"showSeasonEpisodeNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Episode number')} : ${podcast.seasonEpisodeNumber}` }}\n </div>\n <div v-if=\"'' !== photoCredit\" class=\"mb-1\">\n {{ t(\"Photo credits\") + \" : \" + photoCredit }}\n </div>\n <div v-if=\"'' !== audioCredit\" class=\"mb-1\">\n {{ t(\"Audio credits\") + \" : \" + audioCredit }}\n </div>\n <div v-if=\"'' !== authorCredit\" class=\"mb-1\">\n {{ t(\"Author credits\") + \" : \" + authorCredit }}\n </div>\n <a\n v-if=\"podcast.article && !authStore.isGarRole\"\n class=\"btn d-flex align-items-center my-2 w-fit-content mb-1\"\n :href=\"podcast.article\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text : t('See associated article')})\"\n >\n <NewspaperVariantOutlineIcon class=\"me-1\" />\n <div>{{ t(\"See associated article\") }}</div>\n </a>\n <PodcastPlayBar\n v-if=\"state.emissionsPage.progressBar\"\n :podcast=\"podcast\"\n />\n <div v-if=\"editRight && !isPodcastmaker\">\n <div\n v-if=\"\n podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND\n \"\n class=\"me-5 text-secondary\"\n >\n {{ t(\"From RSS\") }}\n </div>\n <ErrorMessage v-if=\"'' !== errorMessage\" :message=\"errorMessage\" />\n </div>\n <div class=\"d-flex align-items-center flex-wrap\">\n <LikeSection :edit-right=\"editRight\" :podcast=\"podcast\" />\n <DownloadPodcastButton v-if=\"state.podcastPage.downloadButton\" :podcast=\"podcast\" />\n </div>\n </div>\n </div>\n <TagList\n v-if=\"showTags\"\n :tag-list=\"tags\"\n :orga-id=\"podcast.organisation.id\"\n :podcast-annotations=\"podcast.annotations\"\n :max=\"state.podcastPage.maxTags\"\n />\n <PodcastRubriqueList\n v-if=\"podcastRubriques?.length\"\n :orga-id=\"podcast.organisation.id\"\n :rubrique-ids=\"podcastRubriques\"\n />\n <PodcastRawTranscript\n ref=\"podcastRawTranscript\"\n :podcast-id=\"podcast.podcastId\"\n />\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"podcast.emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport NewspaperVariantOutlineIcon from \"vue-material-design-icons/NewspaperVariantOutline.vue\";\nimport PodcastImage from \"./PodcastImage.vue\";\nimport ParticipantDescription from \"./ParticipantDescription.vue\";\nimport PodcastRawTranscript from \"./PodcastRawTranscript.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport {usePodcastView} from \"../../composable/podcasts/usePodcastView\";\nimport { Podcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"../../../stores/class/conference/conference\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { SeasonMode } from \"../../../stores/class/general/emission\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport { defineAsyncComponent, toRefs, computed, useTemplateRef } from \"vue\";\nconst ErrorMessage = defineAsyncComponent(\n () => import(\"../../misc/ErrorMessage.vue\"),\n);\nconst PodcastPlayBar = defineAsyncComponent(\n () => import(\"./PodcastPlayBar.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../sharing/SubscribeButtons.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../comments/like/LikeSection.vue\"),\n);\nconst DownloadPodcastButton = defineAsyncComponent(\n () => import(\"./DownloadPodcastButton.vue\"),\n);\nconst PodcastPlannedSpinner = defineAsyncComponent(\n () => import(\"./PodcastPlannedSpinner.vue\"),\n);\nconst Countdown = defineAsyncComponent(() => import(\"../live/CountDown.vue\"));\nconst TagList = defineAsyncComponent(() => import(\"./TagList.vue\"));\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../sharing/ShareAnonymous.vue\"));\nconst PodcastRubriqueList = defineAsyncComponent(() => import(\"./PodcastRubriqueList.vue\"));\n\n//Props \nconst props = defineProps<{\n podcast: Podcast;\n playingPodcast?: Podcast;\n podcastConference?: Conference;\n}>();\n\n//Emits\nconst emit = defineEmits([\"updatePodcast\"]);\n\n//Composables\nconst { t } = useI18n();\nconst propsRef = toRefs(props);\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n isPodcastmaker,\n editRight\n} = usePodcastView(propsRef.podcast, propsRef.podcastConference);\nconst authStore = useAuthStore();\nconst router = useRouter();\nconst { areSeasonsEnabled } = useSeasonsManagement();\n\n/** Reference to the PodcastRqwTranscript */\nconst podcastRawTranscript = useTemplateRef('podcastRawTranscript');\n\n//Computed\nconst podcastRubriques = computed(() => {\n let rubriques = props.podcast?.rubriqueIds ?? [];\n if(props.podcast?.emission?.rubriqueIds){\n rubriques = [...new Set(rubriques.concat(props.podcast?.emission?.rubriqueIds))];\n }\n return rubriques;\n});\nconst errorMessage = computed(() => {\n if (!props.podcast?.availability.visibility) {\n return t(\"Podcast is not visible for listeners\");\n }\n if (\"ERROR\" === props.podcast?.processingStatus) {\n return t(\"Podcast in ERROR, please contact Saooti\");\n }\n return podcastNotValid.value ? t(\"Podcast not validated\") : \"\";\n});\nconst isLiveReady = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast?.conferenceId &&\n \"READY\" === props.podcast?.processingStatus\n );\n});\nconst isDebriefing = computed(() => {\n return (\n undefined !== props.podcastConference &&\n \"DEBRIEFING\" === props.podcastConference.status\n );\n});\nconst isOctopusAndAnimator = computed(() => {\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\nconst podcastNotValid = computed(() => {\n return (\n undefined !== props.podcast?.availability &&\n false === props.podcast?.valid\n );\n});\nconst photoCredit = computed(() => formatCredits(props.podcast?.annotations?.photoCredit as string|undefined));\nconst audioCredit = computed(() => formatCredits(props.podcast?.annotations?.audioCredit as string|undefined));\nconst authorCredit = computed(() => formatCredits(props.podcast?.annotations?.authorCredit as string|undefined));\nconst isEditBox = computed(() => !((state.generalParameters.podcastmaker as boolean) ?? false));\n/** The tags to display */\nconst tags = computed(() => {\n const tags = [];\n if(props.podcast.tags) {\n tags.push(...props.podcast.tags);\n }\n // Also display tags defined on emission\n if(props.podcast.emission.tags) {\n tags.push(...props.podcast.emission.tags);\n }\n return tags;\n});\n\nconst showSeasonNumber = computed((): boolean => {\n return areSeasonsEnabled(props.podcast.emission) && props.podcast.seasonNumber !== undefined;\n});\n\nconst showSeasonEpisodeNumber = computed((): boolean => {\n return props.podcast.emission.seasonMode === SeasonMode.SEASON_WITH_PODCAST_NUMBERING && props.podcast.seasonEpisodeNumber !== undefined;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return props.podcast.annotations?.subtitle && state.podcastPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show description */\nconst showDescription = computed((): boolean => {\n return state.podcastPage?.descriptionOrSummary !== 'summary';\n});\n\n/** Indicates whether to show summary */\nconst showSummary = computed((): boolean => {\n return props.podcast.summary && state.podcastPage?.descriptionOrSummary !== 'description' && state.podcastPage?.descriptionOrSummary !== undefined;\n});\n\n//Methods\nfunction formatCredits(credits: string|undefined): string {\n if (credits === undefined) {\n return '';\n }\n return credits.split(',').map(s => s.trim()).join(', ');\n}\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction removeDeleted(): void {\n if (isLiveReadyToRecord.value) {\n router.push(\"/main/pub/lives\");\n } else if (window.history.length > 1) {\n router.go(-1);\n } else {\n router.push(\"/\");\n }\n}\n\nfunction resetTranscription(): void {\n podcastRawTranscript.value.reset();\n}\n\nconst showTags = computed((): boolean => {\n if (state.podcastPage.hideTags === true) {\n return false;\n }\n\n return undefined !== tags.value && 0 !== tags.value.length;\n});\n</script>\n","<template>\n <section v-if=\"podcast\" class=\"module-box\">\n <slot\n v-if=\"!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator\"\n name=\"recording-item-button\"\n :podcast=\"podcast\"\n :live=\"true\"\n :recording=\"podcastConference\"\n :on-delete-item=\"removeDeleted\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <slot\n v-else-if=\"editRight && isEditBox\"\n name=\"edit-box\"\n :podcast=\"podcast\"\n :display-studio-access=\"isDebriefing\"\n :on-update-transcription=\"resetTranscription\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <div class=\"mb-2 w-100\">\n <PodcastImage\n :class=\"[\n isLiveReadyToRecord &&\n podcastConference &&\n 'null' !== podcastConference &&\n podcastConference.status\n ? podcastConference.status.toLowerCase() + '-shadow'\n : '',\n ]\"\n class=\"me-3\"\n show-processing\n :hide-play=\"isLiveReadyToRecord\"\n :podcast=\"podcast\"\n :playing-podcast=\"playingPodcast\"\n :fetch-conference=\"podcastConference\"\n :is-animator-live=\"isOctopusAndAnimator\"\n />\n <div class=\"d-flex justify-content-between flex-wrap mb-2\">\n <time \n v-if=\"0 !== date.length\" :class=\"!isLiveReady ? 'me-5' : ''\"\n :datetime=\"podcast.pubDate\">\n {{ date }}\n </time>\n <div v-if=\"isLiveReady\" class=\"text-danger\">\n {{ t(\"Episode record in live\") }}\n </div>\n <div class=\"d-flex flex-column align-items-end\">\n <time :datetime=\"durationIso\">\n {{ duration }}\n </time>\n <ShareAnonymous v-if=\"!editRight\" :podcast=\"podcast\" :organisation-id=\"podcast.organisation.id\"/>\n </div>\n </div>\n <h2 :class=\"{ 'mb-3': !showSubtitle }\">\n <RightsIndicator\n :podcast=\"podcast\"\n action=\"edit\"\n inline\n />\n {{ podcast.title }}\n </h2>\n <h3 v-if=\"showSubtitle\" class=\"mb-3 text-secondary\">\n {{ podcast.annotations.subtitle }}\n </h3>\n \n <PodcastPlannedSpinner v-if=\"isPlannedInProcessor\" />\n <Countdown v-if=\"isCounter\" :time-remaining=\"timeRemaining\" />\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"showSummary\"\n class=\"description-text html-wysiwyg-content\"\n :class=\"{ 'mb-4': showSummary && showDescription }\"\n v-html=\"urlify(podcast.summary)\"\n />\n <div\n v-if=\"showDescription\"\n class=\"description-text html-wysiwyg-content\"\n v-html=\"urlify(podcast.description)\"\n />\n <!-- eslint-enable -->\n <div class=\"my-3\">\n <div class=\"mb-1\">\n {{ t(\"Emission\") + \" : \" }}\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: podcast.emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: podcast.emission.name })\"\n >\n {{ podcast.emission.name }}\n </router-link>\n </div>\n <ParticipantDescription :participants=\"podcast.animators\" />\n <ParticipantDescription\n :participants=\"podcast.guests\"\n :is-guest=\"true\"\n />\n <div v-if=\"!isPodcastmaker\" class=\"mb-1\">\n {{ t(\"Producted by : \") }}\n <router-link\n :to=\"{\n name: 'productor',\n params: { productorId: podcast.organisation.id },\n }\"\n >\n {{ podcast.organisation.name }}\n </router-link>\n </div>\n <div v-if=\"showSeasonNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Season')} : ${podcast.seasonNumber}` }}\n </div>\n <div v-if=\"showSeasonEpisodeNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Episode number')} : ${podcast.seasonEpisodeNumber}` }}\n </div>\n <div v-if=\"'' !== photoCredit\" class=\"mb-1\">\n {{ t(\"Photo credits\") + \" : \" + photoCredit }}\n </div>\n <div v-if=\"'' !== audioCredit\" class=\"mb-1\">\n {{ t(\"Audio credits\") + \" : \" + audioCredit }}\n </div>\n <div v-if=\"'' !== authorCredit\" class=\"mb-1\">\n {{ t(\"Author credits\") + \" : \" + authorCredit }}\n </div>\n <a\n v-if=\"podcast.article && !authStore.isGarRole\"\n class=\"btn d-flex align-items-center my-2 w-fit-content mb-1\"\n :href=\"podcast.article\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text : t('See associated article')})\"\n >\n <NewspaperVariantOutlineIcon class=\"me-1\" />\n <div>{{ t(\"See associated article\") }}</div>\n </a>\n <PodcastPlayBar\n v-if=\"state.emissionsPage.progressBar\"\n :podcast=\"podcast\"\n />\n <div v-if=\"editRight && !isPodcastmaker\">\n <div\n v-if=\"\n podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND\n \"\n class=\"me-5 text-secondary\"\n >\n {{ t(\"From RSS\") }}\n </div>\n <ErrorMessage v-if=\"'' !== errorMessage\" :message=\"errorMessage\" />\n </div>\n <div class=\"d-flex align-items-center flex-wrap\">\n <LikeSection :edit-right=\"editRight\" :podcast=\"podcast\" />\n <DownloadPodcastButton v-if=\"state.podcastPage.downloadButton\" :podcast=\"podcast\" />\n </div>\n </div>\n </div>\n <TagList\n v-if=\"showTags\"\n :tag-list=\"tags\"\n :orga-id=\"podcast.organisation.id\"\n :podcast-annotations=\"podcast.annotations\"\n :max=\"state.podcastPage.maxTags\"\n />\n <PodcastRubriqueList\n v-if=\"podcastRubriques?.length\"\n :orga-id=\"podcast.organisation.id\"\n :rubrique-ids=\"podcastRubriques\"\n />\n <PodcastRawTranscript\n ref=\"podcastRawTranscript\"\n :podcast-id=\"podcast.podcastId\"\n />\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"podcast.emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport NewspaperVariantOutlineIcon from \"vue-material-design-icons/NewspaperVariantOutline.vue\";\nimport PodcastImage from \"./PodcastImage.vue\";\nimport ParticipantDescription from \"./ParticipantDescription.vue\";\nimport PodcastRawTranscript from \"./PodcastRawTranscript.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport {usePodcastView} from \"../../composable/podcasts/usePodcastView\";\nimport { Podcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"../../../stores/class/conference/conference\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { SeasonMode } from \"../../../stores/class/general/emission\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport { defineAsyncComponent, toRefs, computed, useTemplateRef } from \"vue\";\nconst ErrorMessage = defineAsyncComponent(\n () => import(\"../../misc/ErrorMessage.vue\"),\n);\nconst PodcastPlayBar = defineAsyncComponent(\n () => import(\"./PodcastPlayBar.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../sharing/SubscribeButtons.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../comments/like/LikeSection.vue\"),\n);\nconst DownloadPodcastButton = defineAsyncComponent(\n () => import(\"./DownloadPodcastButton.vue\"),\n);\nconst PodcastPlannedSpinner = defineAsyncComponent(\n () => import(\"./PodcastPlannedSpinner.vue\"),\n);\nconst Countdown = defineAsyncComponent(() => import(\"../live/CountDown.vue\"));\nconst TagList = defineAsyncComponent(() => import(\"./TagList.vue\"));\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../sharing/ShareAnonymous.vue\"));\nconst PodcastRubriqueList = defineAsyncComponent(() => import(\"./PodcastRubriqueList.vue\"));\n\n//Props \nconst props = defineProps<{\n podcast: Podcast;\n playingPodcast?: Podcast;\n podcastConference?: Conference;\n}>();\n\n//Emits\nconst emit = defineEmits([\"updatePodcast\"]);\n\n//Composables\nconst { t } = useI18n();\nconst propsRef = toRefs(props);\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n isPodcastmaker,\n editRight\n} = usePodcastView(propsRef.podcast, propsRef.podcastConference);\nconst authStore = useAuthStore();\nconst router = useRouter();\nconst { areSeasonsEnabled } = useSeasonsManagement();\n\n/** Reference to the PodcastRqwTranscript */\nconst podcastRawTranscript = useTemplateRef('podcastRawTranscript');\n\n//Computed\nconst podcastRubriques = computed(() => {\n let rubriques = props.podcast?.rubriqueIds ?? [];\n if(props.podcast?.emission?.rubriqueIds){\n rubriques = [...new Set(rubriques.concat(props.podcast?.emission?.rubriqueIds))];\n }\n return rubriques;\n});\nconst errorMessage = computed(() => {\n if (!props.podcast?.availability.visibility) {\n return t(\"Podcast is not visible for listeners\");\n }\n if (\"ERROR\" === props.podcast?.processingStatus) {\n return t(\"Podcast in ERROR, please contact Saooti\");\n }\n return podcastNotValid.value ? t(\"Podcast not validated\") : \"\";\n});\nconst isLiveReady = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast?.conferenceId &&\n \"READY\" === props.podcast?.processingStatus\n );\n});\nconst isDebriefing = computed(() => {\n return (\n undefined !== props.podcastConference &&\n \"DEBRIEFING\" === props.podcastConference.status\n );\n});\nconst isOctopusAndAnimator = computed(() => {\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\nconst podcastNotValid = computed(() => {\n return (\n undefined !== props.podcast?.availability &&\n false === props.podcast?.valid\n );\n});\nconst photoCredit = computed(() => formatCredits(props.podcast?.annotations?.photoCredit as string|undefined));\nconst audioCredit = computed(() => formatCredits(props.podcast?.annotations?.audioCredit as string|undefined));\nconst authorCredit = computed(() => formatCredits(props.podcast?.annotations?.authorCredit as string|undefined));\nconst isEditBox = computed(() => !((state.generalParameters.podcastmaker as boolean) ?? false));\n/** The tags to display */\nconst tags = computed(() => {\n const tags = [];\n if(props.podcast.tags) {\n tags.push(...props.podcast.tags);\n }\n // Also display tags defined on emission\n if(props.podcast.emission.tags) {\n tags.push(...props.podcast.emission.tags);\n }\n return tags;\n});\n\nconst showSeasonNumber = computed((): boolean => {\n return areSeasonsEnabled(props.podcast.emission) && props.podcast.seasonNumber !== undefined;\n});\n\nconst showSeasonEpisodeNumber = computed((): boolean => {\n return props.podcast.emission.seasonMode === SeasonMode.SEASON_WITH_PODCAST_NUMBERING && props.podcast.seasonEpisodeNumber !== undefined;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return props.podcast.annotations?.subtitle && state.podcastPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show description */\nconst showDescription = computed((): boolean => {\n return state.podcastPage?.descriptionOrSummary !== 'summary';\n});\n\n/** Indicates whether to show summary */\nconst showSummary = computed((): boolean => {\n return props.podcast.summary && state.podcastPage?.descriptionOrSummary !== 'description' && state.podcastPage?.descriptionOrSummary !== undefined;\n});\n\n//Methods\nfunction formatCredits(credits: string|undefined): string {\n if (credits === undefined) {\n return '';\n }\n return credits.split(',').map(s => s.trim()).join(', ');\n}\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction removeDeleted(): void {\n if (isLiveReadyToRecord.value) {\n router.push(\"/main/pub/lives\");\n } else if (window.history.length > 1) {\n router.go(-1);\n } else {\n router.push(\"/\");\n }\n}\n\nfunction resetTranscription(): void {\n podcastRawTranscript.value.reset();\n}\n\nconst showTags = computed((): boolean => {\n if (state.podcastPage.hideTags === true) {\n return false;\n }\n\n return undefined !== tags.value && 0 !== tags.value.length;\n});\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && podcast\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? podcast.emission.name : titlePage\"\n :img-url=\"podcast.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <PodcastModuleBox\n :playing-podcast=\"playingPodcast\"\n :podcast=\"podcast\"\n :podcast-conference=\"fetchConference\"\n @update-podcast=\"updatePodcast\"\n >\n <template #recording-item-button=\"slotProps\">\n <slot name=\"recording-item-button\" v-bind=\"slotProps\" />\n </template>\n <template #edit-box=\"slotProps\">\n <slot name=\"edit-box\" v-bind=\"slotProps\" />\n </template>\n </PodcastModuleBox>\n <ShareSocialsButtons\n v-if=\"state.podcastPage.ShareButtons\"\n :organisation-id=\"podcast.organisation.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight && !youtubeId\"\n :podcast=\"podcast\"\n :emission=\"podcast?.emission\"\n :organisation-id=\"authOrgaId\"\n />\n <CommentSection :podcast=\"podcast\" />\n\n <!-- Suggestions -->\n <PodcastInlineList\n :emission-id=\"podcast.emission.emissionId\"\n :href=\"'/main/pub/emission/' + podcast.emission.emissionId\"\n :title=\"t('More episodes of this emission')\"\n :button-text=\"t('All podcast emission button')\"\n title-tag=\"h3\"\n />\n <section v-if=\"!hideSuggestions\">\n <ClassicLazy :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :organisation-id=\"[podcast.organisation.id]\"\n :podcast-id=\"podcastId\"\n :title=\"t('Suggested listening')\"\n />\n </ClassicLazy>\n <ClassicLazy v-for=\"c in categories\" :key=\"c.id\" :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :iab-id=\"c.id\"\n :href=\"'/main/pub/category/' + c.id\"\n :title=\"t('More episodes of this category : ', { name: c.name })\"\n :button-text=\"t('All podcast button', { name: c.name })\"\n :organisation-id=\"[podcast.organisation.id]\"\n />\n </ClassicLazy>\n </section>\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport youtubeVideoHelper from \"../../helper/youtubeVideoHelper\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport PodcastInlineList from \"../display/podcasts/PodcastInlineList.vue\";\nimport PodcastModuleBox from \"../display/podcasts/PodcastModuleBox.vue\";\nimport ClassicLazy from \"../misc/ClassicLazy.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, ref, Ref, watch } from \"vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { AxiosError } from \"axios\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { podcastApi } from \"../../api/podcastApi\";\n\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\n\n//Props \nconst props = defineProps<{\n updateStatus?: string;\n playingPodcast?: Podcast;\n podcastId: number;\n /** When true, display emission title in podcastmaker header */\n useEmissionTitle?: boolean;\n}>();\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst fetchConference: Ref<Conference | undefined> = ref(undefined);\nconst infoReload: Ref<ReturnType<typeof setTimeout>| undefined> = ref(undefined);\nconst youtubeId: Ref<string| undefined> = ref(undefined);\n\n//Composables\nconst route = useRoute();\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst hideSuggestions = computed(() =>{\n return (\n \"true\" ===\n (podcast.value?.emission?.annotations?.[\"HIDE_SUGGESTIONS\"] as\n | string\n | undefined)\n );\n});\nconst emissionMainCategory = computed(() =>{\n if (!podcast.value) {\n return 0;\n }\n if (podcast.value.emission.annotations?.mainIabId) {\n return parseInt(\n podcast.value.emission.annotations.mainIabId as string,\n 10,\n );\n } else if(podcast.value.emission.iabIds?.length) {\n return podcast.value.emission.iabIds[0];\n }\n return 0;\n});\n\nconst categories = computed(() =>{\n if (\"undefined\" === typeof podcast.value) return [];\n return generalStore.storedCategories\n .filter((item: Category) => {\n return (\n podcast.value?.emission.iabIds &&\n -1 !== podcast.value.emission.iabIds.indexOf(item.id)\n );\n })\n .sort((a: Category, b: Category) => {\n if (a.id === emissionMainCategory.value) return -1;\n if (b.id === emissionMainCategory.value) return 1;\n return 0;\n });\n});\n\nconst editRight = computed(() =>{\n return isEditRights(podcast.value?.organisation.id);\n});\n\nconst isLiveReadyToRecord = computed(() =>{\n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value?.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value?.processingStatus\n );\n});\n\nconst isOctopusAndAnimator = computed(() =>{\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\n\nconst titlePage = computed(() =>{\n return isLiveReadyToRecord.value? t(\"Live episode\"): t(\"Episode\");\n});\n\n\n//Watch\nwatch(()=>props.updateStatus, () => {\n if (fetchConference.value && null !== fetchConference.value) {\n fetchConference.value.status = props.updateStatus;\n }\n});\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value || error.value) {\n return;\n }\n commentStore.initCommentUser();\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n clearTimeout(infoReload.value);\n});\n\n\n//Methods\nasync function initConference() {\n if (!podcast.value || undefined == podcast.value.conferenceId || \"READY_TO_RECORD\" !== podcast.value.processingStatus) return;\n fetchConference.value = { conferenceId: podcast.value.conferenceId, title: \"\" };\n if (isOctopusAndAnimator.value) {\n try {\n fetchConference.value = await classicApi.fetchData<Conference>({\n api: 9,\n path: \"conference/\" + podcast.value.conferenceId,\n });\n } catch {\n await fetchConferenceStatus();\n }\n } else {\n await fetchConferenceStatus();\n }\n if (\n fetchConference.value &&\n -1 !== fetchConference.value.conferenceId &&\n \"PUBLISHING\" !== fetchConference.value.status &&\n \"DEBRIEFING\" !== fetchConference.value.status\n ) {\n fetchConferenceStatusLoop();\n }\n}\n\nasync function fetchConferenceStatusLoop() {\n if(\"PUBLISHING\" ===fetchConference.value?.status){\n return;\n }\n infoReload.value = setTimeout(async () => {\n await fetchConferenceStatus();\n fetchConferenceStatusLoop();\n }, 3000);\n}\nasync function fetchConferenceStatus() {\n try {\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value?.conferenceId,\n });\n fetchConference.value = {...fetchConference.value, ...data};\n } catch {\n //Do nothing\n }\n}\nfunction updatePodcast(podcastUpdated: Podcast): void {\n podcast.value = podcastUpdated;\n filterStore.updateOrgaIfNecessary(podcastUpdated.organisation.id);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\n\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n const data = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n if (\n \"PUBLIC\" !== data.organisation.privacy &&\n filterStore.filterOrgaId !== data.organisation.id &&\n route.query.productor !== data.organisation.id\n ) {\n initError();\n return;\n }\n updatePodcast(data);\n generalStore.contentToDisplayUpdate(data);\n if (\n (!podcast.value.availability.visibility ||\n (\"READY_TO_RECORD\" !== podcast.value.processingStatus &&\n \"READY\" !== podcast.value.processingStatus &&\n \"PROCESSING\" !== podcast.value.processingStatus) ||\n false === podcast.value.valid) &&\n !editRight.value\n ) {\n error.value = true;\n loaded.value = true;\n return;\n }\n podcastInProcessing();\n updatePathParams(podcast.value.title);\n await commentStore.getCommentsConfig(podcast.value);\n if((fetchConference.value?.videoProfile?.includes(\"video_\") && \"READY_TO_RECORD\" === podcast.value.processingStatus) || undefined !== podcast.value.video?.videoId){\n youtubeId.value = youtubeVideoHelper.getYoutubeId(podcast.value?.tags ?? []);\n }\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction podcastInProcessing(){\n if(\"PLANNED\" !== podcast.value?.processingStatus){\n initConference();\n return;\n }\n infoReload.value = setTimeout(async () => {\n const podcast = await podcastApi.get(props.podcastId);\n updatePodcast(podcast);\n podcastInProcessing();\n }, 2000);\n}\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && podcast\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? podcast.emission.name : titlePage\"\n :img-url=\"podcast.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <PodcastModuleBox\n :playing-podcast=\"playingPodcast\"\n :podcast=\"podcast\"\n :podcast-conference=\"fetchConference\"\n @update-podcast=\"updatePodcast\"\n >\n <template #recording-item-button=\"slotProps\">\n <slot name=\"recording-item-button\" v-bind=\"slotProps\" />\n </template>\n <template #edit-box=\"slotProps\">\n <slot name=\"edit-box\" v-bind=\"slotProps\" />\n </template>\n </PodcastModuleBox>\n <ShareSocialsButtons\n v-if=\"state.podcastPage.ShareButtons\"\n :organisation-id=\"podcast.organisation.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight && !youtubeId\"\n :podcast=\"podcast\"\n :emission=\"podcast?.emission\"\n :organisation-id=\"authOrgaId\"\n />\n <CommentSection :podcast=\"podcast\" />\n\n <!-- Suggestions -->\n <PodcastInlineList\n :emission-id=\"podcast.emission.emissionId\"\n :href=\"'/main/pub/emission/' + podcast.emission.emissionId\"\n :title=\"t('More episodes of this emission')\"\n :button-text=\"t('All podcast emission button')\"\n title-tag=\"h3\"\n />\n <section v-if=\"!hideSuggestions\">\n <ClassicLazy :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :organisation-id=\"[podcast.organisation.id]\"\n :podcast-id=\"podcastId\"\n :title=\"t('Suggested listening')\"\n />\n </ClassicLazy>\n <ClassicLazy v-for=\"c in categories\" :key=\"c.id\" :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :iab-id=\"c.id\"\n :href=\"'/main/pub/category/' + c.id\"\n :title=\"t('More episodes of this category : ', { name: c.name })\"\n :button-text=\"t('All podcast button', { name: c.name })\"\n :organisation-id=\"[podcast.organisation.id]\"\n />\n </ClassicLazy>\n </section>\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport youtubeVideoHelper from \"../../helper/youtubeVideoHelper\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport PodcastInlineList from \"../display/podcasts/PodcastInlineList.vue\";\nimport PodcastModuleBox from \"../display/podcasts/PodcastModuleBox.vue\";\nimport ClassicLazy from \"../misc/ClassicLazy.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, ref, Ref, watch } from \"vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { AxiosError } from \"axios\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { podcastApi } from \"../../api/podcastApi\";\n\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\n\n//Props \nconst props = defineProps<{\n updateStatus?: string;\n playingPodcast?: Podcast;\n podcastId: number;\n /** When true, display emission title in podcastmaker header */\n useEmissionTitle?: boolean;\n}>();\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst fetchConference: Ref<Conference | undefined> = ref(undefined);\nconst infoReload: Ref<ReturnType<typeof setTimeout>| undefined> = ref(undefined);\nconst youtubeId: Ref<string| undefined> = ref(undefined);\n\n//Composables\nconst route = useRoute();\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst hideSuggestions = computed(() =>{\n return (\n \"true\" ===\n (podcast.value?.emission?.annotations?.[\"HIDE_SUGGESTIONS\"] as\n | string\n | undefined)\n );\n});\nconst emissionMainCategory = computed(() =>{\n if (!podcast.value) {\n return 0;\n }\n if (podcast.value.emission.annotations?.mainIabId) {\n return parseInt(\n podcast.value.emission.annotations.mainIabId as string,\n 10,\n );\n } else if(podcast.value.emission.iabIds?.length) {\n return podcast.value.emission.iabIds[0];\n }\n return 0;\n});\n\nconst categories = computed(() =>{\n if (\"undefined\" === typeof podcast.value) return [];\n return generalStore.storedCategories\n .filter((item: Category) => {\n return (\n podcast.value?.emission.iabIds &&\n -1 !== podcast.value.emission.iabIds.indexOf(item.id)\n );\n })\n .sort((a: Category, b: Category) => {\n if (a.id === emissionMainCategory.value) return -1;\n if (b.id === emissionMainCategory.value) return 1;\n return 0;\n });\n});\n\nconst editRight = computed(() =>{\n return isEditRights(podcast.value?.organisation.id);\n});\n\nconst isLiveReadyToRecord = computed(() =>{\n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value?.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value?.processingStatus\n );\n});\n\nconst isOctopusAndAnimator = computed(() =>{\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\n\nconst titlePage = computed(() =>{\n return isLiveReadyToRecord.value? t(\"Live episode\"): t(\"Episode\");\n});\n\n\n//Watch\nwatch(()=>props.updateStatus, () => {\n if (fetchConference.value && null !== fetchConference.value) {\n fetchConference.value.status = props.updateStatus;\n }\n});\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value || error.value) {\n return;\n }\n commentStore.initCommentUser();\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n clearTimeout(infoReload.value);\n});\n\n\n//Methods\nasync function initConference() {\n if (!podcast.value || undefined == podcast.value.conferenceId || \"READY_TO_RECORD\" !== podcast.value.processingStatus) return;\n fetchConference.value = { conferenceId: podcast.value.conferenceId, title: \"\" };\n if (isOctopusAndAnimator.value) {\n try {\n fetchConference.value = await classicApi.fetchData<Conference>({\n api: 9,\n path: \"conference/\" + podcast.value.conferenceId,\n });\n } catch {\n await fetchConferenceStatus();\n }\n } else {\n await fetchConferenceStatus();\n }\n if (\n fetchConference.value &&\n -1 !== fetchConference.value.conferenceId &&\n \"PUBLISHING\" !== fetchConference.value.status &&\n \"DEBRIEFING\" !== fetchConference.value.status\n ) {\n fetchConferenceStatusLoop();\n }\n}\n\nasync function fetchConferenceStatusLoop() {\n if(\"PUBLISHING\" ===fetchConference.value?.status){\n return;\n }\n infoReload.value = setTimeout(async () => {\n await fetchConferenceStatus();\n fetchConferenceStatusLoop();\n }, 3000);\n}\nasync function fetchConferenceStatus() {\n try {\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value?.conferenceId,\n });\n fetchConference.value = {...fetchConference.value, ...data};\n } catch {\n //Do nothing\n }\n}\nfunction updatePodcast(podcastUpdated: Podcast): void {\n podcast.value = podcastUpdated;\n filterStore.updateOrgaIfNecessary(podcastUpdated.organisation.id);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\n\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n const data = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n if (\n \"PUBLIC\" !== data.organisation.privacy &&\n filterStore.filterOrgaId !== data.organisation.id &&\n route.query.productor !== data.organisation.id\n ) {\n initError();\n return;\n }\n updatePodcast(data);\n generalStore.contentToDisplayUpdate(data);\n if (\n (!podcast.value.availability.visibility ||\n (\"READY_TO_RECORD\" !== podcast.value.processingStatus &&\n \"READY\" !== podcast.value.processingStatus &&\n \"PROCESSING\" !== podcast.value.processingStatus) ||\n false === podcast.value.valid) &&\n !editRight.value\n ) {\n error.value = true;\n loaded.value = true;\n return;\n }\n podcastInProcessing();\n updatePathParams(podcast.value.title);\n await commentStore.getCommentsConfig(podcast.value);\n if((fetchConference.value?.videoProfile?.includes(\"video_\") && \"READY_TO_RECORD\" === podcast.value.processingStatus) || undefined !== podcast.value.video?.videoId){\n youtubeId.value = youtubeVideoHelper.getYoutubeId(podcast.value?.tags ?? []);\n }\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction podcastInProcessing(){\n if(\"PLANNED\" !== podcast.value?.processingStatus){\n initConference();\n return;\n }\n infoReload.value = setTimeout(async () => {\n const podcast = await podcastApi.get(props.podcastId);\n updatePodcast(podcast);\n podcastInProcessing();\n }, 2000);\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PodcastPage-BFjlYZGL.mjs","names":[],"sources":["../src/components/display/podcasts/PodcastModuleBox.vue","../src/components/display/podcasts/PodcastModuleBox.vue","../src/components/pages/PodcastPage.vue","../src/components/pages/PodcastPage.vue"],"sourcesContent":["<template>\n <section v-if=\"podcast\" class=\"module-box\">\n <slot\n v-if=\"!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator\"\n name=\"recording-item-button\"\n :podcast=\"podcast\"\n :live=\"true\"\n :recording=\"podcastConference\"\n :on-delete-item=\"removeDeleted\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <slot\n v-else-if=\"editRight && isEditBox\"\n name=\"edit-box\"\n :podcast=\"podcast\"\n :display-studio-access=\"isDebriefing\"\n :on-update-transcription=\"resetTranscription\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <div class=\"mb-2 w-100\">\n <PodcastImage\n :class=\"[\n isLiveReadyToRecord &&\n podcastConference &&\n 'null' !== podcastConference &&\n podcastConference.status\n ? podcastConference.status.toLowerCase() + '-shadow'\n : '',\n ]\"\n class=\"me-3\"\n show-processing\n :hide-play=\"isLiveReadyToRecord\"\n :podcast=\"podcast\"\n :playing-podcast=\"playingPodcast\"\n :fetch-conference=\"podcastConference\"\n :is-animator-live=\"isOctopusAndAnimator\"\n />\n <div class=\"d-flex justify-content-between flex-wrap mb-2\">\n <time \n v-if=\"0 !== date.length\" :class=\"!isLiveReady ? 'me-5' : ''\"\n :datetime=\"podcast.pubDate\">\n {{ date }}\n </time>\n <div v-if=\"isLiveReady\" class=\"text-danger\">\n {{ t(\"Episode record in live\") }}\n </div>\n <div class=\"d-flex flex-column align-items-end\">\n <time :datetime=\"durationIso\">\n {{ duration }}\n </time>\n <ShareAnonymous v-if=\"!editRight\" :podcast=\"podcast\" :organisation-id=\"podcast.organisation.id\"/>\n </div>\n </div>\n <h2 :class=\"{ 'mb-3': !showSubtitle }\">\n <RightsIndicator\n :podcast=\"podcast\"\n action=\"edit\"\n inline\n />\n {{ podcast.title }}\n </h2>\n <h3 v-if=\"showSubtitle\" class=\"mb-3 text-secondary\">\n {{ podcast.annotations.subtitle }}\n </h3>\n \n <PodcastPlannedSpinner v-if=\"isPlannedInProcessor\" />\n <Countdown v-if=\"isCounter\" :time-remaining=\"timeRemaining\" />\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"showSummary\"\n class=\"description-text html-wysiwyg-content\"\n :class=\"{ 'mb-4': showSummary && showDescription }\"\n v-html=\"urlify(podcast.summary)\"\n />\n <div\n v-if=\"showDescription\"\n class=\"description-text html-wysiwyg-content\"\n v-html=\"urlify(podcast.description)\"\n />\n <!-- eslint-enable -->\n <div class=\"my-3\">\n <div class=\"mb-1\">\n {{ t(\"Emission\") + \" : \" }}\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: podcast.emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: podcast.emission.name })\"\n >\n {{ podcast.emission.name }}\n </router-link>\n </div>\n <ParticipantDescription :participants=\"podcast.animators\" />\n <ParticipantDescription\n :participants=\"podcast.guests\"\n :is-guest=\"true\"\n />\n <div v-if=\"!isPodcastmaker\" class=\"mb-1\">\n {{ t(\"Producted by : \") }}\n <router-link\n :to=\"{\n name: 'productor',\n params: { productorId: podcast.organisation.id },\n }\"\n >\n {{ podcast.organisation.name }}\n </router-link>\n </div>\n <div v-if=\"showSeasonNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Season')} : ${podcast.seasonNumber}` }}\n </div>\n <div v-if=\"showSeasonEpisodeNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Episode number')} : ${podcast.seasonEpisodeNumber}` }}\n </div>\n <div v-if=\"'' !== photoCredit\" class=\"mb-1\">\n {{ t(\"Photo credits\") + \" : \" + photoCredit }}\n </div>\n <div v-if=\"'' !== audioCredit\" class=\"mb-1\">\n {{ t(\"Audio credits\") + \" : \" + audioCredit }}\n </div>\n <div v-if=\"'' !== authorCredit\" class=\"mb-1\">\n {{ t(\"Author credits\") + \" : \" + authorCredit }}\n </div>\n <a\n v-if=\"podcast.article && !authStore.isGarRole\"\n class=\"btn d-flex align-items-center my-2 w-fit-content mb-1\"\n :href=\"podcast.article\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text : t('See associated article')})\"\n >\n <NewspaperVariantOutlineIcon class=\"me-1\" />\n <div>{{ t(\"See associated article\") }}</div>\n </a>\n <PodcastPlayBar\n v-if=\"state.emissionsPage.progressBar\"\n :podcast=\"podcast\"\n />\n <div v-if=\"editRight && !isPodcastmaker\">\n <div\n v-if=\"\n podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND\n \"\n class=\"me-5 text-secondary\"\n >\n {{ t(\"From RSS\") }}\n </div>\n <ErrorMessage v-if=\"'' !== errorMessage\" :message=\"errorMessage\" />\n </div>\n <div class=\"d-flex align-items-center flex-wrap\">\n <LikeSection :edit-right=\"editRight\" :podcast=\"podcast\" />\n <DownloadPodcastButton v-if=\"state.podcastPage.downloadButton\" :podcast=\"podcast\" />\n </div>\n </div>\n </div>\n <TagList\n v-if=\"showTags\"\n :tag-list=\"tags\"\n :orga-id=\"podcast.organisation.id\"\n :podcast-annotations=\"podcast.annotations\"\n :max=\"state.podcastPage.maxTags\"\n />\n <PodcastRubriqueList\n v-if=\"podcastRubriques?.length\"\n :orga-id=\"podcast.organisation.id\"\n :rubrique-ids=\"podcastRubriques\"\n />\n <PodcastRawTranscript\n ref=\"podcastRawTranscript\"\n :podcast-id=\"podcast.podcastId\"\n />\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"podcast.emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport NewspaperVariantOutlineIcon from \"vue-material-design-icons/NewspaperVariantOutline.vue\";\nimport PodcastImage from \"./PodcastImage.vue\";\nimport ParticipantDescription from \"./ParticipantDescription.vue\";\nimport PodcastRawTranscript from \"./PodcastRawTranscript.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport {usePodcastView} from \"../../composable/podcasts/usePodcastView\";\nimport { Podcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"../../../stores/class/conference/conference\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { SeasonMode } from \"../../../stores/class/general/emission\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport { defineAsyncComponent, toRefs, computed, useTemplateRef } from \"vue\";\nconst ErrorMessage = defineAsyncComponent(\n () => import(\"../../misc/ErrorMessage.vue\"),\n);\nconst PodcastPlayBar = defineAsyncComponent(\n () => import(\"./PodcastPlayBar.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../sharing/SubscribeButtons.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../comments/like/LikeSection.vue\"),\n);\nconst DownloadPodcastButton = defineAsyncComponent(\n () => import(\"./DownloadPodcastButton.vue\"),\n);\nconst PodcastPlannedSpinner = defineAsyncComponent(\n () => import(\"./PodcastPlannedSpinner.vue\"),\n);\nconst Countdown = defineAsyncComponent(() => import(\"../live/CountDown.vue\"));\nconst TagList = defineAsyncComponent(() => import(\"./TagList.vue\"));\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../sharing/ShareAnonymous.vue\"));\nconst PodcastRubriqueList = defineAsyncComponent(() => import(\"./PodcastRubriqueList.vue\"));\n\n//Props \nconst props = defineProps<{\n podcast: Podcast;\n playingPodcast?: Podcast;\n podcastConference?: Conference;\n}>();\n\n//Emits\nconst emit = defineEmits([\"updatePodcast\"]);\n\n//Composables\nconst { t } = useI18n();\nconst propsRef = toRefs(props);\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n isPodcastmaker,\n editRight\n} = usePodcastView(propsRef.podcast, propsRef.podcastConference);\nconst authStore = useAuthStore();\nconst router = useRouter();\nconst { areSeasonsEnabled } = useSeasonsManagement();\n\n/** Reference to the PodcastRqwTranscript */\nconst podcastRawTranscript = useTemplateRef('podcastRawTranscript');\n\n//Computed\nconst podcastRubriques = computed(() => {\n let rubriques = props.podcast?.rubriqueIds ?? [];\n if(props.podcast?.emission?.rubriqueIds){\n rubriques = [...new Set(rubriques.concat(props.podcast?.emission?.rubriqueIds))];\n }\n return rubriques;\n});\nconst errorMessage = computed(() => {\n if (!props.podcast?.availability.visibility) {\n return t(\"Podcast is not visible for listeners\");\n }\n if (\"ERROR\" === props.podcast?.processingStatus) {\n return t(\"Podcast in ERROR, please contact Saooti\");\n }\n return podcastNotValid.value ? t(\"Podcast not validated\") : \"\";\n});\nconst isLiveReady = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast?.conferenceId &&\n \"READY\" === props.podcast?.processingStatus\n );\n});\nconst isDebriefing = computed(() => {\n return (\n undefined !== props.podcastConference &&\n \"DEBRIEFING\" === props.podcastConference.status\n );\n});\nconst isOctopusAndAnimator = computed(() => {\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\nconst podcastNotValid = computed(() => {\n return (\n undefined !== props.podcast?.availability &&\n false === props.podcast?.valid\n );\n});\nconst photoCredit = computed(() => formatCredits(props.podcast?.annotations?.photoCredit as string|undefined));\nconst audioCredit = computed(() => formatCredits(props.podcast?.annotations?.audioCredit as string|undefined));\nconst authorCredit = computed(() => formatCredits(props.podcast?.annotations?.authorCredit as string|undefined));\nconst isEditBox = computed(() => !((state.generalParameters.podcastmaker as boolean) ?? false));\n/** The tags to display */\nconst tags = computed(() => {\n const tags = [];\n if(props.podcast.tags) {\n tags.push(...props.podcast.tags);\n }\n // Also display tags defined on emission\n if(props.podcast.emission.tags) {\n tags.push(...props.podcast.emission.tags);\n }\n return tags;\n});\n\nconst showSeasonNumber = computed((): boolean => {\n return areSeasonsEnabled(props.podcast.emission) && props.podcast.seasonNumber !== undefined;\n});\n\nconst showSeasonEpisodeNumber = computed((): boolean => {\n return props.podcast.emission.seasonMode === SeasonMode.SEASON_WITH_PODCAST_NUMBERING && props.podcast.seasonEpisodeNumber !== undefined;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return props.podcast.annotations?.subtitle && state.podcastPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show description */\nconst showDescription = computed((): boolean => {\n return state.podcastPage?.descriptionOrSummary !== 'summary';\n});\n\n/** Indicates whether to show summary */\nconst showSummary = computed((): boolean => {\n return props.podcast.summary && state.podcastPage?.descriptionOrSummary !== 'description' && state.podcastPage?.descriptionOrSummary !== undefined;\n});\n\n//Methods\nfunction formatCredits(credits: string|undefined): string {\n if (credits === undefined) {\n return '';\n }\n return credits.split(',').map(s => s.trim()).join(', ');\n}\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction removeDeleted(): void {\n if (isLiveReadyToRecord.value) {\n router.push(\"/main/pub/lives\");\n } else if (window.history.length > 1) {\n router.go(-1);\n } else {\n router.push(\"/\");\n }\n}\n\nfunction resetTranscription(): void {\n podcastRawTranscript.value.reset();\n}\n\nconst showTags = computed((): boolean => {\n if (state.podcastPage.hideTags === true) {\n return false;\n }\n\n return undefined !== tags.value && 0 !== tags.value.length;\n});\n</script>\n","<template>\n <section v-if=\"podcast\" class=\"module-box\">\n <slot\n v-if=\"!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator\"\n name=\"recording-item-button\"\n :podcast=\"podcast\"\n :live=\"true\"\n :recording=\"podcastConference\"\n :on-delete-item=\"removeDeleted\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <slot\n v-else-if=\"editRight && isEditBox\"\n name=\"edit-box\"\n :podcast=\"podcast\"\n :display-studio-access=\"isDebriefing\"\n :on-update-transcription=\"resetTranscription\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <div class=\"mb-2 w-100\">\n <PodcastImage\n :class=\"[\n isLiveReadyToRecord &&\n podcastConference &&\n 'null' !== podcastConference &&\n podcastConference.status\n ? podcastConference.status.toLowerCase() + '-shadow'\n : '',\n ]\"\n class=\"me-3\"\n show-processing\n :hide-play=\"isLiveReadyToRecord\"\n :podcast=\"podcast\"\n :playing-podcast=\"playingPodcast\"\n :fetch-conference=\"podcastConference\"\n :is-animator-live=\"isOctopusAndAnimator\"\n />\n <div class=\"d-flex justify-content-between flex-wrap mb-2\">\n <time \n v-if=\"0 !== date.length\" :class=\"!isLiveReady ? 'me-5' : ''\"\n :datetime=\"podcast.pubDate\">\n {{ date }}\n </time>\n <div v-if=\"isLiveReady\" class=\"text-danger\">\n {{ t(\"Episode record in live\") }}\n </div>\n <div class=\"d-flex flex-column align-items-end\">\n <time :datetime=\"durationIso\">\n {{ duration }}\n </time>\n <ShareAnonymous v-if=\"!editRight\" :podcast=\"podcast\" :organisation-id=\"podcast.organisation.id\"/>\n </div>\n </div>\n <h2 :class=\"{ 'mb-3': !showSubtitle }\">\n <RightsIndicator\n :podcast=\"podcast\"\n action=\"edit\"\n inline\n />\n {{ podcast.title }}\n </h2>\n <h3 v-if=\"showSubtitle\" class=\"mb-3 text-secondary\">\n {{ podcast.annotations.subtitle }}\n </h3>\n \n <PodcastPlannedSpinner v-if=\"isPlannedInProcessor\" />\n <Countdown v-if=\"isCounter\" :time-remaining=\"timeRemaining\" />\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"showSummary\"\n class=\"description-text html-wysiwyg-content\"\n :class=\"{ 'mb-4': showSummary && showDescription }\"\n v-html=\"urlify(podcast.summary)\"\n />\n <div\n v-if=\"showDescription\"\n class=\"description-text html-wysiwyg-content\"\n v-html=\"urlify(podcast.description)\"\n />\n <!-- eslint-enable -->\n <div class=\"my-3\">\n <div class=\"mb-1\">\n {{ t(\"Emission\") + \" : \" }}\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: podcast.emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: podcast.emission.name })\"\n >\n {{ podcast.emission.name }}\n </router-link>\n </div>\n <ParticipantDescription :participants=\"podcast.animators\" />\n <ParticipantDescription\n :participants=\"podcast.guests\"\n :is-guest=\"true\"\n />\n <div v-if=\"!isPodcastmaker\" class=\"mb-1\">\n {{ t(\"Producted by : \") }}\n <router-link\n :to=\"{\n name: 'productor',\n params: { productorId: podcast.organisation.id },\n }\"\n >\n {{ podcast.organisation.name }}\n </router-link>\n </div>\n <div v-if=\"showSeasonNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Season')} : ${podcast.seasonNumber}` }}\n </div>\n <div v-if=\"showSeasonEpisodeNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Episode number')} : ${podcast.seasonEpisodeNumber}` }}\n </div>\n <div v-if=\"'' !== photoCredit\" class=\"mb-1\">\n {{ t(\"Photo credits\") + \" : \" + photoCredit }}\n </div>\n <div v-if=\"'' !== audioCredit\" class=\"mb-1\">\n {{ t(\"Audio credits\") + \" : \" + audioCredit }}\n </div>\n <div v-if=\"'' !== authorCredit\" class=\"mb-1\">\n {{ t(\"Author credits\") + \" : \" + authorCredit }}\n </div>\n <a\n v-if=\"podcast.article && !authStore.isGarRole\"\n class=\"btn d-flex align-items-center my-2 w-fit-content mb-1\"\n :href=\"podcast.article\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text : t('See associated article')})\"\n >\n <NewspaperVariantOutlineIcon class=\"me-1\" />\n <div>{{ t(\"See associated article\") }}</div>\n </a>\n <PodcastPlayBar\n v-if=\"state.emissionsPage.progressBar\"\n :podcast=\"podcast\"\n />\n <div v-if=\"editRight && !isPodcastmaker\">\n <div\n v-if=\"\n podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND\n \"\n class=\"me-5 text-secondary\"\n >\n {{ t(\"From RSS\") }}\n </div>\n <ErrorMessage v-if=\"'' !== errorMessage\" :message=\"errorMessage\" />\n </div>\n <div class=\"d-flex align-items-center flex-wrap\">\n <LikeSection :edit-right=\"editRight\" :podcast=\"podcast\" />\n <DownloadPodcastButton v-if=\"state.podcastPage.downloadButton\" :podcast=\"podcast\" />\n </div>\n </div>\n </div>\n <TagList\n v-if=\"showTags\"\n :tag-list=\"tags\"\n :orga-id=\"podcast.organisation.id\"\n :podcast-annotations=\"podcast.annotations\"\n :max=\"state.podcastPage.maxTags\"\n />\n <PodcastRubriqueList\n v-if=\"podcastRubriques?.length\"\n :orga-id=\"podcast.organisation.id\"\n :rubrique-ids=\"podcastRubriques\"\n />\n <PodcastRawTranscript\n ref=\"podcastRawTranscript\"\n :podcast-id=\"podcast.podcastId\"\n />\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"podcast.emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport NewspaperVariantOutlineIcon from \"vue-material-design-icons/NewspaperVariantOutline.vue\";\nimport PodcastImage from \"./PodcastImage.vue\";\nimport ParticipantDescription from \"./ParticipantDescription.vue\";\nimport PodcastRawTranscript from \"./PodcastRawTranscript.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport {usePodcastView} from \"../../composable/podcasts/usePodcastView\";\nimport { Podcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"../../../stores/class/conference/conference\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { SeasonMode } from \"../../../stores/class/general/emission\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport { defineAsyncComponent, toRefs, computed, useTemplateRef } from \"vue\";\nconst ErrorMessage = defineAsyncComponent(\n () => import(\"../../misc/ErrorMessage.vue\"),\n);\nconst PodcastPlayBar = defineAsyncComponent(\n () => import(\"./PodcastPlayBar.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../sharing/SubscribeButtons.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../comments/like/LikeSection.vue\"),\n);\nconst DownloadPodcastButton = defineAsyncComponent(\n () => import(\"./DownloadPodcastButton.vue\"),\n);\nconst PodcastPlannedSpinner = defineAsyncComponent(\n () => import(\"./PodcastPlannedSpinner.vue\"),\n);\nconst Countdown = defineAsyncComponent(() => import(\"../live/CountDown.vue\"));\nconst TagList = defineAsyncComponent(() => import(\"./TagList.vue\"));\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../sharing/ShareAnonymous.vue\"));\nconst PodcastRubriqueList = defineAsyncComponent(() => import(\"./PodcastRubriqueList.vue\"));\n\n//Props \nconst props = defineProps<{\n podcast: Podcast;\n playingPodcast?: Podcast;\n podcastConference?: Conference;\n}>();\n\n//Emits\nconst emit = defineEmits([\"updatePodcast\"]);\n\n//Composables\nconst { t } = useI18n();\nconst propsRef = toRefs(props);\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n isPodcastmaker,\n editRight\n} = usePodcastView(propsRef.podcast, propsRef.podcastConference);\nconst authStore = useAuthStore();\nconst router = useRouter();\nconst { areSeasonsEnabled } = useSeasonsManagement();\n\n/** Reference to the PodcastRqwTranscript */\nconst podcastRawTranscript = useTemplateRef('podcastRawTranscript');\n\n//Computed\nconst podcastRubriques = computed(() => {\n let rubriques = props.podcast?.rubriqueIds ?? [];\n if(props.podcast?.emission?.rubriqueIds){\n rubriques = [...new Set(rubriques.concat(props.podcast?.emission?.rubriqueIds))];\n }\n return rubriques;\n});\nconst errorMessage = computed(() => {\n if (!props.podcast?.availability.visibility) {\n return t(\"Podcast is not visible for listeners\");\n }\n if (\"ERROR\" === props.podcast?.processingStatus) {\n return t(\"Podcast in ERROR, please contact Saooti\");\n }\n return podcastNotValid.value ? t(\"Podcast not validated\") : \"\";\n});\nconst isLiveReady = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast?.conferenceId &&\n \"READY\" === props.podcast?.processingStatus\n );\n});\nconst isDebriefing = computed(() => {\n return (\n undefined !== props.podcastConference &&\n \"DEBRIEFING\" === props.podcastConference.status\n );\n});\nconst isOctopusAndAnimator = computed(() => {\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\nconst podcastNotValid = computed(() => {\n return (\n undefined !== props.podcast?.availability &&\n false === props.podcast?.valid\n );\n});\nconst photoCredit = computed(() => formatCredits(props.podcast?.annotations?.photoCredit as string|undefined));\nconst audioCredit = computed(() => formatCredits(props.podcast?.annotations?.audioCredit as string|undefined));\nconst authorCredit = computed(() => formatCredits(props.podcast?.annotations?.authorCredit as string|undefined));\nconst isEditBox = computed(() => !((state.generalParameters.podcastmaker as boolean) ?? false));\n/** The tags to display */\nconst tags = computed(() => {\n const tags = [];\n if(props.podcast.tags) {\n tags.push(...props.podcast.tags);\n }\n // Also display tags defined on emission\n if(props.podcast.emission.tags) {\n tags.push(...props.podcast.emission.tags);\n }\n return tags;\n});\n\nconst showSeasonNumber = computed((): boolean => {\n return areSeasonsEnabled(props.podcast.emission) && props.podcast.seasonNumber !== undefined;\n});\n\nconst showSeasonEpisodeNumber = computed((): boolean => {\n return props.podcast.emission.seasonMode === SeasonMode.SEASON_WITH_PODCAST_NUMBERING && props.podcast.seasonEpisodeNumber !== undefined;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return props.podcast.annotations?.subtitle && state.podcastPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show description */\nconst showDescription = computed((): boolean => {\n return state.podcastPage?.descriptionOrSummary !== 'summary';\n});\n\n/** Indicates whether to show summary */\nconst showSummary = computed((): boolean => {\n return props.podcast.summary && state.podcastPage?.descriptionOrSummary !== 'description' && state.podcastPage?.descriptionOrSummary !== undefined;\n});\n\n//Methods\nfunction formatCredits(credits: string|undefined): string {\n if (credits === undefined) {\n return '';\n }\n return credits.split(',').map(s => s.trim()).join(', ');\n}\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction removeDeleted(): void {\n if (isLiveReadyToRecord.value) {\n router.push(\"/main/pub/lives\");\n } else if (window.history.length > 1) {\n router.go(-1);\n } else {\n router.push(\"/\");\n }\n}\n\nfunction resetTranscription(): void {\n podcastRawTranscript.value.reset();\n}\n\nconst showTags = computed((): boolean => {\n if (state.podcastPage.hideTags === true) {\n return false;\n }\n\n return undefined !== tags.value && 0 !== tags.value.length;\n});\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && podcast\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? podcast.emission.name : titlePage\"\n :img-url=\"podcast.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <PodcastModuleBox\n :playing-podcast=\"playingPodcast\"\n :podcast=\"podcast\"\n :podcast-conference=\"fetchConference\"\n @update-podcast=\"updatePodcast\"\n >\n <template #recording-item-button=\"slotProps\">\n <slot name=\"recording-item-button\" v-bind=\"slotProps\" />\n </template>\n <template #edit-box=\"slotProps\">\n <slot name=\"edit-box\" v-bind=\"slotProps\" />\n </template>\n </PodcastModuleBox>\n <ShareSocialsButtons\n v-if=\"state.podcastPage.ShareButtons\"\n :organisation-id=\"podcast.organisation.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight && !youtubeId\"\n :podcast=\"podcast\"\n :emission=\"podcast?.emission\"\n :organisation-id=\"authOrgaId\"\n />\n <CommentSection :podcast=\"podcast\" />\n\n <!-- Suggestions -->\n <PodcastInlineList\n :emission-id=\"podcast.emission.emissionId\"\n :href=\"'/main/pub/emission/' + podcast.emission.emissionId\"\n :title=\"t('More episodes of this emission')\"\n :button-text=\"t('All podcast emission button')\"\n title-tag=\"h3\"\n />\n <section v-if=\"!hideSuggestions\">\n <ClassicLazy :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :organisation-id=\"[podcast.organisation.id]\"\n :podcast-id=\"podcastId\"\n :title=\"t('Suggested listening')\"\n />\n </ClassicLazy>\n <ClassicLazy v-for=\"c in categories\" :key=\"c.id\" :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :iab-id=\"c.id\"\n :href=\"'/main/pub/category/' + c.id\"\n :title=\"t('More episodes of this category : ', { name: c.name })\"\n :button-text=\"t('All podcast button', { name: c.name })\"\n :organisation-id=\"[podcast.organisation.id]\"\n />\n </ClassicLazy>\n </section>\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport youtubeVideoHelper from \"../../helper/youtubeVideoHelper\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport PodcastInlineList from \"../display/podcasts/PodcastInlineList.vue\";\nimport PodcastModuleBox from \"../display/podcasts/PodcastModuleBox.vue\";\nimport ClassicLazy from \"../misc/ClassicLazy.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, ref, Ref, watch } from \"vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { AxiosError } from \"axios\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { podcastApi } from \"../../api/podcastApi\";\n\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\n\n//Props \nconst props = defineProps<{\n updateStatus?: string;\n playingPodcast?: Podcast;\n podcastId: number;\n /** When true, display emission title in podcastmaker header */\n useEmissionTitle?: boolean;\n}>();\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst fetchConference: Ref<Conference | undefined> = ref(undefined);\nconst infoReload: Ref<ReturnType<typeof setTimeout>| undefined> = ref(undefined);\nconst youtubeId: Ref<string| undefined> = ref(undefined);\n\n//Composables\nconst route = useRoute();\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst hideSuggestions = computed(() =>{\n return (\n \"true\" ===\n (podcast.value?.emission?.annotations?.[\"HIDE_SUGGESTIONS\"] as\n | string\n | undefined)\n );\n});\nconst emissionMainCategory = computed(() =>{\n if (!podcast.value) {\n return 0;\n }\n if (podcast.value.emission.annotations?.mainIabId) {\n return parseInt(\n podcast.value.emission.annotations.mainIabId as string,\n 10,\n );\n } else if(podcast.value.emission.iabIds?.length) {\n return podcast.value.emission.iabIds[0];\n }\n return 0;\n});\n\nconst categories = computed(() =>{\n if (\"undefined\" === typeof podcast.value) return [];\n return generalStore.storedCategories\n .filter((item: Category) => {\n return (\n podcast.value?.emission.iabIds &&\n -1 !== podcast.value.emission.iabIds.indexOf(item.id)\n );\n })\n .sort((a: Category, b: Category) => {\n if (a.id === emissionMainCategory.value) return -1;\n if (b.id === emissionMainCategory.value) return 1;\n return 0;\n });\n});\n\nconst editRight = computed(() =>{\n return isEditRights(podcast.value?.organisation.id);\n});\n\nconst isLiveReadyToRecord = computed(() =>{\n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value?.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value?.processingStatus\n );\n});\n\nconst isOctopusAndAnimator = computed(() =>{\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\n\nconst titlePage = computed(() =>{\n return isLiveReadyToRecord.value? t(\"Live episode\"): t(\"Episode\");\n});\n\n\n//Watch\nwatch(()=>props.updateStatus, () => {\n if (fetchConference.value && null !== fetchConference.value) {\n fetchConference.value.status = props.updateStatus;\n }\n});\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value || error.value) {\n return;\n }\n commentStore.initCommentUser();\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n clearTimeout(infoReload.value);\n});\n\n\n//Methods\nasync function initConference() {\n if (!podcast.value || undefined == podcast.value.conferenceId || \"READY_TO_RECORD\" !== podcast.value.processingStatus) return;\n fetchConference.value = { conferenceId: podcast.value.conferenceId, title: \"\" };\n if (isOctopusAndAnimator.value) {\n try {\n fetchConference.value = await classicApi.fetchData<Conference>({\n api: 9,\n path: \"conference/\" + podcast.value.conferenceId,\n });\n } catch {\n await fetchConferenceStatus();\n }\n } else {\n await fetchConferenceStatus();\n }\n if (\n fetchConference.value &&\n -1 !== fetchConference.value.conferenceId &&\n \"PUBLISHING\" !== fetchConference.value.status &&\n \"DEBRIEFING\" !== fetchConference.value.status\n ) {\n fetchConferenceStatusLoop();\n }\n}\n\nasync function fetchConferenceStatusLoop() {\n if(\"PUBLISHING\" ===fetchConference.value?.status){\n return;\n }\n infoReload.value = setTimeout(async () => {\n await fetchConferenceStatus();\n fetchConferenceStatusLoop();\n }, 3000);\n}\nasync function fetchConferenceStatus() {\n try {\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value?.conferenceId,\n });\n fetchConference.value = {...fetchConference.value, ...data};\n } catch {\n //Do nothing\n }\n}\nfunction updatePodcast(podcastUpdated: Podcast): void {\n podcast.value = podcastUpdated;\n filterStore.updateOrgaIfNecessary(podcastUpdated.organisation.id);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\n\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n const data = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n if (\n \"PUBLIC\" !== data.organisation.privacy &&\n filterStore.filterOrgaId !== data.organisation.id &&\n route.query.productor !== data.organisation.id\n ) {\n initError();\n return;\n }\n updatePodcast(data);\n generalStore.contentToDisplayUpdate(data);\n if (\n (!podcast.value.availability.visibility ||\n (\"READY_TO_RECORD\" !== podcast.value.processingStatus &&\n \"READY\" !== podcast.value.processingStatus &&\n \"PROCESSING\" !== podcast.value.processingStatus) ||\n false === podcast.value.valid) &&\n !editRight.value\n ) {\n error.value = true;\n loaded.value = true;\n return;\n }\n podcastInProcessing();\n updatePathParams(podcast.value.title);\n await commentStore.getCommentsConfig(podcast.value);\n if((fetchConference.value?.videoProfile?.includes(\"video_\") && \"READY_TO_RECORD\" === podcast.value.processingStatus) || undefined !== podcast.value.video?.videoId){\n youtubeId.value = youtubeVideoHelper.getYoutubeId(podcast.value?.tags ?? []);\n }\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction podcastInProcessing(){\n if(\"PLANNED\" !== podcast.value?.processingStatus){\n initConference();\n return;\n }\n infoReload.value = setTimeout(async () => {\n const podcast = await podcastApi.get(props.podcastId);\n updatePodcast(podcast);\n podcastInProcessing();\n }, 2000);\n}\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && podcast\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? podcast.emission.name : titlePage\"\n :img-url=\"podcast.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <PodcastModuleBox\n :playing-podcast=\"playingPodcast\"\n :podcast=\"podcast\"\n :podcast-conference=\"fetchConference\"\n @update-podcast=\"updatePodcast\"\n >\n <template #recording-item-button=\"slotProps\">\n <slot name=\"recording-item-button\" v-bind=\"slotProps\" />\n </template>\n <template #edit-box=\"slotProps\">\n <slot name=\"edit-box\" v-bind=\"slotProps\" />\n </template>\n </PodcastModuleBox>\n <ShareSocialsButtons\n v-if=\"state.podcastPage.ShareButtons\"\n :organisation-id=\"podcast.organisation.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight && !youtubeId\"\n :podcast=\"podcast\"\n :emission=\"podcast?.emission\"\n :organisation-id=\"authOrgaId\"\n />\n <CommentSection :podcast=\"podcast\" />\n\n <!-- Suggestions -->\n <PodcastInlineList\n :emission-id=\"podcast.emission.emissionId\"\n :href=\"'/main/pub/emission/' + podcast.emission.emissionId\"\n :title=\"t('More episodes of this emission')\"\n :button-text=\"t('All podcast emission button')\"\n title-tag=\"h3\"\n />\n <section v-if=\"!hideSuggestions\">\n <ClassicLazy :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :organisation-id=\"[podcast.organisation.id]\"\n :podcast-id=\"podcastId\"\n :title=\"t('Suggested listening')\"\n />\n </ClassicLazy>\n <ClassicLazy v-for=\"c in categories\" :key=\"c.id\" :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :iab-id=\"c.id\"\n :href=\"'/main/pub/category/' + c.id\"\n :title=\"t('More episodes of this category : ', { name: c.name })\"\n :button-text=\"t('All podcast button', { name: c.name })\"\n :organisation-id=\"[podcast.organisation.id]\"\n />\n </ClassicLazy>\n </section>\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport youtubeVideoHelper from \"../../helper/youtubeVideoHelper\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport PodcastInlineList from \"../display/podcasts/PodcastInlineList.vue\";\nimport PodcastModuleBox from \"../display/podcasts/PodcastModuleBox.vue\";\nimport ClassicLazy from \"../misc/ClassicLazy.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, ref, Ref, watch } from \"vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { AxiosError } from \"axios\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { podcastApi } from \"../../api/podcastApi\";\n\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\n\n//Props \nconst props = defineProps<{\n updateStatus?: string;\n playingPodcast?: Podcast;\n podcastId: number;\n /** When true, display emission title in podcastmaker header */\n useEmissionTitle?: boolean;\n}>();\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst fetchConference: Ref<Conference | undefined> = ref(undefined);\nconst infoReload: Ref<ReturnType<typeof setTimeout>| undefined> = ref(undefined);\nconst youtubeId: Ref<string| undefined> = ref(undefined);\n\n//Composables\nconst route = useRoute();\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst hideSuggestions = computed(() =>{\n return (\n \"true\" ===\n (podcast.value?.emission?.annotations?.[\"HIDE_SUGGESTIONS\"] as\n | string\n | undefined)\n );\n});\nconst emissionMainCategory = computed(() =>{\n if (!podcast.value) {\n return 0;\n }\n if (podcast.value.emission.annotations?.mainIabId) {\n return parseInt(\n podcast.value.emission.annotations.mainIabId as string,\n 10,\n );\n } else if(podcast.value.emission.iabIds?.length) {\n return podcast.value.emission.iabIds[0];\n }\n return 0;\n});\n\nconst categories = computed(() =>{\n if (\"undefined\" === typeof podcast.value) return [];\n return generalStore.storedCategories\n .filter((item: Category) => {\n return (\n podcast.value?.emission.iabIds &&\n -1 !== podcast.value.emission.iabIds.indexOf(item.id)\n );\n })\n .sort((a: Category, b: Category) => {\n if (a.id === emissionMainCategory.value) return -1;\n if (b.id === emissionMainCategory.value) return 1;\n return 0;\n });\n});\n\nconst editRight = computed(() =>{\n return isEditRights(podcast.value?.organisation.id);\n});\n\nconst isLiveReadyToRecord = computed(() =>{\n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value?.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value?.processingStatus\n );\n});\n\nconst isOctopusAndAnimator = computed(() =>{\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\n\nconst titlePage = computed(() =>{\n return isLiveReadyToRecord.value? t(\"Live episode\"): t(\"Episode\");\n});\n\n\n//Watch\nwatch(()=>props.updateStatus, () => {\n if (fetchConference.value && null !== fetchConference.value) {\n fetchConference.value.status = props.updateStatus;\n }\n});\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value || error.value) {\n return;\n }\n commentStore.initCommentUser();\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n clearTimeout(infoReload.value);\n});\n\n\n//Methods\nasync function initConference() {\n if (!podcast.value || undefined == podcast.value.conferenceId || \"READY_TO_RECORD\" !== podcast.value.processingStatus) return;\n fetchConference.value = { conferenceId: podcast.value.conferenceId, title: \"\" };\n if (isOctopusAndAnimator.value) {\n try {\n fetchConference.value = await classicApi.fetchData<Conference>({\n api: 9,\n path: \"conference/\" + podcast.value.conferenceId,\n });\n } catch {\n await fetchConferenceStatus();\n }\n } else {\n await fetchConferenceStatus();\n }\n if (\n fetchConference.value &&\n -1 !== fetchConference.value.conferenceId &&\n \"PUBLISHING\" !== fetchConference.value.status &&\n \"DEBRIEFING\" !== fetchConference.value.status\n ) {\n fetchConferenceStatusLoop();\n }\n}\n\nasync function fetchConferenceStatusLoop() {\n if(\"PUBLISHING\" ===fetchConference.value?.status){\n return;\n }\n infoReload.value = setTimeout(async () => {\n await fetchConferenceStatus();\n fetchConferenceStatusLoop();\n }, 3000);\n}\nasync function fetchConferenceStatus() {\n try {\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value?.conferenceId,\n });\n fetchConference.value = {...fetchConference.value, ...data};\n } catch {\n //Do nothing\n }\n}\nfunction updatePodcast(podcastUpdated: Podcast): void {\n podcast.value = podcastUpdated;\n filterStore.updateOrgaIfNecessary(podcastUpdated.organisation.id);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\n\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n const data = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n if (\n \"PUBLIC\" !== data.organisation.privacy &&\n filterStore.filterOrgaId !== data.organisation.id &&\n route.query.productor !== data.organisation.id\n ) {\n initError();\n return;\n }\n updatePodcast(data);\n generalStore.contentToDisplayUpdate(data);\n if (\n (!podcast.value.availability.visibility ||\n (\"READY_TO_RECORD\" !== podcast.value.processingStatus &&\n \"READY\" !== podcast.value.processingStatus &&\n \"PROCESSING\" !== podcast.value.processingStatus) ||\n false === podcast.value.valid) &&\n !editRight.value\n ) {\n error.value = true;\n loaded.value = true;\n return;\n }\n podcastInProcessing();\n updatePathParams(podcast.value.title);\n await commentStore.getCommentsConfig(podcast.value);\n if((fetchConference.value?.videoProfile?.includes(\"video_\") && \"READY_TO_RECORD\" === podcast.value.processingStatus) || undefined !== podcast.value.video?.videoId){\n youtubeId.value = youtubeVideoHelper.getYoutubeId(podcast.value?.tags ?? []);\n }\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction podcastInProcessing(){\n if(\"PLANNED\" !== podcast.value?.processingStatus){\n initConference();\n return;\n }\n infoReload.value = setTimeout(async () => {\n const podcast = await podcastApi.get(props.podcastId);\n updatePodcast(podcast);\n podcastInProcessing();\n }, 2000);\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PodcastPage-BUlluWvM.mjs","names":[],"sources":["../src/components/display/podcasts/PodcastModuleBox.vue","../src/components/display/podcasts/PodcastModuleBox.vue","../src/components/pages/PodcastPage.vue","../src/components/pages/PodcastPage.vue"],"sourcesContent":["<template>\n <section v-if=\"podcast\" class=\"module-box\">\n <slot\n v-if=\"!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator\"\n name=\"recording-item-button\"\n :podcast=\"podcast\"\n :live=\"true\"\n :recording=\"podcastConference\"\n :on-delete-item=\"removeDeleted\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <slot\n v-else-if=\"editRight && isEditBox\"\n name=\"edit-box\"\n :podcast=\"podcast\"\n :display-studio-access=\"isDebriefing\"\n :on-update-transcription=\"resetTranscription\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <div class=\"mb-2 w-100\">\n <PodcastImage\n :class=\"[\n isLiveReadyToRecord &&\n podcastConference &&\n 'null' !== podcastConference &&\n podcastConference.status\n ? podcastConference.status.toLowerCase() + '-shadow'\n : '',\n ]\"\n class=\"me-3\"\n show-processing\n :hide-play=\"isLiveReadyToRecord\"\n :podcast=\"podcast\"\n :playing-podcast=\"playingPodcast\"\n :fetch-conference=\"podcastConference\"\n :is-animator-live=\"isOctopusAndAnimator\"\n />\n <div class=\"d-flex justify-content-between flex-wrap mb-2\">\n <time \n v-if=\"0 !== date.length\" :class=\"!isLiveReady ? 'me-5' : ''\"\n :datetime=\"podcast.pubDate\">\n {{ date }}\n </time>\n <div v-if=\"isLiveReady\" class=\"text-danger\">\n {{ t(\"Episode record in live\") }}\n </div>\n <div class=\"d-flex flex-column align-items-end\">\n <time :datetime=\"durationIso\">\n {{ duration }}\n </time>\n <ShareAnonymous v-if=\"!editRight\" :podcast=\"podcast\" :organisation-id=\"podcast.organisation.id\"/>\n </div>\n </div>\n <h2 :class=\"{ 'mb-3': !showSubtitle }\">\n <RightsIndicator\n :podcast=\"podcast\"\n action=\"edit\"\n inline\n />\n {{ podcast.title }}\n </h2>\n <h3 v-if=\"showSubtitle\" class=\"mb-3 text-secondary\">\n {{ podcast.annotations.subtitle }}\n </h3>\n \n <PodcastPlannedSpinner v-if=\"isPlannedInProcessor\" />\n <Countdown v-if=\"isCounter\" :time-remaining=\"timeRemaining\" />\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"showSummary\"\n class=\"description-text html-wysiwyg-content\"\n :class=\"{ 'mb-4': showSummary && showDescription }\"\n v-html=\"urlify(podcast.summary)\"\n />\n <div\n v-if=\"showDescription\"\n class=\"description-text html-wysiwyg-content\"\n v-html=\"urlify(podcast.description)\"\n />\n <!-- eslint-enable -->\n <div class=\"my-3\">\n <div class=\"mb-1\">\n {{ t(\"Emission\") + \" : \" }}\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: podcast.emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: podcast.emission.name })\"\n >\n {{ podcast.emission.name }}\n </router-link>\n </div>\n <ParticipantDescription :participants=\"podcast.animators\" />\n <ParticipantDescription\n :participants=\"podcast.guests\"\n :is-guest=\"true\"\n />\n <div v-if=\"!isPodcastmaker\" class=\"mb-1\">\n {{ t(\"Producted by : \") }}\n <router-link\n :to=\"{\n name: 'productor',\n params: { productorId: podcast.organisation.id },\n }\"\n >\n {{ podcast.organisation.name }}\n </router-link>\n </div>\n <div v-if=\"showSeasonNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Season')} : ${podcast.seasonNumber}` }}\n </div>\n <div v-if=\"showSeasonEpisodeNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Episode number')} : ${podcast.seasonEpisodeNumber}` }}\n </div>\n <div v-if=\"'' !== photoCredit\" class=\"mb-1\">\n {{ t(\"Photo credits\") + \" : \" + photoCredit }}\n </div>\n <div v-if=\"'' !== audioCredit\" class=\"mb-1\">\n {{ t(\"Audio credits\") + \" : \" + audioCredit }}\n </div>\n <div v-if=\"'' !== authorCredit\" class=\"mb-1\">\n {{ t(\"Author credits\") + \" : \" + authorCredit }}\n </div>\n <a\n v-if=\"podcast.article && !authStore.isGarRole\"\n class=\"btn d-flex align-items-center my-2 w-fit-content mb-1\"\n :href=\"podcast.article\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text : t('See associated article')})\"\n >\n <NewspaperVariantOutlineIcon class=\"me-1\" />\n <div>{{ t(\"See associated article\") }}</div>\n </a>\n <PodcastPlayBar\n v-if=\"state.emissionsPage.progressBar\"\n :podcast=\"podcast\"\n />\n <div v-if=\"editRight && !isPodcastmaker\">\n <div\n v-if=\"\n podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND\n \"\n class=\"me-5 text-secondary\"\n >\n {{ t(\"From RSS\") }}\n </div>\n <ErrorMessage v-if=\"'' !== errorMessage\" :message=\"errorMessage\" />\n </div>\n <div class=\"d-flex align-items-center flex-wrap\">\n <LikeSection :edit-right=\"editRight\" :podcast=\"podcast\" />\n <DownloadPodcastButton v-if=\"state.podcastPage.downloadButton\" :podcast=\"podcast\" />\n </div>\n </div>\n </div>\n <TagList\n v-if=\"showTags\"\n :tag-list=\"tags\"\n :orga-id=\"podcast.organisation.id\"\n :podcast-annotations=\"podcast.annotations\"\n :max=\"state.podcastPage.maxTags\"\n />\n <PodcastRubriqueList\n v-if=\"podcastRubriques?.length\"\n :orga-id=\"podcast.organisation.id\"\n :rubrique-ids=\"podcastRubriques\"\n />\n <PodcastRawTranscript\n ref=\"podcastRawTranscript\"\n :podcast-id=\"podcast.podcastId\"\n />\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"podcast.emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport NewspaperVariantOutlineIcon from \"vue-material-design-icons/NewspaperVariantOutline.vue\";\nimport PodcastImage from \"./PodcastImage.vue\";\nimport ParticipantDescription from \"./ParticipantDescription.vue\";\nimport PodcastRawTranscript from \"./PodcastRawTranscript.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport {usePodcastView} from \"../../composable/podcasts/usePodcastView\";\nimport { Podcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"../../../stores/class/conference/conference\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { SeasonMode } from \"../../../stores/class/general/emission\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport { defineAsyncComponent, toRefs, computed, useTemplateRef } from \"vue\";\nconst ErrorMessage = defineAsyncComponent(\n () => import(\"../../misc/ErrorMessage.vue\"),\n);\nconst PodcastPlayBar = defineAsyncComponent(\n () => import(\"./PodcastPlayBar.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../sharing/SubscribeButtons.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../comments/like/LikeSection.vue\"),\n);\nconst DownloadPodcastButton = defineAsyncComponent(\n () => import(\"./DownloadPodcastButton.vue\"),\n);\nconst PodcastPlannedSpinner = defineAsyncComponent(\n () => import(\"./PodcastPlannedSpinner.vue\"),\n);\nconst Countdown = defineAsyncComponent(() => import(\"../live/CountDown.vue\"));\nconst TagList = defineAsyncComponent(() => import(\"./TagList.vue\"));\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../sharing/ShareAnonymous.vue\"));\nconst PodcastRubriqueList = defineAsyncComponent(() => import(\"./PodcastRubriqueList.vue\"));\n\n//Props \nconst props = defineProps<{\n podcast: Podcast;\n playingPodcast?: Podcast;\n podcastConference?: Conference;\n}>();\n\n//Emits\nconst emit = defineEmits([\"updatePodcast\"]);\n\n//Composables\nconst { t } = useI18n();\nconst propsRef = toRefs(props);\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n isPodcastmaker,\n editRight\n} = usePodcastView(propsRef.podcast, propsRef.podcastConference);\nconst authStore = useAuthStore();\nconst router = useRouter();\nconst { areSeasonsEnabled } = useSeasonsManagement();\n\n/** Reference to the PodcastRqwTranscript */\nconst podcastRawTranscript = useTemplateRef('podcastRawTranscript');\n\n//Computed\nconst podcastRubriques = computed(() => {\n let rubriques = props.podcast?.rubriqueIds ?? [];\n if(props.podcast?.emission?.rubriqueIds){\n rubriques = [...new Set(rubriques.concat(props.podcast?.emission?.rubriqueIds))];\n }\n return rubriques;\n});\nconst errorMessage = computed(() => {\n if (!props.podcast?.availability.visibility) {\n return t(\"Podcast is not visible for listeners\");\n }\n if (\"ERROR\" === props.podcast?.processingStatus) {\n return t(\"Podcast in ERROR, please contact Saooti\");\n }\n return podcastNotValid.value ? t(\"Podcast not validated\") : \"\";\n});\nconst isLiveReady = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast?.conferenceId &&\n \"READY\" === props.podcast?.processingStatus\n );\n});\nconst isDebriefing = computed(() => {\n return (\n undefined !== props.podcastConference &&\n \"DEBRIEFING\" === props.podcastConference.status\n );\n});\nconst isOctopusAndAnimator = computed(() => {\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\nconst podcastNotValid = computed(() => {\n return (\n undefined !== props.podcast?.availability &&\n false === props.podcast?.valid\n );\n});\nconst photoCredit = computed(() => formatCredits(props.podcast?.annotations?.photoCredit as string|undefined));\nconst audioCredit = computed(() => formatCredits(props.podcast?.annotations?.audioCredit as string|undefined));\nconst authorCredit = computed(() => formatCredits(props.podcast?.annotations?.authorCredit as string|undefined));\nconst isEditBox = computed(() => !((state.generalParameters.podcastmaker as boolean) ?? false));\n/** The tags to display */\nconst tags = computed(() => {\n const tags = [];\n if(props.podcast.tags) {\n tags.push(...props.podcast.tags);\n }\n // Also display tags defined on emission\n if(props.podcast.emission.tags) {\n tags.push(...props.podcast.emission.tags);\n }\n return tags;\n});\n\nconst showSeasonNumber = computed((): boolean => {\n return areSeasonsEnabled(props.podcast.emission) && props.podcast.seasonNumber !== undefined;\n});\n\nconst showSeasonEpisodeNumber = computed((): boolean => {\n return props.podcast.emission.seasonMode === SeasonMode.SEASON_WITH_PODCAST_NUMBERING && props.podcast.seasonEpisodeNumber !== undefined;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return props.podcast.annotations?.subtitle && state.podcastPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show description */\nconst showDescription = computed((): boolean => {\n return state.podcastPage?.descriptionOrSummary !== 'summary';\n});\n\n/** Indicates whether to show summary */\nconst showSummary = computed((): boolean => {\n return props.podcast.summary && state.podcastPage?.descriptionOrSummary !== 'description' && state.podcastPage?.descriptionOrSummary !== undefined;\n});\n\n//Methods\nfunction formatCredits(credits: string|undefined): string {\n if (credits === undefined) {\n return '';\n }\n return credits.split(',').map(s => s.trim()).join(', ');\n}\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction removeDeleted(): void {\n if (isLiveReadyToRecord.value) {\n router.push(\"/main/pub/lives\");\n } else if (window.history.length > 1) {\n router.go(-1);\n } else {\n router.push(\"/\");\n }\n}\n\nfunction resetTranscription(): void {\n podcastRawTranscript.value.reset();\n}\n\nconst showTags = computed((): boolean => {\n if (state.podcastPage.hideTags === true) {\n return false;\n }\n\n return undefined !== tags.value && 0 !== tags.value.length;\n});\n</script>\n","<template>\n <section v-if=\"podcast\" class=\"module-box\">\n <slot\n v-if=\"!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator\"\n name=\"recording-item-button\"\n :podcast=\"podcast\"\n :live=\"true\"\n :recording=\"podcastConference\"\n :on-delete-item=\"removeDeleted\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <slot\n v-else-if=\"editRight && isEditBox\"\n name=\"edit-box\"\n :podcast=\"podcast\"\n :display-studio-access=\"isDebriefing\"\n :on-update-transcription=\"resetTranscription\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <div class=\"mb-2 w-100\">\n <PodcastImage\n :class=\"[\n isLiveReadyToRecord &&\n podcastConference &&\n 'null' !== podcastConference &&\n podcastConference.status\n ? podcastConference.status.toLowerCase() + '-shadow'\n : '',\n ]\"\n class=\"me-3\"\n show-processing\n :hide-play=\"isLiveReadyToRecord\"\n :podcast=\"podcast\"\n :playing-podcast=\"playingPodcast\"\n :fetch-conference=\"podcastConference\"\n :is-animator-live=\"isOctopusAndAnimator\"\n />\n <div class=\"d-flex justify-content-between flex-wrap mb-2\">\n <time \n v-if=\"0 !== date.length\" :class=\"!isLiveReady ? 'me-5' : ''\"\n :datetime=\"podcast.pubDate\">\n {{ date }}\n </time>\n <div v-if=\"isLiveReady\" class=\"text-danger\">\n {{ t(\"Episode record in live\") }}\n </div>\n <div class=\"d-flex flex-column align-items-end\">\n <time :datetime=\"durationIso\">\n {{ duration }}\n </time>\n <ShareAnonymous v-if=\"!editRight\" :podcast=\"podcast\" :organisation-id=\"podcast.organisation.id\"/>\n </div>\n </div>\n <h2 :class=\"{ 'mb-3': !showSubtitle }\">\n <RightsIndicator\n :podcast=\"podcast\"\n action=\"edit\"\n inline\n />\n {{ podcast.title }}\n </h2>\n <h3 v-if=\"showSubtitle\" class=\"mb-3 text-secondary\">\n {{ podcast.annotations.subtitle }}\n </h3>\n \n <PodcastPlannedSpinner v-if=\"isPlannedInProcessor\" />\n <Countdown v-if=\"isCounter\" :time-remaining=\"timeRemaining\" />\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"showSummary\"\n class=\"description-text html-wysiwyg-content\"\n :class=\"{ 'mb-4': showSummary && showDescription }\"\n v-html=\"urlify(podcast.summary)\"\n />\n <div\n v-if=\"showDescription\"\n class=\"description-text html-wysiwyg-content\"\n v-html=\"urlify(podcast.description)\"\n />\n <!-- eslint-enable -->\n <div class=\"my-3\">\n <div class=\"mb-1\">\n {{ t(\"Emission\") + \" : \" }}\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: podcast.emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: podcast.emission.name })\"\n >\n {{ podcast.emission.name }}\n </router-link>\n </div>\n <ParticipantDescription :participants=\"podcast.animators\" />\n <ParticipantDescription\n :participants=\"podcast.guests\"\n :is-guest=\"true\"\n />\n <div v-if=\"!isPodcastmaker\" class=\"mb-1\">\n {{ t(\"Producted by : \") }}\n <router-link\n :to=\"{\n name: 'productor',\n params: { productorId: podcast.organisation.id },\n }\"\n >\n {{ podcast.organisation.name }}\n </router-link>\n </div>\n <div v-if=\"showSeasonNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Season')} : ${podcast.seasonNumber}` }}\n </div>\n <div v-if=\"showSeasonEpisodeNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Episode number')} : ${podcast.seasonEpisodeNumber}` }}\n </div>\n <div v-if=\"'' !== photoCredit\" class=\"mb-1\">\n {{ t(\"Photo credits\") + \" : \" + photoCredit }}\n </div>\n <div v-if=\"'' !== audioCredit\" class=\"mb-1\">\n {{ t(\"Audio credits\") + \" : \" + audioCredit }}\n </div>\n <div v-if=\"'' !== authorCredit\" class=\"mb-1\">\n {{ t(\"Author credits\") + \" : \" + authorCredit }}\n </div>\n <a\n v-if=\"podcast.article && !authStore.isGarRole\"\n class=\"btn d-flex align-items-center my-2 w-fit-content mb-1\"\n :href=\"podcast.article\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text : t('See associated article')})\"\n >\n <NewspaperVariantOutlineIcon class=\"me-1\" />\n <div>{{ t(\"See associated article\") }}</div>\n </a>\n <PodcastPlayBar\n v-if=\"state.emissionsPage.progressBar\"\n :podcast=\"podcast\"\n />\n <div v-if=\"editRight && !isPodcastmaker\">\n <div\n v-if=\"\n podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND\n \"\n class=\"me-5 text-secondary\"\n >\n {{ t(\"From RSS\") }}\n </div>\n <ErrorMessage v-if=\"'' !== errorMessage\" :message=\"errorMessage\" />\n </div>\n <div class=\"d-flex align-items-center flex-wrap\">\n <LikeSection :edit-right=\"editRight\" :podcast=\"podcast\" />\n <DownloadPodcastButton v-if=\"state.podcastPage.downloadButton\" :podcast=\"podcast\" />\n </div>\n </div>\n </div>\n <TagList\n v-if=\"showTags\"\n :tag-list=\"tags\"\n :orga-id=\"podcast.organisation.id\"\n :podcast-annotations=\"podcast.annotations\"\n :max=\"state.podcastPage.maxTags\"\n />\n <PodcastRubriqueList\n v-if=\"podcastRubriques?.length\"\n :orga-id=\"podcast.organisation.id\"\n :rubrique-ids=\"podcastRubriques\"\n />\n <PodcastRawTranscript\n ref=\"podcastRawTranscript\"\n :podcast-id=\"podcast.podcastId\"\n />\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"podcast.emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport NewspaperVariantOutlineIcon from \"vue-material-design-icons/NewspaperVariantOutline.vue\";\nimport PodcastImage from \"./PodcastImage.vue\";\nimport ParticipantDescription from \"./ParticipantDescription.vue\";\nimport PodcastRawTranscript from \"./PodcastRawTranscript.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport {usePodcastView} from \"../../composable/podcasts/usePodcastView\";\nimport { Podcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"../../../stores/class/conference/conference\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { SeasonMode } from \"../../../stores/class/general/emission\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \n\nimport { defineAsyncComponent, toRefs, computed, useTemplateRef } from \"vue\";\nconst ErrorMessage = defineAsyncComponent(\n () => import(\"../../misc/ErrorMessage.vue\"),\n);\nconst PodcastPlayBar = defineAsyncComponent(\n () => import(\"./PodcastPlayBar.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../sharing/SubscribeButtons.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../comments/like/LikeSection.vue\"),\n);\nconst DownloadPodcastButton = defineAsyncComponent(\n () => import(\"./DownloadPodcastButton.vue\"),\n);\nconst PodcastPlannedSpinner = defineAsyncComponent(\n () => import(\"./PodcastPlannedSpinner.vue\"),\n);\nconst Countdown = defineAsyncComponent(() => import(\"../live/CountDown.vue\"));\nconst TagList = defineAsyncComponent(() => import(\"./TagList.vue\"));\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../sharing/ShareAnonymous.vue\"));\nconst PodcastRubriqueList = defineAsyncComponent(() => import(\"./PodcastRubriqueList.vue\"));\n\n//Props \nconst props = defineProps<{\n podcast: Podcast;\n playingPodcast?: Podcast;\n podcastConference?: Conference;\n}>();\n\n//Emits\nconst emit = defineEmits([\"updatePodcast\"]);\n\n//Composables\nconst { t } = useI18n();\nconst propsRef = toRefs(props);\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n isPodcastmaker,\n editRight\n} = usePodcastView(propsRef.podcast, propsRef.podcastConference);\nconst authStore = useAuthStore();\nconst router = useRouter();\nconst { areSeasonsEnabled } = useSeasonsManagement();\n\n/** Reference to the PodcastRqwTranscript */\nconst podcastRawTranscript = useTemplateRef('podcastRawTranscript');\n\n//Computed\nconst podcastRubriques = computed(() => {\n let rubriques = props.podcast?.rubriqueIds ?? [];\n if(props.podcast?.emission?.rubriqueIds){\n rubriques = [...new Set(rubriques.concat(props.podcast?.emission?.rubriqueIds))];\n }\n return rubriques;\n});\nconst errorMessage = computed(() => {\n if (!props.podcast?.availability.visibility) {\n return t(\"Podcast is not visible for listeners\");\n }\n if (\"ERROR\" === props.podcast?.processingStatus) {\n return t(\"Podcast in ERROR, please contact Saooti\");\n }\n return podcastNotValid.value ? t(\"Podcast not validated\") : \"\";\n});\nconst isLiveReady = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast?.conferenceId &&\n \"READY\" === props.podcast?.processingStatus\n );\n});\nconst isDebriefing = computed(() => {\n return (\n undefined !== props.podcastConference &&\n \"DEBRIEFING\" === props.podcastConference.status\n );\n});\nconst isOctopusAndAnimator = computed(() => {\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\nconst podcastNotValid = computed(() => {\n return (\n undefined !== props.podcast?.availability &&\n false === props.podcast?.valid\n );\n});\nconst photoCredit = computed(() => formatCredits(props.podcast?.annotations?.photoCredit as string|undefined));\nconst audioCredit = computed(() => formatCredits(props.podcast?.annotations?.audioCredit as string|undefined));\nconst authorCredit = computed(() => formatCredits(props.podcast?.annotations?.authorCredit as string|undefined));\nconst isEditBox = computed(() => !((state.generalParameters.podcastmaker as boolean) ?? false));\n/** The tags to display */\nconst tags = computed(() => {\n const tags = [];\n if(props.podcast.tags) {\n tags.push(...props.podcast.tags);\n }\n // Also display tags defined on emission\n if(props.podcast.emission.tags) {\n tags.push(...props.podcast.emission.tags);\n }\n return tags;\n});\n\nconst showSeasonNumber = computed((): boolean => {\n return areSeasonsEnabled(props.podcast.emission) && props.podcast.seasonNumber !== undefined;\n});\n\nconst showSeasonEpisodeNumber = computed((): boolean => {\n return props.podcast.emission.seasonMode === SeasonMode.SEASON_WITH_PODCAST_NUMBERING && props.podcast.seasonEpisodeNumber !== undefined;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return props.podcast.annotations?.subtitle && state.podcastPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show description */\nconst showDescription = computed((): boolean => {\n return state.podcastPage?.descriptionOrSummary !== 'summary';\n});\n\n/** Indicates whether to show summary */\nconst showSummary = computed((): boolean => {\n return props.podcast.summary && state.podcastPage?.descriptionOrSummary !== 'description' && state.podcastPage?.descriptionOrSummary !== undefined;\n});\n\n//Methods\nfunction formatCredits(credits: string|undefined): string {\n if (credits === undefined) {\n return '';\n }\n return credits.split(',').map(s => s.trim()).join(', ');\n}\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction removeDeleted(): void {\n if (isLiveReadyToRecord.value) {\n router.push(\"/main/pub/lives\");\n } else if (window.history.length > 1) {\n router.go(-1);\n } else {\n router.push(\"/\");\n }\n}\n\nfunction resetTranscription(): void {\n podcastRawTranscript.value.reset();\n}\n\nconst showTags = computed((): boolean => {\n if (state.podcastPage.hideTags === true) {\n return false;\n }\n\n return undefined !== tags.value && 0 !== tags.value.length;\n});\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && podcast\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? podcast.emission.name : titlePage\"\n :img-url=\"podcast.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <PodcastModuleBox\n :playing-podcast=\"playingPodcast\"\n :podcast=\"podcast\"\n :podcast-conference=\"fetchConference\"\n @update-podcast=\"updatePodcast\"\n >\n <template #recording-item-button=\"slotProps\">\n <slot name=\"recording-item-button\" v-bind=\"slotProps\" />\n </template>\n <template #edit-box=\"slotProps\">\n <slot name=\"edit-box\" v-bind=\"slotProps\" />\n </template>\n </PodcastModuleBox>\n <ShareSocialsButtons\n v-if=\"state.podcastPage.ShareButtons\"\n :organisation-id=\"podcast.organisation.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight && !youtubeId\"\n :podcast=\"podcast\"\n :emission=\"podcast?.emission\"\n :organisation-id=\"authOrgaId\"\n />\n <CommentSection :podcast=\"podcast\" />\n\n <!-- Suggestions -->\n <PodcastInlineList\n :emission-id=\"podcast.emission.emissionId\"\n :href=\"'/main/pub/emission/' + podcast.emission.emissionId\"\n :title=\"t('More episodes of this emission')\"\n :button-text=\"t('All podcast emission button')\"\n title-tag=\"h3\"\n />\n <section v-if=\"!hideSuggestions\">\n <ClassicLazy :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :organisation-id=\"[podcast.organisation.id]\"\n :podcast-id=\"podcastId\"\n :title=\"t('Suggested listening')\"\n />\n </ClassicLazy>\n <ClassicLazy v-for=\"c in categories\" :key=\"c.id\" :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :iab-id=\"c.id\"\n :href=\"'/main/pub/category/' + c.id\"\n :title=\"t('More episodes of this category : ', { name: c.name })\"\n :button-text=\"t('All podcast button', { name: c.name })\"\n :organisation-id=\"[podcast.organisation.id]\"\n />\n </ClassicLazy>\n </section>\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport youtubeVideoHelper from \"../../helper/youtubeVideoHelper\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport PodcastInlineList from \"../display/podcasts/PodcastInlineList.vue\";\nimport PodcastModuleBox from \"../display/podcasts/PodcastModuleBox.vue\";\nimport ClassicLazy from \"../misc/ClassicLazy.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, ref, Ref, watch } from \"vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { AxiosError } from \"axios\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { podcastApi } from \"../../api/podcastApi\";\n\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\n\n//Props \nconst props = defineProps<{\n updateStatus?: string;\n playingPodcast?: Podcast;\n podcastId: number;\n /** When true, display emission title in podcastmaker header */\n useEmissionTitle?: boolean;\n}>();\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst fetchConference: Ref<Conference | undefined> = ref(undefined);\nconst infoReload: Ref<ReturnType<typeof setTimeout>| undefined> = ref(undefined);\nconst youtubeId: Ref<string| undefined> = ref(undefined);\n\n//Composables\nconst route = useRoute();\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst hideSuggestions = computed(() =>{\n return (\n \"true\" ===\n (podcast.value?.emission?.annotations?.[\"HIDE_SUGGESTIONS\"] as\n | string\n | undefined)\n );\n});\nconst emissionMainCategory = computed(() =>{\n if (!podcast.value) {\n return 0;\n }\n if (podcast.value.emission.annotations?.mainIabId) {\n return parseInt(\n podcast.value.emission.annotations.mainIabId as string,\n 10,\n );\n } else if(podcast.value.emission.iabIds?.length) {\n return podcast.value.emission.iabIds[0];\n }\n return 0;\n});\n\nconst categories = computed(() =>{\n if (\"undefined\" === typeof podcast.value) return [];\n return generalStore.storedCategories\n .filter((item: Category) => {\n return (\n podcast.value?.emission.iabIds &&\n -1 !== podcast.value.emission.iabIds.indexOf(item.id)\n );\n })\n .sort((a: Category, b: Category) => {\n if (a.id === emissionMainCategory.value) return -1;\n if (b.id === emissionMainCategory.value) return 1;\n return 0;\n });\n});\n\nconst editRight = computed(() =>{\n return isEditRights(podcast.value?.organisation.id);\n});\n\nconst isLiveReadyToRecord = computed(() =>{\n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value?.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value?.processingStatus\n );\n});\n\nconst isOctopusAndAnimator = computed(() =>{\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\n\nconst titlePage = computed(() =>{\n return isLiveReadyToRecord.value? t(\"Live episode\"): t(\"Episode\");\n});\n\n\n//Watch\nwatch(()=>props.updateStatus, () => {\n if (fetchConference.value && null !== fetchConference.value) {\n fetchConference.value.status = props.updateStatus;\n }\n});\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value || error.value) {\n return;\n }\n commentStore.initCommentUser();\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n clearTimeout(infoReload.value);\n});\n\n\n//Methods\nasync function initConference() {\n if (!podcast.value || undefined == podcast.value.conferenceId || \"READY_TO_RECORD\" !== podcast.value.processingStatus) return;\n fetchConference.value = { conferenceId: podcast.value.conferenceId, title: \"\" };\n if (isOctopusAndAnimator.value) {\n try {\n fetchConference.value = await classicApi.fetchData<Conference>({\n api: 9,\n path: \"conference/\" + podcast.value.conferenceId,\n });\n } catch {\n await fetchConferenceStatus();\n }\n } else {\n await fetchConferenceStatus();\n }\n if (\n fetchConference.value &&\n -1 !== fetchConference.value.conferenceId &&\n \"PUBLISHING\" !== fetchConference.value.status &&\n \"DEBRIEFING\" !== fetchConference.value.status\n ) {\n fetchConferenceStatusLoop();\n }\n}\n\nasync function fetchConferenceStatusLoop() {\n if(\"PUBLISHING\" ===fetchConference.value?.status){\n return;\n }\n infoReload.value = setTimeout(async () => {\n await fetchConferenceStatus();\n fetchConferenceStatusLoop();\n }, 3000);\n}\nasync function fetchConferenceStatus() {\n try {\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value?.conferenceId,\n });\n fetchConference.value = {...fetchConference.value, ...data};\n } catch {\n //Do nothing\n }\n}\nfunction updatePodcast(podcastUpdated: Podcast): void {\n podcast.value = podcastUpdated;\n filterStore.updateOrgaIfNecessary(podcastUpdated.organisation.id);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\n\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n const data = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n if (\n \"PUBLIC\" !== data.organisation.privacy &&\n filterStore.filterOrgaId !== data.organisation.id &&\n route.query.productor !== data.organisation.id\n ) {\n initError();\n return;\n }\n updatePodcast(data);\n generalStore.contentToDisplayUpdate(data);\n if (\n (!podcast.value.availability.visibility ||\n (\"READY_TO_RECORD\" !== podcast.value.processingStatus &&\n \"READY\" !== podcast.value.processingStatus &&\n \"PROCESSING\" !== podcast.value.processingStatus) ||\n false === podcast.value.valid) &&\n !editRight.value\n ) {\n error.value = true;\n loaded.value = true;\n return;\n }\n podcastInProcessing();\n updatePathParams(podcast.value.title);\n await commentStore.getCommentsConfig(podcast.value);\n if((fetchConference.value?.videoProfile?.includes(\"video_\") && \"READY_TO_RECORD\" === podcast.value.processingStatus) || undefined !== podcast.value.video?.videoId){\n youtubeId.value = youtubeVideoHelper.getYoutubeId(podcast.value?.tags ?? []);\n }\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction podcastInProcessing(){\n if(\"PLANNED\" !== podcast.value?.processingStatus){\n initConference();\n return;\n }\n infoReload.value = setTimeout(async () => {\n const podcast = await podcastApi.get(props.podcastId);\n updatePodcast(podcast);\n podcastInProcessing();\n }, 2000);\n}\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && podcast\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? podcast.emission.name : titlePage\"\n :img-url=\"podcast.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <PodcastModuleBox\n :playing-podcast=\"playingPodcast\"\n :podcast=\"podcast\"\n :podcast-conference=\"fetchConference\"\n @update-podcast=\"updatePodcast\"\n >\n <template #recording-item-button=\"slotProps\">\n <slot name=\"recording-item-button\" v-bind=\"slotProps\" />\n </template>\n <template #edit-box=\"slotProps\">\n <slot name=\"edit-box\" v-bind=\"slotProps\" />\n </template>\n </PodcastModuleBox>\n <ShareSocialsButtons\n v-if=\"state.podcastPage.ShareButtons\"\n :organisation-id=\"podcast.organisation.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight && !youtubeId\"\n :podcast=\"podcast\"\n :emission=\"podcast?.emission\"\n :organisation-id=\"authOrgaId\"\n />\n <CommentSection :podcast=\"podcast\" />\n\n <!-- Suggestions -->\n <PodcastInlineList\n :emission-id=\"podcast.emission.emissionId\"\n :href=\"'/main/pub/emission/' + podcast.emission.emissionId\"\n :title=\"t('More episodes of this emission')\"\n :button-text=\"t('All podcast emission button')\"\n title-tag=\"h3\"\n />\n <section v-if=\"!hideSuggestions\">\n <ClassicLazy :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :organisation-id=\"[podcast.organisation.id]\"\n :podcast-id=\"podcastId\"\n :title=\"t('Suggested listening')\"\n />\n </ClassicLazy>\n <ClassicLazy v-for=\"c in categories\" :key=\"c.id\" :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :iab-id=\"c.id\"\n :href=\"'/main/pub/category/' + c.id\"\n :title=\"t('More episodes of this category : ', { name: c.name })\"\n :button-text=\"t('All podcast button', { name: c.name })\"\n :organisation-id=\"[podcast.organisation.id]\"\n />\n </ClassicLazy>\n </section>\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport youtubeVideoHelper from \"../../helper/youtubeVideoHelper\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport PodcastInlineList from \"../display/podcasts/PodcastInlineList.vue\";\nimport PodcastModuleBox from \"../display/podcasts/PodcastModuleBox.vue\";\nimport ClassicLazy from \"../misc/ClassicLazy.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, ref, Ref, watch } from \"vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { AxiosError } from \"axios\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { podcastApi } from \"../../api/podcastApi\";\n\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\n\n//Props \nconst props = defineProps<{\n updateStatus?: string;\n playingPodcast?: Podcast;\n podcastId: number;\n /** When true, display emission title in podcastmaker header */\n useEmissionTitle?: boolean;\n}>();\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst fetchConference: Ref<Conference | undefined> = ref(undefined);\nconst infoReload: Ref<ReturnType<typeof setTimeout>| undefined> = ref(undefined);\nconst youtubeId: Ref<string| undefined> = ref(undefined);\n\n//Composables\nconst route = useRoute();\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst hideSuggestions = computed(() =>{\n return (\n \"true\" ===\n (podcast.value?.emission?.annotations?.[\"HIDE_SUGGESTIONS\"] as\n | string\n | undefined)\n );\n});\nconst emissionMainCategory = computed(() =>{\n if (!podcast.value) {\n return 0;\n }\n if (podcast.value.emission.annotations?.mainIabId) {\n return parseInt(\n podcast.value.emission.annotations.mainIabId as string,\n 10,\n );\n } else if(podcast.value.emission.iabIds?.length) {\n return podcast.value.emission.iabIds[0];\n }\n return 0;\n});\n\nconst categories = computed(() =>{\n if (\"undefined\" === typeof podcast.value) return [];\n return generalStore.storedCategories\n .filter((item: Category) => {\n return (\n podcast.value?.emission.iabIds &&\n -1 !== podcast.value.emission.iabIds.indexOf(item.id)\n );\n })\n .sort((a: Category, b: Category) => {\n if (a.id === emissionMainCategory.value) return -1;\n if (b.id === emissionMainCategory.value) return 1;\n return 0;\n });\n});\n\nconst editRight = computed(() =>{\n return isEditRights(podcast.value?.organisation.id);\n});\n\nconst isLiveReadyToRecord = computed(() =>{\n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value?.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value?.processingStatus\n );\n});\n\nconst isOctopusAndAnimator = computed(() =>{\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\n\nconst titlePage = computed(() =>{\n return isLiveReadyToRecord.value? t(\"Live episode\"): t(\"Episode\");\n});\n\n\n//Watch\nwatch(()=>props.updateStatus, () => {\n if (fetchConference.value && null !== fetchConference.value) {\n fetchConference.value.status = props.updateStatus;\n }\n});\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value || error.value) {\n return;\n }\n commentStore.initCommentUser();\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n clearTimeout(infoReload.value);\n});\n\n\n//Methods\nasync function initConference() {\n if (!podcast.value || undefined == podcast.value.conferenceId || \"READY_TO_RECORD\" !== podcast.value.processingStatus) return;\n fetchConference.value = { conferenceId: podcast.value.conferenceId, title: \"\" };\n if (isOctopusAndAnimator.value) {\n try {\n fetchConference.value = await classicApi.fetchData<Conference>({\n api: 9,\n path: \"conference/\" + podcast.value.conferenceId,\n });\n } catch {\n await fetchConferenceStatus();\n }\n } else {\n await fetchConferenceStatus();\n }\n if (\n fetchConference.value &&\n -1 !== fetchConference.value.conferenceId &&\n \"PUBLISHING\" !== fetchConference.value.status &&\n \"DEBRIEFING\" !== fetchConference.value.status\n ) {\n fetchConferenceStatusLoop();\n }\n}\n\nasync function fetchConferenceStatusLoop() {\n if(\"PUBLISHING\" ===fetchConference.value?.status){\n return;\n }\n infoReload.value = setTimeout(async () => {\n await fetchConferenceStatus();\n fetchConferenceStatusLoop();\n }, 3000);\n}\nasync function fetchConferenceStatus() {\n try {\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value?.conferenceId,\n });\n fetchConference.value = {...fetchConference.value, ...data};\n } catch {\n //Do nothing\n }\n}\nfunction updatePodcast(podcastUpdated: Podcast): void {\n podcast.value = podcastUpdated;\n filterStore.updateOrgaIfNecessary(podcastUpdated.organisation.id);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\n\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n const data = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n if (\n \"PUBLIC\" !== data.organisation.privacy &&\n filterStore.filterOrgaId !== data.organisation.id &&\n route.query.productor !== data.organisation.id\n ) {\n initError();\n return;\n }\n updatePodcast(data);\n generalStore.contentToDisplayUpdate(data);\n if (\n (!podcast.value.availability.visibility ||\n (\"READY_TO_RECORD\" !== podcast.value.processingStatus &&\n \"READY\" !== podcast.value.processingStatus &&\n \"PROCESSING\" !== podcast.value.processingStatus) ||\n false === podcast.value.valid) &&\n !editRight.value\n ) {\n error.value = true;\n loaded.value = true;\n return;\n }\n podcastInProcessing();\n updatePathParams(podcast.value.title);\n await commentStore.getCommentsConfig(podcast.value);\n if((fetchConference.value?.videoProfile?.includes(\"video_\") && \"READY_TO_RECORD\" === podcast.value.processingStatus) || undefined !== podcast.value.video?.videoId){\n youtubeId.value = youtubeVideoHelper.getYoutubeId(podcast.value?.tags ?? []);\n }\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction podcastInProcessing(){\n if(\"PLANNED\" !== podcast.value?.processingStatus){\n initConference();\n return;\n }\n infoReload.value = setTimeout(async () => {\n const podcast = await podcastApi.get(props.podcastId);\n updatePodcast(podcast);\n podcastInProcessing();\n }, 2000);\n}\n</script>\n"],"mappings":"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"}
|