@saooti/octopus-sdk 42.3.0 → 42.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AdvancedSearch-DEh3iiuK.mjs → AdvancedSearch-BTbYmlMm.mjs} +8 -8
- package/dist/AdvancedSearch-C6BJzvGT.mjs.map +1 -0
- package/dist/AdvancedSearch-ChnJq71j.mjs.map +1 -0
- package/dist/AdvancedSearch-ChtUj3vS.mjs.map +1 -0
- package/dist/AdvancedSearch-D-9o5KzI.mjs.map +1 -0
- package/dist/AdvancedSearch-DH5YTENK.mjs.map +1 -0
- package/dist/AdvancedSearch-DN3WFduh.mjs.map +1 -0
- package/dist/AdvancedSearch-EpYd6K3d.mjs.map +1 -0
- package/dist/AdvancedSearch-PRJyRSID.mjs.map +1 -0
- package/dist/AdvancedSearch-_E2nwQ-A.mjs.map +1 -0
- package/dist/AdvancedSearch-cLjakm-6.mjs.map +1 -0
- package/dist/AdvancedSearch-k-fQfSBk.mjs.map +1 -0
- package/dist/AdvancedSearch-zFJq-WlO.mjs.map +1 -0
- package/dist/CategoryChooser-CSUjIA0D.mjs.map +1 -0
- package/dist/{CategoryChooser-CeF4n-nw.mjs → CategoryChooser-fAUMJNHu.mjs} +1 -1
- package/dist/CategoryFilter-B0S_nCvS.mjs.map +1 -0
- package/dist/CategoryFilter-BVrLO_pV.mjs.map +1 -0
- package/dist/{CategoryFilter-Djmal5bY.mjs → CategoryFilter-CsYCvEnz.mjs} +3 -3
- package/dist/CategoryFilter-DVwCpHLx.mjs.map +1 -0
- package/dist/CategoryList-B_9GG6Z9.mjs.map +1 -0
- package/dist/{CategoryList-Dksp79Lm.mjs → CategoryList-CDoIfrDw.mjs} +2 -2
- package/dist/CategoryList-CUae_phb.mjs.map +1 -0
- package/dist/CategoryList-DxR0fpKd.mjs.map +1 -0
- package/dist/CategoryPage-C7aKDtgs.mjs.map +1 -0
- package/dist/{CategoryPage-DC8fMny_.mjs → CategoryPage-Cl5Yuxnu.mjs} +2 -2
- package/dist/CategoryPage-DlnAp05t.mjs.map +1 -0
- package/dist/CategoryPage-Dlq5XQBS.mjs.map +1 -0
- package/dist/{CategorySearchFilter-KVYBscdd.mjs → CategorySearchFilter-Cce5zxZB.mjs} +1 -1
- package/dist/CategorySearchFilter-EULpSE2e.mjs.map +1 -0
- package/dist/ChapteringModal-BplEGZj2.mjs.map +1 -0
- package/dist/ChapteringModal-C9yuW_IU.mjs.map +1 -0
- package/dist/{ChapteringModal-Be9FF1yz.mjs → ChapteringModal-DiiVSG7s.mjs} +1 -1
- package/dist/{CheckIdentityModal-nMszYOsW.mjs → CheckIdentityModal-BrnYeGdk.mjs} +3 -3
- package/dist/CheckIdentityModal-BtGdsv2v.mjs.map +1 -0
- package/dist/CheckIdentityModal-CpRO7ehH.mjs.map +1 -0
- package/dist/CheckIdentityModal-Cry9ra4J.mjs.map +1 -0
- package/dist/ClassicDatePicker--q1yYb-S.mjs.map +1 -0
- package/dist/ClassicDatePicker-4ouU5ov9.mjs.map +1 -0
- package/dist/ClassicDatePicker-B8bI9QfF.mjs.map +1 -0
- package/dist/ClassicDatePicker-BTJWityQ.mjs +186 -0
- package/dist/ClassicDatePicker-CChR9LBd.mjs.map +1 -0
- package/dist/ClassicDatePicker-CopJVkF0.mjs.map +1 -0
- package/dist/ClassicDatePicker-DgcJCevR.mjs.map +1 -0
- package/dist/ClassicDatePicker-NxGNQxHE.mjs.map +1 -0
- package/dist/ClassicDatePicker-dgdGXcRk.mjs.map +1 -0
- package/dist/{ClassicEmojiPicker-B4TAlZvo.mjs → ClassicEmojiPicker-C0gm-DA2.mjs} +1 -1
- package/dist/ClassicEmojiPicker-CJZD8H7L.mjs.map +1 -0
- package/dist/{ClassicHelpButton-DT7T8tMe.mjs → ClassicHelpButton-BnRLmYuh.mjs} +1 -1
- package/dist/ClassicHelpButton-Qb4AwvWI.mjs.map +1 -0
- package/dist/{ClassicInputText-DJ5kURGM.mjs → ClassicInputText-YsntJkHk.mjs} +1 -1
- package/dist/ClassicInputText-npkVSUoH.mjs.map +1 -0
- package/dist/ClassicMultiselect-2I2K-o4R.mjs.map +1 -0
- package/dist/{ClassicMultiselect-CDHdJjjV.mjs → ClassicMultiselect-C0yzVQ8Y.mjs} +1 -1
- package/dist/{ClassicNotifications-DEpVRRHg.mjs → ClassicNotifications-8CVfGSqL.mjs} +1 -1
- package/dist/ClassicNotifications-BFQ-R6kO.mjs.map +1 -0
- package/dist/ClassicNotifications-DR0PM1Xp.mjs.map +1 -0
- package/dist/{ClassicPopover-DWR50Nxi.mjs → ClassicPopover-BUb-1WMB.mjs} +1 -1
- package/dist/ClassicPopover-BhMY2SMo.mjs.map +1 -0
- package/dist/ClipboardModal-B_SZ6jDk.mjs.map +1 -0
- package/dist/{ClipboardModal-BUKwZYOf.mjs → ClipboardModal-ByVXPcKD.mjs} +1 -1
- package/dist/ClipboardModal-DjrZQRtY.mjs.map +1 -0
- package/dist/{CommentInput-US8ZtNj1.mjs → CommentInput-CrRstzua.mjs} +4 -4
- package/dist/CommentInput-DPMj47uE.mjs.map +1 -0
- package/dist/CommentInput-DbhOyi7c.mjs.map +1 -0
- package/dist/CommentInput-I97yysBW.mjs.map +1 -0
- package/dist/CommentItem-AItzrTBi.mjs.map +1 -0
- package/dist/CommentItem-B7vvJwZI.mjs.map +1 -0
- package/dist/{CommentItem-CqWZPmbj.mjs → CommentItem-BYU67TIu.mjs} +4 -4
- package/dist/CommentItem-CvNbH7Hf.mjs.map +1 -0
- package/dist/CommentList-BTyyCcX4.mjs.map +1 -0
- package/dist/CommentList-CWrf45Di.mjs.map +1 -0
- package/dist/CommentList-DP6wk4PD.mjs.map +1 -0
- package/dist/{CommentList-CSYpqgNM.mjs → CommentList-snIIudVC.mjs} +2 -2
- package/dist/CommentMoreActions-BNajG7wk.mjs.map +1 -0
- package/dist/CommentMoreActions-C1l4Y_HY.mjs.map +1 -0
- package/dist/CommentMoreActions-DPbJnEEV.mjs.map +1 -0
- package/dist/{CommentMoreActions-T5RN6BGq.mjs → CommentMoreActions-y202UxL5.mjs} +3 -3
- package/dist/{CommentName-DslRo9jg.mjs → CommentName-CHBlEM7I.mjs} +3 -3
- package/dist/CommentName-D5HN8bGE.mjs.map +1 -0
- package/dist/CommentName-DMom_kwo.mjs.map +1 -0
- package/dist/CommentName-OJrxjSxu.mjs.map +1 -0
- package/dist/CommentParentInfo-DWVF5Ewh.mjs.map +1 -0
- package/dist/CommentParentInfo-Do3IlO95.mjs.map +1 -0
- package/dist/{CommentParentInfo-DMX3nkCb.mjs → CommentParentInfo-DoEeaQGU.mjs} +2 -2
- package/dist/CommentParentInfo-DqHfDpKs.mjs.map +1 -0
- package/dist/{CommentPlayer-D3JEVPKX.mjs → CommentPlayer-B4MXG-gG.mjs} +2 -2
- package/dist/CommentPlayer-B67saxPf.mjs.map +1 -0
- package/dist/CommentPlayer-BUtEvkoV.mjs.map +1 -0
- package/dist/CommentSection-BIZMRePu.mjs.map +1 -0
- package/dist/CommentSection-CSehg6MD.mjs.map +1 -0
- package/dist/{CommentSection-Brn0VQcc.mjs → CommentSection-DZf04NxT.mjs} +3 -3
- package/dist/CommentSection-MDKioQWf.mjs.map +1 -0
- package/dist/CommentStore-BBm8MjxW.mjs.map +1 -0
- package/dist/{CommentStore-hPTYaDGr.mjs → CommentStore-CysGkBHp.mjs} +8 -8
- package/dist/CommentStore-F5MVSrDw.mjs.map +1 -0
- package/dist/ContractPreviewModal-CFSkXgB4.mjs.map +1 -0
- package/dist/ContractPreviewModal-CKL6Rb_V.mjs.map +1 -0
- package/dist/{ContractPreviewModal-48Je4Wuy.mjs → ContractPreviewModal-Dd-1KasR.mjs} +2 -2
- package/dist/DateFilter-BwYSwGc-.mjs.map +1 -0
- package/dist/DateFilter-CGTz76bp.mjs.map +1 -0
- package/dist/DateFilter-CfeYepTO.mjs.map +1 -0
- package/dist/{DateFilter-DztHuPm8.mjs → DateFilter-Cnb_S8Up.mjs} +1 -1
- package/dist/DateFilter-DFw66D2V.mjs.map +1 -0
- package/dist/DateFilter-DMOUMeCh.mjs.map +1 -0
- package/dist/DateFilter-DdbvVu9Q.mjs.map +1 -0
- package/dist/DateFilter-Dr1nRuvZ.mjs.map +1 -0
- package/dist/DateFilter-QGaXHkcu.mjs.map +1 -0
- package/dist/{DownloadPodcastButton-BYWuLoNg.mjs → DownloadPodcastButton-6HtR84aE.mjs} +2 -2
- package/dist/DownloadPodcastButton-D2qeKDPT.mjs.map +1 -0
- package/dist/DownloadPodcastButton-Tr_Y4qMu.mjs.map +1 -0
- package/dist/{EditCommentModal-DacFxzLx.mjs → EditCommentModal-BQ03B6LC.mjs} +2 -2
- package/dist/EditCommentModal-BZitN0Ir.mjs.map +1 -0
- package/dist/EditCommentModal-CcmCx_My.mjs.map +1 -0
- package/dist/EditCommentModal-sj0yXd7-.mjs.map +1 -0
- package/dist/EmissionGroupChooser--428fdeK.mjs.map +1 -0
- package/dist/EmissionGroupChooser-BJCKekKM.mjs.map +1 -0
- package/dist/EmissionGroupChooser-ByqGmsGw.mjs.map +1 -0
- package/dist/EmissionGroupChooser-Cb3CF0uc.mjs.map +1 -0
- package/dist/EmissionGroupChooser-D4vMQH8g.mjs.map +1 -0
- package/dist/{EmissionGroupChooser-KmzQjp7d.mjs → EmissionGroupChooser-De_IpEhW.mjs} +2 -2
- package/dist/EmissionInlineList-CdHQBjfR.mjs.map +1 -0
- package/dist/EmissionInlineList-CnA0d_k2.mjs.map +1 -0
- package/dist/EmissionInlineList-DLUvPBNl.mjs.map +1 -0
- package/dist/{EmissionInlineList-BoEIAbLu.mjs → EmissionInlineList-dlb4gUOP.mjs} +5 -5
- package/dist/EmissionItem-B39oFnXF.mjs.map +1 -0
- package/dist/EmissionItem-BkPLFhAo.mjs.map +1 -0
- package/dist/EmissionItem-CjAUdLb7.mjs.map +1 -0
- package/dist/{EmissionItem-BeQWw-UT.mjs → EmissionItem-Dm_IGNkw.mjs} +4 -4
- package/dist/EmissionList-B0UntYdC.mjs.map +1 -0
- package/dist/EmissionList-BQSI4xbi.mjs.map +1 -0
- package/dist/{EmissionList-DB7O1nj5.mjs → EmissionList-C4JEYLyK.mjs} +4 -4
- package/dist/EmissionList-C7lQBdlW.mjs.map +1 -0
- package/dist/EmissionPage-BF6s2ySo.mjs.map +1 -0
- package/dist/EmissionPage-B_-nDP5x.mjs.map +1 -0
- package/dist/EmissionPage-C-ESprrZ.mjs.map +1 -0
- package/dist/{EmissionPage-CNYJ1Puo.mjs → EmissionPage-C4XUdzzm.mjs} +10 -10
- package/dist/EmissionPage-CPXcNHGS.mjs.map +1 -0
- package/dist/EmissionPage-EMgXCVhK.mjs.map +1 -0
- package/dist/EmissionPage-mXbUqOh9.mjs.map +1 -0
- package/dist/{EmissionPlayerItem-S_yqupad.mjs → EmissionPlayerItem-BLIdolRe.mjs} +3 -3
- package/dist/EmissionPlayerItem-C27zJBhY.mjs.map +1 -0
- package/dist/EmissionPlayerItem-C3fkgEaL.mjs.map +1 -0
- package/dist/EmissionPlayerItem-DxXG20G1.mjs.map +1 -0
- package/dist/EmissionPresentationItem-BNnDSWGQ.mjs.map +1 -0
- package/dist/EmissionPresentationItem-BeETY65I.mjs.map +1 -0
- package/dist/{EmissionPresentationItem-kJgKN7Ju.mjs → EmissionPresentationItem-DYDwfqwp.mjs} +1 -1
- package/dist/EmissionPresentationList-BD7rIUok.mjs.map +1 -0
- package/dist/EmissionPresentationList-CGMyY_iu.mjs.map +1 -0
- package/dist/{EmissionPresentationList-Bg9X3CJP.mjs → EmissionPresentationList-Cxi7QnIs.mjs} +3 -3
- package/dist/EmissionsPage-4To0aRBA.mjs.map +1 -0
- package/dist/{EmissionsPage-BLpGH_PR.mjs → EmissionsPage-B0bXLncg.mjs} +5 -5
- package/dist/EmissionsPage-BIspB5uq.mjs.map +1 -0
- package/dist/EmissionsPage-BhUjdpEu.mjs.map +1 -0
- package/dist/EmissionsPage-Bn1R_ipo.mjs.map +1 -0
- package/dist/EmissionsPage-CNXwdJuV.mjs.map +1 -0
- package/dist/EmissionsPage-CPmhIbFf.mjs.map +1 -0
- package/dist/EmissionsPage-Cgzvn2h8.mjs.map +1 -0
- package/dist/EmissionsPage-D09zTpGb.mjs.map +1 -0
- package/dist/EmissionsPage-Dl7qaQT1.mjs.map +1 -0
- package/dist/EmissionsPage-DyleZtu_.mjs.map +1 -0
- package/dist/EmissionsPage-OVpc7k1Z.mjs.map +1 -0
- package/dist/EmissionsPage-wjKBLFM6.mjs.map +1 -0
- package/dist/Error403Page-B6Q7ijY3.mjs.map +1 -0
- package/dist/Error403Page-DF08mgCL.mjs.map +1 -0
- package/dist/{Error403Page-BB69doEn.mjs → Error403Page-DVmC5AOd.mjs} +2 -2
- package/dist/FooterGarSection-BWahCyz0.mjs.map +1 -0
- package/dist/{FooterGarSection-B9nsnpfF.mjs → FooterGarSection-BqPggI3o.mjs} +3 -3
- package/dist/FooterGarSection-CN8ZfO7e.mjs.map +1 -0
- package/dist/FooterSection-BOjr1LRb.mjs.map +1 -0
- package/dist/{FooterSection-DdGtlbk-.mjs → FooterSection-C5FEIJlU.mjs} +11 -11
- package/dist/FooterSection-nVRzKSYN.mjs.map +1 -0
- package/dist/HomeDropdown-3fl_xltN.mjs.map +1 -0
- package/dist/HomeDropdown-DGNkJhG2.mjs.map +1 -0
- package/dist/{HomeDropdown-BqwwLStt.mjs → HomeDropdown-Fx6kQAuH.mjs} +3 -3
- package/dist/HomeDropdown-PvmOUzYb.mjs.map +1 -0
- package/dist/{HomePage-JOUAKKfP.mjs → HomePage-7PT7HmHs.mjs} +3 -3
- package/dist/HomePage-D0Pbu_h1.mjs.map +1 -0
- package/dist/HomePage-D6_D1f33.mjs.map +1 -0
- package/dist/HomePage-ry0NfX1M.mjs.map +1 -0
- package/dist/InlineRubriqueList-BdpS1pVc.mjs.map +1 -0
- package/dist/InlineRubriqueList-BlcjQ4wR.mjs.map +1 -0
- package/dist/{InlineRubriqueList-BzcHKvM4.mjs → InlineRubriqueList-ezgexR-O.mjs} +1 -1
- package/dist/{LikeSection-MmbHMunb.mjs → LikeSection-CGu4yOCr.mjs} +3 -3
- package/dist/LikeSection-Cqj4y7qZ.mjs.map +1 -0
- package/dist/LikeSection-D95IMsZE.mjs.map +1 -0
- package/dist/LikeSection-HJla-zgI.mjs.map +1 -0
- package/dist/{ListPaginate-5uRK_QKJ.mjs → ListPaginate-BPdnBcpe.mjs} +2 -2
- package/dist/ListPaginate-DYzRnp-2.mjs.map +1 -0
- package/dist/ListPaginate-DyR7HLIc.mjs.map +1 -0
- package/dist/LiveHorizontalList-Bqe351Ut.mjs.map +1 -0
- package/dist/{LiveHorizontalList-CpoIRd4C.mjs → LiveHorizontalList-Bs-Rz5Ws.mjs} +3 -3
- package/dist/LiveHorizontalList-CaujYMT3.mjs.map +1 -0
- package/dist/LiveHorizontalList-DhsOZPT3.mjs.map +1 -0
- package/dist/{LiveList-DYFBrNgg.mjs → LiveList-BVOEnAEc.mjs} +5 -5
- package/dist/LiveList-DMB3FxUM.mjs.map +1 -0
- package/dist/LiveList-DOi4GV1x.mjs.map +1 -0
- package/dist/LiveList-Dh1mJVs7.mjs.map +1 -0
- package/dist/LivesPage-BvDLscOE.mjs.map +1 -0
- package/dist/{LivesPage-FSkmBdVw.mjs → LivesPage-DG5VY4HF.mjs} +2 -2
- package/dist/LivesPage-DmSlg7iH.mjs.map +1 -0
- package/dist/LivesPage-yy_5pI8R.mjs.map +1 -0
- package/dist/MapPage-3n-rigBK.mjs.map +1 -0
- package/dist/MapPage-5GwE8Z4E.mjs.map +1 -0
- package/dist/{MapPage-DpBt2gWF.mjs → MapPage-bIe2a9O1.mjs} +2 -2
- package/dist/MobileMenu-BSos17v3.mjs.map +1 -0
- package/dist/{MobileMenu-CjNMfHUP.mjs → MobileMenu-BZ5nOrYw.mjs} +5 -5
- package/dist/MobileMenu-C6W37oJg.mjs.map +1 -0
- package/dist/MobileMenu-K0rNwrW1.mjs.map +1 -0
- package/dist/NewsletterModal-CFGXBtID.mjs.map +1 -0
- package/dist/NewsletterModal-CZNwpCK5.mjs.map +1 -0
- package/dist/{NewsletterModal-BurqHTFc.mjs → NewsletterModal-DZk0mSVC.mjs} +1 -1
- package/dist/OctopusMultiselect-CFUGyzeM.mjs.map +1 -0
- package/dist/OctopusMultiselect-Cn1lqbQo.mjs.map +1 -0
- package/dist/OctopusMultiselect-esu8BY0J.mjs.map +1 -0
- package/dist/{OctopusMultiselect-C8qljiaH.mjs → OctopusMultiselect-noQPQMZQ.mjs} +7 -5
- package/dist/OrganisationChooser-BKfXLT4G.mjs.map +1 -0
- package/dist/{OrganisationChooser-Dx-OT7MW.mjs → OrganisationChooser-C48cWqbY.mjs} +3 -3
- package/dist/OrganisationChooser-PpO7MD7f.mjs.map +1 -0
- package/dist/OrganisationChooser-Y_jO6oXv.mjs.map +1 -0
- package/dist/{OrganisationChooserLight-BF5fT5pV.mjs → OrganisationChooserLight-Bcltbv-v.mjs} +1 -1
- package/dist/OrganisationChooserLight-Dh7wMH40.mjs.map +1 -0
- package/dist/OrganisationChooserLight-Dx_rkvpP.mjs.map +1 -0
- package/dist/PageNotFound-DeW-K_hL.mjs.map +1 -0
- package/dist/{PageNotFound-Cj-3Gv8T.mjs → PageNotFound-DogaoIFX.mjs} +2 -2
- package/dist/PageNotFound-gRuMWYCp.mjs.map +1 -0
- package/dist/ParticipantInlineList-CY_s6aJm.mjs.map +1 -0
- package/dist/{ParticipantInlineList-DEWqM1Io.mjs → ParticipantInlineList-D9pkOlvP.mjs} +4 -4
- package/dist/ParticipantInlineList-DSatB75C.mjs.map +1 -0
- package/dist/ParticipantItem-BG7yqRvD.mjs.map +1 -0
- package/dist/ParticipantItem-BTK25HID.mjs.map +1 -0
- package/dist/{ParticipantItem-BZAUIeSR.mjs → ParticipantItem-CbHOfVon.mjs} +3 -3
- package/dist/ParticipantPage-B4VnV8Yc.mjs.map +1 -0
- package/dist/ParticipantPage-B6Gzg6ul.mjs.map +1 -0
- package/dist/ParticipantPage-CNRNKTtC.mjs.map +1 -0
- package/dist/ParticipantPage-CpkhQjN2.mjs.map +1 -0
- package/dist/ParticipantPage-D61CCIqy.mjs.map +1 -0
- package/dist/ParticipantPage-Dh4JJCmJ.mjs.map +1 -0
- package/dist/{ParticipantPage-CzaHoWij.mjs → ParticipantPage-nTp2MbgB.mjs} +6 -6
- package/dist/{ParticipantsPage-goxJZQZZ.mjs → ParticipantsPage-Bbz9lQ_0.mjs} +6 -6
- package/dist/ParticipantsPage-COaQrVID.mjs.map +1 -0
- package/dist/ParticipantsPage-DRVVU7qp.mjs.map +1 -0
- package/dist/ParticipantsPage-DhKCWwKE.mjs.map +1 -0
- package/dist/{PlayerAnonymousModal-By96BtpA.mjs → PlayerAnonymousModal-B1iZ34O8.mjs} +2 -2
- package/dist/PlayerAnonymousModal-CBZStK-L.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-Cq6-Dn49.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-Cu2GGoAh.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DiXWtNmM.mjs.map +1 -0
- package/dist/PlayerAnonymousModal-DrQvDDym.mjs.map +1 -0
- package/dist/PlayerCompact-B9oeGx_g.mjs.map +1 -0
- package/dist/PlayerCompact-DtMginEc.mjs.map +1 -0
- package/dist/PlayerCompact-E8ydrdJ4.mjs.map +1 -0
- package/dist/{PlayerCompact-CjU8xxVH.mjs → PlayerCompact-_39FpkWo.mjs} +4 -4
- package/dist/PlayerComponent-4Wj5XlrS.mjs.map +1 -0
- package/dist/{PlayerComponent-B58O6U6i.mjs → PlayerComponent-B1RsmSf0.mjs} +47 -47
- package/dist/PlayerComponent-BGVzhVz9.mjs.map +1 -0
- package/dist/PlayerComponent-BIshvul2.mjs.map +1 -0
- package/dist/PlayerComponent-BO7wUL2M.mjs.map +1 -0
- package/dist/PlayerComponent-C222I0kT.mjs.map +1 -0
- package/dist/PlayerComponent-CjNZNKKz.mjs.map +1 -0
- package/dist/PlayerComponent-UG_c6_yr.mjs.map +1 -0
- package/dist/{PlayerLarge-CWL5SDzD.mjs → PlayerLarge-BxdyYLOt.mjs} +5 -5
- package/dist/PlayerLarge-CPUAoR9q.mjs.map +1 -0
- package/dist/PlayerLarge-DP7RsA83.mjs.map +1 -0
- package/dist/PlayerLarge-DpiFO7gk.mjs.map +1 -0
- package/dist/PlayerLarge-Dwtmu4gz.mjs.map +1 -0
- package/dist/PlayerLarge-HvRHSw4j.mjs.map +1 -0
- package/dist/PlayerLarge-X5uYCbyS.mjs.map +1 -0
- package/dist/PlayerLarge-qwr3iWSX.mjs.map +1 -0
- package/dist/{PlayerPlayButton-DmvV2YDi.mjs → PlayerPlayButton-BIsfgj0d.mjs} +4 -4
- package/dist/PlayerPlayButton-BQ4zJOrE.mjs.map +1 -0
- package/dist/PlayerPlayButton-kh4ZCdWh.mjs.map +1 -0
- package/dist/PlayerProgressBar-C-I3dk3l.mjs.map +1 -0
- package/dist/PlayerProgressBar-Dr-aFk7O.mjs.map +1 -0
- package/dist/{PlayerProgressBar-Cl_mF4nD.mjs → PlayerProgressBar-dSschgez.mjs} +2 -2
- package/dist/PlayerProgressBar-xc1ZFPJY.mjs.map +1 -0
- package/dist/PlayerStore-Aq_ukXXS.mjs.map +1 -0
- package/dist/PlayerStore-C_QCHbT3.mjs.map +1 -0
- package/dist/{PlayerStore-CKprkxa0.mjs → PlayerStore-DggKki80.mjs} +1 -1
- package/dist/PlayerVideo-BNfhaNUn.mjs.map +1 -0
- package/dist/{PlayerVideo-CVUU7nHT.mjs → PlayerVideo-BWyvKlJT.mjs} +3 -3
- package/dist/PlayerVideo-Bhok6qYS.mjs.map +1 -0
- package/dist/PlayerVideo-CN609whx.mjs.map +1 -0
- package/dist/PlayerVideo-DXG_PsWA.mjs.map +1 -0
- package/dist/PlayerVideo-DzUapxuZ.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-B1rRVLzy.mjs.map +1 -0
- package/dist/PlayerVideoDigiteka-B6qODy7b.mjs.map +1 -0
- package/dist/{PlayerVideoDigiteka-DZIqqN8a.mjs → PlayerVideoDigiteka-Dxx63XHI.mjs} +2 -2
- package/dist/PlayerVideoHls-BoAbvi2b.mjs.map +1 -0
- package/dist/PlayerVideoHls-BsHaaJB-.mjs.map +1 -0
- package/dist/PlayerVideoHls-C0ddorEn.mjs.map +1 -0
- package/dist/PlayerVideoHls-DBODDRmV.mjs.map +1 -0
- package/dist/PlayerVideoHls-DVNHm_O2.mjs.map +1 -0
- package/dist/{PlayerVideoHls-BirHOkZD.mjs → PlayerVideoHls-DzbyXZsQ.mjs} +9 -7
- package/dist/{PlaylistPage-DljbABur.mjs → PlaylistPage-BdbqXFwR.mjs} +35 -35
- package/dist/PlaylistPage-BgUaPJet.mjs.map +1 -0
- package/dist/PlaylistPage-BwF2VdGb.mjs.map +1 -0
- package/dist/PlaylistPage-CINwx3zE.mjs.map +1 -0
- package/dist/PlaylistPage-CPB647jC.mjs.map +1 -0
- package/dist/PlaylistPage-DDzE5GQs.mjs.map +1 -0
- package/dist/PlaylistPage-bm1nWKMg.mjs.map +1 -0
- package/dist/PlaylistsPage-BwkVSYIp.mjs.map +1 -0
- package/dist/PlaylistsPage-C62NUvz4.mjs.map +1 -0
- package/dist/{PlaylistsPage-BSW-uPWF.mjs → PlaylistsPage-D08i24b2.mjs} +13 -13
- package/dist/PlaylistsPage-Dvh77ql6.mjs.map +1 -0
- package/dist/PodcastFilterList-BBhzOM64.mjs.map +1 -0
- package/dist/PodcastFilterList-BKBjd36i.mjs.map +1 -0
- package/dist/{PodcastFilterList-YM90eN60.mjs → PodcastFilterList-CL5ebQ69.mjs} +3 -3
- package/dist/PodcastFilterList-D9NTYS1v.mjs.map +1 -0
- package/dist/{PodcastImage-BtiQlrb3.mjs → PodcastImage-BFA22TgZ.mjs} +6 -6
- package/dist/PodcastImage-BhQKB5te.mjs.map +1 -0
- package/dist/PodcastImage-CHx3bUzt.mjs.map +1 -0
- package/dist/PodcastInlineList-CcNd_Hbs.mjs.map +1 -0
- package/dist/{PodcastInlineList-B32BSFqN.mjs → PodcastInlineList-H6BxXx0A.mjs} +1 -1
- package/dist/PodcastInlineList-akLivgog.mjs.map +1 -0
- package/dist/PodcastInlineList-jI2EvXSo.mjs.map +1 -0
- package/dist/{PodcastInlineListTemplate-DTrS1UiG.mjs → PodcastInlineListTemplate-Chbi8aME.mjs} +3 -3
- package/dist/PodcastInlineListTemplate-DT9ZRs61.mjs.map +1 -0
- package/dist/PodcastInlineListTemplate-Dh1xF6xT.mjs.map +1 -0
- package/dist/PodcastIsPlaying-C0jcpBQd.mjs.map +1 -0
- package/dist/PodcastIsPlaying-H6P1CHAI.mjs.map +1 -0
- package/dist/{PodcastIsPlaying-BtmHnQi9.mjs → PodcastIsPlaying-ugHcefCy.mjs} +1 -1
- package/dist/{PodcastItem-TdtzApJ6.mjs → PodcastItem-Baki7W0q.mjs} +6 -6
- package/dist/PodcastItem-BfvK4ion.mjs.map +1 -0
- package/dist/PodcastItem-DEhA78z9.mjs.map +1 -0
- package/dist/PodcastItem-DwK_Yu1G.mjs.map +1 -0
- package/dist/PodcastList-B4ic6Cij.mjs.map +1 -0
- package/dist/PodcastList-C2R92m6S.mjs.map +1 -0
- package/dist/PodcastList-DWl6zz_z.mjs.map +1 -0
- package/dist/PodcastList-Dbt4nmKg.mjs.map +1 -0
- package/dist/PodcastList-KaQBRbR9.mjs.map +1 -0
- package/dist/{PodcastList-BAOJhQ7G.mjs → PodcastList-N_XOE-hI.mjs} +5 -5
- package/dist/PodcastList-d3SGLPvF.mjs.map +1 -0
- package/dist/{PodcastList-Bbe3yWiu.mjs → PodcastList-yjd_exFg.mjs} +4 -4
- package/dist/PodcastPage-B0pbZ5o_.mjs.map +1 -0
- package/dist/PodcastPage-BOA44Us4.mjs.map +1 -0
- package/dist/PodcastPage-Bs1wz-0E.mjs.map +1 -0
- package/dist/PodcastPage-C37Wa-qH.mjs.map +1 -0
- package/dist/PodcastPage-D0HYJxaK.mjs.map +1 -0
- package/dist/PodcastPage-D0U6-etV.mjs.map +1 -0
- package/dist/PodcastPage-DwMPY4po.mjs.map +1 -0
- package/dist/{PodcastPage-CAxub2do.mjs → PodcastPage-SUEm-Enm.mjs} +26 -26
- package/dist/PodcastPlayBar-Bo-W_dSK.mjs.map +1 -0
- package/dist/PodcastPlayBar-CBtMWlVc.mjs.map +1 -0
- package/dist/{PodcastPlayBar-gAEttclo.mjs → PodcastPlayBar-COU17bnm.mjs} +3 -3
- package/dist/PodcastPlayBar-Cpr3Ff7J.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-BvJPrxpI.mjs.map +1 -0
- package/dist/PodcastPlayBasicButton-CS5TNlmX.mjs.map +1 -0
- package/dist/{PodcastPlayBasicButton-7w91y2ow.mjs → PodcastPlayBasicButton-CVXhEUHB.mjs} +1 -1
- package/dist/{PodcastPlayButton-CQY0d6f-.mjs → PodcastPlayButton--gjzxW0o.mjs} +3 -3
- package/dist/PodcastPlayButton-BqvE4ZUl.mjs.map +1 -0
- package/dist/PodcastPlayButton-DW5Feest.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-BV31HaB2.mjs.map +1 -0
- package/dist/PodcastPlaylistInlineList-C-WYs6aE.mjs.map +1 -0
- package/dist/{PodcastPlaylistInlineList-BE5L8pSP.mjs → PodcastPlaylistInlineList-DsEHaYGZ.mjs} +7 -7
- package/dist/PodcastPlaylistInlineList-HEdFAq1l.mjs.map +1 -0
- package/dist/{PodcastPresentationList-DH6Rq0Z4.mjs → PodcastPresentationList-B9vORr36.mjs} +4 -4
- package/dist/PodcastPresentationList-ChqvdXY0.mjs.map +1 -0
- package/dist/PodcastPresentationList-Dit6HvJr.mjs.map +1 -0
- package/dist/{PodcastProgressBar-DoeG7lDj.mjs → PodcastProgressBar-B0FwZOTT.mjs} +3 -3
- package/dist/PodcastProgressBar-B8ONWq-Z.mjs.map +1 -0
- package/dist/PodcastProgressBar-BoGtJPAa.mjs.map +1 -0
- package/dist/PodcastProgressBar-DTRhKzW-.mjs.map +1 -0
- package/dist/{PodcastRawTranscript-Cktqtbcg.mjs → PodcastRawTranscript-BiuftXu-.mjs} +2 -2
- package/dist/PodcastRawTranscript-C8SJcaQE.mjs.map +1 -0
- package/dist/PodcastRawTranscript-nfzHM0k_.mjs.map +1 -0
- package/dist/PodcastRawTranscript-r5pRtZDg.mjs.map +1 -0
- package/dist/{PodcastSwiperList-DZ26-8xy.mjs → PodcastSwiperList-BKOYhrsH.mjs} +4 -4
- package/dist/PodcastSwiperList-Bsg0q89o.mjs.map +1 -0
- package/dist/PodcastSwiperList-BxsEv7_8.mjs.map +1 -0
- package/dist/PodcastSwiperList-Cju5VHcH.mjs.map +1 -0
- package/dist/PodcastmakerHeader-6fIwE70J.mjs.map +1 -0
- package/dist/PodcastmakerHeader-BBPEy__r.mjs.map +1 -0
- package/dist/{PodcastmakerHeader-MhdOrssb.mjs → PodcastmakerHeader-CIoJwm1L.mjs} +1 -1
- package/dist/PodcastsPage-967SI8kL.mjs.map +1 -0
- package/dist/{PodcastsPage-BXjTDNhn.mjs → PodcastsPage-B5NwPMyn.mjs} +5 -5
- package/dist/PodcastsPage-B7j2XxPZ.mjs.map +1 -0
- package/dist/PodcastsPage-BOzszXpc.mjs.map +1 -0
- package/dist/PodcastsPage-Bw0tzWoX.mjs.map +1 -0
- package/dist/PodcastsPage-D3TAYJV8.mjs.map +1 -0
- package/dist/PodcastsPage-DJsgHs7V.mjs.map +1 -0
- package/dist/PodcastsPage-DKWHzNNA.mjs.map +1 -0
- package/dist/PodcastsPage-DONqoMkB.mjs.map +1 -0
- package/dist/PodcastsPage-DUcfPeLD.mjs.map +1 -0
- package/dist/PodcastsPage-DWBgwD6o.mjs.map +1 -0
- package/dist/PodcastsPage-DZO4H1Ff.mjs.map +1 -0
- package/dist/PodcastsPage-DhEMPqCT.mjs.map +1 -0
- package/dist/ProductorSearch-BgmV_RCq.mjs.map +1 -0
- package/dist/{ProductorSearch-Z36zTZK4.mjs → ProductorSearch-BiUEs7mG.mjs} +3 -3
- package/dist/ProductorSearch-C4Nv2HzS.mjs.map +1 -0
- package/dist/ProductorSearch-DtVe_rU9.mjs.map +1 -0
- package/dist/ProgressBar-BMeSiueh.mjs.map +1 -0
- package/dist/ProgressBar-C15ih0uL.mjs.map +1 -0
- package/dist/{ProgressBar-CTOa-MDz.mjs → ProgressBar-CXB5q3-H.mjs} +2 -2
- package/dist/ProgressBar-DAUOWol1.mjs.map +1 -0
- package/dist/QrCode-BYLxjhwi.mjs.map +1 -0
- package/dist/QrCode-CCigeTaZ.mjs +109 -0
- package/dist/QrCode-CaXoOjo-.mjs.map +1 -0
- package/dist/QrCode-CcQR60hB.mjs.map +1 -0
- package/dist/QrCode-S_eLVZoz.mjs.map +1 -0
- package/dist/QrCode-XZMMiaX5.mjs.map +1 -0
- package/dist/QrCodeModal-BJOu1pAV.mjs.map +1 -0
- package/dist/QrCodeModal-BjT-0P0w.mjs.map +1 -0
- package/dist/QrCodeModal-BrabSTzq.mjs.map +1 -0
- package/dist/QrCodeModal-CjvbRYLW.mjs.map +1 -0
- package/dist/{QrCodeModal-DE3juCsN.mjs → QrCodeModal-Dpw_tCQ6.mjs} +1 -1
- package/dist/QrCodeModal-N2fjbP4S.mjs.map +1 -0
- package/dist/RadioCurrently-B_b8DV2w.mjs.map +1 -0
- package/dist/RadioCurrently-DufvDqm1.mjs.map +1 -0
- package/dist/{RadioCurrently-BlAhcc9E.mjs → RadioCurrently-ysRKhxKU.mjs} +3 -3
- package/dist/RadioHistory-B03bYMxm.mjs.map +1 -0
- package/dist/{RadioHistory-C7S79sZD.mjs → RadioHistory-DjsqvRgH.mjs} +2 -2
- package/dist/RadioHistory-Dv4gt9TM.mjs.map +1 -0
- package/dist/RadioImage-BFdiGgi_.mjs.map +1 -0
- package/dist/{RadioImage-BTn2Lquc.mjs → RadioImage-CSseYIVb.mjs} +4 -4
- package/dist/RadioImage-CrtD33dM.mjs.map +1 -0
- package/dist/RadioList--f7RDhHJ.mjs.map +1 -0
- package/dist/{RadioList-BD3zNwmk.mjs → RadioList-BZFFAobk.mjs} +4 -4
- package/dist/RadioList-De9NQ23Q.mjs.map +1 -0
- package/dist/RadioPage-BK1N--Kr.mjs.map +1 -0
- package/dist/RadioPage-BTtNFJI2.mjs.map +1 -0
- package/dist/RadioPage-CcK0y_5s.mjs.map +1 -0
- package/dist/RadioPage-Cqas0JX6.mjs.map +1 -0
- package/dist/{RadioPage-Bv3oupa1.mjs → RadioPage-Cwooj0wF.mjs} +4 -4
- package/dist/RadioPage-DhSB0sX5.mjs.map +1 -0
- package/dist/RadioPage-DlahFXYC.mjs.map +1 -0
- package/dist/RadioPlanning-BU1E8i4t.mjs.map +1 -0
- package/dist/{RadioPlanning-nkv_Mb_t.mjs → RadioPlanning-BmIxuUBI.mjs} +2 -2
- package/dist/RadioPlanning-Bx-N-xqX.mjs.map +1 -0
- package/dist/RadioProgressBar-0XM3ZTGU.mjs.map +1 -0
- package/dist/{RadioProgressBar-B2EgCOrK.mjs → RadioProgressBar-CQRGuPpC.mjs} +1 -1
- package/dist/RadioProgressBar-oyeS56mV.mjs.map +1 -0
- package/dist/{RecaptchaModal-w-9MlZ45.mjs → RecaptchaModal-BdW4xNlX.mjs} +1 -1
- package/dist/RecaptchaModal-DFlFQcHs.mjs.map +1 -0
- package/dist/RecaptchaModal-iLQ4UYOL.mjs.map +1 -0
- package/dist/ReportAbuseModal-BaPt2DLK.mjs.map +1 -0
- package/dist/ReportAbuseModal-BdZRe29L.mjs.map +1 -0
- package/dist/ReportAbuseModal-CH7Y153n.mjs.map +1 -0
- package/dist/{ReportAbuseModal-O1K7j7NV.mjs → ReportAbuseModal-jjGeXbB9.mjs} +4 -4
- package/dist/RightsIndicator-4pUsBq5j.mjs.map +1 -0
- package/dist/RightsIndicator-BH3jm_1O.mjs.map +1 -0
- package/dist/{RightsIndicator-D0cSu8j2.mjs → RightsIndicator-CPzWpH5Z.mjs} +1 -1
- package/dist/RightsIndicator-d8ffUFIj.mjs.map +1 -0
- package/dist/{RightsWrapper-BUj_1bwR.mjs → RightsWrapper-BTQ8GGUi.mjs} +5 -5
- package/dist/RightsWrapper-C3BRHqqo.mjs.map +1 -0
- package/dist/RightsWrapper-DJG9Ds6c.mjs.map +1 -0
- package/dist/RightsWrapper-nBURBTJX.mjs.map +1 -0
- package/dist/{RubriqueChoice-DaTWiDbl.mjs → RubriqueChoice-C-S-veJJ.mjs} +1 -1
- package/dist/RubriqueChoice-DsmnrUNs.mjs.map +1 -0
- package/dist/{RubriqueChooser-C33LorHa.mjs → RubriqueChooser-CNGn8LcP.mjs} +1 -1
- package/dist/RubriqueChooser-WmzcajTt.mjs.map +1 -0
- package/dist/RubriqueFilter-C9C_OiF5.mjs.map +1 -0
- package/dist/RubriqueFilter-DDI7DjMR.mjs.map +1 -0
- package/dist/RubriqueFilter-_8V1n9-x.mjs.map +1 -0
- package/dist/{RubriqueFilter-RgardNnQ.mjs → RubriqueFilter-rxiG8Wci.mjs} +3 -3
- package/dist/RubriqueList-99-nWSvq.mjs.map +1 -0
- package/dist/RubriqueList-BiRimk17.mjs.map +1 -0
- package/dist/RubriqueList-H_NHILuj.mjs.map +1 -0
- package/dist/{RubriqueList-DA9OYqUl.mjs → RubriqueList-rJj2IycY.mjs} +4 -4
- package/dist/RubriquePage-6KFPBPz8.mjs.map +1 -0
- package/dist/{RubriquePage-xgTOce7c.mjs → RubriquePage-BNEWnk3-.mjs} +4 -4
- package/dist/RubriquePage-Bpt-x7IK.mjs.map +1 -0
- package/dist/RubriquePage-Cwz9OqLO.mjs.map +1 -0
- package/dist/SearchPage-BtZnj3sA.mjs.map +1 -0
- package/dist/SearchPage-CbbbcXxs.mjs.map +1 -0
- package/dist/SearchPage-DMIV2AgJ.mjs.map +1 -0
- package/dist/{SearchPage-C3o5RPP0.mjs → SearchPage-DsZzPoEw.mjs} +2 -2
- package/dist/ShareAnonymous-BeSQozvM.mjs.map +1 -0
- package/dist/ShareAnonymous-BgsR6Ahp.mjs.map +1 -0
- package/dist/ShareAnonymous-CNWR1v6X.mjs.map +1 -0
- package/dist/{ShareAnonymous-bOwwEjPv.mjs → ShareAnonymous-DK2rnLl1.mjs} +3 -3
- package/dist/ShareAnonymous-DVpKBKbi.mjs.map +1 -0
- package/dist/ShareAnonymous-DWArDFT0.mjs.map +1 -0
- package/dist/ShareAnonymous-IaVbb-rp.mjs.map +1 -0
- package/dist/ShareModalPlayer-BHmsvxXF.mjs.map +1 -0
- package/dist/{ShareModalPlayer-D2oBrSly.mjs → ShareModalPlayer-Cfnk68-U.mjs} +1 -1
- package/dist/ShareModalPlayer-DLBU3lsU.mjs.map +1 -0
- package/dist/ShareModalPlayer-O-CmDObW.mjs.map +1 -0
- package/dist/ShareModalPlayer-QYu8Q9ks.mjs.map +1 -0
- package/dist/ShareModalPlayer-Vga-96DM.mjs.map +1 -0
- package/dist/{ShareNewsletter-CNw1LziN.mjs → ShareNewsletter-BWIAt47D.mjs} +1 -1
- package/dist/ShareNewsletter-BhFk6ARk.mjs.map +1 -0
- package/dist/ShareNewsletter-JCO4h7rk.mjs.map +1 -0
- package/dist/SharePlayer-C-RgIOh1.mjs.map +1 -0
- package/dist/{SharePlayer-CRri0YED.mjs → SharePlayer-C0aveOwy.mjs} +2 -2
- package/dist/SharePlayer-CNXrUj8M.mjs.map +1 -0
- package/dist/SharePlayer-D0-qY2dS.mjs.map +1 -0
- package/dist/SharePlayer-DQoFa7iv.mjs.map +1 -0
- package/dist/SharePlayer-DwNl3E7o.mjs.map +1 -0
- package/dist/{SharePlayerRadio-DVsegQMu.mjs → SharePlayerRadio-BqaeyEls.mjs} +2 -2
- package/dist/SharePlayerRadio-CHvCtKdZ.mjs.map +1 -0
- package/dist/SharePlayerRadio-CIsy-rCC.mjs.map +1 -0
- package/dist/SharePlayerRadio-ChfNulnf.mjs.map +1 -0
- package/dist/SharePlayerRadio-DA-W-306.mjs.map +1 -0
- package/dist/SharePlayerRadio-DwPeLUsk.mjs.map +1 -0
- package/dist/SharePlayerTypes-CeMV4n10.mjs.map +1 -0
- package/dist/SharePlayerTypes-DdyoQZDi.mjs.map +1 -0
- package/dist/{SharePlayerTypes-BxkEoBSL.mjs → SharePlayerTypes-DyrqFDVJ.mjs} +1 -1
- package/dist/ShareSocialsButtons-BHWzJVne.mjs.map +1 -0
- package/dist/ShareSocialsButtons-Bjx2ONvj.mjs.map +1 -0
- package/dist/{ShareSocialsButtons-BJ3DqvIO.mjs → ShareSocialsButtons-PqMXhFEk.mjs} +1 -1
- package/dist/{SimpleLayout-BJlcQjx9.mjs → SimpleLayout-9O9FZ69Q.mjs} +2 -2
- package/dist/SimpleLayout-B-QSfHeQ.mjs.map +1 -0
- package/dist/SimpleLayout-BauUacaf.mjs.map +1 -0
- package/dist/SimpleLayout-C29bPtbd.mjs.map +1 -0
- package/dist/SimpleLayout-Cjc3Q9Mb.mjs.map +1 -0
- package/dist/SimpleLayout-D4sVjQGu.mjs.map +1 -0
- package/dist/SimpleLayout-DaoXS--3.mjs.map +1 -0
- package/dist/SimpleLayout-vkWEZHLi.mjs.map +1 -0
- package/dist/{SmartLinkPage-DpD90wc7.mjs → SmartLinkPage-6HgX8LDv.mjs} +16 -16
- package/dist/SmartLinkPage-BcQmox7e.mjs.map +1 -0
- package/dist/SmartLinkPage-M_zB_Xp1.mjs.map +1 -0
- package/dist/SubscribeButtons-CyGYD1B1.mjs.map +1 -0
- package/dist/SubscribeButtons-DjjZQfOU.mjs.map +1 -0
- package/dist/{SubscribeButtons-zlRDGEzS.mjs → SubscribeButtons-IpzqDGIn.mjs} +3 -3
- package/dist/SubscribeButtons-yA2wowFc.mjs.map +1 -0
- package/dist/SwiperList-BNODHhLF.mjs.map +1 -0
- package/dist/SwiperList-Cqklwlg9.mjs.map +1 -0
- package/dist/{SwiperList-BlF3rPq5.mjs → SwiperList-O8nUg87R.mjs} +1 -1
- package/dist/TagList-4RDriU1J.mjs.map +1 -0
- package/dist/TagList-B5JPfT6j.mjs.map +1 -0
- package/dist/TagList-DVjqXiaA.mjs.map +1 -0
- package/dist/{TagList-BBHyaKp-.mjs → TagList-V9fAFATL.mjs} +2 -2
- package/dist/TagPage-BOsz6Bot.mjs.map +1 -0
- package/dist/TagPage-CALmJwxW.mjs.map +1 -0
- package/dist/{TagPage-DLpNBBjP.mjs → TagPage-CsFwN4sE.mjs} +3 -3
- package/dist/TagPage-DMuxYu6y.mjs.map +1 -0
- package/dist/{TopBar-CLWWRgr7.mjs → TopBar-0oG6YPlW.mjs} +37 -37
- package/dist/TopBar-CUCBss7X.mjs.map +1 -0
- package/dist/TopBar-CeQQ1hgH.mjs.map +1 -0
- package/dist/TopBar-DdxThCLR.mjs.map +1 -0
- package/dist/{UserButtonContent-BR3Rlqwp.mjs → UserButtonContent--VK68UsY.mjs} +6 -6
- package/dist/UserButtonContent-067qGenf.mjs.map +1 -0
- package/dist/UserButtonContent-Dqgyrgzv.mjs.map +1 -0
- package/dist/VideoModuleBox-9QgBI-Q-.mjs.map +1 -0
- package/dist/{VideoModuleBox-DxYJVwy3.mjs → VideoModuleBox-Bcqman6a.mjs} +1 -1
- package/dist/VideoModuleBox-BrVK2bDZ.mjs.map +1 -0
- package/dist/VideoModuleBox-DWO47_bZ.mjs.map +1 -0
- package/dist/VideoPage-4MB4zmnA.mjs.map +1 -0
- package/dist/VideoPage-BDGvtr1o.mjs.map +1 -0
- package/dist/{VideoPage-BaeTduNB.mjs → VideoPage-BjlaP2DU.mjs} +6 -6
- package/dist/VideoPage-C-yjvvhl.mjs.map +1 -0
- package/dist/VideoPage-C0_t7XMC.mjs.map +1 -0
- package/dist/VideoPage-CIDpzbkb.mjs.map +1 -0
- package/dist/VideoPage-D2V1oXGC.mjs.map +1 -0
- package/dist/VideoPage-DEJSfeFy.mjs.map +1 -0
- package/dist/{classicApi-pmODlqv5.mjs → classicApi-CGipMqf7.mjs} +267 -256
- package/dist/classicApi-CW1Z-HoF.mjs.map +1 -0
- package/dist/classicApi-OzToKuW1.mjs.map +1 -0
- package/dist/{downloadHelper-BAI-eqgA.mjs → downloadHelper-C3QooCxr.mjs} +1 -1
- package/dist/downloadHelper-D7dUpp5l.mjs.map +1 -0
- package/dist/downloadHelper-DwV3Mmd3.mjs.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.mjs +183 -183
- package/dist/src/components/form/ClassicDatePicker.vue.d.ts +24 -14
- package/dist/src/components/form/OctopusMultiselect.vue.d.ts +2 -0
- package/dist/src/i18n.d.ts +2 -0
- package/dist/tests.mjs +2 -2
- package/dist/useAdvancedParamInit-BKw9VZ53.mjs.map +1 -0
- package/dist/useAdvancedParamInit-CyRmbqqe.mjs.map +1 -0
- package/dist/{useAdvancedParamInit-Bgvt8758.mjs → useAdvancedParamInit-D5roUdHI.mjs} +10 -10
- package/dist/useDayjs-BKBB00TF.mjs.map +1 -0
- package/dist/useDayjs-UQLGUbw5.mjs.map +1 -0
- package/dist/{useDayjs-DGb3L4kJ.mjs → useDayjs-VUs19G9T.mjs} +1 -1
- package/dist/useErrorHandler-BKN3lhJ5.mjs.map +1 -0
- package/dist/useErrorHandler-C3XnRTmp.mjs.map +1 -0
- package/dist/{useErrorHandler-D9W2BURn.mjs → useErrorHandler-x9sjDYSz.mjs} +1 -1
- package/dist/useImageProxy-AEcmDpvW.mjs.map +1 -0
- package/dist/useImageProxy-BzTG_GCn.mjs.map +1 -0
- package/dist/{useImageProxy-8ndy_oTo.mjs → useImageProxy-CCpDzPmQ.mjs} +1 -1
- package/dist/useOrgaComputed-4PduqYTq.mjs.map +1 -0
- package/dist/useOrgaComputed-C2n0FBbv.mjs.map +1 -0
- package/dist/{useOrgaComputed-CBJ5sDOm.mjs → useOrgaComputed-D81Jihm-.mjs} +2 -2
- package/dist/{usePlayerLogicProgress-C2L7cMdd.mjs → usePlayerLogicProgress-BybmSAcs.mjs} +2 -2
- package/dist/usePlayerLogicProgress-CKoCod6g.mjs.map +1 -0
- package/dist/usePlayerLogicProgress-DZaPRo6p.mjs.map +1 -0
- package/dist/usePodcastView-B-2HPFAo.mjs.map +1 -0
- package/dist/{usePodcastView-CoDJJr6Y.mjs → usePodcastView-CkM-n6iO.mjs} +3 -3
- package/dist/usePodcastView-jdYTK1cW.mjs.map +1 -0
- package/dist/{usePresentationItem-DZZVm3hh.mjs → usePresentationItem-CLEGZwI3.mjs} +3 -3
- package/dist/usePresentationItem-Com4i40U.mjs.map +1 -0
- package/dist/usePresentationItem-OpMean0v.mjs.map +1 -0
- package/dist/{useRights-DOXtpjv5.mjs → useRights-BI2tXXjR.mjs} +1 -1
- package/dist/useRights-Bsv9hr7w.mjs.map +1 -0
- package/dist/useRights-DfudFDI6.mjs.map +1 -0
- package/dist/{useRubriquesFilterComputed-DoUOqOrJ.mjs → useRubriquesFilterComputed-D1yqLnK4.mjs} +1 -1
- package/dist/useRubriquesFilterComputed-DGDJp2gc.mjs.map +1 -0
- package/dist/useRubriquesFilterComputed-NNE-FElk.mjs.map +1 -0
- package/dist/{useRubriquesFilterParam-BE8BbmAQ.mjs → useRubriquesFilterParam-2eMd5ND7.mjs} +1 -1
- package/dist/useRubriquesFilterParam-DE5dYl6c.mjs.map +1 -0
- package/dist/useRubriquesFilterParam-DXYD4G0D.mjs.map +1 -0
- package/dist/useSharePlatforms-CrQ8r5vT.mjs.map +1 -0
- package/dist/useSharePlatforms-D124fJ_v.mjs.map +1 -0
- package/dist/{useSharePlatforms-ZWYDJZBy.mjs → useSharePlatforms-sXgVxsL5.mjs} +5 -5
- package/dist/{useSimplePageParam-DFKSEyiE.mjs → useSimplePageParam-BrtYXOUt.mjs} +1 -1
- package/dist/useSimplePageParam-CruL7rLG.mjs.map +1 -0
- package/dist/useSimplePageParam-SaBaPhb8.mjs.map +1 -0
- package/dist/{useTranslation-Dr7KU7Y4.mjs → useTranslation-BVQwv02Q.mjs} +9 -9
- package/dist/useTranslation-Bf2zP_6C.mjs.map +1 -0
- package/dist/useTranslation-BuhzZoI8.mjs.map +1 -0
- package/dist/useTranslation-OWqckMEl.mjs.map +1 -0
- package/dist/usefetchRadioData-D01ws733.mjs.map +1 -0
- package/dist/usefetchRadioData-DDRPoD4s.mjs.map +1 -0
- package/dist/{usefetchRadioData-SLWfXkYt.mjs → usefetchRadioData-zyQNqiV3.mjs} +1 -1
- package/package.json +1 -1
- package/src/components/composable/useTranslation.ts +2 -2
- package/src/components/display/sharing/QrCode.vue +63 -64
- package/src/components/form/ClassicDatePicker.vue +32 -20
- package/src/components/form/OctopusMultiselect.vue +3 -4
- package/src/components/misc/ClassicPopover.vue +1 -1
- package/src/components/misc/player/video/PlayerVideoHls.vue +160 -159
- package/src/i18n.ts +38 -29
- package/tests/components/form/ClassicDatePicker.spec.ts +32 -0
- package/tests/components/form/OctopusMultiselect.spec.ts +5 -4
- package/dist/ClassicDatePicker-B7UA9CqR.mjs +0 -187
- package/dist/QrCode-DuScZ7PD.mjs +0 -105
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareAnonymous-BeSQozvM.mjs","names":["classicApi","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_createVNode","_withCtx","_Fragment","_renderList","_withKeys","_createBlock","_resolveDynamicComponent","_toDisplayString","_createCommentVNode","_sfc_main"],"sources":["../src/components/display/sharing/ShareAnonymous.vue","../src/components/display/sharing/ShareAnonymous.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n","<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareAnonymous-BgsR6Ahp.mjs","names":["classicApi","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_createVNode","_withCtx","_Fragment","_renderList","_withKeys","_createBlock","_resolveDynamicComponent","_toDisplayString","_createCommentVNode","_sfc_main"],"sources":["../src/components/display/sharing/ShareAnonymous.vue","../src/components/display/sharing/ShareAnonymous.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n","<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuFA,MAAM,WAAW,2BAA2B,OAAO,0BAA0B,CAAA,MAAA,MAAA,EAAA,CAAA,CAAA;EAC7E,MAAM,kBAAkB,2BAChB,OAAO,iCACf;EACA,MAAM,cAAc,2BACZ,OAAO,6BACf;EACA,MAAM,iBAAiB,2BACf,OAAO,gCACf;EACA,MAAM,uBAAuB,2BACrB,OAAO,sCACf;EACA,MAAM,eAAe,2BACb,OAAO,yCACf;EACA,MAAM,sBAAsB,2BACpB,OAAO,gDACf;EACA,MAAM,UAAU,2BACR,OAAO,oCACf;EAGA,MAAM,QAAQ;EAWd,MAAM,sBAAsB,IAAI,KAAK;EACrC,MAAM,oBAAoB,IAAI,KAAK;EACnC,MAAM,gBAAgB,IAAI,KAAK;EAC/B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,YAAY,IAAI,IAAI;EAC1B,MAAM,6BAA6B,IAAI,KAAK;EAC5C,MAAM,0BAA0B,IAAI,KAAK;EACzC,MAAM,YAAY,IAAI,IAAI;EAC1B,MAAM,aAAa,IAAI,KAAK;EAC5B,MAAM,gBAAgB,IAAI,KAAK;EAC/B,MAAM,cAAc,eAAe,UAAU;EAI7C,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,YAAY,aAAa;EAC/B,MAAM,WAAW,YAAY;EAC7B,MAAM,iBAAiB,kBAAkB;EACzC,MAAM,EAAE,iBAAiB,aAAa;EAGtC,MAAM,UAAU,eAAe,OAAO,SAAS,IAAI;EACnD,MAAM,iBAAiB,eAAe,MAAM,kBAAkB,YAAY;EAC1E,MAAM,SAAS,eAAe;GAC5B,MAAM,MAAM,SAAS,SAAS;GAC9B,IACG,CAAC,eAAe,SAAS,MAAM,YAChC,MAAM,WACN,MAAM,UAEN,OAAO;GAET,IAAI,MAAM,eACR,OAAO,MAAM,iBAAiB,MAAM,gBAAgB;GAEtD,IAAI,MAAM,UACR,OAAO,MAAM,cAAc,MAAM,SAAS,aAAa;GAEzD,IAAI,MAAM,gBACR,OAAO,MAAM,eAAe,MAAM,iBAAiB;GAErD,OAAO;EACT,CAAC;EACD,MAAM,iBAAiB,eAAe;GACpC,IAAI,MAAM,eACR,OAAO,EAAE,+BAA+B;GAE1C,IAAI,MAAM,UACR,OAAO,EAAE,4BAA4B;GAEvC,OAAO,EAAE,4BAA4B;EACvC,CAAC;EAED,MAAM,kBAAkB,eAAe;GACrC,OAAO;IACL;KACE,OAAO,EAAE,oBAAoB;KAC7B,MAAM;KACN,WAAU;KACV,UAAU;IACZ;IACA;KACE,OAAO,EAAE,wBAAwB;KACjC,MAAM;KACN,WAAW,eAAe,UAAU,MAAM,YAAY,MAAM;KAC5D,UAAU;IACZ;IACA;KACE,OAAO,EAAE,kBAAkB;KAC3B,MAAM;KACN,WAAW,CAAC,eAAe,UAAU,2BAA2B,SAAU,wBAAwB,SAAS,UAAU;KACrH,UAAU;IACZ;IACA;KACE,OAAO,EAAE,kBAAkB;KAC3B,MAAM;KACN,WAAW,MAAM,WAAW,MAAM,YAAY,MAAM;KACpD,UAAU;IACZ;IACA;KACE,OAAO,EAAE,eAAe;KACxB,MAAM;KACN,WAAW;KACX,UAAU;IACZ;IACA;KACE,OAAO,eAAe;KACtB,MAAM;KACN,WAAW,OAAO,OAAO,SAAS,WAAW,SAAS,CAAC,UAAU;KACjE,UAAU;IACZ;GACF;EACF,CAAC;EAGD,oBAAkB,iBAAiB,CAAC;EAIpC,eAAe,mBAAmB;GAChC,IAAI,KAAA,MAAc,MAAM,eACtB,WAAW,QAAQ,MAAMA,mBAAW,UAAmB;IACrD,KAAK;IACL,MAAM,4BAA4B,MAAM;IACxC,WAAW;GACb,CAAC;QAED,WAAW,QAAQ;GAErB,2BAA2B;GAC3B,IAAI,CAAC,MAAM,gBACT;GAEF,MAAM,aAAa,MAAM,eAAe,kBAAkB,MAAM,cAAc;GAC9E,UAAU,QAAQ,WAAW,WAAW;GACxC,UAAU,QAAQ;EACpB;EACA,SAAS,6BAA6B;GACpC,MAAM,gBAAgB,MAAM,SAAS,SAAS,eAAe,MAAM,UAAU;GAC7E,IAAI,CAAC,eAAiB;GACtB,IAAI,cAAc,WAChB,wBAAwB,QAAQ,WAAW,cAAc;GAE3D,IAAI,cAAc,cAChB,2BAA2B,QAAQ,WAAW,cAAc;EAEhE;EAEA,SAAS,YAAY,MAAc;GACjC,QAAQ,MAAR;IACE,KAAK;KACH,sBAAc,WAAW,QAAQ,OAAO,SAAS;KACjD;IACF,KAAK;KACH,KAAK,cAAc;KACnB;IACF,KAAK;KACH,kBAAkB,QAAQ;KAC1B;IACF,KAAK;KACH,cAAc,QAAQ;KACtB;IACF,KAAK;KACH,WAAW,QAAQ;KACnB;IACF,KAAK,UACH,cAAc,QAAQ;GAI1B;EACF;EAEA,SAAS,gBAAsB;GAE7B,MAAM,kBAAkB,GAAG,IADT,IAAI,OAAO,SAAS,IACX,CAAA,CAAM,OAAO;GACxC,IAAI;GAEJ,IAAI,MAAM,UACR,MAAM,aAAa;IACjB,OAAO,MAAM,SAAS;IACtB,YAAY,MAAM,UAAU;GAC9B,GAAG,EACD,gBACF,CAAC;QACI,IAAI,MAAM,UACf,MAAM,aAAa;IACjB,OAAO,MAAM,SAAS;IACtB,YAAY,MAAM,UAAU;GAC9B,GAAG,EACD,gBACF,CAAC;GAEH,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,MAAM;EACnC;EAEA,SAAS,YAAkB;GACzB,IAAI,CAAC,oBAAoB,OAAO;IAC9B,oBAAoB,QAAQ;IAC5B,iBAAiB;KACf,UAAU;IACZ,GAAG,GAAG;GACR,OACE,CAAC,aAAa,MAAA,CAAwC,KAAK,EAAE,mBAAmB,CAAC;EAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrRgB,IAAA,aAAA,EAAA,OAAM,OAAM;;CA7Bd,OAAA,CAAA,OAAA,aAAS,CAAK,OAAA,aAA1BC,UAAA,GAAAC,mBAiEM,OAAA,YAAA;EAhEJC,mBAMS,UAAA;GALP,IAAG;GACF,OAAKC,eAAE,OAAA,QAAQ;GACf,OAAO,OAAA,EAAC,OAAA;EAET,GAAA,CAAAC,YAAsB,OAAA,qBAAA,CAAA,GAAA,IAAA,UAAA;EAExBA,YAwBiB,OAAA,mBAAA;GAvBf,QAAO;GACN,kBAAgB,OAAA;GAChB,YAAU;GACV,YAAU;GACV,cAAY;;GAGX,SAAAC,cAAiC,EADnCL,UAAA,IAAA,GAAAC,mBAgBMK,UAAA,MAAAC,WAfa,OAAA,kBAAV,WAAM;IADf,OAAAP,UAAA,GAAAC,mBAgBM,OAAA;KAdH,KAAK,OAAO;KACb,OAAM;IAGE,GAAA,CAAA,OAAO,aADfD,UAAA,GAAAC,mBAUS,UAAA;KARN,KAAK,OAAO;KACb,OAAM;KACL,OAAO,OAAO;KACd,cAAS,WAAE,OAAA,YAAY,OAAO,QAAQ;KACtC,WAAOO,UAAA,WAAQ,OAAA,YAAY,OAAO,QAAQ,GAAA,CAAA,OAAA,CAAA;IAE3C,GAAA,EAAAR,UAAA,GAAAS,YAA+BC,wBAAf,OAAO,IAAI,CAAA,IAC3BR,mBAA4C,QAA5C,YAA4CS,gBAAtB,OAAO,KAAK,GAAA,CAAA,CAAA,GAAA,IAAA,UAAA,KAAAC,mBAAA,QAAA,IAAA,CAAA,CAAA;;;;EAKhC,OAAA,iBADRZ,UAAA,GAAAS,YAKE,OAAA,gBAAA;;GAHC,YAAU,OAAA;GACV,kBAAgB,OAAA;GAChB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,gBAAa;;EAGf,OAAA,iBADRT,UAAA,GAAAS,YAOE,OAAA,yBAAA;;GALC,SAAS,OAAA;GACT,UAAU,OAAA,YAAY,OAAA,SAAS;GAC/B,WAAS,CAAG,OAAA;GACZ,iBAAe,OAAA;GACf,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,gBAAa;;;;;;;EAGf,OAAA,qBADRT,UAAA,GAAAS,YAOE,OAAA,oBAAA;;GALC,UAAU;GACV,SAAS,OAAA;GACT,UAAU,OAAA;GACV,UAAU,OAAA;GACV,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,oBAAiB;;;;;;EAGnB,OAAA,cADRT,UAAA,GAAAS,YAIE,OAAA,mBAAA;;GAFC,MAAM,OAAA;GACN,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,aAAU;;EAGZ,OAAA,uBADRT,UAAA,GAAAS,YAIE,OAAA,aAAA;;GAFA,KAAI;GACJ,UAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareAnonymous-CNWR1v6X.mjs","names":["classicApi","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_createVNode","_withCtx","_Fragment","_renderList","_withKeys","_createBlock","_resolveDynamicComponent","_toDisplayString","_createCommentVNode","_sfc_main"],"sources":["../src/components/display/sharing/ShareAnonymous.vue","../src/components/display/sharing/ShareAnonymous.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n","<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as e, i as t, j as n, k as r, t as i } from "./classicApi-CGipMqf7.mjs";
|
|
2
2
|
import { t as a } from "./displayHelper-DQtoqc_6.mjs";
|
|
3
3
|
import { t as o } from "./useSharePath-D9G8Jdlb.mjs";
|
|
4
|
-
import { t as s } from "./ClassicPopover-
|
|
4
|
+
import { t as s } from "./ClassicPopover-BUb-1WMB.mjs";
|
|
5
5
|
import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createVNode as m, defineAsyncComponent as h, defineComponent as g, normalizeClass as _, onBeforeMount as v, openBlock as y, ref as b, renderList as x, resolveDynamicComponent as S, toDisplayString as C, unref as w, useTemplateRef as ee, withCtx as te, withKeys as ne } from "vue";
|
|
6
6
|
import { useI18n as re } from "vue-i18n";
|
|
7
7
|
import ie from "vue-material-design-icons/Qrcode.vue";
|
|
@@ -46,7 +46,7 @@ var ce = { key: 0 }, T = ["title"], E = [
|
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
setup(g) {
|
|
49
|
-
let O = h(() => import("./SnackBar-BL-mLRun.mjs").then((e) => e.n)), k = h(() => import("./NewsletterModal-
|
|
49
|
+
let O = h(() => import("./SnackBar-BL-mLRun.mjs").then((e) => e.n)), k = h(() => import("./NewsletterModal-DZk0mSVC.mjs")), A = h(() => import("./QrCodeModal-Dpw_tCQ6.mjs")), j = h(() => import("./ClipboardModal-ByVXPcKD.mjs")), M = h(() => import("./PlayerAnonymousModal-B1iZ34O8.mjs")), N = h(() => import("vue-material-design-icons/CodeTags.vue")), P = h(() => import("vue-material-design-icons/EmailNewsletter.vue")), F = h(() => import("vue-material-design-icons/Rss.vue")), I = g, L = b(!1), R = b(!1), z = b(!1), B = b(!1), V = b(!0), H = b(!1), U = b(!1), W = b(!0), G = b(!1), K = b(!1), le = ee("snackbar"), { t: q } = re(), J = t(), ue = r(), de = e(), { getSmartLink: fe } = o(), Y = l(() => window.location.href), X = l(() => n.generalParameters.podcastmaker), Z = l(() => {
|
|
50
50
|
let e = ue.apiUrl + "rss/";
|
|
51
51
|
return !X.value && I.playlist || I.podcast || I.emission ? "" : I.participantId ? e + "participant/" + I.participantId + ".rss" : I.playlist ? e + "playlist/" + I.playlist.playlistId + ".rss" : I.organisationId ? e + "productor/" + I.organisationId + ".rss" : "";
|
|
52
52
|
}), pe = l(() => I.participantId ? q("Subscribe to this participant") : I.emission ? q("Subscribe to this emission") : q("Subscribe to this RSS feed")), me = l(() => [
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareAnonymous-DVpKBKbi.mjs","names":["classicApi","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_createVNode","_withCtx","_Fragment","_renderList","_withKeys","_createBlock","_resolveDynamicComponent","_toDisplayString","_createCommentVNode","_sfc_main"],"sources":["../src/components/display/sharing/ShareAnonymous.vue","../src/components/display/sharing/ShareAnonymous.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n","<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareAnonymous-DWArDFT0.mjs","names":["classicApi","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_createVNode","_withCtx","_Fragment","_renderList","_withKeys","_createBlock","_resolveDynamicComponent","_toDisplayString","_createCommentVNode","_sfc_main"],"sources":["../src/components/display/sharing/ShareAnonymous.vue","../src/components/display/sharing/ShareAnonymous.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n","<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareAnonymous-IaVbb-rp.mjs","names":["classicApi","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_createVNode","_withCtx","_Fragment","_renderList","_withKeys","_createBlock","_resolveDynamicComponent","_toDisplayString","_createCommentVNode","_sfc_main"],"sources":["../src/components/display/sharing/ShareAnonymous.vue","../src/components/display/sharing/ShareAnonymous.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n","<template>\n <div v-if=\"!isLoading && !noSharing\">\n <button\n id=\"anonymous-share-button\"\n :class=\"btnClass\"\n :title=\"t('Share')\"\n >\n <DotsHorizontalIcon />\n </button>\n <ClassicPopover\n target=\"anonymous-share-button\"\n :relative-class=\"relativeClass\"\n :is-fixed=\"true\"\n :left-pos=\"true\"\n :only-click=\"true\"\n >\n <div \n v-for=\"button in dropdownButtons\"\n :key=\"button.icon\"\n class=\"d-flex flex-column\"\n >\n <button\n v-if=\"button.condition\"\n :key=\"button.title\"\n class=\"btn-transparent d-flex flex-nowrap justify-content-start align-items-center octopus-dropdown-item py-2\"\n :title=\"button.title\"\n @mousedown=\"clickButton(button.emitName)\"\n @keydown.enter=\"clickButton(button.emitName)\"\n >\n <component :is=\"button.icon\" />\n <span class=\"ms-1\">{{ button.title }}</span>\n </button>\n </div>\n </ClassicPopover>\n <QrCodeModal\n v-if=\"isQrCodeModal\"\n :url-page=\"urlPage\"\n :orga-for-color=\"organisationId\"\n @close=\"isQrCodeModal = false\"\n />\n <PlayerAnonymousModal\n v-if=\"isPlayerModal\"\n :podcast=\"podcast\"\n :emission=\"emission ?? podcast?.emission\"\n :exclusive=\"!playerCanBeSharedOthers\"\n :not-exclusive=\"playerCanBeSharedAnonymous\"\n @close=\"isPlayerModal = false\"\n />\n <NewsletterModal\n v-if=\"isNewsletterModal\"\n :closable=\"true\"\n :podcast=\"podcast\"\n :emission=\"emission\"\n :playlist=\"playlist\"\n @close=\"isNewsletterModal = false\"\n />\n <ClipboardModal\n v-if=\"isRssModal\"\n :link=\"rssUrl\"\n @close=\"isRssModal = false\"\n />\n <SnackBar\n v-if=\"lazyLoadingSnackbar\"\n ref=\"snackbar\"\n position=\"bottom-left\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport QrcodeIcon from \"vue-material-design-icons/Qrcode.vue\";\nimport LinkVariantIcon from \"vue-material-design-icons/LinkVariant.vue\";\nimport LinkVariantPlusIcon from \"vue-material-design-icons/LinkVariantPlus.vue\";\nimport DotsHorizontalIcon from \"vue-material-design-icons/DotsHorizontal.vue\";\nimport ClassicPopover from \"../../misc/ClassicPopover.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport { computed, defineAsyncComponent, onBeforeMount, ref, useTemplateRef } from \"vue\";\nimport { useApiStore } from \"../../../stores/ApiStore\";\nimport { useSaveFetchStore } from \"../../../stores/SaveFetchStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { Playlist } from \"@/stores/class/general/playlist\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport classicApi from \"../../../api/classicApi\";\nimport { useI18n } from \"vue-i18n\";\nimport { useSharePath } from \"@/components/composable/share/useSharePath\";\nconst SnackBar = defineAsyncComponent(() => import(\"../../misc/SnackBar.vue\"));\nconst NewsletterModal = defineAsyncComponent(\n () => import(\"../../misc/modal/NewsletterModal.vue\"),\n);\nconst QrCodeModal = defineAsyncComponent(\n () => import(\"../../misc/modal/QrCodeModal.vue\"),\n);\nconst ClipboardModal = defineAsyncComponent(\n () => import(\"../../misc/modal/ClipboardModal.vue\"),\n);\nconst PlayerAnonymousModal = defineAsyncComponent(\n () => import(\"../sharing/PlayerAnonymousModal.vue\"),\n);\nconst CodeTagsIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/CodeTags.vue\"),\n);\nconst EmailNewsletterIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/EmailNewsletter.vue\"),\n);\nconst RssIcon = defineAsyncComponent(\n () => import(\"vue-material-design-icons/Rss.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n emission: { default: undefined, type: Object as () => Emission },\n playlist: { default: undefined, type: Object as () => Playlist },\n participantId: { default: undefined, type: Number },\n organisationId: { default: undefined, type: String },\n relativeClass: { default: \"page-element\", type: String },\n btnClass: { default: \"btn btn-transparent\", type: String },\n})\n\n//Data \nconst lazyLoadingSnackbar = ref(false);\nconst isNewsletterModal = ref(false);\nconst isQrCodeModal = ref(false);\nconst displayRss = ref(false);\nconst noSharing = ref(true);\nconst playerCanBeSharedAnonymous = ref(false);\nconst playerCanBeSharedOthers = ref(false);\nconst isLoading = ref(true);\nconst isRssModal = ref(false);\nconst isPlayerModal = ref(false);\nconst snackBarRef = useTemplateRef('snackbar');\n\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst apiStore = useApiStore();\nconst saveFetchStore = useSaveFetchStore();\nconst { getSmartLink } = useSharePath();\n\n//Computed\nconst urlPage = computed(() => window.location.href);\nconst isPodcastmaker = computed(() => state.generalParameters.podcastmaker);\nconst rssUrl = computed(() => {\n const api = apiStore.apiUrl + \"rss/\";\n if (\n (!isPodcastmaker.value && props.playlist) ||\n props.podcast ||\n props.emission\n ) {\n return \"\";\n }\n if (props.participantId) {\n return api + \"participant/\" + props.participantId + \".rss\";\n }\n if (props.playlist) {\n return api + \"playlist/\" + props.playlist.playlistId + \".rss\";\n }\n if (props.organisationId) {\n return api + \"productor/\" + props.organisationId + \".rss\";\n }\n return \"\";\n});\nconst titleRssButton = computed(() => {\n if (props.participantId) {\n return t(\"Subscribe to this participant\");\n }\n if (props.emission) {\n return t(\"Subscribe to this emission\");\n }\n return t(\"Subscribe to this RSS feed\");\n});\n\nconst dropdownButtons = computed(() => {\n return [\n {\n title: t(\"Copy this page URL\"),\n icon: LinkVariantIcon,\n condition:true,\n emitName: \"link\",\n },\n {\n title: t(\"SmartLink - Share link\"),\n icon: LinkVariantPlusIcon,\n condition: isPodcastmaker.value && (props.emission || props.playlist),\n emitName: \"smartlink\",\n },\n {\n title: t(\"Share the player\"),\n icon: CodeTagsIcon,\n condition: !isPodcastmaker.value && (playerCanBeSharedAnonymous.value || (playerCanBeSharedOthers.value && authStore.authOrgaId)),\n emitName: \"player\",\n },\n {\n title: t(\"Share newsletter\"),\n icon: EmailNewsletterIcon,\n condition: props.podcast || props.emission || props.playlist,\n emitName: \"newsletter\",\n },\n {\n title: t(\"Share QR Code\"),\n icon: QrcodeIcon,\n condition: true,\n emitName: \"qrcode\",\n },\n {\n title: titleRssButton.value,\n icon: RssIcon,\n condition: '' !== rssUrl.value && displayRss.value && !authStore.isGarRole,\n emitName: \"rss\",\n },\n ];\n});\n\n\nonBeforeMount(()=>initShareButtons())\n\n\n//Methods\nasync function initShareButtons() {\n if (undefined !== props.participantId) {\n displayRss.value = await classicApi.fetchData<boolean>({\n api: 0,\n path: `rss/participants/allowed/${props.organisationId}`,\n isNotAuth: true,\n });\n } else {\n displayRss.value = true;\n }\n determinePlayerCanBeShared();\n if (!props.organisationId) {\n return;\n }\n const attributes = await saveFetchStore.getOrgaAttributes(props.organisationId);\n noSharing.value = \"true\" === attributes.noSharing;\n isLoading.value = false;\n}\nfunction determinePlayerCanBeShared() {\n const emissionAnnot = props.podcast?.emission.annotations ?? props.emission?.annotations;\n if (!emissionAnnot) { return }\n if (emissionAnnot.exclusive) {\n playerCanBeSharedOthers.value = \"true\" !== emissionAnnot.exclusive;\n }\n if (emissionAnnot.notExclusive) {\n playerCanBeSharedAnonymous.value = \"true\" === emissionAnnot.notExclusive;\n }\n}\n\nfunction clickButton(name: string) {\n switch (name) {\n case \"link\":\n displayHelper.onCopyCode(urlPage.value, afterCopy);\n break;\n case \"smartlink\":\n this.openSmartLink();\n break;\n case \"newsletter\":\n isNewsletterModal.value = true;\n break;\n case \"qrcode\":\n isQrCodeModal.value = true;\n break;\n case \"rss\":\n isRssModal.value = true;\n break;\n case \"player\": \n isPlayerModal.value = true;\n break;\n default:\n break;\n }\n}\n\nfunction openSmartLink(): void {\n const pmUrl = new URL(window.location.href);\n const podcastmakerUrl = `${pmUrl.origin}/`;\n let url: string;\n\n if (props.emission) {\n url = getSmartLink({\n title: props.emission.name,\n emissionId: props.emission?.emissionId,\n }, {\n podcastmakerUrl\n });\n } else if (props.playlist) {\n url = getSmartLink({\n title: props.playlist.title,\n playlistId: props.playlist?.playlistId,\n }, {\n podcastmakerUrl\n });\n }\n window.open(url, '_blank').focus();\n}\n\nfunction afterCopy(): void {\n if (!lazyLoadingSnackbar.value) {\n lazyLoadingSnackbar.value = true;\n setTimeout(() => {\n afterCopy();\n }, 500);\n } else {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Link in clipboard\"));\n }\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareModalPlayer-BHmsvxXF.mjs","names":["_openBlock","_createElementBlock","_Fragment","_createVNode","_withCtx","_createSlots","_createElementVNode","_toDisplayString","_renderList","_createTextVNode","_sfc_main"],"sources":["../src/components/misc/modal/ShareModalPlayer.vue","../src/components/misc/modal/ShareModalPlayer.vue"],"sourcesContent":["<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n","<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { t as e } from "./ClassicModal-Dl2IdzXZ.mjs";
|
|
|
2
2
|
import { t } from "./displayHelper-DQtoqc_6.mjs";
|
|
3
3
|
import { t as n } from "./ClassicNav-DYez6p1J.mjs";
|
|
4
4
|
import { t as r } from "./SnackBar-BL-mLRun.mjs";
|
|
5
|
-
import { t as i } from "./QrCode-
|
|
5
|
+
import { t as i } from "./QrCode-CCigeTaZ.mjs";
|
|
6
6
|
import { Fragment as a, computed as o, createElementBlock as s, createElementVNode as c, createSlots as l, createTextVNode as u, createVNode as d, defineComponent as f, openBlock as p, ref as m, renderList as h, toDisplayString as g, unref as _, useTemplateRef as v, withCtx as y } from "vue";
|
|
7
7
|
import { useI18n as b } from "vue-i18n";
|
|
8
8
|
import x from "vue-material-design-icons/ContentCopy.vue";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareModalPlayer-DLBU3lsU.mjs","names":["_openBlock","_createElementBlock","_Fragment","_createVNode","_withCtx","_createSlots","_createElementVNode","_toDisplayString","_renderList","_createTextVNode","_sfc_main"],"sources":["../src/components/misc/modal/ShareModalPlayer.vue","../src/components/misc/modal/ShareModalPlayer.vue"],"sourcesContent":["<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n","<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareModalPlayer-O-CmDObW.mjs","names":["_openBlock","_createElementBlock","_Fragment","_createVNode","_withCtx","_createSlots","_createElementVNode","_toDisplayString","_renderList","_createTextVNode","_sfc_main"],"sources":["../src/components/misc/modal/ShareModalPlayer.vue","../src/components/misc/modal/ShareModalPlayer.vue"],"sourcesContent":["<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n","<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareModalPlayer-QYu8Q9ks.mjs","names":["_openBlock","_createElementBlock","_Fragment","_createVNode","_withCtx","_createSlots","_createElementVNode","_toDisplayString","_renderList","_createTextVNode","_sfc_main"],"sources":["../src/components/misc/modal/ShareModalPlayer.vue","../src/components/misc/modal/ShareModalPlayer.vue"],"sourcesContent":["<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n","<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareModalPlayer-Vga-96DM.mjs","names":["_openBlock","_createElementBlock","_Fragment","_createVNode","_withCtx","_createSlots","_createElementVNode","_toDisplayString","_renderList","_createTextVNode","_sfc_main"],"sources":["../src/components/misc/modal/ShareModalPlayer.vue","../src/components/misc/modal/ShareModalPlayer.vue"],"sourcesContent":["<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n","<template>\n <ClassicModal\n id-modal=\"share-modal\"\n :title-modal=\"t('Share the player')\"\n @close=\"closePopup\"\n >\n <template #body>\n <ClassicNav v-model:active-tab=\"activeTab\" :tab-number=\"tabs.length\">\n <template v-for=\"(tab, index) in tabs\" #[index]>\n {{ tab }}\n </template>\n <template #tab0>\n <p class=\"word-break-word\">{{ embedLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n <template #tab1>\n <div class=\"d-flex flex-column flex-grow-1\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <p class=\"word-break-word\">{{ embedlyLink }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(embedlyLink, afterCopy)\"\n >\n <ContentCopyIcon />\n </button>\n </div>\n <QrCode :url=\"embedlyLink\" />\n </div>\n </template>\n <template v-if=\"directLink\" #tab2>\n <p class=\"word-break-word\">{{ directLink.audioUrl }}</p>\n <button\n class=\"btn-transparent\"\n :title=\"t('Copy')\"\n @click=\"onCopyCode(directLink.audioUrl, snackbarRef)\"\n >\n <ContentCopyIcon />\n </button>\n </template>\n </ClassicNav>\n </template>\n <template #footer>\n <button class=\"btn btn-primary m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n <SnackBar ref=\"snackbar\" position=\"bottom-left\" />\n</template>\n\n<script setup lang=\"ts\">\nimport ContentCopyIcon from \"vue-material-design-icons/ContentCopy.vue\";\nimport SnackBar from \"../SnackBar.vue\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport ClassicNav from \"../ClassicNav.vue\";\nimport QrCode from \"../../display/sharing/QrCode.vue\";\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \nconst props = defineProps({\n embedLink: { default: undefined, type: String },\n embedlyLink: { default: undefined, type: String },\n directLink: { default: undefined, type: Object as () => Podcast },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst activeTab = ref(0);\nconst snackBarRef = useTemplateRef('snackbar');\n\n//Composables\nconst { t } = useI18n();\n\n//Computed\nconst tabs = computed(() => {\n if (props.directLink) {\n return [t(\"Embed link\"),t(\"Embedly link\"),t(\"Direct link\"),];\n }\n return [t(\"Embed link\"), t(\"Embedly link\")];\n});\n\n\n//Methods\nfunction onCopyCode(link: string, callback: () => void){\n displayHelper.onCopyCode(link, callback);\n}\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction afterCopy(): void {\n (snackBarRef?.value as InstanceType<typeof SnackBar>).open(t(\"Data in clipboard\"),);\n}\n</script>\n"],"mappings":"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"}
|