@saooti/octopus-sdk 42.0.3 → 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/composable/usePresentationItem.ts +3 -1
- package/src/components/display/live/RadioCurrently.vue +3 -4
- package/src/components/layouts/PresentationItem.vue +8 -1
- 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/src/stores/AuthStore.ts +10 -1
- package/dist/AccessibilityModal-CBIb3UQS.mjs +0 -93
- package/dist/AdsProgressBar-BwRrrKOT.mjs +0 -19
- package/dist/AdvancedSearch-CRM10skn.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-Brp-KFg7.mjs +0 -146
- package/dist/CategoryList-CMOJ2PnA.mjs +0 -107
- package/dist/CategoryPage-Bc37UcZy.mjs +0 -28
- package/dist/CategorySearchFilter-BRfxF0yK.mjs +0 -39
- package/dist/ChapteringModal-CyH6QLeE.mjs +0 -46
- package/dist/CheckIdentityModal-CHV9trKX.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-B0Jt9ME7.mjs +0 -56
- package/dist/CommentBasicView-CJgGRZXW.mjs +0 -76
- package/dist/CommentInput-ChEnqzNa.mjs +0 -111
- package/dist/CommentItem-BE3-5CFl.mjs +0 -155
- package/dist/CommentList-B0fDtqIH.mjs +0 -204
- package/dist/CommentMoreActions-DFTHxzHB.mjs +0 -191
- package/dist/CommentName-ByE5TV4u.mjs +0 -56
- package/dist/CommentParentInfo-DyzP495k.mjs +0 -36
- package/dist/CommentPlayer-2eRUFpll.mjs +0 -47
- package/dist/CommentSection-DQx3qX6H.mjs +0 -79
- package/dist/CommentStore-C4lkShsH.mjs +0 -279
- package/dist/ContractPreviewModal-BxOE6aiU.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-Dcgt8FfA.mjs +0 -30
- package/dist/EditCommentModal-K6D1-4gU.mjs +0 -114
- package/dist/EditFtpIcon-B1FO4hqc.mjs +0 -39
- package/dist/EmissionGroupChooser-B0UXS-d_.mjs +0 -44
- package/dist/EmissionInlineList-CRJ4pIxb.mjs +0 -113
- package/dist/EmissionItem-8WTkKsCa.mjs +0 -116
- package/dist/EmissionList-ucpW_ejS.mjs +0 -230
- package/dist/EmissionPage-B8Nlb52Y.mjs +0 -188
- package/dist/EmissionPlayerItem-BzuNcAsq.mjs +0 -119
- package/dist/EmissionPresentationItem-ZU93UKW2.mjs +0 -41
- package/dist/EmissionPresentationList-LY-FEWC2.mjs +0 -92
- package/dist/EmissionsPage-wzpDLmzO.mjs +0 -112
- package/dist/Error403Page-DLaOyud0.mjs +0 -40
- package/dist/ErrorMessage-B4gtlriP.mjs +0 -22
- package/dist/FooterGarSection-BwFRytaV.mjs +0 -39
- package/dist/FooterSection-VGdzyEZf.mjs +0 -148
- package/dist/GeneralStore-Darfv4af.mjs +0 -39
- package/dist/HomeDropdown-CNSPuJot.mjs +0 -66
- package/dist/HomePage-CGaCXQBm.mjs +0 -106
- package/dist/IHeartIcon-DP1otYre.mjs +0 -42
- package/dist/LikeButton-Cu8jAJHx.mjs +0 -40
- package/dist/LikeSection-D_q391TU.mjs +0 -96
- package/dist/ListPaginate-B-PYbP3K.mjs +0 -147
- package/dist/LiveHorizontalList-CDIDwBWJ.mjs +0 -77
- package/dist/LiveList-Dvxk12Cc.mjs +0 -206
- package/dist/LivesPage-BByFveAd.mjs +0 -40
- package/dist/MapPage-w7hUFr9g.mjs +0 -240
- package/dist/MessageModal-BcqS77v6.mjs +0 -101
- package/dist/MobileMenu-D19pTUkT.mjs +0 -136
- package/dist/MonetizableFilter-B7NHzXEY.mjs +0 -58
- package/dist/NewsletterModal-BekCWfJB.mjs +0 -53
- package/dist/OctopusMultiselect-CaLjXg_3.mjs +0 -234
- package/dist/OrganisationChooser-ywDaRPU9.mjs +0 -133
- package/dist/OrganisationChooserLight-CMNA-YR5.mjs +0 -48
- package/dist/PageLogout-CVZHOw8c.mjs +0 -12
- package/dist/PageNotFound-kY0Vk237.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-n3IcMXXU.mjs +0 -84
- package/dist/ParticipantItem-CoS5qVct.mjs +0 -91
- package/dist/ParticipantPage-CqwpZDjv.mjs +0 -129
- package/dist/ParticipantsPage-BzZFxuAX.mjs +0 -168
- package/dist/PlayVideoIcon-BhTQpMyL.mjs +0 -40
- package/dist/PlayerAnonymousModal-Clf2m_PO.mjs +0 -61
- package/dist/PlayerCommonParameters-x0zV7AoW.mjs +0 -27
- package/dist/PlayerCompact-ff2-h0Ys.mjs +0 -128
- package/dist/PlayerComponent-BIZ29VAP.mjs +0 -592
- package/dist/PlayerFmIcon-D7gURz4r.mjs +0 -39
- package/dist/PlayerLarge-C958Fkm_.mjs +0 -128
- package/dist/PlayerParameters-kVBMXQIb.mjs +0 -173
- package/dist/PlayerPlayButton-DL0e7DAU.mjs +0 -231
- package/dist/PlayerProgressBar-DK9ClWaE.mjs +0 -67
- package/dist/PlayerStore-DlQZRxsf.mjs +0 -166
- package/dist/PlayerVideo-BRkaIXH7.mjs +0 -35
- package/dist/PlayerVideoDigiteka-CNfWw0hs.mjs +0 -59
- package/dist/PlayerVideoHls-Czu2Xvob.mjs +0 -125
- package/dist/PlayerYoutubeEmbed-D-UrFhXm.mjs +0 -25
- package/dist/PlaylistPage-BV_3q5Pg.mjs +0 -135
- package/dist/PlaylistsPage-g82vXz51.mjs +0 -254
- package/dist/PocketCastIcon-CM5NDsDa.mjs +0 -39
- package/dist/PodcastAddictIcon-CW3Uxj4I.mjs +0 -42
- package/dist/PodcastFilterList-CpH9ALL0.mjs +0 -139
- package/dist/PodcastImage-Kr7qE9PW.mjs +0 -115
- package/dist/PodcastInlineList-CSPSuPXn.mjs +0 -117
- package/dist/PodcastInlineListTemplate-CBGWengl.mjs +0 -180
- package/dist/PodcastIsPlaying-CvZMCgrV.mjs +0 -17
- package/dist/PodcastItem-B6xZ9spO.mjs +0 -158
- package/dist/PodcastList-DM2kODR9.mjs +0 -113
- package/dist/PodcastList-DN7U6G3x.mjs +0 -184
- package/dist/PodcastPage-ClPlzjJY.mjs +0 -409
- package/dist/PodcastPlannedSpinner-DcDDays8.mjs +0 -12
- package/dist/PodcastPlayBar-C-7lR6Or.mjs +0 -39
- package/dist/PodcastPlayBasicButton-akh9XtTL.mjs +0 -44
- package/dist/PodcastPlayButton-CqjJC_GT.mjs +0 -118
- package/dist/PodcastPlaylistInlineList-DTJpiuMG.mjs +0 -63
- package/dist/PodcastPresentationList-B0D9wjP2.mjs +0 -130
- package/dist/PodcastProgressBar-CIf_zX6H.mjs +0 -66
- package/dist/PodcastRawTranscript-EqIv2k5F.mjs +0 -100
- package/dist/PodcastRubriqueList-DCchX3n9.mjs +0 -46
- package/dist/PodcastSeasonInfo-DDGSqj8M.mjs +0 -28
- package/dist/PodcastSwiperList-PSwifeRx.mjs +0 -164
- package/dist/PodcastmakerHeader-DpCkSoQE.mjs +0 -33
- package/dist/PodcastsPage-CSWymx6J.mjs +0 -123
- package/dist/PresentationLayout-LcZqb8bn.mjs +0 -62
- package/dist/ProductorSearch-l_LHvS3J.mjs +0 -91
- package/dist/ProgressBar-CB9kEepm.mjs +0 -112
- package/dist/QrCode-D-3wdYEC.mjs +0 -105
- package/dist/QrCodeModal-BAk2VQzU.mjs +0 -43
- package/dist/RadioCurrently-r21pyYBe.mjs +0 -57
- package/dist/RadioHistory-BNqw7gzG.mjs +0 -89
- package/dist/RadioImage-IbBgMDUL.mjs +0 -46
- package/dist/RadioList-CLjDwo6u.mjs +0 -70
- package/dist/RadioPage-Bx4i1Mpi.mjs +0 -72
- package/dist/RadioPlanning-Br27Ttix.mjs +0 -183
- package/dist/RadioProgressBar-Cb3AfYLQ.mjs +0 -31
- package/dist/RadiolineIcon-CxHZGhfr.mjs +0 -40
- package/dist/RecaptchaModal-CxtAdOpC.mjs +0 -95
- package/dist/ReportAbuseModal-iggcskxa.mjs +0 -92
- package/dist/RightsIndicator-D_7amy65.mjs +0 -58
- package/dist/RightsWrapper-Bo6Xza5_.mjs +0 -104
- package/dist/RubriqueChoice-DWvVVaMg.mjs +0 -101
- package/dist/RubriqueChooser-B7wvJeQc.mjs +0 -165
- package/dist/RubriqueFilter-CJDRNtiD.mjs +0 -119
- package/dist/RubriqueList-CISdSdFN.mjs +0 -117
- package/dist/RubriquePage-C8CF_iFS.mjs +0 -71
- package/dist/SearchOrder-D_dAhj9M.mjs +0 -62
- package/dist/SearchPage-DvLjGwKI.mjs +0 -38
- package/dist/ShareAnonymous-GQ600Owz.mjs +0 -189
- package/dist/ShareModalPlayer-pB-HAwc-.mjs +0 -87
- package/dist/ShareNewsletter-Cdyw0GB9.mjs +0 -143
- package/dist/SharePlayer-XribbnSm.mjs +0 -210
- package/dist/SharePlayerColors-BpdifsHh.mjs +0 -49
- package/dist/SharePlayerRadio-Co0G90iE.mjs +0 -66
- package/dist/SharePlayerTypes-Crlc6fV2.mjs +0 -148
- package/dist/ShareSocialsButtons-oPwpAJiG.mjs +0 -100
- package/dist/SimpleLayout-DO6e66-u.mjs +0 -22
- package/dist/SmartLinkPage-Bfe3J2rs.mjs +0 -131
- package/dist/SnackBar-BL-mLRun.mjs +0 -128
- package/dist/SubscribeButtons-BsUSeVE2.mjs +0 -120
- package/dist/SwiperList-05VP6fwg.mjs +0 -119
- package/dist/TagList-CpH_cvNv.mjs +0 -80
- package/dist/TagPage-B7mbRbqr.mjs +0 -79
- package/dist/TopBar-DljepaOt.mjs +0 -260
- package/dist/TuninIcon-DENNxlP8.mjs +0 -39
- package/dist/UserButtonContent-B20fPV-J.mjs +0 -125
- package/dist/VastStore-8IiEgtQW.mjs +0 -71
- package/dist/VideoModuleBox-DJdYQGMX.mjs +0 -58
- package/dist/VideoPage-Bllo2Q-Y.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-CT9k0xvp.mjs +0 -1176
- 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-DkfB6XQg.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-Y3eC3aep.mjs +0 -111
- package/dist/useCountdown-vXzlLAgF.mjs +0 -32
- package/dist/useDayjs-ayZHsoc2.mjs +0 -28
- package/dist/useErrorHandler-Chh24Net.mjs +0 -12
- package/dist/useImageProxy-C_wlfbSP.mjs +0 -16
- package/dist/useOrgaComputed-CmlIJ5XC.mjs +0 -16
- package/dist/usePlayerLogicProgress-B0mjPIEj.mjs +0 -68
- package/dist/usePodcastView-wkow7peQ.mjs +0 -31
- package/dist/usePresentationItem-C37nsJnQ.mjs +0 -100
- package/dist/useResizePhone-4hSkK5pa.mjs +0 -28
- package/dist/useRights-CXa0yDii.mjs +0 -221
- package/dist/useRouteUpdateParams-DJLm3IAI.mjs +0 -55
- package/dist/useRubriquesFilterComputed-goozXeIB.mjs +0 -11
- package/dist/useRubriquesFilterParam-CrsdD0Oj.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-B7Xnf_If.mjs +0 -322
- package/dist/useSimplePageParam-D6TmZIPG.mjs +0 -39
- package/dist/useTagOf-Btweq3v2.mjs +0 -17
- package/dist/useTranslation-D3t40JaE.mjs +0 -139
- package/dist/usefetchRadioData-knVpkZCB.mjs +0 -48
- package/dist/youtubeVideoHelper-Cdlokujb.mjs +0 -14
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { i as useAuthStore } from "./classicApi-BKNiWOG4.mjs";
|
|
2
|
+
import { t as useCommentStore } from "./CommentStore-BjQ0AGHa.mjs";
|
|
3
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, normalizeClass, onBeforeMount, openBlock, ref, resolveDynamicComponent, toDisplayString, unref, vShow, watch, withCtx, withDirectives } from "vue";
|
|
4
|
+
import { useI18n } from "vue-i18n";
|
|
5
|
+
import RefreshIcon from "vue-material-design-icons/Refresh.vue";
|
|
6
|
+
//#region src/components/display/comments/CommentSection.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var _hoisted_1 = { class: "module-box" };
|
|
8
|
+
var _hoisted_2 = { class: "d-flex align-items-center" };
|
|
9
|
+
var _hoisted_3 = ["title"];
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/components/display/comments/CommentSection.vue
|
|
12
|
+
var CommentSection_default = /* @__PURE__ */ defineComponent({
|
|
13
|
+
__name: "CommentSection",
|
|
14
|
+
props: {
|
|
15
|
+
podcast: {
|
|
16
|
+
default: void 0,
|
|
17
|
+
type: Object
|
|
18
|
+
},
|
|
19
|
+
inStudio: {
|
|
20
|
+
default: false,
|
|
21
|
+
type: Boolean
|
|
22
|
+
},
|
|
23
|
+
stateFilter: {
|
|
24
|
+
default: "",
|
|
25
|
+
type: String
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
emits: ["commentReceived"],
|
|
29
|
+
setup(__props, { emit: __emit }) {
|
|
30
|
+
const CommentList = defineAsyncComponent(() => import("./CommentList-dSoD09Di.mjs"));
|
|
31
|
+
const CommentInput = defineAsyncComponent(() => import("./CommentInput-CCpv7RF8.mjs"));
|
|
32
|
+
const props = __props;
|
|
33
|
+
const emit = __emit;
|
|
34
|
+
const reload = ref(false);
|
|
35
|
+
const configPodcast = ref(void 0);
|
|
36
|
+
const nbComments = ref(0);
|
|
37
|
+
const eventToHandle = ref(void 0);
|
|
38
|
+
const { t } = useI18n();
|
|
39
|
+
const commentStore = useCommentStore();
|
|
40
|
+
const authStore = useAuthStore();
|
|
41
|
+
const displayCommentSection = computed(() => canPostComment.value || nbComments.value > 0);
|
|
42
|
+
const canPostComment = computed(() => {
|
|
43
|
+
return commentStore.getCanPostComment(configPodcast.value, props.podcast, void 0 !== authStore.authOrgaId);
|
|
44
|
+
});
|
|
45
|
+
const eventActive = computed(() => void 0 !== props.podcast?.conferenceId);
|
|
46
|
+
watch(() => commentStore.commentEventToHandle, async () => {
|
|
47
|
+
if (!commentStore.commentEventToHandle.length || commentStore.commentPodcastId !== props.podcast?.podcastId) return;
|
|
48
|
+
eventToHandle.value = commentStore.commentEventToHandle[0];
|
|
49
|
+
commentStore.commentEventHandled();
|
|
50
|
+
emit("commentReceived");
|
|
51
|
+
}, { deep: true });
|
|
52
|
+
onBeforeMount(() => fetchPodcastCommentsConfig());
|
|
53
|
+
async function fetchPodcastCommentsConfig() {
|
|
54
|
+
if (!props.podcast?.podcastId) return;
|
|
55
|
+
configPodcast.value = await commentStore.getCommentsConfig(props.podcast);
|
|
56
|
+
if (!eventActive.value) return;
|
|
57
|
+
initLiveComments();
|
|
58
|
+
}
|
|
59
|
+
async function initLiveComments() {
|
|
60
|
+
if (!props.podcast?.podcastId || !props.podcast?.organisation.id) return;
|
|
61
|
+
if (!commentStore.commentInitialized) await commentStore.initialize();
|
|
62
|
+
await commentStore.initComments(props.podcast.podcastId, props.podcast.organisation.id);
|
|
63
|
+
}
|
|
64
|
+
function newComment(comment) {
|
|
65
|
+
if (eventActive.value) return;
|
|
66
|
+
eventToHandle.value = {
|
|
67
|
+
type: "CREATE",
|
|
68
|
+
comment
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return (_ctx, _cache) => {
|
|
72
|
+
return withDirectives((openBlock(), createElementBlock("section", _hoisted_1, [
|
|
73
|
+
createElementVNode("div", _hoisted_2, [(openBlock(), createBlock(resolveDynamicComponent(__props.inStudio ? "div" : "h3"), { class: normalizeClass(__props.inStudio ? "m-1 fw-bold" : "mb-0 me-2") }, {
|
|
74
|
+
default: withCtx(() => [createTextVNode(toDisplayString(unref(t)("Podcast's comments")), 1)]),
|
|
75
|
+
_: 1
|
|
76
|
+
}, 8, ["class"])), createElementVNode("button", {
|
|
77
|
+
title: unref(t)("Refresh"),
|
|
78
|
+
class: "btn btn-transparent",
|
|
79
|
+
onClick: _cache[0] || (_cache[0] = ($event) => reload.value = !reload.value)
|
|
80
|
+
}, [createVNode(RefreshIcon)], 8, _hoisted_3)]),
|
|
81
|
+
canPostComment.value ? (openBlock(), createBlock(unref(CommentInput), {
|
|
82
|
+
key: 0,
|
|
83
|
+
podcast: __props.podcast,
|
|
84
|
+
onNewComment: newComment
|
|
85
|
+
}, null, 8, ["podcast"])) : createCommentVNode("", true),
|
|
86
|
+
createVNode(unref(CommentList), {
|
|
87
|
+
"nb-comments": nbComments.value,
|
|
88
|
+
"onUpdate:nbComments": _cache[1] || (_cache[1] = ($event) => nbComments.value = $event),
|
|
89
|
+
class: normalizeClass(__props.inStudio ? "mt-2" : "mt-5"),
|
|
90
|
+
podcast: __props.podcast,
|
|
91
|
+
"is-flat-list": __props.inStudio,
|
|
92
|
+
reload: reload.value,
|
|
93
|
+
config: configPodcast.value,
|
|
94
|
+
"event-to-handle": eventToHandle.value,
|
|
95
|
+
"state-filter": __props.stateFilter
|
|
96
|
+
}, null, 8, [
|
|
97
|
+
"nb-comments",
|
|
98
|
+
"class",
|
|
99
|
+
"podcast",
|
|
100
|
+
"is-flat-list",
|
|
101
|
+
"reload",
|
|
102
|
+
"config",
|
|
103
|
+
"event-to-handle",
|
|
104
|
+
"state-filter"
|
|
105
|
+
])
|
|
106
|
+
], 512)), [[vShow, displayCommentSection.value]]);
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
//#endregion
|
|
111
|
+
export { CommentSection_default as default };
|
|
112
|
+
|
|
113
|
+
//# sourceMappingURL=CommentSection-Bz6q4N6d.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentSection-Bz6q4N6d.mjs","names":[],"sources":["../src/components/display/comments/CommentSection.vue","../src/components/display/comments/CommentSection.vue"],"sourcesContent":["<template>\n <section v-show=\"displayCommentSection\" class=\"module-box\">\n <div class=\"d-flex align-items-center\">\n <component \n :is=\"inStudio? 'div':'h3'\" \n :class=\"inStudio? 'm-1 fw-bold':'mb-0 me-2'\">{{ t(\"Podcast's comments\") }}</component>\n <button\n :title=\"t('Refresh')\"\n class=\"btn btn-transparent\"\n @click=\"reload = !reload\"\n >\n <RefreshIcon />\n </button>\n </div>\n <CommentInput\n v-if=\"canPostComment\"\n :podcast=\"podcast\"\n @new-comment=\"newComment\"\n />\n <CommentList\n v-model:nb-comments=\"nbComments\"\n :class=\"inStudio? 'mt-2':'mt-5'\"\n :podcast=\"podcast\"\n :is-flat-list=\"inStudio\"\n :reload=\"reload\"\n :config=\"configPodcast\"\n :event-to-handle=\"eventToHandle\"\n :state-filter=\"stateFilter\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport RefreshIcon from \"vue-material-design-icons/Refresh.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, Ref, watch } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"@/stores/class/config/commentsConfig\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentList = defineAsyncComponent(() => import(\"./CommentList.vue\"));\nconst CommentInput = defineAsyncComponent(() => import(\"./CommentInput.vue\"));\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n inStudio: { default: false, type: Boolean },\n stateFilter: { default: \"\", type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"commentReceived\"]);\n\n//Data \nconst reload = ref(false);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst nbComments = ref(0);\nconst eventToHandle: Ref<CommentMessage | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n\n//Computed\nconst displayCommentSection = computed(() => canPostComment.value || nbComments.value > 0);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n\n//Watch\nwatch(()=>commentStore.commentEventToHandle, async () => {\n if (\n !commentStore.commentEventToHandle.length ||\n commentStore.commentPodcastId !== props.podcast?.podcastId\n ){\n return;\n }\n eventToHandle.value = commentStore.commentEventToHandle[0];\n commentStore.commentEventHandled();\n emit('commentReceived');\n}, {deep: true});\n\n\nonBeforeMount(()=>fetchPodcastCommentsConfig())\n\n\n//Methods\nasync function fetchPodcastCommentsConfig() {\n if (!props.podcast?.podcastId) {\n return;\n }\n configPodcast.value = await commentStore.getCommentsConfig(props.podcast);\n if (!eventActive.value) {\n return;\n }\n initLiveComments();\n}\nasync function initLiveComments(): Promise<void> {\n if (!props.podcast?.podcastId || !props.podcast?.organisation.id) {\n return;\n }\n if (!commentStore.commentInitialized) {\n await commentStore.initialize();\n }\n await commentStore.initComments(\n props.podcast.podcastId,\n props.podcast.organisation.id,\n );\n}\nfunction newComment(comment: CommentPodcast) {\n if (eventActive.value) {\n return;\n }\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n}\n</script>\n","<template>\n <section v-show=\"displayCommentSection\" class=\"module-box\">\n <div class=\"d-flex align-items-center\">\n <component \n :is=\"inStudio? 'div':'h3'\" \n :class=\"inStudio? 'm-1 fw-bold':'mb-0 me-2'\">{{ t(\"Podcast's comments\") }}</component>\n <button\n :title=\"t('Refresh')\"\n class=\"btn btn-transparent\"\n @click=\"reload = !reload\"\n >\n <RefreshIcon />\n </button>\n </div>\n <CommentInput\n v-if=\"canPostComment\"\n :podcast=\"podcast\"\n @new-comment=\"newComment\"\n />\n <CommentList\n v-model:nb-comments=\"nbComments\"\n :class=\"inStudio? 'mt-2':'mt-5'\"\n :podcast=\"podcast\"\n :is-flat-list=\"inStudio\"\n :reload=\"reload\"\n :config=\"configPodcast\"\n :event-to-handle=\"eventToHandle\"\n :state-filter=\"stateFilter\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport RefreshIcon from \"vue-material-design-icons/Refresh.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, Ref, watch } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"@/stores/class/config/commentsConfig\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentList = defineAsyncComponent(() => import(\"./CommentList.vue\"));\nconst CommentInput = defineAsyncComponent(() => import(\"./CommentInput.vue\"));\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n inStudio: { default: false, type: Boolean },\n stateFilter: { default: \"\", type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"commentReceived\"]);\n\n//Data \nconst reload = ref(false);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst nbComments = ref(0);\nconst eventToHandle: Ref<CommentMessage | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n\n//Computed\nconst displayCommentSection = computed(() => canPostComment.value || nbComments.value > 0);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n\n//Watch\nwatch(()=>commentStore.commentEventToHandle, async () => {\n if (\n !commentStore.commentEventToHandle.length ||\n commentStore.commentPodcastId !== props.podcast?.podcastId\n ){\n return;\n }\n eventToHandle.value = commentStore.commentEventToHandle[0];\n commentStore.commentEventHandled();\n emit('commentReceived');\n}, {deep: true});\n\n\nonBeforeMount(()=>fetchPodcastCommentsConfig())\n\n\n//Methods\nasync function fetchPodcastCommentsConfig() {\n if (!props.podcast?.podcastId) {\n return;\n }\n configPodcast.value = await commentStore.getCommentsConfig(props.podcast);\n if (!eventActive.value) {\n return;\n }\n initLiveComments();\n}\nasync function initLiveComments(): Promise<void> {\n if (!props.podcast?.podcastId || !props.podcast?.organisation.id) {\n return;\n }\n if (!commentStore.commentInitialized) {\n await commentStore.initialize();\n }\n await commentStore.initComments(\n props.podcast.podcastId,\n props.podcast.organisation.id,\n );\n}\nfunction newComment(comment: CommentPodcast) {\n if (eventActive.value) {\n return;\n }\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CA,MAAM,cAAc,2BAA2B,OAAO,6BAAoB;EAC1E,MAAM,eAAe,2BAA2B,OAAO,8BAAqB;EAG5E,MAAM,QAAQ;EAOd,MAAM,OAAO;EAGb,MAAM,SAAS,IAAI,KAAK;EACxB,MAAM,gBAAiD,IAAI,KAAA,CAAS;EACpE,MAAM,aAAa,IAAI,CAAC;EACxB,MAAM,gBAAiD,IAAI,KAAA,CAAS;EAGpE,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,eAAe,gBAAgB;EACrC,MAAM,YAAY,aAAa;EAI/B,MAAM,wBAAwB,eAAe,eAAe,SAAS,WAAW,QAAQ,CAAC;EACzF,MAAM,iBAAiB,eAAe;GACpC,OAAO,aAAa,kBAClB,cAAc,OACd,MAAM,SACN,KAAA,MAAc,UAAU,UAC1B;EACF,CAAC;EACD,MAAM,cAAc,eAAgB,KAAA,MAAc,MAAM,SAAS,YAAY;EAI7E,YAAU,aAAa,sBAAsB,YAAY;GACvD,IACE,CAAC,aAAa,qBAAqB,UACnC,aAAa,qBAAqB,MAAM,SAAS,WAEjD;GAEF,cAAc,QAAQ,aAAa,qBAAqB;GACxD,aAAa,oBAAoB;GACjC,KAAK,iBAAiB;EACxB,GAAG,EAAC,MAAM,KAAI,CAAC;EAGf,oBAAkB,2BAA2B,CAAC;EAI9C,eAAe,6BAA6B;GAC1C,IAAI,CAAC,MAAM,SAAS,WAClB;GAEF,cAAc,QAAQ,MAAM,aAAa,kBAAkB,MAAM,OAAO;GACxE,IAAI,CAAC,YAAY,OACf;GAEF,iBAAiB;EACnB;EACA,eAAe,mBAAkC;GAC/C,IAAI,CAAC,MAAM,SAAS,aAAa,CAAC,MAAM,SAAS,aAAa,IAC5D;GAEF,IAAI,CAAC,aAAa,oBAChB,MAAM,aAAa,WAAW;GAEhC,MAAM,aAAa,aACjB,MAAM,QAAQ,WACd,MAAM,QAAQ,aAAa,EAC7B;EACF;EACA,SAAS,WAAW,SAAyB;GAC3C,IAAI,YAAY,OACd;GAEF,cAAc,QAAQ;IAAE,MAAM;IAAmB;GAAQ;EAC3D;;uCA7HE,mBA4BU,WA5BV,YA4BU;IA3BR,mBAWM,OAXN,YAWM,EAAA,UAAA,GAVJ,YAEwF,wBADjF,QAAA,WAAQ,QAAA,IAAA,GAAA,EACZ,OAAK,eAAE,QAAA,WAAQ,gBAAA,WAAA,EAAA,GAAA;4BAA0D,CAAA,gBAAA,gBAA1B,MAAA,CAAA,EAAC,oBAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;uBACnD,mBAMS,UAAA;KALN,OAAO,MAAA,CAAA,EAAC,SAAA;KACT,OAAM;KACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,QAAM,CAAI,OAAA;QAElB,YAAe,WAAA,CAAA,GAAA,GAAA,UAAA,CAAA,CAAA;IAIX,eAAA,SAAA,UAAA,GADR,YAIE,MAAA,YAAA,GAAA;;KAFC,SAAS,QAAA;KACT,cAAa;;IAEhB,YASE,MAAA,WAAA,GAAA;KARQ,eAAa,WAAA;6EAAU,QAAA;KAC9B,OAAK,eAAE,QAAA,WAAQ,SAAA,MAAA;KACf,SAAS,QAAA;KACT,gBAAc,QAAA;KACd,QAAQ,OAAA;KACR,QAAQ,cAAA;KACR,mBAAiB,cAAA;KACjB,gBAAc,QAAA;;;;;;;;;;;sBA1BF,sBAAA,KAAqB,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentSection-DRpvhHqB.mjs","names":[],"sources":["../src/components/display/comments/CommentSection.vue","../src/components/display/comments/CommentSection.vue"],"sourcesContent":["<template>\n <section v-show=\"displayCommentSection\" class=\"module-box\">\n <div class=\"d-flex align-items-center\">\n <component \n :is=\"inStudio? 'div':'h3'\" \n :class=\"inStudio? 'm-1 fw-bold':'mb-0 me-2'\">{{ t(\"Podcast's comments\") }}</component>\n <button\n :title=\"t('Refresh')\"\n class=\"btn btn-transparent\"\n @click=\"reload = !reload\"\n >\n <RefreshIcon />\n </button>\n </div>\n <CommentInput\n v-if=\"canPostComment\"\n :podcast=\"podcast\"\n @new-comment=\"newComment\"\n />\n <CommentList\n v-model:nb-comments=\"nbComments\"\n :class=\"inStudio? 'mt-2':'mt-5'\"\n :podcast=\"podcast\"\n :is-flat-list=\"inStudio\"\n :reload=\"reload\"\n :config=\"configPodcast\"\n :event-to-handle=\"eventToHandle\"\n :state-filter=\"stateFilter\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport RefreshIcon from \"vue-material-design-icons/Refresh.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, Ref, watch } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"@/stores/class/config/commentsConfig\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentList = defineAsyncComponent(() => import(\"./CommentList.vue\"));\nconst CommentInput = defineAsyncComponent(() => import(\"./CommentInput.vue\"));\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n inStudio: { default: false, type: Boolean },\n stateFilter: { default: \"\", type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"commentReceived\"]);\n\n//Data \nconst reload = ref(false);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst nbComments = ref(0);\nconst eventToHandle: Ref<CommentMessage | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n\n//Computed\nconst displayCommentSection = computed(() => canPostComment.value || nbComments.value > 0);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n\n//Watch\nwatch(()=>commentStore.commentEventToHandle, async () => {\n if (\n !commentStore.commentEventToHandle.length ||\n commentStore.commentPodcastId !== props.podcast?.podcastId\n ){\n return;\n }\n eventToHandle.value = commentStore.commentEventToHandle[0];\n commentStore.commentEventHandled();\n emit('commentReceived');\n}, {deep: true});\n\n\nonBeforeMount(()=>fetchPodcastCommentsConfig())\n\n\n//Methods\nasync function fetchPodcastCommentsConfig() {\n if (!props.podcast?.podcastId) {\n return;\n }\n configPodcast.value = await commentStore.getCommentsConfig(props.podcast);\n if (!eventActive.value) {\n return;\n }\n initLiveComments();\n}\nasync function initLiveComments(): Promise<void> {\n if (!props.podcast?.podcastId || !props.podcast?.organisation.id) {\n return;\n }\n if (!commentStore.commentInitialized) {\n await commentStore.initialize();\n }\n await commentStore.initComments(\n props.podcast.podcastId,\n props.podcast.organisation.id,\n );\n}\nfunction newComment(comment: CommentPodcast) {\n if (eventActive.value) {\n return;\n }\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n}\n</script>\n","<template>\n <section v-show=\"displayCommentSection\" class=\"module-box\">\n <div class=\"d-flex align-items-center\">\n <component \n :is=\"inStudio? 'div':'h3'\" \n :class=\"inStudio? 'm-1 fw-bold':'mb-0 me-2'\">{{ t(\"Podcast's comments\") }}</component>\n <button\n :title=\"t('Refresh')\"\n class=\"btn btn-transparent\"\n @click=\"reload = !reload\"\n >\n <RefreshIcon />\n </button>\n </div>\n <CommentInput\n v-if=\"canPostComment\"\n :podcast=\"podcast\"\n @new-comment=\"newComment\"\n />\n <CommentList\n v-model:nb-comments=\"nbComments\"\n :class=\"inStudio? 'mt-2':'mt-5'\"\n :podcast=\"podcast\"\n :is-flat-list=\"inStudio\"\n :reload=\"reload\"\n :config=\"configPodcast\"\n :event-to-handle=\"eventToHandle\"\n :state-filter=\"stateFilter\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport RefreshIcon from \"vue-material-design-icons/Refresh.vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, Ref, watch } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"@/stores/class/config/commentsConfig\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentList = defineAsyncComponent(() => import(\"./CommentList.vue\"));\nconst CommentInput = defineAsyncComponent(() => import(\"./CommentInput.vue\"));\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n inStudio: { default: false, type: Boolean },\n stateFilter: { default: \"\", type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"commentReceived\"]);\n\n//Data \nconst reload = ref(false);\nconst configPodcast: Ref<CommentsConfig | undefined> = ref(undefined);\nconst nbComments = ref(0);\nconst eventToHandle: Ref<CommentMessage | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n\n//Computed\nconst displayCommentSection = computed(() => canPostComment.value || nbComments.value > 0);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n configPodcast.value,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n\n//Watch\nwatch(()=>commentStore.commentEventToHandle, async () => {\n if (\n !commentStore.commentEventToHandle.length ||\n commentStore.commentPodcastId !== props.podcast?.podcastId\n ){\n return;\n }\n eventToHandle.value = commentStore.commentEventToHandle[0];\n commentStore.commentEventHandled();\n emit('commentReceived');\n}, {deep: true});\n\n\nonBeforeMount(()=>fetchPodcastCommentsConfig())\n\n\n//Methods\nasync function fetchPodcastCommentsConfig() {\n if (!props.podcast?.podcastId) {\n return;\n }\n configPodcast.value = await commentStore.getCommentsConfig(props.podcast);\n if (!eventActive.value) {\n return;\n }\n initLiveComments();\n}\nasync function initLiveComments(): Promise<void> {\n if (!props.podcast?.podcastId || !props.podcast?.organisation.id) {\n return;\n }\n if (!commentStore.commentInitialized) {\n await commentStore.initialize();\n }\n await commentStore.initComments(\n props.podcast.podcastId,\n props.podcast.organisation.id,\n );\n}\nfunction newComment(comment: CommentPodcast) {\n if (eventActive.value) {\n return;\n }\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CA,MAAM,cAAc,2BAA2B,OAAO,6BAAoB;EAC1E,MAAM,eAAe,2BAA2B,OAAO,8BAAqB;EAG5E,MAAM,QAAQ;EAOd,MAAM,OAAO;EAGb,MAAM,SAAS,IAAI,KAAK;EACxB,MAAM,gBAAiD,IAAI,KAAA,CAAS;EACpE,MAAM,aAAa,IAAI,CAAC;EACxB,MAAM,gBAAiD,IAAI,KAAA,CAAS;EAGpE,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,eAAe,gBAAgB;EACrC,MAAM,YAAY,aAAa;EAI/B,MAAM,wBAAwB,eAAe,eAAe,SAAS,WAAW,QAAQ,CAAC;EACzF,MAAM,iBAAiB,eAAe;GACpC,OAAO,aAAa,kBAClB,cAAc,OACd,MAAM,SACN,KAAA,MAAc,UAAU,UAC1B;EACF,CAAC;EACD,MAAM,cAAc,eAAgB,KAAA,MAAc,MAAM,SAAS,YAAY;EAI7E,YAAU,aAAa,sBAAsB,YAAY;GACvD,IACE,CAAC,aAAa,qBAAqB,UACnC,aAAa,qBAAqB,MAAM,SAAS,WAEjD;GAEF,cAAc,QAAQ,aAAa,qBAAqB;GACxD,aAAa,oBAAoB;GACjC,KAAK,iBAAiB;EACxB,GAAG,EAAC,MAAM,KAAI,CAAC;EAGf,oBAAkB,2BAA2B,CAAC;EAI9C,eAAe,6BAA6B;GAC1C,IAAI,CAAC,MAAM,SAAS,WAClB;GAEF,cAAc,QAAQ,MAAM,aAAa,kBAAkB,MAAM,OAAO;GACxE,IAAI,CAAC,YAAY,OACf;GAEF,iBAAiB;EACnB;EACA,eAAe,mBAAkC;GAC/C,IAAI,CAAC,MAAM,SAAS,aAAa,CAAC,MAAM,SAAS,aAAa,IAC5D;GAEF,IAAI,CAAC,aAAa,oBAChB,MAAM,aAAa,WAAW;GAEhC,MAAM,aAAa,aACjB,MAAM,QAAQ,WACd,MAAM,QAAQ,aAAa,EAC7B;EACF;EACA,SAAS,WAAW,SAAyB;GAC3C,IAAI,YAAY,OACd;GAEF,cAAc,QAAQ;IAAE,MAAM;IAAmB;GAAQ;EAC3D;;uCA7HE,mBA4BU,WA5BV,YA4BU;IA3BR,mBAWM,OAXN,YAWM,EAAA,UAAA,GAVJ,YAEwF,wBADjF,QAAA,WAAQ,QAAA,IAAA,GAAA,EACZ,OAAK,eAAE,QAAA,WAAQ,gBAAA,WAAA,EAAA,GAAA;4BAA0D,CAAA,gBAAA,gBAA1B,MAAA,CAAA,EAAC,oBAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;uBACnD,mBAMS,UAAA;KALN,OAAO,MAAA,CAAA,EAAC,SAAA;KACT,OAAM;KACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,QAAM,CAAI,OAAA;QAElB,YAAe,WAAA,CAAA,GAAA,GAAA,UAAA,CAAA,CAAA;IAIX,eAAA,SAAA,UAAA,GADR,YAIE,MAAA,YAAA,GAAA;;KAFC,SAAS,QAAA;KACT,cAAa;;IAEhB,YASE,MAAA,WAAA,GAAA;KARQ,eAAa,WAAA;6EAAU,QAAA;KAC9B,OAAK,eAAE,QAAA,WAAQ,SAAA,MAAA;KACf,SAAS,QAAA;KACT,gBAAc,QAAA;KACd,QAAQ,OAAA;KACR,QAAQ,cAAA;KACR,mBAAiB,cAAA;KACjB,gBAAc,QAAA;;;;;;;;;;;sBA1BF,sBAAA,KAAqB,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentStore-BFkEAz_S.mjs","names":[],"sources":["../src/websocket/wss.ts","../src/websocket/commentWebsocket.ts","../src/stores/CommentStore.ts"],"sourcesContent":["/* eslint-disable */\nlet SockJS: any = null;\nlet Stomp: any = null;\n/* eslint-enable */\n\ninterface Subscription {\n id: string;\n topic: string;\n callback: (message: { body: string }) => void;\n subscription?: () => void;\n}\n\nexport default class WssConnection {\n url: string;\n endpoint: string;\n subscriptions: Array<Subscription>;\n /* eslint-disable */\n socket: {\n (url: string, _reserved?: any, options?: SockJS.Options | undefined): WebSocket;\n new (url: string, _reserved?: any, options?: SockJS.Options | undefined): WebSocket;\n prototype: WebSocket;\n CONNECTING: SockJS.CONNECTING;\n OPEN: SockJS.OPEN;\n CLOSING: SockJS.CLOSING;\n CLOSED: SockJS.CLOSED;\n }|undefined ;\n client: any;\n queuedMessages: Array<any>;\n processingMsg: boolean;\n wssBroken: boolean;\n /* eslint-enable */\n /**\n *\n * @param {String} url url of the wss\n * @param {String} endpoint of the wss\n * @param {Map<String, Function>} topics list of topics and associated callback\n */\n constructor(url: string, endpoint: string) {\n this.url = url;\n this.endpoint = endpoint;\n this.subscriptions = [];\n this.processingMsg = false;\n this.queuedMessages = [];\n this.wssBroken = false;\n }\n async processQueuedMessages() {\n if (this.processingMsg) {\n return;\n }\n if (this.queuedMessages.length === 0) {\n return;\n }\n this.processingMsg = true;\n try {\n const message = this.queuedMessages.shift();\n await message.callback(message.message);\n } catch (error) {\n console.log(error);\n }\n this.processingMsg = false;\n this.processQueuedMessages();\n }\n\n async connect(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n (async () => {\n if (null === SockJS) {\n await import(\"sockjs-client/dist/sockjs\").then((sockLibrary) => {\n SockJS = sockLibrary.default;\n });\n }\n if (null === Stomp) {\n await import(\"@stomp/stompjs\").then((stompLibrary) => {\n Stomp = stompLibrary.Stomp;\n });\n }\n this.socket = new SockJS(\"https://\" + this.url + \"/\" + this.endpoint);\n this.client = Stomp.over(this.socket);\n this.client.heartbeat.outgoing = 2000;\n this.client.heartbeat.incoming = 2000;\n this.client.debug = (sockMessage: string) => {\n if (\n sockMessage.includes(\"did not receive server activity for the last\")\n ) {\n this.wssBroken = true;\n }\n };\n this.client.onConnect = () => {\n this.connectionSuccess();\n resolve();\n };\n this.client.onStompError = () => {\n this.wssBroken = true;\n this.connectionErrorReconnect();\n reject(new Error());\n };\n this.client.onWebSocketError = () => {\n this.wssBroken = true;\n this.connectionErrorReconnect();\n reject(new Error());\n };\n this.client.onDisconnect = () => {\n this.connectionErrorReconnect();\n reject(new Error());\n };\n this.client.onWebSocketClose = () => {\n this.connectionErrorReconnect();\n reject(new Error());\n };\n\n this.client.activate();\n })();\n });\n }\n\n async connectionErrorReconnect() {\n if (!this.wssBroken) {\n return;\n }\n console.log(\"Error in ws try to reconnect\");\n setTimeout(() => {\n this.connect();\n }, 10);\n this.wssBroken = false;\n }\n\n connectionSuccess(): void {\n this.subscriptions.forEach((element: Subscription) => {\n // On récupère tous les évènements freeswitch\n try {\n this.subscribe(element.topic, element.callback);\n } catch {\n setTimeout(() => {\n this.connect();\n }, 10000);\n return;\n }\n });\n }\n\n subscribe(topic: string, callback: (message: { body: string }) => any): void {\n const subscription = this.client.subscribe(topic, (message: any) => {\n this.queuedMessages.push({ message: message, callback: callback });\n this.processQueuedMessages();\n });\n this.subscriptions.push({\n id: subscription.id,\n topic: topic,\n callback: callback,\n });\n }\n\n unsubscribe(topic: string): void {\n if (!topic) {\n throw new Error(\n \"Cannot remove subscription if no search pattern is founded\",\n );\n }\n const removedSubscriptions: Array<Subscription> = [];\n this.subscriptions.forEach((item: Subscription) => {\n let valid = true;\n if (item.topic !== topic) {\n valid = false;\n }\n if (valid) {\n removedSubscriptions.push(item);\n try {\n this.client.unsubscribe(item.id);\n } catch {\n console.log(\"Error while deconnecting client with item \" + item.id);\n }\n }\n });\n this.subscriptions = this.subscriptions.filter(\n (item: Subscription) => !removedSubscriptions.includes(item),\n );\n }\n\n disconnect(): void {\n this.client.deactivate();\n }\n}\n","import { CommentMessage } from \"@/stores/class/config/commentsConfig\";\nimport WssConnection from \"./wss\";\n\nexport default class CommentEngine {\n uri: string;\n connection: WssConnection | undefined;\n subscribedEventComment: number|undefined;\n\n constructor(wssDomain: string) {\n this.uri = wssDomain;\n this.connection = undefined;\n this.subscribedEventComment = undefined;\n }\n\n async initialize(): Promise<void> {\n this.connection = new WssConnection(this.uri, \"websocket\");\n await this.connection.connect();\n }\n async close(): Promise<void> {\n if (!this.connection) {\n return;\n }\n this.connection.disconnect();\n this.connection = undefined;\n }\n\n subscribeToPodcastCommentEventBus(\n podcastId: number,\n queueName: string,\n callback: (jsonMessage: CommentMessage) => void,\n ): void {\n if (!this.connection) {\n throw new Error(\n \"Websocket engine must be initialized, before it can subscribe to any events\",\n );\n }\n if (podcastId) {\n this.connection.subscribe(\n queueName,\n (message) => {\n const jsonMessage = JSON.parse(message.body);\n callback.call(this, jsonMessage);\n },\n );\n this.subscribedEventComment = podcastId;\n }\n }\n\n unsubscribeToPodcastCommentEventBus(podcastId: number, queueName: string): void {\n if (!this.connection) {\n throw new Error(\n \"Websocket engine must be initialized, before it can unsubscribe to any events\",\n );\n }\n if (!podcastId) {\n throw new Error(\n \"Cannot unsubscribe to comments event bus if no id provided\",\n );\n }\n this.connection.unsubscribe(queueName);\n this.subscribedEventComment = undefined;\n }\n\n isPodcastCommentEventConnected(podcastId: number): boolean {\n return podcastId===this.subscribedEventComment;\n }\n}\n","//Import dayjs extend\nimport dayjs from \"dayjs\";\nimport relativeTime from \"dayjs/plugin/relativeTime\";\ndayjs.extend(relativeTime);\n\nimport { defineStore } from \"pinia\";\nimport cookiesHelper from \"../helper/cookiesHelper\";\nimport WebSocketEngine from \"../websocket/commentWebsocket\";\nimport { CommentPodcast } from \"./class/general/comment\";\nimport { useAuthStore } from \"./AuthStore\";\nimport { useApiStore } from \"./ApiStore\";\nimport stringHelper from \"../helper/stringHelper\";\nimport { CommentMessage, CommentsConfig } from \"./class/config/commentsConfig\";\nimport classicApi from \"../api/classicApi\";\nimport { Podcast } from \"./class/general/podcast\";\nimport { ListClassicReturn } from \"./class/general/listReturn\";\nfunction errorCommentsConfig(): CommentsConfig {\n return {\n inherited: false,\n abuse: {\n authRequired: true,\n },\n commentLikes: {\n authRequired: true,\n dislikeEnabled: false,\n likeEnabled: false,\n },\n comments: {\n authRequired: true,\n commentAllowed: \"NONE\",\n defaultState: \"PENDING\",\n depth: 2,\n },\n podcastLikes: {\n authRequired: true,\n dislikeEnabled: false,\n likeEnabled: false,\n },\n };\n}\n\n\nexport interface CommentUser {\n name: string | null;\n uuid: string | null;\n uuidHash: string | null;\n}\ninterface CommentState {\n commentInitialized: boolean;\n commentWebsocketengine: WebSocketEngine | undefined;\n commentPodcastId?: number;\n commentQueueName?: string;\n commentEventToHandle: Array<CommentMessage>;\n commentUser?: CommentUser;\n commentsForPlayer: { [key: number]: Array<CommentPodcast> };\n podcastsCommentsConfig: { [key: number]: CommentsConfig };\n}\nexport const useCommentStore = defineStore(\"CommentStore\", {\n state: (): CommentState => ({\n commentInitialized: false,\n commentWebsocketengine: undefined,\n commentPodcastId: undefined,\n commentQueueName: undefined,\n commentEventToHandle: [],\n commentsForPlayer: {},\n podcastsCommentsConfig: {},\n }),\n actions: {\n async fetchCommentsForPlayer(podcastId: number) {\n if (!this.commentsForPlayer[podcastId]) {\n this.commentsForPlayer[podcastId] = [];\n const size = 50;\n let first = 0;\n let keepFetching = true;\n while (keepFetching) {\n const data = await classicApi.fetchData<ListClassicReturn<CommentPodcast>>({\n api:2,\n path:\"comment/list\",\n parameters:{\n first: first,\n size: size,\n podcastId: podcastId,\n sort: \"DATE_DESC\",\n hideAnswers: true,\n state: \"VALIDATED\",\n },\n isNotAuth:true\n });\n first += size;\n this.commentsForPlayer[podcastId] = this.commentsForPlayer[\n podcastId\n ].concat(data.result);\n keepFetching =\n data.count !== this.commentsForPlayer[podcastId].length;\n }\n }\n return this.commentsForPlayer[podcastId];\n },\n async digest(message: string) {\n return Array.from(\n new Uint8Array(\n await crypto.subtle.digest(\n \"SHA-1\",\n new TextEncoder().encode(message),\n ),\n ),\n (byte) => byte.toString(16).padStart(2, \"0\"),\n ).join(\"\");\n },\n async initCommentUser() {\n if (this.commentUser) {\n return;\n }\n const authStore = useAuthStore();\n if (authStore.authProfile) {\n this.commentUser = {\n name: authStore.authName,\n uuid: authStore.authProfile.userId,\n };\n return;\n }\n let uuid = cookiesHelper.getCookie(\"comment-octopus-uuid\");\n if (null === uuid) {\n uuid = stringHelper.uuidv4();\n cookiesHelper.setCookie(\"comment-octopus-uuid\", uuid);\n }\n const hash = await this.digest(uuid);\n this.commentUser = {\n name: cookiesHelper.getCookie(\"comment-octopus-name\"),\n uuid: uuid,\n uuidHash: hash,\n };\n if (\"#miniplayer\" === this.commentUser?.name) {\n this.commentUser.name = null;\n }\n },\n setCommentUser(name: string) {\n const authStore = useAuthStore();\n if (authStore.authProfile || !this.commentUser) {\n return;\n }\n cookiesHelper.setCookie(\"comment-octopus-name\", name);\n this.commentUser.name = name;\n },\n async getCommentsConfig(podcast: Podcast): Promise<CommentsConfig> {\n if (this.podcastsCommentsConfig[podcast.podcastId]) {\n return this.podcastsCommentsConfig[podcast.podcastId];\n }\n try {\n this.podcastsCommentsConfig[podcast.podcastId] = await classicApi.fetchData<CommentsConfig>({\n api: 2,\n path:\"config/podcast/\" + podcast.podcastId,\n });\n } catch {\n try {\n this.podcastsCommentsConfig[podcast.podcastId] = await classicApi.fetchData<CommentsConfig>({\n api: 2,\n path: \"config/emission/\" + podcast.emission.emissionId,\n });\n } catch {\n this.podcastsCommentsConfig[podcast.podcastId] = errorCommentsConfig(); \n }\n }\n return this.podcastsCommentsConfig[podcast.podcastId];\n },\n resetPodcastsConfig() {\n this.podcastsCommentsConfig = {};\n },\n updatePodcastsConfig(podcastId: number, config: CommentsConfig) {\n this.podcastsCommentsConfig[podcastId] = config;\n },\n getCanPostCommentAllowed(\n config: CommentsConfig,\n podcast: Podcast,\n ): boolean {\n if (\"NONE\" === config.comments.commentAllowed) {\n return false;\n }\n const rightsLiveOnly =\n \"LIVE_ONLY\" === config.comments.commentAllowed &&\n undefined !== podcast.conferenceId &&\n \"READY_TO_RECORD\" === podcast.processingStatus;\n const rightsLiveRecord =\n \"LIVE_AND_REPLAY\" === config.comments.commentAllowed &&\n undefined !== podcast.conferenceId;\n return (\n \"ALL\" === config.comments.commentAllowed ||\n rightsLiveOnly ||\n rightsLiveRecord\n );\n },\n getCanPostComment(\n config: CommentsConfig | undefined,\n podcast: Podcast | undefined,\n isAuth: boolean,\n ): boolean {\n if (!config || !podcast) {\n return false;\n }\n return (\n this.getCanPostCommentAllowed(config, podcast) &&\n (!config.comments.authRequired ||\n (config.comments.authRequired && isAuth))\n );\n },\n getCanReportAbuse(\n config: CommentsConfig | undefined,\n isAuth: boolean,\n ): boolean {\n if (!config) {\n return false;\n }\n return (\n !config.abuse.authRequired || (config.abuse.authRequired && isAuth)\n );\n },\n\n /*--------------------------------------------------------------------------------------------------------------\n | |\n | Initializing state |\n | |\n --------------------------------------------------------------------------------------------------------------*/\n async initialize() {\n const apiStore = useApiStore();\n const commentUrl = apiStore.commentUrl?? \"https://comments.dev2.saooti.org/\";\n const url = stringHelper.trimChar(commentUrl.replace(\"https://\", \"\"),\"/\");\n const engine = new WebSocketEngine(url);\n await engine.initialize();\n this.commentWebsocketengine = engine;\n this.commentInitialized = true;\n },\n\n /*--------------------------------------------------------------------------------------------------------------\n | |\n | Comments management methods |\n | |\n --------------------------------------------------------------------------------------------------------------*/\n unsubscribeToEvent() {\n if (!this.commentWebsocketengine) {\n return;\n }\n if (\n this.commentPodcastId &&\n this.commentQueueName &&\n this.commentWebsocketengine.isPodcastCommentEventConnected(\n this.commentPodcastId,\n )\n ) {\n this.commentWebsocketengine.unsubscribeToPodcastCommentEventBus(\n this.commentPodcastId,\n this.commentQueueName,\n );\n }\n },\n\n subscribeToEvents() {\n if (!this.commentWebsocketengine) {\n return;\n }\n if (this.commentPodcastId && this.commentQueueName) {\n this.commentWebsocketengine.subscribeToPodcastCommentEventBus(\n this.commentPodcastId,\n this.commentQueueName,\n (message) => {\n this.commentEventToHandleUpdate(message);\n },\n );\n }\n },\n\n async initComments(podcastId: number, organisationId: string) {\n this.unsubscribeToEvent();\n this.commentQueueName =\n \"/topic/comment.\" + organisationId + \".\" + podcastId;\n this.commentPodcastId = podcastId;\n this.subscribeToEvents();\n },\n async unsubscribeComments() {\n this.unsubscribeComments();\n this.commentPodcastId = undefined;\n },\n\n /*--------------------------------------------------------------------------------------------------------------\n | |\n | Managing conference WebSocket Event Received |\n | |\n --------------------------------------------------------------------------------------------------------------*/\n commentEventHandled() {\n this.commentEventToHandle.shift();\n },\n commentEventToHandleUpdate(eventToHandle: {\n comment: CommentPodcast;\n type: string;\n }) {\n if (eventToHandle) {\n this.commentEventToHandle.push(eventToHandle);\n } else {\n this.commentEventToHandle.splice(0, this.commentEventToHandle.length);\n }\n },\n },\n});\n"],"mappings":";;;;;;;AACA,IAAI,SAAc;AAClB,IAAI,QAAa;AAUjB,IAAqB,gBAArB,MAAmC;CACjC;CACA;CACA;CAEA;CASA;CACA;CACA;CACA;;;;;;;CAQA,YAAY,KAAa,UAAkB;EACzC,KAAK,MAAM;EACX,KAAK,WAAW;EAChB,KAAK,gBAAgB,CAAC;EACtB,KAAK,gBAAgB;EACrB,KAAK,iBAAiB,CAAC;EACvB,KAAK,YAAY;CACnB;CACA,MAAM,wBAAwB;EAC5B,IAAI,KAAK,eACP;EAEF,IAAI,KAAK,eAAe,WAAW,GACjC;EAEF,KAAK,gBAAgB;EACrB,IAAI;GACF,MAAM,UAAU,KAAK,eAAe,MAAM;GAC1C,MAAM,QAAQ,SAAS,QAAQ,OAAO;EACxC,SAAS,OAAO;GACd,QAAQ,IAAI,KAAK;EACnB;EACA,KAAK,gBAAgB;EACrB,KAAK,sBAAsB;CAC7B;CAEA,MAAM,UAAyB;EAC7B,OAAO,IAAI,SAAe,SAAS,WAAW;GAC5C,CAAC,YAAY;IACX,IAAI,SAAS,QACX,MAAM,OAAO,6BAA6B,MAAM,gBAAgB;KAC9D,SAAS,YAAY;IACvB,CAAC;IAEH,IAAI,SAAS,OACX,MAAM,OAAO,kBAAkB,MAAM,iBAAiB;KACpD,QAAQ,aAAa;IACvB,CAAC;IAEH,KAAK,SAAS,IAAI,OAAO,aAAa,KAAK,MAAM,MAAM,KAAK,QAAQ;IACpE,KAAK,SAAS,MAAM,KAAK,KAAK,MAAM;IACpC,KAAK,OAAO,UAAU,WAAW;IACjC,KAAK,OAAO,UAAU,WAAW;IACjC,KAAK,OAAO,SAAS,gBAAwB;KAC3C,IACE,YAAY,SAAS,8CAA8C,GAEnE,KAAK,YAAY;IAErB;IACA,KAAK,OAAO,kBAAkB;KAC5B,KAAK,kBAAkB;KACvB,QAAQ;IACV;IACA,KAAK,OAAO,qBAAqB;KAC/B,KAAK,YAAY;KACjB,KAAK,yBAAyB;KAC9B,uBAAO,IAAI,MAAM,CAAC;IACpB;IACA,KAAK,OAAO,yBAAyB;KACnC,KAAK,YAAY;KACjB,KAAK,yBAAyB;KAC9B,uBAAO,IAAI,MAAM,CAAC;IACpB;IACA,KAAK,OAAO,qBAAqB;KAC/B,KAAK,yBAAyB;KAC9B,uBAAO,IAAI,MAAM,CAAC;IACpB;IACA,KAAK,OAAO,yBAAyB;KACnC,KAAK,yBAAyB;KAC9B,uBAAO,IAAI,MAAM,CAAC;IACpB;IAEA,KAAK,OAAO,SAAS;GACvB,GAAG;EACL,CAAC;CACH;CAEA,MAAM,2BAA2B;EAC/B,IAAI,CAAC,KAAK,WACR;EAEF,QAAQ,IAAI,8BAA8B;EAC1C,iBAAiB;GACf,KAAK,QAAQ;EACf,GAAG,EAAE;EACL,KAAK,YAAY;CACnB;CAEA,oBAA0B;EACxB,KAAK,cAAc,SAAS,YAA0B;GAEpD,IAAI;IACF,KAAK,UAAU,QAAQ,OAAO,QAAQ,QAAQ;GAChD,QAAQ;IACN,iBAAiB;KACf,KAAK,QAAQ;IACf,GAAG,GAAK;IACR;GACF;EACF,CAAC;CACH;CAEA,UAAU,OAAe,UAAoD;EAC3E,MAAM,eAAe,KAAK,OAAO,UAAU,QAAQ,YAAiB;GAClE,KAAK,eAAe,KAAK;IAAW;IAAmB;GAAS,CAAC;GACjE,KAAK,sBAAsB;EAC7B,CAAC;EACD,KAAK,cAAc,KAAK;GACtB,IAAI,aAAa;GACV;GACG;EACZ,CAAC;CACH;CAEA,YAAY,OAAqB;EAC/B,IAAI,CAAC,OACH,MAAM,IAAI,MACR,4DACF;EAEF,MAAM,uBAA4C,CAAC;EACnD,KAAK,cAAc,SAAS,SAAuB;GACjD,IAAI,QAAQ;GACZ,IAAI,KAAK,UAAU,OACjB,QAAQ;GAEV,IAAI,OAAO;IACT,qBAAqB,KAAK,IAAI;IAC9B,IAAI;KACF,KAAK,OAAO,YAAY,KAAK,EAAE;IACjC,QAAQ;KACN,QAAQ,IAAI,+CAA+C,KAAK,EAAE;IACpE;GACF;EACF,CAAC;EACD,KAAK,gBAAgB,KAAK,cAAc,QACrC,SAAuB,CAAC,qBAAqB,SAAS,IAAI,CAC7D;CACF;CAEA,aAAmB;EACjB,KAAK,OAAO,WAAW;CACzB;AACF;;;AClLA,IAAqB,gBAArB,MAAmC;CACjC;CACA;CACA;CAEA,YAAY,WAAmB;EAC7B,KAAK,MAAM;EACX,KAAK,aAAa,KAAA;EAClB,KAAK,yBAAyB,KAAA;CAChC;CAEA,MAAM,aAA4B;EAChC,KAAK,aAAa,IAAI,cAAc,KAAK,KAAK,WAAW;EACzD,MAAM,KAAK,WAAW,QAAQ;CAChC;CACA,MAAM,QAAuB;EAC3B,IAAI,CAAC,KAAK,YACR;EAEF,KAAK,WAAW,WAAW;EAC3B,KAAK,aAAa,KAAA;CACpB;CAEA,kCACE,WACA,WACA,UACM;EACN,IAAI,CAAC,KAAK,YACR,MAAM,IAAI,MACR,6EACF;EAEF,IAAI,WAAW;GACb,KAAK,WAAW,UACd,YACC,YAAY;IACX,MAAM,cAAc,KAAK,MAAM,QAAQ,IAAI;IAC3C,SAAS,KAAK,MAAM,WAAW;GACjC,CACF;GACA,KAAK,yBAAyB;EAChC;CACF;CAEA,oCAAoC,WAAmB,WAAyB;EAC9E,IAAI,CAAC,KAAK,YACR,MAAM,IAAI,MACR,+EACF;EAEF,IAAI,CAAC,WACH,MAAM,IAAI,MACR,4DACF;EAEF,KAAK,WAAW,YAAY,SAAS;EACrC,KAAK,yBAAyB,KAAA;CAChC;CAEA,+BAA+B,WAA4B;EACzD,OAAO,cAAY,KAAK;CAC1B;AACF;;;AC/DA,MAAM,OAAO,YAAY;AAazB,SAAS,sBAAsC;CAC7C,OAAO;EACL,WAAW;EACX,OAAO,EACL,cAAc,KAChB;EACA,cAAc;GACZ,cAAc;GACd,gBAAgB;GAChB,aAAa;EACf;EACA,UAAU;GACR,cAAc;GACd,gBAAgB;GAChB,cAAc;GACd,OAAO;EACT;EACA,cAAc;GACZ,cAAc;GACd,gBAAgB;GAChB,aAAa;EACf;CACF;AACF;AAkBA,IAAa,kBAAkB,YAAY,gBAAgB;CACzD,cAA4B;EAC1B,oBAAoB;EACpB,wBAAwB,KAAA;EACxB,kBAAkB,KAAA;EAClB,kBAAkB,KAAA;EAClB,sBAAsB,CAAC;EACvB,mBAAmB,CAAC;EACpB,wBAAwB,CAAC;CAC3B;CACA,SAAS;EACP,MAAM,uBAAuB,WAAmB;GAC9C,IAAI,CAAC,KAAK,kBAAkB,YAAY;IACtC,KAAK,kBAAkB,aAAa,CAAC;IACrC,MAAM,OAAO;IACb,IAAI,QAAQ;IACZ,IAAI,eAAe;IACnB,OAAO,cAAc;KACnB,MAAM,OAAO,MAAM,mBAAW,UAA6C;MACzE,KAAI;MACJ,MAAK;MACL,YAAW;OACF;OACD;OACK;OACX,MAAM;OACN,aAAa;OACb,OAAO;MACT;MACA,WAAU;KACZ,CAAC;KACD,SAAS;KACT,KAAK,kBAAkB,aAAa,KAAK,kBACvC,WACA,OAAO,KAAK,MAAM;KACpB,eACE,KAAK,UAAU,KAAK,kBAAkB,WAAW;IACrD;GACF;GACA,OAAO,KAAK,kBAAkB;EAChC;EACA,MAAM,OAAO,SAAiB;GAC5B,OAAO,MAAM,KACX,IAAI,WACF,MAAM,OAAO,OAAO,OAClB,SACA,IAAI,YAAY,EAAE,OAAO,OAAO,CAClC,CACF,IACC,SAAS,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAC7C,EAAE,KAAK,EAAE;EACX;EACA,MAAM,kBAAkB;GACtB,IAAI,KAAK,aACP;GAEF,MAAM,YAAY,aAAa;GAC/B,IAAI,UAAU,aAAa;IACzB,KAAK,cAAc;KACjB,MAAM,UAAU;KAChB,MAAM,UAAU,YAAY;IAC9B;IACA;GACF;GACA,IAAI,OAAO,sBAAc,UAAU,sBAAsB;GACzD,IAAI,SAAS,MAAM;IACjB,OAAO,qBAAa,OAAO;IAC3B,sBAAc,UAAU,wBAAwB,IAAI;GACtD;GACA,MAAM,OAAO,MAAM,KAAK,OAAO,IAAI;GACnC,KAAK,cAAc;IACjB,MAAM,sBAAc,UAAU,sBAAsB;IAC9C;IACN,UAAU;GACZ;GACA,IAAI,kBAAkB,KAAK,aAAa,MACtC,KAAK,YAAY,OAAO;EAE5B;EACA,eAAe,MAAc;GAE3B,IADkB,aACd,EAAU,eAAe,CAAC,KAAK,aACjC;GAEF,sBAAc,UAAU,wBAAwB,IAAI;GACpD,KAAK,YAAY,OAAO;EAC1B;EACA,MAAM,kBAAkB,SAA2C;GACjE,IAAI,KAAK,uBAAuB,QAAQ,YACtC,OAAO,KAAK,uBAAuB,QAAQ;GAE7C,IAAI;IACF,KAAK,uBAAuB,QAAQ,aAAa,MAAM,mBAAW,UAA0B;KAC1F,KAAK;KACL,MAAK,oBAAoB,QAAQ;IACnC,CAAC;GACH,QAAQ;IACN,IAAI;KACF,KAAK,uBAAuB,QAAQ,aAAa,MAAM,mBAAW,UAA0B;MAC1F,KAAK;MACL,MAAM,qBAAqB,QAAQ,SAAS;KAC9C,CAAC;IACH,QAAQ;KACN,KAAK,uBAAuB,QAAQ,aAAa,oBAAoB;IACvE;GACF;GACA,OAAO,KAAK,uBAAuB,QAAQ;EAC7C;EACA,sBAAsB;GACpB,KAAK,yBAAyB,CAAC;EACjC;EACA,qBAAqB,WAAmB,QAAwB;GAC9D,KAAK,uBAAuB,aAAa;EAC3C;EACA,yBACE,QACA,SACS;GACT,IAAI,WAAW,OAAO,SAAS,gBAC7B,OAAO;GAET,MAAM,iBACJ,gBAAgB,OAAO,SAAS,kBAChC,KAAA,MAAc,QAAQ,gBACtB,sBAAsB,QAAQ;GAChC,MAAM,mBACJ,sBAAsB,OAAO,SAAS,kBACtC,KAAA,MAAc,QAAQ;GACxB,OACE,UAAU,OAAO,SAAS,kBAC1B,kBACA;EAEJ;EACA,kBACE,QACA,SACA,QACS;GACT,IAAI,CAAC,UAAU,CAAC,SACd,OAAO;GAET,OACE,KAAK,yBAAyB,QAAQ,OAAO,MAC5C,CAAC,OAAO,SAAS,gBACf,OAAO,SAAS,gBAAgB;EAEvC;EACA,kBACE,QACA,QACS;GACT,IAAI,CAAC,QACH,OAAO;GAET,OACE,CAAC,OAAO,MAAM,gBAAiB,OAAO,MAAM,gBAAgB;EAEhE;EAOA,MAAM,aAAa;GAEjB,MAAM,aADW,YACE,EAAS,cAAa;GAEzC,MAAM,SAAS,IAAI,cADN,qBAAa,SAAS,WAAW,QAAQ,YAAY,EAAE,GAAE,GACnC,CAAG;GACtC,MAAM,OAAO,WAAW;GACxB,KAAK,yBAAyB;GAC9B,KAAK,qBAAqB;EAC5B;EAOA,qBAAqB;GACnB,IAAI,CAAC,KAAK,wBACR;GAEF,IACE,KAAK,oBACL,KAAK,oBACL,KAAK,uBAAuB,+BAC1B,KAAK,gBACP,GAEA,KAAK,uBAAuB,oCAC1B,KAAK,kBACL,KAAK,gBACP;EAEJ;EAEA,oBAAoB;GAClB,IAAI,CAAC,KAAK,wBACR;GAEF,IAAI,KAAK,oBAAoB,KAAK,kBAChC,KAAK,uBAAuB,kCAC1B,KAAK,kBACL,KAAK,mBACJ,YAAY;IACX,KAAK,2BAA2B,OAAO;GACzC,CACF;EAEJ;EAEA,MAAM,aAAa,WAAmB,gBAAwB;GAC5D,KAAK,mBAAmB;GACxB,KAAK,mBACH,oBAAoB,iBAAiB,MAAM;GAC7C,KAAK,mBAAmB;GACxB,KAAK,kBAAkB;EACzB;EACA,MAAM,sBAAsB;GAC1B,KAAK,oBAAoB;GACzB,KAAK,mBAAmB,KAAA;EAC1B;EAOA,sBAAsB;GACpB,KAAK,qBAAqB,MAAM;EAClC;EACA,2BAA2B,eAGxB;GACD,IAAI,eACF,KAAK,qBAAqB,KAAK,aAAa;QAE5C,KAAK,qBAAqB,OAAO,GAAG,KAAK,qBAAqB,MAAM;EAExE;CACF;AACF,CAAC"}
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
import { i as useAuthStore, t as classicApi_default, w as useApiStore } from "./classicApi-BKNiWOG4.mjs";
|
|
2
|
+
import { t as stringHelper_default } from "./stringHelper-DFr4Khve.mjs";
|
|
3
|
+
import { t as cookiesHelper_default } from "./cookiesHelper-BQksSais.mjs";
|
|
4
|
+
import { defineStore } from "pinia";
|
|
5
|
+
import dayjs from "dayjs";
|
|
6
|
+
import relativeTime from "dayjs/plugin/relativeTime";
|
|
7
|
+
//#region src/websocket/wss.ts
|
|
8
|
+
var SockJS = null;
|
|
9
|
+
var Stomp = null;
|
|
10
|
+
var WssConnection = class {
|
|
11
|
+
url;
|
|
12
|
+
endpoint;
|
|
13
|
+
subscriptions;
|
|
14
|
+
socket;
|
|
15
|
+
client;
|
|
16
|
+
queuedMessages;
|
|
17
|
+
processingMsg;
|
|
18
|
+
wssBroken;
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param {String} url url of the wss
|
|
22
|
+
* @param {String} endpoint of the wss
|
|
23
|
+
* @param {Map<String, Function>} topics list of topics and associated callback
|
|
24
|
+
*/
|
|
25
|
+
constructor(url, endpoint) {
|
|
26
|
+
this.url = url;
|
|
27
|
+
this.endpoint = endpoint;
|
|
28
|
+
this.subscriptions = [];
|
|
29
|
+
this.processingMsg = false;
|
|
30
|
+
this.queuedMessages = [];
|
|
31
|
+
this.wssBroken = false;
|
|
32
|
+
}
|
|
33
|
+
async processQueuedMessages() {
|
|
34
|
+
if (this.processingMsg) return;
|
|
35
|
+
if (this.queuedMessages.length === 0) return;
|
|
36
|
+
this.processingMsg = true;
|
|
37
|
+
try {
|
|
38
|
+
const message = this.queuedMessages.shift();
|
|
39
|
+
await message.callback(message.message);
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.log(error);
|
|
42
|
+
}
|
|
43
|
+
this.processingMsg = false;
|
|
44
|
+
this.processQueuedMessages();
|
|
45
|
+
}
|
|
46
|
+
async connect() {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
(async () => {
|
|
49
|
+
if (null === SockJS) await import("sockjs-client/dist/sockjs").then((sockLibrary) => {
|
|
50
|
+
SockJS = sockLibrary.default;
|
|
51
|
+
});
|
|
52
|
+
if (null === Stomp) await import("@stomp/stompjs").then((stompLibrary) => {
|
|
53
|
+
Stomp = stompLibrary.Stomp;
|
|
54
|
+
});
|
|
55
|
+
this.socket = new SockJS("https://" + this.url + "/" + this.endpoint);
|
|
56
|
+
this.client = Stomp.over(this.socket);
|
|
57
|
+
this.client.heartbeat.outgoing = 2e3;
|
|
58
|
+
this.client.heartbeat.incoming = 2e3;
|
|
59
|
+
this.client.debug = (sockMessage) => {
|
|
60
|
+
if (sockMessage.includes("did not receive server activity for the last")) this.wssBroken = true;
|
|
61
|
+
};
|
|
62
|
+
this.client.onConnect = () => {
|
|
63
|
+
this.connectionSuccess();
|
|
64
|
+
resolve();
|
|
65
|
+
};
|
|
66
|
+
this.client.onStompError = () => {
|
|
67
|
+
this.wssBroken = true;
|
|
68
|
+
this.connectionErrorReconnect();
|
|
69
|
+
reject(/* @__PURE__ */ new Error());
|
|
70
|
+
};
|
|
71
|
+
this.client.onWebSocketError = () => {
|
|
72
|
+
this.wssBroken = true;
|
|
73
|
+
this.connectionErrorReconnect();
|
|
74
|
+
reject(/* @__PURE__ */ new Error());
|
|
75
|
+
};
|
|
76
|
+
this.client.onDisconnect = () => {
|
|
77
|
+
this.connectionErrorReconnect();
|
|
78
|
+
reject(/* @__PURE__ */ new Error());
|
|
79
|
+
};
|
|
80
|
+
this.client.onWebSocketClose = () => {
|
|
81
|
+
this.connectionErrorReconnect();
|
|
82
|
+
reject(/* @__PURE__ */ new Error());
|
|
83
|
+
};
|
|
84
|
+
this.client.activate();
|
|
85
|
+
})();
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async connectionErrorReconnect() {
|
|
89
|
+
if (!this.wssBroken) return;
|
|
90
|
+
console.log("Error in ws try to reconnect");
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
this.connect();
|
|
93
|
+
}, 10);
|
|
94
|
+
this.wssBroken = false;
|
|
95
|
+
}
|
|
96
|
+
connectionSuccess() {
|
|
97
|
+
this.subscriptions.forEach((element) => {
|
|
98
|
+
try {
|
|
99
|
+
this.subscribe(element.topic, element.callback);
|
|
100
|
+
} catch {
|
|
101
|
+
setTimeout(() => {
|
|
102
|
+
this.connect();
|
|
103
|
+
}, 1e4);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
subscribe(topic, callback) {
|
|
109
|
+
const subscription = this.client.subscribe(topic, (message) => {
|
|
110
|
+
this.queuedMessages.push({
|
|
111
|
+
message,
|
|
112
|
+
callback
|
|
113
|
+
});
|
|
114
|
+
this.processQueuedMessages();
|
|
115
|
+
});
|
|
116
|
+
this.subscriptions.push({
|
|
117
|
+
id: subscription.id,
|
|
118
|
+
topic,
|
|
119
|
+
callback
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
unsubscribe(topic) {
|
|
123
|
+
if (!topic) throw new Error("Cannot remove subscription if no search pattern is founded");
|
|
124
|
+
const removedSubscriptions = [];
|
|
125
|
+
this.subscriptions.forEach((item) => {
|
|
126
|
+
let valid = true;
|
|
127
|
+
if (item.topic !== topic) valid = false;
|
|
128
|
+
if (valid) {
|
|
129
|
+
removedSubscriptions.push(item);
|
|
130
|
+
try {
|
|
131
|
+
this.client.unsubscribe(item.id);
|
|
132
|
+
} catch {
|
|
133
|
+
console.log("Error while deconnecting client with item " + item.id);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
this.subscriptions = this.subscriptions.filter((item) => !removedSubscriptions.includes(item));
|
|
138
|
+
}
|
|
139
|
+
disconnect() {
|
|
140
|
+
this.client.deactivate();
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
//#endregion
|
|
144
|
+
//#region src/websocket/commentWebsocket.ts
|
|
145
|
+
var CommentEngine = class {
|
|
146
|
+
uri;
|
|
147
|
+
connection;
|
|
148
|
+
subscribedEventComment;
|
|
149
|
+
constructor(wssDomain) {
|
|
150
|
+
this.uri = wssDomain;
|
|
151
|
+
this.connection = void 0;
|
|
152
|
+
this.subscribedEventComment = void 0;
|
|
153
|
+
}
|
|
154
|
+
async initialize() {
|
|
155
|
+
this.connection = new WssConnection(this.uri, "websocket");
|
|
156
|
+
await this.connection.connect();
|
|
157
|
+
}
|
|
158
|
+
async close() {
|
|
159
|
+
if (!this.connection) return;
|
|
160
|
+
this.connection.disconnect();
|
|
161
|
+
this.connection = void 0;
|
|
162
|
+
}
|
|
163
|
+
subscribeToPodcastCommentEventBus(podcastId, queueName, callback) {
|
|
164
|
+
if (!this.connection) throw new Error("Websocket engine must be initialized, before it can subscribe to any events");
|
|
165
|
+
if (podcastId) {
|
|
166
|
+
this.connection.subscribe(queueName, (message) => {
|
|
167
|
+
const jsonMessage = JSON.parse(message.body);
|
|
168
|
+
callback.call(this, jsonMessage);
|
|
169
|
+
});
|
|
170
|
+
this.subscribedEventComment = podcastId;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
unsubscribeToPodcastCommentEventBus(podcastId, queueName) {
|
|
174
|
+
if (!this.connection) throw new Error("Websocket engine must be initialized, before it can unsubscribe to any events");
|
|
175
|
+
if (!podcastId) throw new Error("Cannot unsubscribe to comments event bus if no id provided");
|
|
176
|
+
this.connection.unsubscribe(queueName);
|
|
177
|
+
this.subscribedEventComment = void 0;
|
|
178
|
+
}
|
|
179
|
+
isPodcastCommentEventConnected(podcastId) {
|
|
180
|
+
return podcastId === this.subscribedEventComment;
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
//#endregion
|
|
184
|
+
//#region src/stores/CommentStore.ts
|
|
185
|
+
dayjs.extend(relativeTime);
|
|
186
|
+
function errorCommentsConfig() {
|
|
187
|
+
return {
|
|
188
|
+
inherited: false,
|
|
189
|
+
abuse: { authRequired: true },
|
|
190
|
+
commentLikes: {
|
|
191
|
+
authRequired: true,
|
|
192
|
+
dislikeEnabled: false,
|
|
193
|
+
likeEnabled: false
|
|
194
|
+
},
|
|
195
|
+
comments: {
|
|
196
|
+
authRequired: true,
|
|
197
|
+
commentAllowed: "NONE",
|
|
198
|
+
defaultState: "PENDING",
|
|
199
|
+
depth: 2
|
|
200
|
+
},
|
|
201
|
+
podcastLikes: {
|
|
202
|
+
authRequired: true,
|
|
203
|
+
dislikeEnabled: false,
|
|
204
|
+
likeEnabled: false
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
var useCommentStore = defineStore("CommentStore", {
|
|
209
|
+
state: () => ({
|
|
210
|
+
commentInitialized: false,
|
|
211
|
+
commentWebsocketengine: void 0,
|
|
212
|
+
commentPodcastId: void 0,
|
|
213
|
+
commentQueueName: void 0,
|
|
214
|
+
commentEventToHandle: [],
|
|
215
|
+
commentsForPlayer: {},
|
|
216
|
+
podcastsCommentsConfig: {}
|
|
217
|
+
}),
|
|
218
|
+
actions: {
|
|
219
|
+
async fetchCommentsForPlayer(podcastId) {
|
|
220
|
+
if (!this.commentsForPlayer[podcastId]) {
|
|
221
|
+
this.commentsForPlayer[podcastId] = [];
|
|
222
|
+
const size = 50;
|
|
223
|
+
let first = 0;
|
|
224
|
+
let keepFetching = true;
|
|
225
|
+
while (keepFetching) {
|
|
226
|
+
const data = await classicApi_default.fetchData({
|
|
227
|
+
api: 2,
|
|
228
|
+
path: "comment/list",
|
|
229
|
+
parameters: {
|
|
230
|
+
first,
|
|
231
|
+
size,
|
|
232
|
+
podcastId,
|
|
233
|
+
sort: "DATE_DESC",
|
|
234
|
+
hideAnswers: true,
|
|
235
|
+
state: "VALIDATED"
|
|
236
|
+
},
|
|
237
|
+
isNotAuth: true
|
|
238
|
+
});
|
|
239
|
+
first += size;
|
|
240
|
+
this.commentsForPlayer[podcastId] = this.commentsForPlayer[podcastId].concat(data.result);
|
|
241
|
+
keepFetching = data.count !== this.commentsForPlayer[podcastId].length;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return this.commentsForPlayer[podcastId];
|
|
245
|
+
},
|
|
246
|
+
async digest(message) {
|
|
247
|
+
return Array.from(new Uint8Array(await crypto.subtle.digest("SHA-1", new TextEncoder().encode(message))), (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
248
|
+
},
|
|
249
|
+
async initCommentUser() {
|
|
250
|
+
if (this.commentUser) return;
|
|
251
|
+
const authStore = useAuthStore();
|
|
252
|
+
if (authStore.authProfile) {
|
|
253
|
+
this.commentUser = {
|
|
254
|
+
name: authStore.authName,
|
|
255
|
+
uuid: authStore.authProfile.userId
|
|
256
|
+
};
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
let uuid = cookiesHelper_default.getCookie("comment-octopus-uuid");
|
|
260
|
+
if (null === uuid) {
|
|
261
|
+
uuid = stringHelper_default.uuidv4();
|
|
262
|
+
cookiesHelper_default.setCookie("comment-octopus-uuid", uuid);
|
|
263
|
+
}
|
|
264
|
+
const hash = await this.digest(uuid);
|
|
265
|
+
this.commentUser = {
|
|
266
|
+
name: cookiesHelper_default.getCookie("comment-octopus-name"),
|
|
267
|
+
uuid,
|
|
268
|
+
uuidHash: hash
|
|
269
|
+
};
|
|
270
|
+
if ("#miniplayer" === this.commentUser?.name) this.commentUser.name = null;
|
|
271
|
+
},
|
|
272
|
+
setCommentUser(name) {
|
|
273
|
+
if (useAuthStore().authProfile || !this.commentUser) return;
|
|
274
|
+
cookiesHelper_default.setCookie("comment-octopus-name", name);
|
|
275
|
+
this.commentUser.name = name;
|
|
276
|
+
},
|
|
277
|
+
async getCommentsConfig(podcast) {
|
|
278
|
+
if (this.podcastsCommentsConfig[podcast.podcastId]) return this.podcastsCommentsConfig[podcast.podcastId];
|
|
279
|
+
try {
|
|
280
|
+
this.podcastsCommentsConfig[podcast.podcastId] = await classicApi_default.fetchData({
|
|
281
|
+
api: 2,
|
|
282
|
+
path: "config/podcast/" + podcast.podcastId
|
|
283
|
+
});
|
|
284
|
+
} catch {
|
|
285
|
+
try {
|
|
286
|
+
this.podcastsCommentsConfig[podcast.podcastId] = await classicApi_default.fetchData({
|
|
287
|
+
api: 2,
|
|
288
|
+
path: "config/emission/" + podcast.emission.emissionId
|
|
289
|
+
});
|
|
290
|
+
} catch {
|
|
291
|
+
this.podcastsCommentsConfig[podcast.podcastId] = errorCommentsConfig();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return this.podcastsCommentsConfig[podcast.podcastId];
|
|
295
|
+
},
|
|
296
|
+
resetPodcastsConfig() {
|
|
297
|
+
this.podcastsCommentsConfig = {};
|
|
298
|
+
},
|
|
299
|
+
updatePodcastsConfig(podcastId, config) {
|
|
300
|
+
this.podcastsCommentsConfig[podcastId] = config;
|
|
301
|
+
},
|
|
302
|
+
getCanPostCommentAllowed(config, podcast) {
|
|
303
|
+
if ("NONE" === config.comments.commentAllowed) return false;
|
|
304
|
+
const rightsLiveOnly = "LIVE_ONLY" === config.comments.commentAllowed && void 0 !== podcast.conferenceId && "READY_TO_RECORD" === podcast.processingStatus;
|
|
305
|
+
const rightsLiveRecord = "LIVE_AND_REPLAY" === config.comments.commentAllowed && void 0 !== podcast.conferenceId;
|
|
306
|
+
return "ALL" === config.comments.commentAllowed || rightsLiveOnly || rightsLiveRecord;
|
|
307
|
+
},
|
|
308
|
+
getCanPostComment(config, podcast, isAuth) {
|
|
309
|
+
if (!config || !podcast) return false;
|
|
310
|
+
return this.getCanPostCommentAllowed(config, podcast) && (!config.comments.authRequired || config.comments.authRequired && isAuth);
|
|
311
|
+
},
|
|
312
|
+
getCanReportAbuse(config, isAuth) {
|
|
313
|
+
if (!config) return false;
|
|
314
|
+
return !config.abuse.authRequired || config.abuse.authRequired && isAuth;
|
|
315
|
+
},
|
|
316
|
+
async initialize() {
|
|
317
|
+
const commentUrl = useApiStore().commentUrl ?? "https://comments.dev2.saooti.org/";
|
|
318
|
+
const engine = new CommentEngine(stringHelper_default.trimChar(commentUrl.replace("https://", ""), "/"));
|
|
319
|
+
await engine.initialize();
|
|
320
|
+
this.commentWebsocketengine = engine;
|
|
321
|
+
this.commentInitialized = true;
|
|
322
|
+
},
|
|
323
|
+
unsubscribeToEvent() {
|
|
324
|
+
if (!this.commentWebsocketengine) return;
|
|
325
|
+
if (this.commentPodcastId && this.commentQueueName && this.commentWebsocketengine.isPodcastCommentEventConnected(this.commentPodcastId)) this.commentWebsocketengine.unsubscribeToPodcastCommentEventBus(this.commentPodcastId, this.commentQueueName);
|
|
326
|
+
},
|
|
327
|
+
subscribeToEvents() {
|
|
328
|
+
if (!this.commentWebsocketengine) return;
|
|
329
|
+
if (this.commentPodcastId && this.commentQueueName) this.commentWebsocketengine.subscribeToPodcastCommentEventBus(this.commentPodcastId, this.commentQueueName, (message) => {
|
|
330
|
+
this.commentEventToHandleUpdate(message);
|
|
331
|
+
});
|
|
332
|
+
},
|
|
333
|
+
async initComments(podcastId, organisationId) {
|
|
334
|
+
this.unsubscribeToEvent();
|
|
335
|
+
this.commentQueueName = "/topic/comment." + organisationId + "." + podcastId;
|
|
336
|
+
this.commentPodcastId = podcastId;
|
|
337
|
+
this.subscribeToEvents();
|
|
338
|
+
},
|
|
339
|
+
async unsubscribeComments() {
|
|
340
|
+
this.unsubscribeComments();
|
|
341
|
+
this.commentPodcastId = void 0;
|
|
342
|
+
},
|
|
343
|
+
commentEventHandled() {
|
|
344
|
+
this.commentEventToHandle.shift();
|
|
345
|
+
},
|
|
346
|
+
commentEventToHandleUpdate(eventToHandle) {
|
|
347
|
+
if (eventToHandle) this.commentEventToHandle.push(eventToHandle);
|
|
348
|
+
else this.commentEventToHandle.splice(0, this.commentEventToHandle.length);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
//#endregion
|
|
353
|
+
export { useCommentStore as t };
|
|
354
|
+
|
|
355
|
+
//# sourceMappingURL=CommentStore-BjQ0AGHa.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentStore-BjQ0AGHa.mjs","names":[],"sources":["../src/websocket/wss.ts","../src/websocket/commentWebsocket.ts","../src/stores/CommentStore.ts"],"sourcesContent":["/* eslint-disable */\nlet SockJS: any = null;\nlet Stomp: any = null;\n/* eslint-enable */\n\ninterface Subscription {\n id: string;\n topic: string;\n callback: (message: { body: string }) => void;\n subscription?: () => void;\n}\n\nexport default class WssConnection {\n url: string;\n endpoint: string;\n subscriptions: Array<Subscription>;\n /* eslint-disable */\n socket: {\n (url: string, _reserved?: any, options?: SockJS.Options | undefined): WebSocket;\n new (url: string, _reserved?: any, options?: SockJS.Options | undefined): WebSocket;\n prototype: WebSocket;\n CONNECTING: SockJS.CONNECTING;\n OPEN: SockJS.OPEN;\n CLOSING: SockJS.CLOSING;\n CLOSED: SockJS.CLOSED;\n }|undefined ;\n client: any;\n queuedMessages: Array<any>;\n processingMsg: boolean;\n wssBroken: boolean;\n /* eslint-enable */\n /**\n *\n * @param {String} url url of the wss\n * @param {String} endpoint of the wss\n * @param {Map<String, Function>} topics list of topics and associated callback\n */\n constructor(url: string, endpoint: string) {\n this.url = url;\n this.endpoint = endpoint;\n this.subscriptions = [];\n this.processingMsg = false;\n this.queuedMessages = [];\n this.wssBroken = false;\n }\n async processQueuedMessages() {\n if (this.processingMsg) {\n return;\n }\n if (this.queuedMessages.length === 0) {\n return;\n }\n this.processingMsg = true;\n try {\n const message = this.queuedMessages.shift();\n await message.callback(message.message);\n } catch (error) {\n console.log(error);\n }\n this.processingMsg = false;\n this.processQueuedMessages();\n }\n\n async connect(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n (async () => {\n if (null === SockJS) {\n await import(\"sockjs-client/dist/sockjs\").then((sockLibrary) => {\n SockJS = sockLibrary.default;\n });\n }\n if (null === Stomp) {\n await import(\"@stomp/stompjs\").then((stompLibrary) => {\n Stomp = stompLibrary.Stomp;\n });\n }\n this.socket = new SockJS(\"https://\" + this.url + \"/\" + this.endpoint);\n this.client = Stomp.over(this.socket);\n this.client.heartbeat.outgoing = 2000;\n this.client.heartbeat.incoming = 2000;\n this.client.debug = (sockMessage: string) => {\n if (\n sockMessage.includes(\"did not receive server activity for the last\")\n ) {\n this.wssBroken = true;\n }\n };\n this.client.onConnect = () => {\n this.connectionSuccess();\n resolve();\n };\n this.client.onStompError = () => {\n this.wssBroken = true;\n this.connectionErrorReconnect();\n reject(new Error());\n };\n this.client.onWebSocketError = () => {\n this.wssBroken = true;\n this.connectionErrorReconnect();\n reject(new Error());\n };\n this.client.onDisconnect = () => {\n this.connectionErrorReconnect();\n reject(new Error());\n };\n this.client.onWebSocketClose = () => {\n this.connectionErrorReconnect();\n reject(new Error());\n };\n\n this.client.activate();\n })();\n });\n }\n\n async connectionErrorReconnect() {\n if (!this.wssBroken) {\n return;\n }\n console.log(\"Error in ws try to reconnect\");\n setTimeout(() => {\n this.connect();\n }, 10);\n this.wssBroken = false;\n }\n\n connectionSuccess(): void {\n this.subscriptions.forEach((element: Subscription) => {\n // On récupère tous les évènements freeswitch\n try {\n this.subscribe(element.topic, element.callback);\n } catch {\n setTimeout(() => {\n this.connect();\n }, 10000);\n return;\n }\n });\n }\n\n subscribe(topic: string, callback: (message: { body: string }) => any): void {\n const subscription = this.client.subscribe(topic, (message: any) => {\n this.queuedMessages.push({ message: message, callback: callback });\n this.processQueuedMessages();\n });\n this.subscriptions.push({\n id: subscription.id,\n topic: topic,\n callback: callback,\n });\n }\n\n unsubscribe(topic: string): void {\n if (!topic) {\n throw new Error(\n \"Cannot remove subscription if no search pattern is founded\",\n );\n }\n const removedSubscriptions: Array<Subscription> = [];\n this.subscriptions.forEach((item: Subscription) => {\n let valid = true;\n if (item.topic !== topic) {\n valid = false;\n }\n if (valid) {\n removedSubscriptions.push(item);\n try {\n this.client.unsubscribe(item.id);\n } catch {\n console.log(\"Error while deconnecting client with item \" + item.id);\n }\n }\n });\n this.subscriptions = this.subscriptions.filter(\n (item: Subscription) => !removedSubscriptions.includes(item),\n );\n }\n\n disconnect(): void {\n this.client.deactivate();\n }\n}\n","import { CommentMessage } from \"@/stores/class/config/commentsConfig\";\nimport WssConnection from \"./wss\";\n\nexport default class CommentEngine {\n uri: string;\n connection: WssConnection | undefined;\n subscribedEventComment: number|undefined;\n\n constructor(wssDomain: string) {\n this.uri = wssDomain;\n this.connection = undefined;\n this.subscribedEventComment = undefined;\n }\n\n async initialize(): Promise<void> {\n this.connection = new WssConnection(this.uri, \"websocket\");\n await this.connection.connect();\n }\n async close(): Promise<void> {\n if (!this.connection) {\n return;\n }\n this.connection.disconnect();\n this.connection = undefined;\n }\n\n subscribeToPodcastCommentEventBus(\n podcastId: number,\n queueName: string,\n callback: (jsonMessage: CommentMessage) => void,\n ): void {\n if (!this.connection) {\n throw new Error(\n \"Websocket engine must be initialized, before it can subscribe to any events\",\n );\n }\n if (podcastId) {\n this.connection.subscribe(\n queueName,\n (message) => {\n const jsonMessage = JSON.parse(message.body);\n callback.call(this, jsonMessage);\n },\n );\n this.subscribedEventComment = podcastId;\n }\n }\n\n unsubscribeToPodcastCommentEventBus(podcastId: number, queueName: string): void {\n if (!this.connection) {\n throw new Error(\n \"Websocket engine must be initialized, before it can unsubscribe to any events\",\n );\n }\n if (!podcastId) {\n throw new Error(\n \"Cannot unsubscribe to comments event bus if no id provided\",\n );\n }\n this.connection.unsubscribe(queueName);\n this.subscribedEventComment = undefined;\n }\n\n isPodcastCommentEventConnected(podcastId: number): boolean {\n return podcastId===this.subscribedEventComment;\n }\n}\n","//Import dayjs extend\nimport dayjs from \"dayjs\";\nimport relativeTime from \"dayjs/plugin/relativeTime\";\ndayjs.extend(relativeTime);\n\nimport { defineStore } from \"pinia\";\nimport cookiesHelper from \"../helper/cookiesHelper\";\nimport WebSocketEngine from \"../websocket/commentWebsocket\";\nimport { CommentPodcast } from \"./class/general/comment\";\nimport { useAuthStore } from \"./AuthStore\";\nimport { useApiStore } from \"./ApiStore\";\nimport stringHelper from \"../helper/stringHelper\";\nimport { CommentMessage, CommentsConfig } from \"./class/config/commentsConfig\";\nimport classicApi from \"../api/classicApi\";\nimport { Podcast } from \"./class/general/podcast\";\nimport { ListClassicReturn } from \"./class/general/listReturn\";\nfunction errorCommentsConfig(): CommentsConfig {\n return {\n inherited: false,\n abuse: {\n authRequired: true,\n },\n commentLikes: {\n authRequired: true,\n dislikeEnabled: false,\n likeEnabled: false,\n },\n comments: {\n authRequired: true,\n commentAllowed: \"NONE\",\n defaultState: \"PENDING\",\n depth: 2,\n },\n podcastLikes: {\n authRequired: true,\n dislikeEnabled: false,\n likeEnabled: false,\n },\n };\n}\n\n\nexport interface CommentUser {\n name: string | null;\n uuid: string | null;\n uuidHash: string | null;\n}\ninterface CommentState {\n commentInitialized: boolean;\n commentWebsocketengine: WebSocketEngine | undefined;\n commentPodcastId?: number;\n commentQueueName?: string;\n commentEventToHandle: Array<CommentMessage>;\n commentUser?: CommentUser;\n commentsForPlayer: { [key: number]: Array<CommentPodcast> };\n podcastsCommentsConfig: { [key: number]: CommentsConfig };\n}\nexport const useCommentStore = defineStore(\"CommentStore\", {\n state: (): CommentState => ({\n commentInitialized: false,\n commentWebsocketengine: undefined,\n commentPodcastId: undefined,\n commentQueueName: undefined,\n commentEventToHandle: [],\n commentsForPlayer: {},\n podcastsCommentsConfig: {},\n }),\n actions: {\n async fetchCommentsForPlayer(podcastId: number) {\n if (!this.commentsForPlayer[podcastId]) {\n this.commentsForPlayer[podcastId] = [];\n const size = 50;\n let first = 0;\n let keepFetching = true;\n while (keepFetching) {\n const data = await classicApi.fetchData<ListClassicReturn<CommentPodcast>>({\n api:2,\n path:\"comment/list\",\n parameters:{\n first: first,\n size: size,\n podcastId: podcastId,\n sort: \"DATE_DESC\",\n hideAnswers: true,\n state: \"VALIDATED\",\n },\n isNotAuth:true\n });\n first += size;\n this.commentsForPlayer[podcastId] = this.commentsForPlayer[\n podcastId\n ].concat(data.result);\n keepFetching =\n data.count !== this.commentsForPlayer[podcastId].length;\n }\n }\n return this.commentsForPlayer[podcastId];\n },\n async digest(message: string) {\n return Array.from(\n new Uint8Array(\n await crypto.subtle.digest(\n \"SHA-1\",\n new TextEncoder().encode(message),\n ),\n ),\n (byte) => byte.toString(16).padStart(2, \"0\"),\n ).join(\"\");\n },\n async initCommentUser() {\n if (this.commentUser) {\n return;\n }\n const authStore = useAuthStore();\n if (authStore.authProfile) {\n this.commentUser = {\n name: authStore.authName,\n uuid: authStore.authProfile.userId,\n };\n return;\n }\n let uuid = cookiesHelper.getCookie(\"comment-octopus-uuid\");\n if (null === uuid) {\n uuid = stringHelper.uuidv4();\n cookiesHelper.setCookie(\"comment-octopus-uuid\", uuid);\n }\n const hash = await this.digest(uuid);\n this.commentUser = {\n name: cookiesHelper.getCookie(\"comment-octopus-name\"),\n uuid: uuid,\n uuidHash: hash,\n };\n if (\"#miniplayer\" === this.commentUser?.name) {\n this.commentUser.name = null;\n }\n },\n setCommentUser(name: string) {\n const authStore = useAuthStore();\n if (authStore.authProfile || !this.commentUser) {\n return;\n }\n cookiesHelper.setCookie(\"comment-octopus-name\", name);\n this.commentUser.name = name;\n },\n async getCommentsConfig(podcast: Podcast): Promise<CommentsConfig> {\n if (this.podcastsCommentsConfig[podcast.podcastId]) {\n return this.podcastsCommentsConfig[podcast.podcastId];\n }\n try {\n this.podcastsCommentsConfig[podcast.podcastId] = await classicApi.fetchData<CommentsConfig>({\n api: 2,\n path:\"config/podcast/\" + podcast.podcastId,\n });\n } catch {\n try {\n this.podcastsCommentsConfig[podcast.podcastId] = await classicApi.fetchData<CommentsConfig>({\n api: 2,\n path: \"config/emission/\" + podcast.emission.emissionId,\n });\n } catch {\n this.podcastsCommentsConfig[podcast.podcastId] = errorCommentsConfig(); \n }\n }\n return this.podcastsCommentsConfig[podcast.podcastId];\n },\n resetPodcastsConfig() {\n this.podcastsCommentsConfig = {};\n },\n updatePodcastsConfig(podcastId: number, config: CommentsConfig) {\n this.podcastsCommentsConfig[podcastId] = config;\n },\n getCanPostCommentAllowed(\n config: CommentsConfig,\n podcast: Podcast,\n ): boolean {\n if (\"NONE\" === config.comments.commentAllowed) {\n return false;\n }\n const rightsLiveOnly =\n \"LIVE_ONLY\" === config.comments.commentAllowed &&\n undefined !== podcast.conferenceId &&\n \"READY_TO_RECORD\" === podcast.processingStatus;\n const rightsLiveRecord =\n \"LIVE_AND_REPLAY\" === config.comments.commentAllowed &&\n undefined !== podcast.conferenceId;\n return (\n \"ALL\" === config.comments.commentAllowed ||\n rightsLiveOnly ||\n rightsLiveRecord\n );\n },\n getCanPostComment(\n config: CommentsConfig | undefined,\n podcast: Podcast | undefined,\n isAuth: boolean,\n ): boolean {\n if (!config || !podcast) {\n return false;\n }\n return (\n this.getCanPostCommentAllowed(config, podcast) &&\n (!config.comments.authRequired ||\n (config.comments.authRequired && isAuth))\n );\n },\n getCanReportAbuse(\n config: CommentsConfig | undefined,\n isAuth: boolean,\n ): boolean {\n if (!config) {\n return false;\n }\n return (\n !config.abuse.authRequired || (config.abuse.authRequired && isAuth)\n );\n },\n\n /*--------------------------------------------------------------------------------------------------------------\n | |\n | Initializing state |\n | |\n --------------------------------------------------------------------------------------------------------------*/\n async initialize() {\n const apiStore = useApiStore();\n const commentUrl = apiStore.commentUrl?? \"https://comments.dev2.saooti.org/\";\n const url = stringHelper.trimChar(commentUrl.replace(\"https://\", \"\"),\"/\");\n const engine = new WebSocketEngine(url);\n await engine.initialize();\n this.commentWebsocketengine = engine;\n this.commentInitialized = true;\n },\n\n /*--------------------------------------------------------------------------------------------------------------\n | |\n | Comments management methods |\n | |\n --------------------------------------------------------------------------------------------------------------*/\n unsubscribeToEvent() {\n if (!this.commentWebsocketengine) {\n return;\n }\n if (\n this.commentPodcastId &&\n this.commentQueueName &&\n this.commentWebsocketengine.isPodcastCommentEventConnected(\n this.commentPodcastId,\n )\n ) {\n this.commentWebsocketengine.unsubscribeToPodcastCommentEventBus(\n this.commentPodcastId,\n this.commentQueueName,\n );\n }\n },\n\n subscribeToEvents() {\n if (!this.commentWebsocketengine) {\n return;\n }\n if (this.commentPodcastId && this.commentQueueName) {\n this.commentWebsocketengine.subscribeToPodcastCommentEventBus(\n this.commentPodcastId,\n this.commentQueueName,\n (message) => {\n this.commentEventToHandleUpdate(message);\n },\n );\n }\n },\n\n async initComments(podcastId: number, organisationId: string) {\n this.unsubscribeToEvent();\n this.commentQueueName =\n \"/topic/comment.\" + organisationId + \".\" + podcastId;\n this.commentPodcastId = podcastId;\n this.subscribeToEvents();\n },\n async unsubscribeComments() {\n this.unsubscribeComments();\n this.commentPodcastId = undefined;\n },\n\n /*--------------------------------------------------------------------------------------------------------------\n | |\n | Managing conference WebSocket Event Received |\n | |\n --------------------------------------------------------------------------------------------------------------*/\n commentEventHandled() {\n this.commentEventToHandle.shift();\n },\n commentEventToHandleUpdate(eventToHandle: {\n comment: CommentPodcast;\n type: string;\n }) {\n if (eventToHandle) {\n this.commentEventToHandle.push(eventToHandle);\n } else {\n this.commentEventToHandle.splice(0, this.commentEventToHandle.length);\n }\n },\n },\n});\n"],"mappings":"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"}
|