@saooti/octopus-sdk 42.1.0 → 42.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AdvancedSearch-BDxs2o7K.mjs +429 -0
- package/dist/AdvancedSearch-BDxs2o7K.mjs.map +1 -0
- package/dist/AdvancedSearch-BHnCcqYo.mjs.map +1 -0
- package/dist/AdvancedSearch-BKZL4Og4.mjs.map +1 -0
- package/dist/AdvancedSearch-CARbyVFc.mjs.map +1 -0
- package/dist/AdvancedSearch-CzWBQyRR.mjs.map +1 -0
- package/dist/AdvancedSearch-DM5MiCRf.mjs.map +1 -0
- package/dist/AdvancedSearch-Wbmubxbf.mjs.map +1 -0
- package/dist/CategoryFilter-BpAevuLH.mjs.map +1 -0
- package/dist/CategoryFilter-BpgBUxCX.mjs.map +1 -0
- package/dist/CategoryFilter-BtvszT_D.mjs +237 -0
- package/dist/CategoryFilter-BtvszT_D.mjs.map +1 -0
- package/dist/CategoryFilter-D-eWUCe_.mjs.map +1 -0
- package/dist/CategoryFilter-D38WmeC3.mjs.map +1 -0
- package/dist/CategoryFilter-DLSD7boE.mjs.map +1 -0
- package/dist/CategoryFilter-DbsUFHSn.mjs.map +1 -0
- package/dist/CategoryList-BirNjSgi.mjs +182 -0
- package/dist/CategoryList-BirNjSgi.mjs.map +1 -0
- package/dist/CategoryList-BrImjKgB.mjs.map +1 -0
- package/dist/CategoryList-BwqfZEqt.mjs.map +1 -0
- package/dist/CategoryList-C-v_Us7L.mjs.map +1 -0
- package/dist/CategoryList-CvNF6D7q.mjs.map +1 -0
- package/dist/CategoryList-DiSaK_Hw.mjs.map +1 -0
- package/dist/CategoryList-DpDoSFYT.mjs.map +1 -0
- package/dist/CategoryPage-BSD7wvZY.mjs.map +1 -0
- package/dist/CategoryPage-C5eTwFuy.mjs.map +1 -0
- package/dist/CategoryPage-Ck7xTJ1X.mjs.map +1 -0
- package/dist/CategoryPage-CmX_-CLt.mjs.map +1 -0
- package/dist/CategoryPage-CnGzdY2g.mjs.map +1 -0
- package/dist/CategoryPage-D5i0OhIn.mjs.map +1 -0
- package/dist/CategoryPage-D7FVaEMo.mjs.map +1 -0
- package/dist/CategoryPage-ymiYVbKH.mjs.map +1 -0
- package/dist/CategoryPage-zRFFW7lm.mjs +57 -0
- package/dist/CategoryPage-zRFFW7lm.mjs.map +1 -0
- package/dist/ChapteringModal-BT3rYLl7.mjs.map +1 -0
- package/dist/ChapteringModal-CZxza2Hl.mjs.map +1 -0
- package/dist/ChapteringModal-DF99rhXl.mjs.map +1 -0
- package/dist/ChapteringModal-DSrRb0wM.mjs +82 -0
- package/dist/ChapteringModal-DSrRb0wM.mjs.map +1 -0
- package/dist/ChapteringModal-DYg4Rsyc.mjs.map +1 -0
- package/dist/ChapteringModal-mbAIsypl.mjs.map +1 -0
- package/dist/ChapteringModal-nWgj6pH1.mjs.map +1 -0
- package/dist/CheckIdentityModal-9R4NGHGc.mjs.map +1 -0
- package/dist/CheckIdentityModal-B1TGBzW-.mjs.map +1 -0
- package/dist/CheckIdentityModal-BeoPGlll.mjs +86 -0
- package/dist/CheckIdentityModal-BeoPGlll.mjs.map +1 -0
- package/dist/CheckIdentityModal-C-LeNKnp.mjs.map +1 -0
- package/dist/CheckIdentityModal-CVh4TWaA.mjs.map +1 -0
- package/dist/CheckIdentityModal-DG5UwIww.mjs.map +1 -0
- package/dist/CheckIdentityModal-DgfR8eN8.mjs.map +1 -0
- package/dist/CheckIdentityModal-Du2Jqur2.mjs.map +1 -0
- package/dist/ClassicAlert-DUQplMvs.mjs +85 -0
- package/dist/ClassicInputText-D2wR2cwa.mjs +371 -0
- package/dist/ClassicInputText-D2wR2cwa.mjs.map +1 -0
- package/dist/ClassicWysiwyg-Bew6KMXn.mjs +230 -0
- package/dist/ClassicWysiwyg-Bew6KMXn.mjs.map +1 -0
- package/dist/ClipboardModal-7VJwXjk7.mjs.map +1 -0
- package/dist/ClipboardModal-BNGanHiD.mjs.map +1 -0
- package/dist/ClipboardModal-BXQoN3az.mjs.map +1 -0
- package/dist/ClipboardModal-BeGqMvLb.mjs.map +1 -0
- package/dist/ClipboardModal-CS-czxOJ.mjs.map +1 -0
- package/dist/ClipboardModal-Dm9Z1sRK.mjs +84 -0
- package/dist/ClipboardModal-Dm9Z1sRK.mjs.map +1 -0
- package/dist/ClipboardModal-PbKpLGXl.mjs.map +1 -0
- package/dist/CommentBasicView-BIiF59xV.mjs +129 -0
- package/dist/CommentInput-BHP1nNsj.mjs.map +1 -0
- package/dist/CommentInput-BJTzH-_a.mjs.map +1 -0
- package/dist/CommentInput-BS_2bqYB.mjs.map +1 -0
- package/dist/CommentInput-Bp_Tu2c1.mjs.map +1 -0
- package/dist/CommentInput-C5ZDqAmV.mjs.map +1 -0
- package/dist/CommentInput-CnLukNZs.mjs.map +1 -0
- package/dist/CommentInput-DRmRcSy-.mjs.map +1 -0
- package/dist/CommentInput-yE5YpwPd.mjs +186 -0
- package/dist/CommentInput-yE5YpwPd.mjs.map +1 -0
- package/dist/CommentItem-B3jrVyCL.mjs.map +1 -0
- package/dist/CommentItem-B95BndID.mjs +232 -0
- package/dist/CommentItem-B95BndID.mjs.map +1 -0
- package/dist/CommentItem-BbVr_2V6.mjs.map +1 -0
- package/dist/CommentItem-CYzCxLtJ.mjs.map +1 -0
- package/dist/CommentItem-Czdd1oCE.mjs.map +1 -0
- package/dist/CommentItem-D39oSH9h.mjs.map +1 -0
- package/dist/CommentItem-DCzZsT7J.mjs.map +1 -0
- package/dist/CommentItem-DPieWrkL.mjs.map +1 -0
- package/dist/CommentItem-DmyqQ7Z6.mjs.map +1 -0
- package/dist/CommentItem-Vvd1NE_W.mjs.map +1 -0
- package/dist/CommentItem-vMMaiTCB.mjs.map +1 -0
- package/dist/CommentList-AZvaBFne.mjs.map +1 -0
- package/dist/CommentList-AwpVcpBT.mjs.map +1 -0
- package/dist/CommentList-BcFHoPtE.mjs.map +1 -0
- package/dist/CommentList-BiDfTOiB.mjs.map +1 -0
- package/dist/CommentList-Bms6vEQA.mjs.map +1 -0
- package/dist/CommentList-CeoSTTP_.mjs.map +1 -0
- package/dist/CommentList-Cn5TPBet.mjs.map +1 -0
- package/dist/CommentList-D0WPAZgF.mjs.map +1 -0
- package/dist/CommentList-Dj_kHO7R.mjs.map +1 -0
- package/dist/CommentList-Iyun_PoW.mjs.map +1 -0
- package/dist/CommentList-l9y2S0t4.mjs +302 -0
- package/dist/CommentList-l9y2S0t4.mjs.map +1 -0
- package/dist/CommentMoreActions-BAroeo8E.mjs.map +1 -0
- package/dist/CommentMoreActions-BLA7K7Wk.mjs.map +1 -0
- package/dist/CommentMoreActions-BR4CRRey.mjs.map +1 -0
- package/dist/CommentMoreActions-CrVm5-lX.mjs.map +1 -0
- package/dist/CommentMoreActions-DL8XqQRk.mjs.map +1 -0
- package/dist/CommentMoreActions-Q4pEU-LO.mjs.map +1 -0
- package/dist/CommentMoreActions-Tqomh5Yr.mjs.map +1 -0
- package/dist/CommentMoreActions-tL6Uqw1X.mjs +286 -0
- package/dist/CommentMoreActions-tL6Uqw1X.mjs.map +1 -0
- package/dist/CommentName-5ZjKhTYa.mjs.map +1 -0
- package/dist/CommentName-BXD3T5EZ.mjs.map +1 -0
- package/dist/CommentName-D6y51EaZ.mjs.map +1 -0
- package/dist/CommentName-Dg4--t-W.mjs +96 -0
- package/dist/CommentName-Dg4--t-W.mjs.map +1 -0
- package/dist/CommentName-Dlnmhpr3.mjs.map +1 -0
- package/dist/CommentName-DxVYb9pg.mjs.map +1 -0
- package/dist/CommentName-RfqW4AQ6.mjs.map +1 -0
- package/dist/CommentName-sDkjL2pg.mjs.map +1 -0
- package/dist/CommentParentInfo-8jbjym0a.mjs +64 -0
- package/dist/CommentParentInfo-8jbjym0a.mjs.map +1 -0
- package/dist/CommentParentInfo-9pG8GbXZ.mjs.map +1 -0
- package/dist/CommentParentInfo-C8OdTBnA.mjs.map +1 -0
- package/dist/CommentParentInfo-CR723vnS.mjs.map +1 -0
- package/dist/CommentParentInfo-CbW6NDS2.mjs.map +1 -0
- package/dist/CommentParentInfo-CmJmczbB.mjs.map +1 -0
- package/dist/CommentParentInfo-DNRID2W9.mjs.map +1 -0
- package/dist/CommentParentInfo-DvhjIGxr.mjs.map +1 -0
- package/dist/CommentParentInfo-Sr7QsGrE.mjs.map +1 -0
- package/dist/CommentPlayer-BAqa0jnq.mjs.map +1 -0
- package/dist/CommentPlayer-CbcrWm1W.mjs.map +1 -0
- package/dist/CommentPlayer-Ckqy3Uy2.mjs.map +1 -0
- package/dist/CommentPlayer-DG-Vm9oa.mjs.map +1 -0
- package/dist/CommentPlayer-DWWiCxmf.mjs.map +1 -0
- package/dist/CommentPlayer-RqOzQeht.mjs.map +1 -0
- package/dist/CommentPlayer-lesewf4s.mjs +86 -0
- package/dist/CommentPlayer-lesewf4s.mjs.map +1 -0
- package/dist/CommentSection-0qvo2Lir.mjs.map +1 -0
- package/dist/CommentSection-B1No9DSa.mjs.map +1 -0
- package/dist/CommentSection-BH0240SR.mjs.map +1 -0
- package/dist/CommentSection-BRUVbqPQ.mjs +141 -0
- package/dist/CommentSection-BRUVbqPQ.mjs.map +1 -0
- package/dist/CommentSection-BW11Kkmw.mjs.map +1 -0
- package/dist/CommentSection-CGRHE7GP.mjs.map +1 -0
- package/dist/CommentSection-CLvjEX6w.mjs.map +1 -0
- package/dist/CommentSection-CRfcutkV.mjs.map +1 -0
- package/dist/CommentSection-ClFb7E4o.mjs.map +1 -0
- package/dist/CommentSection-CsyPvXiH.mjs.map +1 -0
- package/dist/CommentSection-DPMfFBSU.mjs.map +1 -0
- package/dist/CommentStore-B68P59zw.mjs.map +1 -0
- package/dist/CommentStore-BTml7qHF.mjs.map +1 -0
- package/dist/CommentStore-BwTJgPTy.mjs.map +1 -0
- package/dist/CommentStore-C1k1GX5R.mjs.map +1 -0
- package/dist/CommentStore-C9bhViPU.mjs +355 -0
- package/dist/CommentStore-C9bhViPU.mjs.map +1 -0
- package/dist/CommentStore-Ce-VQB6Q.mjs.map +1 -0
- package/dist/CommentStore-WgCnFHHi.mjs.map +1 -0
- package/dist/ContractPreviewModal-B9TjRP6t.mjs.map +1 -0
- package/dist/ContractPreviewModal-BrB9KaNH.mjs.map +1 -0
- package/dist/ContractPreviewModal-DB0Uv_bC.mjs.map +1 -0
- package/dist/ContractPreviewModal-DDJNYv49.mjs +101 -0
- package/dist/ContractPreviewModal-DDJNYv49.mjs.map +1 -0
- package/dist/ContractPreviewModal-Dlnmubps.mjs.map +1 -0
- package/dist/ContractPreviewModal-Duqx-yDT.mjs.map +1 -0
- package/dist/ContractPreviewModal-nMZHO_9q.mjs.map +1 -0
- package/dist/DownloadPodcastButton-BDYJT1At.mjs.map +1 -0
- package/dist/DownloadPodcastButton-C9RI5S7T.mjs.map +1 -0
- package/dist/DownloadPodcastButton-CQFTSstH.mjs.map +1 -0
- package/dist/DownloadPodcastButton-CvO14B8j.mjs.map +1 -0
- package/dist/DownloadPodcastButton-DAH2mwB3.mjs.map +1 -0
- package/dist/DownloadPodcastButton-DXJGjfIn.mjs +53 -0
- package/dist/DownloadPodcastButton-DXJGjfIn.mjs.map +1 -0
- package/dist/DownloadPodcastButton-DunrZi_3.mjs.map +1 -0
- package/dist/EditCommentModal-BHmUXtiy.mjs.map +1 -0
- package/dist/EditCommentModal-Bs7nuqdq.mjs.map +1 -0
- package/dist/EditCommentModal-Czp-qN4t.mjs +162 -0
- package/dist/EditCommentModal-Czp-qN4t.mjs.map +1 -0
- package/dist/EditCommentModal-D90FgueB.mjs.map +1 -0
- package/dist/EditCommentModal-DXo4LVcx.mjs.map +1 -0
- package/dist/EditCommentModal-SelQld7b.mjs.map +1 -0
- package/dist/EditCommentModal-dnPijKAh.mjs.map +1 -0
- package/dist/EditCommentModal-ntxMdZu5.mjs.map +1 -0
- package/dist/EmissionGroupChooser-BWcOXb7T.mjs.map +1 -0
- package/dist/EmissionGroupChooser-CFP7ChoW.mjs.map +1 -0
- package/dist/EmissionGroupChooser-DArypPDT.mjs.map +1 -0
- package/dist/EmissionGroupChooser-Dy1hnlF_.mjs.map +1 -0
- package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs +82 -0
- package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs.map +1 -0
- package/dist/EmissionGroupChooser-ylVvYy2W.mjs.map +1 -0
- package/dist/EmissionGroupChooser-zSxcBqKm.mjs.map +1 -0
- package/dist/EmissionInlineList-BH4EgEIF.mjs.map +1 -0
- package/dist/EmissionInlineList-B_HOW86o.mjs.map +1 -0
- package/dist/EmissionInlineList-Bqvh02uF.mjs +188 -0
- package/dist/EmissionInlineList-Bqvh02uF.mjs.map +1 -0
- package/dist/EmissionInlineList-CBmzKWGR.mjs.map +1 -0
- package/dist/EmissionInlineList-CO8i9b1t.mjs.map +1 -0
- package/dist/EmissionInlineList-Ciye_EZb.mjs.map +1 -0
- package/dist/EmissionInlineList-nNNANPRs.mjs.map +1 -0
- package/dist/EmissionItem-4CsF574w.mjs.map +1 -0
- package/dist/EmissionItem-BhghTyeT.mjs.map +1 -0
- package/dist/EmissionItem-Bv7O9sQY.mjs.map +1 -0
- package/dist/EmissionItem-DC_Gc-Yw.mjs.map +1 -0
- package/dist/EmissionItem-DoBM2Zk2.mjs +183 -0
- package/dist/EmissionItem-DoBM2Zk2.mjs.map +1 -0
- package/dist/EmissionItem-M-lMW-jg.mjs.map +1 -0
- package/dist/EmissionItem-VxhfrUve.mjs.map +1 -0
- package/dist/EmissionItem-aVrOlqEx.mjs.map +1 -0
- package/dist/EmissionItem-imaccCr_.mjs.map +1 -0
- package/dist/EmissionList-BQ1mTIYn.mjs.map +1 -0
- package/dist/EmissionList-BRPN4Bbj.mjs.map +1 -0
- package/dist/EmissionList-BYIBfZWr.mjs.map +1 -0
- package/dist/EmissionList-Bh3ZlvV4.mjs +325 -0
- package/dist/EmissionList-Bh3ZlvV4.mjs.map +1 -0
- package/dist/EmissionList-CCfo5-ne.mjs.map +1 -0
- package/dist/EmissionList-CyEpkgR4.mjs.map +1 -0
- package/dist/EmissionList-DCeUp8TW.mjs.map +1 -0
- package/dist/EmissionList-DJydSpE4.mjs.map +1 -0
- package/dist/EmissionList-WYL-BhnJ.mjs.map +1 -0
- package/dist/EmissionPage-B2oy9fmW.mjs.map +1 -0
- package/dist/EmissionPage-BG6RIWP2.mjs +322 -0
- package/dist/EmissionPage-BG6RIWP2.mjs.map +1 -0
- package/dist/EmissionPage-BTfSMrZf.mjs.map +1 -0
- package/dist/EmissionPage-BpAJ1yOV.mjs.map +1 -0
- package/dist/EmissionPage-BzQpG8xt.mjs.map +1 -0
- package/dist/EmissionPage-Cf529LJJ.mjs.map +1 -0
- package/dist/EmissionPage-CwwNOUrQ.mjs.map +1 -0
- package/dist/EmissionPage-DCdIpmQo.mjs.map +1 -0
- package/dist/EmissionPage-DFnA4TXs.mjs.map +1 -0
- package/dist/EmissionPlayerItem-C3gZhSS3.mjs.map +1 -0
- package/dist/EmissionPlayerItem-CX-QVZ9s.mjs.map +1 -0
- package/dist/EmissionPlayerItem-CmghDKRx.mjs.map +1 -0
- package/dist/EmissionPlayerItem-CoeKMQgN.mjs.map +1 -0
- package/dist/EmissionPlayerItem-CvoVh-dC.mjs +167 -0
- package/dist/EmissionPlayerItem-CvoVh-dC.mjs.map +1 -0
- package/dist/EmissionPlayerItem-D1Ebv-_R.mjs.map +1 -0
- package/dist/EmissionPlayerItem-D6BXdTio.mjs.map +1 -0
- package/dist/EmissionPresentationItem-B2PbYGuW.mjs +78 -0
- package/dist/EmissionPresentationItem-B2PbYGuW.mjs.map +1 -0
- package/dist/EmissionPresentationItem-BQo96is9.mjs.map +1 -0
- package/dist/EmissionPresentationItem-CC_LJc4L.mjs.map +1 -0
- package/dist/EmissionPresentationItem-CQvXZ8NH.mjs.map +1 -0
- package/dist/EmissionPresentationItem-DGNyBwfe.mjs.map +1 -0
- package/dist/EmissionPresentationItem-hWnX_Niv.mjs.map +1 -0
- package/dist/EmissionPresentationItem-qoHKghk0.mjs.map +1 -0
- package/dist/EmissionPresentationList-B2NzHsFl.mjs.map +1 -0
- package/dist/EmissionPresentationList-BQfeuKW5.mjs.map +1 -0
- package/dist/EmissionPresentationList-BXNJsC5t.mjs +125 -0
- package/dist/EmissionPresentationList-BXNJsC5t.mjs.map +1 -0
- package/dist/EmissionPresentationList-CHFD5_a2.mjs.map +1 -0
- package/dist/EmissionPresentationList-D0TKOmTK.mjs.map +1 -0
- package/dist/EmissionPresentationList-Ddvukpya.mjs.map +1 -0
- package/dist/EmissionPresentationList-DnnKYjsb.mjs.map +1 -0
- package/dist/EmissionsPage-4WdKVeuO.mjs.map +1 -0
- package/dist/EmissionsPage-A04HnSMy.mjs.map +1 -0
- package/dist/EmissionsPage-B1arrsZ7.mjs +199 -0
- package/dist/EmissionsPage-B1arrsZ7.mjs.map +1 -0
- package/dist/EmissionsPage-B6SUW-vO.mjs.map +1 -0
- package/dist/EmissionsPage-BvF7n3Yb.mjs.map +1 -0
- package/dist/EmissionsPage-CNFwsWQZ.mjs.map +1 -0
- package/dist/EmissionsPage-CduOfydR.mjs.map +1 -0
- package/dist/EmissionsPage-Cf94lGLe.mjs.map +1 -0
- package/dist/EmissionsPage-O86N2cgU.mjs.map +1 -0
- package/dist/Error403Page-B9KNl0uP.mjs.map +1 -0
- package/dist/Error403Page-BLJFuPG2.mjs.map +1 -0
- package/dist/Error403Page-BmdiuBiS.mjs.map +1 -0
- package/dist/Error403Page-Bpi0DQqg.mjs.map +1 -0
- package/dist/Error403Page-Bv-DWyb6.mjs +69 -0
- package/dist/Error403Page-Bv-DWyb6.mjs.map +1 -0
- package/dist/Error403Page-D4NmqstJ.mjs.map +1 -0
- package/dist/Error403Page-DO2cfKKn.mjs.map +1 -0
- package/dist/ErrorMessage-D2XAzxpC.mjs +44 -0
- package/dist/FooterGarSection-77dYJO_c.mjs +71 -0
- package/dist/FooterGarSection-77dYJO_c.mjs.map +1 -0
- package/dist/FooterGarSection-D4m9HB_o.mjs.map +1 -0
- package/dist/FooterGarSection-DQpsC2u3.mjs.map +1 -0
- package/dist/FooterGarSection-DVMJjVGm.mjs.map +1 -0
- package/dist/FooterGarSection-JoXm35Vy.mjs.map +1 -0
- package/dist/FooterGarSection-SpmxTFrf.mjs.map +1 -0
- package/dist/FooterGarSection-t4vNUGXJ.mjs.map +1 -0
- package/dist/FooterSection-B1hXBiqI.mjs +242 -0
- package/dist/FooterSection-B1hXBiqI.mjs.map +1 -0
- package/dist/FooterSection-BAJcoVwL.mjs.map +1 -0
- package/dist/FooterSection-Bq3lB2TI.mjs.map +1 -0
- package/dist/FooterSection-C5CqAdjV.mjs.map +1 -0
- package/dist/FooterSection-CsQxaQcK.mjs.map +1 -0
- package/dist/FooterSection-DuQdO0l0.mjs.map +1 -0
- package/dist/FooterSection-XGEgsnuF.mjs.map +1 -0
- package/dist/FooterSection-mtZULuem.mjs.map +1 -0
- package/dist/HomeDropdown-87gJP-lN.mjs +110 -0
- package/dist/HomeDropdown-87gJP-lN.mjs.map +1 -0
- package/dist/HomeDropdown-CDNruBUp.mjs.map +1 -0
- package/dist/HomeDropdown-COZXjE97.mjs.map +1 -0
- package/dist/HomeDropdown-CbsZFW4n.mjs.map +1 -0
- package/dist/HomeDropdown-CjYjgO1n.mjs.map +1 -0
- package/dist/HomeDropdown-CxQn-jPC.mjs.map +1 -0
- package/dist/HomeDropdown-DEIBKTqy.mjs.map +1 -0
- package/dist/HomePage-1jBFTx4x.mjs.map +1 -0
- package/dist/HomePage-B5guMcf_.mjs.map +1 -0
- package/dist/HomePage-BapL4kmy.mjs.map +1 -0
- package/dist/HomePage-Brr9jjcQ.mjs +166 -0
- package/dist/HomePage-Brr9jjcQ.mjs.map +1 -0
- package/dist/HomePage-C8nsZZ_c.mjs.map +1 -0
- package/dist/HomePage-CP_NQ_PF.mjs.map +1 -0
- package/dist/HomePage-DnHbPmY9.mjs.map +1 -0
- package/dist/HomePage-Dxhi0hWO.mjs.map +1 -0
- package/dist/HomePage-MPbx0_Rn.mjs.map +1 -0
- package/dist/LikeSection-1P9-7FQ5.mjs +167 -0
- package/dist/LikeSection-1P9-7FQ5.mjs.map +1 -0
- package/dist/LikeSection-BTmkwQD8.mjs.map +1 -0
- package/dist/LikeSection-BUY3_ffV.mjs.map +1 -0
- package/dist/LikeSection-B_WX9gZJ.mjs.map +1 -0
- package/dist/LikeSection-BaUfRdSh.mjs.map +1 -0
- package/dist/LikeSection-CComV07M.mjs.map +1 -0
- package/dist/LikeSection-Cdz0IJU0.mjs.map +1 -0
- package/dist/LikeSection-U8EqRJ-f.mjs.map +1 -0
- package/dist/ListPaginate-8oxuFw7s.mjs.map +1 -0
- package/dist/ListPaginate-Brg8Wr3w.mjs.map +1 -0
- package/dist/ListPaginate-CEgFM1e5.mjs +202 -0
- package/dist/ListPaginate-CEgFM1e5.mjs.map +1 -0
- package/dist/ListPaginate-COITr_yE.mjs.map +1 -0
- package/dist/ListPaginate-DdKoq0e5.mjs.map +1 -0
- package/dist/ListPaginate-FHXkQDy8.mjs.map +1 -0
- package/dist/ListPaginate-zVukPB6N.mjs.map +1 -0
- package/dist/LiveHorizontalList-7JGEvrpb.mjs.map +1 -0
- package/dist/LiveHorizontalList-B1SBPu5Q.mjs.map +1 -0
- package/dist/LiveHorizontalList-B2xa65mW.mjs.map +1 -0
- package/dist/LiveHorizontalList-BUvldEM0.mjs.map +1 -0
- package/dist/LiveHorizontalList-C1hlGGKj.mjs.map +1 -0
- package/dist/LiveHorizontalList-CE9LoLWi.mjs.map +1 -0
- package/dist/LiveHorizontalList-DPNeqKTt.mjs.map +1 -0
- package/dist/LiveHorizontalList-G4GVIv-L.mjs +136 -0
- package/dist/LiveHorizontalList-G4GVIv-L.mjs.map +1 -0
- package/dist/LiveHorizontalList-X8_qayl-.mjs.map +1 -0
- package/dist/LiveList-BbuHhQob.mjs.map +1 -0
- package/dist/LiveList-BiODr6Zp.mjs +324 -0
- package/dist/LiveList-BiODr6Zp.mjs.map +1 -0
- package/dist/LiveList-CPABb0tx.mjs.map +1 -0
- package/dist/LiveList-CR-jqjcU.mjs.map +1 -0
- package/dist/LiveList-DSogJX1N.mjs.map +1 -0
- package/dist/LiveList-DkZ1l2Xt.mjs.map +1 -0
- package/dist/LiveList-Dr_7cqG_.mjs.map +1 -0
- package/dist/LiveList-dc4ARAq2.mjs.map +1 -0
- package/dist/LiveList-oosaj9TJ.mjs.map +1 -0
- package/dist/LivesPage-BHmymrRD.mjs.map +1 -0
- package/dist/LivesPage-BPwVGQdv.mjs.map +1 -0
- package/dist/LivesPage-BfhAMY15.mjs.map +1 -0
- package/dist/LivesPage-CAa4XsJW.mjs.map +1 -0
- package/dist/LivesPage-CHLwG5gj.mjs.map +1 -0
- package/dist/LivesPage-DGA3L9AW.mjs.map +1 -0
- package/dist/LivesPage-DIjoqz-K.mjs.map +1 -0
- package/dist/LivesPage-LF5yGp4X.mjs.map +1 -0
- package/dist/LivesPage-vu6VOIIy.mjs +76 -0
- package/dist/LivesPage-vu6VOIIy.mjs.map +1 -0
- package/dist/MapPage-BAdp_uyS.mjs.map +1 -0
- package/dist/MapPage-BUwYdsZz.mjs.map +1 -0
- package/dist/MapPage-CP0LRWUV.mjs.map +1 -0
- package/dist/MapPage-DmEdjPRe.mjs +303 -0
- package/dist/MapPage-DmEdjPRe.mjs.map +1 -0
- package/dist/MapPage-Dr-Lo2xc.mjs.map +1 -0
- package/dist/MapPage-DsNW6bfn.mjs.map +1 -0
- package/dist/MapPage-acIILN8p.mjs.map +1 -0
- package/dist/MobileMenu-B8KrEHS7.mjs.map +1 -0
- package/dist/MobileMenu-BBX4HKwH.mjs.map +1 -0
- package/dist/MobileMenu-Bz6UhLWC.mjs.map +1 -0
- package/dist/MobileMenu-C3Ti4eGr.mjs.map +1 -0
- package/dist/MobileMenu-C4rmAeeO.mjs.map +1 -0
- package/dist/MobileMenu-D_oFeqsX.mjs.map +1 -0
- package/dist/MobileMenu-xNe7tNdx.mjs +187 -0
- package/dist/MobileMenu-xNe7tNdx.mjs.map +1 -0
- package/dist/NewsletterModal-C0yXR-kQ.mjs.map +1 -0
- package/dist/NewsletterModal-Cdyqy09L.mjs.map +1 -0
- package/dist/NewsletterModal-D586dru6.mjs.map +1 -0
- package/dist/NewsletterModal-DNrt2N6S.mjs.map +1 -0
- package/dist/NewsletterModal-LqgD6CbF.mjs +82 -0
- package/dist/NewsletterModal-LqgD6CbF.mjs.map +1 -0
- package/dist/NewsletterModal-nsrnL-nQ.mjs.map +1 -0
- package/dist/NewsletterModal-uv5C55km.mjs.map +1 -0
- package/dist/OrganisationChooser-BiNMu3dn.mjs +190 -0
- package/dist/OrganisationChooser-BiNMu3dn.mjs.map +1 -0
- package/dist/OrganisationChooser-CTkEs5Lk.mjs.map +1 -0
- package/dist/OrganisationChooser-D2PVq36_.mjs.map +1 -0
- package/dist/OrganisationChooser-D4pgbdT9.mjs.map +1 -0
- package/dist/OrganisationChooser-Df1zfiwF.mjs.map +1 -0
- package/dist/OrganisationChooser-DsfCK19O.mjs.map +1 -0
- package/dist/OrganisationChooser-RBwmBNhI.mjs.map +1 -0
- package/dist/OrganisationChooserLight-BJwIMZ6G.mjs +84 -0
- package/dist/OrganisationChooserLight-BJwIMZ6G.mjs.map +1 -0
- package/dist/OrganisationChooserLight-BsmG2mng.mjs.map +1 -0
- package/dist/OrganisationChooserLight-C1VGVe3p.mjs.map +1 -0
- package/dist/OrganisationChooserLight-CP3_D7XA.mjs.map +1 -0
- package/dist/OrganisationChooserLight-DI8OeLkm.mjs.map +1 -0
- package/dist/OrganisationChooserLight-Dpi7pho1.mjs.map +1 -0
- package/dist/OrganisationChooserLight-DyisKiU3.mjs.map +1 -0
- package/dist/PageNotFound-5He9oK3T.mjs.map +1 -0
- package/dist/PageNotFound-BILSb0NS.mjs.map +1 -0
- package/dist/PageNotFound-C-HodkyM.mjs.map +1 -0
- package/dist/PageNotFound-CJmz7PmV.mjs.map +1 -0
- package/dist/PageNotFound-ChQf6Ngj.mjs +58 -0
- package/dist/PageNotFound-ChQf6Ngj.mjs.map +1 -0
- package/dist/PageNotFound-D8OzzGBQ.mjs.map +1 -0
- package/dist/PageNotFound-Dl4pr9W6.mjs.map +1 -0
- package/dist/ParticipantInlineList-BEnBWVWR.mjs.map +1 -0
- package/dist/ParticipantInlineList-C0nBiyWg.mjs.map +1 -0
- package/dist/ParticipantInlineList-CRBcuszy.mjs.map +1 -0
- package/dist/ParticipantInlineList-CcCfd9rJ.mjs +117 -0
- package/dist/ParticipantInlineList-CcCfd9rJ.mjs.map +1 -0
- package/dist/ParticipantInlineList-Cnqgz2lu.mjs.map +1 -0
- package/dist/ParticipantInlineList-CrEivwtQ.mjs.map +1 -0
- package/dist/ParticipantInlineList-DR2ZAj4I.mjs.map +1 -0
- package/dist/ParticipantInlineList-NKPnosX0.mjs.map +1 -0
- package/dist/ParticipantInlineList-tRiCRhZT.mjs.map +1 -0
- package/dist/ParticipantItem-BUux9Sod.mjs.map +1 -0
- package/dist/ParticipantItem-Bo3lOYet.mjs.map +1 -0
- package/dist/ParticipantItem-CQkg9uA2.mjs.map +1 -0
- package/dist/ParticipantItem-CYD8mFKj.mjs.map +1 -0
- package/dist/ParticipantItem-Ch4_98y_.mjs +138 -0
- package/dist/ParticipantItem-Ch4_98y_.mjs.map +1 -0
- package/dist/ParticipantItem-Duf1Dqiy.mjs.map +1 -0
- package/dist/ParticipantItem-Py7gMJEO.mjs.map +1 -0
- package/dist/ParticipantItem-cWDpHBmw.mjs.map +1 -0
- package/dist/ParticipantItem-sU3HvxsO.mjs.map +1 -0
- package/dist/ParticipantPage-BjbzvT79.mjs.map +1 -0
- package/dist/ParticipantPage-CFOmsr7J.mjs.map +1 -0
- package/dist/ParticipantPage-CJF_q763.mjs.map +1 -0
- package/dist/ParticipantPage-CayKwqJR.mjs.map +1 -0
- package/dist/ParticipantPage-Cc6c48Re.mjs.map +1 -0
- package/dist/ParticipantPage-D-47wU1r.mjs.map +1 -0
- package/dist/ParticipantPage-DhEts9Fb.mjs.map +1 -0
- package/dist/ParticipantPage-DkQssmwq.mjs.map +1 -0
- package/dist/ParticipantPage-DtAxvp2W.mjs +203 -0
- package/dist/ParticipantPage-DtAxvp2W.mjs.map +1 -0
- package/dist/ParticipantsPage-BQWxk0kn.mjs.map +1 -0
- package/dist/ParticipantsPage-ByDJNNQP.mjs.map +1 -0
- package/dist/ParticipantsPage-BzdpZCDO.mjs +262 -0
- package/dist/ParticipantsPage-BzdpZCDO.mjs.map +1 -0
- package/dist/ParticipantsPage-C0zCaBAN.mjs.map +1 -0
- package/dist/ParticipantsPage-CMlr61eA.mjs.map +1 -0
- package/dist/ParticipantsPage-COkwBD_g.mjs.map +1 -0
- package/dist/ParticipantsPage-CxOpIszl.mjs.map +1 -0
- package/dist/ParticipantsPage-DbCJ_xh8.mjs.map +1 -0
- package/dist/ParticipantsPage-lPPbUyo7.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-7vjldHzL.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-BKSUU6ln.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-BKaI6E9o.mjs +84 -0
- package/dist/PlayerAnonymousModal-BKaI6E9o.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-BtghKP8M.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-Bz_vt6vZ.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-CnKXq6ez.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-ZqyARAv3.mjs.map +1 -0
- package/dist/PlayerCompact-B-WRNyqn.mjs +209 -0
- package/dist/PlayerCompact-B-WRNyqn.mjs.map +1 -0
- package/dist/PlayerCompact-B-x6J7cl.mjs.map +1 -0
- package/dist/PlayerCompact-BzcQcgqX.mjs.map +1 -0
- package/dist/PlayerCompact-CcRdWagH.mjs.map +1 -0
- package/dist/PlayerCompact-D2p0ZIHQ.mjs.map +1 -0
- package/dist/PlayerCompact-aIbQLF3h.mjs.map +1 -0
- package/dist/PlayerCompact-gWt2fJaQ.mjs.map +1 -0
- package/dist/PlayerComponent-BzlYi_Ow.mjs.map +1 -0
- package/dist/PlayerComponent-CBZxYTU1.mjs.map +1 -0
- package/dist/PlayerComponent-CUHTRJic.mjs +929 -0
- package/dist/PlayerComponent-CUHTRJic.mjs.map +1 -0
- package/dist/PlayerComponent-D2h1w9z5.mjs.map +1 -0
- package/dist/PlayerComponent-D4U1OmjB.mjs.map +1 -0
- package/dist/PlayerComponent-Dnqs6S8R.mjs.map +1 -0
- package/dist/PlayerComponent-ZTo5F4BH.mjs.map +1 -0
- package/dist/PlayerLarge-2ekd361u.mjs.map +1 -0
- package/dist/PlayerLarge-BisiuTbM.mjs.map +1 -0
- package/dist/PlayerLarge-Cujee7Yx.mjs.map +1 -0
- package/dist/PlayerLarge-DUX0TfTs.mjs.map +1 -0
- package/dist/PlayerLarge-DmbtYNNk.mjs.map +1 -0
- package/dist/PlayerLarge-Kt-pV6N_.mjs +190 -0
- package/dist/PlayerLarge-Kt-pV6N_.mjs.map +1 -0
- package/dist/PlayerLarge-qjnmbVOv.mjs.map +1 -0
- package/dist/PlayerPlayButton-BPsfZCY3.mjs.map +1 -0
- package/dist/PlayerPlayButton-CAElMmMV.mjs +400 -0
- package/dist/PlayerPlayButton-CAElMmMV.mjs.map +1 -0
- package/dist/PlayerPlayButton-CCjszcz0.mjs.map +1 -0
- package/dist/PlayerPlayButton-Ch13_VDS.mjs.map +1 -0
- package/dist/PlayerPlayButton-Cyrw_cga.mjs.map +1 -0
- package/dist/PlayerPlayButton-XWMj19eH.mjs.map +1 -0
- package/dist/PlayerPlayButton-pCY5tl9N.mjs.map +1 -0
- package/dist/PlayerProgressBar-BAOBWS7y.mjs.map +1 -0
- package/dist/PlayerProgressBar-Bx_i6wnH.mjs.map +1 -0
- package/dist/PlayerProgressBar-CwMFzYDi.mjs.map +1 -0
- package/dist/PlayerProgressBar-D-cNkJmu.mjs.map +1 -0
- package/dist/PlayerProgressBar-DWAyhBWx.mjs +86 -0
- package/dist/PlayerProgressBar-DWAyhBWx.mjs.map +1 -0
- package/dist/PlayerProgressBar-Drigrm0o.mjs.map +1 -0
- package/dist/PlayerProgressBar-MfOUpxGI.mjs.map +1 -0
- package/dist/PlayerStore-7LlyIvl0.mjs.map +1 -0
- package/dist/PlayerStore-7vhL8Npe.mjs +230 -0
- package/dist/PlayerStore-7vhL8Npe.mjs.map +1 -0
- package/dist/PlayerStore-B6kwXQZ8.mjs.map +1 -0
- package/dist/PlayerStore-BvkLLLst.mjs.map +1 -0
- package/dist/PlayerStore-C1tm0Oar.mjs.map +1 -0
- package/dist/PlayerStore-DZiDRLQN.mjs.map +1 -0
- package/dist/PlayerStore-kuZWcb-U.mjs.map +1 -0
- package/dist/PlayerVideo-7nnfCTlR.mjs.map +1 -0
- package/dist/PlayerVideo-BofTa3uM.mjs.map +1 -0
- package/dist/PlayerVideo-BtkR6jg2.mjs.map +1 -0
- package/dist/PlayerVideo-CG_vQWU0.mjs.map +1 -0
- package/dist/PlayerVideo-CJ9eefTe.mjs.map +1 -0
- package/dist/PlayerVideo-Dq7OHOig.mjs +72 -0
- package/dist/PlayerVideo-Dq7OHOig.mjs.map +1 -0
- package/dist/PlayerVideo-DqT3hB5y.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-BFLGMVo-.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-CAmI0Em3.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-Cy0L4YOd.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-DnNkrWIT.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-Dt73T6Qs.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-Dud6Y4wc.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-pNFWNrON.mjs +102 -0
- package/dist/PlayerVideoDigiteka-pNFWNrON.mjs.map +1 -0
- package/dist/PlayerVideoHls-BDDiwxGb.mjs.map +1 -0
- package/dist/PlayerVideoHls-CE2SIkEn.mjs +232 -0
- package/dist/PlayerVideoHls-CE2SIkEn.mjs.map +1 -0
- package/dist/PlayerVideoHls-CoK72Ry1.mjs.map +1 -0
- package/dist/PlayerVideoHls-D-nrZlVs.mjs.map +1 -0
- package/dist/PlayerVideoHls-cotysRp5.mjs.map +1 -0
- package/dist/PlayerVideoHls-jOa02CyD.mjs.map +1 -0
- package/dist/PlayerVideoHls-k_3vIV-3.mjs.map +1 -0
- package/dist/PlaylistPage-BZx9ojty.mjs.map +1 -0
- package/dist/PlaylistPage-CBWEAkDm.mjs.map +1 -0
- package/dist/PlaylistPage-Cb5ukqXZ.mjs +228 -0
- package/dist/PlaylistPage-Cb5ukqXZ.mjs.map +1 -0
- package/dist/PlaylistPage-Cv15l4gs.mjs.map +1 -0
- package/dist/PlaylistPage-D6OVQKg7.mjs.map +1 -0
- package/dist/PlaylistPage-D__PNCOf.mjs.map +1 -0
- package/dist/PlaylistPage-Jv5rPWTt.mjs.map +1 -0
- package/dist/PlaylistPage-Le2dLhgP.mjs.map +1 -0
- package/dist/PlaylistPage-Tbq77bN4.mjs.map +1 -0
- package/dist/PlaylistsPage-BSD4BZop.mjs.map +1 -0
- package/dist/PlaylistsPage-C_aZ8Lzc.mjs.map +1 -0
- package/dist/PlaylistsPage-D8YgTvxe.mjs.map +1 -0
- package/dist/PlaylistsPage-DAVADzhL.mjs +395 -0
- package/dist/PlaylistsPage-DAVADzhL.mjs.map +1 -0
- package/dist/PlaylistsPage-DkkPMbPD.mjs.map +1 -0
- package/dist/PlaylistsPage-MqIyXNlI.mjs.map +1 -0
- package/dist/PlaylistsPage-W-eroSMe.mjs.map +1 -0
- package/dist/PodcastFilterList-CPtCzU9P.mjs.map +1 -0
- package/dist/PodcastFilterList-CmqrA2oC.mjs +254 -0
- package/dist/PodcastFilterList-CmqrA2oC.mjs.map +1 -0
- package/dist/PodcastFilterList-Co_yncww.mjs.map +1 -0
- package/dist/PodcastFilterList-CqqSn_UR.mjs.map +1 -0
- package/dist/PodcastFilterList-CsN5tLJ5.mjs.map +1 -0
- package/dist/PodcastFilterList-DluBCeUz.mjs.map +1 -0
- package/dist/PodcastFilterList-DooOZgn6.mjs.map +1 -0
- package/dist/PodcastFilterList-Dt-zeKoY.mjs.map +1 -0
- package/dist/PodcastFilterList-ScEWo73F.mjs.map +1 -0
- package/dist/PodcastImage-BeXlZu-M.mjs.map +1 -0
- package/dist/PodcastImage-C0y1-_Ef.mjs.map +1 -0
- package/dist/PodcastImage-C21I_lnU.mjs.map +1 -0
- package/dist/PodcastImage-CWKY72t1.mjs.map +1 -0
- package/dist/PodcastImage-CbOp5HBb.mjs.map +1 -0
- package/dist/PodcastImage-DamlmvBn.mjs.map +1 -0
- package/dist/PodcastImage-DsU_qbcI.mjs.map +1 -0
- package/dist/PodcastImage-FhC5F4MR.mjs +174 -0
- package/dist/PodcastImage-FhC5F4MR.mjs.map +1 -0
- package/dist/PodcastImage-fBx9FmaM.mjs.map +1 -0
- package/dist/PodcastInlineList-4uf55RGp.mjs.map +1 -0
- package/dist/PodcastInlineList-BFe-4rfk.mjs.map +1 -0
- package/dist/PodcastInlineList-BP-eXViR.mjs.map +1 -0
- package/dist/PodcastInlineList-CDumc8n6.mjs +138 -0
- package/dist/PodcastInlineList-CDumc8n6.mjs.map +1 -0
- package/dist/PodcastInlineList-CMLSSgCl.mjs.map +1 -0
- package/dist/PodcastInlineList-CoLPUU1O.mjs.map +1 -0
- package/dist/PodcastInlineList-DVEOw_jZ.mjs.map +1 -0
- package/dist/PodcastInlineList-NuchUq3F.mjs.map +1 -0
- package/dist/PodcastInlineList-TrVj1WsC.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-Bif2XHIx.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs +233 -0
- package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-CiXIYnv7.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-CpLRagzE.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-D9_3zHeM.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-DJSNNFOh.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-PnoLyihJ.mjs.map +1 -0
- package/dist/PodcastIsPlaying-640MMTTV.mjs.map +1 -0
- package/dist/PodcastIsPlaying-BfKDPivV.mjs.map +1 -0
- package/dist/PodcastIsPlaying-CjnQmJ0x.mjs.map +1 -0
- package/dist/PodcastIsPlaying-DMXKbEjS.mjs.map +1 -0
- package/dist/PodcastIsPlaying-DpUjmLlW.mjs.map +1 -0
- package/dist/PodcastIsPlaying-DqnPEYSJ.mjs +30 -0
- package/dist/PodcastIsPlaying-DqnPEYSJ.mjs.map +1 -0
- package/dist/PodcastIsPlaying-j9a5pcJu.mjs.map +1 -0
- package/dist/PodcastItem-B2omNjKA.mjs.map +1 -0
- package/dist/PodcastItem-BTKSsuZY.mjs.map +1 -0
- package/dist/PodcastItem-BUe2ZVg7.mjs.map +1 -0
- package/dist/PodcastItem-DlzucX-c.mjs.map +1 -0
- package/dist/PodcastItem-DqcitfgD.mjs.map +1 -0
- package/dist/PodcastItem-_eKhUVGk.mjs.map +1 -0
- package/dist/PodcastItem-a9u75Wpq.mjs.map +1 -0
- package/dist/PodcastItem-cssDzcpa.mjs.map +1 -0
- package/dist/PodcastItem-rF33x3wp.mjs +287 -0
- package/dist/PodcastItem-rF33x3wp.mjs.map +1 -0
- package/dist/PodcastList-3w_q0Qic.mjs.map +1 -0
- package/dist/PodcastList-5vsIa70L.mjs.map +1 -0
- package/dist/PodcastList-ATGmVU1-.mjs.map +1 -0
- package/dist/PodcastList-B20GtO2V.mjs.map +1 -0
- package/dist/PodcastList-BSKlfx8q.mjs.map +1 -0
- package/dist/PodcastList-BV902l6U.mjs.map +1 -0
- package/dist/PodcastList-BWYRh4OU.mjs.map +1 -0
- package/dist/PodcastList-BewxderG.mjs +330 -0
- package/dist/PodcastList-BewxderG.mjs.map +1 -0
- package/dist/PodcastList-CHOZ5sWV.mjs.map +1 -0
- package/dist/PodcastList-CMATMgPs.mjs.map +1 -0
- package/dist/PodcastList-CzAh_ZPT.mjs.map +1 -0
- package/dist/PodcastList-DYLAwHbt.mjs +182 -0
- package/dist/PodcastList-DYLAwHbt.mjs.map +1 -0
- package/dist/PodcastList-Dxg8A4ui.mjs.map +1 -0
- package/dist/PodcastList-NQ0QF4lo.mjs.map +1 -0
- package/dist/PodcastList-TLe8ef1p.mjs.map +1 -0
- package/dist/PodcastList-aeKPA2Pa.mjs.map +1 -0
- package/dist/PodcastList-w8j9w3A3.mjs.map +1 -0
- package/dist/PodcastList-zLoXrLjM.mjs.map +1 -0
- package/dist/PodcastPage-7TvhRhNY.mjs.map +1 -0
- package/dist/PodcastPage-9LBDV577.mjs.map +1 -0
- package/dist/PodcastPage-ASnAv0Hy.mjs.map +1 -0
- package/dist/PodcastPage-B8AKWW1N.mjs.map +1 -0
- package/dist/PodcastPage-BHnY1AyE.mjs.map +1 -0
- package/dist/PodcastPage-BOuG5LyA.mjs.map +1 -0
- package/dist/PodcastPage-BvRTyXh8.mjs.map +1 -0
- package/dist/PodcastPage-BwzigA-q.mjs.map +1 -0
- package/dist/PodcastPage-CQvLnC1G.mjs.map +1 -0
- package/dist/PodcastPage-C_8OMBPC.mjs.map +1 -0
- package/dist/PodcastPage-C_Eg4Zbc.mjs.map +1 -0
- package/dist/PodcastPage-CbwfzcE9.mjs.map +1 -0
- package/dist/PodcastPage-CgjKlSvp.mjs.map +1 -0
- package/dist/PodcastPage-CrF52JIi.mjs.map +1 -0
- package/dist/PodcastPage-Culwyrcp.mjs.map +1 -0
- package/dist/PodcastPage-D8kQEHyz.mjs.map +1 -0
- package/dist/PodcastPage-DPXR-5-z.mjs.map +1 -0
- package/dist/PodcastPage-DStxOLRd.mjs.map +1 -0
- package/dist/PodcastPage-DcvotAob.mjs.map +1 -0
- package/dist/PodcastPage-DlZWXScN.mjs.map +1 -0
- package/dist/PodcastPage-DoUwareI.mjs.map +1 -0
- package/dist/PodcastPage-NMZSFjQm.mjs +756 -0
- package/dist/PodcastPage-NMZSFjQm.mjs.map +1 -0
- package/dist/PodcastPage-V1XY5ICb.mjs.map +1 -0
- package/dist/PodcastPage-fC-hXh-c.mjs.map +1 -0
- package/dist/PodcastPage-k8D3U82P.mjs.map +1 -0
- package/dist/PodcastPage-wTylVERN.mjs.map +1 -0
- package/dist/PodcastPage-xjk1WBAv.mjs.map +1 -0
- package/dist/PodcastPlayBar-BEyKbC22.mjs.map +1 -0
- package/dist/PodcastPlayBar-Cggx8A-d.mjs.map +1 -0
- package/dist/PodcastPlayBar-DHIXjuJO.mjs.map +1 -0
- package/dist/PodcastPlayBar-D_b7qme_.mjs +83 -0
- package/dist/PodcastPlayBar-D_b7qme_.mjs.map +1 -0
- package/dist/PodcastPlayBar-N3TwfXUo.mjs.map +1 -0
- package/dist/PodcastPlayBar-_e0LCcGd.mjs.map +1 -0
- package/dist/PodcastPlayBar-lojf3mqg.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-BoFyO-5v.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs +72 -0
- package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-Ca7KCiwF.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-Cot0Hw7f.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-CuRUgSxj.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-D2RrMC3u.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-KJRkgfDO.mjs.map +1 -0
- package/dist/PodcastPlayButton-BE6hVdpb.mjs.map +1 -0
- package/dist/PodcastPlayButton-BL06-DcD.mjs.map +1 -0
- package/dist/PodcastPlayButton-CIlav88-.mjs.map +1 -0
- package/dist/PodcastPlayButton-CfbXWla-.mjs.map +1 -0
- package/dist/PodcastPlayButton-CkUupm2O.mjs.map +1 -0
- package/dist/PodcastPlayButton-Cwh7588y.mjs.map +1 -0
- package/dist/PodcastPlayButton-Dgv5W72_.mjs +236 -0
- package/dist/PodcastPlayButton-Dgv5W72_.mjs.map +1 -0
- package/dist/PodcastPlayButton-DwKPWtV0.mjs.map +1 -0
- package/dist/PodcastPlayButton-vspf9u4U.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-B3cji_kZ.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BdfZY6Bi.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BxUy7Yg7.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-C3khc2NN.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-CQF7SZ6j.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-D8VLeO5u.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-D9PS9Z2X.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-WISkRxKn.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs +115 -0
- package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs.map +1 -0
- package/dist/PodcastPresentationList-6ZP8AnoX.mjs.map +1 -0
- package/dist/PodcastPresentationList-AP-ZURmT.mjs.map +1 -0
- package/dist/PodcastPresentationList-BC6cS2jK.mjs.map +1 -0
- package/dist/PodcastPresentationList-BfakxuQt.mjs.map +1 -0
- package/dist/PodcastPresentationList-CfsRs5zo.mjs.map +1 -0
- package/dist/PodcastPresentationList-Crr-1ywF.mjs.map +1 -0
- package/dist/PodcastPresentationList-Cvn11sIu.mjs.map +1 -0
- package/dist/PodcastPresentationList-DxUwH3dU.mjs +200 -0
- package/dist/PodcastPresentationList-DxUwH3dU.mjs.map +1 -0
- package/dist/PodcastPresentationList-V-rJhaqG.mjs.map +1 -0
- package/dist/PodcastProgressBar-BBwzkXWn.mjs.map +1 -0
- package/dist/PodcastProgressBar-C2Kbdsds.mjs.map +1 -0
- package/dist/PodcastProgressBar-CxWDWvG2.mjs.map +1 -0
- package/dist/PodcastProgressBar-DY-PA2H4.mjs.map +1 -0
- package/dist/PodcastProgressBar-D_togvfJ.mjs +98 -0
- package/dist/PodcastProgressBar-D_togvfJ.mjs.map +1 -0
- package/dist/PodcastProgressBar-lNHC70cW.mjs.map +1 -0
- package/dist/PodcastProgressBar-n2ASk6Jr.mjs.map +1 -0
- package/dist/PodcastRawTranscript-BXaXSOG0.mjs.map +1 -0
- package/dist/PodcastRawTranscript-Bp-DCioJ.mjs.map +1 -0
- package/dist/PodcastRawTranscript-CHnE4Q9g.mjs +184 -0
- package/dist/PodcastRawTranscript-CHnE4Q9g.mjs.map +1 -0
- package/dist/PodcastRawTranscript-Cl5YD7_I.mjs.map +1 -0
- package/dist/PodcastRawTranscript-D2eMeI5k.mjs.map +1 -0
- package/dist/PodcastRawTranscript-DyHxxFrC.mjs.map +1 -0
- package/dist/PodcastRawTranscript-yTs0EUKz.mjs.map +1 -0
- package/dist/PodcastRubriqueList-BSqs8IWw.mjs.map +1 -0
- package/dist/PodcastRubriqueList-BoQ3r-hl.mjs.map +1 -0
- package/dist/PodcastRubriqueList-D6UwV3RM.mjs.map +1 -0
- package/dist/PodcastRubriqueList-DHWcZB1k.mjs.map +1 -0
- package/dist/PodcastRubriqueList-DQhU9j2T.mjs.map +1 -0
- package/dist/PodcastRubriqueList-DqHgAzXW.mjs +83 -0
- package/dist/PodcastRubriqueList-DqHgAzXW.mjs.map +1 -0
- package/dist/PodcastRubriqueList-MKouh9FT.mjs.map +1 -0
- package/dist/PodcastSwiperList-BIlusV0y.mjs.map +1 -0
- package/dist/PodcastSwiperList-BcOEmb2L.mjs.map +1 -0
- package/dist/PodcastSwiperList-Bcl4Sr87.mjs.map +1 -0
- package/dist/PodcastSwiperList-CHiE_5Np.mjs.map +1 -0
- package/dist/PodcastSwiperList-CW7KHrXE.mjs.map +1 -0
- package/dist/PodcastSwiperList-CZ0_rjSj.mjs.map +1 -0
- package/dist/PodcastSwiperList-DlOf7qj-.mjs.map +1 -0
- package/dist/PodcastSwiperList-DwAm99HI.mjs.map +1 -0
- package/dist/PodcastSwiperList-PoinXUn2.mjs +219 -0
- package/dist/PodcastSwiperList-PoinXUn2.mjs.map +1 -0
- package/dist/PodcastmakerHeader-3PeM3wyF.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BC7yZTRo.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BVeOsj4_.mjs.map +1 -0
- package/dist/PodcastmakerHeader-C-vkFOcc.mjs.map +1 -0
- package/dist/PodcastmakerHeader-CLPAECC5.mjs.map +1 -0
- package/dist/PodcastmakerHeader-CTOmo93E.mjs +58 -0
- package/dist/PodcastmakerHeader-CTOmo93E.mjs.map +1 -0
- package/dist/PodcastmakerHeader-DOD21_py.mjs.map +1 -0
- package/dist/PodcastsPage-234XpWuj.mjs.map +1 -0
- package/dist/PodcastsPage-B1JUH1co.mjs +217 -0
- package/dist/PodcastsPage-B1JUH1co.mjs.map +1 -0
- package/dist/PodcastsPage-BNc0uI4a.mjs.map +1 -0
- package/dist/PodcastsPage-C601uah1.mjs.map +1 -0
- package/dist/PodcastsPage-CJHRB5IS.mjs.map +1 -0
- package/dist/PodcastsPage-Cp5g1lhW.mjs.map +1 -0
- package/dist/PodcastsPage-D7jjbbx6.mjs.map +1 -0
- package/dist/PodcastsPage-T8kmqhD6.mjs.map +1 -0
- package/dist/PodcastsPage-xZGU98Tj.mjs.map +1 -0
- package/dist/ProductorSearch-CTMYAxKp.mjs.map +1 -0
- package/dist/ProductorSearch-CeZ-1cW7.mjs.map +1 -0
- package/dist/ProductorSearch-D4fWcKog.mjs.map +1 -0
- package/dist/ProductorSearch-DCH0mawe.mjs.map +1 -0
- package/dist/ProductorSearch-DEQwq8Qp.mjs.map +1 -0
- package/dist/ProductorSearch-XQ1jGYQw.mjs +161 -0
- package/dist/ProductorSearch-XQ1jGYQw.mjs.map +1 -0
- package/dist/ProductorSearch-xyzEQY1e.mjs.map +1 -0
- package/dist/ProgressBar-6lP5chZK.mjs.map +1 -0
- package/dist/ProgressBar-Bt-AMFne.mjs.map +1 -0
- package/dist/ProgressBar-ButRLZKn.mjs.map +1 -0
- package/dist/ProgressBar-CyddCXNJ.mjs +158 -0
- package/dist/ProgressBar-CyddCXNJ.mjs.map +1 -0
- package/dist/ProgressBar-DSMOh1wT.mjs.map +1 -0
- package/dist/ProgressBar-NFkInTLb.mjs.map +1 -0
- package/dist/ProgressBar-Z51T1XCf.mjs.map +1 -0
- package/dist/QrCode-20OgUzN2.mjs.map +1 -0
- package/dist/QrCode-6ZkgX9Ta.mjs +177 -0
- package/dist/QrCode-6ZkgX9Ta.mjs.map +1 -0
- package/dist/QrCode-Bc2uQc55.mjs.map +1 -0
- package/dist/QrCode-CeV2SpH9.mjs.map +1 -0
- package/dist/QrCode-Do-uF9l1.mjs.map +1 -0
- package/dist/QrCode-LWqUFrdO.mjs.map +1 -0
- package/dist/QrCode-pbaY5gW1.mjs.map +1 -0
- package/dist/QrCodeModal-BHfET22K.mjs.map +1 -0
- package/dist/QrCodeModal-BNVatZWE.mjs +64 -0
- package/dist/QrCodeModal-BNVatZWE.mjs.map +1 -0
- package/dist/QrCodeModal-DFfNl0fW.mjs.map +1 -0
- package/dist/QrCodeModal-DemrNflK.mjs.map +1 -0
- package/dist/QrCodeModal-Do265wVe.mjs.map +1 -0
- package/dist/QrCodeModal-NiYU4p1I.mjs.map +1 -0
- package/dist/QrCodeModal-wRXhUjGf.mjs.map +1 -0
- package/dist/RadioCurrently-BFAEfLFX.mjs.map +1 -0
- package/dist/RadioCurrently-Bf-Pg-J_.mjs +112 -0
- package/dist/RadioCurrently-Bf-Pg-J_.mjs.map +1 -0
- package/dist/RadioCurrently-CXjYjO3m.mjs.map +1 -0
- package/dist/RadioCurrently-CZiABA2W.mjs.map +1 -0
- package/dist/RadioCurrently-CoOjRUyE.mjs.map +1 -0
- package/dist/RadioCurrently-JKL0a_SK.mjs.map +1 -0
- package/dist/RadioCurrently-hx7bw94i.mjs.map +1 -0
- package/dist/RadioHistory-BF-qlL2M.mjs.map +1 -0
- package/dist/RadioHistory-Bf2QIRr6.mjs.map +1 -0
- package/dist/RadioHistory-C7tOpvUk.mjs +139 -0
- package/dist/RadioHistory-C7tOpvUk.mjs.map +1 -0
- package/dist/RadioHistory-CQCcGdcs.mjs.map +1 -0
- package/dist/RadioHistory-D-xw6ZDO.mjs.map +1 -0
- package/dist/RadioHistory-D6niGKEI.mjs.map +1 -0
- package/dist/RadioHistory-mkQlj0G1.mjs.map +1 -0
- package/dist/RadioImage-6T5CmnKh.mjs.map +1 -0
- package/dist/RadioImage-BUvykGlw.mjs.map +1 -0
- package/dist/RadioImage-BrYBuloV.mjs.map +1 -0
- package/dist/RadioImage-CMtQaqiz.mjs.map +1 -0
- package/dist/RadioImage-CiIj65_a.mjs +85 -0
- package/dist/RadioImage-CiIj65_a.mjs.map +1 -0
- package/dist/RadioImage-DVwQNtMT.mjs.map +1 -0
- package/dist/RadioImage-XqoEXwZv.mjs.map +1 -0
- package/dist/RadioList-BotOeNwF.mjs +125 -0
- package/dist/RadioList-BotOeNwF.mjs.map +1 -0
- package/dist/RadioList-CjP-UN50.mjs.map +1 -0
- package/dist/RadioList-CroBp4d5.mjs.map +1 -0
- package/dist/RadioList-DUkyj-3T.mjs.map +1 -0
- package/dist/RadioList-Dp5kjFiW.mjs.map +1 -0
- package/dist/RadioList-DpSiNcDT.mjs.map +1 -0
- package/dist/RadioList-k2aCdh24.mjs.map +1 -0
- package/dist/RadioPage-BE4wCcA2.mjs.map +1 -0
- package/dist/RadioPage-BeTgvUPE.mjs.map +1 -0
- package/dist/RadioPage-CcPPJUmX.mjs +137 -0
- package/dist/RadioPage-CcPPJUmX.mjs.map +1 -0
- package/dist/RadioPage-Cqc1x0Ld.mjs.map +1 -0
- package/dist/RadioPage-Cvr1JY6T.mjs.map +1 -0
- package/dist/RadioPage-DwYxk45W.mjs.map +1 -0
- package/dist/RadioPage-IflTSXFQ.mjs.map +1 -0
- package/dist/RadioPlanning-BHklVGWm.mjs.map +1 -0
- package/dist/RadioPlanning-C5dPMP4_.mjs.map +1 -0
- package/dist/RadioPlanning-C8MtglrL.mjs +290 -0
- package/dist/RadioPlanning-C8MtglrL.mjs.map +1 -0
- package/dist/RadioPlanning-DCyp5l76.mjs.map +1 -0
- package/dist/RadioPlanning-Iw9vA8fj.mjs.map +1 -0
- package/dist/RadioPlanning-MiAA82P8.mjs.map +1 -0
- package/dist/RadioPlanning-zfc80hVQ.mjs.map +1 -0
- package/dist/RadioProgressBar-1PEu9PP_.mjs +67 -0
- package/dist/RadioProgressBar-1PEu9PP_.mjs.map +1 -0
- package/dist/RadioProgressBar-B1zJqxTH.mjs.map +1 -0
- package/dist/RadioProgressBar-BE7xpKuz.mjs.map +1 -0
- package/dist/RadioProgressBar-C7Lk7NWa.mjs.map +1 -0
- package/dist/RadioProgressBar-C7syfJeD.mjs.map +1 -0
- package/dist/RadioProgressBar-DKaDO8E3.mjs.map +1 -0
- package/dist/RadioProgressBar-DUwPmtUM.mjs.map +1 -0
- package/dist/RecaptchaModal-B4NgHMv8.mjs.map +1 -0
- package/dist/RecaptchaModal-Bh0R-LJQ.mjs.map +1 -0
- package/dist/RecaptchaModal-CHFdC9Sq.mjs +148 -0
- package/dist/RecaptchaModal-CHFdC9Sq.mjs.map +1 -0
- package/dist/RecaptchaModal-DDN7f19l.mjs.map +1 -0
- package/dist/RecaptchaModal-DZgBJsqv.mjs.map +1 -0
- package/dist/RecaptchaModal-D_Jsgg1Y.mjs.map +1 -0
- package/dist/RecaptchaModal-DeXzozPd.mjs.map +1 -0
- package/dist/ReportAbuseModal-BNmgx7J8.mjs.map +1 -0
- package/dist/ReportAbuseModal-CGdwy6AX.mjs.map +1 -0
- package/dist/ReportAbuseModal-CRcYir1i.mjs +134 -0
- package/dist/ReportAbuseModal-CRcYir1i.mjs.map +1 -0
- package/dist/ReportAbuseModal-Cd05gQRG.mjs.map +1 -0
- package/dist/ReportAbuseModal-DZZSuWJL.mjs.map +1 -0
- package/dist/ReportAbuseModal-Dhr0wNeN.mjs.map +1 -0
- package/dist/ReportAbuseModal-Jkua96nx.mjs.map +1 -0
- package/dist/ReportAbuseModal-fW3qVnqB.mjs.map +1 -0
- package/dist/RightsIndicator-BS3j-fVM.mjs.map +1 -0
- package/dist/RightsIndicator-BfnK3wyp.mjs.map +1 -0
- package/dist/RightsIndicator-CIvYsls2.mjs.map +1 -0
- package/dist/RightsIndicator-DCXOdtYK.mjs.map +1 -0
- package/dist/RightsIndicator-DeX5rK6p.mjs +124 -0
- package/dist/RightsIndicator-DeX5rK6p.mjs.map +1 -0
- package/dist/RightsIndicator-IodEqXTS.mjs.map +1 -0
- package/dist/RightsIndicator-Tp19E3wH.mjs.map +1 -0
- package/dist/RightsIndicator-UnNA-JnX.mjs.map +1 -0
- package/dist/RightsIndicator-fNFREWAW.mjs.map +1 -0
- package/dist/RightsWrapper-B8WfUUyU.mjs +212 -0
- package/dist/RightsWrapper-B8WfUUyU.mjs.map +1 -0
- package/dist/RightsWrapper-C4RmSfic.mjs.map +1 -0
- package/dist/RightsWrapper-CuyTiPNy.mjs.map +1 -0
- package/dist/RightsWrapper-CwfoSSsa.mjs.map +1 -0
- package/dist/RightsWrapper-Dfn3I70v.mjs.map +1 -0
- package/dist/RightsWrapper-Du_voV0a.mjs.map +1 -0
- package/dist/RightsWrapper-cUlJfjI3.mjs.map +1 -0
- package/dist/RubriqueFilter-CM7kr6ig.mjs.map +1 -0
- package/dist/RubriqueFilter-CZDYRGY1.mjs.map +1 -0
- package/dist/RubriqueFilter-ChiOg_xE.mjs.map +1 -0
- package/dist/RubriqueFilter-CmuKuprg.mjs.map +1 -0
- package/dist/RubriqueFilter-DL_FXRSA.mjs +199 -0
- package/dist/RubriqueFilter-DL_FXRSA.mjs.map +1 -0
- package/dist/RubriqueFilter-DrH0XXvc.mjs.map +1 -0
- package/dist/RubriqueFilter-MMI5yYaP.mjs.map +1 -0
- package/dist/RubriqueList-16-5nihG.mjs.map +1 -0
- package/dist/RubriqueList-BdfABEgq.mjs.map +1 -0
- package/dist/RubriqueList-BsPLy3ay.mjs.map +1 -0
- package/dist/RubriqueList-CJa6V4RB.mjs.map +1 -0
- package/dist/RubriqueList-CMOS69Vq.mjs +206 -0
- package/dist/RubriqueList-CMOS69Vq.mjs.map +1 -0
- package/dist/RubriqueList-CqwNtNAT.mjs.map +1 -0
- package/dist/RubriqueList-CwjcXWs4.mjs.map +1 -0
- package/dist/RubriquePage-08LTF55B.mjs.map +1 -0
- package/dist/RubriquePage-CCy-5tNr.mjs.map +1 -0
- package/dist/RubriquePage-CPZDxfSO.mjs.map +1 -0
- package/dist/RubriquePage-CuiSjNdT.mjs.map +1 -0
- package/dist/RubriquePage-D4eQhRIL.mjs.map +1 -0
- package/dist/RubriquePage-DB366qxe.mjs.map +1 -0
- package/dist/RubriquePage-DFHbwv9G.mjs.map +1 -0
- package/dist/RubriquePage-TE1WN6Ij.mjs +108 -0
- package/dist/RubriquePage-TE1WN6Ij.mjs.map +1 -0
- package/dist/RubriquePage-hjdDUqyU.mjs.map +1 -0
- package/dist/SearchPage-B8jX1vjG.mjs.map +1 -0
- package/dist/SearchPage-BwFLn1-g.mjs.map +1 -0
- package/dist/SearchPage-CPD8eLYV.mjs.map +1 -0
- package/dist/SearchPage-CUtOUZtw.mjs.map +1 -0
- package/dist/SearchPage-D21Gk42b.mjs.map +1 -0
- package/dist/SearchPage-DMmu7a0f.mjs +77 -0
- package/dist/SearchPage-DMmu7a0f.mjs.map +1 -0
- package/dist/SearchPage-DucZ1EKg.mjs.map +1 -0
- package/dist/SearchPage-DxnpnU0j.mjs.map +1 -0
- package/dist/SearchPage-oR9fUtW3.mjs.map +1 -0
- package/dist/ShareAnonymous---HePDRB.mjs.map +1 -0
- package/dist/ShareAnonymous-BRlQaJhi.mjs +321 -0
- package/dist/ShareAnonymous-BRlQaJhi.mjs.map +1 -0
- package/dist/ShareAnonymous-BW1VhJ2n.mjs.map +1 -0
- package/dist/ShareAnonymous-CsldJHoJ.mjs.map +1 -0
- package/dist/ShareAnonymous-DEGyPCUj.mjs.map +1 -0
- package/dist/ShareAnonymous-DiNPUc2X.mjs.map +1 -0
- package/dist/ShareAnonymous-eT0sUVWS.mjs.map +1 -0
- package/dist/ShareModalPlayer-BIwH-p5d.mjs.map +1 -0
- package/dist/ShareModalPlayer-CdUUtZ-5.mjs.map +1 -0
- package/dist/ShareModalPlayer-D98G_Ndx.mjs +135 -0
- package/dist/ShareModalPlayer-D98G_Ndx.mjs.map +1 -0
- package/dist/ShareModalPlayer-DANO4VOp.mjs.map +1 -0
- package/dist/ShareModalPlayer-DjvS43q5.mjs.map +1 -0
- package/dist/ShareModalPlayer-b-ZIHCWY.mjs.map +1 -0
- package/dist/ShareModalPlayer-o8Tnrbh1.mjs.map +1 -0
- package/dist/ShareNewsletter--cvmmWE0.mjs.map +1 -0
- package/dist/ShareNewsletter-C-clOCKi.mjs +211 -0
- package/dist/ShareNewsletter-C-clOCKi.mjs.map +1 -0
- package/dist/ShareNewsletter-CUcmJiot.mjs.map +1 -0
- package/dist/ShareNewsletter-Cp4-g5fA.mjs.map +1 -0
- package/dist/ShareNewsletter-D8_5L_AT.mjs.map +1 -0
- package/dist/ShareNewsletter-Je8-QirK.mjs.map +1 -0
- package/dist/ShareNewsletter-N55dIA_B.mjs.map +1 -0
- package/dist/SharePlayer-B4Ljxcx6.mjs.map +1 -0
- package/dist/SharePlayer-BxHten3Y.mjs.map +1 -0
- package/dist/SharePlayer-CD7oGqJ2.mjs.map +1 -0
- package/dist/SharePlayer-CE1qHkec.mjs.map +1 -0
- package/dist/SharePlayer-ChACZKgH.mjs +378 -0
- package/dist/SharePlayer-ChACZKgH.mjs.map +1 -0
- package/dist/SharePlayer-CltOR0Zh.mjs.map +1 -0
- package/dist/SharePlayer-CxoaWa3_.mjs.map +1 -0
- package/dist/SharePlayerRadio-BJVzAG1L.mjs.map +1 -0
- package/dist/SharePlayerRadio-Bixx8yFN.mjs.map +1 -0
- package/dist/SharePlayerRadio-CMsTpb_x.mjs.map +1 -0
- package/dist/SharePlayerRadio-CTMdvwN2.mjs +127 -0
- package/dist/SharePlayerRadio-CTMdvwN2.mjs.map +1 -0
- package/dist/SharePlayerRadio-DU35ed7Y.mjs.map +1 -0
- package/dist/SharePlayerRadio-Djz3HIfx.mjs.map +1 -0
- package/dist/SharePlayerRadio-Dn3ui9OK.mjs.map +1 -0
- package/dist/SharePlayerTypes-B7FLniHB.mjs +232 -0
- package/dist/SharePlayerTypes-B7FLniHB.mjs.map +1 -0
- package/dist/SharePlayerTypes-C8lDg7bE.mjs.map +1 -0
- package/dist/SharePlayerTypes-CFjDgT1d.mjs.map +1 -0
- package/dist/SharePlayerTypes-C_YQdJl2.mjs.map +1 -0
- package/dist/SharePlayerTypes-CzN4HZRH.mjs.map +1 -0
- package/dist/SharePlayerTypes-Dkw0Yqdu.mjs.map +1 -0
- package/dist/SharePlayerTypes-M9s8-uCs.mjs.map +1 -0
- package/dist/ShareSocialsButtons--KcYTi2-.mjs.map +1 -0
- package/dist/ShareSocialsButtons--haMp5t-.mjs.map +1 -0
- package/dist/ShareSocialsButtons-CGq1RtWh.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DEojeSLw.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DLb_GRG-.mjs.map +1 -0
- package/dist/ShareSocialsButtons-DiJVocCJ.mjs +159 -0
- package/dist/ShareSocialsButtons-DiJVocCJ.mjs.map +1 -0
- package/dist/ShareSocialsButtons-IJQ1CgrC.mjs.map +1 -0
- package/dist/SimpleLayout-BAZ05Zz6.mjs.map +1 -0
- package/dist/SimpleLayout-BDnreCwm.mjs.map +1 -0
- package/dist/SimpleLayout-BHNwX8pP.mjs.map +1 -0
- package/dist/SimpleLayout-CPmBnpo-.mjs.map +1 -0
- package/dist/SimpleLayout-CUVtAQSt.mjs.map +1 -0
- package/dist/SimpleLayout-CjDOkAVU.mjs.map +1 -0
- package/dist/SimpleLayout-DLEAl9OH.mjs +41 -0
- package/dist/SimpleLayout-DLEAl9OH.mjs.map +1 -0
- package/dist/SmartLinkPage-BJoMvpYI.mjs +238 -0
- package/dist/SmartLinkPage-BJoMvpYI.mjs.map +1 -0
- package/dist/SmartLinkPage-Bd0ODVRl.mjs.map +1 -0
- package/dist/SmartLinkPage-C_zq0_aw.mjs.map +1 -0
- package/dist/SmartLinkPage-D1QlrObF.mjs.map +1 -0
- package/dist/SmartLinkPage-Dd0BLsjZ.mjs.map +1 -0
- package/dist/SmartLinkPage-DfFv2Nmb.mjs.map +1 -0
- package/dist/SmartLinkPage-wnKKixdQ.mjs.map +1 -0
- package/dist/SubscribeButtons-6HA0Mk9a.mjs.map +1 -0
- package/dist/SubscribeButtons-B6i1IdLa.mjs.map +1 -0
- package/dist/SubscribeButtons-BZrXH39i.mjs.map +1 -0
- package/dist/SubscribeButtons-C64eSNCp.mjs.map +1 -0
- package/dist/SubscribeButtons-DQ5YmkQO.mjs.map +1 -0
- package/dist/SubscribeButtons-EUkx8pZP.mjs.map +1 -0
- package/dist/SubscribeButtons-Va9APuBC.mjs +203 -0
- package/dist/SubscribeButtons-Va9APuBC.mjs.map +1 -0
- package/dist/SwiperList-B20Vye8P.mjs +207 -0
- package/dist/SwiperList-B20Vye8P.mjs.map +1 -0
- package/dist/SwiperList-Bokt5AG5.mjs.map +1 -0
- package/dist/SwiperList-CFKov21b.mjs.map +1 -0
- package/dist/SwiperList-DkllmyUF.mjs.map +1 -0
- package/dist/SwiperList-F5w64QMB.mjs.map +1 -0
- package/dist/SwiperList-LZV53McU.mjs.map +1 -0
- package/dist/SwiperList-ek1fgcDE.mjs.map +1 -0
- package/dist/TagList-B4PT2uXD.mjs +134 -0
- package/dist/TagList-B4PT2uXD.mjs.map +1 -0
- package/dist/TagList-BGlKCk4Q.mjs.map +1 -0
- package/dist/TagList-BjCugYvL.mjs.map +1 -0
- package/dist/TagList-DNMyr3U9.mjs.map +1 -0
- package/dist/TagList-DgsYcSmt.mjs.map +1 -0
- package/dist/TagList-WMAlflFl.mjs.map +1 -0
- package/dist/TagList-aSS_8yRX.mjs.map +1 -0
- package/dist/TagPage-BNeE4Lhq.mjs.map +1 -0
- package/dist/TagPage-BUXelbn2.mjs +125 -0
- package/dist/TagPage-BUXelbn2.mjs.map +1 -0
- package/dist/TagPage-Bsc2U_3X.mjs.map +1 -0
- package/dist/TagPage-C2iQSROU.mjs.map +1 -0
- package/dist/TagPage-CgscaJP0.mjs.map +1 -0
- package/dist/TagPage-DEHCzUJu.mjs.map +1 -0
- package/dist/TagPage-DFQt2R7S.mjs.map +1 -0
- package/dist/TagPage-DPjY0S19.mjs.map +1 -0
- package/dist/TagPage-DRTznoWj.mjs.map +1 -0
- package/dist/TopBar-Bg0jGbps.mjs +760 -0
- package/dist/TopBar-Bg0jGbps.mjs.map +1 -0
- package/dist/TopBar-Br6MU5NS.mjs.map +1 -0
- package/dist/TopBar-C5xvL55I.mjs.map +1 -0
- package/dist/TopBar-Ct2Wi2fl.mjs.map +1 -0
- package/dist/TopBar-Ct9XAxTS.mjs.map +1 -0
- package/dist/TopBar-sSswTZjE.mjs.map +1 -0
- package/dist/TopBar-tJHG0wJq.mjs.map +1 -0
- package/dist/UserButtonContent-CE-161kg.mjs.map +1 -0
- package/dist/UserButtonContent-CPa7Icpi.mjs +185 -0
- package/dist/UserButtonContent-CPa7Icpi.mjs.map +1 -0
- package/dist/UserButtonContent-D4Gfs-j-.mjs.map +1 -0
- package/dist/UserButtonContent-DPWKHiAu.mjs.map +1 -0
- package/dist/UserButtonContent-DV8mGqxl.mjs.map +1 -0
- package/dist/UserButtonContent-DoRcEYhc.mjs.map +1 -0
- package/dist/UserButtonContent-Y-pBXCLI.mjs.map +1 -0
- package/dist/VideoModuleBox-8vaXrEZb.mjs.map +1 -0
- package/dist/VideoModuleBox-BBIipxxW.mjs.map +1 -0
- package/dist/VideoModuleBox-CIZ34N35.mjs +85 -0
- package/dist/VideoModuleBox-CIZ34N35.mjs.map +1 -0
- package/dist/VideoModuleBox-Ckr0ogRq.mjs.map +1 -0
- package/dist/VideoModuleBox-Dqiduxtz.mjs.map +1 -0
- package/dist/VideoModuleBox-Gs2cRVCQ.mjs.map +1 -0
- package/dist/VideoModuleBox-T3Fic5E1.mjs.map +1 -0
- package/dist/VideoPage-5l2yCwzq.mjs.map +1 -0
- package/dist/VideoPage-B-7n9a0w.mjs +274 -0
- package/dist/VideoPage-B-7n9a0w.mjs.map +1 -0
- package/dist/VideoPage-C9RjP0jZ.mjs.map +1 -0
- package/dist/VideoPage-C_EGSeQr.mjs.map +1 -0
- package/dist/VideoPage-Ck6UhhNl.mjs.map +1 -0
- package/dist/VideoPage-CzK2E8of.mjs.map +1 -0
- package/dist/VideoPage-DDW-8u0o.mjs.map +1 -0
- package/dist/VideoPage-DVSiNd8a.mjs.map +1 -0
- package/dist/VideoPage-Dr-rwYv9.mjs.map +1 -0
- package/dist/VideoPage-Gr_u3MAh.mjs.map +1 -0
- package/dist/VideoPage-w0OwVwV2.mjs.map +1 -0
- package/dist/classicApi-BB-XyzeX.mjs.map +1 -0
- package/dist/classicApi-BGltEbgE.mjs.map +1 -0
- package/dist/classicApi-BTNeGEhM.mjs.map +1 -0
- package/dist/classicApi-CaN5kdYr.mjs.map +1 -0
- package/dist/classicApi-ChvwoPGT.mjs +1906 -0
- package/dist/classicApi-ChvwoPGT.mjs.map +1 -0
- package/dist/classicApi-CzfRsZHJ.mjs.map +1 -0
- package/dist/classicApi-D1fMJl0J.mjs.map +1 -0
- package/dist/downloadHelper-C64lrfkY.mjs.map +1 -0
- package/dist/downloadHelper-CMi7-Uui.mjs.map +1 -0
- package/dist/downloadHelper-COaLNbRP.mjs.map +1 -0
- package/dist/downloadHelper-CVAsxSd_.mjs.map +1 -0
- package/dist/downloadHelper-CuFfOvc0.mjs +36 -0
- package/dist/downloadHelper-CuFfOvc0.mjs.map +1 -0
- package/dist/downloadHelper-euySfVzt.mjs.map +1 -0
- package/dist/downloadHelper-fJeVpKge.mjs.map +1 -0
- package/dist/index.mjs +100 -100
- package/dist/messages-BBXCgqNE.mjs.map +1 -0
- package/dist/messages-BfcKCwbs.mjs.map +1 -0
- package/dist/messages-C-3-wU0o.mjs +2757 -0
- package/dist/messages-C-3-wU0o.mjs.map +1 -0
- package/dist/messages-DFgZU_JY.mjs.map +1 -0
- package/dist/messages-DI0RP16T.mjs.map +1 -0
- package/dist/messages-ffqRcdFK.mjs.map +1 -0
- package/dist/messages-tvu0LPPD.mjs.map +1 -0
- package/dist/tests.mjs +2 -2
- package/dist/useAdvancedParamInit-B0q6bEG9.mjs.map +1 -0
- package/dist/useAdvancedParamInit-Bmasoyik.mjs.map +1 -0
- package/dist/useAdvancedParamInit-BnHjPfDr.mjs.map +1 -0
- package/dist/useAdvancedParamInit-Cqr0FvM6.mjs.map +1 -0
- package/dist/useAdvancedParamInit-DpFW5LOX.mjs +162 -0
- package/dist/useAdvancedParamInit-DpFW5LOX.mjs.map +1 -0
- package/dist/useAdvancedParamInit-TYud_aDM.mjs.map +1 -0
- package/dist/useAdvancedParamInit-TnnXwHRW.mjs.map +1 -0
- package/dist/useDayjs-CK_TIXDt.mjs +32 -0
- package/dist/useDayjs-CK_TIXDt.mjs.map +1 -0
- package/dist/useDayjs-CXOnFQYE.mjs.map +1 -0
- package/dist/useDayjs-D_JdvkuA.mjs.map +1 -0
- package/dist/useDayjs-Dcl8o-f2.mjs.map +1 -0
- package/dist/useDayjs-DfbYqqzw.mjs.map +1 -0
- package/dist/useDayjs-DgjE7bQE.mjs.map +1 -0
- package/dist/useDayjs-Qw7bsgun.mjs.map +1 -0
- package/dist/useErrorHandler-B2omq-xn.mjs.map +1 -0
- package/dist/useErrorHandler-BZkAkzNC.mjs +19 -0
- package/dist/useErrorHandler-BZkAkzNC.mjs.map +1 -0
- package/dist/useErrorHandler-BpXnCp74.mjs.map +1 -0
- package/dist/useErrorHandler-Ccs5lCXK.mjs.map +1 -0
- package/dist/useErrorHandler-DDjgV9tS.mjs.map +1 -0
- package/dist/useErrorHandler-TP_xzyLW.mjs.map +1 -0
- package/dist/useErrorHandler-hTEtFcs_.mjs.map +1 -0
- package/dist/useImageProxy-B0l13vKR.mjs.map +1 -0
- package/dist/useImageProxy-BCtwrFPB.mjs.map +1 -0
- package/dist/useImageProxy-CFXtzue5.mjs.map +1 -0
- package/dist/useImageProxy-CLgdcHCl.mjs.map +1 -0
- package/dist/useImageProxy-CNYAGjLf.mjs.map +1 -0
- package/dist/useImageProxy-DdK55qB4.mjs +20 -0
- package/dist/useImageProxy-DdK55qB4.mjs.map +1 -0
- package/dist/useImageProxy-Drr0R83A.mjs.map +1 -0
- package/dist/useOrgaComputed-B07BGfc5.mjs.map +1 -0
- package/dist/useOrgaComputed-CZYeUhPI.mjs.map +1 -0
- package/dist/useOrgaComputed-Cvryrkbp.mjs.map +1 -0
- package/dist/useOrgaComputed-D5SfqMx9.mjs +19 -0
- package/dist/useOrgaComputed-D5SfqMx9.mjs.map +1 -0
- package/dist/useOrgaComputed-D8Aak710.mjs.map +1 -0
- package/dist/useOrgaComputed-Dcs2QQ4K.mjs.map +1 -0
- package/dist/useOrgaComputed-dKPouMl1.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-Bb_pkMxz.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-BckKC1fU.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-C-gsD-ec.mjs +108 -0
- package/dist/usePlayerLogicProgress-C-gsD-ec.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-DRrXB53_.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-KiC9MszQ.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-lypDuxfv.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-mpS1rYM1.mjs.map +1 -0
- package/dist/usePodcastView-3dCNrbxq.mjs.map +1 -0
- package/dist/usePodcastView-Bxbpf2Aj.mjs.map +1 -0
- package/dist/usePodcastView-C4Ak6N5U.mjs.map +1 -0
- package/dist/usePodcastView-CWnGApRW.mjs.map +1 -0
- package/dist/usePodcastView-Cm6ruTDT.mjs.map +1 -0
- package/dist/usePodcastView-DlzuYDsj.mjs +56 -0
- package/dist/usePodcastView-DlzuYDsj.mjs.map +1 -0
- package/dist/usePodcastView-_Gt7IKys.mjs.map +1 -0
- package/dist/usePresentationItem-1wOfXOdb.mjs.map +1 -0
- package/dist/usePresentationItem-BIoivvjV.mjs.map +1 -0
- package/dist/usePresentationItem-BkAS8Vr0.mjs.map +1 -0
- package/dist/usePresentationItem-CUGbjF4i.mjs +190 -0
- package/dist/usePresentationItem-CUGbjF4i.mjs.map +1 -0
- package/dist/usePresentationItem-D5rbUsCh.mjs.map +1 -0
- package/dist/usePresentationItem-Dq1BLr6j.mjs.map +1 -0
- package/dist/usePresentationItem-Dww8g4Vm.mjs.map +1 -0
- package/dist/useRights-2iW8A6VG.mjs.map +1 -0
- package/dist/useRights-Bh8pPIIT.mjs.map +1 -0
- package/dist/useRights-C0SGDVHr.mjs.map +1 -0
- package/dist/useRights-C_1sfdF_.mjs.map +1 -0
- package/dist/useRights-ChjlGASZ.mjs.map +1 -0
- package/dist/useRights-DNL2VJUc.mjs +276 -0
- package/dist/useRights-DNL2VJUc.mjs.map +1 -0
- package/dist/useRights-DeR0K7I4.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-BORLAh8s.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-CC3kqtFK.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-CKezlYVc.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-DHNQz04L.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-DWgN-E8P.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs +13 -0
- package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-NQGEdYXb.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BGBTXNIe.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BbLPbrFy.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BjMqOyMg.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-BrWFpJhb.mjs +36 -0
- package/dist/useRubriquesFilterParam-BrWFpJhb.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-DwnlkS0K.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-YXdzWQqQ.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-r0AJqZsJ.mjs.map +1 -0
- package/dist/useSharePlatforms-BqPO-hyZ.mjs +468 -0
- package/dist/useSharePlatforms-BqPO-hyZ.mjs.map +1 -0
- package/dist/useSharePlatforms-CP7lHEZ0.mjs.map +1 -0
- package/dist/useSharePlatforms-C_EB_xsb.mjs.map +1 -0
- package/dist/useSharePlatforms-CcG4_k68.mjs.map +1 -0
- package/dist/useSharePlatforms-CgGpSSII.mjs.map +1 -0
- package/dist/useSharePlatforms-CrHyAS2m.mjs.map +1 -0
- package/dist/useSharePlatforms-D81_zd1r.mjs.map +1 -0
- package/dist/useSimplePageParam-9ps_YIpq.mjs.map +1 -0
- package/dist/useSimplePageParam-ByeUUq4Z.mjs +54 -0
- package/dist/useSimplePageParam-ByeUUq4Z.mjs.map +1 -0
- package/dist/useSimplePageParam-C4qdDtdw.mjs.map +1 -0
- package/dist/useSimplePageParam-COisq-R3.mjs.map +1 -0
- package/dist/useSimplePageParam-DT1XPwfb.mjs.map +1 -0
- package/dist/useSimplePageParam-DZIpRJUc.mjs.map +1 -0
- package/dist/useSimplePageParam-Dw3p3GCC.mjs.map +1 -0
- package/dist/useTranslation-BPLqy26U.mjs.map +1 -0
- package/dist/useTranslation-C4rvyoXK.mjs.map +1 -0
- package/dist/useTranslation-C8Dy1ma7.mjs.map +1 -0
- package/dist/useTranslation-CLkN3q6e.mjs.map +1 -0
- package/dist/useTranslation-COKe4d2D.mjs.map +1 -0
- package/dist/useTranslation-Dsw1HxX9.mjs +205 -0
- package/dist/useTranslation-Dsw1HxX9.mjs.map +1 -0
- package/dist/useTranslation-kKZZLtgm.mjs.map +1 -0
- package/dist/usefetchRadioData-3E5_FJJM.mjs +55 -0
- package/dist/usefetchRadioData-3E5_FJJM.mjs.map +1 -0
- package/dist/usefetchRadioData-B5vQJGHp.mjs.map +1 -0
- package/dist/usefetchRadioData-Cb6piM3h.mjs.map +1 -0
- package/dist/usefetchRadioData-Ch_otD17.mjs.map +1 -0
- package/dist/usefetchRadioData-D5WFrvWd.mjs.map +1 -0
- package/dist/usefetchRadioData-lhw_qPJh.mjs.map +1 -0
- package/dist/usefetchRadioData-qr9F-158.mjs.map +1 -0
- package/package.json +1 -1
- package/src/components/display/podcasts/PodcastModuleBox.vue +293 -252
- package/src/components/form/ClassicWysiwyg.vue +2 -4
- package/src/components/misc/FooterSection.vue +3 -1
- package/src/locale/de.json +3 -1
- package/src/locale/en.json +3 -1
- package/src/locale/es.json +3 -1
- package/src/locale/fr.json +3 -0
- package/src/locale/it.json +3 -1
- package/src/locale/sl.json +3 -1
- package/tests/components/display/podcasts/PodcastModuleBox.spec.ts +68 -0
- package/dist/AdvancedSearch-C__BZuJX.mjs +0 -429
- package/dist/CategoryFilter-DRXTrqyR.mjs +0 -237
- package/dist/CategoryList-BeBPhibG.mjs +0 -182
- package/dist/CategoryPage-CsabctRT.mjs +0 -57
- package/dist/ChapteringModal-BCPmvaRT.mjs +0 -82
- package/dist/CheckIdentityModal-fNecycn-.mjs +0 -86
- package/dist/ClassicAlert-dYigdfoZ.mjs +0 -85
- package/dist/ClassicInputText-B7EAwP2N.mjs +0 -371
- package/dist/ClassicWysiwyg-BKq8ExjM.mjs +0 -230
- package/dist/ClipboardModal-Bd_hrJu_.mjs +0 -84
- package/dist/CommentBasicView-bNaLVdjT.mjs +0 -129
- package/dist/CommentInput-B7qnp3is.mjs +0 -186
- package/dist/CommentItem-DDCavfx_.mjs +0 -232
- package/dist/CommentList-BbEaau4S.mjs +0 -302
- package/dist/CommentMoreActions-CB8419fO.mjs +0 -286
- package/dist/CommentName-DFzxl7mU.mjs +0 -96
- package/dist/CommentParentInfo-BDSceNbu.mjs +0 -64
- package/dist/CommentPlayer-D_cgM4oc.mjs +0 -86
- package/dist/CommentSection-CfhzLqZE.mjs +0 -141
- package/dist/CommentStore-DAa7RQ_3.mjs +0 -355
- package/dist/ContractPreviewModal-CC3KTcFM.mjs +0 -101
- package/dist/DownloadPodcastButton-DdWnV_YZ.mjs +0 -53
- package/dist/EditCommentModal-7vDcLEPD.mjs +0 -162
- package/dist/EmissionGroupChooser-ZJLNTZLc.mjs +0 -82
- package/dist/EmissionInlineList-JQp7JC97.mjs +0 -188
- package/dist/EmissionItem-9HFaHgWp.mjs +0 -183
- package/dist/EmissionList-Clu9bigG.mjs +0 -325
- package/dist/EmissionPage-DX_2HI0y.mjs +0 -322
- package/dist/EmissionPlayerItem-C8IKeJ7q.mjs +0 -167
- package/dist/EmissionPresentationItem-CmxIvauh.mjs +0 -78
- package/dist/EmissionPresentationList-CIx49QaD.mjs +0 -125
- package/dist/EmissionsPage-CxLXKG5S.mjs +0 -199
- package/dist/Error403Page-DARTxoEK.mjs +0 -69
- package/dist/ErrorMessage-DhSwu9H_.mjs +0 -44
- package/dist/FooterGarSection-IH0ADl_V.mjs +0 -71
- package/dist/FooterSection-r3Ehg0kp.mjs +0 -238
- package/dist/HomeDropdown-B9Hg49uX.mjs +0 -110
- package/dist/HomePage-C3t8bQ4X.mjs +0 -166
- package/dist/LikeSection-KEHYZ6eH.mjs +0 -167
- package/dist/ListPaginate-Dd3eeyMI.mjs +0 -202
- package/dist/LiveHorizontalList-CiyK7eIx.mjs +0 -136
- package/dist/LiveList-DnEolyFx.mjs +0 -324
- package/dist/LivesPage-BjOGZLj4.mjs +0 -76
- package/dist/MapPage-BO2h6OPn.mjs +0 -303
- package/dist/MobileMenu-DzyIn4Ww.mjs +0 -187
- package/dist/NewsletterModal-MVu7IC0K.mjs +0 -82
- package/dist/OrganisationChooser-BZnwu6PU.mjs +0 -190
- package/dist/OrganisationChooserLight-DtC9SY2k.mjs +0 -84
- package/dist/PageNotFound-XkbxiC3R.mjs +0 -58
- package/dist/ParticipantInlineList-D13FKP63.mjs +0 -117
- package/dist/ParticipantItem-NaOJtacr.mjs +0 -138
- package/dist/ParticipantPage-CVDQ4I-p.mjs +0 -203
- package/dist/ParticipantsPage-CxDl6EWr.mjs +0 -262
- package/dist/PlayerAnonymousModal-DstBQ-Zs.mjs +0 -84
- package/dist/PlayerCompact-DgsZttBX.mjs +0 -209
- package/dist/PlayerComponent-BDJQLPcs.mjs +0 -929
- package/dist/PlayerLarge-CubFsFCt.mjs +0 -190
- package/dist/PlayerPlayButton-DQBkOGod.mjs +0 -400
- package/dist/PlayerProgressBar-AhqJPkUk.mjs +0 -86
- package/dist/PlayerStore-S4mFfJ75.mjs +0 -230
- package/dist/PlayerVideo-D-TYPaLL.mjs +0 -72
- package/dist/PlayerVideoDigiteka-DMC8L6Mz.mjs +0 -102
- package/dist/PlayerVideoHls-VFKtt3Qx.mjs +0 -232
- package/dist/PlaylistPage-BrZuaX3e.mjs +0 -228
- package/dist/PlaylistsPage-CAaiC48j.mjs +0 -395
- package/dist/PodcastFilterList-YdyFX695.mjs +0 -254
- package/dist/PodcastImage-CF7D3Alx.mjs +0 -174
- package/dist/PodcastInlineList-C_dvAa4O.mjs +0 -138
- package/dist/PodcastInlineListTemplate-DpveKzmq.mjs +0 -233
- package/dist/PodcastIsPlaying-Dx_XNjz4.mjs +0 -30
- package/dist/PodcastItem-C5U2vYiX.mjs +0 -287
- package/dist/PodcastList-BHOJTVqP.mjs +0 -182
- package/dist/PodcastList-Dkh7Kahu.mjs +0 -330
- package/dist/PodcastPage-CTwEe_n7.mjs +0 -725
- package/dist/PodcastPlayBar-BafidGw3.mjs +0 -83
- package/dist/PodcastPlayBasicButton-DqomjSS_.mjs +0 -72
- package/dist/PodcastPlayButton--X67hSEO.mjs +0 -236
- package/dist/PodcastPlaylistInlineList-Csf1PwTQ.mjs +0 -115
- package/dist/PodcastPresentationList-DSQebLtP.mjs +0 -200
- package/dist/PodcastProgressBar-BoRBxgPF.mjs +0 -98
- package/dist/PodcastRawTranscript-HOcGzqam.mjs +0 -184
- package/dist/PodcastRubriqueList-C6IUkNSJ.mjs +0 -83
- package/dist/PodcastSwiperList-B6Rb4sb3.mjs +0 -219
- package/dist/PodcastmakerHeader-SuHA7pwQ.mjs +0 -58
- package/dist/PodcastsPage-BA8vFVBZ.mjs +0 -217
- package/dist/ProductorSearch-DXwssvrx.mjs +0 -161
- package/dist/ProgressBar-BPdSp8k3.mjs +0 -158
- package/dist/QrCode-DIUhV-JI.mjs +0 -177
- package/dist/QrCodeModal-DsqDbf2S.mjs +0 -64
- package/dist/RadioCurrently-2uhupYt4.mjs +0 -112
- package/dist/RadioHistory-7HK9VIXU.mjs +0 -139
- package/dist/RadioImage-DgrrJqhi.mjs +0 -85
- package/dist/RadioList-5WLGZn1M.mjs +0 -125
- package/dist/RadioPage-BLrZ2cZQ.mjs +0 -137
- package/dist/RadioPlanning-CMSEqOnd.mjs +0 -290
- package/dist/RadioProgressBar-imph2EDe.mjs +0 -67
- package/dist/RecaptchaModal-CxDPhjIv.mjs +0 -148
- package/dist/ReportAbuseModal-Cn4dKNYU.mjs +0 -134
- package/dist/RightsIndicator-DMZt2V0j.mjs +0 -124
- package/dist/RightsWrapper-CH6QzSWu.mjs +0 -212
- package/dist/RubriqueFilter-BIBa9NNw.mjs +0 -199
- package/dist/RubriqueList-7NFIBpzM.mjs +0 -206
- package/dist/RubriquePage-Dh4NUQ2M.mjs +0 -108
- package/dist/SearchPage-nupT1-eH.mjs +0 -77
- package/dist/ShareAnonymous-BmIwbMz_.mjs +0 -321
- package/dist/ShareModalPlayer-CKQAlhfC.mjs +0 -135
- package/dist/ShareNewsletter-YyZJPmj3.mjs +0 -211
- package/dist/SharePlayer-B-8165rs.mjs +0 -378
- package/dist/SharePlayerRadio-CqLsQYYx.mjs +0 -127
- package/dist/SharePlayerTypes-Bt2LQhZe.mjs +0 -232
- package/dist/ShareSocialsButtons-CZtpG1zL.mjs +0 -159
- package/dist/SimpleLayout-TPl5v_-v.mjs +0 -41
- package/dist/SmartLinkPage-DsLBvlOf.mjs +0 -238
- package/dist/SubscribeButtons-DTu2q9nM.mjs +0 -203
- package/dist/SwiperList-DkzjytBq.mjs +0 -207
- package/dist/TagList-CZwg6-Wl.mjs +0 -134
- package/dist/TagPage-DX0T8dNu.mjs +0 -125
- package/dist/TopBar-BshQ_eFb.mjs +0 -760
- package/dist/UserButtonContent-BwvIN_8j.mjs +0 -185
- package/dist/VideoModuleBox-CYxZFZQV.mjs +0 -85
- package/dist/VideoPage-B1udtWP7.mjs +0 -274
- package/dist/classicApi-DpwVUC0E.mjs +0 -1906
- package/dist/downloadHelper-DNFvCWE7.mjs +0 -36
- package/dist/messages-DxAfPLH1.mjs +0 -2745
- package/dist/useAdvancedParamInit-XK-FI81b.mjs +0 -162
- package/dist/useDayjs-CD7LNHpM.mjs +0 -32
- package/dist/useErrorHandler-DpcjkDh_.mjs +0 -19
- package/dist/useImageProxy-DI8RhM5W.mjs +0 -20
- package/dist/useOrgaComputed-Cv6ZE0fR.mjs +0 -19
- package/dist/usePlayerLogicProgress-DJXygp1R.mjs +0 -108
- package/dist/usePodcastView-AB8-AjDO.mjs +0 -56
- package/dist/usePresentationItem-BSIM0LPe.mjs +0 -190
- package/dist/useRights-9acWcTMy.mjs +0 -276
- package/dist/useRubriquesFilterComputed-Hr6ZScZJ.mjs +0 -13
- package/dist/useRubriquesFilterParam-CHOhIyzc.mjs +0 -36
- package/dist/useSharePlatforms-BS51_Mgp.mjs +0 -468
- package/dist/useSimplePageParam-CWi9AKl0.mjs +0 -54
- package/dist/useTranslation-Bw07I8Rj.mjs +0 -205
- package/dist/usefetchRadioData-CoAFZngO.mjs +0 -55
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentItem-BbVr_2V6.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentItem-CYzCxLtJ.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentItem-Czdd1oCE.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentItem-D39oSH9h.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentItem-DCzZsT7J.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentItem-DPieWrkL.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentItem-DmyqQ7Z6.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentItem-Vvd1NE_W.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentItem-vMMaiTCB.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentList-AZvaBFne.mjs","names":[],"sources":["../src/components/display/comments/CommentList.vue","../src/components/display/comments/CommentList.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column\">\n <div\n v-if=\"isNotAnAnswerList && 0 !== totalCount\"\n class=\"d-flex align-items-center mb-2\"\n >\n <div class=\"text-secondary me-3\">\n {{ t(\"Number comments\", { nb: totalCount }) }}\n </div>\n <button\n id=\"sort-by-comments\"\n class=\"btn btn-transparent d-flex align-items-center\"\n >\n <SortVariantIcon :size=\"30\" />\n <p class=\"ms-1\">{{ t(\"Sort by\") }}</p>\n </button>\n <ClassicPopover target=\"sort-by-comments\" :only-click=\"true\">\n <button\n v-for=\"sortOption in sortChoice\"\n :key=\"sortOption.value\"\n class=\"me-3 octopus-dropdown-item\"\n :disabled=\"sortOption.value === sortType\"\n @mousedown=\"changeSort(sortOption.value)\"\n @keydown.enter=\"changeSort(sortOption.value)\"\n >\n {{ sortOption.title }}\n </button>\n </ClassicPopover>\n </div>\n <div v-if=\"!loading && !error && 0 === totalCount\" class=\"text-center\">\n {{ t(\"No comments\") }}\n </div>\n <div\n ref=\"scrollComponent\"\n :class=\"isNotAnAnswerList ? 'scrolling-comments' : ''\"\n >\n <CommentItem\n v-for=\"(c, indexCom) in comments\"\n :id=\"'comItem' + c.commentId\"\n :key=\"c.commentId\"\n v-model:comment=\"comments[indexCom]\"\n :podcast=\"podcast\"\n :is-flat-list=\"isFlatList\"\n :config=\"config\"\n :organisation-id=\"organisationId\"\n @delete-comment=\"deleteComment(c.commentId)\"\n />\n <ClassicLoading\n :loading-text=\"loading && !error ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Comments loading error`) : undefined\"\n />\n <button\n v-if=\"!isNotAnAnswerList && dfirst + dsize < totalCount\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SortVariantIcon from \"vue-material-design-icons/SortVariant.vue\";\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport { computed, defineAsyncComponent, onMounted, onUnmounted, Ref, ref, useTemplateRef, watch } from \"vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"@/stores/class/config/commentsConfig\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n/* eslint-disable */\nconst CommentItem: any = defineAsyncComponent(() => import('./item/CommentItem.vue'));\n/* eslint-enable */\nconst ClassicPopover = defineAsyncComponent(\n () => import(\"../../misc/ClassicPopover.vue\"),\n);\n\n//Props \nconst props = defineProps({\n size: { default: 10, type: Number },\n podcast: { default: undefined, type: Object as () => Podcast },\n reload: { default: false, type: Boolean },\n answerToComment: { default: undefined, type: Number },\n isFlatList: { default: false, type: Boolean },\n stateFilter: { default: \"\", type: String },\n organisationId: { default: undefined, type: String },\n nbComments: { default: 0, type: Number },\n config: { default: undefined, type: Object as () => CommentsConfig },\n eventToHandle: { default: undefined, type: Object as () => CommentMessage },\n})\n\n//Emits\nconst emit = defineEmits([\"update:nbComments\", \"commentDeleted\"]);\n\n//Data \nconst loading = ref(false);\nconst error = ref(false);\nconst dfirst = ref(0);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst sortType = ref(\"DATE_DESC\");\nconst comments: Ref<Array<CommentPodcast>> = ref([]);\nconst scrollableSection: Ref<HTMLElement | undefined> = ref(undefined);\nconst scrollComponentRef = useTemplateRef('scrollComponent');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst isNotAnAnswerList = computed(() => undefined === props.answerToComment);\nconst changed = computed(() => `${props.size}|${props.reload}|${dsize.value}|${props.stateFilter}|${props.podcast?.podcastId}|${props.organisationId}`);\nconst sortChoice = computed(() =>{\n return [\n { title: t(\"The most recent\"), value: \"DATE_DESC\" },\n { title: t(\"Top comments\"), value: \"LIKE_DESC\" },\n ];\n});\n\n//Watch\nwatch(totalCount, () => {emit(\"update:nbComments\", totalCount.value)});\nwatch(changed, () => {fetchContent(true);});\nwatch(()=>props.eventToHandle, async () => {\n if (!props.eventToHandle) {\n return;\n }\n if (props.answerToComment === props.eventToHandle.comment.answerTo) {\n switch (props.eventToHandle.type) {\n case \"CREATE\":\n createComment(props.eventToHandle.comment);\n break;\n case \"UPDATE\":\n updateComment(props.eventToHandle.comment);\n break;\n case \"DELETE\":\n deleteComment(props.eventToHandle.comment.commentId);\n break;\n default:\n break;\n }\n return;\n }\n if (undefined !== props.eventToHandle.comment.answerTo) {\n const comItem = scrollComponentRef?.value?.querySelector('#comItem' + props.eventToHandle.comment.answerTo) as InstanceType<typeof CommentItem>;\n comItem?.receiveEvent(props.eventToHandle);\n }\n}, {deep: true});\n\n\nonMounted(()=>{\n fetchContent(true);\n if (isNotAnAnswerList.value) {\n scrollableSection.value = scrollComponentRef?.value as HTMLElement;\n scrollableSection.value.addEventListener(\"scroll\", handleScroll);\n }\n})\n\nonUnmounted(()=>{\n if (isNotAnAnswerList.value) {\n scrollableSection.value?.removeEventListener(\"scroll\", handleScroll);\n }\n})\n\n\n//Methods\nfunction changeSort(sortTypeUpdate: string) {\n sortType.value = sortTypeUpdate;\n fetchContent(true);\n}\nfunction handleScroll() {\n if (\n scrollableSection.value &&\n totalCount.value > comments.value.length &&\n scrollableSection.value.scrollTop +\n scrollableSection.value.clientHeight >=\n scrollableSection.value.scrollHeight\n ) {\n fetchContent(false);\n }\n}\nfunction findCommentInCommentsLoaded(commentId: number) {\n return comments.value.findIndex(\n (element: CommentPodcast) => element.commentId === commentId,\n );\n}\nfunction createComment(comment: CommentPodcast) {\n comments.value.unshift(comment);\n totalCount.value += 1;\n}\nfunction updateComment(comment: CommentPodcast) {\n const commentIndex = findCommentInCommentsLoaded(comment.commentId);\n if (-1 !== commentIndex) {\n comments.value.splice(commentIndex, 1, comment);\n }\n}\nfunction deleteComment(commentIdToDelete: number) {\n const commentIndex = findCommentInCommentsLoaded(commentIdToDelete);\n if (-1 !== commentIndex) {\n comments.value.splice(commentIndex, 1);\n totalCount.value -= 1;\n emit(\"commentDeleted\", commentIdToDelete);\n }\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n if (loading.value) {\n return;\n }\n loading.value = true;\n if (reset) {\n dfirst.value = 0;\n comments.value.length = 0;\n }\n const param = {\n first: dfirst.value,\n size: dsize.value,\n podcastId: props.podcast?.podcastId,\n sort: sortType.value,\n answerTo: props.answerToComment,\n hideAnswers: !props.isFlatList,\n state: props.stateFilter.length ? props.stateFilter : undefined,\n organisationId: props.organisationId,\n };\n try {\n const data = await classicApi.fetchData<\n ListClassicReturn<CommentPodcast>\n >({\n api: 2,\n path: \"comment/list\",\n parameters: param,\n });\n if (reset) {\n comments.value.length = 0;\n }\n comments.value.push(...data.result);\n totalCount.value = data.count;\n dfirst.value += dsize.value;\n loading.value = false;\n } catch (errorWs) {\n // Errors sometimes occur, and shouldn't trigger anything too drastic,\n // so we only log it, instead of using handle403\n console.error(errorWs);\n error.value = true;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .scrolling-comments {\n max-height: 715px;\n overflow-y: auto;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column\">\n <div\n v-if=\"isNotAnAnswerList && 0 !== totalCount\"\n class=\"d-flex align-items-center mb-2\"\n >\n <div class=\"text-secondary me-3\">\n {{ t(\"Number comments\", { nb: totalCount }) }}\n </div>\n <button\n id=\"sort-by-comments\"\n class=\"btn btn-transparent d-flex align-items-center\"\n >\n <SortVariantIcon :size=\"30\" />\n <p class=\"ms-1\">{{ t(\"Sort by\") }}</p>\n </button>\n <ClassicPopover target=\"sort-by-comments\" :only-click=\"true\">\n <button\n v-for=\"sortOption in sortChoice\"\n :key=\"sortOption.value\"\n class=\"me-3 octopus-dropdown-item\"\n :disabled=\"sortOption.value === sortType\"\n @mousedown=\"changeSort(sortOption.value)\"\n @keydown.enter=\"changeSort(sortOption.value)\"\n >\n {{ sortOption.title }}\n </button>\n </ClassicPopover>\n </div>\n <div v-if=\"!loading && !error && 0 === totalCount\" class=\"text-center\">\n {{ t(\"No comments\") }}\n </div>\n <div\n ref=\"scrollComponent\"\n :class=\"isNotAnAnswerList ? 'scrolling-comments' : ''\"\n >\n <CommentItem\n v-for=\"(c, indexCom) in comments\"\n :id=\"'comItem' + c.commentId\"\n :key=\"c.commentId\"\n v-model:comment=\"comments[indexCom]\"\n :podcast=\"podcast\"\n :is-flat-list=\"isFlatList\"\n :config=\"config\"\n :organisation-id=\"organisationId\"\n @delete-comment=\"deleteComment(c.commentId)\"\n />\n <ClassicLoading\n :loading-text=\"loading && !error ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Comments loading error`) : undefined\"\n />\n <button\n v-if=\"!isNotAnAnswerList && dfirst + dsize < totalCount\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SortVariantIcon from \"vue-material-design-icons/SortVariant.vue\";\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport { computed, defineAsyncComponent, onMounted, onUnmounted, Ref, ref, useTemplateRef, watch } from \"vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"@/stores/class/config/commentsConfig\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n/* eslint-disable */\nconst CommentItem: any = defineAsyncComponent(() => import('./item/CommentItem.vue'));\n/* eslint-enable */\nconst ClassicPopover = defineAsyncComponent(\n () => import(\"../../misc/ClassicPopover.vue\"),\n);\n\n//Props \nconst props = defineProps({\n size: { default: 10, type: Number },\n podcast: { default: undefined, type: Object as () => Podcast },\n reload: { default: false, type: Boolean },\n answerToComment: { default: undefined, type: Number },\n isFlatList: { default: false, type: Boolean },\n stateFilter: { default: \"\", type: String },\n organisationId: { default: undefined, type: String },\n nbComments: { default: 0, type: Number },\n config: { default: undefined, type: Object as () => CommentsConfig },\n eventToHandle: { default: undefined, type: Object as () => CommentMessage },\n})\n\n//Emits\nconst emit = defineEmits([\"update:nbComments\", \"commentDeleted\"]);\n\n//Data \nconst loading = ref(false);\nconst error = ref(false);\nconst dfirst = ref(0);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst sortType = ref(\"DATE_DESC\");\nconst comments: Ref<Array<CommentPodcast>> = ref([]);\nconst scrollableSection: Ref<HTMLElement | undefined> = ref(undefined);\nconst scrollComponentRef = useTemplateRef('scrollComponent');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst isNotAnAnswerList = computed(() => undefined === props.answerToComment);\nconst changed = computed(() => `${props.size}|${props.reload}|${dsize.value}|${props.stateFilter}|${props.podcast?.podcastId}|${props.organisationId}`);\nconst sortChoice = computed(() =>{\n return [\n { title: t(\"The most recent\"), value: \"DATE_DESC\" },\n { title: t(\"Top comments\"), value: \"LIKE_DESC\" },\n ];\n});\n\n//Watch\nwatch(totalCount, () => {emit(\"update:nbComments\", totalCount.value)});\nwatch(changed, () => {fetchContent(true);});\nwatch(()=>props.eventToHandle, async () => {\n if (!props.eventToHandle) {\n return;\n }\n if (props.answerToComment === props.eventToHandle.comment.answerTo) {\n switch (props.eventToHandle.type) {\n case \"CREATE\":\n createComment(props.eventToHandle.comment);\n break;\n case \"UPDATE\":\n updateComment(props.eventToHandle.comment);\n break;\n case \"DELETE\":\n deleteComment(props.eventToHandle.comment.commentId);\n break;\n default:\n break;\n }\n return;\n }\n if (undefined !== props.eventToHandle.comment.answerTo) {\n const comItem = scrollComponentRef?.value?.querySelector('#comItem' + props.eventToHandle.comment.answerTo) as InstanceType<typeof CommentItem>;\n comItem?.receiveEvent(props.eventToHandle);\n }\n}, {deep: true});\n\n\nonMounted(()=>{\n fetchContent(true);\n if (isNotAnAnswerList.value) {\n scrollableSection.value = scrollComponentRef?.value as HTMLElement;\n scrollableSection.value.addEventListener(\"scroll\", handleScroll);\n }\n})\n\nonUnmounted(()=>{\n if (isNotAnAnswerList.value) {\n scrollableSection.value?.removeEventListener(\"scroll\", handleScroll);\n }\n})\n\n\n//Methods\nfunction changeSort(sortTypeUpdate: string) {\n sortType.value = sortTypeUpdate;\n fetchContent(true);\n}\nfunction handleScroll() {\n if (\n scrollableSection.value &&\n totalCount.value > comments.value.length &&\n scrollableSection.value.scrollTop +\n scrollableSection.value.clientHeight >=\n scrollableSection.value.scrollHeight\n ) {\n fetchContent(false);\n }\n}\nfunction findCommentInCommentsLoaded(commentId: number) {\n return comments.value.findIndex(\n (element: CommentPodcast) => element.commentId === commentId,\n );\n}\nfunction createComment(comment: CommentPodcast) {\n comments.value.unshift(comment);\n totalCount.value += 1;\n}\nfunction updateComment(comment: CommentPodcast) {\n const commentIndex = findCommentInCommentsLoaded(comment.commentId);\n if (-1 !== commentIndex) {\n comments.value.splice(commentIndex, 1, comment);\n }\n}\nfunction deleteComment(commentIdToDelete: number) {\n const commentIndex = findCommentInCommentsLoaded(commentIdToDelete);\n if (-1 !== commentIndex) {\n comments.value.splice(commentIndex, 1);\n totalCount.value -= 1;\n emit(\"commentDeleted\", commentIdToDelete);\n }\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n if (loading.value) {\n return;\n }\n loading.value = true;\n if (reset) {\n dfirst.value = 0;\n comments.value.length = 0;\n }\n const param = {\n first: dfirst.value,\n size: dsize.value,\n podcastId: props.podcast?.podcastId,\n sort: sortType.value,\n answerTo: props.answerToComment,\n hideAnswers: !props.isFlatList,\n state: props.stateFilter.length ? props.stateFilter : undefined,\n organisationId: props.organisationId,\n };\n try {\n const data = await classicApi.fetchData<\n ListClassicReturn<CommentPodcast>\n >({\n api: 2,\n path: \"comment/list\",\n parameters: param,\n });\n if (reset) {\n comments.value.length = 0;\n }\n comments.value.push(...data.result);\n totalCount.value = data.count;\n dfirst.value += dsize.value;\n loading.value = false;\n } catch (errorWs) {\n // Errors sometimes occur, and shouldn't trigger anything too drastic,\n // so we only log it, instead of using handle403\n console.error(errorWs);\n error.value = true;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .scrolling-comments {\n max-height: 715px;\n overflow-y: auto;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentList-AwpVcpBT.mjs","names":[],"sources":["../src/components/display/comments/CommentList.vue","../src/components/display/comments/CommentList.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column\">\n <div\n v-if=\"isNotAnAnswerList && 0 !== totalCount\"\n class=\"d-flex align-items-center mb-2\"\n >\n <div class=\"text-secondary me-3\">\n {{ t(\"Number comments\", { nb: totalCount }) }}\n </div>\n <button\n id=\"sort-by-comments\"\n class=\"btn btn-transparent d-flex align-items-center\"\n >\n <SortVariantIcon :size=\"30\" />\n <p class=\"ms-1\">{{ t(\"Sort by\") }}</p>\n </button>\n <ClassicPopover target=\"sort-by-comments\" :only-click=\"true\">\n <button\n v-for=\"sortOption in sortChoice\"\n :key=\"sortOption.value\"\n class=\"me-3 octopus-dropdown-item\"\n :disabled=\"sortOption.value === sortType\"\n @mousedown=\"changeSort(sortOption.value)\"\n @keydown.enter=\"changeSort(sortOption.value)\"\n >\n {{ sortOption.title }}\n </button>\n </ClassicPopover>\n </div>\n <div v-if=\"!loading && !error && 0 === totalCount\" class=\"text-center\">\n {{ t(\"No comments\") }}\n </div>\n <div\n ref=\"scrollComponent\"\n :class=\"isNotAnAnswerList ? 'scrolling-comments' : ''\"\n >\n <CommentItem\n v-for=\"(c, indexCom) in comments\"\n :id=\"'comItem' + c.commentId\"\n :key=\"c.commentId\"\n v-model:comment=\"comments[indexCom]\"\n :podcast=\"podcast\"\n :is-flat-list=\"isFlatList\"\n :config=\"config\"\n :organisation-id=\"organisationId\"\n @delete-comment=\"deleteComment(c.commentId)\"\n />\n <ClassicLoading\n :loading-text=\"loading && !error ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Comments loading error`) : undefined\"\n />\n <button\n v-if=\"!isNotAnAnswerList && dfirst + dsize < totalCount\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SortVariantIcon from \"vue-material-design-icons/SortVariant.vue\";\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport { computed, defineAsyncComponent, onMounted, onUnmounted, Ref, ref, useTemplateRef, watch } from \"vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"@/stores/class/config/commentsConfig\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n/* eslint-disable */\nconst CommentItem: any = defineAsyncComponent(() => import('./item/CommentItem.vue'));\n/* eslint-enable */\nconst ClassicPopover = defineAsyncComponent(\n () => import(\"../../misc/ClassicPopover.vue\"),\n);\n\n//Props \nconst props = defineProps({\n size: { default: 10, type: Number },\n podcast: { default: undefined, type: Object as () => Podcast },\n reload: { default: false, type: Boolean },\n answerToComment: { default: undefined, type: Number },\n isFlatList: { default: false, type: Boolean },\n stateFilter: { default: \"\", type: String },\n organisationId: { default: undefined, type: String },\n nbComments: { default: 0, type: Number },\n config: { default: undefined, type: Object as () => CommentsConfig },\n eventToHandle: { default: undefined, type: Object as () => CommentMessage },\n})\n\n//Emits\nconst emit = defineEmits([\"update:nbComments\", \"commentDeleted\"]);\n\n//Data \nconst loading = ref(false);\nconst error = ref(false);\nconst dfirst = ref(0);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst sortType = ref(\"DATE_DESC\");\nconst comments: Ref<Array<CommentPodcast>> = ref([]);\nconst scrollableSection: Ref<HTMLElement | undefined> = ref(undefined);\nconst scrollComponentRef = useTemplateRef('scrollComponent');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst isNotAnAnswerList = computed(() => undefined === props.answerToComment);\nconst changed = computed(() => `${props.size}|${props.reload}|${dsize.value}|${props.stateFilter}|${props.podcast?.podcastId}|${props.organisationId}`);\nconst sortChoice = computed(() =>{\n return [\n { title: t(\"The most recent\"), value: \"DATE_DESC\" },\n { title: t(\"Top comments\"), value: \"LIKE_DESC\" },\n ];\n});\n\n//Watch\nwatch(totalCount, () => {emit(\"update:nbComments\", totalCount.value)});\nwatch(changed, () => {fetchContent(true);});\nwatch(()=>props.eventToHandle, async () => {\n if (!props.eventToHandle) {\n return;\n }\n if (props.answerToComment === props.eventToHandle.comment.answerTo) {\n switch (props.eventToHandle.type) {\n case \"CREATE\":\n createComment(props.eventToHandle.comment);\n break;\n case \"UPDATE\":\n updateComment(props.eventToHandle.comment);\n break;\n case \"DELETE\":\n deleteComment(props.eventToHandle.comment.commentId);\n break;\n default:\n break;\n }\n return;\n }\n if (undefined !== props.eventToHandle.comment.answerTo) {\n const comItem = scrollComponentRef?.value?.querySelector('#comItem' + props.eventToHandle.comment.answerTo) as InstanceType<typeof CommentItem>;\n comItem?.receiveEvent(props.eventToHandle);\n }\n}, {deep: true});\n\n\nonMounted(()=>{\n fetchContent(true);\n if (isNotAnAnswerList.value) {\n scrollableSection.value = scrollComponentRef?.value as HTMLElement;\n scrollableSection.value.addEventListener(\"scroll\", handleScroll);\n }\n})\n\nonUnmounted(()=>{\n if (isNotAnAnswerList.value) {\n scrollableSection.value?.removeEventListener(\"scroll\", handleScroll);\n }\n})\n\n\n//Methods\nfunction changeSort(sortTypeUpdate: string) {\n sortType.value = sortTypeUpdate;\n fetchContent(true);\n}\nfunction handleScroll() {\n if (\n scrollableSection.value &&\n totalCount.value > comments.value.length &&\n scrollableSection.value.scrollTop +\n scrollableSection.value.clientHeight >=\n scrollableSection.value.scrollHeight\n ) {\n fetchContent(false);\n }\n}\nfunction findCommentInCommentsLoaded(commentId: number) {\n return comments.value.findIndex(\n (element: CommentPodcast) => element.commentId === commentId,\n );\n}\nfunction createComment(comment: CommentPodcast) {\n comments.value.unshift(comment);\n totalCount.value += 1;\n}\nfunction updateComment(comment: CommentPodcast) {\n const commentIndex = findCommentInCommentsLoaded(comment.commentId);\n if (-1 !== commentIndex) {\n comments.value.splice(commentIndex, 1, comment);\n }\n}\nfunction deleteComment(commentIdToDelete: number) {\n const commentIndex = findCommentInCommentsLoaded(commentIdToDelete);\n if (-1 !== commentIndex) {\n comments.value.splice(commentIndex, 1);\n totalCount.value -= 1;\n emit(\"commentDeleted\", commentIdToDelete);\n }\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n if (loading.value) {\n return;\n }\n loading.value = true;\n if (reset) {\n dfirst.value = 0;\n comments.value.length = 0;\n }\n const param = {\n first: dfirst.value,\n size: dsize.value,\n podcastId: props.podcast?.podcastId,\n sort: sortType.value,\n answerTo: props.answerToComment,\n hideAnswers: !props.isFlatList,\n state: props.stateFilter.length ? props.stateFilter : undefined,\n organisationId: props.organisationId,\n };\n try {\n const data = await classicApi.fetchData<\n ListClassicReturn<CommentPodcast>\n >({\n api: 2,\n path: \"comment/list\",\n parameters: param,\n });\n if (reset) {\n comments.value.length = 0;\n }\n comments.value.push(...data.result);\n totalCount.value = data.count;\n dfirst.value += dsize.value;\n loading.value = false;\n } catch (errorWs) {\n // Errors sometimes occur, and shouldn't trigger anything too drastic,\n // so we only log it, instead of using handle403\n console.error(errorWs);\n error.value = true;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .scrolling-comments {\n max-height: 715px;\n overflow-y: auto;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column\">\n <div\n v-if=\"isNotAnAnswerList && 0 !== totalCount\"\n class=\"d-flex align-items-center mb-2\"\n >\n <div class=\"text-secondary me-3\">\n {{ t(\"Number comments\", { nb: totalCount }) }}\n </div>\n <button\n id=\"sort-by-comments\"\n class=\"btn btn-transparent d-flex align-items-center\"\n >\n <SortVariantIcon :size=\"30\" />\n <p class=\"ms-1\">{{ t(\"Sort by\") }}</p>\n </button>\n <ClassicPopover target=\"sort-by-comments\" :only-click=\"true\">\n <button\n v-for=\"sortOption in sortChoice\"\n :key=\"sortOption.value\"\n class=\"me-3 octopus-dropdown-item\"\n :disabled=\"sortOption.value === sortType\"\n @mousedown=\"changeSort(sortOption.value)\"\n @keydown.enter=\"changeSort(sortOption.value)\"\n >\n {{ sortOption.title }}\n </button>\n </ClassicPopover>\n </div>\n <div v-if=\"!loading && !error && 0 === totalCount\" class=\"text-center\">\n {{ t(\"No comments\") }}\n </div>\n <div\n ref=\"scrollComponent\"\n :class=\"isNotAnAnswerList ? 'scrolling-comments' : ''\"\n >\n <CommentItem\n v-for=\"(c, indexCom) in comments\"\n :id=\"'comItem' + c.commentId\"\n :key=\"c.commentId\"\n v-model:comment=\"comments[indexCom]\"\n :podcast=\"podcast\"\n :is-flat-list=\"isFlatList\"\n :config=\"config\"\n :organisation-id=\"organisationId\"\n @delete-comment=\"deleteComment(c.commentId)\"\n />\n <ClassicLoading\n :loading-text=\"loading && !error ? t('Loading content ...') : undefined\"\n :error-text=\"error ? t(`Comments loading error`) : undefined\"\n />\n <button\n v-if=\"!isNotAnAnswerList && dfirst + dsize < totalCount\"\n class=\"btn share-btn mx-2\"\n :title=\"t('See more')\"\n >\n <PlusIcon />\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SortVariantIcon from \"vue-material-design-icons/SortVariant.vue\";\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport ClassicLoading from \"../../form/ClassicLoading.vue\";\nimport classicApi from \"../../../api/classicApi\";\nimport { computed, defineAsyncComponent, onMounted, onUnmounted, Ref, ref, useTemplateRef, watch } from \"vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"@/stores/class/config/commentsConfig\";\nimport { ListClassicReturn } from \"@/stores/class/general/listReturn\";\nimport { useI18n } from \"vue-i18n\";\n/* eslint-disable */\nconst CommentItem: any = defineAsyncComponent(() => import('./item/CommentItem.vue'));\n/* eslint-enable */\nconst ClassicPopover = defineAsyncComponent(\n () => import(\"../../misc/ClassicPopover.vue\"),\n);\n\n//Props \nconst props = defineProps({\n size: { default: 10, type: Number },\n podcast: { default: undefined, type: Object as () => Podcast },\n reload: { default: false, type: Boolean },\n answerToComment: { default: undefined, type: Number },\n isFlatList: { default: false, type: Boolean },\n stateFilter: { default: \"\", type: String },\n organisationId: { default: undefined, type: String },\n nbComments: { default: 0, type: Number },\n config: { default: undefined, type: Object as () => CommentsConfig },\n eventToHandle: { default: undefined, type: Object as () => CommentMessage },\n})\n\n//Emits\nconst emit = defineEmits([\"update:nbComments\", \"commentDeleted\"]);\n\n//Data \nconst loading = ref(false);\nconst error = ref(false);\nconst dfirst = ref(0);\nconst dsize = ref(props.size);\nconst totalCount = ref(0);\nconst sortType = ref(\"DATE_DESC\");\nconst comments: Ref<Array<CommentPodcast>> = ref([]);\nconst scrollableSection: Ref<HTMLElement | undefined> = ref(undefined);\nconst scrollComponentRef = useTemplateRef('scrollComponent');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst isNotAnAnswerList = computed(() => undefined === props.answerToComment);\nconst changed = computed(() => `${props.size}|${props.reload}|${dsize.value}|${props.stateFilter}|${props.podcast?.podcastId}|${props.organisationId}`);\nconst sortChoice = computed(() =>{\n return [\n { title: t(\"The most recent\"), value: \"DATE_DESC\" },\n { title: t(\"Top comments\"), value: \"LIKE_DESC\" },\n ];\n});\n\n//Watch\nwatch(totalCount, () => {emit(\"update:nbComments\", totalCount.value)});\nwatch(changed, () => {fetchContent(true);});\nwatch(()=>props.eventToHandle, async () => {\n if (!props.eventToHandle) {\n return;\n }\n if (props.answerToComment === props.eventToHandle.comment.answerTo) {\n switch (props.eventToHandle.type) {\n case \"CREATE\":\n createComment(props.eventToHandle.comment);\n break;\n case \"UPDATE\":\n updateComment(props.eventToHandle.comment);\n break;\n case \"DELETE\":\n deleteComment(props.eventToHandle.comment.commentId);\n break;\n default:\n break;\n }\n return;\n }\n if (undefined !== props.eventToHandle.comment.answerTo) {\n const comItem = scrollComponentRef?.value?.querySelector('#comItem' + props.eventToHandle.comment.answerTo) as InstanceType<typeof CommentItem>;\n comItem?.receiveEvent(props.eventToHandle);\n }\n}, {deep: true});\n\n\nonMounted(()=>{\n fetchContent(true);\n if (isNotAnAnswerList.value) {\n scrollableSection.value = scrollComponentRef?.value as HTMLElement;\n scrollableSection.value.addEventListener(\"scroll\", handleScroll);\n }\n})\n\nonUnmounted(()=>{\n if (isNotAnAnswerList.value) {\n scrollableSection.value?.removeEventListener(\"scroll\", handleScroll);\n }\n})\n\n\n//Methods\nfunction changeSort(sortTypeUpdate: string) {\n sortType.value = sortTypeUpdate;\n fetchContent(true);\n}\nfunction handleScroll() {\n if (\n scrollableSection.value &&\n totalCount.value > comments.value.length &&\n scrollableSection.value.scrollTop +\n scrollableSection.value.clientHeight >=\n scrollableSection.value.scrollHeight\n ) {\n fetchContent(false);\n }\n}\nfunction findCommentInCommentsLoaded(commentId: number) {\n return comments.value.findIndex(\n (element: CommentPodcast) => element.commentId === commentId,\n );\n}\nfunction createComment(comment: CommentPodcast) {\n comments.value.unshift(comment);\n totalCount.value += 1;\n}\nfunction updateComment(comment: CommentPodcast) {\n const commentIndex = findCommentInCommentsLoaded(comment.commentId);\n if (-1 !== commentIndex) {\n comments.value.splice(commentIndex, 1, comment);\n }\n}\nfunction deleteComment(commentIdToDelete: number) {\n const commentIndex = findCommentInCommentsLoaded(commentIdToDelete);\n if (-1 !== commentIndex) {\n comments.value.splice(commentIndex, 1);\n totalCount.value -= 1;\n emit(\"commentDeleted\", commentIdToDelete);\n }\n}\nasync function fetchContent(reset: boolean): Promise<void> {\n if (loading.value) {\n return;\n }\n loading.value = true;\n if (reset) {\n dfirst.value = 0;\n comments.value.length = 0;\n }\n const param = {\n first: dfirst.value,\n size: dsize.value,\n podcastId: props.podcast?.podcastId,\n sort: sortType.value,\n answerTo: props.answerToComment,\n hideAnswers: !props.isFlatList,\n state: props.stateFilter.length ? props.stateFilter : undefined,\n organisationId: props.organisationId,\n };\n try {\n const data = await classicApi.fetchData<\n ListClassicReturn<CommentPodcast>\n >({\n api: 2,\n path: \"comment/list\",\n parameters: param,\n });\n if (reset) {\n comments.value.length = 0;\n }\n comments.value.push(...data.result);\n totalCount.value = data.count;\n dfirst.value += dsize.value;\n loading.value = false;\n } catch (errorWs) {\n // Errors sometimes occur, and shouldn't trigger anything too drastic,\n // so we only log it, instead of using handle403\n console.error(errorWs);\n error.value = true;\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.octopus-app {\n .scrolling-comments {\n max-height: 715px;\n overflow-y: auto;\n }\n}\n</style>\n"],"mappings":"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"}
|