@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.
Files changed (615) hide show
  1. package/dist/{AdvancedSearch-DEh3iiuK.mjs → AdvancedSearch-BTbYmlMm.mjs} +8 -8
  2. package/dist/AdvancedSearch-C6BJzvGT.mjs.map +1 -0
  3. package/dist/AdvancedSearch-ChnJq71j.mjs.map +1 -0
  4. package/dist/AdvancedSearch-ChtUj3vS.mjs.map +1 -0
  5. package/dist/AdvancedSearch-D-9o5KzI.mjs.map +1 -0
  6. package/dist/AdvancedSearch-DH5YTENK.mjs.map +1 -0
  7. package/dist/AdvancedSearch-DN3WFduh.mjs.map +1 -0
  8. package/dist/AdvancedSearch-EpYd6K3d.mjs.map +1 -0
  9. package/dist/AdvancedSearch-PRJyRSID.mjs.map +1 -0
  10. package/dist/AdvancedSearch-_E2nwQ-A.mjs.map +1 -0
  11. package/dist/AdvancedSearch-cLjakm-6.mjs.map +1 -0
  12. package/dist/AdvancedSearch-k-fQfSBk.mjs.map +1 -0
  13. package/dist/AdvancedSearch-zFJq-WlO.mjs.map +1 -0
  14. package/dist/CategoryChooser-CSUjIA0D.mjs.map +1 -0
  15. package/dist/{CategoryChooser-CeF4n-nw.mjs → CategoryChooser-fAUMJNHu.mjs} +1 -1
  16. package/dist/CategoryFilter-B0S_nCvS.mjs.map +1 -0
  17. package/dist/CategoryFilter-BVrLO_pV.mjs.map +1 -0
  18. package/dist/{CategoryFilter-Djmal5bY.mjs → CategoryFilter-CsYCvEnz.mjs} +3 -3
  19. package/dist/CategoryFilter-DVwCpHLx.mjs.map +1 -0
  20. package/dist/CategoryList-B_9GG6Z9.mjs.map +1 -0
  21. package/dist/{CategoryList-Dksp79Lm.mjs → CategoryList-CDoIfrDw.mjs} +2 -2
  22. package/dist/CategoryList-CUae_phb.mjs.map +1 -0
  23. package/dist/CategoryList-DxR0fpKd.mjs.map +1 -0
  24. package/dist/CategoryPage-C7aKDtgs.mjs.map +1 -0
  25. package/dist/{CategoryPage-DC8fMny_.mjs → CategoryPage-Cl5Yuxnu.mjs} +2 -2
  26. package/dist/CategoryPage-DlnAp05t.mjs.map +1 -0
  27. package/dist/CategoryPage-Dlq5XQBS.mjs.map +1 -0
  28. package/dist/{CategorySearchFilter-KVYBscdd.mjs → CategorySearchFilter-Cce5zxZB.mjs} +1 -1
  29. package/dist/CategorySearchFilter-EULpSE2e.mjs.map +1 -0
  30. package/dist/ChapteringModal-BplEGZj2.mjs.map +1 -0
  31. package/dist/ChapteringModal-C9yuW_IU.mjs.map +1 -0
  32. package/dist/{ChapteringModal-Be9FF1yz.mjs → ChapteringModal-DiiVSG7s.mjs} +1 -1
  33. package/dist/{CheckIdentityModal-nMszYOsW.mjs → CheckIdentityModal-BrnYeGdk.mjs} +3 -3
  34. package/dist/CheckIdentityModal-BtGdsv2v.mjs.map +1 -0
  35. package/dist/CheckIdentityModal-CpRO7ehH.mjs.map +1 -0
  36. package/dist/CheckIdentityModal-Cry9ra4J.mjs.map +1 -0
  37. package/dist/ClassicDatePicker--q1yYb-S.mjs.map +1 -0
  38. package/dist/ClassicDatePicker-4ouU5ov9.mjs.map +1 -0
  39. package/dist/ClassicDatePicker-B8bI9QfF.mjs.map +1 -0
  40. package/dist/ClassicDatePicker-BTJWityQ.mjs +186 -0
  41. package/dist/ClassicDatePicker-CChR9LBd.mjs.map +1 -0
  42. package/dist/ClassicDatePicker-CopJVkF0.mjs.map +1 -0
  43. package/dist/ClassicDatePicker-DgcJCevR.mjs.map +1 -0
  44. package/dist/ClassicDatePicker-NxGNQxHE.mjs.map +1 -0
  45. package/dist/ClassicDatePicker-dgdGXcRk.mjs.map +1 -0
  46. package/dist/{ClassicEmojiPicker-B4TAlZvo.mjs → ClassicEmojiPicker-C0gm-DA2.mjs} +1 -1
  47. package/dist/ClassicEmojiPicker-CJZD8H7L.mjs.map +1 -0
  48. package/dist/{ClassicHelpButton-DT7T8tMe.mjs → ClassicHelpButton-BnRLmYuh.mjs} +1 -1
  49. package/dist/ClassicHelpButton-Qb4AwvWI.mjs.map +1 -0
  50. package/dist/{ClassicInputText-DJ5kURGM.mjs → ClassicInputText-YsntJkHk.mjs} +1 -1
  51. package/dist/ClassicInputText-npkVSUoH.mjs.map +1 -0
  52. package/dist/ClassicMultiselect-2I2K-o4R.mjs.map +1 -0
  53. package/dist/{ClassicMultiselect-CDHdJjjV.mjs → ClassicMultiselect-C0yzVQ8Y.mjs} +1 -1
  54. package/dist/{ClassicNotifications-DEpVRRHg.mjs → ClassicNotifications-8CVfGSqL.mjs} +1 -1
  55. package/dist/ClassicNotifications-BFQ-R6kO.mjs.map +1 -0
  56. package/dist/ClassicNotifications-DR0PM1Xp.mjs.map +1 -0
  57. package/dist/{ClassicPopover-DWR50Nxi.mjs → ClassicPopover-BUb-1WMB.mjs} +1 -1
  58. package/dist/ClassicPopover-BhMY2SMo.mjs.map +1 -0
  59. package/dist/ClipboardModal-B_SZ6jDk.mjs.map +1 -0
  60. package/dist/{ClipboardModal-BUKwZYOf.mjs → ClipboardModal-ByVXPcKD.mjs} +1 -1
  61. package/dist/ClipboardModal-DjrZQRtY.mjs.map +1 -0
  62. package/dist/{CommentInput-US8ZtNj1.mjs → CommentInput-CrRstzua.mjs} +4 -4
  63. package/dist/CommentInput-DPMj47uE.mjs.map +1 -0
  64. package/dist/CommentInput-DbhOyi7c.mjs.map +1 -0
  65. package/dist/CommentInput-I97yysBW.mjs.map +1 -0
  66. package/dist/CommentItem-AItzrTBi.mjs.map +1 -0
  67. package/dist/CommentItem-B7vvJwZI.mjs.map +1 -0
  68. package/dist/{CommentItem-CqWZPmbj.mjs → CommentItem-BYU67TIu.mjs} +4 -4
  69. package/dist/CommentItem-CvNbH7Hf.mjs.map +1 -0
  70. package/dist/CommentList-BTyyCcX4.mjs.map +1 -0
  71. package/dist/CommentList-CWrf45Di.mjs.map +1 -0
  72. package/dist/CommentList-DP6wk4PD.mjs.map +1 -0
  73. package/dist/{CommentList-CSYpqgNM.mjs → CommentList-snIIudVC.mjs} +2 -2
  74. package/dist/CommentMoreActions-BNajG7wk.mjs.map +1 -0
  75. package/dist/CommentMoreActions-C1l4Y_HY.mjs.map +1 -0
  76. package/dist/CommentMoreActions-DPbJnEEV.mjs.map +1 -0
  77. package/dist/{CommentMoreActions-T5RN6BGq.mjs → CommentMoreActions-y202UxL5.mjs} +3 -3
  78. package/dist/{CommentName-DslRo9jg.mjs → CommentName-CHBlEM7I.mjs} +3 -3
  79. package/dist/CommentName-D5HN8bGE.mjs.map +1 -0
  80. package/dist/CommentName-DMom_kwo.mjs.map +1 -0
  81. package/dist/CommentName-OJrxjSxu.mjs.map +1 -0
  82. package/dist/CommentParentInfo-DWVF5Ewh.mjs.map +1 -0
  83. package/dist/CommentParentInfo-Do3IlO95.mjs.map +1 -0
  84. package/dist/{CommentParentInfo-DMX3nkCb.mjs → CommentParentInfo-DoEeaQGU.mjs} +2 -2
  85. package/dist/CommentParentInfo-DqHfDpKs.mjs.map +1 -0
  86. package/dist/{CommentPlayer-D3JEVPKX.mjs → CommentPlayer-B4MXG-gG.mjs} +2 -2
  87. package/dist/CommentPlayer-B67saxPf.mjs.map +1 -0
  88. package/dist/CommentPlayer-BUtEvkoV.mjs.map +1 -0
  89. package/dist/CommentSection-BIZMRePu.mjs.map +1 -0
  90. package/dist/CommentSection-CSehg6MD.mjs.map +1 -0
  91. package/dist/{CommentSection-Brn0VQcc.mjs → CommentSection-DZf04NxT.mjs} +3 -3
  92. package/dist/CommentSection-MDKioQWf.mjs.map +1 -0
  93. package/dist/CommentStore-BBm8MjxW.mjs.map +1 -0
  94. package/dist/{CommentStore-hPTYaDGr.mjs → CommentStore-CysGkBHp.mjs} +8 -8
  95. package/dist/CommentStore-F5MVSrDw.mjs.map +1 -0
  96. package/dist/ContractPreviewModal-CFSkXgB4.mjs.map +1 -0
  97. package/dist/ContractPreviewModal-CKL6Rb_V.mjs.map +1 -0
  98. package/dist/{ContractPreviewModal-48Je4Wuy.mjs → ContractPreviewModal-Dd-1KasR.mjs} +2 -2
  99. package/dist/DateFilter-BwYSwGc-.mjs.map +1 -0
  100. package/dist/DateFilter-CGTz76bp.mjs.map +1 -0
  101. package/dist/DateFilter-CfeYepTO.mjs.map +1 -0
  102. package/dist/{DateFilter-DztHuPm8.mjs → DateFilter-Cnb_S8Up.mjs} +1 -1
  103. package/dist/DateFilter-DFw66D2V.mjs.map +1 -0
  104. package/dist/DateFilter-DMOUMeCh.mjs.map +1 -0
  105. package/dist/DateFilter-DdbvVu9Q.mjs.map +1 -0
  106. package/dist/DateFilter-Dr1nRuvZ.mjs.map +1 -0
  107. package/dist/DateFilter-QGaXHkcu.mjs.map +1 -0
  108. package/dist/{DownloadPodcastButton-BYWuLoNg.mjs → DownloadPodcastButton-6HtR84aE.mjs} +2 -2
  109. package/dist/DownloadPodcastButton-D2qeKDPT.mjs.map +1 -0
  110. package/dist/DownloadPodcastButton-Tr_Y4qMu.mjs.map +1 -0
  111. package/dist/{EditCommentModal-DacFxzLx.mjs → EditCommentModal-BQ03B6LC.mjs} +2 -2
  112. package/dist/EditCommentModal-BZitN0Ir.mjs.map +1 -0
  113. package/dist/EditCommentModal-CcmCx_My.mjs.map +1 -0
  114. package/dist/EditCommentModal-sj0yXd7-.mjs.map +1 -0
  115. package/dist/EmissionGroupChooser--428fdeK.mjs.map +1 -0
  116. package/dist/EmissionGroupChooser-BJCKekKM.mjs.map +1 -0
  117. package/dist/EmissionGroupChooser-ByqGmsGw.mjs.map +1 -0
  118. package/dist/EmissionGroupChooser-Cb3CF0uc.mjs.map +1 -0
  119. package/dist/EmissionGroupChooser-D4vMQH8g.mjs.map +1 -0
  120. package/dist/{EmissionGroupChooser-KmzQjp7d.mjs → EmissionGroupChooser-De_IpEhW.mjs} +2 -2
  121. package/dist/EmissionInlineList-CdHQBjfR.mjs.map +1 -0
  122. package/dist/EmissionInlineList-CnA0d_k2.mjs.map +1 -0
  123. package/dist/EmissionInlineList-DLUvPBNl.mjs.map +1 -0
  124. package/dist/{EmissionInlineList-BoEIAbLu.mjs → EmissionInlineList-dlb4gUOP.mjs} +5 -5
  125. package/dist/EmissionItem-B39oFnXF.mjs.map +1 -0
  126. package/dist/EmissionItem-BkPLFhAo.mjs.map +1 -0
  127. package/dist/EmissionItem-CjAUdLb7.mjs.map +1 -0
  128. package/dist/{EmissionItem-BeQWw-UT.mjs → EmissionItem-Dm_IGNkw.mjs} +4 -4
  129. package/dist/EmissionList-B0UntYdC.mjs.map +1 -0
  130. package/dist/EmissionList-BQSI4xbi.mjs.map +1 -0
  131. package/dist/{EmissionList-DB7O1nj5.mjs → EmissionList-C4JEYLyK.mjs} +4 -4
  132. package/dist/EmissionList-C7lQBdlW.mjs.map +1 -0
  133. package/dist/EmissionPage-BF6s2ySo.mjs.map +1 -0
  134. package/dist/EmissionPage-B_-nDP5x.mjs.map +1 -0
  135. package/dist/EmissionPage-C-ESprrZ.mjs.map +1 -0
  136. package/dist/{EmissionPage-CNYJ1Puo.mjs → EmissionPage-C4XUdzzm.mjs} +10 -10
  137. package/dist/EmissionPage-CPXcNHGS.mjs.map +1 -0
  138. package/dist/EmissionPage-EMgXCVhK.mjs.map +1 -0
  139. package/dist/EmissionPage-mXbUqOh9.mjs.map +1 -0
  140. package/dist/{EmissionPlayerItem-S_yqupad.mjs → EmissionPlayerItem-BLIdolRe.mjs} +3 -3
  141. package/dist/EmissionPlayerItem-C27zJBhY.mjs.map +1 -0
  142. package/dist/EmissionPlayerItem-C3fkgEaL.mjs.map +1 -0
  143. package/dist/EmissionPlayerItem-DxXG20G1.mjs.map +1 -0
  144. package/dist/EmissionPresentationItem-BNnDSWGQ.mjs.map +1 -0
  145. package/dist/EmissionPresentationItem-BeETY65I.mjs.map +1 -0
  146. package/dist/{EmissionPresentationItem-kJgKN7Ju.mjs → EmissionPresentationItem-DYDwfqwp.mjs} +1 -1
  147. package/dist/EmissionPresentationList-BD7rIUok.mjs.map +1 -0
  148. package/dist/EmissionPresentationList-CGMyY_iu.mjs.map +1 -0
  149. package/dist/{EmissionPresentationList-Bg9X3CJP.mjs → EmissionPresentationList-Cxi7QnIs.mjs} +3 -3
  150. package/dist/EmissionsPage-4To0aRBA.mjs.map +1 -0
  151. package/dist/{EmissionsPage-BLpGH_PR.mjs → EmissionsPage-B0bXLncg.mjs} +5 -5
  152. package/dist/EmissionsPage-BIspB5uq.mjs.map +1 -0
  153. package/dist/EmissionsPage-BhUjdpEu.mjs.map +1 -0
  154. package/dist/EmissionsPage-Bn1R_ipo.mjs.map +1 -0
  155. package/dist/EmissionsPage-CNXwdJuV.mjs.map +1 -0
  156. package/dist/EmissionsPage-CPmhIbFf.mjs.map +1 -0
  157. package/dist/EmissionsPage-Cgzvn2h8.mjs.map +1 -0
  158. package/dist/EmissionsPage-D09zTpGb.mjs.map +1 -0
  159. package/dist/EmissionsPage-Dl7qaQT1.mjs.map +1 -0
  160. package/dist/EmissionsPage-DyleZtu_.mjs.map +1 -0
  161. package/dist/EmissionsPage-OVpc7k1Z.mjs.map +1 -0
  162. package/dist/EmissionsPage-wjKBLFM6.mjs.map +1 -0
  163. package/dist/Error403Page-B6Q7ijY3.mjs.map +1 -0
  164. package/dist/Error403Page-DF08mgCL.mjs.map +1 -0
  165. package/dist/{Error403Page-BB69doEn.mjs → Error403Page-DVmC5AOd.mjs} +2 -2
  166. package/dist/FooterGarSection-BWahCyz0.mjs.map +1 -0
  167. package/dist/{FooterGarSection-B9nsnpfF.mjs → FooterGarSection-BqPggI3o.mjs} +3 -3
  168. package/dist/FooterGarSection-CN8ZfO7e.mjs.map +1 -0
  169. package/dist/FooterSection-BOjr1LRb.mjs.map +1 -0
  170. package/dist/{FooterSection-DdGtlbk-.mjs → FooterSection-C5FEIJlU.mjs} +11 -11
  171. package/dist/FooterSection-nVRzKSYN.mjs.map +1 -0
  172. package/dist/HomeDropdown-3fl_xltN.mjs.map +1 -0
  173. package/dist/HomeDropdown-DGNkJhG2.mjs.map +1 -0
  174. package/dist/{HomeDropdown-BqwwLStt.mjs → HomeDropdown-Fx6kQAuH.mjs} +3 -3
  175. package/dist/HomeDropdown-PvmOUzYb.mjs.map +1 -0
  176. package/dist/{HomePage-JOUAKKfP.mjs → HomePage-7PT7HmHs.mjs} +3 -3
  177. package/dist/HomePage-D0Pbu_h1.mjs.map +1 -0
  178. package/dist/HomePage-D6_D1f33.mjs.map +1 -0
  179. package/dist/HomePage-ry0NfX1M.mjs.map +1 -0
  180. package/dist/InlineRubriqueList-BdpS1pVc.mjs.map +1 -0
  181. package/dist/InlineRubriqueList-BlcjQ4wR.mjs.map +1 -0
  182. package/dist/{InlineRubriqueList-BzcHKvM4.mjs → InlineRubriqueList-ezgexR-O.mjs} +1 -1
  183. package/dist/{LikeSection-MmbHMunb.mjs → LikeSection-CGu4yOCr.mjs} +3 -3
  184. package/dist/LikeSection-Cqj4y7qZ.mjs.map +1 -0
  185. package/dist/LikeSection-D95IMsZE.mjs.map +1 -0
  186. package/dist/LikeSection-HJla-zgI.mjs.map +1 -0
  187. package/dist/{ListPaginate-5uRK_QKJ.mjs → ListPaginate-BPdnBcpe.mjs} +2 -2
  188. package/dist/ListPaginate-DYzRnp-2.mjs.map +1 -0
  189. package/dist/ListPaginate-DyR7HLIc.mjs.map +1 -0
  190. package/dist/LiveHorizontalList-Bqe351Ut.mjs.map +1 -0
  191. package/dist/{LiveHorizontalList-CpoIRd4C.mjs → LiveHorizontalList-Bs-Rz5Ws.mjs} +3 -3
  192. package/dist/LiveHorizontalList-CaujYMT3.mjs.map +1 -0
  193. package/dist/LiveHorizontalList-DhsOZPT3.mjs.map +1 -0
  194. package/dist/{LiveList-DYFBrNgg.mjs → LiveList-BVOEnAEc.mjs} +5 -5
  195. package/dist/LiveList-DMB3FxUM.mjs.map +1 -0
  196. package/dist/LiveList-DOi4GV1x.mjs.map +1 -0
  197. package/dist/LiveList-Dh1mJVs7.mjs.map +1 -0
  198. package/dist/LivesPage-BvDLscOE.mjs.map +1 -0
  199. package/dist/{LivesPage-FSkmBdVw.mjs → LivesPage-DG5VY4HF.mjs} +2 -2
  200. package/dist/LivesPage-DmSlg7iH.mjs.map +1 -0
  201. package/dist/LivesPage-yy_5pI8R.mjs.map +1 -0
  202. package/dist/MapPage-3n-rigBK.mjs.map +1 -0
  203. package/dist/MapPage-5GwE8Z4E.mjs.map +1 -0
  204. package/dist/{MapPage-DpBt2gWF.mjs → MapPage-bIe2a9O1.mjs} +2 -2
  205. package/dist/MobileMenu-BSos17v3.mjs.map +1 -0
  206. package/dist/{MobileMenu-CjNMfHUP.mjs → MobileMenu-BZ5nOrYw.mjs} +5 -5
  207. package/dist/MobileMenu-C6W37oJg.mjs.map +1 -0
  208. package/dist/MobileMenu-K0rNwrW1.mjs.map +1 -0
  209. package/dist/NewsletterModal-CFGXBtID.mjs.map +1 -0
  210. package/dist/NewsletterModal-CZNwpCK5.mjs.map +1 -0
  211. package/dist/{NewsletterModal-BurqHTFc.mjs → NewsletterModal-DZk0mSVC.mjs} +1 -1
  212. package/dist/OctopusMultiselect-CFUGyzeM.mjs.map +1 -0
  213. package/dist/OctopusMultiselect-Cn1lqbQo.mjs.map +1 -0
  214. package/dist/OctopusMultiselect-esu8BY0J.mjs.map +1 -0
  215. package/dist/{OctopusMultiselect-C8qljiaH.mjs → OctopusMultiselect-noQPQMZQ.mjs} +7 -5
  216. package/dist/OrganisationChooser-BKfXLT4G.mjs.map +1 -0
  217. package/dist/{OrganisationChooser-Dx-OT7MW.mjs → OrganisationChooser-C48cWqbY.mjs} +3 -3
  218. package/dist/OrganisationChooser-PpO7MD7f.mjs.map +1 -0
  219. package/dist/OrganisationChooser-Y_jO6oXv.mjs.map +1 -0
  220. package/dist/{OrganisationChooserLight-BF5fT5pV.mjs → OrganisationChooserLight-Bcltbv-v.mjs} +1 -1
  221. package/dist/OrganisationChooserLight-Dh7wMH40.mjs.map +1 -0
  222. package/dist/OrganisationChooserLight-Dx_rkvpP.mjs.map +1 -0
  223. package/dist/PageNotFound-DeW-K_hL.mjs.map +1 -0
  224. package/dist/{PageNotFound-Cj-3Gv8T.mjs → PageNotFound-DogaoIFX.mjs} +2 -2
  225. package/dist/PageNotFound-gRuMWYCp.mjs.map +1 -0
  226. package/dist/ParticipantInlineList-CY_s6aJm.mjs.map +1 -0
  227. package/dist/{ParticipantInlineList-DEWqM1Io.mjs → ParticipantInlineList-D9pkOlvP.mjs} +4 -4
  228. package/dist/ParticipantInlineList-DSatB75C.mjs.map +1 -0
  229. package/dist/ParticipantItem-BG7yqRvD.mjs.map +1 -0
  230. package/dist/ParticipantItem-BTK25HID.mjs.map +1 -0
  231. package/dist/{ParticipantItem-BZAUIeSR.mjs → ParticipantItem-CbHOfVon.mjs} +3 -3
  232. package/dist/ParticipantPage-B4VnV8Yc.mjs.map +1 -0
  233. package/dist/ParticipantPage-B6Gzg6ul.mjs.map +1 -0
  234. package/dist/ParticipantPage-CNRNKTtC.mjs.map +1 -0
  235. package/dist/ParticipantPage-CpkhQjN2.mjs.map +1 -0
  236. package/dist/ParticipantPage-D61CCIqy.mjs.map +1 -0
  237. package/dist/ParticipantPage-Dh4JJCmJ.mjs.map +1 -0
  238. package/dist/{ParticipantPage-CzaHoWij.mjs → ParticipantPage-nTp2MbgB.mjs} +6 -6
  239. package/dist/{ParticipantsPage-goxJZQZZ.mjs → ParticipantsPage-Bbz9lQ_0.mjs} +6 -6
  240. package/dist/ParticipantsPage-COaQrVID.mjs.map +1 -0
  241. package/dist/ParticipantsPage-DRVVU7qp.mjs.map +1 -0
  242. package/dist/ParticipantsPage-DhKCWwKE.mjs.map +1 -0
  243. package/dist/{PlayerAnonymousModal-By96BtpA.mjs → PlayerAnonymousModal-B1iZ34O8.mjs} +2 -2
  244. package/dist/PlayerAnonymousModal-CBZStK-L.mjs.map +1 -0
  245. package/dist/PlayerAnonymousModal-Cq6-Dn49.mjs.map +1 -0
  246. package/dist/PlayerAnonymousModal-Cu2GGoAh.mjs.map +1 -0
  247. package/dist/PlayerAnonymousModal-DiXWtNmM.mjs.map +1 -0
  248. package/dist/PlayerAnonymousModal-DrQvDDym.mjs.map +1 -0
  249. package/dist/PlayerCompact-B9oeGx_g.mjs.map +1 -0
  250. package/dist/PlayerCompact-DtMginEc.mjs.map +1 -0
  251. package/dist/PlayerCompact-E8ydrdJ4.mjs.map +1 -0
  252. package/dist/{PlayerCompact-CjU8xxVH.mjs → PlayerCompact-_39FpkWo.mjs} +4 -4
  253. package/dist/PlayerComponent-4Wj5XlrS.mjs.map +1 -0
  254. package/dist/{PlayerComponent-B58O6U6i.mjs → PlayerComponent-B1RsmSf0.mjs} +47 -47
  255. package/dist/PlayerComponent-BGVzhVz9.mjs.map +1 -0
  256. package/dist/PlayerComponent-BIshvul2.mjs.map +1 -0
  257. package/dist/PlayerComponent-BO7wUL2M.mjs.map +1 -0
  258. package/dist/PlayerComponent-C222I0kT.mjs.map +1 -0
  259. package/dist/PlayerComponent-CjNZNKKz.mjs.map +1 -0
  260. package/dist/PlayerComponent-UG_c6_yr.mjs.map +1 -0
  261. package/dist/{PlayerLarge-CWL5SDzD.mjs → PlayerLarge-BxdyYLOt.mjs} +5 -5
  262. package/dist/PlayerLarge-CPUAoR9q.mjs.map +1 -0
  263. package/dist/PlayerLarge-DP7RsA83.mjs.map +1 -0
  264. package/dist/PlayerLarge-DpiFO7gk.mjs.map +1 -0
  265. package/dist/PlayerLarge-Dwtmu4gz.mjs.map +1 -0
  266. package/dist/PlayerLarge-HvRHSw4j.mjs.map +1 -0
  267. package/dist/PlayerLarge-X5uYCbyS.mjs.map +1 -0
  268. package/dist/PlayerLarge-qwr3iWSX.mjs.map +1 -0
  269. package/dist/{PlayerPlayButton-DmvV2YDi.mjs → PlayerPlayButton-BIsfgj0d.mjs} +4 -4
  270. package/dist/PlayerPlayButton-BQ4zJOrE.mjs.map +1 -0
  271. package/dist/PlayerPlayButton-kh4ZCdWh.mjs.map +1 -0
  272. package/dist/PlayerProgressBar-C-I3dk3l.mjs.map +1 -0
  273. package/dist/PlayerProgressBar-Dr-aFk7O.mjs.map +1 -0
  274. package/dist/{PlayerProgressBar-Cl_mF4nD.mjs → PlayerProgressBar-dSschgez.mjs} +2 -2
  275. package/dist/PlayerProgressBar-xc1ZFPJY.mjs.map +1 -0
  276. package/dist/PlayerStore-Aq_ukXXS.mjs.map +1 -0
  277. package/dist/PlayerStore-C_QCHbT3.mjs.map +1 -0
  278. package/dist/{PlayerStore-CKprkxa0.mjs → PlayerStore-DggKki80.mjs} +1 -1
  279. package/dist/PlayerVideo-BNfhaNUn.mjs.map +1 -0
  280. package/dist/{PlayerVideo-CVUU7nHT.mjs → PlayerVideo-BWyvKlJT.mjs} +3 -3
  281. package/dist/PlayerVideo-Bhok6qYS.mjs.map +1 -0
  282. package/dist/PlayerVideo-CN609whx.mjs.map +1 -0
  283. package/dist/PlayerVideo-DXG_PsWA.mjs.map +1 -0
  284. package/dist/PlayerVideo-DzUapxuZ.mjs.map +1 -0
  285. package/dist/PlayerVideoDigiteka-B1rRVLzy.mjs.map +1 -0
  286. package/dist/PlayerVideoDigiteka-B6qODy7b.mjs.map +1 -0
  287. package/dist/{PlayerVideoDigiteka-DZIqqN8a.mjs → PlayerVideoDigiteka-Dxx63XHI.mjs} +2 -2
  288. package/dist/PlayerVideoHls-BoAbvi2b.mjs.map +1 -0
  289. package/dist/PlayerVideoHls-BsHaaJB-.mjs.map +1 -0
  290. package/dist/PlayerVideoHls-C0ddorEn.mjs.map +1 -0
  291. package/dist/PlayerVideoHls-DBODDRmV.mjs.map +1 -0
  292. package/dist/PlayerVideoHls-DVNHm_O2.mjs.map +1 -0
  293. package/dist/{PlayerVideoHls-BirHOkZD.mjs → PlayerVideoHls-DzbyXZsQ.mjs} +9 -7
  294. package/dist/{PlaylistPage-DljbABur.mjs → PlaylistPage-BdbqXFwR.mjs} +35 -35
  295. package/dist/PlaylistPage-BgUaPJet.mjs.map +1 -0
  296. package/dist/PlaylistPage-BwF2VdGb.mjs.map +1 -0
  297. package/dist/PlaylistPage-CINwx3zE.mjs.map +1 -0
  298. package/dist/PlaylistPage-CPB647jC.mjs.map +1 -0
  299. package/dist/PlaylistPage-DDzE5GQs.mjs.map +1 -0
  300. package/dist/PlaylistPage-bm1nWKMg.mjs.map +1 -0
  301. package/dist/PlaylistsPage-BwkVSYIp.mjs.map +1 -0
  302. package/dist/PlaylistsPage-C62NUvz4.mjs.map +1 -0
  303. package/dist/{PlaylistsPage-BSW-uPWF.mjs → PlaylistsPage-D08i24b2.mjs} +13 -13
  304. package/dist/PlaylistsPage-Dvh77ql6.mjs.map +1 -0
  305. package/dist/PodcastFilterList-BBhzOM64.mjs.map +1 -0
  306. package/dist/PodcastFilterList-BKBjd36i.mjs.map +1 -0
  307. package/dist/{PodcastFilterList-YM90eN60.mjs → PodcastFilterList-CL5ebQ69.mjs} +3 -3
  308. package/dist/PodcastFilterList-D9NTYS1v.mjs.map +1 -0
  309. package/dist/{PodcastImage-BtiQlrb3.mjs → PodcastImage-BFA22TgZ.mjs} +6 -6
  310. package/dist/PodcastImage-BhQKB5te.mjs.map +1 -0
  311. package/dist/PodcastImage-CHx3bUzt.mjs.map +1 -0
  312. package/dist/PodcastInlineList-CcNd_Hbs.mjs.map +1 -0
  313. package/dist/{PodcastInlineList-B32BSFqN.mjs → PodcastInlineList-H6BxXx0A.mjs} +1 -1
  314. package/dist/PodcastInlineList-akLivgog.mjs.map +1 -0
  315. package/dist/PodcastInlineList-jI2EvXSo.mjs.map +1 -0
  316. package/dist/{PodcastInlineListTemplate-DTrS1UiG.mjs → PodcastInlineListTemplate-Chbi8aME.mjs} +3 -3
  317. package/dist/PodcastInlineListTemplate-DT9ZRs61.mjs.map +1 -0
  318. package/dist/PodcastInlineListTemplate-Dh1xF6xT.mjs.map +1 -0
  319. package/dist/PodcastIsPlaying-C0jcpBQd.mjs.map +1 -0
  320. package/dist/PodcastIsPlaying-H6P1CHAI.mjs.map +1 -0
  321. package/dist/{PodcastIsPlaying-BtmHnQi9.mjs → PodcastIsPlaying-ugHcefCy.mjs} +1 -1
  322. package/dist/{PodcastItem-TdtzApJ6.mjs → PodcastItem-Baki7W0q.mjs} +6 -6
  323. package/dist/PodcastItem-BfvK4ion.mjs.map +1 -0
  324. package/dist/PodcastItem-DEhA78z9.mjs.map +1 -0
  325. package/dist/PodcastItem-DwK_Yu1G.mjs.map +1 -0
  326. package/dist/PodcastList-B4ic6Cij.mjs.map +1 -0
  327. package/dist/PodcastList-C2R92m6S.mjs.map +1 -0
  328. package/dist/PodcastList-DWl6zz_z.mjs.map +1 -0
  329. package/dist/PodcastList-Dbt4nmKg.mjs.map +1 -0
  330. package/dist/PodcastList-KaQBRbR9.mjs.map +1 -0
  331. package/dist/{PodcastList-BAOJhQ7G.mjs → PodcastList-N_XOE-hI.mjs} +5 -5
  332. package/dist/PodcastList-d3SGLPvF.mjs.map +1 -0
  333. package/dist/{PodcastList-Bbe3yWiu.mjs → PodcastList-yjd_exFg.mjs} +4 -4
  334. package/dist/PodcastPage-B0pbZ5o_.mjs.map +1 -0
  335. package/dist/PodcastPage-BOA44Us4.mjs.map +1 -0
  336. package/dist/PodcastPage-Bs1wz-0E.mjs.map +1 -0
  337. package/dist/PodcastPage-C37Wa-qH.mjs.map +1 -0
  338. package/dist/PodcastPage-D0HYJxaK.mjs.map +1 -0
  339. package/dist/PodcastPage-D0U6-etV.mjs.map +1 -0
  340. package/dist/PodcastPage-DwMPY4po.mjs.map +1 -0
  341. package/dist/{PodcastPage-CAxub2do.mjs → PodcastPage-SUEm-Enm.mjs} +26 -26
  342. package/dist/PodcastPlayBar-Bo-W_dSK.mjs.map +1 -0
  343. package/dist/PodcastPlayBar-CBtMWlVc.mjs.map +1 -0
  344. package/dist/{PodcastPlayBar-gAEttclo.mjs → PodcastPlayBar-COU17bnm.mjs} +3 -3
  345. package/dist/PodcastPlayBar-Cpr3Ff7J.mjs.map +1 -0
  346. package/dist/PodcastPlayBasicButton-BvJPrxpI.mjs.map +1 -0
  347. package/dist/PodcastPlayBasicButton-CS5TNlmX.mjs.map +1 -0
  348. package/dist/{PodcastPlayBasicButton-7w91y2ow.mjs → PodcastPlayBasicButton-CVXhEUHB.mjs} +1 -1
  349. package/dist/{PodcastPlayButton-CQY0d6f-.mjs → PodcastPlayButton--gjzxW0o.mjs} +3 -3
  350. package/dist/PodcastPlayButton-BqvE4ZUl.mjs.map +1 -0
  351. package/dist/PodcastPlayButton-DW5Feest.mjs.map +1 -0
  352. package/dist/PodcastPlaylistInlineList-BV31HaB2.mjs.map +1 -0
  353. package/dist/PodcastPlaylistInlineList-C-WYs6aE.mjs.map +1 -0
  354. package/dist/{PodcastPlaylistInlineList-BE5L8pSP.mjs → PodcastPlaylistInlineList-DsEHaYGZ.mjs} +7 -7
  355. package/dist/PodcastPlaylistInlineList-HEdFAq1l.mjs.map +1 -0
  356. package/dist/{PodcastPresentationList-DH6Rq0Z4.mjs → PodcastPresentationList-B9vORr36.mjs} +4 -4
  357. package/dist/PodcastPresentationList-ChqvdXY0.mjs.map +1 -0
  358. package/dist/PodcastPresentationList-Dit6HvJr.mjs.map +1 -0
  359. package/dist/{PodcastProgressBar-DoeG7lDj.mjs → PodcastProgressBar-B0FwZOTT.mjs} +3 -3
  360. package/dist/PodcastProgressBar-B8ONWq-Z.mjs.map +1 -0
  361. package/dist/PodcastProgressBar-BoGtJPAa.mjs.map +1 -0
  362. package/dist/PodcastProgressBar-DTRhKzW-.mjs.map +1 -0
  363. package/dist/{PodcastRawTranscript-Cktqtbcg.mjs → PodcastRawTranscript-BiuftXu-.mjs} +2 -2
  364. package/dist/PodcastRawTranscript-C8SJcaQE.mjs.map +1 -0
  365. package/dist/PodcastRawTranscript-nfzHM0k_.mjs.map +1 -0
  366. package/dist/PodcastRawTranscript-r5pRtZDg.mjs.map +1 -0
  367. package/dist/{PodcastSwiperList-DZ26-8xy.mjs → PodcastSwiperList-BKOYhrsH.mjs} +4 -4
  368. package/dist/PodcastSwiperList-Bsg0q89o.mjs.map +1 -0
  369. package/dist/PodcastSwiperList-BxsEv7_8.mjs.map +1 -0
  370. package/dist/PodcastSwiperList-Cju5VHcH.mjs.map +1 -0
  371. package/dist/PodcastmakerHeader-6fIwE70J.mjs.map +1 -0
  372. package/dist/PodcastmakerHeader-BBPEy__r.mjs.map +1 -0
  373. package/dist/{PodcastmakerHeader-MhdOrssb.mjs → PodcastmakerHeader-CIoJwm1L.mjs} +1 -1
  374. package/dist/PodcastsPage-967SI8kL.mjs.map +1 -0
  375. package/dist/{PodcastsPage-BXjTDNhn.mjs → PodcastsPage-B5NwPMyn.mjs} +5 -5
  376. package/dist/PodcastsPage-B7j2XxPZ.mjs.map +1 -0
  377. package/dist/PodcastsPage-BOzszXpc.mjs.map +1 -0
  378. package/dist/PodcastsPage-Bw0tzWoX.mjs.map +1 -0
  379. package/dist/PodcastsPage-D3TAYJV8.mjs.map +1 -0
  380. package/dist/PodcastsPage-DJsgHs7V.mjs.map +1 -0
  381. package/dist/PodcastsPage-DKWHzNNA.mjs.map +1 -0
  382. package/dist/PodcastsPage-DONqoMkB.mjs.map +1 -0
  383. package/dist/PodcastsPage-DUcfPeLD.mjs.map +1 -0
  384. package/dist/PodcastsPage-DWBgwD6o.mjs.map +1 -0
  385. package/dist/PodcastsPage-DZO4H1Ff.mjs.map +1 -0
  386. package/dist/PodcastsPage-DhEMPqCT.mjs.map +1 -0
  387. package/dist/ProductorSearch-BgmV_RCq.mjs.map +1 -0
  388. package/dist/{ProductorSearch-Z36zTZK4.mjs → ProductorSearch-BiUEs7mG.mjs} +3 -3
  389. package/dist/ProductorSearch-C4Nv2HzS.mjs.map +1 -0
  390. package/dist/ProductorSearch-DtVe_rU9.mjs.map +1 -0
  391. package/dist/ProgressBar-BMeSiueh.mjs.map +1 -0
  392. package/dist/ProgressBar-C15ih0uL.mjs.map +1 -0
  393. package/dist/{ProgressBar-CTOa-MDz.mjs → ProgressBar-CXB5q3-H.mjs} +2 -2
  394. package/dist/ProgressBar-DAUOWol1.mjs.map +1 -0
  395. package/dist/QrCode-BYLxjhwi.mjs.map +1 -0
  396. package/dist/QrCode-CCigeTaZ.mjs +109 -0
  397. package/dist/QrCode-CaXoOjo-.mjs.map +1 -0
  398. package/dist/QrCode-CcQR60hB.mjs.map +1 -0
  399. package/dist/QrCode-S_eLVZoz.mjs.map +1 -0
  400. package/dist/QrCode-XZMMiaX5.mjs.map +1 -0
  401. package/dist/QrCodeModal-BJOu1pAV.mjs.map +1 -0
  402. package/dist/QrCodeModal-BjT-0P0w.mjs.map +1 -0
  403. package/dist/QrCodeModal-BrabSTzq.mjs.map +1 -0
  404. package/dist/QrCodeModal-CjvbRYLW.mjs.map +1 -0
  405. package/dist/{QrCodeModal-DE3juCsN.mjs → QrCodeModal-Dpw_tCQ6.mjs} +1 -1
  406. package/dist/QrCodeModal-N2fjbP4S.mjs.map +1 -0
  407. package/dist/RadioCurrently-B_b8DV2w.mjs.map +1 -0
  408. package/dist/RadioCurrently-DufvDqm1.mjs.map +1 -0
  409. package/dist/{RadioCurrently-BlAhcc9E.mjs → RadioCurrently-ysRKhxKU.mjs} +3 -3
  410. package/dist/RadioHistory-B03bYMxm.mjs.map +1 -0
  411. package/dist/{RadioHistory-C7S79sZD.mjs → RadioHistory-DjsqvRgH.mjs} +2 -2
  412. package/dist/RadioHistory-Dv4gt9TM.mjs.map +1 -0
  413. package/dist/RadioImage-BFdiGgi_.mjs.map +1 -0
  414. package/dist/{RadioImage-BTn2Lquc.mjs → RadioImage-CSseYIVb.mjs} +4 -4
  415. package/dist/RadioImage-CrtD33dM.mjs.map +1 -0
  416. package/dist/RadioList--f7RDhHJ.mjs.map +1 -0
  417. package/dist/{RadioList-BD3zNwmk.mjs → RadioList-BZFFAobk.mjs} +4 -4
  418. package/dist/RadioList-De9NQ23Q.mjs.map +1 -0
  419. package/dist/RadioPage-BK1N--Kr.mjs.map +1 -0
  420. package/dist/RadioPage-BTtNFJI2.mjs.map +1 -0
  421. package/dist/RadioPage-CcK0y_5s.mjs.map +1 -0
  422. package/dist/RadioPage-Cqas0JX6.mjs.map +1 -0
  423. package/dist/{RadioPage-Bv3oupa1.mjs → RadioPage-Cwooj0wF.mjs} +4 -4
  424. package/dist/RadioPage-DhSB0sX5.mjs.map +1 -0
  425. package/dist/RadioPage-DlahFXYC.mjs.map +1 -0
  426. package/dist/RadioPlanning-BU1E8i4t.mjs.map +1 -0
  427. package/dist/{RadioPlanning-nkv_Mb_t.mjs → RadioPlanning-BmIxuUBI.mjs} +2 -2
  428. package/dist/RadioPlanning-Bx-N-xqX.mjs.map +1 -0
  429. package/dist/RadioProgressBar-0XM3ZTGU.mjs.map +1 -0
  430. package/dist/{RadioProgressBar-B2EgCOrK.mjs → RadioProgressBar-CQRGuPpC.mjs} +1 -1
  431. package/dist/RadioProgressBar-oyeS56mV.mjs.map +1 -0
  432. package/dist/{RecaptchaModal-w-9MlZ45.mjs → RecaptchaModal-BdW4xNlX.mjs} +1 -1
  433. package/dist/RecaptchaModal-DFlFQcHs.mjs.map +1 -0
  434. package/dist/RecaptchaModal-iLQ4UYOL.mjs.map +1 -0
  435. package/dist/ReportAbuseModal-BaPt2DLK.mjs.map +1 -0
  436. package/dist/ReportAbuseModal-BdZRe29L.mjs.map +1 -0
  437. package/dist/ReportAbuseModal-CH7Y153n.mjs.map +1 -0
  438. package/dist/{ReportAbuseModal-O1K7j7NV.mjs → ReportAbuseModal-jjGeXbB9.mjs} +4 -4
  439. package/dist/RightsIndicator-4pUsBq5j.mjs.map +1 -0
  440. package/dist/RightsIndicator-BH3jm_1O.mjs.map +1 -0
  441. package/dist/{RightsIndicator-D0cSu8j2.mjs → RightsIndicator-CPzWpH5Z.mjs} +1 -1
  442. package/dist/RightsIndicator-d8ffUFIj.mjs.map +1 -0
  443. package/dist/{RightsWrapper-BUj_1bwR.mjs → RightsWrapper-BTQ8GGUi.mjs} +5 -5
  444. package/dist/RightsWrapper-C3BRHqqo.mjs.map +1 -0
  445. package/dist/RightsWrapper-DJG9Ds6c.mjs.map +1 -0
  446. package/dist/RightsWrapper-nBURBTJX.mjs.map +1 -0
  447. package/dist/{RubriqueChoice-DaTWiDbl.mjs → RubriqueChoice-C-S-veJJ.mjs} +1 -1
  448. package/dist/RubriqueChoice-DsmnrUNs.mjs.map +1 -0
  449. package/dist/{RubriqueChooser-C33LorHa.mjs → RubriqueChooser-CNGn8LcP.mjs} +1 -1
  450. package/dist/RubriqueChooser-WmzcajTt.mjs.map +1 -0
  451. package/dist/RubriqueFilter-C9C_OiF5.mjs.map +1 -0
  452. package/dist/RubriqueFilter-DDI7DjMR.mjs.map +1 -0
  453. package/dist/RubriqueFilter-_8V1n9-x.mjs.map +1 -0
  454. package/dist/{RubriqueFilter-RgardNnQ.mjs → RubriqueFilter-rxiG8Wci.mjs} +3 -3
  455. package/dist/RubriqueList-99-nWSvq.mjs.map +1 -0
  456. package/dist/RubriqueList-BiRimk17.mjs.map +1 -0
  457. package/dist/RubriqueList-H_NHILuj.mjs.map +1 -0
  458. package/dist/{RubriqueList-DA9OYqUl.mjs → RubriqueList-rJj2IycY.mjs} +4 -4
  459. package/dist/RubriquePage-6KFPBPz8.mjs.map +1 -0
  460. package/dist/{RubriquePage-xgTOce7c.mjs → RubriquePage-BNEWnk3-.mjs} +4 -4
  461. package/dist/RubriquePage-Bpt-x7IK.mjs.map +1 -0
  462. package/dist/RubriquePage-Cwz9OqLO.mjs.map +1 -0
  463. package/dist/SearchPage-BtZnj3sA.mjs.map +1 -0
  464. package/dist/SearchPage-CbbbcXxs.mjs.map +1 -0
  465. package/dist/SearchPage-DMIV2AgJ.mjs.map +1 -0
  466. package/dist/{SearchPage-C3o5RPP0.mjs → SearchPage-DsZzPoEw.mjs} +2 -2
  467. package/dist/ShareAnonymous-BeSQozvM.mjs.map +1 -0
  468. package/dist/ShareAnonymous-BgsR6Ahp.mjs.map +1 -0
  469. package/dist/ShareAnonymous-CNWR1v6X.mjs.map +1 -0
  470. package/dist/{ShareAnonymous-bOwwEjPv.mjs → ShareAnonymous-DK2rnLl1.mjs} +3 -3
  471. package/dist/ShareAnonymous-DVpKBKbi.mjs.map +1 -0
  472. package/dist/ShareAnonymous-DWArDFT0.mjs.map +1 -0
  473. package/dist/ShareAnonymous-IaVbb-rp.mjs.map +1 -0
  474. package/dist/ShareModalPlayer-BHmsvxXF.mjs.map +1 -0
  475. package/dist/{ShareModalPlayer-D2oBrSly.mjs → ShareModalPlayer-Cfnk68-U.mjs} +1 -1
  476. package/dist/ShareModalPlayer-DLBU3lsU.mjs.map +1 -0
  477. package/dist/ShareModalPlayer-O-CmDObW.mjs.map +1 -0
  478. package/dist/ShareModalPlayer-QYu8Q9ks.mjs.map +1 -0
  479. package/dist/ShareModalPlayer-Vga-96DM.mjs.map +1 -0
  480. package/dist/{ShareNewsletter-CNw1LziN.mjs → ShareNewsletter-BWIAt47D.mjs} +1 -1
  481. package/dist/ShareNewsletter-BhFk6ARk.mjs.map +1 -0
  482. package/dist/ShareNewsletter-JCO4h7rk.mjs.map +1 -0
  483. package/dist/SharePlayer-C-RgIOh1.mjs.map +1 -0
  484. package/dist/{SharePlayer-CRri0YED.mjs → SharePlayer-C0aveOwy.mjs} +2 -2
  485. package/dist/SharePlayer-CNXrUj8M.mjs.map +1 -0
  486. package/dist/SharePlayer-D0-qY2dS.mjs.map +1 -0
  487. package/dist/SharePlayer-DQoFa7iv.mjs.map +1 -0
  488. package/dist/SharePlayer-DwNl3E7o.mjs.map +1 -0
  489. package/dist/{SharePlayerRadio-DVsegQMu.mjs → SharePlayerRadio-BqaeyEls.mjs} +2 -2
  490. package/dist/SharePlayerRadio-CHvCtKdZ.mjs.map +1 -0
  491. package/dist/SharePlayerRadio-CIsy-rCC.mjs.map +1 -0
  492. package/dist/SharePlayerRadio-ChfNulnf.mjs.map +1 -0
  493. package/dist/SharePlayerRadio-DA-W-306.mjs.map +1 -0
  494. package/dist/SharePlayerRadio-DwPeLUsk.mjs.map +1 -0
  495. package/dist/SharePlayerTypes-CeMV4n10.mjs.map +1 -0
  496. package/dist/SharePlayerTypes-DdyoQZDi.mjs.map +1 -0
  497. package/dist/{SharePlayerTypes-BxkEoBSL.mjs → SharePlayerTypes-DyrqFDVJ.mjs} +1 -1
  498. package/dist/ShareSocialsButtons-BHWzJVne.mjs.map +1 -0
  499. package/dist/ShareSocialsButtons-Bjx2ONvj.mjs.map +1 -0
  500. package/dist/{ShareSocialsButtons-BJ3DqvIO.mjs → ShareSocialsButtons-PqMXhFEk.mjs} +1 -1
  501. package/dist/{SimpleLayout-BJlcQjx9.mjs → SimpleLayout-9O9FZ69Q.mjs} +2 -2
  502. package/dist/SimpleLayout-B-QSfHeQ.mjs.map +1 -0
  503. package/dist/SimpleLayout-BauUacaf.mjs.map +1 -0
  504. package/dist/SimpleLayout-C29bPtbd.mjs.map +1 -0
  505. package/dist/SimpleLayout-Cjc3Q9Mb.mjs.map +1 -0
  506. package/dist/SimpleLayout-D4sVjQGu.mjs.map +1 -0
  507. package/dist/SimpleLayout-DaoXS--3.mjs.map +1 -0
  508. package/dist/SimpleLayout-vkWEZHLi.mjs.map +1 -0
  509. package/dist/{SmartLinkPage-DpD90wc7.mjs → SmartLinkPage-6HgX8LDv.mjs} +16 -16
  510. package/dist/SmartLinkPage-BcQmox7e.mjs.map +1 -0
  511. package/dist/SmartLinkPage-M_zB_Xp1.mjs.map +1 -0
  512. package/dist/SubscribeButtons-CyGYD1B1.mjs.map +1 -0
  513. package/dist/SubscribeButtons-DjjZQfOU.mjs.map +1 -0
  514. package/dist/{SubscribeButtons-zlRDGEzS.mjs → SubscribeButtons-IpzqDGIn.mjs} +3 -3
  515. package/dist/SubscribeButtons-yA2wowFc.mjs.map +1 -0
  516. package/dist/SwiperList-BNODHhLF.mjs.map +1 -0
  517. package/dist/SwiperList-Cqklwlg9.mjs.map +1 -0
  518. package/dist/{SwiperList-BlF3rPq5.mjs → SwiperList-O8nUg87R.mjs} +1 -1
  519. package/dist/TagList-4RDriU1J.mjs.map +1 -0
  520. package/dist/TagList-B5JPfT6j.mjs.map +1 -0
  521. package/dist/TagList-DVjqXiaA.mjs.map +1 -0
  522. package/dist/{TagList-BBHyaKp-.mjs → TagList-V9fAFATL.mjs} +2 -2
  523. package/dist/TagPage-BOsz6Bot.mjs.map +1 -0
  524. package/dist/TagPage-CALmJwxW.mjs.map +1 -0
  525. package/dist/{TagPage-DLpNBBjP.mjs → TagPage-CsFwN4sE.mjs} +3 -3
  526. package/dist/TagPage-DMuxYu6y.mjs.map +1 -0
  527. package/dist/{TopBar-CLWWRgr7.mjs → TopBar-0oG6YPlW.mjs} +37 -37
  528. package/dist/TopBar-CUCBss7X.mjs.map +1 -0
  529. package/dist/TopBar-CeQQ1hgH.mjs.map +1 -0
  530. package/dist/TopBar-DdxThCLR.mjs.map +1 -0
  531. package/dist/{UserButtonContent-BR3Rlqwp.mjs → UserButtonContent--VK68UsY.mjs} +6 -6
  532. package/dist/UserButtonContent-067qGenf.mjs.map +1 -0
  533. package/dist/UserButtonContent-Dqgyrgzv.mjs.map +1 -0
  534. package/dist/VideoModuleBox-9QgBI-Q-.mjs.map +1 -0
  535. package/dist/{VideoModuleBox-DxYJVwy3.mjs → VideoModuleBox-Bcqman6a.mjs} +1 -1
  536. package/dist/VideoModuleBox-BrVK2bDZ.mjs.map +1 -0
  537. package/dist/VideoModuleBox-DWO47_bZ.mjs.map +1 -0
  538. package/dist/VideoPage-4MB4zmnA.mjs.map +1 -0
  539. package/dist/VideoPage-BDGvtr1o.mjs.map +1 -0
  540. package/dist/{VideoPage-BaeTduNB.mjs → VideoPage-BjlaP2DU.mjs} +6 -6
  541. package/dist/VideoPage-C-yjvvhl.mjs.map +1 -0
  542. package/dist/VideoPage-C0_t7XMC.mjs.map +1 -0
  543. package/dist/VideoPage-CIDpzbkb.mjs.map +1 -0
  544. package/dist/VideoPage-D2V1oXGC.mjs.map +1 -0
  545. package/dist/VideoPage-DEJSfeFy.mjs.map +1 -0
  546. package/dist/{classicApi-pmODlqv5.mjs → classicApi-CGipMqf7.mjs} +267 -256
  547. package/dist/classicApi-CW1Z-HoF.mjs.map +1 -0
  548. package/dist/classicApi-OzToKuW1.mjs.map +1 -0
  549. package/dist/{downloadHelper-BAI-eqgA.mjs → downloadHelper-C3QooCxr.mjs} +1 -1
  550. package/dist/downloadHelper-D7dUpp5l.mjs.map +1 -0
  551. package/dist/downloadHelper-DwV3Mmd3.mjs.map +1 -0
  552. package/dist/index.css +1 -1
  553. package/dist/index.mjs +183 -183
  554. package/dist/src/components/form/ClassicDatePicker.vue.d.ts +24 -14
  555. package/dist/src/components/form/OctopusMultiselect.vue.d.ts +2 -0
  556. package/dist/src/i18n.d.ts +2 -0
  557. package/dist/tests.mjs +2 -2
  558. package/dist/useAdvancedParamInit-BKw9VZ53.mjs.map +1 -0
  559. package/dist/useAdvancedParamInit-CyRmbqqe.mjs.map +1 -0
  560. package/dist/{useAdvancedParamInit-Bgvt8758.mjs → useAdvancedParamInit-D5roUdHI.mjs} +10 -10
  561. package/dist/useDayjs-BKBB00TF.mjs.map +1 -0
  562. package/dist/useDayjs-UQLGUbw5.mjs.map +1 -0
  563. package/dist/{useDayjs-DGb3L4kJ.mjs → useDayjs-VUs19G9T.mjs} +1 -1
  564. package/dist/useErrorHandler-BKN3lhJ5.mjs.map +1 -0
  565. package/dist/useErrorHandler-C3XnRTmp.mjs.map +1 -0
  566. package/dist/{useErrorHandler-D9W2BURn.mjs → useErrorHandler-x9sjDYSz.mjs} +1 -1
  567. package/dist/useImageProxy-AEcmDpvW.mjs.map +1 -0
  568. package/dist/useImageProxy-BzTG_GCn.mjs.map +1 -0
  569. package/dist/{useImageProxy-8ndy_oTo.mjs → useImageProxy-CCpDzPmQ.mjs} +1 -1
  570. package/dist/useOrgaComputed-4PduqYTq.mjs.map +1 -0
  571. package/dist/useOrgaComputed-C2n0FBbv.mjs.map +1 -0
  572. package/dist/{useOrgaComputed-CBJ5sDOm.mjs → useOrgaComputed-D81Jihm-.mjs} +2 -2
  573. package/dist/{usePlayerLogicProgress-C2L7cMdd.mjs → usePlayerLogicProgress-BybmSAcs.mjs} +2 -2
  574. package/dist/usePlayerLogicProgress-CKoCod6g.mjs.map +1 -0
  575. package/dist/usePlayerLogicProgress-DZaPRo6p.mjs.map +1 -0
  576. package/dist/usePodcastView-B-2HPFAo.mjs.map +1 -0
  577. package/dist/{usePodcastView-CoDJJr6Y.mjs → usePodcastView-CkM-n6iO.mjs} +3 -3
  578. package/dist/usePodcastView-jdYTK1cW.mjs.map +1 -0
  579. package/dist/{usePresentationItem-DZZVm3hh.mjs → usePresentationItem-CLEGZwI3.mjs} +3 -3
  580. package/dist/usePresentationItem-Com4i40U.mjs.map +1 -0
  581. package/dist/usePresentationItem-OpMean0v.mjs.map +1 -0
  582. package/dist/{useRights-DOXtpjv5.mjs → useRights-BI2tXXjR.mjs} +1 -1
  583. package/dist/useRights-Bsv9hr7w.mjs.map +1 -0
  584. package/dist/useRights-DfudFDI6.mjs.map +1 -0
  585. package/dist/{useRubriquesFilterComputed-DoUOqOrJ.mjs → useRubriquesFilterComputed-D1yqLnK4.mjs} +1 -1
  586. package/dist/useRubriquesFilterComputed-DGDJp2gc.mjs.map +1 -0
  587. package/dist/useRubriquesFilterComputed-NNE-FElk.mjs.map +1 -0
  588. package/dist/{useRubriquesFilterParam-BE8BbmAQ.mjs → useRubriquesFilterParam-2eMd5ND7.mjs} +1 -1
  589. package/dist/useRubriquesFilterParam-DE5dYl6c.mjs.map +1 -0
  590. package/dist/useRubriquesFilterParam-DXYD4G0D.mjs.map +1 -0
  591. package/dist/useSharePlatforms-CrQ8r5vT.mjs.map +1 -0
  592. package/dist/useSharePlatforms-D124fJ_v.mjs.map +1 -0
  593. package/dist/{useSharePlatforms-ZWYDJZBy.mjs → useSharePlatforms-sXgVxsL5.mjs} +5 -5
  594. package/dist/{useSimplePageParam-DFKSEyiE.mjs → useSimplePageParam-BrtYXOUt.mjs} +1 -1
  595. package/dist/useSimplePageParam-CruL7rLG.mjs.map +1 -0
  596. package/dist/useSimplePageParam-SaBaPhb8.mjs.map +1 -0
  597. package/dist/{useTranslation-Dr7KU7Y4.mjs → useTranslation-BVQwv02Q.mjs} +9 -9
  598. package/dist/useTranslation-Bf2zP_6C.mjs.map +1 -0
  599. package/dist/useTranslation-BuhzZoI8.mjs.map +1 -0
  600. package/dist/useTranslation-OWqckMEl.mjs.map +1 -0
  601. package/dist/usefetchRadioData-D01ws733.mjs.map +1 -0
  602. package/dist/usefetchRadioData-DDRPoD4s.mjs.map +1 -0
  603. package/dist/{usefetchRadioData-SLWfXkYt.mjs → usefetchRadioData-zyQNqiV3.mjs} +1 -1
  604. package/package.json +1 -1
  605. package/src/components/composable/useTranslation.ts +2 -2
  606. package/src/components/display/sharing/QrCode.vue +63 -64
  607. package/src/components/form/ClassicDatePicker.vue +32 -20
  608. package/src/components/form/OctopusMultiselect.vue +3 -4
  609. package/src/components/misc/ClassicPopover.vue +1 -1
  610. package/src/components/misc/player/video/PlayerVideoHls.vue +160 -159
  611. package/src/i18n.ts +38 -29
  612. package/tests/components/form/ClassicDatePicker.spec.ts +32 -0
  613. package/tests/components/form/OctopusMultiselect.spec.ts +5 -4
  614. package/dist/ClassicDatePicker-B7UA9CqR.mjs +0 -187
  615. package/dist/QrCode-DuScZ7PD.mjs +0 -105
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PodcastPage-DwMPY4po.mjs","names":["displayHelper","_hoisted_1","_hoisted_2","_sfc_render","_resolveComponent","_openBlock","_createElementBlock","_renderSlot","_createCommentVNode","_createElementVNode","_createVNode","_normalizeClass","_toDisplayString","_createBlock","_createTextVNode","_withCtx","_sfc_main","classicApi","youtubeVideoHelper","_openBlock","_createElementBlock","_Fragment","_createBlock","_createCommentVNode","_createElementVNode","_normalizeClass","_createVNode","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps","_renderList","_sfc_main"],"sources":["../src/components/display/podcasts/PodcastModuleBox.vue","../src/components/display/podcasts/PodcastModuleBox.vue","../src/components/pages/PodcastPage.vue","../src/components/pages/PodcastPage.vue"],"sourcesContent":["<template>\n <section v-if=\"podcast\" class=\"module-box\">\n <slot\n v-if=\"!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator\"\n name=\"recording-item-button\"\n :podcast=\"podcast\"\n :live=\"true\"\n :recording=\"podcastConference\"\n :on-delete-item=\"removeDeleted\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <slot\n v-else-if=\"editRight && isEditBox\"\n name=\"edit-box\"\n :podcast=\"podcast\"\n :display-studio-access=\"isDebriefing\"\n :on-update-transcription=\"resetTranscription\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <div class=\"mb-2 w-100\">\n <PodcastImage\n :class=\"[\n isLiveReadyToRecord &&\n podcastConference &&\n 'null' !== podcastConference &&\n podcastConference.status\n ? podcastConference.status.toLowerCase() + '-shadow'\n : '',\n ]\"\n class=\"me-3\"\n show-processing\n :hide-play=\"isLiveReadyToRecord\"\n :podcast=\"podcast\"\n :playing-podcast=\"playingPodcast\"\n :fetch-conference=\"podcastConference\"\n :is-animator-live=\"isOctopusAndAnimator\"\n />\n <div class=\"d-flex justify-content-between flex-wrap mb-2\">\n <time \n v-if=\"0 !== date.length\"\n :class=\"!isLiveReady ? 'me-5' : ''\"\n :datetime=\"podcast.pubDate\"\n >\n {{ date }}\n </time>\n <div v-if=\"isLiveReady\" class=\"text-danger\">\n {{ t(\"Episode record in live\") }}\n </div>\n <div class=\"d-flex flex-column align-items-end\">\n <time :datetime=\"durationIso\">\n {{ duration }}\n </time>\n <ShareAnonymous\n v-if=\"!editRight\"\n :podcast=\"podcast\"\n :organisation-id=\"podcast.organisation.id\"\n />\n </div>\n </div>\n <h2 :class=\"{ 'mb-3': !showSubtitle }\">\n <RightsIndicator\n :podcast=\"podcast\"\n action=\"edit\"\n inline\n />\n {{ podcast.title }}\n </h2>\n <h3 v-if=\"showSubtitle\" class=\"mb-3 text-secondary\">\n {{ podcast.annotations.subtitle }}\n </h3>\n \n <PodcastPlannedSpinner v-if=\"isPlannedInProcessor\" />\n <Countdown v-if=\"isCounter\" :time-remaining=\"timeRemaining\" />\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"showSummary\"\n class=\"description-text html-wysiwyg-content\"\n :class=\"{ 'mb-4': showSummary && showDescription }\"\n v-html=\"urlify(podcast.summary)\"\n />\n <div\n v-if=\"showDescription\"\n class=\"description-text html-wysiwyg-content\"\n v-html=\"urlify(podcast.description)\"\n />\n <!-- eslint-enable -->\n <div class=\"my-3\">\n <div class=\"mb-1\">\n {{ t(\"Emission\") + \" : \" }}\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: podcast.emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: podcast.emission.name })\"\n >\n {{ podcast.emission.name }}\n </router-link>\n </div>\n <ParticipantDescription :participants=\"podcast.animators\" />\n <ParticipantDescription\n :participants=\"podcast.guests\"\n :is-guest=\"true\"\n />\n <div v-if=\"!isPodcastmaker\" class=\"mb-1\">\n {{ t(\"Producted by : \") }}\n <router-link\n :to=\"{\n name: 'productor',\n params: { productorId: podcast.organisation.id },\n }\"\n >\n {{ podcast.organisation.name }}\n </router-link>\n </div>\n <div v-if=\"showSeasonNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Season')} : ${podcast.seasonNumber}` }}\n </div>\n <div v-if=\"showSeasonEpisodeNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Episode number')} : ${podcast.seasonEpisodeNumber}` }}\n </div>\n <div v-if=\"'' !== photoCredit\" class=\"mb-1\">\n {{ t(\"Photo credits\") + \" : \" + photoCredit }}\n </div>\n <div v-if=\"'' !== audioCredit\" class=\"mb-1\">\n {{ t(\"Audio credits\") + \" : \" + audioCredit }}\n </div>\n <div v-if=\"'' !== authorCredit\" class=\"mb-1\">\n {{ t(\"Author credits\") + \" : \" + authorCredit }}\n </div>\n <a\n v-if=\"podcast.article && !authStore.isGarRole\"\n class=\"btn d-flex align-items-center my-2 w-fit-content mb-1\"\n :href=\"podcast.article\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text : t('See associated article')})\"\n >\n <NewspaperVariantOutlineIcon class=\"me-1\" />\n <div>{{ t(\"See associated article\") }}</div>\n </a>\n <PodcastPlayBar\n v-if=\"state.emissionsPage.progressBar\"\n :podcast=\"podcast\"\n />\n <div v-if=\"editRight && !isPodcastmaker\">\n <div\n v-if=\"\n podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND\n \"\n class=\"me-5 text-secondary\"\n >\n {{ t(\"From RSS\") }}\n </div>\n <ClassicAlert\n v-if=\"alert\"\n :type=\"alert.type\"\n style=\"width: fit-content\"\n >\n <div class=\"d-flex align-items-center\">\n {{ alert.message }}\n\n <slot name=\"alert-message\" :alert=\"alert\" />\n </div>\n </ClassicAlert>\n </div>\n <div class=\"d-flex align-items-center flex-wrap\">\n <LikeSection :edit-right=\"editRight\" :podcast=\"podcast\" />\n <DownloadPodcastButton v-if=\"state.podcastPage.downloadButton\" :podcast=\"podcast\" />\n </div>\n </div>\n </div>\n <TagList\n v-if=\"showTags\"\n :tag-list=\"tags\"\n :orga-id=\"podcast.organisation.id\"\n :podcast-annotations=\"podcast.annotations\"\n :max=\"state.podcastPage.maxTags\"\n />\n <InlineRubriqueList\n v-if=\"podcastRubriques?.length\"\n :orga-id=\"podcast.organisation.id\"\n :rubrique-ids=\"podcastRubriques\"\n />\n <PodcastRawTranscript\n ref=\"podcastRawTranscript\"\n :podcast-id=\"podcast.podcastId\"\n />\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"podcast.emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport NewspaperVariantOutlineIcon from \"vue-material-design-icons/NewspaperVariantOutline.vue\";\nimport PodcastImage from \"./PodcastImage.vue\";\nimport ParticipantDescription from \"./ParticipantDescription.vue\";\nimport PodcastRawTranscript from \"./PodcastRawTranscript.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport {usePodcastView} from \"../../composable/podcasts/usePodcastView\";\nimport { Podcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"../../../stores/class/conference/conference\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { SeasonMode } from \"../../../stores/class/general/emission\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \nimport ClassicAlert from \"@/components/misc/ClassicAlert.vue\"; \n\nimport { defineAsyncComponent, toRefs, computed, useTemplateRef } from \"vue\";\nimport { useAppleVideo } from \"@/components/composable/useAppleVideo\";\nconst PodcastPlayBar = defineAsyncComponent(\n () => import(\"./PodcastPlayBar.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../sharing/SubscribeButtons.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../comments/like/LikeSection.vue\"),\n);\nconst DownloadPodcastButton = defineAsyncComponent(\n () => import(\"./DownloadPodcastButton.vue\"),\n);\nconst PodcastPlannedSpinner = defineAsyncComponent(\n () => import(\"./PodcastPlannedSpinner.vue\"),\n);\nconst Countdown = defineAsyncComponent(() => import(\"../live/CountDown.vue\"));\nconst TagList = defineAsyncComponent(() => import(\"./TagList.vue\"));\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../sharing/ShareAnonymous.vue\"));\nconst InlineRubriqueList = defineAsyncComponent(() => import(\"../rubriques/InlineRubriqueList.vue\"));\n\n//Props \nconst props = defineProps<{\n podcast: Podcast;\n playingPodcast?: Podcast;\n podcastConference?: Conference;\n}>();\n\n//Emits\nconst emit = defineEmits([\"updatePodcast\"]);\n\n//Composables\nconst { t } = useI18n();\nconst propsRef = toRefs(props);\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n isPodcastmaker,\n editRight\n} = usePodcastView(propsRef.podcast, propsRef.podcastConference);\nconst authStore = useAuthStore();\nconst router = useRouter();\nconst { areSeasonsEnabled } = useSeasonsManagement();\nconst { isErrorStatus, toGenericErrorCode } = useAppleVideo();\n\n/** Reference to the PodcastRqwTranscript */\nconst podcastRawTranscript = useTemplateRef('podcastRawTranscript');\n\n//Computed\nconst podcastRubriques = computed(() => {\n let rubriques = props.podcast?.rubriqueIds ?? [];\n if(props.podcast?.emission?.rubriqueIds){\n rubriques = [...new Set(rubriques.concat(props.podcast?.emission?.rubriqueIds))];\n }\n return rubriques;\n});\n\ninterface Alert {\n type: 'error'|'warning'|'info';\n message: string;\n code?: string;\n}\n\nconst alert = computed((): Alert|null => {\n if (\"ERROR\" === props.podcast?.processingStatus) {\n return {\n type: 'error',\n message: t(\"Podcast in ERROR, please contact Saooti\")\n };\n }\n const appleVideoStatus = props.podcast?.annotations?.appleVideoStatus as string|undefined;\n if (isErrorStatus(appleVideoStatus)) {\n return {\n type: 'error',\n message: t('Apple podcast - Error - Undefined', {\n status: appleVideoStatus\n }),\n code: toGenericErrorCode(appleVideoStatus)\n };\n }\n if (podcastNotValid.value) {\n return {\n type: 'warning',\n message: t(\"Podcast not validated\")\n };\n }\n if (appleVideoStatus === 'HLS_NOT_READY') {\n return {\n type: 'info',\n message: t('Apple podcast - Info - HLS_NOT_READY'),\n code: toGenericErrorCode(appleVideoStatus)\n };\n }\n if (!props.podcast?.availability.visibility) {\n return {\n type: 'warning',\n message: t(\"Podcast is not visible for listeners\")\n };\n }\n return null;\n});\n\nconst isLiveReady = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast?.conferenceId &&\n \"READY\" === props.podcast?.processingStatus\n );\n});\nconst isDebriefing = computed(() => {\n return (\n undefined !== props.podcastConference &&\n \"DEBRIEFING\" === props.podcastConference.status\n );\n});\nconst isOctopusAndAnimator = computed(() => {\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\nconst podcastNotValid = computed(() => {\n return (\n undefined !== props.podcast?.availability &&\n false === props.podcast?.valid\n );\n});\nconst photoCredit = computed(() => formatCredits(props.podcast?.annotations?.photoCredit as string|undefined));\nconst audioCredit = computed(() => formatCredits(props.podcast?.annotations?.audioCredit as string|undefined));\nconst authorCredit = computed(() => formatCredits(props.podcast?.annotations?.authorCredit as string|undefined));\nconst isEditBox = computed(() => !((state.generalParameters.podcastmaker as boolean) ?? false));\n/** The tags to display */\nconst tags = computed(() => {\n const tags = [];\n if(props.podcast.tags) {\n tags.push(...props.podcast.tags);\n }\n // Also display tags defined on emission\n if(props.podcast.emission.tags) {\n tags.push(...props.podcast.emission.tags);\n }\n return tags;\n});\n\nconst showSeasonNumber = computed((): boolean => {\n return areSeasonsEnabled(props.podcast.emission) && props.podcast.seasonNumber !== undefined;\n});\n\nconst showSeasonEpisodeNumber = computed((): boolean => {\n return props.podcast.emission.seasonMode === SeasonMode.SEASON_WITH_PODCAST_NUMBERING && props.podcast.seasonEpisodeNumber !== undefined;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return props.podcast.annotations?.subtitle && state.podcastPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show description */\nconst showDescription = computed((): boolean => {\n return state.podcastPage?.descriptionOrSummary !== 'summary';\n});\n\n/** Indicates whether to show summary */\nconst showSummary = computed((): boolean => {\n return props.podcast.summary && state.podcastPage?.descriptionOrSummary !== 'description' && state.podcastPage?.descriptionOrSummary !== undefined;\n});\n\n//Methods\nfunction formatCredits(credits: string|undefined): string {\n if (credits === undefined) {\n return '';\n }\n return credits.split(',').map(s => s.trim()).join(', ');\n}\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction removeDeleted(): void {\n if (isLiveReadyToRecord.value) {\n router.push(\"/main/pub/lives\");\n } else if (window.history.length > 1) {\n router.go(-1);\n } else {\n router.push(\"/\");\n }\n}\n\nfunction resetTranscription(): void {\n podcastRawTranscript.value.reset();\n}\n\nconst showTags = computed((): boolean => {\n if (state.podcastPage.hideTags === true) {\n return false;\n }\n\n return undefined !== tags.value && 0 !== tags.value.length;\n});\n</script>\n","<template>\n <section v-if=\"podcast\" class=\"module-box\">\n <slot\n v-if=\"!!podcastConference && isLiveReadyToRecord && isOctopusAndAnimator\"\n name=\"recording-item-button\"\n :podcast=\"podcast\"\n :live=\"true\"\n :recording=\"podcastConference\"\n :on-delete-item=\"removeDeleted\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <slot\n v-else-if=\"editRight && isEditBox\"\n name=\"edit-box\"\n :podcast=\"podcast\"\n :display-studio-access=\"isDebriefing\"\n :on-update-transcription=\"resetTranscription\"\n :on-validate-podcast=\"(p) => emit('updatePodcast', p)\"\n />\n <div class=\"mb-2 w-100\">\n <PodcastImage\n :class=\"[\n isLiveReadyToRecord &&\n podcastConference &&\n 'null' !== podcastConference &&\n podcastConference.status\n ? podcastConference.status.toLowerCase() + '-shadow'\n : '',\n ]\"\n class=\"me-3\"\n show-processing\n :hide-play=\"isLiveReadyToRecord\"\n :podcast=\"podcast\"\n :playing-podcast=\"playingPodcast\"\n :fetch-conference=\"podcastConference\"\n :is-animator-live=\"isOctopusAndAnimator\"\n />\n <div class=\"d-flex justify-content-between flex-wrap mb-2\">\n <time \n v-if=\"0 !== date.length\"\n :class=\"!isLiveReady ? 'me-5' : ''\"\n :datetime=\"podcast.pubDate\"\n >\n {{ date }}\n </time>\n <div v-if=\"isLiveReady\" class=\"text-danger\">\n {{ t(\"Episode record in live\") }}\n </div>\n <div class=\"d-flex flex-column align-items-end\">\n <time :datetime=\"durationIso\">\n {{ duration }}\n </time>\n <ShareAnonymous\n v-if=\"!editRight\"\n :podcast=\"podcast\"\n :organisation-id=\"podcast.organisation.id\"\n />\n </div>\n </div>\n <h2 :class=\"{ 'mb-3': !showSubtitle }\">\n <RightsIndicator\n :podcast=\"podcast\"\n action=\"edit\"\n inline\n />\n {{ podcast.title }}\n </h2>\n <h3 v-if=\"showSubtitle\" class=\"mb-3 text-secondary\">\n {{ podcast.annotations.subtitle }}\n </h3>\n \n <PodcastPlannedSpinner v-if=\"isPlannedInProcessor\" />\n <Countdown v-if=\"isCounter\" :time-remaining=\"timeRemaining\" />\n <!-- eslint-disable vue/no-v-html -->\n <div\n v-if=\"showSummary\"\n class=\"description-text html-wysiwyg-content\"\n :class=\"{ 'mb-4': showSummary && showDescription }\"\n v-html=\"urlify(podcast.summary)\"\n />\n <div\n v-if=\"showDescription\"\n class=\"description-text html-wysiwyg-content\"\n v-html=\"urlify(podcast.description)\"\n />\n <!-- eslint-enable -->\n <div class=\"my-3\">\n <div class=\"mb-1\">\n {{ t(\"Emission\") + \" : \" }}\n <router-link\n :to=\"{\n name: 'emission',\n params: { emissionId: podcast.emission.emissionId },\n }\"\n :title=\"t('Series name page', { name: podcast.emission.name })\"\n >\n {{ podcast.emission.name }}\n </router-link>\n </div>\n <ParticipantDescription :participants=\"podcast.animators\" />\n <ParticipantDescription\n :participants=\"podcast.guests\"\n :is-guest=\"true\"\n />\n <div v-if=\"!isPodcastmaker\" class=\"mb-1\">\n {{ t(\"Producted by : \") }}\n <router-link\n :to=\"{\n name: 'productor',\n params: { productorId: podcast.organisation.id },\n }\"\n >\n {{ podcast.organisation.name }}\n </router-link>\n </div>\n <div v-if=\"showSeasonNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Season')} : ${podcast.seasonNumber}` }}\n </div>\n <div v-if=\"showSeasonEpisodeNumber\" class=\"mb-1\">\n {{ `${t('Podcast - Episode number')} : ${podcast.seasonEpisodeNumber}` }}\n </div>\n <div v-if=\"'' !== photoCredit\" class=\"mb-1\">\n {{ t(\"Photo credits\") + \" : \" + photoCredit }}\n </div>\n <div v-if=\"'' !== audioCredit\" class=\"mb-1\">\n {{ t(\"Audio credits\") + \" : \" + audioCredit }}\n </div>\n <div v-if=\"'' !== authorCredit\" class=\"mb-1\">\n {{ t(\"Author credits\") + \" : \" + authorCredit }}\n </div>\n <a\n v-if=\"podcast.article && !authStore.isGarRole\"\n class=\"btn d-flex align-items-center my-2 w-fit-content mb-1\"\n :href=\"podcast.article\"\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n :title=\"t('New window', {text : t('See associated article')})\"\n >\n <NewspaperVariantOutlineIcon class=\"me-1\" />\n <div>{{ t(\"See associated article\") }}</div>\n </a>\n <PodcastPlayBar\n v-if=\"state.emissionsPage.progressBar\"\n :podcast=\"podcast\"\n />\n <div v-if=\"editRight && !isPodcastmaker\">\n <div\n v-if=\"\n podcast.annotations && 'RSS' === podcast.annotations.SOURCE_KIND\n \"\n class=\"me-5 text-secondary\"\n >\n {{ t(\"From RSS\") }}\n </div>\n <ClassicAlert\n v-if=\"alert\"\n :type=\"alert.type\"\n style=\"width: fit-content\"\n >\n <div class=\"d-flex align-items-center\">\n {{ alert.message }}\n\n <slot name=\"alert-message\" :alert=\"alert\" />\n </div>\n </ClassicAlert>\n </div>\n <div class=\"d-flex align-items-center flex-wrap\">\n <LikeSection :edit-right=\"editRight\" :podcast=\"podcast\" />\n <DownloadPodcastButton v-if=\"state.podcastPage.downloadButton\" :podcast=\"podcast\" />\n </div>\n </div>\n </div>\n <TagList\n v-if=\"showTags\"\n :tag-list=\"tags\"\n :orga-id=\"podcast.organisation.id\"\n :podcast-annotations=\"podcast.annotations\"\n :max=\"state.podcastPage.maxTags\"\n />\n <InlineRubriqueList\n v-if=\"podcastRubriques?.length\"\n :orga-id=\"podcast.organisation.id\"\n :rubrique-ids=\"podcastRubriques\"\n />\n <PodcastRawTranscript\n ref=\"podcastRawTranscript\"\n :podcast-id=\"podcast.podcastId\"\n />\n <SubscribeButtons\n v-if=\"isPodcastmaker\"\n class=\"mt-4\"\n :content=\"podcast.emission\"\n :window-width=\"1000\"\n :justify-center=\"false\"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport NewspaperVariantOutlineIcon from \"vue-material-design-icons/NewspaperVariantOutline.vue\";\nimport PodcastImage from \"./PodcastImage.vue\";\nimport ParticipantDescription from \"./ParticipantDescription.vue\";\nimport PodcastRawTranscript from \"./PodcastRawTranscript.vue\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport displayHelper from \"../../../helper/displayHelper\";\nimport {usePodcastView} from \"../../composable/podcasts/usePodcastView\";\nimport { Podcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"../../../stores/class/conference/conference\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useSeasonsManagement } from \"../../composable/useSeasonsManagement\";\nimport { SeasonMode } from \"../../../stores/class/general/emission\";\nimport RightsIndicator from \"../RightsIndicator.vue\"; \nimport ClassicAlert from \"@/components/misc/ClassicAlert.vue\"; \n\nimport { defineAsyncComponent, toRefs, computed, useTemplateRef } from \"vue\";\nimport { useAppleVideo } from \"@/components/composable/useAppleVideo\";\nconst PodcastPlayBar = defineAsyncComponent(\n () => import(\"./PodcastPlayBar.vue\"),\n);\nconst SubscribeButtons = defineAsyncComponent(\n () => import(\"../sharing/SubscribeButtons.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../comments/like/LikeSection.vue\"),\n);\nconst DownloadPodcastButton = defineAsyncComponent(\n () => import(\"./DownloadPodcastButton.vue\"),\n);\nconst PodcastPlannedSpinner = defineAsyncComponent(\n () => import(\"./PodcastPlannedSpinner.vue\"),\n);\nconst Countdown = defineAsyncComponent(() => import(\"../live/CountDown.vue\"));\nconst TagList = defineAsyncComponent(() => import(\"./TagList.vue\"));\nconst ShareAnonymous = defineAsyncComponent(() => import(\"../sharing/ShareAnonymous.vue\"));\nconst InlineRubriqueList = defineAsyncComponent(() => import(\"../rubriques/InlineRubriqueList.vue\"));\n\n//Props \nconst props = defineProps<{\n podcast: Podcast;\n playingPodcast?: Podcast;\n podcastConference?: Conference;\n}>();\n\n//Emits\nconst emit = defineEmits([\"updatePodcast\"]);\n\n//Composables\nconst { t } = useI18n();\nconst propsRef = toRefs(props);\nconst { \n isLiveReadyToRecord,\n isCounter,\n timeRemaining,\n isPlannedInProcessor,\n date,\n duration,\n durationIso,\n isPodcastmaker,\n editRight\n} = usePodcastView(propsRef.podcast, propsRef.podcastConference);\nconst authStore = useAuthStore();\nconst router = useRouter();\nconst { areSeasonsEnabled } = useSeasonsManagement();\nconst { isErrorStatus, toGenericErrorCode } = useAppleVideo();\n\n/** Reference to the PodcastRqwTranscript */\nconst podcastRawTranscript = useTemplateRef('podcastRawTranscript');\n\n//Computed\nconst podcastRubriques = computed(() => {\n let rubriques = props.podcast?.rubriqueIds ?? [];\n if(props.podcast?.emission?.rubriqueIds){\n rubriques = [...new Set(rubriques.concat(props.podcast?.emission?.rubriqueIds))];\n }\n return rubriques;\n});\n\ninterface Alert {\n type: 'error'|'warning'|'info';\n message: string;\n code?: string;\n}\n\nconst alert = computed((): Alert|null => {\n if (\"ERROR\" === props.podcast?.processingStatus) {\n return {\n type: 'error',\n message: t(\"Podcast in ERROR, please contact Saooti\")\n };\n }\n const appleVideoStatus = props.podcast?.annotations?.appleVideoStatus as string|undefined;\n if (isErrorStatus(appleVideoStatus)) {\n return {\n type: 'error',\n message: t('Apple podcast - Error - Undefined', {\n status: appleVideoStatus\n }),\n code: toGenericErrorCode(appleVideoStatus)\n };\n }\n if (podcastNotValid.value) {\n return {\n type: 'warning',\n message: t(\"Podcast not validated\")\n };\n }\n if (appleVideoStatus === 'HLS_NOT_READY') {\n return {\n type: 'info',\n message: t('Apple podcast - Info - HLS_NOT_READY'),\n code: toGenericErrorCode(appleVideoStatus)\n };\n }\n if (!props.podcast?.availability.visibility) {\n return {\n type: 'warning',\n message: t(\"Podcast is not visible for listeners\")\n };\n }\n return null;\n});\n\nconst isLiveReady = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast?.conferenceId &&\n \"READY\" === props.podcast?.processingStatus\n );\n});\nconst isDebriefing = computed(() => {\n return (\n undefined !== props.podcastConference &&\n \"DEBRIEFING\" === props.podcastConference.status\n );\n});\nconst isOctopusAndAnimator = computed(() => {\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\nconst podcastNotValid = computed(() => {\n return (\n undefined !== props.podcast?.availability &&\n false === props.podcast?.valid\n );\n});\nconst photoCredit = computed(() => formatCredits(props.podcast?.annotations?.photoCredit as string|undefined));\nconst audioCredit = computed(() => formatCredits(props.podcast?.annotations?.audioCredit as string|undefined));\nconst authorCredit = computed(() => formatCredits(props.podcast?.annotations?.authorCredit as string|undefined));\nconst isEditBox = computed(() => !((state.generalParameters.podcastmaker as boolean) ?? false));\n/** The tags to display */\nconst tags = computed(() => {\n const tags = [];\n if(props.podcast.tags) {\n tags.push(...props.podcast.tags);\n }\n // Also display tags defined on emission\n if(props.podcast.emission.tags) {\n tags.push(...props.podcast.emission.tags);\n }\n return tags;\n});\n\nconst showSeasonNumber = computed((): boolean => {\n return areSeasonsEnabled(props.podcast.emission) && props.podcast.seasonNumber !== undefined;\n});\n\nconst showSeasonEpisodeNumber = computed((): boolean => {\n return props.podcast.emission.seasonMode === SeasonMode.SEASON_WITH_PODCAST_NUMBERING && props.podcast.seasonEpisodeNumber !== undefined;\n});\n\n/** Indicates whether to show subtitle */\nconst showSubtitle = computed((): boolean => {\n return props.podcast.annotations?.subtitle && state.podcastPage?.hideSubtitle !== true;\n});\n\n/** Indicates whether to show description */\nconst showDescription = computed((): boolean => {\n return state.podcastPage?.descriptionOrSummary !== 'summary';\n});\n\n/** Indicates whether to show summary */\nconst showSummary = computed((): boolean => {\n return props.podcast.summary && state.podcastPage?.descriptionOrSummary !== 'description' && state.podcastPage?.descriptionOrSummary !== undefined;\n});\n\n//Methods\nfunction formatCredits(credits: string|undefined): string {\n if (credits === undefined) {\n return '';\n }\n return credits.split(',').map(s => s.trim()).join(', ');\n}\nfunction urlify(text:string|undefined){\n return displayHelper.urlify(text);\n}\nfunction removeDeleted(): void {\n if (isLiveReadyToRecord.value) {\n router.push(\"/main/pub/lives\");\n } else if (window.history.length > 1) {\n router.go(-1);\n } else {\n router.push(\"/\");\n }\n}\n\nfunction resetTranscription(): void {\n podcastRawTranscript.value.reset();\n}\n\nconst showTags = computed((): boolean => {\n if (state.podcastPage.hideTags === true) {\n return false;\n }\n\n return undefined !== tags.value && 0 !== tags.value.length;\n});\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && podcast\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? podcast.emission.name : titlePage\"\n :img-url=\"podcast.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <PodcastModuleBox\n :playing-podcast=\"playingPodcast\"\n :podcast=\"podcast\"\n :podcast-conference=\"fetchConference\"\n @update-podcast=\"updatePodcast\"\n >\n <template #recording-item-button=\"slotProps\">\n <slot name=\"recording-item-button\" v-bind=\"slotProps\" />\n </template>\n <template #edit-box=\"slotProps\">\n <slot name=\"edit-box\" v-bind=\"slotProps\" />\n </template>\n <template #alert-message=\"slotProps\">\n <slot name=\"alert-message\" v-bind=\"slotProps\" />\n </template>\n </PodcastModuleBox>\n <ShareSocialsButtons\n v-if=\"state.podcastPage.ShareButtons\"\n :organisation-id=\"podcast.organisation.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight && !youtubeId\"\n :podcast=\"podcast\"\n :emission=\"podcast?.emission\"\n :organisation-id=\"authOrgaId\"\n />\n <CommentSection :podcast=\"podcast\" />\n\n <!-- Suggestions -->\n <PodcastInlineList\n :emission-id=\"podcast.emission.emissionId\"\n :href=\"'/main/pub/emission/' + podcast.emission.emissionId\"\n :title=\"t('More episodes of this emission')\"\n :button-text=\"t('All podcast emission button')\"\n title-tag=\"h3\"\n />\n <section v-if=\"!hideSuggestions\">\n <ClassicLazy :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :organisation-id=\"[podcast.organisation.id]\"\n :podcast-id=\"podcastId\"\n :title=\"t('Suggested listening')\"\n />\n </ClassicLazy>\n <ClassicLazy v-for=\"c in categories\" :key=\"c.id\" :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :iab-id=\"c.id\"\n :href=\"'/main/pub/category/' + c.id\"\n :title=\"t('More episodes of this category : ', { name: c.name })\"\n :button-text=\"t('All podcast button', { name: c.name })\"\n :organisation-id=\"[podcast.organisation.id]\"\n />\n </ClassicLazy>\n </section>\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport youtubeVideoHelper from \"../../helper/youtubeVideoHelper\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport PodcastInlineList from \"../display/podcasts/PodcastInlineList.vue\";\nimport PodcastModuleBox from \"../display/podcasts/PodcastModuleBox.vue\";\nimport ClassicLazy from \"../misc/ClassicLazy.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, ref, Ref, watch } from \"vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { AxiosError } from \"axios\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { podcastApi } from \"../../api/podcastApi\";\n\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\n\n//Props \nconst props = defineProps<{\n updateStatus?: string;\n playingPodcast?: Podcast;\n podcastId: number;\n}>();\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst fetchConference: Ref<Conference | undefined> = ref(undefined);\nconst infoReload: Ref<ReturnType<typeof setTimeout>| undefined> = ref(undefined);\nconst youtubeId: Ref<string| undefined> = ref(undefined);\n\n//Composables\nconst route = useRoute();\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst hideSuggestions = computed(() =>{\n return (\n \"true\" ===\n (podcast.value?.emission?.annotations?.[\"HIDE_SUGGESTIONS\"] as\n | string\n | undefined)\n );\n});\nconst emissionMainCategory = computed(() =>{\n if (!podcast.value) {\n return 0;\n }\n if (podcast.value.emission.annotations?.mainIabId) {\n return parseInt(\n podcast.value.emission.annotations.mainIabId as string,\n 10,\n );\n } else if(podcast.value.emission.iabIds?.length) {\n return podcast.value.emission.iabIds[0];\n }\n return 0;\n});\n\nconst categories = computed(() =>{\n if (\"undefined\" === typeof podcast.value) return [];\n return generalStore.storedCategories\n .filter((item: Category) => {\n return (\n podcast.value?.emission.iabIds &&\n -1 !== podcast.value.emission.iabIds.indexOf(item.id)\n );\n })\n .sort((a: Category, b: Category) => {\n if (a.id === emissionMainCategory.value) return -1;\n if (b.id === emissionMainCategory.value) return 1;\n return 0;\n });\n});\n\nconst editRight = computed(() =>{\n return isEditRights(podcast.value?.organisation.id);\n});\n\nconst isLiveReadyToRecord = computed(() =>{\n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value?.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value?.processingStatus\n );\n});\n\nconst isOctopusAndAnimator = computed(() =>{\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\n\n/** Indicates whether to display emission name in header */\nconst useEmissionTitle = computed((): boolean => {\n return state.podcastPage?.displayEmissionTitleInHeader === true;\n});\n\nconst titlePage = computed(() =>{\n return isLiveReadyToRecord.value? t(\"Live episode\"): t(\"Episode\");\n});\n\n\n//Watch\nwatch(()=>props.updateStatus, () => {\n if (fetchConference.value && null !== fetchConference.value) {\n fetchConference.value.status = props.updateStatus;\n }\n});\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value || error.value) {\n return;\n }\n commentStore.initCommentUser();\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n clearTimeout(infoReload.value);\n});\n\n\n//Methods\nasync function initConference() {\n if (!podcast.value || undefined == podcast.value.conferenceId || \"READY_TO_RECORD\" !== podcast.value.processingStatus) return;\n fetchConference.value = { conferenceId: podcast.value.conferenceId, title: \"\" };\n if (isOctopusAndAnimator.value) {\n try {\n fetchConference.value = await classicApi.fetchData<Conference>({\n api: 9,\n path: \"conference/\" + podcast.value.conferenceId,\n });\n } catch {\n await fetchConferenceStatus();\n }\n } else {\n await fetchConferenceStatus();\n }\n if (\n fetchConference.value &&\n -1 !== fetchConference.value.conferenceId &&\n \"PUBLISHING\" !== fetchConference.value.status &&\n \"DEBRIEFING\" !== fetchConference.value.status\n ) {\n fetchConferenceStatusLoop();\n }\n}\n\nasync function fetchConferenceStatusLoop() {\n if(\"PUBLISHING\" ===fetchConference.value?.status){\n return;\n }\n infoReload.value = setTimeout(async () => {\n await fetchConferenceStatus();\n fetchConferenceStatusLoop();\n }, 3000);\n}\nasync function fetchConferenceStatus() {\n try {\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value?.conferenceId,\n });\n fetchConference.value = {...fetchConference.value, ...data};\n } catch {\n //Do nothing\n }\n}\nfunction updatePodcast(podcastUpdated: Podcast): void {\n podcast.value = podcastUpdated;\n filterStore.updateOrgaIfNecessary(podcastUpdated.organisation.id);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\n\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n const data = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n if (\n \"PUBLIC\" !== data.organisation.privacy &&\n filterStore.filterOrgaId !== data.organisation.id &&\n route.query.productor !== data.organisation.id\n ) {\n initError();\n return;\n }\n updatePodcast(data);\n generalStore.contentToDisplayUpdate(data);\n if (\n (!podcast.value.availability.visibility ||\n (\"READY_TO_RECORD\" !== podcast.value.processingStatus &&\n \"READY\" !== podcast.value.processingStatus &&\n \"PROCESSING\" !== podcast.value.processingStatus) ||\n false === podcast.value.valid) &&\n !editRight.value\n ) {\n error.value = true;\n loaded.value = true;\n return;\n }\n podcastInProcessing();\n updatePathParams(podcast.value.title);\n await commentStore.getCommentsConfig(podcast.value);\n if((fetchConference.value?.videoProfile?.includes(\"video_\") && \"READY_TO_RECORD\" === podcast.value.processingStatus) || undefined !== podcast.value.video?.videoId){\n youtubeId.value = youtubeVideoHelper.getYoutubeId(podcast.value?.tags ?? []);\n }\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction podcastInProcessing(){\n if(\"PLANNED\" !== podcast.value?.processingStatus){\n initConference();\n return;\n }\n infoReload.value = setTimeout(async () => {\n const podcast = await podcastApi.get(props.podcastId);\n updatePodcast(podcast);\n podcastInProcessing();\n }, 2000);\n}\n</script>\n","<template>\n <section class=\"page-box\">\n <template v-if=\"loaded && !error && podcast\">\n <PodcastmakerHeader\n v-if=\"isPodcastmaker\"\n :page-title=\"useEmissionTitle ? podcast.emission.name : titlePage\"\n :img-url=\"podcast.imageUrl\"\n />\n <div\n class=\"d-flex flex-column page-element\"\n :class=\"isPodcastmaker ? 'page-element-podcastmaker' : ''\"\n >\n <PodcastModuleBox\n :playing-podcast=\"playingPodcast\"\n :podcast=\"podcast\"\n :podcast-conference=\"fetchConference\"\n @update-podcast=\"updatePodcast\"\n >\n <template #recording-item-button=\"slotProps\">\n <slot name=\"recording-item-button\" v-bind=\"slotProps\" />\n </template>\n <template #edit-box=\"slotProps\">\n <slot name=\"edit-box\" v-bind=\"slotProps\" />\n </template>\n <template #alert-message=\"slotProps\">\n <slot name=\"alert-message\" v-bind=\"slotProps\" />\n </template>\n </PodcastModuleBox>\n <ShareSocialsButtons\n v-if=\"state.podcastPage.ShareButtons\"\n :organisation-id=\"podcast.organisation.id\"\n />\n <SharePlayer\n v-if=\"!isPodcastmaker && editRight && !youtubeId\"\n :podcast=\"podcast\"\n :emission=\"podcast?.emission\"\n :organisation-id=\"authOrgaId\"\n />\n <CommentSection :podcast=\"podcast\" />\n\n <!-- Suggestions -->\n <PodcastInlineList\n :emission-id=\"podcast.emission.emissionId\"\n :href=\"'/main/pub/emission/' + podcast.emission.emissionId\"\n :title=\"t('More episodes of this emission')\"\n :button-text=\"t('All podcast emission button')\"\n title-tag=\"h3\"\n />\n <section v-if=\"!hideSuggestions\">\n <ClassicLazy :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :organisation-id=\"[podcast.organisation.id]\"\n :podcast-id=\"podcastId\"\n :title=\"t('Suggested listening')\"\n />\n </ClassicLazy>\n <ClassicLazy v-for=\"c in categories\" :key=\"c.id\" :min-height=\"550\">\n <PodcastInlineList\n class=\"mt-4\"\n title-tag=\"h3\"\n :iab-id=\"c.id\"\n :href=\"'/main/pub/category/' + c.id\"\n :title=\"t('More episodes of this category : ', { name: c.name })\"\n :button-text=\"t('All podcast button', { name: c.name })\"\n :organisation-id=\"[podcast.organisation.id]\"\n />\n </ClassicLazy>\n </section>\n </div>\n </template>\n <ClassicLoading\n :loading-text=\"!loaded ? t('Loading content ...') : undefined\"\n :error-text=\"\n error\n ? t(`This episode is not available for (re)listening`)\n : undefined\n \"\n />\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport youtubeVideoHelper from \"../../helper/youtubeVideoHelper\";\nimport {useOrgaComputed} from \"../composable/useOrgaComputed\";\nimport PodcastInlineList from \"../display/podcasts/PodcastInlineList.vue\";\nimport PodcastModuleBox from \"../display/podcasts/PodcastModuleBox.vue\";\nimport ClassicLazy from \"../misc/ClassicLazy.vue\";\nimport ClassicLoading from \"../form/ClassicLoading.vue\";\nimport classicApi from \"../../api/classicApi\";\nimport { state } from \"../../stores/ParamSdkStore\";\nimport { useFilterStore } from \"../../stores/FilterStore\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport {\n Conference,\n ConferencePublicInfo,\n} from \"@/stores/class/conference/conference\";\nimport {useErrorHandler} from \"../composable/useErrorHandler\";\nimport {useSeoTitleUrl} from \"../composable/route/useSeoTitleUrl\";\nimport { computed, defineAsyncComponent, onBeforeUnmount, ref, Ref, watch } from \"vue\";\nimport { Category } from \"@/stores/class/general/category\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport { useGeneralStore } from \"../../stores/GeneralStore\";\nimport { AxiosError } from \"axios\";\nimport { useCommentStore } from \"../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRoute } from \"vue-router\";\nimport { podcastApi } from \"../../api/podcastApi\";\n\nconst ShareSocialsButtons = defineAsyncComponent(\n () => import(\"../display/sharing/ShareSocialsButtons.vue\"),\n);\nconst SharePlayer = defineAsyncComponent(\n () => import(\"../display/sharing/SharePlayer.vue\"),\n);\nconst CommentSection = defineAsyncComponent(\n () => import(\"../display/comments/CommentSection.vue\"),\n);\nconst PodcastmakerHeader = defineAsyncComponent(\n () => import(\"../display/podcastmaker/PodcastmakerHeader.vue\"),\n);\n\n//Props \nconst props = defineProps<{\n updateStatus?: string;\n playingPodcast?: Podcast;\n podcastId: number;\n}>();\n\n\n//Data \nconst loaded = ref(false);\nconst error = ref(false);\nconst podcast: Ref<Podcast | undefined> = ref(undefined);\nconst fetchConference: Ref<Conference | undefined> = ref(undefined);\nconst infoReload: Ref<ReturnType<typeof setTimeout>| undefined> = ref(undefined);\nconst youtubeId: Ref<string| undefined> = ref(undefined);\n\n//Composables\nconst route = useRoute();\nconst { t } = useI18n();\nconst { isPodcastmaker, isEditRights, authOrgaId } = useOrgaComputed();\nconst { updatePathParams } = useSeoTitleUrl();\nconst {handle403} = useErrorHandler();\nconst authStore = useAuthStore();\nconst generalStore = useGeneralStore();\nconst filterStore = useFilterStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst hideSuggestions = computed(() =>{\n return (\n \"true\" ===\n (podcast.value?.emission?.annotations?.[\"HIDE_SUGGESTIONS\"] as\n | string\n | undefined)\n );\n});\nconst emissionMainCategory = computed(() =>{\n if (!podcast.value) {\n return 0;\n }\n if (podcast.value.emission.annotations?.mainIabId) {\n return parseInt(\n podcast.value.emission.annotations.mainIabId as string,\n 10,\n );\n } else if(podcast.value.emission.iabIds?.length) {\n return podcast.value.emission.iabIds[0];\n }\n return 0;\n});\n\nconst categories = computed(() =>{\n if (\"undefined\" === typeof podcast.value) return [];\n return generalStore.storedCategories\n .filter((item: Category) => {\n return (\n podcast.value?.emission.iabIds &&\n -1 !== podcast.value.emission.iabIds.indexOf(item.id)\n );\n })\n .sort((a: Category, b: Category) => {\n if (a.id === emissionMainCategory.value) return -1;\n if (b.id === emissionMainCategory.value) return 1;\n return 0;\n });\n});\n\nconst editRight = computed(() =>{\n return isEditRights(podcast.value?.organisation.id);\n});\n\nconst isLiveReadyToRecord = computed(() =>{\n return (\n undefined !== podcast.value?.conferenceId &&\n 0 !== podcast.value?.conferenceId &&\n \"READY_TO_RECORD\" === podcast.value?.processingStatus\n );\n});\n\nconst isOctopusAndAnimator = computed(() =>{\n return !isPodcastmaker.value && editRight.value && authStore.isRoleLive;\n});\n\n/** Indicates whether to display emission name in header */\nconst useEmissionTitle = computed((): boolean => {\n return state.podcastPage?.displayEmissionTitleInHeader === true;\n});\n\nconst titlePage = computed(() =>{\n return isLiveReadyToRecord.value? t(\"Live episode\"): t(\"Episode\");\n});\n\n\n//Watch\nwatch(()=>props.updateStatus, () => {\n if (fetchConference.value && null !== fetchConference.value) {\n fetchConference.value.status = props.updateStatus;\n }\n});\nwatch(()=>props.podcastId, async () => {\n await getPodcastDetails();\n if (!podcast.value || error.value) {\n return;\n }\n commentStore.initCommentUser();\n}, {immediate: true});\n\n\nonBeforeUnmount(() => {\n generalStore.contentToDisplayUpdate(null);\n clearTimeout(infoReload.value);\n});\n\n\n//Methods\nasync function initConference() {\n if (!podcast.value || undefined == podcast.value.conferenceId || \"READY_TO_RECORD\" !== podcast.value.processingStatus) return;\n fetchConference.value = { conferenceId: podcast.value.conferenceId, title: \"\" };\n if (isOctopusAndAnimator.value) {\n try {\n fetchConference.value = await classicApi.fetchData<Conference>({\n api: 9,\n path: \"conference/\" + podcast.value.conferenceId,\n });\n } catch {\n await fetchConferenceStatus();\n }\n } else {\n await fetchConferenceStatus();\n }\n if (\n fetchConference.value &&\n -1 !== fetchConference.value.conferenceId &&\n \"PUBLISHING\" !== fetchConference.value.status &&\n \"DEBRIEFING\" !== fetchConference.value.status\n ) {\n fetchConferenceStatusLoop();\n }\n}\n\nasync function fetchConferenceStatusLoop() {\n if(\"PUBLISHING\" ===fetchConference.value?.status){\n return;\n }\n infoReload.value = setTimeout(async () => {\n await fetchConferenceStatus();\n fetchConferenceStatusLoop();\n }, 3000);\n}\nasync function fetchConferenceStatus() {\n try {\n const data = await classicApi.fetchData<ConferencePublicInfo>({\n api: 9,\n path: \"conference/info/\" + podcast.value?.conferenceId,\n });\n fetchConference.value = {...fetchConference.value, ...data};\n } catch {\n //Do nothing\n }\n}\nfunction updatePodcast(podcastUpdated: Podcast): void {\n podcast.value = podcastUpdated;\n filterStore.updateOrgaIfNecessary(podcastUpdated.organisation.id);\n}\nfunction initError(): void {\n error.value = true;\n loaded.value = true;\n}\n\nasync function getPodcastDetails(): Promise<void> {\n loaded.value = false;\n error.value = false;\n try {\n const data = await classicApi.fetchData<Podcast>({\n api: 0,\n path: \"podcast/\" + props.podcastId,\n });\n if (\n \"PUBLIC\" !== data.organisation.privacy &&\n filterStore.filterOrgaId !== data.organisation.id &&\n route.query.productor !== data.organisation.id\n ) {\n initError();\n return;\n }\n updatePodcast(data);\n generalStore.contentToDisplayUpdate(data);\n if (\n (!podcast.value.availability.visibility ||\n (\"READY_TO_RECORD\" !== podcast.value.processingStatus &&\n \"READY\" !== podcast.value.processingStatus &&\n \"PROCESSING\" !== podcast.value.processingStatus) ||\n false === podcast.value.valid) &&\n !editRight.value\n ) {\n error.value = true;\n loaded.value = true;\n return;\n }\n podcastInProcessing();\n updatePathParams(podcast.value.title);\n await commentStore.getCommentsConfig(podcast.value);\n if((fetchConference.value?.videoProfile?.includes(\"video_\") && \"READY_TO_RECORD\" === podcast.value.processingStatus) || undefined !== podcast.value.video?.videoId){\n youtubeId.value = youtubeVideoHelper.getYoutubeId(podcast.value?.tags ?? []);\n }\n loaded.value = true;\n } catch (error) {\n handle403(error as AxiosError);\n initError();\n }\n}\n\nfunction podcastInProcessing(){\n if(\"PLANNED\" !== podcast.value?.processingStatus){\n initConference();\n return;\n }\n infoReload.value = setTimeout(async () => {\n const podcast = await podcastApi.get(props.podcastId);\n updatePodcast(podcast);\n podcastInProcessing();\n }, 2000);\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0NA,MAAM,iBAAiB,2BACb,OAAO,gCACjB;EACA,MAAM,mBAAmB,2BACf,OAAO,kCACjB,CAAA,MAAA,MAAA,EAAA,CAAA,CAAA;EACA,MAAM,cAAc,2BACV,OAAO,6BACjB;EACA,MAAM,wBAAwB,2BACpB,OAAO,uCACjB;EACA,MAAM,wBAAwB,2BACpB,OAAO,uCACjB;EACA,MAAM,YAAY,2BAA2B,OAAO,2BAAwB;EAC5E,MAAM,UAAU,2BAA2B,OAAO,yBAAgB;EAClE,MAAM,iBAAiB,2BAA2B,OAAO,gCAAgC;EACzF,MAAM,qBAAqB,2BAA2B,OAAO,oCAAsC,CAAA,MAAA,MAAA,EAAA,CAAA,CAAA;EAGnG,MAAM,QAAQ;EAOd,MAAM,OAAO;EAGb,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,WAAW,OAAO,KAAK;EAC7B,MAAM,EACF,qBACA,WACA,eACA,sBACA,MACA,UACA,aACA,gBACA,cACA,eAAe,SAAS,SAAS,SAAS,iBAAiB;EAC/D,MAAM,YAAY,aAAa;EAC/B,MAAM,SAAS,UAAU;EACzB,MAAM,EAAE,sBAAsB,qBAAqB;EACnD,MAAM,EAAE,eAAe,uBAAuB,cAAc;;EAG5D,MAAM,uBAAuB,eAAe,sBAAsB;EAGlE,MAAM,mBAAmB,eAAe;GACpC,IAAI,YAAY,MAAM,SAAS,eAAe,CAAC;GAC/C,IAAG,MAAM,SAAS,UAAU,aACxB,YAAY,CAAC,GAAG,IAAI,IAAI,UAAU,OAAO,MAAM,SAAS,UAAU,WAAW,CAAC,CAAC;GAEnF,OAAO;EACX,CAAC;EAQD,MAAM,QAAQ,eAA2B;GACrC,IAAI,YAAY,MAAM,SAAS,kBAC3B,OAAO;IACH,MAAM;IACN,SAAS,EAAE,yCAAyC;GACxD;GAEJ,MAAM,mBAAmB,MAAM,SAAS,aAAa;GACrD,IAAI,cAAc,gBAAgB,GAC9B,OAAO;IACH,MAAM;IACN,SAAS,EAAE,qCAAqC,EAC5C,QAAQ,iBACZ,CAAC;IACD,MAAM,mBAAmB,gBAAgB;GAC7C;GAEJ,IAAI,gBAAgB,OAChB,OAAO;IACH,MAAM;IACN,SAAS,EAAE,uBAAuB;GACtC;GAEJ,IAAI,qBAAqB,iBACrB,OAAO;IACH,MAAM;IACN,SAAS,EAAE,sCAAsC;IACjD,MAAM,mBAAmB,gBAAgB;GAC7C;GAEJ,IAAI,CAAC,MAAM,SAAS,aAAa,YAC7B,OAAO;IACH,MAAM;IACN,SAAS,EAAE,sCAAsC;GACrD;GAEJ,OAAO;EACX,CAAC;EAED,MAAM,cAAc,eAAe;GAC/B,OACI,KAAA,MAAc,MAAM,SAAS,gBAC7B,MAAM,MAAM,SAAS,gBACrB,YAAY,MAAM,SAAS;EAEnC,CAAC;EACD,MAAM,eAAe,eAAe;GAChC,OACI,KAAA,MAAc,MAAM,qBACpB,iBAAiB,MAAM,kBAAkB;EAEjD,CAAC;EACD,MAAM,uBAAuB,eAAe;GACxC,OAAO,CAAC,eAAe,SAAS,UAAU,SAAS,UAAU;EACjE,CAAC;EACD,MAAM,kBAAkB,eAAe;GACnC,OACI,KAAA,MAAc,MAAM,SAAS,gBAC7B,UAAU,MAAM,SAAS;EAEjC,CAAC;EACD,MAAM,cAAc,eAAe,cAAc,MAAM,SAAS,aAAa,WAA+B,CAAC;EAC7G,MAAM,cAAc,eAAe,cAAc,MAAM,SAAS,aAAa,WAA+B,CAAC;EAC7G,MAAM,eAAe,eAAe,cAAc,MAAM,SAAS,aAAa,YAAgC,CAAC;EAC/G,MAAM,YAAY,eAAe,EAAG,MAAM,kBAAkB,gBAA4B,MAAM;;EAE9F,MAAM,OAAO,eAAe;GACxB,MAAM,OAAO,CAAC;GACd,IAAG,MAAM,QAAQ,MACb,KAAK,KAAK,GAAG,MAAM,QAAQ,IAAI;GAGnC,IAAG,MAAM,QAAQ,SAAS,MACtB,KAAK,KAAK,GAAG,MAAM,QAAQ,SAAS,IAAI;GAE5C,OAAO;EACX,CAAC;EAED,MAAM,mBAAmB,eAAwB;GAC7C,OAAO,kBAAkB,MAAM,QAAQ,QAAQ,KAAK,MAAM,QAAQ,iBAAiB,KAAA;EACvF,CAAC;EAED,MAAM,0BAA0B,eAAwB;GACpD,OAAO,MAAM,QAAQ,SAAS,eAAe,WAAW,iCAAiC,MAAM,QAAQ,wBAAwB,KAAA;EACnI,CAAC;;EAGD,MAAM,eAAe,eAAwB;GACzC,OAAO,MAAM,QAAQ,aAAa,YAAY,MAAM,aAAa,iBAAiB;EACtF,CAAC;;EAGD,MAAM,kBAAkB,eAAwB;GAC5C,OAAO,MAAM,aAAa,yBAAyB;EACvD,CAAC;;EAGD,MAAM,cAAc,eAAwB;GACxC,OAAO,MAAM,QAAQ,WAAW,MAAM,aAAa,yBAAyB,iBAAiB,MAAM,aAAa,yBAAyB,KAAA;EAC7I,CAAC;EAGD,SAAS,cAAc,SAAmC;GACtD,IAAI,YAAY,KAAA,GACZ,OAAO;GAEX,OAAO,QAAQ,MAAM,GAAG,CAAC,CAAC,KAAI,MAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;EAC1D;EACA,SAAS,OAAO,MAAsB;GAClC,OAAOA,sBAAc,OAAO,IAAI;EACpC;EACA,SAAS,gBAAsB;GAC3B,IAAI,oBAAoB,OACpB,OAAO,KAAK,iBAAiB;QAC1B,IAAI,OAAO,QAAQ,SAAS,GAC/B,OAAO,GAAG,EAAE;QAEZ,OAAO,KAAK,GAAG;EAEvB;EAEA,SAAS,qBAA2B;GAChC,qBAAqB,MAAM,MAAM;EACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEiB,UAAA,eAAwB;IACrC,IAAI,MAAM,YAAY,aAAa,MAC/B,OAAO;IAGX,OAAO,KAAA,MAAc,KAAK,SAAS,MAAM,KAAK,MAAM;GACxD,CAAA;;;;;;;;;;;;;;;;;;;;;;CC/Z4B,OAAM;;AAkBrB,IAAAE,eAAA,EAAA,OAAM,aAAY;AAkBd,IAAA,aAAA,EAAA,OAAM,gDAA+C;;;;CAQ9B,OAAM;;AAGzB,IAAA,aAAA,EAAA,OAAM,qCAAoC;;;;CAmB3B,OAAM;;;;AAmBzB,IAAA,cAAA,EAAA,OAAM,OAAM;AACR,IAAA,cAAA,EAAA,OAAM,OAAM;;;CAiBW,OAAM;;;;CAWL,OAAM;;;;CAGC,OAAM;;;;CAGX,OAAM;;;;CAGN,OAAM;;;;CAGL,OAAM;;;;;;CAuB9B,OAAM;;AASD,IAAA,cAAA,EAAA,OAAM,4BAA2B;AAOzC,IAAA,cAAA,EAAA,OAAM,sCAAqC;;;CArK7C,OAAA,OAAA,WAAfG,UAAA,GAAAC,mBAkMU,WAlMVL,cAkMU;EAhMM,CAAA,CAAA,OAAA,qBAAqB,OAAA,uBAAuB,OAAA,uBADxDM,WAQE,KAAA,QAAA,yBAAA;GALG,SAAS,OAAA;GACT,MAAM;GACN,WAAW,OAAA;GACX,cAAgB,OAAA;GAChB,oBAAsB,MAAM,OAAA,KAAI,iBAAkB,CAAC;EAGzC,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,IAAA,OAAA,aAAa,OAAA,YAD5BA,WAOE,KAAA,QAAA,YAAA;GAJG,SAAS,OAAA;GACT,qBAAuB,OAAA;GACvB,uBAAyB,OAAA;GACzB,oBAAsB,MAAM,OAAA,KAAI,iBAAkB,CAAC;;EAExDE,mBAwJM,OAxJNP,cAwJM;GAvJFQ,YAgBE,OAAA,iBAAA;IAfG,OAAKC,eAAA,CAAA,CAAwB,OAAA,uBAA+C,OAAA,qBAAwD,WAAA,OAAA,qBAA6C,OAAA,kBAAkB,SAAiC,OAAA,kBAAkB,OAAO,YAAW,IAAA,YAAA,EAQnQ,GAAA,MAAM,CAAA;IACZ,mBAAA;IACC,aAAW,OAAA;IACX,SAAS,OAAA;IACT,mBAAiB,OAAA;IACjB,oBAAkB,OAAA;IAClB,oBAAkB,OAAA;;;;;;;;;GAEvBF,mBAqBM,OArBN,YAqBM;IAnBc,MAAA,OAAA,KAAK,UADrBJ,UAAA,GAAAC,mBAMO,QAAA;;KAJF,OAAKK,eAAA,CAAG,OAAA,cAAW,SAAA,EAAA;KACnB,UAAU,OAAA,QAAQ;IAEhB,GAAAC,gBAAA,OAAA,IAAI,GAAA,IAAA,UAAA,KAAAJ,mBAAA,QAAA,IAAA;IAEA,OAAA,eAAXH,UAAA,GAAAC,mBAEM,OAFN,YAEMM,gBADC,OAAA,EAAC,wBAAA,CAAA,GAAA,CAAA,KAAAJ,mBAAA,QAAA,IAAA;IAERC,mBASM,OATN,YASM,CARFA,mBAEO,QAAA,EAFA,UAAU,OAAA,YAAW,GAAAG,gBACrB,OAAA,QAAQ,GAAA,GAAA,UAAA,GAGJ,CAAA,OAAA,aADXP,UAAA,GAAAQ,YAIE,OAAA,mBAAA;;KAFG,SAAS,OAAA;KACT,mBAAiB,OAAA,QAAQ,aAAa;;;GAInDJ,mBAOK,MAAA,EAPA,OAAKE,eAAA,EAAA,QAAA,CAAa,OAAA,aAAY,CAAA,EAAA,GAC/B,CAAAD,YAIE,OAAA,oBAAA;IAHG,SAAS,OAAA;IACV,QAAO;IACP,QAAA;GACF,GAAA,MAAA,GAAA,CAAA,SAAA,CAAA,GAAAI,gBAAA,MACFF,gBAAG,OAAA,QAAQ,KAAK,GAAA,CAAA,CAAA,GAAA,CAAA;GAEV,OAAA,gBAAVP,UAAA,GAAAC,mBAEK,MAFL,YAEKM,gBADE,OAAA,QAAQ,YAAY,QAAQ,GAAA,CAAA,KAAAJ,mBAAA,QAAA,IAAA;GAGN,OAAA,wBAA7BH,UAAA,GAAAQ,YAAqD,OAAA,0BAAA,EAAA,KAAA,EAAA,CAAA,KAAAL,mBAAA,QAAA,IAAA;GACpC,OAAA,aAAjBH,UAAA,GAAAQ,YAA8D,OAAA,cAAA;;IAAjC,kBAAgB,OAAA;;GAC7CL,mBAAA,gCAAA;GAEU,OAAA,eADVH,UAAA,GAAAC,mBAKE,OAAA;;IAHE,OAAKK,eAAA,CAAC,yCAAuC,EAAA,QAC3B,OAAA,eAAe,OAAA,gBAAe,CAAA,CAAA;IAChD,WAAQ,OAAA,OAAO,OAAA,QAAQ,OAAO;;GAGxB,OAAA,mBADVN,UAAA,GAAAC,mBAIE,OAAA;;IAFE,OAAM;IACN,WAAQ,OAAA,OAAO,OAAA,QAAQ,WAAW;;GAEtCE,mBAAA,iBAAA;GACAC,mBAoFM,OApFN,aAoFM;IAnFFA,mBAWM,OAXN,aAWM,CAVCK,gBAAAF,gBAAA,OAAA,EAAC,UAAA,IAAA,KAAA,IAAuB,KAC3B,CAAA,GAAAF,YAQc,wBAAA;KAPT,IAAE;;MAAoG,QAAA,EAAA,YAAA,OAAA,QAAQ,SAAS,WAAU;;KAIjI,OAAO,OAAA,EAAC,oBAAA,EAAA,MAA6B,OAAA,QAAQ,SAAS,KAAI,CAAA;;KAE3D,SAAAK,cAA2B,CAAxBD,gBAAAF,gBAAA,OAAA,QAAQ,SAAS,IAAI,GAAA,CAAA,CAAA,CAAA;;;IAGhCF,YAA4D,OAAA,2BAAA,EAAnC,cAAc,OAAA,QAAQ,UAAA,GAAA,MAAA,GAAA,CAAA,cAAA,CAAA;IAC/CA,YAGE,OAAA,2BAAA;KAFG,cAAc,OAAA,QAAQ;KACtB,YAAU;;IAEH,CAAA,OAAA,kBAAZL,UAAA,GAAAC,mBAUM,OAVN,aAUM,CATCQ,gBAAAF,gBAAA,OAAA,EAAC,iBAAA,CAAA,IAAsB,KAC1B,CAAA,GAAAF,YAOc,wBAAA,EANT,IAAE;;KAAsG,QAAA,EAAA,aAAA,OAAA,QAAQ,aAAa,GAAE;;KAKhI,SAAAK,cAA+B,CAA5BD,gBAAAF,gBAAA,OAAA,QAAQ,aAAa,IAAI,GAAA,CAAA,CAAA,CAAA;;;IAGzB,OAAA,oBAAXP,UAAA,GAAAC,mBAEM,OAFN,aAEMM,gBAAA,GADI,OAAA,EAAC,kBAAA,EAAA,KAA0B,OAAA,QAAQ,cAAY,GAAA,CAAA,KAAAJ,mBAAA,QAAA,IAAA;IAE9C,OAAA,2BAAXH,UAAA,GAAAC,mBAEM,OAFN,aAEMM,gBAAA,GADI,OAAA,EAAC,0BAAA,EAAA,KAAkC,OAAA,QAAQ,qBAAmB,GAAA,CAAA,KAAAJ,mBAAA,QAAA,IAAA;IAEtD,OAAA,OAAA,eAAlBH,UAAA,GAAAC,mBAEM,OAFN,aAEMM,gBADC,OAAA,EAAC,eAAA,IAAA,QAA4B,OAAA,WAAW,GAAA,CAAA,KAAAJ,mBAAA,QAAA,IAAA;IAE7B,OAAA,OAAA,eAAlBH,UAAA,GAAAC,mBAEM,OAFN,aAEMM,gBADC,OAAA,EAAC,eAAA,IAAA,QAA4B,OAAA,WAAW,GAAA,CAAA,KAAAJ,mBAAA,QAAA,IAAA;IAE7B,OAAA,OAAA,gBAAlBH,UAAA,GAAAC,mBAEM,OAFN,aAEMM,gBADC,OAAA,EAAC,gBAAA,IAAA,QAA6B,OAAA,YAAY,GAAA,CAAA,KAAAJ,mBAAA,QAAA,IAAA;IAGvC,OAAA,QAAQ,WAAO,CAAK,OAAA,UAAU,aADxCH,UAAA,GAAAC,mBAUI,KAAA;;KARA,OAAM;KACL,MAAM,OAAA,QAAQ;KACf,KAAI;KACJ,QAAO;KACN,OAAO,OAAA,EAAC,cAAA,EAAA,MAAuB,OAAA,EAAC,wBAAA,EAAA,CAAA;IAEjC,GAAA,CAAAI,YAA4C,OAAA,gCAAA,EAAf,OAAM,OAAM,CAAA,GACzCD,mBAA4C,OAAA,MAAAG,gBAApC,OAAA,EAAC,wBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA,WAAA,KAAAJ,mBAAA,QAAA,IAAA;IAGH,OAAA,MAAM,cAAc,eAD9BH,UAAA,GAAAQ,YAGE,OAAA,mBAAA;;KADG,SAAS,OAAA;;IAEH,OAAA,aAAS,CAAK,OAAA,kBAAzBR,UAAA,GAAAC,mBAoBM,OAAA,aAAA,CAlBqC,OAAA,QAAQ,eAAW,UAAc,OAAA,QAAQ,YAAY,eAD5FD,UAAA,GAAAC,mBAOM,OAPN,aAOMM,gBADC,OAAA,EAAC,UAAA,CAAA,GAAA,CAAA,KAAAJ,mBAAA,QAAA,IAAA,GAGE,OAAA,SADVH,UAAA,GAAAQ,YAUe,OAAA,iBAAA;;KARV,MAAM,OAAA,MAAM;KACb,OAAA,EAAA,SAAA,cAAA;;KAEA,SAAAE,cAIM,CAJNN,mBAIM,OAJN,aAIM,CAHCK,gBAAAF,gBAAA,OAAA,MAAM,OAAO,IAAG,KAEnB,CAAA,GAAAL,WAA4C,KAAA,QAAA,iBAAA,EAAhB,OAAO,OAAA,MAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;IAIpDE,mBAGM,OAHN,aAGM,CAFFC,YAA0D,OAAA,gBAAA;KAA5C,cAAY,OAAA;KAAY,SAAS,OAAA;IAClB,GAAA,MAAA,GAAA,CAAA,cAAA,SAAA,CAAA,GAAA,OAAA,MAAM,YAAY,kBAA/CL,UAAA,GAAAQ,YAAoF,OAAA,0BAAA;;KAApB,SAAS,OAAA;;;;EAK3E,OAAA,YADVR,UAAA,GAAAQ,YAME,OAAA,YAAA;;GAJG,YAAU,OAAA;GACV,WAAS,OAAA,QAAQ,aAAa;GAC9B,uBAAqB,OAAA,QAAQ;GAC7B,KAAK,OAAA,MAAM,YAAY;;;;;;;EAGlB,OAAA,kBAAkB,UAD5BR,UAAA,GAAAQ,YAIE,OAAA,uBAAA;;GAFG,WAAS,OAAA,QAAQ,aAAa;GAC9B,gBAAc,OAAA;;EAEnBH,YAGE,OAAA,yBAAA;GAFE,KAAI;GACH,cAAY,OAAA,QAAQ;;EAGf,OAAA,kBADVL,UAAA,GAAAQ,YAME,OAAA,qBAAA;;GAJE,OAAM;GACL,SAAS,OAAA,QAAQ;GACjB,gBAAc;GACd,kBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;ECnF7B,MAAM,sBAAsB,2BACpB,OAAO,qCACf;EACA,MAAM,cAAc,2BACZ,OAAO,6BACf,CAAA,MAAA,MAAA,EAAA,CAAA,CAAA;EACA,MAAM,iBAAiB,2BACf,OAAO,gCACf;EACA,MAAM,qBAAqB,2BACnB,OAAO,oCACf;EAGA,MAAM,QAAQ;EAQd,MAAM,SAAS,IAAI,KAAK;EACxB,MAAM,QAAQ,IAAI,KAAK;EACvB,MAAM,UAAoC,IAAI,KAAA,CAAS;EACvD,MAAM,kBAA+C,IAAI,KAAA,CAAS;EAClE,MAAM,aAA4D,IAAI,KAAA,CAAS;EAC/E,MAAM,YAAoC,IAAI,KAAA,CAAS;EAGvD,MAAM,QAAQ,SAAS;EACvB,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,EAAE,gBAAgB,cAAc,eAAe,gBAAgB;EACrE,MAAM,EAAE,qBAAqB,eAAe;EAC5C,MAAM,EAAC,cAAa,gBAAgB;EACpC,MAAM,YAAY,aAAa;EAC/B,MAAM,eAAe,gBAAgB;EACrC,MAAM,cAAc,eAAe;EACnC,MAAM,eAAe,gBAAgB;EAGrC,MAAM,kBAAkB,eAAc;GACpC,OACI,WACC,QAAQ,OAAO,UAAU,cAAc;EAI9C,CAAC;EACD,MAAM,uBAAuB,eAAc;GACzC,IAAI,CAAC,QAAQ,OACX,OAAO;GAET,IAAI,QAAQ,MAAM,SAAS,aAAa,WACtC,OAAO,SACL,QAAQ,MAAM,SAAS,YAAY,WACnC,EACF;QACK,IAAG,QAAQ,MAAM,SAAS,QAAQ,QACvC,OAAO,QAAQ,MAAM,SAAS,OAAO;GAEvC,OAAO;EACT,CAAC;EAED,MAAM,aAAa,eAAc;GAC/B,IAAI,gBAAgB,OAAO,QAAQ,OAAO,OAAO,CAAC;GAClD,OAAO,aAAa,iBACjB,QAAQ,SAAmB;IAC1B,OACE,QAAQ,OAAO,SAAS,UACxB,OAAO,QAAQ,MAAM,SAAS,OAAO,QAAQ,KAAK,EAAE;GAExD,CAAC,CAAA,CACA,MAAM,GAAa,MAAgB;IAClC,IAAI,EAAE,OAAO,qBAAqB,OAAO,OAAO;IAChD,IAAI,EAAE,OAAO,qBAAqB,OAAO,OAAO;IAChD,OAAO;GACT,CAAC;EACL,CAAC;EAED,MAAM,YAAY,eAAc;GAC9B,OAAO,aAAa,QAAQ,OAAO,aAAa,EAAE;EACpD,CAAC;EAED,MAAM,sBAAsB,eAAc;GACxC,OACE,KAAA,MAAc,QAAQ,OAAO,gBAC7B,MAAM,QAAQ,OAAO,gBACrB,sBAAsB,QAAQ,OAAO;EAEzC,CAAC;EAED,MAAM,uBAAuB,eAAc;GACzC,OAAO,CAAC,eAAe,SAAS,UAAU,SAAS,UAAU;EAC/D,CAAC;;EAGD,MAAM,mBAAmB,eAAwB;GAC7C,OAAO,MAAM,aAAa,iCAAiC;EAC/D,CAAC;EAED,MAAM,YAAY,eAAc;GAC9B,OAAO,oBAAoB,QAAO,EAAE,cAAc,IAAG,EAAE,SAAS;EAClE,CAAC;EAID,YAAU,MAAM,oBAAoB;GAClC,IAAI,gBAAgB,SAAS,SAAS,gBAAgB,OACpD,gBAAgB,MAAM,SAAS,MAAM;EAEzC,CAAC;EACD,YAAU,MAAM,WAAW,YAAY;GACrC,MAAM,kBAAkB;GACxB,IAAI,CAAC,QAAQ,SAAS,MAAM,OAC1B;GAEF,aAAa,gBAAgB;EAC/B,GAAG,EAAC,WAAW,KAAI,CAAC;EAGpB,sBAAsB;GACpB,aAAa,uBAAuB,IAAI;GACxC,aAAa,WAAW,KAAK;EAC/B,CAAC;EAID,eAAe,iBAAiB;GAC9B,IAAI,CAAC,QAAQ,SAAS,KAAA,KAAa,QAAQ,MAAM,gBAAgB,sBAAsB,QAAQ,MAAM,kBAAkB;GACvH,gBAAgB,QAAQ;IAAE,cAAc,QAAQ,MAAM;IAAc,OAAO;GAAG;GAC9E,IAAI,qBAAqB,OACvB,IAAI;IACF,gBAAgB,QAAQ,MAAMI,mBAAW,UAAsB;KAC7D,KAAK;KACL,MAAM,gBAAgB,QAAQ,MAAM;IACtC,CAAC;GACH,QAAQ;IACN,MAAM,sBAAsB;GAC9B;QAEA,MAAM,sBAAsB;GAE9B,IACE,gBAAgB,SAChB,OAAO,gBAAgB,MAAM,gBAC7B,iBAAiB,gBAAgB,MAAM,UACvC,iBAAiB,gBAAgB,MAAM,QAEvC,0BAA0B;EAE9B;EAEA,eAAe,4BAA4B;GACzC,IAAG,iBAAgB,gBAAgB,OAAO,QACxC;GAEF,WAAW,QAAQ,WAAW,YAAY;IACxC,MAAM,sBAAsB;IAC5B,0BAA0B;GAC5B,GAAG,GAAI;EACT;EACA,eAAe,wBAAwB;GACrC,IAAI;IACF,MAAM,OAAO,MAAMA,mBAAW,UAAgC;KAC5D,KAAK;KACL,MAAM,qBAAqB,QAAQ,OAAO;IAC5C,CAAC;IACD,gBAAgB,QAAQ;KAAC,GAAG,gBAAgB;KAAO,GAAG;IAAI;GAC5D,QAAQ,CAER;EACF;EACA,SAAS,cAAc,gBAA+B;GACpD,QAAQ,QAAQ;GAChB,YAAY,sBAAsB,eAAe,aAAa,EAAE;EAClE;EACA,SAAS,YAAkB;GACzB,MAAM,QAAQ;GACd,OAAO,QAAQ;EACjB;EAEA,eAAe,oBAAmC;GAChD,OAAO,QAAQ;GACf,MAAM,QAAQ;GACd,IAAI;IACF,MAAM,OAAO,MAAMA,mBAAW,UAAmB;KAC/C,KAAK;KACL,MAAM,aAAa,MAAM;IAC3B,CAAC;IACD,IACE,aAAa,KAAK,aAAa,WAC/B,YAAY,iBAAiB,KAAK,aAAa,MAC/C,MAAM,MAAM,cAAc,KAAK,aAAa,IAC5C;KACA,UAAU;KACV;IACF;IACA,cAAc,IAAI;IAClB,aAAa,uBAAuB,IAAI;IACxC,KACG,CAAC,QAAQ,MAAM,aAAa,cAC1B,sBAAsB,QAAQ,MAAM,oBACnC,YAAY,QAAQ,MAAM,oBAC1B,iBAAiB,QAAQ,MAAM,oBACjC,UAAU,QAAQ,MAAM,UAC1B,CAAC,UAAU,OACX;KACA,MAAM,QAAQ;KACd,OAAO,QAAQ;KACf;IACF;IACA,oBAAoB;IACpB,iBAAiB,QAAQ,MAAM,KAAK;IACpC,MAAM,aAAa,kBAAkB,QAAQ,KAAK;IAClD,IAAI,gBAAgB,OAAO,cAAc,SAAS,QAAQ,KAAK,sBAAsB,QAAQ,MAAM,oBAAqB,KAAA,MAAc,QAAQ,MAAM,OAAO,SACzJ,UAAU,QAAQC,2BAAmB,aAAa,QAAQ,OAAO,QAAQ,CAAC,CAAC;IAE7E,OAAO,QAAQ;GACjB,SAAS,OAAO;IACd,UAAU,KAAmB;IAC7B,UAAU;GACZ;EACF;EAEA,SAAS,sBAAqB;GAC5B,IAAG,cAAc,QAAQ,OAAO,kBAAiB;IAC/C,eAAe;IACf;GACF;GACA,WAAW,QAAQ,WAAW,YAAY;IAExC,cAAc,MADQ,WAAW,IAAI,MAAM,SAAS,CAC/B;IACrB,oBAAoB;GACtB,GAAG,GAAI;EACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxVW,IAAA,aAAA,EAAA,OAAM,WAAU;;;CAAzB,OAAAC,UAAA,GAAAC,mBA+EU,WA/EV,YA+EU,CA9EQ,OAAA,UAAM,CAAK,OAAA,SAAS,OAAA,WAApCD,UAAA,GAAAC,mBAqEWC,UAAA,EAAA,KAAA,EAAA,GAAA,CAnED,OAAA,kBADRF,UAAA,GAAAG,YAIE,OAAA,uBAAA;;EAFC,cAAY,OAAA,mBAAmB,OAAA,QAAQ,SAAS,OAAO,OAAA;EACvD,WAAS,OAAA,QAAQ;CAEpB,GAAA,MAAA,GAAA,CAAA,cAAA,SAAA,CAAA,KAAAC,mBAAA,QAAA,IAAA,GAAAC,mBA8DM,OAAA,EA7DJ,OAAKC,eAAA,CAAC,mCACE,OAAA,iBAAc,8BAAA,EAAA,CAAA,EAAA,GAAA;EAEtBC,YAemB,OAAA,qBAAA;GAdhB,mBAAiB,OAAA;GACjB,SAAS,OAAA;GACT,sBAAoB,OAAA;GACpB,iBAAgB,OAAA;;GAEN,yBAAqBC,SAC0B,cADf,CACzCC,WAAwD,KAAA,QAAA,yBAAAC,eAAAC,mBAAb,SAAS,CAAA,CAAA,CAAA,CAAA;GAE3C,YAAQH,SAC0B,cADf,CAC5BC,WAA2C,KAAA,QAAA,YAAAC,eAAAC,mBAAb,SAAS,CAAA,CAAA,CAAA,CAAA;GAE9B,iBAAaH,SAC0B,cADf,CACjCC,WAAgD,KAAA,QAAA,iBAAAC,eAAAC,mBAAb,SAAS,CAAA,CAAA,CAAA,CAAA;;;;;;;EAIxC,OAAA,MAAM,YAAY,gBAD1BX,UAAA,GAAAG,YAGE,OAAA,wBAAA;;GADC,mBAAiB,OAAA,QAAQ,aAAa;;EAGhC,CAAA,OAAA,kBAAkB,OAAA,aAAS,CAAK,OAAA,aADzCH,UAAA,GAAAG,YAKE,OAAA,gBAAA;;GAHC,SAAS,OAAA;GACT,UAAU,OAAA,SAAS;GACnB,mBAAiB,OAAA;;;;;;EAEpBI,YAAqC,OAAA,mBAAA,EAApB,SAAS,OAAA,QAAO,GAAA,MAAA,GAAA,CAAA,SAAA,CAAA;EAEjCH,mBAAA,eAAA;EACAG,YAME,OAAA,sBAAA;GALC,eAAa,OAAA,QAAQ,SAAS;GAC9B,MAAI,wBAA0B,OAAA,QAAQ,SAAS;GAC/C,OAAO,OAAA,EAAC,gCAAA;GACR,eAAa,OAAA,EAAC,6BAAA;GACf,aAAU;;;;;;;EAEI,CAAA,OAAA,mBAAhBP,UAAA,GAAAC,mBAqBU,WAAA,YAAA,CApBRM,YAQc,OAAA,gBAAA,EARA,cAAY,IAAG,GAAA;GAC3B,SAAAC,cAME,CANFD,YAME,OAAA,sBAAA;IALA,OAAM;IACN,aAAU;IACT,mBAAe,CAAG,OAAA,QAAQ,aAAa,EAAE;IACzC,cAAY,OAAA;IACZ,OAAO,OAAA,EAAC,qBAAA;;;;;;;EAGb,CAAA,IAAAP,UAAA,IAAA,GAAAC,mBAUcC,UAAA,MAAAU,WAVW,OAAA,aAAL,MAAC;GAArB,OAAAZ,UAAA,GAAAG,YAUc,OAAA,gBAAA;IAVwB,KAAK,EAAE;IAAK,cAAY;;IAC5D,SAAAK,cAQE,CARFD,YAQE,OAAA,sBAAA;KAPA,OAAM;KACN,aAAU;KACT,UAAQ,EAAE;KACV,MAAI,wBAA0B,EAAE;KAChC,OAAO,OAAA,EAAC,qCAAA,EAAA,MAA8C,EAAE,KAAI,CAAA;KAC5D,eAAa,OAAA,EAAC,sBAAA,EAAA,MAA+B,EAAE,KAAI,CAAA;KACnD,mBAAe,CAAG,OAAA,QAAQ,aAAa,EAAE;;;;;;;;;;;CAMpD,GAAA,CAAA,CAAA,GAAA,EAAA,KAAAH,mBAAA,QAAA,IAAA,GAAAG,YAOE,OAAA,mBAAA;EANC,gBAAY,CAAG,OAAA,SAAS,OAAA,EAAC,qBAAA,IAA0B,KAAA;EACnD,cAAqB,OAAA,QAAkB,OAAA,EAAC,iDAAA,IAAgE,KAAA"}
@@ -1,23 +1,23 @@
1
1
  import { t as e } from "./ClassicLoading-CXfMjpyl.mjs";
2
- import { A as t, i as n, m as ee, r as te, t as r } from "./classicApi-pmODlqv5.mjs";
2
+ import { i as t, j as n, m as ee, r as te, t as r } from "./classicApi-CGipMqf7.mjs";
3
3
  import { t as i } from "./displayHelper-DQtoqc_6.mjs";
4
4
  import { t as ne } from "./GeneralStore-Darfv4af.mjs";
5
- import { t as re } from "./useErrorHandler-D9W2BURn.mjs";
5
+ import { t as re } from "./useErrorHandler-x9sjDYSz.mjs";
6
6
  import { t as ie } from "./useSeoTitleUrl-UfPXDCPa.mjs";
7
- import { t as ae } from "./useOrgaComputed-CBJ5sDOm.mjs";
7
+ import { t as ae } from "./useOrgaComputed-D81Jihm-.mjs";
8
8
  import { t as oe } from "./emission-CQ1VuxRc.mjs";
9
9
  import { t as se } from "./useSeasonsManagement-DwbmJywJ.mjs";
10
10
  import { t as ce } from "./useAppleVideo-Di4qP9h4.mjs";
11
- import { t as le } from "./CommentStore-hPTYaDGr.mjs";
11
+ import { t as le } from "./CommentStore-CysGkBHp.mjs";
12
12
  import { t as ue } from "./ClassicAlert-DATLZ8J1.mjs";
13
- import { t as a } from "./RightsIndicator-D0cSu8j2.mjs";
13
+ import { t as a } from "./RightsIndicator-CPzWpH5Z.mjs";
14
14
  import { t as o } from "./ClassicLazy-CDhWc5-4.mjs";
15
- import { t as s } from "./PodcastImage-BtiQlrb3.mjs";
15
+ import { t as s } from "./PodcastImage-BFA22TgZ.mjs";
16
16
  import { t as c } from "./ParticipantDescription-DVSfKvtg.mjs";
17
- import { t as l } from "./PodcastInlineList-B32BSFqN.mjs";
18
- import { t as u } from "./PodcastRawTranscript-Cktqtbcg.mjs";
17
+ import { t as l } from "./PodcastInlineList-H6BxXx0A.mjs";
18
+ import { t as u } from "./PodcastRawTranscript-BiuftXu-.mjs";
19
19
  import { t as d } from "./youtubeVideoHelper-Cdlokujb.mjs";
20
- import { t as f } from "./usePodcastView-CoDJJr6Y.mjs";
20
+ import { t as f } from "./usePodcastView-CkM-n6iO.mjs";
21
21
  import { Fragment as p, computed as m, createBlock as h, createCommentVNode as g, createElementBlock as _, createElementVNode as v, createTextVNode as y, createVNode as b, defineAsyncComponent as x, defineComponent as S, guardReactiveProps as C, normalizeClass as w, normalizeProps as T, onBeforeUnmount as de, openBlock as E, ref as D, renderList as fe, renderSlot as O, resolveComponent as pe, toDisplayString as k, toRefs as A, unref as j, useTemplateRef as me, watch as M, withCtx as N } from "vue";
22
22
  import { useI18n as he } from "vue-i18n";
23
23
  import { useRoute as ge, useRouter as _e } from "vue-router";
@@ -62,7 +62,7 @@ var P = {
62
62
  },
63
63
  emits: ["updatePodcast"],
64
64
  setup(e, { emit: ee }) {
65
- let te = x(() => import("./PodcastPlayBar-gAEttclo.mjs")), r = x(() => import("./SubscribeButtons-zlRDGEzS.mjs").then((e) => e.n)), ne = x(() => import("./LikeSection-MmbHMunb.mjs")), re = x(() => import("./DownloadPodcastButton-BYWuLoNg.mjs")), ie = x(() => import("./PodcastPlannedSpinner-DcDDays8.mjs")), ae = x(() => import("./CountDown-o6ye6yv1.mjs")), le = x(() => import("./TagList-BBHyaKp-.mjs")), o = x(() => import("./ShareAnonymous-bOwwEjPv.mjs")), l = x(() => import("./InlineRubriqueList-BzcHKvM4.mjs").then((e) => e.n)), d = e, p = ee, { t: S } = he(), C = A(d), { isLiveReadyToRecord: T, isCounter: de, timeRemaining: D, isPlannedInProcessor: fe, date: M, duration: ge, durationIso: Ae, isPodcastmaker: K, editRight: q } = f(C.podcast, C.podcastConference), J = n(), Y = _e(), { areSeasonsEnabled: je } = se(), { isErrorStatus: Me, toGenericErrorCode: Ne } = ce(), Pe = me("podcastRawTranscript"), Fe = m(() => {
65
+ let te = x(() => import("./PodcastPlayBar-COU17bnm.mjs")), r = x(() => import("./SubscribeButtons-IpzqDGIn.mjs").then((e) => e.n)), ne = x(() => import("./LikeSection-CGu4yOCr.mjs")), re = x(() => import("./DownloadPodcastButton-6HtR84aE.mjs")), ie = x(() => import("./PodcastPlannedSpinner-DcDDays8.mjs")), ae = x(() => import("./CountDown-o6ye6yv1.mjs")), le = x(() => import("./TagList-V9fAFATL.mjs")), o = x(() => import("./ShareAnonymous-DK2rnLl1.mjs")), l = x(() => import("./InlineRubriqueList-ezgexR-O.mjs").then((e) => e.n)), d = e, p = ee, { t: S } = he(), C = A(d), { isLiveReadyToRecord: T, isCounter: de, timeRemaining: D, isPlannedInProcessor: fe, date: M, duration: ge, durationIso: Ae, isPodcastmaker: K, editRight: q } = f(C.podcast, C.podcastConference), J = t(), Y = _e(), { areSeasonsEnabled: je } = se(), { isErrorStatus: Me, toGenericErrorCode: Ne } = ce(), Pe = me("podcastRawTranscript"), Fe = m(() => {
66
66
  let e = d.podcast?.rubriqueIds ?? [];
67
67
  return d.podcast?.emission?.rubriqueIds && (e = [...new Set(e.concat(d.podcast?.emission?.rubriqueIds))]), e;
68
68
  }), X = m(() => {
@@ -86,10 +86,10 @@ var P = {
86
86
  type: "warning",
87
87
  message: S("Podcast is not visible for listeners")
88
88
  };
89
- }), Ie = m(() => d.podcast?.conferenceId !== void 0 && d.podcast?.conferenceId !== 0 && d.podcast?.processingStatus === "READY"), Le = m(() => d.podcastConference !== void 0 && d.podcastConference.status === "DEBRIEFING"), Re = m(() => !K.value && q.value && J.isRoleLive), ze = m(() => d.podcast?.availability !== void 0 && !1 === d.podcast?.valid), Be = m(() => $(d.podcast?.annotations?.photoCredit)), Ve = m(() => $(d.podcast?.annotations?.audioCredit)), He = m(() => $(d.podcast?.annotations?.authorCredit)), Ue = m(() => !(t.generalParameters.podcastmaker ?? !1)), Z = m(() => {
89
+ }), Ie = m(() => d.podcast?.conferenceId !== void 0 && d.podcast?.conferenceId !== 0 && d.podcast?.processingStatus === "READY"), Le = m(() => d.podcastConference !== void 0 && d.podcastConference.status === "DEBRIEFING"), Re = m(() => !K.value && q.value && J.isRoleLive), ze = m(() => d.podcast?.availability !== void 0 && !1 === d.podcast?.valid), Be = m(() => $(d.podcast?.annotations?.photoCredit)), Ve = m(() => $(d.podcast?.annotations?.audioCredit)), He = m(() => $(d.podcast?.annotations?.authorCredit)), Ue = m(() => !(n.generalParameters.podcastmaker ?? !1)), Z = m(() => {
90
90
  let e = [];
91
91
  return d.podcast.tags && e.push(...d.podcast.tags), d.podcast.emission.tags && e.push(...d.podcast.emission.tags), e;
92
- }), We = m(() => je(d.podcast.emission) && d.podcast.seasonNumber !== void 0), Ge = m(() => d.podcast.emission.seasonMode === oe.SEASON_WITH_PODCAST_NUMBERING && d.podcast.seasonEpisodeNumber !== void 0), Q = m(() => d.podcast.annotations?.subtitle && t.podcastPage?.hideSubtitle !== !0), Ke = m(() => t.podcastPage?.descriptionOrSummary !== "summary"), qe = m(() => d.podcast.summary && t.podcastPage?.descriptionOrSummary !== "description" && t.podcastPage?.descriptionOrSummary !== void 0);
92
+ }), We = m(() => je(d.podcast.emission) && d.podcast.seasonNumber !== void 0), Ge = m(() => d.podcast.emission.seasonMode === oe.SEASON_WITH_PODCAST_NUMBERING && d.podcast.seasonEpisodeNumber !== void 0), Q = m(() => d.podcast.annotations?.subtitle && n.podcastPage?.hideSubtitle !== !0), Ke = m(() => n.podcastPage?.descriptionOrSummary !== "summary"), qe = m(() => d.podcast.summary && n.podcastPage?.descriptionOrSummary !== "description" && n.podcastPage?.descriptionOrSummary !== void 0);
93
93
  function $(e) {
94
94
  return e === void 0 ? "" : e.split(",").map((e) => e.trim()).join(", ");
95
95
  }
@@ -102,17 +102,17 @@ var P = {
102
102
  function Xe() {
103
103
  Pe.value.reset();
104
104
  }
105
- let Ze = m(() => t.podcastPage.hideTags !== !0 && Z.value !== void 0 && Z.value.length !== 0);
106
- return (n, ee) => {
105
+ let Ze = m(() => n.podcastPage.hideTags !== !0 && Z.value !== void 0 && Z.value.length !== 0);
106
+ return (t, ee) => {
107
107
  let i = pe("router-link");
108
108
  return e.podcast ? (E(), _("section", P, [
109
- e.podcastConference && j(T) && Re.value ? O(n.$slots, "recording-item-button", {
109
+ e.podcastConference && j(T) && Re.value ? O(t.$slots, "recording-item-button", {
110
110
  podcast: e.podcast,
111
111
  live: !0,
112
112
  recording: e.podcastConference,
113
113
  onDeleteItem: Ye,
114
114
  onValidatePodcast: (e) => p("updatePodcast", e)
115
- }, void 0, void 0, 0) : j(q) && Ue.value ? O(n.$slots, "edit-box", {
115
+ }, void 0, void 0, 0) : j(q) && Ue.value ? O(t.$slots, "edit-box", {
116
116
  podcast: e.podcast,
117
117
  displayStudioAccess: Le.value,
118
118
  onUpdateTranscription: Xe,
@@ -205,7 +205,7 @@ var P = {
205
205
  target: "_blank",
206
206
  title: j(S)("New window", { text: j(S)("See associated article") })
207
207
  }, [b(ve, { class: "me-1" }), v("div", null, k(j(S)("See associated article")), 1)], 8, Ee)) : g("", !0),
208
- j(t).emissionsPage.progressBar ? (E(), h(j(te), {
208
+ j(n).emissionsPage.progressBar ? (E(), h(j(te), {
209
209
  key: 7,
210
210
  podcast: e.podcast
211
211
  }, null, 8, ["podcast"])) : g("", !0),
@@ -214,13 +214,13 @@ var P = {
214
214
  type: X.value.type,
215
215
  style: { width: "fit-content" }
216
216
  }, {
217
- default: N(() => [v("div", Oe, [y(k(X.value.message) + " ", 1), O(n.$slots, "alert-message", { alert: X.value })])]),
217
+ default: N(() => [v("div", Oe, [y(k(X.value.message) + " ", 1), O(t.$slots, "alert-message", { alert: X.value })])]),
218
218
  _: 3
219
219
  }, 8, ["type"])) : g("", !0)])) : g("", !0),
220
220
  v("div", ke, [b(j(ne), {
221
221
  "edit-right": j(q),
222
222
  podcast: e.podcast
223
- }, null, 8, ["edit-right", "podcast"]), j(t).podcastPage.downloadButton ? (E(), h(j(re), {
223
+ }, null, 8, ["edit-right", "podcast"]), j(n).podcastPage.downloadButton ? (E(), h(j(re), {
224
224
  key: 0,
225
225
  podcast: e.podcast
226
226
  }, null, 8, ["podcast"])) : g("", !0)])
@@ -231,7 +231,7 @@ var P = {
231
231
  "tag-list": Z.value,
232
232
  "orga-id": e.podcast.organisation.id,
233
233
  "podcast-annotations": e.podcast.annotations,
234
- max: j(t).podcastPage.maxTags
234
+ max: j(n).podcastPage.maxTags
235
235
  }, null, 8, [
236
236
  "tag-list",
237
237
  "orga-id",
@@ -266,7 +266,7 @@ var P = {
266
266
  podcastId: {}
267
267
  },
268
268
  setup(i) {
269
- let oe = x(() => import("./ShareSocialsButtons-BJ3DqvIO.mjs")), se = x(() => import("./SharePlayer-CRri0YED.mjs").then((e) => e.n)), ce = x(() => import("./CommentSection-Brn0VQcc.mjs")), ue = x(() => import("./PodcastmakerHeader-MhdOrssb.mjs")), a = i, s = D(!1), c = D(!1), u = D(void 0), f = D(void 0), y = D(void 0), S = D(void 0), pe = ge(), { t: k } = he(), { isPodcastmaker: A, isEditRights: me, authOrgaId: _e } = ae(), { updatePathParams: ve } = ie(), { handle403: P } = re(), F = n(), I = ne(), L = te(), R = le(), ye = m(() => u.value?.emission?.annotations?.HIDE_SUGGESTIONS === "true"), z = m(() => u.value ? u.value.emission.annotations?.mainIabId ? parseInt(u.value.emission.annotations.mainIabId, 10) : u.value.emission.iabIds?.length ? u.value.emission.iabIds[0] : 0 : 0), be = m(() => u.value === void 0 ? [] : I.storedCategories.filter((e) => u.value?.emission.iabIds && u.value.emission.iabIds.indexOf(e.id) !== -1).sort((e, t) => e.id === z.value ? -1 : +(t.id === z.value))), B = m(() => me(u.value?.organisation.id)), xe = m(() => u.value?.conferenceId !== void 0 && u.value?.conferenceId !== 0 && u.value?.processingStatus === "READY_TO_RECORD"), Se = m(() => !A.value && B.value && F.isRoleLive), Ce = m(() => t.podcastPage?.displayEmissionTitleInHeader === !0), we = m(() => xe.value ? k("Live episode") : k("Episode"));
269
+ let oe = x(() => import("./ShareSocialsButtons-PqMXhFEk.mjs")), se = x(() => import("./SharePlayer-C0aveOwy.mjs").then((e) => e.n)), ce = x(() => import("./CommentSection-DZf04NxT.mjs")), ue = x(() => import("./PodcastmakerHeader-CIoJwm1L.mjs")), a = i, s = D(!1), c = D(!1), u = D(void 0), f = D(void 0), y = D(void 0), S = D(void 0), pe = ge(), { t: k } = he(), { isPodcastmaker: A, isEditRights: me, authOrgaId: _e } = ae(), { updatePathParams: ve } = ie(), { handle403: P } = re(), F = t(), I = ne(), L = te(), R = le(), ye = m(() => u.value?.emission?.annotations?.HIDE_SUGGESTIONS === "true"), z = m(() => u.value ? u.value.emission.annotations?.mainIabId ? parseInt(u.value.emission.annotations.mainIabId, 10) : u.value.emission.iabIds?.length ? u.value.emission.iabIds[0] : 0 : 0), be = m(() => u.value === void 0 ? [] : I.storedCategories.filter((e) => u.value?.emission.iabIds && u.value.emission.iabIds.indexOf(e.id) !== -1).sort((e, t) => e.id === z.value ? -1 : +(t.id === z.value))), B = m(() => me(u.value?.organisation.id)), xe = m(() => u.value?.conferenceId !== void 0 && u.value?.conferenceId !== 0 && u.value?.processingStatus === "READY_TO_RECORD"), Se = m(() => !A.value && B.value && F.isRoleLive), Ce = m(() => n.podcastPage?.displayEmissionTitleInHeader === !0), we = m(() => xe.value ? k("Live episode") : k("Episode"));
270
270
  M(() => a.updateStatus, () => {
271
271
  f.value && f.value !== null && (f.value.status = a.updateStatus);
272
272
  }), M(() => a.podcastId, async () => {
@@ -343,7 +343,7 @@ var P = {
343
343
  U(await ee.get(a.podcastId)), G();
344
344
  }, 2e3);
345
345
  }
346
- return (n, ee) => (E(), _("section", K, [s.value && !c.value && u.value ? (E(), _(p, { key: 0 }, [j(A) ? (E(), h(j(ue), {
346
+ return (t, ee) => (E(), _("section", K, [s.value && !c.value && u.value ? (E(), _(p, { key: 0 }, [j(A) ? (E(), h(j(ue), {
347
347
  key: 0,
348
348
  "page-title": Ce.value ? u.value.emission.name : we.value,
349
349
  "img-url": u.value.imageUrl
@@ -354,16 +354,16 @@ var P = {
354
354
  "podcast-conference": f.value,
355
355
  onUpdatePodcast: U
356
356
  }, {
357
- "recording-item-button": N((e) => [O(n.$slots, "recording-item-button", T(C(e)))]),
358
- "edit-box": N((e) => [O(n.$slots, "edit-box", T(C(e)))]),
359
- "alert-message": N((e) => [O(n.$slots, "alert-message", T(C(e)))]),
357
+ "recording-item-button": N((e) => [O(t.$slots, "recording-item-button", T(C(e)))]),
358
+ "edit-box": N((e) => [O(t.$slots, "edit-box", T(C(e)))]),
359
+ "alert-message": N((e) => [O(t.$slots, "alert-message", T(C(e)))]),
360
360
  _: 3
361
361
  }, 8, [
362
362
  "playing-podcast",
363
363
  "podcast",
364
364
  "podcast-conference"
365
365
  ]),
366
- j(t).podcastPage.ShareButtons ? (E(), h(j(oe), {
366
+ j(n).podcastPage.ShareButtons ? (E(), h(j(oe), {
367
367
  key: 0,
368
368
  "organisation-id": u.value.organisation.id
369
369
  }, null, 8, ["organisation-id"])) : g("", !0),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PodcastPlayBar-Bo-W_dSK.mjs","names":["DurationHelper","_openBlock","_createElementBlock","_createBlock","_createCommentVNode","_createElementVNode","_toDisplayString","_createVNode","_sfc_main"],"sources":["../src/components/display/podcasts/PodcastPlayBar.vue","../src/components/display/podcasts/PodcastPlayBar.vue"],"sourcesContent":["<template>\n <div class=\"d-flex align-items-center\">\n <PodcastPlayBasicButton v-if=\"displayButonPlay\" :podcast=\"podcast\"/>\n <div class=\"d-flex align-items-center podcast-play-bar flex-grow-1\">\n <div class=\"me-2\">\n {{ playedTime }}\n </div>\n <div class=\"position-relative flex-grow-1\">\n <ProgressBar\n :main-progress=\"percentProgress\"\n class=\"medium\"\n @mouseup=\"seekTo\"\n />\n </div>\n <div class=\"ms-2\">\n {{ totalTime }}\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ProgressBar from \"../../misc/ProgressBar.vue\";\nimport DurationHelper from \"../../../helper/durationHelper\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nconst PodcastPlayBasicButton = defineAsyncComponent(() => import(\"./PodcastPlayBasicButton.vue\"));\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n displayButonPlay:{ default: false, type: Boolean },\n})\n\n//Composables\nconst playerStore = usePlayerStore();\n\n//Computed\nconst percentProgress = computed(() => {\n if (props.podcast?.podcastId !== playerStore.playerPodcast?.podcastId) {\n return 0;\n }\n return !playerStore.playerElapsed ? 0 : playerStore.playerElapsed * 100;\n});\nconst playedTime = computed(() => {\n if (props.podcast?.podcastId === playerStore.playerPodcast?.podcastId) {\n if (\n playerStore.playerElapsed &&\n playerStore.playerElapsed > 0 &&\n playerStore.playerTotal &&\n playerStore.playerTotal > 0\n ) {\n return DurationHelper.formatDuration(\n Math.round(playerStore.playerElapsed * playerStore.playerTotal),\n );\n }\n }\n return \"00:00\";\n});\nconst totalTime = computed(() => DurationHelper.formatDuration(Math.round(props.podcast.duration / 1000)));\n\n//Methods\nfunction seekTo(event: MouseEvent): void {\n if (\n !playerStore.playerPodcast ||\n props.podcast?.podcastId !== playerStore.playerPodcast.podcastId\n ) {\n return;\n }\n const rect = (event.currentTarget as Element).getBoundingClientRect();\n const barWidth = (event.currentTarget as Element).clientWidth;\n const x = event.clientX - rect.left;\n const percentPosition = x / barWidth;\n playerStore.playerUpdateSeekTime(playerStore.playerTotal * percentPosition);\n}\n</script>","<template>\n <div class=\"d-flex align-items-center\">\n <PodcastPlayBasicButton v-if=\"displayButonPlay\" :podcast=\"podcast\"/>\n <div class=\"d-flex align-items-center podcast-play-bar flex-grow-1\">\n <div class=\"me-2\">\n {{ playedTime }}\n </div>\n <div class=\"position-relative flex-grow-1\">\n <ProgressBar\n :main-progress=\"percentProgress\"\n class=\"medium\"\n @mouseup=\"seekTo\"\n />\n </div>\n <div class=\"ms-2\">\n {{ totalTime }}\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ProgressBar from \"../../misc/ProgressBar.vue\";\nimport DurationHelper from \"../../../helper/durationHelper\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nconst PodcastPlayBasicButton = defineAsyncComponent(() => import(\"./PodcastPlayBasicButton.vue\"));\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n displayButonPlay:{ default: false, type: Boolean },\n})\n\n//Composables\nconst playerStore = usePlayerStore();\n\n//Computed\nconst percentProgress = computed(() => {\n if (props.podcast?.podcastId !== playerStore.playerPodcast?.podcastId) {\n return 0;\n }\n return !playerStore.playerElapsed ? 0 : playerStore.playerElapsed * 100;\n});\nconst playedTime = computed(() => {\n if (props.podcast?.podcastId === playerStore.playerPodcast?.podcastId) {\n if (\n playerStore.playerElapsed &&\n playerStore.playerElapsed > 0 &&\n playerStore.playerTotal &&\n playerStore.playerTotal > 0\n ) {\n return DurationHelper.formatDuration(\n Math.round(playerStore.playerElapsed * playerStore.playerTotal),\n );\n }\n }\n return \"00:00\";\n});\nconst totalTime = computed(() => DurationHelper.formatDuration(Math.round(props.podcast.duration / 1000)));\n\n//Methods\nfunction seekTo(event: MouseEvent): void {\n if (\n !playerStore.playerPodcast ||\n props.podcast?.podcastId !== playerStore.playerPodcast.podcastId\n ) {\n return;\n }\n const rect = (event.currentTarget as Element).getBoundingClientRect();\n const barWidth = (event.currentTarget as Element).clientWidth;\n const x = event.clientX - rect.left;\n const percentPosition = x / barWidth;\n playerStore.playerUpdateSeekTime(playerStore.playerTotal * percentPosition);\n}\n</script>"],"mappings":";;;;;;;;;;;;;;;;;;;EA2BA,MAAM,yBAAyB,2BAA2B,OAAO,wCAA+B;EAIhG,MAAM,QAAQ;EAMd,MAAM,cAAc,eAAe;EAGnC,MAAM,kBAAkB,eAAe;GACrC,IAAI,MAAM,SAAS,cAAc,YAAY,eAAe,WAC1D,OAAO;GAET,OAAO,CAAC,YAAY,gBAAgB,IAAI,YAAY,gBAAgB;EACtE,CAAC;EACD,MAAM,aAAa,eAAe;GAChC,IAAI,MAAM,SAAS,cAAc,YAAY,eAAe,WAExD;QAAA,YAAY,iBACZ,YAAY,gBAAgB,KAC5B,YAAY,eACZ,YAAY,cAAc,GAE1B,OAAOA,uBAAe,eACpB,KAAK,MAAM,YAAY,gBAAgB,YAAY,WAAW,CAChE;GAAA;GAGJ,OAAO;EACT,CAAC;EACD,MAAM,YAAY,eAAeA,uBAAe,eAAe,KAAK,MAAM,MAAM,QAAQ,WAAW,GAAI,CAAC,CAAC;EAGzG,SAAS,OAAO,OAAyB;GACvC,IACE,CAAC,YAAY,iBACb,MAAM,SAAS,cAAc,YAAY,cAAc,WAEvD;GAEF,MAAM,OAAQ,MAAM,cAA0B,sBAAsB;GACpE,MAAM,WAAY,MAAM,cAA0B;GAElD,MAAM,mBADI,MAAM,UAAU,KAAK,QACH;GAC5B,YAAY,qBAAqB,YAAY,cAAc,eAAe;EAC5E;;;;;;;;;;;;;;;;;;;;AC3EO,IAAA,aAAA,EAAA,OAAM,4BAA2B;AAE/B,IAAA,aAAA,EAAA,OAAM,yDAAwD;AAC5D,IAAA,aAAA,EAAA,OAAM,OAAM;AAGZ,IAAA,aAAA,EAAA,OAAM,gCAA+B;AAOrC,IAAA,aAAA,EAAA,OAAM,OAAM;;CAbrB,OAAAC,UAAA,GAAAC,mBAiBM,OAjBN,YAiBM,CAhB0B,OAAA,oBAA9BD,UAAA,GAAAE,YAAoE,OAAA,2BAAA;;EAAnB,SAAS,OAAA;CAC1D,GAAA,MAAA,GAAA,CAAA,SAAA,CAAA,KAAAC,mBAAA,QAAA,IAAA,GAAAC,mBAcM,OAdN,YAcM;EAbJA,mBAEM,OAFN,YAEMC,gBADD,OAAA,UAAU,GAAA,CAAA;EAEfD,mBAMM,OANN,YAMM,CALJE,YAIE,OAAA,gBAAA;GAHC,iBAAe,OAAA;GAChB,OAAM;GACL,WAAS,OAAA;;EAGdF,mBAEM,OAFN,YAEMC,gBADD,OAAA,SAAS,GAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PodcastPlayBar-CBtMWlVc.mjs","names":["DurationHelper","_openBlock","_createElementBlock","_createBlock","_createCommentVNode","_createElementVNode","_toDisplayString","_createVNode","_sfc_main"],"sources":["../src/components/display/podcasts/PodcastPlayBar.vue","../src/components/display/podcasts/PodcastPlayBar.vue"],"sourcesContent":["<template>\n <div class=\"d-flex align-items-center\">\n <PodcastPlayBasicButton v-if=\"displayButonPlay\" :podcast=\"podcast\"/>\n <div class=\"d-flex align-items-center podcast-play-bar flex-grow-1\">\n <div class=\"me-2\">\n {{ playedTime }}\n </div>\n <div class=\"position-relative flex-grow-1\">\n <ProgressBar\n :main-progress=\"percentProgress\"\n class=\"medium\"\n @mouseup=\"seekTo\"\n />\n </div>\n <div class=\"ms-2\">\n {{ totalTime }}\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ProgressBar from \"../../misc/ProgressBar.vue\";\nimport DurationHelper from \"../../../helper/durationHelper\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nconst PodcastPlayBasicButton = defineAsyncComponent(() => import(\"./PodcastPlayBasicButton.vue\"));\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n displayButonPlay:{ default: false, type: Boolean },\n})\n\n//Composables\nconst playerStore = usePlayerStore();\n\n//Computed\nconst percentProgress = computed(() => {\n if (props.podcast?.podcastId !== playerStore.playerPodcast?.podcastId) {\n return 0;\n }\n return !playerStore.playerElapsed ? 0 : playerStore.playerElapsed * 100;\n});\nconst playedTime = computed(() => {\n if (props.podcast?.podcastId === playerStore.playerPodcast?.podcastId) {\n if (\n playerStore.playerElapsed &&\n playerStore.playerElapsed > 0 &&\n playerStore.playerTotal &&\n playerStore.playerTotal > 0\n ) {\n return DurationHelper.formatDuration(\n Math.round(playerStore.playerElapsed * playerStore.playerTotal),\n );\n }\n }\n return \"00:00\";\n});\nconst totalTime = computed(() => DurationHelper.formatDuration(Math.round(props.podcast.duration / 1000)));\n\n//Methods\nfunction seekTo(event: MouseEvent): void {\n if (\n !playerStore.playerPodcast ||\n props.podcast?.podcastId !== playerStore.playerPodcast.podcastId\n ) {\n return;\n }\n const rect = (event.currentTarget as Element).getBoundingClientRect();\n const barWidth = (event.currentTarget as Element).clientWidth;\n const x = event.clientX - rect.left;\n const percentPosition = x / barWidth;\n playerStore.playerUpdateSeekTime(playerStore.playerTotal * percentPosition);\n}\n</script>","<template>\n <div class=\"d-flex align-items-center\">\n <PodcastPlayBasicButton v-if=\"displayButonPlay\" :podcast=\"podcast\"/>\n <div class=\"d-flex align-items-center podcast-play-bar flex-grow-1\">\n <div class=\"me-2\">\n {{ playedTime }}\n </div>\n <div class=\"position-relative flex-grow-1\">\n <ProgressBar\n :main-progress=\"percentProgress\"\n class=\"medium\"\n @mouseup=\"seekTo\"\n />\n </div>\n <div class=\"ms-2\">\n {{ totalTime }}\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ProgressBar from \"../../misc/ProgressBar.vue\";\nimport DurationHelper from \"../../../helper/durationHelper\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nconst PodcastPlayBasicButton = defineAsyncComponent(() => import(\"./PodcastPlayBasicButton.vue\"));\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n displayButonPlay:{ default: false, type: Boolean },\n})\n\n//Composables\nconst playerStore = usePlayerStore();\n\n//Computed\nconst percentProgress = computed(() => {\n if (props.podcast?.podcastId !== playerStore.playerPodcast?.podcastId) {\n return 0;\n }\n return !playerStore.playerElapsed ? 0 : playerStore.playerElapsed * 100;\n});\nconst playedTime = computed(() => {\n if (props.podcast?.podcastId === playerStore.playerPodcast?.podcastId) {\n if (\n playerStore.playerElapsed &&\n playerStore.playerElapsed > 0 &&\n playerStore.playerTotal &&\n playerStore.playerTotal > 0\n ) {\n return DurationHelper.formatDuration(\n Math.round(playerStore.playerElapsed * playerStore.playerTotal),\n );\n }\n }\n return \"00:00\";\n});\nconst totalTime = computed(() => DurationHelper.formatDuration(Math.round(props.podcast.duration / 1000)));\n\n//Methods\nfunction seekTo(event: MouseEvent): void {\n if (\n !playerStore.playerPodcast ||\n props.podcast?.podcastId !== playerStore.playerPodcast.podcastId\n ) {\n return;\n }\n const rect = (event.currentTarget as Element).getBoundingClientRect();\n const barWidth = (event.currentTarget as Element).clientWidth;\n const x = event.clientX - rect.left;\n const percentPosition = x / barWidth;\n playerStore.playerUpdateSeekTime(playerStore.playerTotal * percentPosition);\n}\n</script>"],"mappings":";;;;;;;;;;;;;;;;;;;EA2BA,MAAM,yBAAyB,2BAA2B,OAAO,wCAA+B;EAIhG,MAAM,QAAQ;EAMd,MAAM,cAAc,eAAe;EAGnC,MAAM,kBAAkB,eAAe;GACrC,IAAI,MAAM,SAAS,cAAc,YAAY,eAAe,WAC1D,OAAO;GAET,OAAO,CAAC,YAAY,gBAAgB,IAAI,YAAY,gBAAgB;EACtE,CAAC;EACD,MAAM,aAAa,eAAe;GAChC,IAAI,MAAM,SAAS,cAAc,YAAY,eAAe,WAExD;QAAA,YAAY,iBACZ,YAAY,gBAAgB,KAC5B,YAAY,eACZ,YAAY,cAAc,GAE1B,OAAOA,uBAAe,eACpB,KAAK,MAAM,YAAY,gBAAgB,YAAY,WAAW,CAChE;GAAA;GAGJ,OAAO;EACT,CAAC;EACD,MAAM,YAAY,eAAeA,uBAAe,eAAe,KAAK,MAAM,MAAM,QAAQ,WAAW,GAAI,CAAC,CAAC;EAGzG,SAAS,OAAO,OAAyB;GACvC,IACE,CAAC,YAAY,iBACb,MAAM,SAAS,cAAc,YAAY,cAAc,WAEvD;GAEF,MAAM,OAAQ,MAAM,cAA0B,sBAAsB;GACpE,MAAM,WAAY,MAAM,cAA0B;GAElD,MAAM,mBADI,MAAM,UAAU,KAAK,QACH;GAC5B,YAAY,qBAAqB,YAAY,cAAc,eAAe;EAC5E;;;;;;;;;;;;;;;;;;;;AC3EO,IAAA,aAAA,EAAA,OAAM,4BAA2B;AAE/B,IAAA,aAAA,EAAA,OAAM,yDAAwD;AAC5D,IAAA,aAAA,EAAA,OAAM,OAAM;AAGZ,IAAA,aAAA,EAAA,OAAM,gCAA+B;AAOrC,IAAA,aAAA,EAAA,OAAM,OAAM;;CAbrB,OAAAC,UAAA,GAAAC,mBAiBM,OAjBN,YAiBM,CAhB0B,OAAA,oBAA9BD,UAAA,GAAAE,YAAoE,OAAA,2BAAA;;EAAnB,SAAS,OAAA;CAC1D,GAAA,MAAA,GAAA,CAAA,SAAA,CAAA,KAAAC,mBAAA,QAAA,IAAA,GAAAC,mBAcM,OAdN,YAcM;EAbJA,mBAEM,OAFN,YAEMC,gBADD,OAAA,UAAU,GAAA,CAAA;EAEfD,mBAMM,OANN,YAMM,CALJE,YAIE,OAAA,gBAAA;GAHC,iBAAe,OAAA;GAChB,OAAM;GACL,WAAS,OAAA;;EAGdF,mBAEM,OAFN,YAEMC,gBADD,OAAA,SAAS,GAAA,CAAA"}
@@ -1,5 +1,5 @@
1
- import { n as e, r as t } from "./PlayerStore-CKprkxa0.mjs";
2
- import { t as n } from "./ProgressBar-CTOa-MDz.mjs";
1
+ import { n as e, r as t } from "./PlayerStore-DggKki80.mjs";
2
+ import { t as n } from "./ProgressBar-CXB5q3-H.mjs";
3
3
  import { computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineAsyncComponent as l, defineComponent as u, openBlock as d, toDisplayString as f, unref as p } from "vue";
4
4
  //#region src/components/display/podcasts/PodcastPlayBar.vue?vue&type=script&setup=true&lang.ts
5
5
  var m = { class: "d-flex align-items-center" }, h = { class: "d-flex align-items-center podcast-play-bar flex-grow-1" }, g = { class: "me-2" }, _ = { class: "position-relative flex-grow-1" }, v = { class: "ms-2" }, y = /* @__PURE__ */ u({
@@ -15,7 +15,7 @@ var m = { class: "d-flex align-items-center" }, h = { class: "d-flex align-items
15
15
  }
16
16
  },
17
17
  setup(u) {
18
- let y = l(() => import("./PodcastPlayBasicButton-7w91y2ow.mjs")), b = u, x = e(), S = r(() => b.podcast?.podcastId === x.playerPodcast?.podcastId && x.playerElapsed ? x.playerElapsed * 100 : 0), C = r(() => b.podcast?.podcastId === x.playerPodcast?.podcastId && x.playerElapsed && x.playerElapsed > 0 && x.playerTotal && x.playerTotal > 0 ? t.formatDuration(Math.round(x.playerElapsed * x.playerTotal)) : "00:00"), w = r(() => t.formatDuration(Math.round(b.podcast.duration / 1e3)));
18
+ let y = l(() => import("./PodcastPlayBasicButton-CVXhEUHB.mjs")), b = u, x = e(), S = r(() => b.podcast?.podcastId === x.playerPodcast?.podcastId && x.playerElapsed ? x.playerElapsed * 100 : 0), C = r(() => b.podcast?.podcastId === x.playerPodcast?.podcastId && x.playerElapsed && x.playerElapsed > 0 && x.playerTotal && x.playerTotal > 0 ? t.formatDuration(Math.round(x.playerElapsed * x.playerTotal)) : "00:00"), w = r(() => t.formatDuration(Math.round(b.podcast.duration / 1e3)));
19
19
  function T(e) {
20
20
  if (!x.playerPodcast || b.podcast?.podcastId !== x.playerPodcast.podcastId) return;
21
21
  let t = e.currentTarget.getBoundingClientRect(), n = e.currentTarget.clientWidth, r = (e.clientX - t.left) / n;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PodcastPlayBar-Cpr3Ff7J.mjs","names":["DurationHelper","_openBlock","_createElementBlock","_createBlock","_createCommentVNode","_createElementVNode","_toDisplayString","_createVNode","_sfc_main"],"sources":["../src/components/display/podcasts/PodcastPlayBar.vue","../src/components/display/podcasts/PodcastPlayBar.vue"],"sourcesContent":["<template>\n <div class=\"d-flex align-items-center\">\n <PodcastPlayBasicButton v-if=\"displayButonPlay\" :podcast=\"podcast\"/>\n <div class=\"d-flex align-items-center podcast-play-bar flex-grow-1\">\n <div class=\"me-2\">\n {{ playedTime }}\n </div>\n <div class=\"position-relative flex-grow-1\">\n <ProgressBar\n :main-progress=\"percentProgress\"\n class=\"medium\"\n @mouseup=\"seekTo\"\n />\n </div>\n <div class=\"ms-2\">\n {{ totalTime }}\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ProgressBar from \"../../misc/ProgressBar.vue\";\nimport DurationHelper from \"../../../helper/durationHelper\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nconst PodcastPlayBasicButton = defineAsyncComponent(() => import(\"./PodcastPlayBasicButton.vue\"));\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n displayButonPlay:{ default: false, type: Boolean },\n})\n\n//Composables\nconst playerStore = usePlayerStore();\n\n//Computed\nconst percentProgress = computed(() => {\n if (props.podcast?.podcastId !== playerStore.playerPodcast?.podcastId) {\n return 0;\n }\n return !playerStore.playerElapsed ? 0 : playerStore.playerElapsed * 100;\n});\nconst playedTime = computed(() => {\n if (props.podcast?.podcastId === playerStore.playerPodcast?.podcastId) {\n if (\n playerStore.playerElapsed &&\n playerStore.playerElapsed > 0 &&\n playerStore.playerTotal &&\n playerStore.playerTotal > 0\n ) {\n return DurationHelper.formatDuration(\n Math.round(playerStore.playerElapsed * playerStore.playerTotal),\n );\n }\n }\n return \"00:00\";\n});\nconst totalTime = computed(() => DurationHelper.formatDuration(Math.round(props.podcast.duration / 1000)));\n\n//Methods\nfunction seekTo(event: MouseEvent): void {\n if (\n !playerStore.playerPodcast ||\n props.podcast?.podcastId !== playerStore.playerPodcast.podcastId\n ) {\n return;\n }\n const rect = (event.currentTarget as Element).getBoundingClientRect();\n const barWidth = (event.currentTarget as Element).clientWidth;\n const x = event.clientX - rect.left;\n const percentPosition = x / barWidth;\n playerStore.playerUpdateSeekTime(playerStore.playerTotal * percentPosition);\n}\n</script>","<template>\n <div class=\"d-flex align-items-center\">\n <PodcastPlayBasicButton v-if=\"displayButonPlay\" :podcast=\"podcast\"/>\n <div class=\"d-flex align-items-center podcast-play-bar flex-grow-1\">\n <div class=\"me-2\">\n {{ playedTime }}\n </div>\n <div class=\"position-relative flex-grow-1\">\n <ProgressBar\n :main-progress=\"percentProgress\"\n class=\"medium\"\n @mouseup=\"seekTo\"\n />\n </div>\n <div class=\"ms-2\">\n {{ totalTime }}\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ProgressBar from \"../../misc/ProgressBar.vue\";\nimport DurationHelper from \"../../../helper/durationHelper\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed, defineAsyncComponent } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nconst PodcastPlayBasicButton = defineAsyncComponent(() => import(\"./PodcastPlayBasicButton.vue\"));\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n displayButonPlay:{ default: false, type: Boolean },\n})\n\n//Composables\nconst playerStore = usePlayerStore();\n\n//Computed\nconst percentProgress = computed(() => {\n if (props.podcast?.podcastId !== playerStore.playerPodcast?.podcastId) {\n return 0;\n }\n return !playerStore.playerElapsed ? 0 : playerStore.playerElapsed * 100;\n});\nconst playedTime = computed(() => {\n if (props.podcast?.podcastId === playerStore.playerPodcast?.podcastId) {\n if (\n playerStore.playerElapsed &&\n playerStore.playerElapsed > 0 &&\n playerStore.playerTotal &&\n playerStore.playerTotal > 0\n ) {\n return DurationHelper.formatDuration(\n Math.round(playerStore.playerElapsed * playerStore.playerTotal),\n );\n }\n }\n return \"00:00\";\n});\nconst totalTime = computed(() => DurationHelper.formatDuration(Math.round(props.podcast.duration / 1000)));\n\n//Methods\nfunction seekTo(event: MouseEvent): void {\n if (\n !playerStore.playerPodcast ||\n props.podcast?.podcastId !== playerStore.playerPodcast.podcastId\n ) {\n return;\n }\n const rect = (event.currentTarget as Element).getBoundingClientRect();\n const barWidth = (event.currentTarget as Element).clientWidth;\n const x = event.clientX - rect.left;\n const percentPosition = x / barWidth;\n playerStore.playerUpdateSeekTime(playerStore.playerTotal * percentPosition);\n}\n</script>"],"mappings":";;;;;;;;;;;;;;;;;;;EA2BA,MAAM,yBAAyB,2BAA2B,OAAO,wCAA+B;EAIhG,MAAM,QAAQ;EAMd,MAAM,cAAc,eAAe;EAGnC,MAAM,kBAAkB,eAAe;GACrC,IAAI,MAAM,SAAS,cAAc,YAAY,eAAe,WAC1D,OAAO;GAET,OAAO,CAAC,YAAY,gBAAgB,IAAI,YAAY,gBAAgB;EACtE,CAAC;EACD,MAAM,aAAa,eAAe;GAChC,IAAI,MAAM,SAAS,cAAc,YAAY,eAAe,WAExD;QAAA,YAAY,iBACZ,YAAY,gBAAgB,KAC5B,YAAY,eACZ,YAAY,cAAc,GAE1B,OAAOA,uBAAe,eACpB,KAAK,MAAM,YAAY,gBAAgB,YAAY,WAAW,CAChE;GAAA;GAGJ,OAAO;EACT,CAAC;EACD,MAAM,YAAY,eAAeA,uBAAe,eAAe,KAAK,MAAM,MAAM,QAAQ,WAAW,GAAI,CAAC,CAAC;EAGzG,SAAS,OAAO,OAAyB;GACvC,IACE,CAAC,YAAY,iBACb,MAAM,SAAS,cAAc,YAAY,cAAc,WAEvD;GAEF,MAAM,OAAQ,MAAM,cAA0B,sBAAsB;GACpE,MAAM,WAAY,MAAM,cAA0B;GAElD,MAAM,mBADI,MAAM,UAAU,KAAK,QACH;GAC5B,YAAY,qBAAqB,YAAY,cAAc,eAAe;EAC5E;;;;;;;;;;;;;;;;;;;;AC3EO,IAAA,aAAA,EAAA,OAAM,4BAA2B;AAE/B,IAAA,aAAA,EAAA,OAAM,yDAAwD;AAC5D,IAAA,aAAA,EAAA,OAAM,OAAM;AAGZ,IAAA,aAAA,EAAA,OAAM,gCAA+B;AAOrC,IAAA,aAAA,EAAA,OAAM,OAAM;;CAbrB,OAAAC,UAAA,GAAAC,mBAiBM,OAjBN,YAiBM,CAhB0B,OAAA,oBAA9BD,UAAA,GAAAE,YAAoE,OAAA,2BAAA;;EAAnB,SAAS,OAAA;CAC1D,GAAA,MAAA,GAAA,CAAA,SAAA,CAAA,KAAAC,mBAAA,QAAA,IAAA,GAAAC,mBAcM,OAdN,YAcM;EAbJA,mBAEM,OAFN,YAEMC,gBADD,OAAA,UAAU,GAAA,CAAA;EAEfD,mBAMM,OANN,YAMM,CALJE,YAIE,OAAA,gBAAA;GAHC,iBAAe,OAAA;GAChB,OAAM;GACL,WAAS,OAAA;;EAGdF,mBAEM,OAFN,YAEMC,gBADD,OAAA,SAAS,GAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PodcastPlayBasicButton-BvJPrxpI.mjs","names":["_openBlock","_createElementBlock","_createBlock","_sfc_main"],"sources":["../src/components/display/podcasts/PodcastPlayBasicButton.vue","../src/components/display/podcasts/PodcastPlayBasicButton.vue"],"sourcesContent":["<template>\n <button\n class=\"btn play-button-box bg-primary\"\n @click=\"clickBtn(podcast)\"\n >\n <PlayIcon v-if=\"btnPlay\" class=\"text-light\" :title=\"t('Play')\" />\n <PauseIcon v-else class=\"text-light\" :title=\"t('Pause')\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\nimport PauseIcon from \"vue-material-design-icons/Pause.vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n})\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n//Computed\nconst btnPlay = computed(() => playerStore.playerPodcast !== props.podcast || (playerStore.playerPodcast === props.podcast && 'PAUSED' === playerStore.playerStatus));\n\n\n//Methods\nfunction clickBtn(podcast: Podcast){\n if(btnPlay.value){\n play(podcast);\n return;\n }\n pause();\n}\nfunction play(podcast: Podcast): void {\n if (podcast === playerStore.playerPodcast) {\n playerStore.playerChangeStatus(false);\n } else {\n playerStore.playerPlay(podcast);\n }\n}\nfunction pause(): void {\n playerStore.playerChangeStatus(true);\n}\n</script>\n<style lang=\"scss\">\n@use \"../../../style/playButton\";\n</style>","<template>\n <button\n class=\"btn play-button-box bg-primary\"\n @click=\"clickBtn(podcast)\"\n >\n <PlayIcon v-if=\"btnPlay\" class=\"text-light\" :title=\"t('Play')\" />\n <PauseIcon v-else class=\"text-light\" :title=\"t('Pause')\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\nimport PauseIcon from \"vue-material-design-icons/Pause.vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n})\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n//Computed\nconst btnPlay = computed(() => playerStore.playerPodcast !== props.podcast || (playerStore.playerPodcast === props.podcast && 'PAUSED' === playerStore.playerStatus));\n\n\n//Methods\nfunction clickBtn(podcast: Podcast){\n if(btnPlay.value){\n play(podcast);\n return;\n }\n pause();\n}\nfunction play(podcast: Podcast): void {\n if (podcast === playerStore.playerPodcast) {\n playerStore.playerChangeStatus(false);\n } else {\n playerStore.playerPlay(podcast);\n }\n}\nfunction pause(): void {\n playerStore.playerChangeStatus(true);\n}\n</script>\n<style lang=\"scss\">\n@use \"../../../style/playButton\";\n</style>"],"mappings":";;;;;;;;;;;;;;;EAoBA,MAAM,QAAQ;EAKd,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,cAAc,eAAe;EAGnC,MAAM,UAAU,eAAe,YAAY,kBAAkB,MAAM,WAAY,YAAY,kBAAkB,MAAM,WAAW,aAAa,YAAY,YAAa;EAIpK,SAAS,SAAS,SAAiB;GACjC,IAAG,QAAQ,OAAM;IACf,KAAK,OAAO;IACZ;GACF;GACA,MAAM;EACR;EACA,SAAS,KAAK,SAAwB;GACpC,IAAI,YAAY,YAAY,eAC1B,YAAY,mBAAmB,KAAK;QAEpC,YAAY,WAAW,OAAO;EAElC;EACA,SAAS,QAAc;GACrB,YAAY,mBAAmB,IAAI;EACrC;;;;;;;;;;;;;;;;;;;;;;CChDE,OAAAA,UAAA,GAAAC,mBAMS,UAAA;EALP,OAAM;EACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,SAAS,OAAA,OAAO;CAER,GAAA,CAAA,OAAA,WAAhBD,UAAA,GAAAE,YAAiE,OAAA,aAAA;;EAAxC,OAAM;EAAc,OAAO,OAAA,EAAC,MAAA;CACrD,GAAA,MAAA,GAAA,CAAA,OAAA,CAAA,MAAAF,UAAA,GAAAE,YAA2D,OAAA,cAAA;;EAAzC,OAAM;EAAc,OAAO,OAAA,EAAC,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PodcastPlayBasicButton-CS5TNlmX.mjs","names":["_openBlock","_createElementBlock","_createBlock","_sfc_main"],"sources":["../src/components/display/podcasts/PodcastPlayBasicButton.vue","../src/components/display/podcasts/PodcastPlayBasicButton.vue"],"sourcesContent":["<template>\n <button\n class=\"btn play-button-box bg-primary\"\n @click=\"clickBtn(podcast)\"\n >\n <PlayIcon v-if=\"btnPlay\" class=\"text-light\" :title=\"t('Play')\" />\n <PauseIcon v-else class=\"text-light\" :title=\"t('Pause')\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\nimport PauseIcon from \"vue-material-design-icons/Pause.vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n})\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n//Computed\nconst btnPlay = computed(() => playerStore.playerPodcast !== props.podcast || (playerStore.playerPodcast === props.podcast && 'PAUSED' === playerStore.playerStatus));\n\n\n//Methods\nfunction clickBtn(podcast: Podcast){\n if(btnPlay.value){\n play(podcast);\n return;\n }\n pause();\n}\nfunction play(podcast: Podcast): void {\n if (podcast === playerStore.playerPodcast) {\n playerStore.playerChangeStatus(false);\n } else {\n playerStore.playerPlay(podcast);\n }\n}\nfunction pause(): void {\n playerStore.playerChangeStatus(true);\n}\n</script>\n<style lang=\"scss\">\n@use \"../../../style/playButton\";\n</style>","<template>\n <button\n class=\"btn play-button-box bg-primary\"\n @click=\"clickBtn(podcast)\"\n >\n <PlayIcon v-if=\"btnPlay\" class=\"text-light\" :title=\"t('Play')\" />\n <PauseIcon v-else class=\"text-light\" :title=\"t('Pause')\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\nimport PauseIcon from \"vue-material-design-icons/Pause.vue\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed } from \"vue\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast },\n})\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n//Computed\nconst btnPlay = computed(() => playerStore.playerPodcast !== props.podcast || (playerStore.playerPodcast === props.podcast && 'PAUSED' === playerStore.playerStatus));\n\n\n//Methods\nfunction clickBtn(podcast: Podcast){\n if(btnPlay.value){\n play(podcast);\n return;\n }\n pause();\n}\nfunction play(podcast: Podcast): void {\n if (podcast === playerStore.playerPodcast) {\n playerStore.playerChangeStatus(false);\n } else {\n playerStore.playerPlay(podcast);\n }\n}\nfunction pause(): void {\n playerStore.playerChangeStatus(true);\n}\n</script>\n<style lang=\"scss\">\n@use \"../../../style/playButton\";\n</style>"],"mappings":";;;;;;;;;;;;;;;EAoBA,MAAM,QAAQ;EAKd,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,cAAc,eAAe;EAGnC,MAAM,UAAU,eAAe,YAAY,kBAAkB,MAAM,WAAY,YAAY,kBAAkB,MAAM,WAAW,aAAa,YAAY,YAAa;EAIpK,SAAS,SAAS,SAAiB;GACjC,IAAG,QAAQ,OAAM;IACf,KAAK,OAAO;IACZ;GACF;GACA,MAAM;EACR;EACA,SAAS,KAAK,SAAwB;GACpC,IAAI,YAAY,YAAY,eAC1B,YAAY,mBAAmB,KAAK;QAEpC,YAAY,WAAW,OAAO;EAElC;EACA,SAAS,QAAc;GACrB,YAAY,mBAAmB,IAAI;EACrC;;;;;;;;;;;;;;;;;;;;;;CChDE,OAAAA,UAAA,GAAAC,mBAMS,UAAA;EALP,OAAM;EACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,SAAS,OAAA,OAAO;CAER,GAAA,CAAA,OAAA,WAAhBD,UAAA,GAAAE,YAAiE,OAAA,aAAA;;EAAxC,OAAM;EAAc,OAAO,OAAA,EAAC,MAAA;CACrD,GAAA,MAAA,GAAA,CAAA,OAAA,CAAA,MAAAF,UAAA,GAAAE,YAA2D,OAAA,cAAA;;EAAzC,OAAM;EAAc,OAAO,OAAA,EAAC,OAAA"}
@@ -1,4 +1,4 @@
1
- import { n as e } from "./PlayerStore-CKprkxa0.mjs";
1
+ import { n as e } from "./PlayerStore-DggKki80.mjs";
2
2
  import { computed as t, createBlock as n, createElementBlock as r, defineComponent as i, openBlock as a, unref as o } from "vue";
3
3
  import { useI18n as s } from "vue-i18n";
4
4
  import c from "vue-material-design-icons/Play.vue";
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.mjs";
2
- import { A as t, m as n } from "./classicApi-pmODlqv5.mjs";
2
+ import { j as t, m as n } from "./classicApi-CGipMqf7.mjs";
3
3
  import { t as r } from "./useResizePhone-4hSkK5pa.mjs";
4
- import { n as i, r as a } from "./PlayerStore-CKprkxa0.mjs";
4
+ import { n as i, r as a } from "./PlayerStore-DggKki80.mjs";
5
5
  import { t as o } from "./podcast-BoNHyuLe.mjs";
6
6
  import { t as ee } from "./PlayVideoIcon-BhTQpMyL.mjs";
7
7
  import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, defineAsyncComponent as p, defineComponent as m, normalizeClass as h, openBlock as g, ref as _, resolveDynamicComponent as v, toDisplayString as y, unref as b, withModifiers as x } from "vue";
@@ -49,7 +49,7 @@ var D = {
49
49
  },
50
50
  setup(e) {
51
51
  w.extend(te);
52
- let m = p(() => import("./PodcastIsPlaying-BtmHnQi9.mjs")), N = e, P = _(""), { t: F } = S(), I = i(), L = C(), { isPhone: R } = r(), z = c(() => N.fetchConference?.videoProfile?.includes("video_") && o.ReadyToRecord === N.podcast.processingStatus || "video" in N.podcast && N.podcast.video?.videoId !== void 0 || "videoId" in N.podcast && N.podcast.videoId !== void 0), B = c(() => N.fetchConference !== void 0 && N.fetchConference.toString() !== "null" && I.playerLive?.conferenceId === N.fetchConference.conferenceId), V = c(() => I.playerPodcast?.podcastId === N.podcast.podcastId || B.value), H = c(() => N.fetchConference === void 0 && U.value), U = c(() => N.podcast?.conferenceId !== void 0 && N.podcast.conferenceId !== 0 && o.ReadyToRecord === N.podcast.processingStatus), W = c(() => N.podcast !== void 0 && !1 !== N.podcast.valid && N.podcast.availability.visibility !== void 0 && N.podcast.availability.visibility), G = c(() => R.value ? 36 : P.value === "audio" ? 50 : 40), K = c(() => !H.value && o.Planned !== N.podcast.processingStatus), q = c(() => N.justButtons !== !0 && !(W.value && !H.value && o.Planned !== N.podcast.processingStatus) || o.Processing === N.podcast.processingStatus && N.showProcessing), J = c(() => H.value ? T : o.Ready === N.podcast.processingStatus || N.fetchConference ? N.podcast.valid ? !N.podcast.availability.visibility && N.podcast.availability.date ? T : oe : ie : o.Planned === N.podcast.processingStatus || o.Processing === N.podcast.processingStatus ? ae : o.Cancelled === N.podcast.processingStatus ? E : ne), Y = c(() => H.value ? F("Podcast linked to waiting live") : o.Ready === N.podcast.processingStatus || N.fetchConference ? N.podcast.valid ? !N.podcast.availability.visibility && N.podcast.availability.date ? F("Podcast publish in future") : F("Podcast no visible") : F("Podcast to validate") : o.Planned === N.podcast.processingStatus || o.Processing === N.podcast.processingStatus ? F("Podcast in process") : o.Cancelled === N.podcast.processingStatus ? F("Podcast in cancelled status") : F("Podcast in error")), X = c(() => N.fetchConference !== void 0 && N.fetchConference.conferenceId !== -1 && (N.fetchConference.status === "RECORDING" || N.fetchConference.status === "PENDING")), Z = c(() => a.formatDuration(Math.round(N.podcast.duration / 1e3))), Q = c(() => !N.podcast || N.podcast.duration <= 1 ? "" : w.duration({ milliseconds: N.podcast.duration }).toISOString());
52
+ let m = p(() => import("./PodcastIsPlaying-ugHcefCy.mjs")), N = e, P = _(""), { t: F } = S(), I = i(), L = C(), { isPhone: R } = r(), z = c(() => N.fetchConference?.videoProfile?.includes("video_") && o.ReadyToRecord === N.podcast.processingStatus || "video" in N.podcast && N.podcast.video?.videoId !== void 0 || "videoId" in N.podcast && N.podcast.videoId !== void 0), B = c(() => N.fetchConference !== void 0 && N.fetchConference.toString() !== "null" && I.playerLive?.conferenceId === N.fetchConference.conferenceId), V = c(() => I.playerPodcast?.podcastId === N.podcast.podcastId || B.value), H = c(() => N.fetchConference === void 0 && U.value), U = c(() => N.podcast?.conferenceId !== void 0 && N.podcast.conferenceId !== 0 && o.ReadyToRecord === N.podcast.processingStatus), W = c(() => N.podcast !== void 0 && !1 !== N.podcast.valid && N.podcast.availability.visibility !== void 0 && N.podcast.availability.visibility), G = c(() => R.value ? 36 : P.value === "audio" ? 50 : 40), K = c(() => !H.value && o.Planned !== N.podcast.processingStatus), q = c(() => N.justButtons !== !0 && !(W.value && !H.value && o.Planned !== N.podcast.processingStatus) || o.Processing === N.podcast.processingStatus && N.showProcessing), J = c(() => H.value ? T : o.Ready === N.podcast.processingStatus || N.fetchConference ? N.podcast.valid ? !N.podcast.availability.visibility && N.podcast.availability.date ? T : oe : ie : o.Planned === N.podcast.processingStatus || o.Processing === N.podcast.processingStatus ? ae : o.Cancelled === N.podcast.processingStatus ? E : ne), Y = c(() => H.value ? F("Podcast linked to waiting live") : o.Ready === N.podcast.processingStatus || N.fetchConference ? N.podcast.valid ? !N.podcast.availability.visibility && N.podcast.availability.date ? F("Podcast publish in future") : F("Podcast no visible") : F("Podcast to validate") : o.Planned === N.podcast.processingStatus || o.Processing === N.podcast.processingStatus ? F("Podcast in process") : o.Cancelled === N.podcast.processingStatus ? F("Podcast in cancelled status") : F("Podcast in error")), X = c(() => N.fetchConference !== void 0 && N.fetchConference.conferenceId !== -1 && (N.fetchConference.status === "RECORDING" || N.fetchConference.status === "PENDING")), Z = c(() => a.formatDuration(Math.round(N.podcast.duration / 1e3))), Q = c(() => !N.podcast || N.podcast.duration <= 1 ? "" : w.duration({ milliseconds: N.podcast.duration }).toISOString());
53
53
  async function $(e) {
54
54
  if (H.value) return;
55
55
  if (V.value && e === I.playerVideo) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PodcastPlayButton-BqvE4ZUl.mjs","names":["ProcessingStatus","AlertIcon","DurationHelper","_openBlock","_createElementBlock","_normalizeClass","_toDisplayString","_createCommentVNode","_createElementVNode","_Fragment","_withModifiers","_createBlock","_resolveDynamicComponent","_sfc_main"],"sources":["../src/components/display/podcasts/PodcastPlayButton.vue","../src/components/display/podcasts/PodcastPlayButton.vue"],"sourcesContent":["<!--\n Component displaying the play button on a podcast.\n If the podcast is not available, an overlay is displayed with a message.\n-->\n<template>\n <div\n v-if=\"!hidePlay || recordingLive\"\n :class=\"{ 'img-blur-background': displayBanner, 'allow-play': classicPodcastPlay }\"\n >\n <div\n v-if=\"displayBanner\"\n class=\"live-image-status bg-dark\"\n >\n {{ textVisible }}\n </div>\n\n <div\n class=\"multi-buttons-play\"\n :class=\"justButtons ? 'play-button-relative' : ''\"\n >\n <template v-if=\"!isLiveToBeRecorded\">\n <button \n class=\"d-flex\"\n :title=\"playingPodcast? t('Pause') : t('Play')\"\n @mouseenter=\"hoverType = 'audio'\"\n @mouseleave=\"hoverType = ''\" \n @click.prevent=\"play(false)\"\n >\n <PlayIcon\n v-if=\"!playingPodcast || (playingPodcast && playerStore.playerVideo)\"\n :size=\"playIconSize\"\n />\n <PodcastIsPlaying v-if=\"playingPodcast && !playerStore.playerVideo\" />\n <time\n v-if=\"!isVideoPodcast\"\n class=\"ms-1 me-2\"\n :datetime=\"durationIso\"\n >\n {{ durationString }}\n </time>\n </button>\n <button \n v-if=\"isVideoPodcast\"\n :title=\"t('Video')\" \n :disabled=\"playerStore.playerVideo\"\n @click.prevent=\"play(true)\"\n @mouseenter=\"hoverType = 'video'\"\n @mouseleave=\"hoverType = ''\"\n >\n <PodcastIsPlaying v-if=\"playingPodcast && playerStore.playerVideo\" />\n <PlayVideoIcon\n v-else\n :size=\"'video' === hoverType ? 50 : 40\"\n />\n <time\n class=\"ms-2 me-2\"\n :datetime=\"durationIso\"\n >\n {{ durationString }}\n </time>\n </button>\n\n <div\n v-if=\"displayBanner\"\n class=\"special-icon-play-button\"\n >\n <component\n :is=\"iconName\"\n :size=\"16\"\n />\n </div>\n </template>\n <component\n :is=\"iconName\"\n v-else\n :size=\"50\"\n :title=\"textVisible\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlayVideoIcon from \"../../icons/PlayVideoIcon.vue\";\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\nimport ClockOutlineIcon from \"vue-material-design-icons/ClockOutline.vue\";\nimport CheckIcon from \"vue-material-design-icons/Check.vue\";\nimport TimerSandEmptyIcon from \"vue-material-design-icons/TimerSandEmpty.vue\";\nimport EyeOffOutlineIcon from \"vue-material-design-icons/EyeOffOutline.vue\";\nimport CancelIcon from \"vue-material-design-icons/Cancel.vue\";\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport DurationHelper from \"../../../helper/durationHelper\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Podcast, PodcastProcessingStatus as ProcessingStatus, SimplifiedPodcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed, defineAsyncComponent, ref } from \"vue\";\nimport dayjs from \"dayjs\";\nimport duration from \"dayjs/plugin/duration\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\nimport { podcastApi } from \"../../../api/podcastApi\";\ndayjs.extend(duration);\nconst PodcastIsPlaying = defineAsyncComponent(() => import(\"./PodcastIsPlaying.vue\"));\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast|SimplifiedPodcast },\n hidePlay: { default: false, type: Boolean },\n fetchConference: { default: undefined, type: Object as () => Conference },\n justButtons: { default: false, type: Boolean },\n /** Indicates that the processing status of the episode may be shown */\n showProcessing: { default: false, type: Boolean }\n})\n\n\n//Data \nconst hoverType = ref(\"\");\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\nconst router = useRouter();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst isVideoPodcast = computed(() => {\n return (\n (props.fetchConference?.videoProfile?.includes(\"video_\") &&\n ProcessingStatus.ReadyToRecord === props.podcast.processingStatus) ||\n ('video' in props.podcast && undefined !== props.podcast.video?.videoId) ||\n ('videoId' in props.podcast && undefined !== props.podcast.videoId)\n );\n});\nconst playingLive = computed(() => {\n return (\n undefined !== props.fetchConference &&\n \"null\" !== props.fetchConference.toString() &&\n playerStore.playerLive?.conferenceId === props.fetchConference.conferenceId\n );\n});\nconst playingPodcast = computed(() => {\n return (\n playerStore.playerPodcast?.podcastId === props.podcast.podcastId ||\n playingLive.value\n );\n});\nconst isLiveToBeRecorded = computed(() => undefined === props.fetchConference && isLiveReadyToRecord.value);\nconst isLiveReadyToRecord = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast.conferenceId &&\n ProcessingStatus.ReadyToRecord === props.podcast.processingStatus\n );\n});\nconst isLiveValidAndVisible = computed(() => {\n return (\n undefined !== props.podcast &&\n false !== props.podcast.valid &&\n undefined !== props.podcast.availability.visibility &&\n props.podcast.availability.visibility\n );\n});\n\n/** Size of the play icon */\nconst playIconSize = computed(() => {\n if (isPhone.value) {\n return 36;\n } else if (hoverType.value === 'audio') {\n return 50;\n } else {\n return 40;\n }\n});\n\n/** Whether the podcast can be played */\nconst classicPodcastPlay = computed(() => {\n return (\n //isLiveValidAndVisible.value &&\n !isLiveToBeRecorded.value &&\n ProcessingStatus.Planned !== props.podcast.processingStatus\n );\n});\n\nconst displayBanner = computed(() => {\n return props.justButtons !== true && !(\n isLiveValidAndVisible.value &&\n !isLiveToBeRecorded.value &&\n ProcessingStatus.Planned !== props.podcast.processingStatus\n ) || (ProcessingStatus.Processing === props.podcast.processingStatus && props.showProcessing);\n});\n\nconst iconName = computed(() => {\n if (isLiveToBeRecorded.value) {\n return ClockOutlineIcon;\n }\n\n if (ProcessingStatus.Ready === props.podcast.processingStatus || props.fetchConference) {\n if (!props.podcast.valid) {\n return CheckIcon;\n }\n\n if (\n !props.podcast.availability.visibility &&\n props.podcast.availability.date\n ) {\n return ClockOutlineIcon;\n }\n\n return EyeOffOutlineIcon;\n }\n\n if (\n ProcessingStatus.Planned === props.podcast.processingStatus ||\n ProcessingStatus.Processing === props.podcast.processingStatus\n ) {\n return TimerSandEmptyIcon;\n }\n\n if (ProcessingStatus.Cancelled === props.podcast.processingStatus) {\n return CancelIcon;\n }\n\n return AlertIcon;\n});\n\n/** The text to display when the podcast is not ready */\nconst textVisible = computed(() => {\n if (isLiveToBeRecorded.value){\n return t(\"Podcast linked to waiting live\");\n }\n \n if (ProcessingStatus.Ready === props.podcast.processingStatus || props.fetchConference) {\n if (!props.podcast.valid) {\n return t(\"Podcast to validate\");\n }\n if (\n !props.podcast.availability.visibility &&\n props.podcast.availability.date\n ){\n return t(\"Podcast publish in future\");\n }\n return t(\"Podcast no visible\");\n }\n if (\n ProcessingStatus.Planned === props.podcast.processingStatus ||\n ProcessingStatus.Processing === props.podcast.processingStatus\n ){\n return t(\"Podcast in process\");\n }\n if (ProcessingStatus.Cancelled === props.podcast.processingStatus){\n return t(\"Podcast in cancelled status\");\n }\n\n return t(\"Podcast in error\");\n});\n\nconst recordingLive = computed(() => {\n return (\n undefined !== props.fetchConference &&\n -1 !== props.fetchConference.conferenceId &&\n (\"RECORDING\" === props.fetchConference.status ||\n \"PENDING\" === props.fetchConference.status)\n );\n});\nconst durationString = computed(() => {\n return DurationHelper.formatDuration(\n Math.round(props.podcast.duration / 1000),\n );\n});\nconst durationIso = computed(() => {\n if (!props.podcast || props.podcast.duration <= 1) {\n return \"\";\n }\n return dayjs.duration({ milliseconds: props.podcast.duration }).toISOString();\n});\n\n//Methods\nasync function play(isVideo: boolean): Promise<void> {\n if (isLiveToBeRecorded.value) {\n return;\n }\n if (playingPodcast.value && isVideo === playerStore.playerVideo) {\n playerStore.playerChangeStatus(\"PLAYING\" === playerStore.playerStatus);\n return;\n }\n if (isVideo && state.player.isVideoPage) {\n router.push(\"/main/pub/video/\" + props.podcast.podcastId);\n return;\n }\n\n let podcast: Podcast|SimplifiedPodcast = props.podcast;\n if (isVideo && !('video' in props.podcast)) {\n podcast = await podcastApi.get(props.podcast.podcastId);\n }\n \n if (!recordingLive.value) {\n playerStore.playerPlay(podcast, isVideo);\n } else {\n playerStore.playerPlay(\n {\n ...podcast,\n conferenceId: props.fetchConference?.conferenceId,\n hlsIdentifier: props.fetchConference?.hlsIdentifier,\n },\n isVideo\n );\n }\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app {\n .img-blur-background{\n position: absolute;\n inset: 0;\n background-color:var(--octopus-background-transparent);\n // Allow pointer events to go through (allow click on image beneath blur)\n pointer-events: none;\n\n // Buttons intercept button events to allow start play\n &.allow-play button {\n pointer-events: all;\n }\n }\n\n .live-image-status {\n text-align: center;\n width: 100%;\n font-size: 0.6rem;\n padding: 0.2rem 0;\n color: white;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n }\n\n .special-icon-play-button {\n width: 30px;\n height: 30px;\n background-color: oklch(88.97% 0.1399 89.64deg);\n color: black;\n border-radius: 50%;\n position: absolute;\n right: -15px;\n top: -20px;\n font-size: 0.9rem;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .multi-buttons-play{\n display: flex;\n position: absolute;\n bottom: 0;\n left: 0;\n font-size: 1rem;\n color: white;\n background-color: var(--octopus-btn-play-bg);\n border-radius: var(--octopus-btn-play-radius);\n\n @media (width <= 960px) {\n font-size: 0.8rem;\n }\n\n button{\n color: var(--octopus-btn-play-fg);\n background-color: transparent;\n border: 0;\n display: flex;\n align-items: center;\n padding: 0.2rem;\n }\n }\n\n .play-button-relative.multi-buttons-play{\n position: relative;\n }\n}\n</style>\n","<!--\n Component displaying the play button on a podcast.\n If the podcast is not available, an overlay is displayed with a message.\n-->\n<template>\n <div\n v-if=\"!hidePlay || recordingLive\"\n :class=\"{ 'img-blur-background': displayBanner, 'allow-play': classicPodcastPlay }\"\n >\n <div\n v-if=\"displayBanner\"\n class=\"live-image-status bg-dark\"\n >\n {{ textVisible }}\n </div>\n\n <div\n class=\"multi-buttons-play\"\n :class=\"justButtons ? 'play-button-relative' : ''\"\n >\n <template v-if=\"!isLiveToBeRecorded\">\n <button \n class=\"d-flex\"\n :title=\"playingPodcast? t('Pause') : t('Play')\"\n @mouseenter=\"hoverType = 'audio'\"\n @mouseleave=\"hoverType = ''\" \n @click.prevent=\"play(false)\"\n >\n <PlayIcon\n v-if=\"!playingPodcast || (playingPodcast && playerStore.playerVideo)\"\n :size=\"playIconSize\"\n />\n <PodcastIsPlaying v-if=\"playingPodcast && !playerStore.playerVideo\" />\n <time\n v-if=\"!isVideoPodcast\"\n class=\"ms-1 me-2\"\n :datetime=\"durationIso\"\n >\n {{ durationString }}\n </time>\n </button>\n <button \n v-if=\"isVideoPodcast\"\n :title=\"t('Video')\" \n :disabled=\"playerStore.playerVideo\"\n @click.prevent=\"play(true)\"\n @mouseenter=\"hoverType = 'video'\"\n @mouseleave=\"hoverType = ''\"\n >\n <PodcastIsPlaying v-if=\"playingPodcast && playerStore.playerVideo\" />\n <PlayVideoIcon\n v-else\n :size=\"'video' === hoverType ? 50 : 40\"\n />\n <time\n class=\"ms-2 me-2\"\n :datetime=\"durationIso\"\n >\n {{ durationString }}\n </time>\n </button>\n\n <div\n v-if=\"displayBanner\"\n class=\"special-icon-play-button\"\n >\n <component\n :is=\"iconName\"\n :size=\"16\"\n />\n </div>\n </template>\n <component\n :is=\"iconName\"\n v-else\n :size=\"50\"\n :title=\"textVisible\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport PlayVideoIcon from \"../../icons/PlayVideoIcon.vue\";\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\nimport ClockOutlineIcon from \"vue-material-design-icons/ClockOutline.vue\";\nimport CheckIcon from \"vue-material-design-icons/Check.vue\";\nimport TimerSandEmptyIcon from \"vue-material-design-icons/TimerSandEmpty.vue\";\nimport EyeOffOutlineIcon from \"vue-material-design-icons/EyeOffOutline.vue\";\nimport CancelIcon from \"vue-material-design-icons/Cancel.vue\";\nimport AlertIcon from \"vue-material-design-icons/Alert.vue\";\nimport DurationHelper from \"../../../helper/durationHelper\";\nimport { state } from \"../../../stores/ParamSdkStore\";\nimport { Podcast, PodcastProcessingStatus as ProcessingStatus, SimplifiedPodcast } from \"../../../stores/class/general/podcast\";\nimport { Conference } from \"@/stores/class/conference/conference\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { computed, defineAsyncComponent, ref } from \"vue\";\nimport dayjs from \"dayjs\";\nimport duration from \"dayjs/plugin/duration\";\nimport { useI18n } from \"vue-i18n\";\nimport { useRouter } from \"vue-router\";\nimport { useResizePhone } from \"../../composable/useResizePhone\";\nimport { podcastApi } from \"../../../api/podcastApi\";\ndayjs.extend(duration);\nconst PodcastIsPlaying = defineAsyncComponent(() => import(\"./PodcastIsPlaying.vue\"));\n\n//Props \nconst props = defineProps({\n podcast: { default: () => ({}), type: Object as () => Podcast|SimplifiedPodcast },\n hidePlay: { default: false, type: Boolean },\n fetchConference: { default: undefined, type: Object as () => Conference },\n justButtons: { default: false, type: Boolean },\n /** Indicates that the processing status of the episode may be shown */\n showProcessing: { default: false, type: Boolean }\n})\n\n\n//Data \nconst hoverType = ref(\"\");\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\nconst router = useRouter();\nconst { isPhone } = useResizePhone();\n\n//Computed\nconst isVideoPodcast = computed(() => {\n return (\n (props.fetchConference?.videoProfile?.includes(\"video_\") &&\n ProcessingStatus.ReadyToRecord === props.podcast.processingStatus) ||\n ('video' in props.podcast && undefined !== props.podcast.video?.videoId) ||\n ('videoId' in props.podcast && undefined !== props.podcast.videoId)\n );\n});\nconst playingLive = computed(() => {\n return (\n undefined !== props.fetchConference &&\n \"null\" !== props.fetchConference.toString() &&\n playerStore.playerLive?.conferenceId === props.fetchConference.conferenceId\n );\n});\nconst playingPodcast = computed(() => {\n return (\n playerStore.playerPodcast?.podcastId === props.podcast.podcastId ||\n playingLive.value\n );\n});\nconst isLiveToBeRecorded = computed(() => undefined === props.fetchConference && isLiveReadyToRecord.value);\nconst isLiveReadyToRecord = computed(() => {\n return (\n undefined !== props.podcast?.conferenceId &&\n 0 !== props.podcast.conferenceId &&\n ProcessingStatus.ReadyToRecord === props.podcast.processingStatus\n );\n});\nconst isLiveValidAndVisible = computed(() => {\n return (\n undefined !== props.podcast &&\n false !== props.podcast.valid &&\n undefined !== props.podcast.availability.visibility &&\n props.podcast.availability.visibility\n );\n});\n\n/** Size of the play icon */\nconst playIconSize = computed(() => {\n if (isPhone.value) {\n return 36;\n } else if (hoverType.value === 'audio') {\n return 50;\n } else {\n return 40;\n }\n});\n\n/** Whether the podcast can be played */\nconst classicPodcastPlay = computed(() => {\n return (\n //isLiveValidAndVisible.value &&\n !isLiveToBeRecorded.value &&\n ProcessingStatus.Planned !== props.podcast.processingStatus\n );\n});\n\nconst displayBanner = computed(() => {\n return props.justButtons !== true && !(\n isLiveValidAndVisible.value &&\n !isLiveToBeRecorded.value &&\n ProcessingStatus.Planned !== props.podcast.processingStatus\n ) || (ProcessingStatus.Processing === props.podcast.processingStatus && props.showProcessing);\n});\n\nconst iconName = computed(() => {\n if (isLiveToBeRecorded.value) {\n return ClockOutlineIcon;\n }\n\n if (ProcessingStatus.Ready === props.podcast.processingStatus || props.fetchConference) {\n if (!props.podcast.valid) {\n return CheckIcon;\n }\n\n if (\n !props.podcast.availability.visibility &&\n props.podcast.availability.date\n ) {\n return ClockOutlineIcon;\n }\n\n return EyeOffOutlineIcon;\n }\n\n if (\n ProcessingStatus.Planned === props.podcast.processingStatus ||\n ProcessingStatus.Processing === props.podcast.processingStatus\n ) {\n return TimerSandEmptyIcon;\n }\n\n if (ProcessingStatus.Cancelled === props.podcast.processingStatus) {\n return CancelIcon;\n }\n\n return AlertIcon;\n});\n\n/** The text to display when the podcast is not ready */\nconst textVisible = computed(() => {\n if (isLiveToBeRecorded.value){\n return t(\"Podcast linked to waiting live\");\n }\n \n if (ProcessingStatus.Ready === props.podcast.processingStatus || props.fetchConference) {\n if (!props.podcast.valid) {\n return t(\"Podcast to validate\");\n }\n if (\n !props.podcast.availability.visibility &&\n props.podcast.availability.date\n ){\n return t(\"Podcast publish in future\");\n }\n return t(\"Podcast no visible\");\n }\n if (\n ProcessingStatus.Planned === props.podcast.processingStatus ||\n ProcessingStatus.Processing === props.podcast.processingStatus\n ){\n return t(\"Podcast in process\");\n }\n if (ProcessingStatus.Cancelled === props.podcast.processingStatus){\n return t(\"Podcast in cancelled status\");\n }\n\n return t(\"Podcast in error\");\n});\n\nconst recordingLive = computed(() => {\n return (\n undefined !== props.fetchConference &&\n -1 !== props.fetchConference.conferenceId &&\n (\"RECORDING\" === props.fetchConference.status ||\n \"PENDING\" === props.fetchConference.status)\n );\n});\nconst durationString = computed(() => {\n return DurationHelper.formatDuration(\n Math.round(props.podcast.duration / 1000),\n );\n});\nconst durationIso = computed(() => {\n if (!props.podcast || props.podcast.duration <= 1) {\n return \"\";\n }\n return dayjs.duration({ milliseconds: props.podcast.duration }).toISOString();\n});\n\n//Methods\nasync function play(isVideo: boolean): Promise<void> {\n if (isLiveToBeRecorded.value) {\n return;\n }\n if (playingPodcast.value && isVideo === playerStore.playerVideo) {\n playerStore.playerChangeStatus(\"PLAYING\" === playerStore.playerStatus);\n return;\n }\n if (isVideo && state.player.isVideoPage) {\n router.push(\"/main/pub/video/\" + props.podcast.podcastId);\n return;\n }\n\n let podcast: Podcast|SimplifiedPodcast = props.podcast;\n if (isVideo && !('video' in props.podcast)) {\n podcast = await podcastApi.get(props.podcast.podcastId);\n }\n \n if (!recordingLive.value) {\n playerStore.playerPlay(podcast, isVideo);\n } else {\n playerStore.playerPlay(\n {\n ...podcast,\n conferenceId: props.fetchConference?.conferenceId,\n hlsIdentifier: props.fetchConference?.hlsIdentifier,\n },\n isVideo\n );\n }\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app {\n .img-blur-background{\n position: absolute;\n inset: 0;\n background-color:var(--octopus-background-transparent);\n // Allow pointer events to go through (allow click on image beneath blur)\n pointer-events: none;\n\n // Buttons intercept button events to allow start play\n &.allow-play button {\n pointer-events: all;\n }\n }\n\n .live-image-status {\n text-align: center;\n width: 100%;\n font-size: 0.6rem;\n padding: 0.2rem 0;\n color: white;\n text-transform: uppercase;\n position: absolute;\n top: 0;\n }\n\n .special-icon-play-button {\n width: 30px;\n height: 30px;\n background-color: oklch(88.97% 0.1399 89.64deg);\n color: black;\n border-radius: 50%;\n position: absolute;\n right: -15px;\n top: -20px;\n font-size: 0.9rem;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .multi-buttons-play{\n display: flex;\n position: absolute;\n bottom: 0;\n left: 0;\n font-size: 1rem;\n color: white;\n background-color: var(--octopus-btn-play-bg);\n border-radius: var(--octopus-btn-play-radius);\n\n @media (width <= 960px) {\n font-size: 0.8rem;\n }\n\n button{\n color: var(--octopus-btn-play-fg);\n background-color: transparent;\n border: 0;\n display: flex;\n align-items: center;\n padding: 0.2rem;\n }\n }\n\n .play-button-relative.multi-buttons-play{\n position: relative;\n }\n}\n</style>\n"],"mappings":"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"}