@saooti/octopus-sdk 42.2.1 → 42.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/dist/{AdvancedSearch-fO5eaqLJ.mjs → AdvancedSearch-C4segSRv.mjs} +6 -6
  2. package/dist/AdvancedSearch-C4segSRv.mjs.map +1 -0
  3. package/dist/AdvancedSearch-DD9tnLCw.mjs.map +1 -0
  4. package/dist/{CategoryFilter-Cu2a0YE9.mjs → CategoryFilter-CpplEC8n.mjs} +5 -5
  5. package/dist/CategoryFilter-CpplEC8n.mjs.map +1 -0
  6. package/dist/CategoryFilter-cbQR_ySd.mjs.map +1 -0
  7. package/dist/{CategoryList-DkxZDrO5.mjs → CategoryList-BTabY3vQ.mjs} +2 -2
  8. package/dist/CategoryList-BTabY3vQ.mjs.map +1 -0
  9. package/dist/CategoryList-DHEJoaez.mjs.map +1 -0
  10. package/dist/CategoryPage-BbsCC3Wr.mjs.map +1 -0
  11. package/dist/CategoryPage-BxvUmThb.mjs.map +1 -0
  12. package/dist/{CategoryPage-3HFz1i7_.mjs → CategoryPage-D755GvQZ.mjs} +3 -3
  13. package/dist/CategoryPage-D755GvQZ.mjs.map +1 -0
  14. package/dist/CategoryPage-DDBJ2krs.mjs.map +1 -0
  15. package/dist/CategoryPage-DRCYjOqG.mjs.map +1 -0
  16. package/dist/ChapteringModal-CSQqCWIk.mjs.map +1 -0
  17. package/dist/ChapteringModal-Dt8Rsauh.mjs.map +1 -0
  18. package/dist/{ChapteringModal-C-rdkbSz.mjs → ChapteringModal-ei6ZqVJU.mjs} +2 -2
  19. package/dist/ChapteringModal-ei6ZqVJU.mjs.map +1 -0
  20. package/dist/CheckIdentityModal-CNFVJVB_.mjs.map +1 -0
  21. package/dist/{CheckIdentityModal-N9h8yvhC.mjs → CheckIdentityModal-cpMOuJGv.mjs} +3 -3
  22. package/dist/CheckIdentityModal-cpMOuJGv.mjs.map +1 -0
  23. package/dist/ClipboardModal-2ZGF38VB.mjs.map +1 -0
  24. package/dist/{ClipboardModal-CnieIOJr.mjs → ClipboardModal-DzCUqSph.mjs} +2 -2
  25. package/dist/ClipboardModal-DzCUqSph.mjs.map +1 -0
  26. package/dist/CommentInput-CV46HJN8.mjs.map +1 -0
  27. package/dist/{CommentInput-CEioyN7X.mjs → CommentInput-D_p03L68.mjs} +6 -6
  28. package/dist/CommentInput-D_p03L68.mjs.map +1 -0
  29. package/dist/CommentInput-DwRbD74k.mjs.map +1 -0
  30. package/dist/CommentItem-B6_XUaFR.mjs.map +1 -0
  31. package/dist/CommentItem-CbbmwVXB.mjs.map +1 -0
  32. package/dist/CommentItem-DfKKazY0.mjs.map +1 -0
  33. package/dist/CommentItem-JRjSLmui.mjs.map +1 -0
  34. package/dist/{CommentItem-BefuRoxQ.mjs → CommentItem-MFN0JNW1.mjs} +8 -8
  35. package/dist/CommentItem-MFN0JNW1.mjs.map +1 -0
  36. package/dist/{CommentList-BsPwzqkf.mjs → CommentList-BkKy5ftL.mjs} +3 -3
  37. package/dist/CommentList-BkKy5ftL.mjs.map +1 -0
  38. package/dist/CommentList-BrP71Ug4.mjs.map +1 -0
  39. package/dist/CommentList-Ng_YXr74.mjs.map +1 -0
  40. package/dist/CommentList-tKA7NFHM.mjs.map +1 -0
  41. package/dist/CommentList-yarlxaXg.mjs.map +1 -0
  42. package/dist/{CommentMoreActions-C86aqy8M.mjs → CommentMoreActions-CBSvuOGJ.mjs} +5 -5
  43. package/dist/CommentMoreActions-CBSvuOGJ.mjs.map +1 -0
  44. package/dist/CommentMoreActions-D7guBdA7.mjs.map +1 -0
  45. package/dist/CommentName-frCHmngc.mjs.map +1 -0
  46. package/dist/{CommentName-DT1QyPi3.mjs → CommentName-zTMSdG4d.mjs} +3 -3
  47. package/dist/CommentName-zTMSdG4d.mjs.map +1 -0
  48. package/dist/{CommentParentInfo-9Fe-3e6c.mjs → CommentParentInfo-CRTYPb8P.mjs} +2 -2
  49. package/dist/CommentParentInfo-CRTYPb8P.mjs.map +1 -0
  50. package/dist/CommentParentInfo-D8qquB6k.mjs.map +1 -0
  51. package/dist/CommentParentInfo-DC4Q6wNO.mjs.map +1 -0
  52. package/dist/CommentParentInfo-temUvqNv.mjs.map +1 -0
  53. package/dist/{CommentPlayer-CiWQM64Y.mjs → CommentPlayer-BMuLmZdI.mjs} +3 -3
  54. package/dist/CommentPlayer-BMuLmZdI.mjs.map +1 -0
  55. package/dist/CommentPlayer-BPA_lEoE.mjs.map +1 -0
  56. package/dist/CommentPlayer-CUNi1Lxv.mjs.map +1 -0
  57. package/dist/{CommentSection-Be38YIkC.mjs → CommentSection-B91sHMDT.mjs} +5 -5
  58. package/dist/CommentSection-B91sHMDT.mjs.map +1 -0
  59. package/dist/CommentSection-CpYd7i8U.mjs.map +1 -0
  60. package/dist/CommentSection-CrqweNX4.mjs.map +1 -0
  61. package/dist/CommentSection-G8rMWPrM.mjs.map +1 -0
  62. package/dist/CommentSection-xjY6h7nn.mjs.map +1 -0
  63. package/dist/CommentStore-9WWuGwIj.mjs.map +1 -0
  64. package/dist/{CommentStore-Dv7j94Uo.mjs → CommentStore-ClU882RI.mjs} +2 -2
  65. package/dist/CommentStore-ClU882RI.mjs.map +1 -0
  66. package/dist/ContractPreviewModal-C4_20E99.mjs.map +1 -0
  67. package/dist/{ContractPreviewModal-CPT6bDpJ.mjs → ContractPreviewModal-Dn5MeLFo.mjs} +2 -2
  68. package/dist/ContractPreviewModal-Dn5MeLFo.mjs.map +1 -0
  69. package/dist/{DownloadPodcastButton-6D8qNAkT.mjs → DownloadPodcastButton-BI_sZWcJ.mjs} +3 -3
  70. package/dist/DownloadPodcastButton-BI_sZWcJ.mjs.map +1 -0
  71. package/dist/DownloadPodcastButton-CSRcg8Nl.mjs.map +1 -0
  72. package/dist/EditCommentModal-KAP1l9RK.mjs.map +1 -0
  73. package/dist/{EditCommentModal-aAcjhc0v.mjs → EditCommentModal-RbVMVDOp.mjs} +2 -2
  74. package/dist/EditCommentModal-RbVMVDOp.mjs.map +1 -0
  75. package/dist/{EmissionGroupChooser-Djt1IZg7.mjs → EmissionGroupChooser-BXqM4iXP.mjs} +2 -2
  76. package/dist/EmissionGroupChooser-BXqM4iXP.mjs.map +1 -0
  77. package/dist/EmissionGroupChooser-CO1WBOUi.mjs.map +1 -0
  78. package/dist/EmissionInlineList-B-r4eI3D.mjs.map +1 -0
  79. package/dist/{EmissionInlineList-BcrKpW8S.mjs → EmissionInlineList-Cy1lbYKY.mjs} +6 -6
  80. package/dist/EmissionInlineList-Cy1lbYKY.mjs.map +1 -0
  81. package/dist/EmissionInlineList-IKPyjBTQ.mjs.map +1 -0
  82. package/dist/EmissionItem-982WkWkg.mjs.map +1 -0
  83. package/dist/EmissionItem-B8q9hnN5.mjs.map +1 -0
  84. package/dist/{EmissionItem-DfkPRcPz.mjs → EmissionItem-BwXm3nNx.mjs} +5 -5
  85. package/dist/EmissionItem-BwXm3nNx.mjs.map +1 -0
  86. package/dist/EmissionItem-ZDlQ7B9S.mjs.map +1 -0
  87. package/dist/{EmissionList-DSuGp0JO.mjs → EmissionList-C8OxrndH.mjs} +6 -6
  88. package/dist/EmissionList-C8OxrndH.mjs.map +1 -0
  89. package/dist/EmissionList-C9-UUWMV.mjs.map +1 -0
  90. package/dist/EmissionList-Dk9xS4s_.mjs.map +1 -0
  91. package/dist/EmissionList-nrY7ASws.mjs.map +1 -0
  92. package/dist/EmissionList-vH4NX1NW.mjs.map +1 -0
  93. package/dist/EmissionPage-BHAPlZw-.mjs.map +1 -0
  94. package/dist/EmissionPage-B_2JalGG.mjs.map +1 -0
  95. package/dist/EmissionPage-D4PjyZzN.mjs.map +1 -0
  96. package/dist/EmissionPage-HGPCRuZD.mjs.map +1 -0
  97. package/dist/{EmissionPage-Bo9fK8HE.mjs → EmissionPage-nCNIiWCo.mjs} +25 -18
  98. package/dist/EmissionPage-nCNIiWCo.mjs.map +1 -0
  99. package/dist/EmissionPlayerItem-B_wRzikv.mjs.map +1 -0
  100. package/dist/{EmissionPlayerItem-D21OrPmm.mjs → EmissionPlayerItem-Degbnz9F.mjs} +5 -5
  101. package/dist/EmissionPlayerItem-Degbnz9F.mjs.map +1 -0
  102. package/dist/EmissionPlayerItem-Dkd0o1ee.mjs.map +1 -0
  103. package/dist/EmissionPresentationItem-BQ7HhOlC.mjs.map +1 -0
  104. package/dist/{EmissionPresentationItem-CwDIBurH.mjs → EmissionPresentationItem-CwBGPIgz.mjs} +2 -2
  105. package/dist/EmissionPresentationItem-CwBGPIgz.mjs.map +1 -0
  106. package/dist/{EmissionPresentationList-CASI5laP.mjs → EmissionPresentationList-BKI5mQdw.mjs} +4 -4
  107. package/dist/EmissionPresentationList-BKI5mQdw.mjs.map +1 -0
  108. package/dist/EmissionPresentationList-CLli23rs.mjs.map +1 -0
  109. package/dist/EmissionsPage-CO2xgVOR.mjs.map +1 -0
  110. package/dist/{EmissionsPage-Bw8Qtzlk.mjs → EmissionsPage-Cj7su56Z.mjs} +5 -5
  111. package/dist/EmissionsPage-Cj7su56Z.mjs.map +1 -0
  112. package/dist/EmissionsPage-DJdy0re_.mjs.map +1 -0
  113. package/dist/EmissionsPage-DR9r7_gH.mjs.map +1 -0
  114. package/dist/EmissionsPage-OVNfLKFu.mjs.map +1 -0
  115. package/dist/Error403Page-Ch535DfU.mjs.map +1 -0
  116. package/dist/{Error403Page-nTYCHwTi.mjs → Error403Page-DW2kK8ZZ.mjs} +2 -2
  117. package/dist/Error403Page-DW2kK8ZZ.mjs.map +1 -0
  118. package/dist/FooterGarSection-B76j-WZS.mjs.map +1 -0
  119. package/dist/{FooterGarSection-Cod8Key5.mjs → FooterGarSection-DVdF5RFq.mjs} +4 -4
  120. package/dist/FooterGarSection-DVdF5RFq.mjs.map +1 -0
  121. package/dist/FooterSection-BQiO-D1p.mjs.map +1 -0
  122. package/dist/{FooterSection-4WXBZj7c.mjs → FooterSection-CpYI9OGH.mjs} +5 -5
  123. package/dist/FooterSection-CpYI9OGH.mjs.map +1 -0
  124. package/dist/{HomeDropdown-CVe7yF6Y.mjs → HomeDropdown-D7FezAO8.mjs} +3 -3
  125. package/dist/HomeDropdown-D7FezAO8.mjs.map +1 -0
  126. package/dist/HomeDropdown-DQoMvBgU.mjs.map +1 -0
  127. package/dist/HomePage-BWs_az04.mjs.map +1 -0
  128. package/dist/HomePage-CMPKjRFA.mjs.map +1 -0
  129. package/dist/HomePage-CsXaeTCW.mjs.map +1 -0
  130. package/dist/HomePage-NH7OxpA_.mjs.map +1 -0
  131. package/dist/{HomePage-DupmOw6F.mjs → HomePage-vo6At2bL.mjs} +4 -4
  132. package/dist/HomePage-vo6At2bL.mjs.map +1 -0
  133. package/dist/{PodcastRubriqueList-BeTq7IRu.mjs → InlineRubriqueList-3ZVN9GJk.mjs} +14 -12
  134. package/dist/InlineRubriqueList-3ZVN9GJk.mjs.map +1 -0
  135. package/dist/InlineRubriqueList-D03VCzg8.mjs.map +1 -0
  136. package/dist/LikeSection-DtthHZj6.mjs.map +1 -0
  137. package/dist/{LikeSection-DAid96g9.mjs → LikeSection-jKjhnj88.mjs} +4 -4
  138. package/dist/LikeSection-jKjhnj88.mjs.map +1 -0
  139. package/dist/{ListPaginate-C9saxru9.mjs → ListPaginate-BXNnw_I8.mjs} +3 -3
  140. package/dist/ListPaginate-BXNnw_I8.mjs.map +1 -0
  141. package/dist/ListPaginate-COsL4t78.mjs.map +1 -0
  142. package/dist/ListPaginate-JuC0L113.mjs.map +1 -0
  143. package/dist/LiveHorizontalList-CFs9mGYs.mjs.map +1 -0
  144. package/dist/LiveHorizontalList-CWBQkS78.mjs.map +1 -0
  145. package/dist/LiveHorizontalList-DwPVmnvH.mjs.map +1 -0
  146. package/dist/LiveHorizontalList-jducN58c.mjs.map +1 -0
  147. package/dist/{LiveHorizontalList-OArlzudf.mjs → LiveHorizontalList-wgXkgFLv.mjs} +4 -4
  148. package/dist/LiveHorizontalList-wgXkgFLv.mjs.map +1 -0
  149. package/dist/LiveList-Bp-feBp9.mjs.map +1 -0
  150. package/dist/LiveList-ByyCyWUl.mjs.map +1 -0
  151. package/dist/{LiveList-EqIo_cye.mjs → LiveList-CA5n6VeN.mjs} +6 -6
  152. package/dist/LiveList-CA5n6VeN.mjs.map +1 -0
  153. package/dist/LiveList-Cah5VFun.mjs.map +1 -0
  154. package/dist/LiveList-DTAnN32j.mjs.map +1 -0
  155. package/dist/LivesPage-CNPMz3xS.mjs.map +1 -0
  156. package/dist/{LivesPage-BmHiBN8A.mjs → LivesPage-CTjXgU-Y.mjs} +5 -5
  157. package/dist/LivesPage-CTjXgU-Y.mjs.map +1 -0
  158. package/dist/LivesPage-CdhWyikV.mjs.map +1 -0
  159. package/dist/LivesPage-CwvFSl6G.mjs.map +1 -0
  160. package/dist/LivesPage-DyIfBEPX.mjs.map +1 -0
  161. package/dist/{MapPage-DcXKTGGh.mjs → MapPage-C_nGG0_5.mjs} +3 -3
  162. package/dist/MapPage-C_nGG0_5.mjs.map +1 -0
  163. package/dist/MapPage-DXV40zWN.mjs.map +1 -0
  164. package/dist/{MobileMenu-C0IYBWwF.mjs → MobileMenu-C95GAIm0.mjs} +4 -4
  165. package/dist/MobileMenu-C95GAIm0.mjs.map +1 -0
  166. package/dist/MobileMenu-CfHqWqsL.mjs.map +1 -0
  167. package/dist/NewsletterModal-4Lei4Y59.mjs.map +1 -0
  168. package/dist/{NewsletterModal-BzlUlz3P.mjs → NewsletterModal-B6ky7DBC.mjs} +2 -2
  169. package/dist/NewsletterModal-B6ky7DBC.mjs.map +1 -0
  170. package/dist/OrganisationChooser-BufDZsSd.mjs.map +1 -0
  171. package/dist/{OrganisationChooser-Bm4zqqCH.mjs → OrganisationChooser-CA0_LiTH.mjs} +3 -3
  172. package/dist/OrganisationChooser-CA0_LiTH.mjs.map +1 -0
  173. package/dist/{OrganisationChooserLight-BQ9B91mO.mjs → OrganisationChooserLight-BwG5mNdW.mjs} +2 -2
  174. package/dist/OrganisationChooserLight-BwG5mNdW.mjs.map +1 -0
  175. package/dist/OrganisationChooserLight-C2oGlc9Z.mjs.map +1 -0
  176. package/dist/{PageNotFound-BVQ8M8sO.mjs → PageNotFound-BHpjyNDo.mjs} +3 -3
  177. package/dist/PageNotFound-BHpjyNDo.mjs.map +1 -0
  178. package/dist/PageNotFound-IMnfLZqX.mjs.map +1 -0
  179. package/dist/{ParticipantInlineList-BQtQZFW1.mjs → ParticipantInlineList-A8UwjE4m.mjs} +5 -5
  180. package/dist/ParticipantInlineList-A8UwjE4m.mjs.map +1 -0
  181. package/dist/ParticipantInlineList-BpVOpEBm.mjs.map +1 -0
  182. package/dist/ParticipantInlineList-C5jWxedt.mjs.map +1 -0
  183. package/dist/ParticipantInlineList-C78uhskc.mjs.map +1 -0
  184. package/dist/ParticipantItem--Wv16z3V.mjs.map +1 -0
  185. package/dist/ParticipantItem-B3k4mf2V.mjs.map +1 -0
  186. package/dist/ParticipantItem-DAPOMGZD.mjs.map +1 -0
  187. package/dist/{ParticipantItem-EDPkxTT-.mjs → ParticipantItem-Szz8WXI6.mjs} +4 -4
  188. package/dist/ParticipantItem-Szz8WXI6.mjs.map +1 -0
  189. package/dist/ParticipantPage-BbKUwNKL.mjs.map +1 -0
  190. package/dist/ParticipantPage-Byq-9aCQ.mjs.map +1 -0
  191. package/dist/ParticipantPage-D4RVBlE-.mjs.map +1 -0
  192. package/dist/ParticipantPage-DfLxuZf-.mjs.map +1 -0
  193. package/dist/{ParticipantPage-BF-s1oof.mjs → ParticipantPage-y3OoBod8.mjs} +9 -9
  194. package/dist/ParticipantPage-y3OoBod8.mjs.map +1 -0
  195. package/dist/{ParticipantsPage-Bzt8Hxah.mjs → ParticipantsPage--BxmzVwz.mjs} +7 -7
  196. package/dist/ParticipantsPage--BxmzVwz.mjs.map +1 -0
  197. package/dist/ParticipantsPage-BEPHaCy5.mjs.map +1 -0
  198. package/dist/ParticipantsPage-BlQavFT6.mjs.map +1 -0
  199. package/dist/ParticipantsPage-D8ja25F9.mjs.map +1 -0
  200. package/dist/ParticipantsPage-R8LVrDFY.mjs.map +1 -0
  201. package/dist/{PlayerAnonymousModal-CbrqO1hs.mjs → PlayerAnonymousModal-BGPpTBPW.mjs} +3 -3
  202. package/dist/PlayerAnonymousModal-BGPpTBPW.mjs.map +1 -0
  203. package/dist/PlayerAnonymousModal-BW239BiA.mjs.map +1 -0
  204. package/dist/PlayerCompact-BFC95d7Y.mjs.map +1 -0
  205. package/dist/PlayerCompact-C-WCTFZN.mjs.map +1 -0
  206. package/dist/{PlayerCompact-BtKfz384.mjs → PlayerCompact-DnJns8S2.mjs} +4 -4
  207. package/dist/PlayerCompact-DnJns8S2.mjs.map +1 -0
  208. package/dist/PlayerComponent-B8AGq9pg.mjs.map +1 -0
  209. package/dist/{PlayerComponent-CxNkDcFc.mjs → PlayerComponent-BRBrXVjI.mjs} +27 -39
  210. package/dist/PlayerComponent-BRBrXVjI.mjs.map +1 -0
  211. package/dist/PlayerComponent-BbvNS7sy.mjs.map +1 -0
  212. package/dist/PlayerComponent-By_JAwx_.mjs.map +1 -0
  213. package/dist/PlayerComponent-C425OWjX.mjs.map +1 -0
  214. package/dist/PlayerComponent-C5PNQ3TW.mjs.map +1 -0
  215. package/dist/PlayerComponent-Cnk_vePj.mjs.map +1 -0
  216. package/dist/PlayerComponent-CovfufPB.mjs.map +1 -0
  217. package/dist/PlayerComponent-DC4jQIwE.mjs.map +1 -0
  218. package/dist/PlayerComponent-DEUmVv0M.mjs.map +1 -0
  219. package/dist/PlayerComponent-DOXY0vL0.mjs.map +1 -0
  220. package/dist/PlayerComponent-DajZbHv7.mjs.map +1 -0
  221. package/dist/PlayerComponent-DejSC061.mjs.map +1 -0
  222. package/dist/PlayerComponent-p7W2UNk6.mjs.map +1 -0
  223. package/dist/PlayerLarge-3zzN7qom.mjs.map +1 -0
  224. package/dist/{PlayerLarge-BH6BLQxk.mjs → PlayerLarge-B97rRmrJ.mjs} +12 -10
  225. package/dist/PlayerLarge-B97rRmrJ.mjs.map +1 -0
  226. package/dist/PlayerLarge-BzwrEgVR.mjs.map +1 -0
  227. package/dist/PlayerLarge-CLOwDO6Q.mjs.map +1 -0
  228. package/dist/PlayerLarge-Chv7pMOU.mjs.map +1 -0
  229. package/dist/PlayerLarge-CkWGaDiY.mjs.map +1 -0
  230. package/dist/PlayerLarge-D0NMzCRi.mjs.map +1 -0
  231. package/dist/PlayerLarge-D3obSnYt.mjs.map +1 -0
  232. package/dist/PlayerLarge-DLGXpE3K.mjs.map +1 -0
  233. package/dist/PlayerLarge-QtUrqNm5.mjs.map +1 -0
  234. package/dist/PlayerLarge-juuY9yOX.mjs.map +1 -0
  235. package/dist/PlayerLarge-n7zyM6b_.mjs.map +1 -0
  236. package/dist/PlayerLarge-o4FVk0QB.mjs.map +1 -0
  237. package/dist/PlayerLarge-tMW3v2La.mjs.map +1 -0
  238. package/dist/PlayerPlayButton-CTu0337E.mjs.map +1 -0
  239. package/dist/PlayerPlayButton-CfJWIpoP.mjs.map +1 -0
  240. package/dist/{PlayerPlayButton-DT2OdqnI.mjs → PlayerPlayButton-zKdHGzFr.mjs} +5 -5
  241. package/dist/PlayerPlayButton-zKdHGzFr.mjs.map +1 -0
  242. package/dist/{PlayerProgressBar-CSYnPjZb.mjs → PlayerProgressBar-BG5NG596.mjs} +4 -4
  243. package/dist/PlayerProgressBar-BG5NG596.mjs.map +1 -0
  244. package/dist/PlayerProgressBar-Cjv8JVY2.mjs.map +1 -0
  245. package/dist/PlayerProgressBar-Co0_YEF3.mjs.map +1 -0
  246. package/dist/PlayerStore-B-L2PQ_b.mjs.map +1 -0
  247. package/dist/PlayerStore-C2XzSrF5.mjs.map +1 -0
  248. package/dist/{PlayerStore-DukkcHI_.mjs → PlayerStore-vYmnOEA_.mjs} +3 -3
  249. package/dist/PlayerStore-vYmnOEA_.mjs.map +1 -0
  250. package/dist/PlayerVideo-DD6NaGkU.mjs.map +1 -0
  251. package/dist/{PlayerVideo-_Uz00K_T.mjs → PlayerVideo-Ds0oYeTC.mjs} +5 -5
  252. package/dist/PlayerVideo-Ds0oYeTC.mjs.map +1 -0
  253. package/dist/PlayerVideo-cYHZOYMv.mjs.map +1 -0
  254. package/dist/PlayerVideoDigiteka-BPJdJNEB.mjs.map +1 -0
  255. package/dist/{PlayerVideoDigiteka-CjfuxXBF.mjs → PlayerVideoDigiteka-C7xb0ndg.mjs} +3 -3
  256. package/dist/PlayerVideoDigiteka-C7xb0ndg.mjs.map +1 -0
  257. package/dist/PlayerVideoDigiteka-oqtYXqYK.mjs.map +1 -0
  258. package/dist/PlayerVideoHls-CB4psqbz.mjs.map +1 -0
  259. package/dist/{PlayerVideoHls-Dms7iTSo.mjs → PlayerVideoHls-xSNqzBEw.mjs} +4 -4
  260. package/dist/PlayerVideoHls-xSNqzBEw.mjs.map +1 -0
  261. package/dist/PlayerVideoHls-zNbegJFp.mjs.map +1 -0
  262. package/dist/PlaylistPage-BUj1Lzfp.mjs.map +1 -0
  263. package/dist/PlaylistPage-BhcJkM15.mjs.map +1 -0
  264. package/dist/PlaylistPage-BsHMB2nn.mjs.map +1 -0
  265. package/dist/{PlaylistPage-CQX0LhXn.mjs → PlaylistPage-D4mcAo00.mjs} +12 -12
  266. package/dist/PlaylistPage-D4mcAo00.mjs.map +1 -0
  267. package/dist/PlaylistPage-DjAgejp8.mjs.map +1 -0
  268. package/dist/PlaylistsPage-B3V5-WT9.mjs.map +1 -0
  269. package/dist/PlaylistsPage-DSjvWTw5.mjs.map +1 -0
  270. package/dist/{PlaylistsPage-Bd-u4qlc.mjs → PlaylistsPage-Dr6HKHf8.mjs} +7 -7
  271. package/dist/PlaylistsPage-Dr6HKHf8.mjs.map +1 -0
  272. package/dist/PodcastFilterList-C-8AF1Dn.mjs.map +1 -0
  273. package/dist/{PodcastFilterList-DkH6bqv_.mjs → PodcastFilterList-CYwPiGko.mjs} +3 -3
  274. package/dist/PodcastFilterList-CYwPiGko.mjs.map +1 -0
  275. package/dist/PodcastFilterList-C_d1SyTB.mjs.map +1 -0
  276. package/dist/PodcastFilterList-ClMsIUaO.mjs.map +1 -0
  277. package/dist/PodcastFilterList-DBS0kvW6.mjs.map +1 -0
  278. package/dist/PodcastImage-B8o3T5zK.mjs.map +1 -0
  279. package/dist/{PodcastImage-BtxcPlrh.mjs → PodcastImage-Bs1lpubL.mjs} +4 -4
  280. package/dist/PodcastImage-Bs1lpubL.mjs.map +1 -0
  281. package/dist/PodcastImage-DBB5689n.mjs.map +1 -0
  282. package/dist/PodcastImage-DNLZH0dY.mjs.map +1 -0
  283. package/dist/PodcastImage-DrV8oxG8.mjs.map +1 -0
  284. package/dist/{PodcastInlineList-CVWfH5np.mjs → PodcastInlineList-B7-2QswT.mjs} +2 -2
  285. package/dist/PodcastInlineList-B7-2QswT.mjs.map +1 -0
  286. package/dist/PodcastInlineList-BVMV6Wvd.mjs.map +1 -0
  287. package/dist/PodcastInlineList-BXPpF0YD.mjs.map +1 -0
  288. package/dist/PodcastInlineList-CLjO1SpD.mjs.map +1 -0
  289. package/dist/PodcastInlineList-Cf5YF0j9.mjs.map +1 -0
  290. package/dist/PodcastInlineListTemplate-BX0tXOFx.mjs.map +1 -0
  291. package/dist/{PodcastInlineListTemplate-BWw1Ix-7.mjs → PodcastInlineListTemplate-DCWn3r7s.mjs} +4 -4
  292. package/dist/PodcastInlineListTemplate-DCWn3r7s.mjs.map +1 -0
  293. package/dist/PodcastIsPlaying-BG1_FgVX.mjs.map +1 -0
  294. package/dist/{PodcastIsPlaying-B7YVeSyB.mjs → PodcastIsPlaying-BsObdQGR.mjs} +2 -2
  295. package/dist/PodcastIsPlaying-BsObdQGR.mjs.map +1 -0
  296. package/dist/PodcastIsPlaying-Csd-C2jr.mjs.map +1 -0
  297. package/dist/PodcastItem-CGmEwYT4.mjs.map +1 -0
  298. package/dist/PodcastItem-CN6gwARQ.mjs.map +1 -0
  299. package/dist/PodcastItem-CdLjZKxf.mjs.map +1 -0
  300. package/dist/PodcastItem-D1MwHzhE.mjs.map +1 -0
  301. package/dist/{PodcastItem-CFk8MX9D.mjs → PodcastItem-_8ErwIDG.mjs} +7 -7
  302. package/dist/PodcastItem-_8ErwIDG.mjs.map +1 -0
  303. package/dist/PodcastList-BXla7F3u.mjs.map +1 -0
  304. package/dist/PodcastList-BqE8dwdc.mjs.map +1 -0
  305. package/dist/PodcastList-BvC6iOS6.mjs.map +1 -0
  306. package/dist/PodcastList-CRwA-s7F.mjs.map +1 -0
  307. package/dist/PodcastList-CVFr9WNS.mjs.map +1 -0
  308. package/dist/PodcastList-DZKxDulS.mjs.map +1 -0
  309. package/dist/{PodcastList-BLXPFjvL.mjs → PodcastList-DgLQjL0d.mjs} +6 -6
  310. package/dist/PodcastList-DgLQjL0d.mjs.map +1 -0
  311. package/dist/{PodcastList-c0Iwzakm.mjs → PodcastList-DhKeiBbv.mjs} +5 -5
  312. package/dist/PodcastList-DhKeiBbv.mjs.map +1 -0
  313. package/dist/PodcastList-Dtq6kEG4.mjs.map +1 -0
  314. package/dist/PodcastList-Dx-mo7Wo.mjs.map +1 -0
  315. package/dist/{PodcastPage-C_d9FaS7.mjs → PodcastPage-C5OCwW8q.mjs} +23 -23
  316. package/dist/PodcastPage-C5OCwW8q.mjs.map +1 -0
  317. package/dist/PodcastPage-CsVqOGWc.mjs.map +1 -0
  318. package/dist/PodcastPage-DQInD9ry.mjs.map +1 -0
  319. package/dist/PodcastPage-Dka9GEzi.mjs.map +1 -0
  320. package/dist/PodcastPage-acKIH0vO.mjs.map +1 -0
  321. package/dist/PodcastPlayBar-AgtR8Ia9.mjs.map +1 -0
  322. package/dist/PodcastPlayBar-D7CyLEM4.mjs.map +1 -0
  323. package/dist/{PodcastPlayBar-WjGn_KlZ.mjs → PodcastPlayBar-DC5HCx76.mjs} +4 -4
  324. package/dist/PodcastPlayBar-DC5HCx76.mjs.map +1 -0
  325. package/dist/PodcastPlayBasicButton-DHYxw3NX.mjs.map +1 -0
  326. package/dist/{PodcastPlayBasicButton-BNKlqhGR.mjs → PodcastPlayBasicButton-PJHza4d_.mjs} +2 -2
  327. package/dist/PodcastPlayBasicButton-PJHza4d_.mjs.map +1 -0
  328. package/dist/PodcastPlayBasicButton-gK82n3YL.mjs.map +1 -0
  329. package/dist/{PodcastPlayButton-B9hWbPEk.mjs → PodcastPlayButton-1eaXWTlG.mjs} +4 -4
  330. package/dist/PodcastPlayButton-1eaXWTlG.mjs.map +1 -0
  331. package/dist/PodcastPlayButton-Bosq5ozq.mjs.map +1 -0
  332. package/dist/PodcastPlayButton-DIQi57Oh.mjs.map +1 -0
  333. package/dist/PodcastPlayButton-DcjbCnlT.mjs.map +1 -0
  334. package/dist/PodcastPlayButton-DgSCyhrd.mjs.map +1 -0
  335. package/dist/PodcastPlaylistInlineList-C0HZum5z.mjs.map +1 -0
  336. package/dist/PodcastPlaylistInlineList-CSziI2j4.mjs.map +1 -0
  337. package/dist/PodcastPlaylistInlineList-CvX2rauY.mjs.map +1 -0
  338. package/dist/PodcastPlaylistInlineList-H_rnCHag.mjs.map +1 -0
  339. package/dist/{PodcastPlaylistInlineList-_csxbYAx.mjs → PodcastPlaylistInlineList-XTbhC8OJ.mjs} +5 -5
  340. package/dist/PodcastPlaylistInlineList-XTbhC8OJ.mjs.map +1 -0
  341. package/dist/{PodcastPresentationList-BD8XmnW0.mjs → PodcastPresentationList-BUl5Rq83.mjs} +5 -5
  342. package/dist/PodcastPresentationList-BUl5Rq83.mjs.map +1 -0
  343. package/dist/PodcastPresentationList-BvkEDbtG.mjs.map +1 -0
  344. package/dist/PodcastPresentationList-C0n-xr5w.mjs.map +1 -0
  345. package/dist/PodcastPresentationList-CnrMkINf.mjs.map +1 -0
  346. package/dist/PodcastPresentationList-DC-Oi_eK.mjs.map +1 -0
  347. package/dist/PodcastProgressBar-CP-0ptRF.mjs.map +1 -0
  348. package/dist/{PodcastProgressBar-B3XOeeJx.mjs → PodcastProgressBar-VG-mRcpi.mjs} +4 -4
  349. package/dist/PodcastProgressBar-VG-mRcpi.mjs.map +1 -0
  350. package/dist/PodcastProgressBar-jY43GoFx.mjs.map +1 -0
  351. package/dist/PodcastRawTranscript-BAu-dt2V.mjs.map +1 -0
  352. package/dist/{PodcastRawTranscript-D0Nm7jGM.mjs → PodcastRawTranscript-Bf6f5yNd.mjs} +3 -3
  353. package/dist/PodcastRawTranscript-Bf6f5yNd.mjs.map +1 -0
  354. package/dist/{PodcastSwiperList-DJ0O3dqM.mjs → PodcastSwiperList-BhulNkN-.mjs} +5 -5
  355. package/dist/PodcastSwiperList-BhulNkN-.mjs.map +1 -0
  356. package/dist/PodcastSwiperList-CGeumBPj.mjs.map +1 -0
  357. package/dist/PodcastSwiperList-CzUkS6M6.mjs.map +1 -0
  358. package/dist/PodcastSwiperList-DLKOAjUS.mjs.map +1 -0
  359. package/dist/PodcastSwiperList-DaTHwrHm.mjs.map +1 -0
  360. package/dist/PodcastmakerHeader-BZT-U0KX.mjs.map +1 -0
  361. package/dist/{PodcastmakerHeader-DAATtOG_.mjs → PodcastmakerHeader-Df0g2dCr.mjs} +2 -2
  362. package/dist/PodcastmakerHeader-Df0g2dCr.mjs.map +1 -0
  363. package/dist/PodcastsPage-B-Qzlif0.mjs.map +1 -0
  364. package/dist/PodcastsPage-BoK55Z9G.mjs.map +1 -0
  365. package/dist/PodcastsPage-CTzbr2VD.mjs.map +1 -0
  366. package/dist/{PodcastsPage-ZhEVoMp1.mjs → PodcastsPage-DSJUPRZE.mjs} +5 -5
  367. package/dist/PodcastsPage-DSJUPRZE.mjs.map +1 -0
  368. package/dist/PodcastsPage-Jg_jAix6.mjs.map +1 -0
  369. package/dist/{ProductorSearch-xs0kzX_E.mjs → ProductorSearch-BTj9gIOs.mjs} +3 -3
  370. package/dist/ProductorSearch-BTj9gIOs.mjs.map +1 -0
  371. package/dist/ProductorSearch-ziDbxrDd.mjs.map +1 -0
  372. package/dist/ProgressBar-BOq9RfZ2.mjs.map +1 -0
  373. package/dist/{ProgressBar-0DSoUTwB.mjs → ProgressBar-BVc0_6Lv.mjs} +2 -2
  374. package/dist/ProgressBar-BVc0_6Lv.mjs.map +1 -0
  375. package/dist/ProgressBar-Cgt2PqnO.mjs.map +1 -0
  376. package/dist/QrCode-DNiPIFIA.mjs.map +1 -0
  377. package/dist/{QrCode-CUP2O18d.mjs → QrCode-MCv4t_Bn.mjs} +2 -2
  378. package/dist/QrCode-MCv4t_Bn.mjs.map +1 -0
  379. package/dist/{QrCodeModal-DXBCuki7.mjs → QrCodeModal-Be8E0JlC.mjs} +2 -2
  380. package/dist/QrCodeModal-Be8E0JlC.mjs.map +1 -0
  381. package/dist/QrCodeModal-DYDKLLuw.mjs.map +1 -0
  382. package/dist/RadioCurrently-BJOmCSby.mjs.map +1 -0
  383. package/dist/RadioCurrently-CZePLInZ.mjs.map +1 -0
  384. package/dist/{RadioCurrently-D5M81oIX.mjs → RadioCurrently-DWySwV64.mjs} +4 -4
  385. package/dist/RadioCurrently-DWySwV64.mjs.map +1 -0
  386. package/dist/RadioHistory-7EGvEAMx.mjs.map +1 -0
  387. package/dist/RadioHistory-BdMa013x.mjs.map +1 -0
  388. package/dist/{RadioHistory-BgOve4jk.mjs → RadioHistory-DlQFZYp2.mjs} +3 -3
  389. package/dist/RadioHistory-DlQFZYp2.mjs.map +1 -0
  390. package/dist/{RadioImage-CUTRr3DL.mjs → RadioImage-BIe2KpG_.mjs} +5 -5
  391. package/dist/RadioImage-BIe2KpG_.mjs.map +1 -0
  392. package/dist/RadioImage-CXFZXN1N.mjs.map +1 -0
  393. package/dist/RadioImage-CpJmuc8a.mjs.map +1 -0
  394. package/dist/{RadioList-CwzOFHc1.mjs → RadioList-B23gsiEF.mjs} +5 -5
  395. package/dist/RadioList-B23gsiEF.mjs.map +1 -0
  396. package/dist/RadioList-BwzgNcMO.mjs.map +1 -0
  397. package/dist/RadioList-KvAacjmD.mjs.map +1 -0
  398. package/dist/RadioPage-CM_4A1AQ.mjs.map +1 -0
  399. package/dist/RadioPage-DkBL81mI.mjs.map +1 -0
  400. package/dist/{RadioPage-DVflzCV-.mjs → RadioPage-Jg2kmtna.mjs} +11 -11
  401. package/dist/RadioPage-Jg2kmtna.mjs.map +1 -0
  402. package/dist/{RadioPlanning-CJ7Qqyhs.mjs → RadioPlanning-2aWTnbZb.mjs} +3 -3
  403. package/dist/RadioPlanning-2aWTnbZb.mjs.map +1 -0
  404. package/dist/RadioPlanning-DHxcBVQo.mjs.map +1 -0
  405. package/dist/RadioProgressBar-BHAawrHe.mjs.map +1 -0
  406. package/dist/RadioProgressBar-CPjLAoPB.mjs.map +1 -0
  407. package/dist/{RadioProgressBar-BmJbzzQA.mjs → RadioProgressBar-yIz1oI5d.mjs} +2 -2
  408. package/dist/RadioProgressBar-yIz1oI5d.mjs.map +1 -0
  409. package/dist/RecaptchaModal-DKugsU7h.mjs.map +1 -0
  410. package/dist/{RecaptchaModal-DX9rAHUg.mjs → RecaptchaModal-dfMCfebx.mjs} +2 -2
  411. package/dist/RecaptchaModal-dfMCfebx.mjs.map +1 -0
  412. package/dist/ReportAbuseModal-Bxr7NTvH.mjs.map +1 -0
  413. package/dist/{ReportAbuseModal-CYCRaFAY.mjs → ReportAbuseModal-DZKRbYXJ.mjs} +4 -4
  414. package/dist/ReportAbuseModal-DZKRbYXJ.mjs.map +1 -0
  415. package/dist/RightsIndicator-BgW0q3af.mjs.map +1 -0
  416. package/dist/RightsIndicator-BtzqiPWc.mjs.map +1 -0
  417. package/dist/{RightsIndicator-qIU4_wiF.mjs → RightsIndicator-D5I3DOfO.mjs} +2 -2
  418. package/dist/RightsIndicator-D5I3DOfO.mjs.map +1 -0
  419. package/dist/RightsIndicator-NOZ05rEh.mjs.map +1 -0
  420. package/dist/RightsWrapper-Cv41FXNO.mjs.map +1 -0
  421. package/dist/{RightsWrapper-Cs6prZ3E.mjs → RightsWrapper-HasUbnny.mjs} +3 -3
  422. package/dist/RightsWrapper-HasUbnny.mjs.map +1 -0
  423. package/dist/{RubriqueFilter-OA_DJKL1.mjs → RubriqueFilter-3SPVH4nT.mjs} +3 -3
  424. package/dist/RubriqueFilter-3SPVH4nT.mjs.map +1 -0
  425. package/dist/RubriqueFilter-B_F2fyA0.mjs.map +1 -0
  426. package/dist/RubriqueList-CalsqgcR.mjs.map +1 -0
  427. package/dist/{RubriqueList-B94NM5yi.mjs → RubriqueList-TnVM2-Ry.mjs} +3 -3
  428. package/dist/RubriqueList-TnVM2-Ry.mjs.map +1 -0
  429. package/dist/RubriquePage-BhneK7GY.mjs.map +1 -0
  430. package/dist/RubriquePage-CPV9lztT.mjs.map +1 -0
  431. package/dist/{RubriquePage-DyusiBmp.mjs → RubriquePage-D223TaA2.mjs} +5 -5
  432. package/dist/RubriquePage-D223TaA2.mjs.map +1 -0
  433. package/dist/RubriquePage-DriBVVmv.mjs.map +1 -0
  434. package/dist/RubriquePage-x_tOmQCH.mjs.map +1 -0
  435. package/dist/SearchPage-B-KDO-5r.mjs.map +1 -0
  436. package/dist/{SearchPage-BGOBGS4j.mjs → SearchPage-BH1gYkHn.mjs} +3 -3
  437. package/dist/SearchPage-BH1gYkHn.mjs.map +1 -0
  438. package/dist/SearchPage-CXOoJF_2.mjs.map +1 -0
  439. package/dist/SearchPage-DyX_tEm5.mjs.map +1 -0
  440. package/dist/SearchPage-IvX74fSJ.mjs.map +1 -0
  441. package/dist/{ShareAnonymous-Chfdzzra.mjs → ShareAnonymous-4UxjKrIe.mjs} +6 -6
  442. package/dist/ShareAnonymous-4UxjKrIe.mjs.map +1 -0
  443. package/dist/ShareAnonymous-C4xPMrgf.mjs.map +1 -0
  444. package/dist/{ShareModalPlayer-CLY_JFFD.mjs → ShareModalPlayer-B0wPlpdU.mjs} +2 -2
  445. package/dist/ShareModalPlayer-B0wPlpdU.mjs.map +1 -0
  446. package/dist/ShareModalPlayer-CEvDV-I_.mjs.map +1 -0
  447. package/dist/ShareNewsletter-Bno5t4ay.mjs.map +1 -0
  448. package/dist/{ShareNewsletter-B4dn4-jA.mjs → ShareNewsletter-Cf9w-I6c.mjs} +2 -2
  449. package/dist/ShareNewsletter-Cf9w-I6c.mjs.map +1 -0
  450. package/dist/SharePlayer-BLqYnywl.mjs.map +1 -0
  451. package/dist/{SharePlayer-wHDYsWYd.mjs → SharePlayer-Oy1pWckd.mjs} +4 -4
  452. package/dist/SharePlayer-Oy1pWckd.mjs.map +1 -0
  453. package/dist/{SharePlayerRadio-D3LXD_gK.mjs → SharePlayerRadio-CI6glNuI.mjs} +3 -3
  454. package/dist/SharePlayerRadio-CI6glNuI.mjs.map +1 -0
  455. package/dist/SharePlayerRadio-c_HFTupz.mjs.map +1 -0
  456. package/dist/SharePlayerTypes-Dkmmw2We.mjs.map +1 -0
  457. package/dist/{SharePlayerTypes-eYSeVl-W.mjs → SharePlayerTypes-cUgCFZ65.mjs} +2 -2
  458. package/dist/SharePlayerTypes-cUgCFZ65.mjs.map +1 -0
  459. package/dist/{ShareSocialsButtons-iHtSoQ3K.mjs → ShareSocialsButtons-BYsXc2Jr.mjs} +2 -2
  460. package/dist/ShareSocialsButtons-BYsXc2Jr.mjs.map +1 -0
  461. package/dist/ShareSocialsButtons-DZLZc1c6.mjs.map +1 -0
  462. package/dist/SimpleLayout-BCsUQENG.mjs.map +1 -0
  463. package/dist/SimpleLayout-BGKNHHjx.mjs.map +1 -0
  464. package/dist/SimpleLayout-BHIdltFB.mjs.map +1 -0
  465. package/dist/SimpleLayout-BKkwQmN6.mjs.map +1 -0
  466. package/dist/SimpleLayout-BORx9hRX.mjs.map +1 -0
  467. package/dist/{SimpleLayout-Bk74CAAr.mjs → SimpleLayout-BTJyAJO6.mjs} +3 -3
  468. package/dist/SimpleLayout-BTJyAJO6.mjs.map +1 -0
  469. package/dist/SimpleLayout-BvOAauzs.mjs.map +1 -0
  470. package/dist/SimpleLayout-C3xekYgM.mjs.map +1 -0
  471. package/dist/SimpleLayout-C4xNk0R4.mjs.map +1 -0
  472. package/dist/SimpleLayout-CDcsE-Be.mjs.map +1 -0
  473. package/dist/SimpleLayout-D3M_c1Eu.mjs.map +1 -0
  474. package/dist/SimpleLayout-DJgC3LcZ.mjs.map +1 -0
  475. package/dist/SimpleLayout-DkvEZxow.mjs.map +1 -0
  476. package/dist/SimpleLayout-gtbBGlVV.mjs.map +1 -0
  477. package/dist/SmartLinkPage-BF8hfaWZ.mjs.map +1 -0
  478. package/dist/{SmartLinkPage-DbuQT8GM.mjs → SmartLinkPage-DQljzYa-.mjs} +5 -5
  479. package/dist/SmartLinkPage-DQljzYa-.mjs.map +1 -0
  480. package/dist/SmartLinkPage-DmlqwhYP.mjs.map +1 -0
  481. package/dist/SubscribeButtons-DO4MRuDr.mjs.map +1 -0
  482. package/dist/{SubscribeButtons-rnonTVzT.mjs → SubscribeButtons-lAAMYQCm.mjs} +3 -3
  483. package/dist/SubscribeButtons-lAAMYQCm.mjs.map +1 -0
  484. package/dist/{SwiperList-C1v0T1wx.mjs → SwiperList-C51H-enh.mjs} +2 -2
  485. package/dist/SwiperList-C51H-enh.mjs.map +1 -0
  486. package/dist/SwiperList-Dsq1MFX6.mjs.map +1 -0
  487. package/dist/TagList-B5C9zojs.mjs.map +1 -0
  488. package/dist/{TagList-VeuYS_zJ.mjs → TagList-D3Bn2fIn.mjs} +2 -2
  489. package/dist/TagList-D3Bn2fIn.mjs.map +1 -0
  490. package/dist/TagPage-B71pZpRY.mjs.map +1 -0
  491. package/dist/{TagPage-Bd81QJHn.mjs → TagPage-Brw9iL1F.mjs} +4 -4
  492. package/dist/TagPage-Brw9iL1F.mjs.map +1 -0
  493. package/dist/TagPage-CWRyUZkD.mjs.map +1 -0
  494. package/dist/TagPage-DFo25ZeP.mjs.map +1 -0
  495. package/dist/TagPage-sI917OpV.mjs.map +1 -0
  496. package/dist/TopBar-CaCA8kOs.mjs.map +1 -0
  497. package/dist/{TopBar-CZVp2T7C.mjs → TopBar-DIdhyJi_.mjs} +7 -7
  498. package/dist/TopBar-DIdhyJi_.mjs.map +1 -0
  499. package/dist/{UserButtonContent-DmNyGmWr.mjs → UserButtonContent-D13cVA34.mjs} +7 -7
  500. package/dist/UserButtonContent-D13cVA34.mjs.map +1 -0
  501. package/dist/UserButtonContent-DMKyXEmF.mjs.map +1 -0
  502. package/dist/{VideoModuleBox-yJZpgCw6.mjs → VideoModuleBox-CFQmvPrA.mjs} +2 -2
  503. package/dist/VideoModuleBox-CFQmvPrA.mjs.map +1 -0
  504. package/dist/VideoModuleBox-DsBLAMrh.mjs.map +1 -0
  505. package/dist/VideoPage-CfJeWV-R.mjs.map +1 -0
  506. package/dist/VideoPage-CnIZYz-k.mjs.map +1 -0
  507. package/dist/VideoPage-D6UNKt2D.mjs.map +1 -0
  508. package/dist/{VideoPage-y6G4Y2Zi.mjs → VideoPage-DU9dJviO.mjs} +10 -10
  509. package/dist/VideoPage-DU9dJviO.mjs.map +1 -0
  510. package/dist/VideoPage-OIb28KAS.mjs.map +1 -0
  511. package/dist/classicApi-C70YSK8J.mjs.map +1 -0
  512. package/dist/classicApi-DuzZv1Wk.mjs.map +1 -1
  513. package/dist/{classicApi-CkDHWZG1.mjs → classicApi-xjOqAovv.mjs} +11 -8
  514. package/dist/classicApi-xjOqAovv.mjs.map +1 -0
  515. package/dist/downloadHelper-C4q0i5xN.mjs.map +1 -0
  516. package/dist/{downloadHelper-DLdkblYN.mjs → downloadHelper-DY3fF3dA.mjs} +2 -2
  517. package/dist/downloadHelper-DY3fF3dA.mjs.map +1 -0
  518. package/dist/index.mjs +102 -97
  519. package/dist/index.mjs.map +1 -1
  520. package/dist/tests.mjs +2 -2
  521. package/dist/{useAdvancedParamInit-B7G2Mvjv.mjs → useAdvancedParamInit-CCprE3H2.mjs} +6 -6
  522. package/dist/useAdvancedParamInit-CCprE3H2.mjs.map +1 -0
  523. package/dist/useAdvancedParamInit-CT8CdPFW.mjs.map +1 -0
  524. package/dist/useDayjs-BPXVSBns.mjs.map +1 -0
  525. package/dist/{useDayjs-C3cnTiDW.mjs → useDayjs-DPVjvJPN.mjs} +2 -2
  526. package/dist/useDayjs-DPVjvJPN.mjs.map +1 -0
  527. package/dist/useErrorHandler-BxQT9ZGf.mjs.map +1 -0
  528. package/dist/{useErrorHandler-DtLjD9t_.mjs → useErrorHandler-D3XVxUh6.mjs} +2 -2
  529. package/dist/useErrorHandler-D3XVxUh6.mjs.map +1 -0
  530. package/dist/{useImageProxy-Bj0cOCct.mjs → useImageProxy-BdQJmj4a.mjs} +2 -2
  531. package/dist/useImageProxy-BdQJmj4a.mjs.map +1 -0
  532. package/dist/useImageProxy-DROuweGY.mjs.map +1 -0
  533. package/dist/{useOrgaComputed-BLSpEDfb.mjs → useOrgaComputed-B2Bq0VBT.mjs} +2 -2
  534. package/dist/useOrgaComputed-B2Bq0VBT.mjs.map +1 -0
  535. package/dist/useOrgaComputed-CGomgs0r.mjs.map +1 -0
  536. package/dist/{usePlayerLogicProgress-75G9QMg_.mjs → usePlayerLogicProgress-DcHbYGOR.mjs} +3 -3
  537. package/dist/usePlayerLogicProgress-DcHbYGOR.mjs.map +1 -0
  538. package/dist/usePlayerLogicProgress-Dchl5sUO.mjs.map +1 -0
  539. package/dist/usePlayerLogicProgress-lqnQ5qNd.mjs.map +1 -0
  540. package/dist/{usePodcastView-BftS642h.mjs → usePodcastView-BDZ6CGQj.mjs} +4 -4
  541. package/dist/usePodcastView-BDZ6CGQj.mjs.map +1 -0
  542. package/dist/usePodcastView-CI5le-WW.mjs.map +1 -0
  543. package/dist/usePresentationItem-Cw9fBYUi.mjs.map +1 -0
  544. package/dist/{usePresentationItem-CNXIk-Sf.mjs → usePresentationItem-UwAuhVqo.mjs} +4 -4
  545. package/dist/usePresentationItem-UwAuhVqo.mjs.map +1 -0
  546. package/dist/useRights-D8CLzCMH.mjs.map +1 -0
  547. package/dist/{useRights-Co0TgD8y.mjs → useRights-DSZ-5pFg.mjs} +2 -2
  548. package/dist/useRights-DSZ-5pFg.mjs.map +1 -0
  549. package/dist/{useRubriquesFilterComputed-VsdTUNL6.mjs → useRubriquesFilterComputed-BkDeXTf-.mjs} +2 -2
  550. package/dist/useRubriquesFilterComputed-BkDeXTf-.mjs.map +1 -0
  551. package/dist/useRubriquesFilterComputed-Bkre15fg.mjs.map +1 -0
  552. package/dist/useRubriquesFilterParam-BmE8v1fS.mjs.map +1 -0
  553. package/dist/{useRubriquesFilterParam--x07HEw1.mjs → useRubriquesFilterParam-Delgf48y.mjs} +2 -2
  554. package/dist/useRubriquesFilterParam-Delgf48y.mjs.map +1 -0
  555. package/dist/{useSharePlatforms-CSSRTkTG.mjs → useSharePlatforms-07n3JYu2.mjs} +3 -3
  556. package/dist/useSharePlatforms-07n3JYu2.mjs.map +1 -0
  557. package/dist/useSharePlatforms-B_3OwBFv.mjs.map +1 -0
  558. package/dist/{useSimplePageParam-ClaGQ9yj.mjs → useSimplePageParam-CsY_ie3c.mjs} +2 -2
  559. package/dist/useSimplePageParam-CsY_ie3c.mjs.map +1 -0
  560. package/dist/useSimplePageParam-ki2VyM-X.mjs.map +1 -0
  561. package/dist/{useTranslation-BNshNMQT.mjs → useTranslation-ChEasnl9.mjs} +25 -8
  562. package/dist/useTranslation-ChEasnl9.mjs.map +1 -0
  563. package/dist/useTranslation-D0R0BSx9.mjs.map +1 -0
  564. package/dist/usefetchRadioData-BPmkztGC.mjs.map +1 -0
  565. package/dist/{usefetchRadioData-C2cwiaCP.mjs → usefetchRadioData-CkrAfN1c.mjs} +2 -2
  566. package/dist/usefetchRadioData-CkrAfN1c.mjs.map +1 -0
  567. package/package.json +1 -1
  568. package/src/components/composable/player/usePlayerLive.ts +8 -7
  569. package/src/stores/AuthStore.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChapteringModal-Dt8Rsauh.mjs","names":[],"sources":["../src/components/misc/player/chaptering/ChapteringModal.vue","../src/components/misc/player/chaptering/ChapteringModal.vue"],"sourcesContent":["<template>\n <ClassicModal\n id-modal=\"chaptering-modal\"\n :title-modal=\"t('Chaptering')\"\n @close=\"closePopup\"\n >\n <template #body>\n <div class=\"d-flex flex-column\">\n <button\n v-for=\"(chapter, index) in playerStore.playerChapteringPercent\"\n :key=\"chapter\"\n class=\"btn d-flex flex-nowrap align-items-center p-2 mt-1 c-hand text-truncate mb-1\"\n :class=\"actualChapter === index ? 'chapter-selected' : 'border'\"\n @click=\"goToChapter(index)\"\n >\n <div class=\"d-flex align-items-center me-auto\">\n <WaveformIcon v-if=\"actualChapter === index\" />\n <div v-else>{{ index + 1 }}</div>\n <div class=\"ms-2\">{{ \"- \" + chapter.title }}</div>\n </div>\n <div>{{ chapter.startDisplay }}</div>\n </button>\n </div>\n </template>\n <template #footer>\n <button class=\"btn m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport WaveformIcon from \"vue-material-design-icons/Waveform.vue\";\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport ClassicModal from \"../../modal/ClassicModal.vue\";\nimport { onMounted, Ref, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n actualChapter: { default: -1, type: Number }\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst audioPlayer : Ref<HTMLAudioElement | null>= ref(null);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\nonMounted(()=>{\n audioPlayer.value = document.querySelector(\"#audio-player\");\n})\n\n//Methods\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction goToChapter(index: number) {\n if (!playerStore.playerChapteringPercent || !audioPlayer.value) {\n return;\n }\n const seekTime =\n playerStore.playerTotal *\n (playerStore.playerChapteringPercent[index].startPercent / 100);\n playerStore.playerUpdateSeekTime(seekTime);\n if (0 === seekTime) {\n playerStore.playerUpdateElapsed(0);\n }\n audioPlayer.value.currentTime = seekTime;\n}\n</script>\n<style lang=\"scss\">\n\n.octopus-app .chapter-selected {\n border: var(--octopus-primary) 3px solid;\n}\n</style>\n","<template>\n <ClassicModal\n id-modal=\"chaptering-modal\"\n :title-modal=\"t('Chaptering')\"\n @close=\"closePopup\"\n >\n <template #body>\n <div class=\"d-flex flex-column\">\n <button\n v-for=\"(chapter, index) in playerStore.playerChapteringPercent\"\n :key=\"chapter\"\n class=\"btn d-flex flex-nowrap align-items-center p-2 mt-1 c-hand text-truncate mb-1\"\n :class=\"actualChapter === index ? 'chapter-selected' : 'border'\"\n @click=\"goToChapter(index)\"\n >\n <div class=\"d-flex align-items-center me-auto\">\n <WaveformIcon v-if=\"actualChapter === index\" />\n <div v-else>{{ index + 1 }}</div>\n <div class=\"ms-2\">{{ \"- \" + chapter.title }}</div>\n </div>\n <div>{{ chapter.startDisplay }}</div>\n </button>\n </div>\n </template>\n <template #footer>\n <button class=\"btn m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport WaveformIcon from \"vue-material-design-icons/Waveform.vue\";\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport ClassicModal from \"../../modal/ClassicModal.vue\";\nimport { onMounted, Ref, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n actualChapter: { default: -1, type: Number }\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst audioPlayer : Ref<HTMLAudioElement | null>= ref(null);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\nonMounted(()=>{\n audioPlayer.value = document.querySelector(\"#audio-player\");\n})\n\n//Methods\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction goToChapter(index: number) {\n if (!playerStore.playerChapteringPercent || !audioPlayer.value) {\n return;\n }\n const seekTime =\n playerStore.playerTotal *\n (playerStore.playerChapteringPercent[index].startPercent / 100);\n playerStore.playerUpdateSeekTime(seekTime);\n if (0 === seekTime) {\n playerStore.playerUpdateElapsed(0);\n }\n audioPlayer.value.currentTime = seekTime;\n}\n</script>\n<style lang=\"scss\">\n\n.octopus-app .chapter-selected {\n border: var(--octopus-primary) 3px solid;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;EA6CA,MAAM,OAAO;EAGb,MAAM,cAA4C,IAAI,IAAI;EAG1D,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,cAAc,eAAe;EAGnC,gBAAc;GACZ,YAAY,QAAQ,SAAS,cAAc,eAAe;EAC5D,CAAC;EAGD,SAAS,aAAmB;GAC1B,KAAK,OAAO;EACd;EACA,SAAS,YAAY,OAAe;GAClC,IAAI,CAAC,YAAY,2BAA2B,CAAC,YAAY,OACvD;GAEF,MAAM,WACN,YAAY,eACT,YAAY,wBAAwB,OAAO,eAAe;GAC7D,YAAY,qBAAqB,QAAQ;GACzC,IAAI,MAAM,UACR,YAAY,oBAAoB,CAAC;GAEnC,YAAY,MAAM,cAAc;EAClC;;;;;;;;;;;;;;;;;;;;mBCpEW,OAAM,qBAAoB;;mBAQtB,OAAM,oCAAmC;;mBAGvC,OAAM,OAAM;;qBAjB3B,YA4Be,OAAA,iBAAA;EA3Bb,YAAS;EACR,eAAa,OAAA,EAAC,YAAA;EACd,SAAO,OAAA;;EAEG,MAAI,cAgBP,CAfN,mBAeM,OAfN,YAeM,EAAA,UAAA,IAAA,GAdJ,mBAaS,UAAA,MAAA,WAZoB,OAAA,YAAY,0BAA/B,SAAS,UAAK;uBADxB,mBAaS,UAAA;IAXN,KAAK;IACN,OAAK,eAAA,CAAC,gFACE,OAAA,kBAAkB,QAAK,qBAAA,QAAA,CAAA;IAC9B,UAAK,WAAE,OAAA,YAAY,KAAK;OAEzB,mBAIM,OAJN,YAIM,CAHgB,OAAA,kBAAkB,SAAA,UAAA,GAAtC,YAA+C,OAAA,iBAAA,EAAA,KAAA,EAAA,CAAA,MAAA,UAAA,GAC/C,mBAAiC,OAAA,YAAA,gBAAlB,QAAK,CAAA,GAAA,CAAA,IACpB,mBAAkD,OAAlD,YAAkD,gBAAA,OAAtB,QAAQ,KAAK,GAAA,CAAA,CAAA,CAAA,GAE3C,mBAAqC,OAAA,MAAA,gBAA7B,QAAQ,YAAY,GAAA,CAAA,CAAA,GAAA,IAAA,UAAA;;EAIvB,QAAM,cAGN,CAFT,mBAES,UAAA;GAFD,OAAM;GAAW,SAAO,OAAA;qBAC3B,OAAA,EAAC,OAAA,CAAA,GAAA,CAAA,CAAA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { n as usePlayerStore } from "./PlayerStore-DukkcHI_.mjs";
2
+ import { n as usePlayerStore } from "./PlayerStore-vYmnOEA_.mjs";
3
3
  import { t as ClassicModal_default } from "./ClassicModal-CilwHp9p.mjs";
4
4
  import { Fragment, createBlock, createElementBlock, createElementVNode, defineComponent, normalizeClass, onMounted, openBlock, ref, renderList, toDisplayString, withCtx } from "vue";
5
5
  import { useI18n } from "vue-i18n";
@@ -79,4 +79,4 @@ var ChapteringModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Ch
79
79
  //#endregion
80
80
  export { ChapteringModal_default as default };
81
81
 
82
- //# sourceMappingURL=ChapteringModal-C-rdkbSz.mjs.map
82
+ //# sourceMappingURL=ChapteringModal-ei6ZqVJU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChapteringModal-ei6ZqVJU.mjs","names":[],"sources":["../src/components/misc/player/chaptering/ChapteringModal.vue","../src/components/misc/player/chaptering/ChapteringModal.vue"],"sourcesContent":["<template>\n <ClassicModal\n id-modal=\"chaptering-modal\"\n :title-modal=\"t('Chaptering')\"\n @close=\"closePopup\"\n >\n <template #body>\n <div class=\"d-flex flex-column\">\n <button\n v-for=\"(chapter, index) in playerStore.playerChapteringPercent\"\n :key=\"chapter\"\n class=\"btn d-flex flex-nowrap align-items-center p-2 mt-1 c-hand text-truncate mb-1\"\n :class=\"actualChapter === index ? 'chapter-selected' : 'border'\"\n @click=\"goToChapter(index)\"\n >\n <div class=\"d-flex align-items-center me-auto\">\n <WaveformIcon v-if=\"actualChapter === index\" />\n <div v-else>{{ index + 1 }}</div>\n <div class=\"ms-2\">{{ \"- \" + chapter.title }}</div>\n </div>\n <div>{{ chapter.startDisplay }}</div>\n </button>\n </div>\n </template>\n <template #footer>\n <button class=\"btn m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport WaveformIcon from \"vue-material-design-icons/Waveform.vue\";\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport ClassicModal from \"../../modal/ClassicModal.vue\";\nimport { onMounted, Ref, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n actualChapter: { default: -1, type: Number }\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst audioPlayer : Ref<HTMLAudioElement | null>= ref(null);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\nonMounted(()=>{\n audioPlayer.value = document.querySelector(\"#audio-player\");\n})\n\n//Methods\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction goToChapter(index: number) {\n if (!playerStore.playerChapteringPercent || !audioPlayer.value) {\n return;\n }\n const seekTime =\n playerStore.playerTotal *\n (playerStore.playerChapteringPercent[index].startPercent / 100);\n playerStore.playerUpdateSeekTime(seekTime);\n if (0 === seekTime) {\n playerStore.playerUpdateElapsed(0);\n }\n audioPlayer.value.currentTime = seekTime;\n}\n</script>\n<style lang=\"scss\">\n\n.octopus-app .chapter-selected {\n border: var(--octopus-primary) 3px solid;\n}\n</style>\n","<template>\n <ClassicModal\n id-modal=\"chaptering-modal\"\n :title-modal=\"t('Chaptering')\"\n @close=\"closePopup\"\n >\n <template #body>\n <div class=\"d-flex flex-column\">\n <button\n v-for=\"(chapter, index) in playerStore.playerChapteringPercent\"\n :key=\"chapter\"\n class=\"btn d-flex flex-nowrap align-items-center p-2 mt-1 c-hand text-truncate mb-1\"\n :class=\"actualChapter === index ? 'chapter-selected' : 'border'\"\n @click=\"goToChapter(index)\"\n >\n <div class=\"d-flex align-items-center me-auto\">\n <WaveformIcon v-if=\"actualChapter === index\" />\n <div v-else>{{ index + 1 }}</div>\n <div class=\"ms-2\">{{ \"- \" + chapter.title }}</div>\n </div>\n <div>{{ chapter.startDisplay }}</div>\n </button>\n </div>\n </template>\n <template #footer>\n <button class=\"btn m-1\" @click=\"closePopup\">\n {{ t(\"Close\") }}\n </button>\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport WaveformIcon from \"vue-material-design-icons/Waveform.vue\";\nimport { usePlayerStore } from \"../../../../stores/PlayerStore\";\nimport ClassicModal from \"../../modal/ClassicModal.vue\";\nimport { onMounted, Ref, ref } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n actualChapter: { default: -1, type: Number }\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Data \nconst audioPlayer : Ref<HTMLAudioElement | null>= ref(null);\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\n\n\nonMounted(()=>{\n audioPlayer.value = document.querySelector(\"#audio-player\");\n})\n\n//Methods\nfunction closePopup(): void {\n emit(\"close\");\n}\nfunction goToChapter(index: number) {\n if (!playerStore.playerChapteringPercent || !audioPlayer.value) {\n return;\n }\n const seekTime =\n playerStore.playerTotal *\n (playerStore.playerChapteringPercent[index].startPercent / 100);\n playerStore.playerUpdateSeekTime(seekTime);\n if (0 === seekTime) {\n playerStore.playerUpdateElapsed(0);\n }\n audioPlayer.value.currentTime = seekTime;\n}\n</script>\n<style lang=\"scss\">\n\n.octopus-app .chapter-selected {\n border: var(--octopus-primary) 3px solid;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;EA6CA,MAAM,OAAO;EAGb,MAAM,cAA4C,IAAI,IAAI;EAG1D,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,cAAc,eAAe;EAGnC,gBAAc;GACZ,YAAY,QAAQ,SAAS,cAAc,eAAe;EAC5D,CAAC;EAGD,SAAS,aAAmB;GAC1B,KAAK,OAAO;EACd;EACA,SAAS,YAAY,OAAe;GAClC,IAAI,CAAC,YAAY,2BAA2B,CAAC,YAAY,OACvD;GAEF,MAAM,WACN,YAAY,eACT,YAAY,wBAAwB,OAAO,eAAe;GAC7D,YAAY,qBAAqB,QAAQ;GACzC,IAAI,MAAM,UACR,YAAY,oBAAoB,CAAC;GAEnC,YAAY,MAAM,cAAc;EAClC;;;;;;;;;;;;;;;;;;;;mBCpEW,OAAM,qBAAoB;;mBAQtB,OAAM,oCAAmC;;mBAGvC,OAAM,OAAM;;qBAjB3B,YA4Be,OAAA,iBAAA;EA3Bb,YAAS;EACR,eAAa,OAAA,EAAC,YAAA;EACd,SAAO,OAAA;;EAEG,MAAI,cAgBP,CAfN,mBAeM,OAfN,YAeM,EAAA,UAAA,IAAA,GAdJ,mBAaS,UAAA,MAAA,WAZoB,OAAA,YAAY,0BAA/B,SAAS,UAAK;uBADxB,mBAaS,UAAA;IAXN,KAAK;IACN,OAAK,eAAA,CAAC,gFACE,OAAA,kBAAkB,QAAK,qBAAA,QAAA,CAAA;IAC9B,UAAK,WAAE,OAAA,YAAY,KAAK;OAEzB,mBAIM,OAJN,YAIM,CAHgB,OAAA,kBAAkB,SAAA,UAAA,GAAtC,YAA+C,OAAA,iBAAA,EAAA,KAAA,EAAA,CAAA,MAAA,UAAA,GAC/C,mBAAiC,OAAA,YAAA,gBAAlB,QAAK,CAAA,GAAA,CAAA,IACpB,mBAAkD,OAAlD,YAAkD,gBAAA,OAAtB,QAAQ,KAAK,GAAA,CAAA,CAAA,CAAA,GAE3C,mBAAqC,OAAA,MAAA,gBAA7B,QAAQ,YAAY,GAAA,CAAA,CAAA,GAAA,IAAA,UAAA;;EAIvB,QAAM,cAGN,CAFT,mBAES,UAAA;GAFD,OAAM;GAAW,SAAO,OAAA;qBAC3B,OAAA,EAAC,OAAA,CAAA,GAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckIdentityModal-CNFVJVB_.mjs","names":[],"sources":["../src/components/display/comments/modal/CheckIdentityModal.vue","../src/components/display/comments/modal/CheckIdentityModal.vue"],"sourcesContent":["<template>\n <RecaptchaModal\n id-modal=\"check-identity-modal\"\n :title-modal=\"titleModal\"\n :disable-validate=\"errorName\"\n @close=\"emit('close')\"\n @validate=\"updateName\"\n >\n <template #form>\n <ClassicInputText\n v-model:text-init=\"name\"\n v-model:error-variable=\"errorName\"\n input-id=\"adserver-tag\"\n focus\n :label=\"t('Let\\'s get acquainted :')\"\n :max-length=\"Constants.MAX_COMMENT_NAME\"\n :placeholder=\"t('Your name')\"\n autocomplete-type=\"name\"\n />\n </template>\n </RecaptchaModal>\n</template>\n\n<script setup lang=\"ts\">\nimport Constants from \"../../../../../public/config\";\nimport ClassicInputText from \"../../../form/ClassicInputText.vue\";\nimport RecaptchaModal from \"./RecaptchaModal.vue\";\nimport { computed, Ref, ref } from \"vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n title: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst errorName = ref(true);\nconst name: Ref<string | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst titleModal = computed(() => props.title ?? t(\"Welcome, thanks for your comment\"));\n\n//Methods\nfunction updateName(): void {\n commentStore.setCommentUser(name.value ?? \"\");\n emit(\"validate\");\n}\n</script>\n","<template>\n <RecaptchaModal\n id-modal=\"check-identity-modal\"\n :title-modal=\"titleModal\"\n :disable-validate=\"errorName\"\n @close=\"emit('close')\"\n @validate=\"updateName\"\n >\n <template #form>\n <ClassicInputText\n v-model:text-init=\"name\"\n v-model:error-variable=\"errorName\"\n input-id=\"adserver-tag\"\n focus\n :label=\"t('Let\\'s get acquainted :')\"\n :max-length=\"Constants.MAX_COMMENT_NAME\"\n :placeholder=\"t('Your name')\"\n autocomplete-type=\"name\"\n />\n </template>\n </RecaptchaModal>\n</template>\n\n<script setup lang=\"ts\">\nimport Constants from \"../../../../../public/config\";\nimport ClassicInputText from \"../../../form/ClassicInputText.vue\";\nimport RecaptchaModal from \"./RecaptchaModal.vue\";\nimport { computed, Ref, ref } from \"vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n title: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst errorName = ref(true);\nconst name: Ref<string | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst titleModal = computed(() => props.title ?? t(\"Welcome, thanks for your comment\"));\n\n//Methods\nfunction updateName(): void {\n commentStore.setCommentUser(name.value ?? \"\");\n emit(\"validate\");\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;EAiCA,MAAM,QAAQ;EAKd,MAAM,OAAO;EAGb,MAAM,YAAY,IAAI,IAAI;EAC1B,MAAM,OAAgC,IAAI,KAAA,CAAS;EAGnD,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,eAAe,gBAAgB;EAIrC,MAAM,aAAa,eAAe,MAAM,SAAS,EAAE,kCAAkC,CAAC;EAGtF,SAAS,aAAmB;GAC1B,aAAa,eAAe,KAAK,SAAS,EAAE;GAC5C,KAAK,UAAU;EACjB;;;;;;;;;;;;;;;;;;;;;;;;;;qBCvDE,YAmBiB,OAAA,mBAAA;EAlBf,YAAS;EACR,eAAa,OAAA;EACb,oBAAkB,OAAA;EAClB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,KAAI,OAAA;EACX,YAAU,OAAA;;EAEA,MAAI,cAUX,CATF,YASE,OAAA,qBAAA;GARQ,aAAW,OAAA;8DAAA,OAAA,OAAI;GACf,kBAAgB,OAAA;mEAAA,OAAA,YAAS;GACjC,YAAS;GACT,OAAA;GACC,OAAO,OAAA,EAAC,wBAAA;GACR,cAAY,OAAA,UAAU;GACtB,aAAa,OAAA,EAAC,WAAA;GACf,qBAAkB"}
@@ -1,8 +1,8 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { t as useCommentStore } from "./CommentStore-Dv7j94Uo.mjs";
2
+ import { t as useCommentStore } from "./CommentStore-ClU882RI.mjs";
3
3
  import { t as config_default } from "./config-C73GMJpz.mjs";
4
4
  import { t as ClassicInputText_default } from "./ClassicInputText-D2wR2cwa.mjs";
5
- import { t as RecaptchaModal_default } from "./RecaptchaModal-DX9rAHUg.mjs";
5
+ import { t as RecaptchaModal_default } from "./RecaptchaModal-dfMCfebx.mjs";
6
6
  import { computed, createBlock, createVNode, defineComponent, openBlock, ref, withCtx } from "vue";
7
7
  import { useI18n } from "vue-i18n";
8
8
  //#region src/components/display/comments/modal/CheckIdentityModal.vue?vue&type=script&setup=true&lang.ts
@@ -83,4 +83,4 @@ var CheckIdentityModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default
83
83
  //#endregion
84
84
  export { CheckIdentityModal_default as default };
85
85
 
86
- //# sourceMappingURL=CheckIdentityModal-N9h8yvhC.mjs.map
86
+ //# sourceMappingURL=CheckIdentityModal-cpMOuJGv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckIdentityModal-cpMOuJGv.mjs","names":[],"sources":["../src/components/display/comments/modal/CheckIdentityModal.vue","../src/components/display/comments/modal/CheckIdentityModal.vue"],"sourcesContent":["<template>\n <RecaptchaModal\n id-modal=\"check-identity-modal\"\n :title-modal=\"titleModal\"\n :disable-validate=\"errorName\"\n @close=\"emit('close')\"\n @validate=\"updateName\"\n >\n <template #form>\n <ClassicInputText\n v-model:text-init=\"name\"\n v-model:error-variable=\"errorName\"\n input-id=\"adserver-tag\"\n focus\n :label=\"t('Let\\'s get acquainted :')\"\n :max-length=\"Constants.MAX_COMMENT_NAME\"\n :placeholder=\"t('Your name')\"\n autocomplete-type=\"name\"\n />\n </template>\n </RecaptchaModal>\n</template>\n\n<script setup lang=\"ts\">\nimport Constants from \"../../../../../public/config\";\nimport ClassicInputText from \"../../../form/ClassicInputText.vue\";\nimport RecaptchaModal from \"./RecaptchaModal.vue\";\nimport { computed, Ref, ref } from \"vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n title: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst errorName = ref(true);\nconst name: Ref<string | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst titleModal = computed(() => props.title ?? t(\"Welcome, thanks for your comment\"));\n\n//Methods\nfunction updateName(): void {\n commentStore.setCommentUser(name.value ?? \"\");\n emit(\"validate\");\n}\n</script>\n","<template>\n <RecaptchaModal\n id-modal=\"check-identity-modal\"\n :title-modal=\"titleModal\"\n :disable-validate=\"errorName\"\n @close=\"emit('close')\"\n @validate=\"updateName\"\n >\n <template #form>\n <ClassicInputText\n v-model:text-init=\"name\"\n v-model:error-variable=\"errorName\"\n input-id=\"adserver-tag\"\n focus\n :label=\"t('Let\\'s get acquainted :')\"\n :max-length=\"Constants.MAX_COMMENT_NAME\"\n :placeholder=\"t('Your name')\"\n autocomplete-type=\"name\"\n />\n </template>\n </RecaptchaModal>\n</template>\n\n<script setup lang=\"ts\">\nimport Constants from \"../../../../../public/config\";\nimport ClassicInputText from \"../../../form/ClassicInputText.vue\";\nimport RecaptchaModal from \"./RecaptchaModal.vue\";\nimport { computed, Ref, ref } from \"vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useI18n } from \"vue-i18n\";\n\n\n//Props \nconst props = defineProps({\n title: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"close\", \"validate\"]);\n\n//Data \nconst errorName = ref(true);\nconst name: Ref<string | undefined> = ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst titleModal = computed(() => props.title ?? t(\"Welcome, thanks for your comment\"));\n\n//Methods\nfunction updateName(): void {\n commentStore.setCommentUser(name.value ?? \"\");\n emit(\"validate\");\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;EAiCA,MAAM,QAAQ;EAKd,MAAM,OAAO;EAGb,MAAM,YAAY,IAAI,IAAI;EAC1B,MAAM,OAAgC,IAAI,KAAA,CAAS;EAGnD,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,eAAe,gBAAgB;EAIrC,MAAM,aAAa,eAAe,MAAM,SAAS,EAAE,kCAAkC,CAAC;EAGtF,SAAS,aAAmB;GAC1B,aAAa,eAAe,KAAK,SAAS,EAAE;GAC5C,KAAK,UAAU;EACjB;;;;;;;;;;;;;;;;;;;;;;;;;;qBCvDE,YAmBiB,OAAA,mBAAA;EAlBf,YAAS;EACR,eAAa,OAAA;EACb,oBAAkB,OAAA;EAClB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,OAAA,KAAI,OAAA;EACX,YAAU,OAAA;;EAEA,MAAI,cAUX,CATF,YASE,OAAA,qBAAA;GARQ,aAAW,OAAA;8DAAA,OAAA,OAAI;GACf,kBAAgB,OAAA;mEAAA,OAAA,YAAS;GACjC,YAAS;GACT,OAAA;GACC,OAAO,OAAA,EAAC,wBAAA;GACR,cAAY,OAAA,UAAU;GACtB,aAAa,OAAA,EAAC,WAAA;GACf,qBAAkB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClipboardModal-2ZGF38VB.mjs","names":[],"sources":["../src/components/misc/modal/ClipboardModal.vue","../src/components/misc/modal/ClipboardModal.vue"],"sourcesContent":["<template>\n <ClassicModal\n id-modal=\"clipboard-modal\"\n :title-modal=\"t('RSS Link')\"\n @close=\"closePopup\"\n >\n <template #body>\n <p class=\"d-flex justify-content-between align-items-center\">\n {{ t(\"Rss feed:\") }}\n <span id=\"LINK\">{{ link }}</span>\n <ClassicCopyButton\n :text=\"t('Copy')\"\n :text-after-copy=\"t('Copied!')\"\n :data-to-copy=\"link\"\n :snackbar-text=\"t('Link in clipboard')\"\n />\n </p>\n <!--\n RssSection is not defined in the SDK: it is resolved at runtime from\n the consuming app's globally registered components (app.component()),\n and renders nothing if the app hasn't registered one under that name.\n -->\n <RssSection\n v-if=\"emission && undefined !== authStore.authOrgaId\"\n :emission=\"emission\"\n />\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicCopyButton from \"../../form/ClassicCopyButton.vue\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n link: { default: \"\", type: String },\n emission: { default: undefined, type: Object as () => Emission },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\n\n//Methods\nfunction closePopup(): void {\n emit(\"close\");\n}\n</script>\n","<template>\n <ClassicModal\n id-modal=\"clipboard-modal\"\n :title-modal=\"t('RSS Link')\"\n @close=\"closePopup\"\n >\n <template #body>\n <p class=\"d-flex justify-content-between align-items-center\">\n {{ t(\"Rss feed:\") }}\n <span id=\"LINK\">{{ link }}</span>\n <ClassicCopyButton\n :text=\"t('Copy')\"\n :text-after-copy=\"t('Copied!')\"\n :data-to-copy=\"link\"\n :snackbar-text=\"t('Link in clipboard')\"\n />\n </p>\n <!--\n RssSection is not defined in the SDK: it is resolved at runtime from\n the consuming app's globally registered components (app.component()),\n and renders nothing if the app hasn't registered one under that name.\n -->\n <RssSection\n v-if=\"emission && undefined !== authStore.authOrgaId\"\n :emission=\"emission\"\n />\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicCopyButton from \"../../form/ClassicCopyButton.vue\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n link: { default: \"\", type: String },\n emission: { default: undefined, type: Object as () => Emission },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\n\n//Methods\nfunction closePopup(): void {\n emit(\"close\");\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EA4CA,MAAM,OAAO;EAGb,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,YAAY,aAAa;EAG/B,SAAS,aAAmB;GAC1B,KAAK,OAAO;EACd;;;;;;;;;;;;;;;;;;mBC9CS,OAAM,oDAAmD;mBAEpD,IAAG,OAAM;;;qBARrB,YA0Be,OAAA,iBAAA;EAzBb,YAAS;EACR,eAAa,OAAA,EAAC,UAAA;EACd,SAAO,OAAA;;EAEG,MAAI,cAUT;GATJ,mBASI,KATJ,YASI;oCARC,OAAA,EAAC,WAAA,CAAA,IAAgB,KACpB,CAAA;IAAA,mBAAiC,QAAjC,YAAiC,gBAAd,OAAA,IAAI,GAAA,CAAA;IACvB,YAKE,OAAA,sBAAA;KAJC,MAAM,OAAA,EAAC,MAAA;KACP,mBAAiB,OAAA,EAAC,SAAA;KAClB,gBAAc,OAAA;KACd,iBAAe,OAAA,EAAC,mBAAA;;;;;;;;GAGrB,mBAAA,sPAAA;GAMQ,OAAA,YAAY,KAAA,MAAc,OAAA,UAAU,cAAA,UAAA,GAD5C,YAGE,uBAAA;;IADC,UAAU,OAAA"}
@@ -1,5 +1,5 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { i as useAuthStore } from "./classicApi-CkDHWZG1.mjs";
2
+ import { i as useAuthStore } from "./classicApi-xjOqAovv.mjs";
3
3
  import { t as ClassicModal_default } from "./ClassicModal-CilwHp9p.mjs";
4
4
  import { t as ClassicCopyButton_default } from "./ClassicCopyButton-M9AP3MKD.mjs";
5
5
  import { createBlock, createCommentVNode, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, resolveComponent, toDisplayString, withCtx } from "vue";
@@ -81,4 +81,4 @@ var ClipboardModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Cli
81
81
  //#endregion
82
82
  export { ClipboardModal_default as default };
83
83
 
84
- //# sourceMappingURL=ClipboardModal-CnieIOJr.mjs.map
84
+ //# sourceMappingURL=ClipboardModal-DzCUqSph.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClipboardModal-DzCUqSph.mjs","names":[],"sources":["../src/components/misc/modal/ClipboardModal.vue","../src/components/misc/modal/ClipboardModal.vue"],"sourcesContent":["<template>\n <ClassicModal\n id-modal=\"clipboard-modal\"\n :title-modal=\"t('RSS Link')\"\n @close=\"closePopup\"\n >\n <template #body>\n <p class=\"d-flex justify-content-between align-items-center\">\n {{ t(\"Rss feed:\") }}\n <span id=\"LINK\">{{ link }}</span>\n <ClassicCopyButton\n :text=\"t('Copy')\"\n :text-after-copy=\"t('Copied!')\"\n :data-to-copy=\"link\"\n :snackbar-text=\"t('Link in clipboard')\"\n />\n </p>\n <!--\n RssSection is not defined in the SDK: it is resolved at runtime from\n the consuming app's globally registered components (app.component()),\n and renders nothing if the app hasn't registered one under that name.\n -->\n <RssSection\n v-if=\"emission && undefined !== authStore.authOrgaId\"\n :emission=\"emission\"\n />\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicCopyButton from \"../../form/ClassicCopyButton.vue\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n link: { default: \"\", type: String },\n emission: { default: undefined, type: Object as () => Emission },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\n\n//Methods\nfunction closePopup(): void {\n emit(\"close\");\n}\n</script>\n","<template>\n <ClassicModal\n id-modal=\"clipboard-modal\"\n :title-modal=\"t('RSS Link')\"\n @close=\"closePopup\"\n >\n <template #body>\n <p class=\"d-flex justify-content-between align-items-center\">\n {{ t(\"Rss feed:\") }}\n <span id=\"LINK\">{{ link }}</span>\n <ClassicCopyButton\n :text=\"t('Copy')\"\n :text-after-copy=\"t('Copied!')\"\n :data-to-copy=\"link\"\n :snackbar-text=\"t('Link in clipboard')\"\n />\n </p>\n <!--\n RssSection is not defined in the SDK: it is resolved at runtime from\n the consuming app's globally registered components (app.component()),\n and renders nothing if the app hasn't registered one under that name.\n -->\n <RssSection\n v-if=\"emission && undefined !== authStore.authOrgaId\"\n :emission=\"emission\"\n />\n </template>\n </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport ClassicCopyButton from \"../../form/ClassicCopyButton.vue\";\nimport ClassicModal from \"../modal/ClassicModal.vue\";\nimport { Emission } from \"@/stores/class/general/emission\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\n\n//Props \ndefineProps({\n link: { default: \"\", type: String },\n emission: { default: undefined, type: Object as () => Emission },\n})\n\n//Emits\nconst emit = defineEmits([\"close\"]);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\n\n//Methods\nfunction closePopup(): void {\n emit(\"close\");\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EA4CA,MAAM,OAAO;EAGb,MAAM,EAAE,MAAM,QAAQ;EACtB,MAAM,YAAY,aAAa;EAG/B,SAAS,aAAmB;GAC1B,KAAK,OAAO;EACd;;;;;;;;;;;;;;;;;;mBC9CS,OAAM,oDAAmD;mBAEpD,IAAG,OAAM;;;qBARrB,YA0Be,OAAA,iBAAA;EAzBb,YAAS;EACR,eAAa,OAAA,EAAC,UAAA;EACd,SAAO,OAAA;;EAEG,MAAI,cAUT;GATJ,mBASI,KATJ,YASI;oCARC,OAAA,EAAC,WAAA,CAAA,IAAgB,KACpB,CAAA;IAAA,mBAAiC,QAAjC,YAAiC,gBAAd,OAAA,IAAI,GAAA,CAAA;IACvB,YAKE,OAAA,sBAAA;KAJC,MAAM,OAAA,EAAC,MAAA;KACP,mBAAiB,OAAA,EAAC,SAAA;KAClB,gBAAc,OAAA;KACd,iBAAe,OAAA,EAAC,mBAAA;;;;;;;;GAGrB,mBAAA,sPAAA;GAMQ,OAAA,YAAY,KAAA,MAAc,OAAA,UAAU,cAAA,UAAA,GAD5C,YAGE,uBAAA;;IADC,UAAU,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentInput-CV46HJN8.mjs","names":[],"sources":["../src/components/display/comments/CommentInput.vue","../src/components/display/comments/CommentInput.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column comment-input-container mt-3\">\n <CommentName v-if=\"commentStore.commentUser?.name\" />\n <ClassicContentEditable\n ref=\"textarea\"\n v-model=\"newComment\"\n class=\"comment-input\"\n :placeholder=\"placeholder\"\n @focus=\"isTextareaActive = true\"\n />\n <div v-if=\"isTextareaActive\" class=\"d-flex justify-content-between mt-1\">\n <ClassicEmojiPicker\n :id=\"uniqueId\"\n popover-relative-class=\"page-element\"\n @emoji-selected=\"addEmojiSelected\"\n />\n <div class=\"d-flex ms-auto\">\n <p\n class=\"d-flex justify-content-end h6 me-3\"\n :class=\"{ 'text-danger': !commentTooLong }\"\n >\n {{ countComment + \" / \" + maxComment }}\n </p>\n <button class=\"btn me-2\" @mousedown=\"cancelAction\">\n {{ t(\"Cancel\") }}\n </button>\n <button\n class=\"btn btn-primary\"\n :disabled=\"0 === countComment || !commentTooLong\"\n @mousedown=\"requestToSend\"\n >\n {{ placeholder }}\n </button>\n </div>\n </div>\n <CheckIdentityModal\n v-if=\"isCheckIdentity\"\n @validate=\"postComment\"\n @close=\"isCheckIdentity = false\"\n />\n <MessageModal\n v-if=\"postError\"\n :validatetext=\"t('Close')\"\n :title=\"t('Error')\"\n :message=\"t('Error occurs while post your comment...')\"\n @close=\"postError = false\"\n @validate=\"postError = false\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport Constants from \"../../../../public/config\";\nimport { defineAsyncComponent, ref, computed, watch, useTemplateRef } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst CheckIdentityModal = defineAsyncComponent(\n () => import(\"./modal/CheckIdentityModal.vue\"),\n);\nconst CommentName = defineAsyncComponent(() => import(\"./CommentName.vue\"));\nconst MessageModal = defineAsyncComponent(\n () => import(\"../../misc/modal/MessageModal.vue\"),\n);\nconst ClassicEmojiPicker = defineAsyncComponent(\n () => import(\"../../form/ClassicEmojiPicker.vue\"),\n);\nconst ClassicContentEditable = defineAsyncComponent(\n () => import(\"../../form/ClassicContentEditable.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n focus: { default: false, type: Boolean },\n inAnswerComment: {\n default: undefined,\n type: Object as () => CommentPodcast,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"cancelAction\", \"newComment\"]);\n\n//Data \nconst maxComment = Constants.MAX_COMMENT;\nconst newComment = ref(\"\");\nconst isTextareaActive = ref(false);\nconst isCheckIdentity = ref(false);\nconst postError = ref(false);\nconst textareaRef = useTemplateRef('textarea');\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n//Computed\nconst commentTooLong = computed(() => countComment.value <= maxComment);\nconst countComment = computed(() => newComment.value.length);\nconst placeholder = computed(() => props.inAnswerComment?.commentId? t(\"Answer a comment\"): t(\"Write a comment\"));\nconst uniqueId = computed(() => \"-comment\"+(props.inAnswerComment?.commentId??\"-parent\"));\n\n\n//Watch\nwatch(()=>props.focus, () => textareaRef?.value?.focus());\n\n\n//Methods\nfunction addEmojiSelected(emoji: string) {\n newComment.value += emoji;\n}\nfunction requestToSend(): void {\n if (commentStore.commentUser?.name) {\n postComment();\n } else {\n isCheckIdentity.value = true;\n }\n}\nfunction cancelAction(): void {\n newComment.value = \"\";\n isTextareaActive.value = false;\n emit(\"cancelAction\");\n}\nasync function postComment(): Promise<void> {\n try {\n const commentReceived = await classicApi.postData<CommentPodcast>({\n api: 2,\n path: \"comment/\",\n dataToSend: {\n answerTo: props.inAnswerComment?.commentId,\n content: newComment.value.trim(),\n name: commentStore.commentUser?.name ?? \"\",\n podcastId:\n props.podcast?.podcastId ?? props.inAnswerComment?.podcastId ?? 0,\n uuid: commentStore.commentUser?.uuid ?? \"\",\n timeline: defineTimelineValue(),\n },\n isNotAuth: undefined === authStore.authOrgaId,\n });\n emit(\"newComment\", commentReceived);\n newComment.value = \"\";\n isTextareaActive.value = false;\n } catch {\n postError.value = true;\n }\n isCheckIdentity.value = false;\n}\nfunction defineTimelineValue(): number {\n let timeline = 0;\n if (\n undefined !== props.podcast &&\n (playerStore.playerPodcast?.podcastId === props.podcast.podcastId ||\n playerStore.playerLive?.podcastId === props.podcast.podcastId)\n ) {\n timeline = Math.round(playerStore.playerElapsed * playerStore.playerTotal);\n if (props.podcast.duration && playerStore.playerPodcast) {\n timeline = Math.round(\n timeline - (playerStore.playerTotal - props.podcast.duration / 1000),\n );\n }\n }\n return timeline < 0 ? 0 : timeline;\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app .comment-input-container {\n .comment-input {\n border-bottom: 0.1rem solid var(--octopus-border-default);\n overflow: hidden;\n min-height: 36px;\n resize: none;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column comment-input-container mt-3\">\n <CommentName v-if=\"commentStore.commentUser?.name\" />\n <ClassicContentEditable\n ref=\"textarea\"\n v-model=\"newComment\"\n class=\"comment-input\"\n :placeholder=\"placeholder\"\n @focus=\"isTextareaActive = true\"\n />\n <div v-if=\"isTextareaActive\" class=\"d-flex justify-content-between mt-1\">\n <ClassicEmojiPicker\n :id=\"uniqueId\"\n popover-relative-class=\"page-element\"\n @emoji-selected=\"addEmojiSelected\"\n />\n <div class=\"d-flex ms-auto\">\n <p\n class=\"d-flex justify-content-end h6 me-3\"\n :class=\"{ 'text-danger': !commentTooLong }\"\n >\n {{ countComment + \" / \" + maxComment }}\n </p>\n <button class=\"btn me-2\" @mousedown=\"cancelAction\">\n {{ t(\"Cancel\") }}\n </button>\n <button\n class=\"btn btn-primary\"\n :disabled=\"0 === countComment || !commentTooLong\"\n @mousedown=\"requestToSend\"\n >\n {{ placeholder }}\n </button>\n </div>\n </div>\n <CheckIdentityModal\n v-if=\"isCheckIdentity\"\n @validate=\"postComment\"\n @close=\"isCheckIdentity = false\"\n />\n <MessageModal\n v-if=\"postError\"\n :validatetext=\"t('Close')\"\n :title=\"t('Error')\"\n :message=\"t('Error occurs while post your comment...')\"\n @close=\"postError = false\"\n @validate=\"postError = false\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport Constants from \"../../../../public/config\";\nimport { defineAsyncComponent, ref, computed, watch, useTemplateRef } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst CheckIdentityModal = defineAsyncComponent(\n () => import(\"./modal/CheckIdentityModal.vue\"),\n);\nconst CommentName = defineAsyncComponent(() => import(\"./CommentName.vue\"));\nconst MessageModal = defineAsyncComponent(\n () => import(\"../../misc/modal/MessageModal.vue\"),\n);\nconst ClassicEmojiPicker = defineAsyncComponent(\n () => import(\"../../form/ClassicEmojiPicker.vue\"),\n);\nconst ClassicContentEditable = defineAsyncComponent(\n () => import(\"../../form/ClassicContentEditable.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n focus: { default: false, type: Boolean },\n inAnswerComment: {\n default: undefined,\n type: Object as () => CommentPodcast,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"cancelAction\", \"newComment\"]);\n\n//Data \nconst maxComment = Constants.MAX_COMMENT;\nconst newComment = ref(\"\");\nconst isTextareaActive = ref(false);\nconst isCheckIdentity = ref(false);\nconst postError = ref(false);\nconst textareaRef = useTemplateRef('textarea');\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n//Computed\nconst commentTooLong = computed(() => countComment.value <= maxComment);\nconst countComment = computed(() => newComment.value.length);\nconst placeholder = computed(() => props.inAnswerComment?.commentId? t(\"Answer a comment\"): t(\"Write a comment\"));\nconst uniqueId = computed(() => \"-comment\"+(props.inAnswerComment?.commentId??\"-parent\"));\n\n\n//Watch\nwatch(()=>props.focus, () => textareaRef?.value?.focus());\n\n\n//Methods\nfunction addEmojiSelected(emoji: string) {\n newComment.value += emoji;\n}\nfunction requestToSend(): void {\n if (commentStore.commentUser?.name) {\n postComment();\n } else {\n isCheckIdentity.value = true;\n }\n}\nfunction cancelAction(): void {\n newComment.value = \"\";\n isTextareaActive.value = false;\n emit(\"cancelAction\");\n}\nasync function postComment(): Promise<void> {\n try {\n const commentReceived = await classicApi.postData<CommentPodcast>({\n api: 2,\n path: \"comment/\",\n dataToSend: {\n answerTo: props.inAnswerComment?.commentId,\n content: newComment.value.trim(),\n name: commentStore.commentUser?.name ?? \"\",\n podcastId:\n props.podcast?.podcastId ?? props.inAnswerComment?.podcastId ?? 0,\n uuid: commentStore.commentUser?.uuid ?? \"\",\n timeline: defineTimelineValue(),\n },\n isNotAuth: undefined === authStore.authOrgaId,\n });\n emit(\"newComment\", commentReceived);\n newComment.value = \"\";\n isTextareaActive.value = false;\n } catch {\n postError.value = true;\n }\n isCheckIdentity.value = false;\n}\nfunction defineTimelineValue(): number {\n let timeline = 0;\n if (\n undefined !== props.podcast &&\n (playerStore.playerPodcast?.podcastId === props.podcast.podcastId ||\n playerStore.playerLive?.podcastId === props.podcast.podcastId)\n ) {\n timeline = Math.round(playerStore.playerElapsed * playerStore.playerTotal);\n if (props.podcast.duration && playerStore.playerPodcast) {\n timeline = Math.round(\n timeline - (playerStore.playerTotal - props.podcast.duration / 1000),\n );\n }\n }\n return timeline < 0 ? 0 : timeline;\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app .comment-input-container {\n .comment-input {\n border-bottom: 0.1rem solid var(--octopus-border-default);\n overflow: hidden;\n min-height: 36px;\n resize: none;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { i as useAuthStore, t as classicApi_default } from "./classicApi-CkDHWZG1.mjs";
3
- import { n as usePlayerStore } from "./PlayerStore-DukkcHI_.mjs";
4
- import { t as useCommentStore } from "./CommentStore-Dv7j94Uo.mjs";
2
+ import { i as useAuthStore, t as classicApi_default } from "./classicApi-xjOqAovv.mjs";
3
+ import { n as usePlayerStore } from "./PlayerStore-vYmnOEA_.mjs";
4
+ import { t as useCommentStore } from "./CommentStore-ClU882RI.mjs";
5
5
  import { t as config_default } from "./config-C73GMJpz.mjs";
6
6
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineAsyncComponent, defineComponent, normalizeClass, openBlock, ref, toDisplayString, useTemplateRef, watch } from "vue";
7
7
  import { useI18n } from "vue-i18n";
@@ -25,8 +25,8 @@ var CommentInput_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
25
25
  emits: ["cancelAction", "newComment"],
26
26
  setup(__props, { expose: __expose, emit: __emit }) {
27
27
  __expose();
28
- const CheckIdentityModal = defineAsyncComponent(() => import("./CheckIdentityModal-N9h8yvhC.mjs"));
29
- const CommentName = defineAsyncComponent(() => import("./CommentName-DT1QyPi3.mjs"));
28
+ const CheckIdentityModal = defineAsyncComponent(() => import("./CheckIdentityModal-cpMOuJGv.mjs"));
29
+ const CommentName = defineAsyncComponent(() => import("./CommentName-zTMSdG4d.mjs"));
30
30
  const MessageModal = defineAsyncComponent(() => import("./MessageModal-B35dCbWB.mjs").then((n) => n.n));
31
31
  const ClassicEmojiPicker = defineAsyncComponent(() => import("./ClassicEmojiPicker-EQy5H_zL.mjs"));
32
32
  const ClassicContentEditable = defineAsyncComponent(() => import("./ClassicContentEditable-BSsnA6oo.mjs"));
@@ -183,4 +183,4 @@ var CommentInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Comme
183
183
  //#endregion
184
184
  export { CommentInput_default as default };
185
185
 
186
- //# sourceMappingURL=CommentInput-CEioyN7X.mjs.map
186
+ //# sourceMappingURL=CommentInput-D_p03L68.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentInput-D_p03L68.mjs","names":[],"sources":["../src/components/display/comments/CommentInput.vue","../src/components/display/comments/CommentInput.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column comment-input-container mt-3\">\n <CommentName v-if=\"commentStore.commentUser?.name\" />\n <ClassicContentEditable\n ref=\"textarea\"\n v-model=\"newComment\"\n class=\"comment-input\"\n :placeholder=\"placeholder\"\n @focus=\"isTextareaActive = true\"\n />\n <div v-if=\"isTextareaActive\" class=\"d-flex justify-content-between mt-1\">\n <ClassicEmojiPicker\n :id=\"uniqueId\"\n popover-relative-class=\"page-element\"\n @emoji-selected=\"addEmojiSelected\"\n />\n <div class=\"d-flex ms-auto\">\n <p\n class=\"d-flex justify-content-end h6 me-3\"\n :class=\"{ 'text-danger': !commentTooLong }\"\n >\n {{ countComment + \" / \" + maxComment }}\n </p>\n <button class=\"btn me-2\" @mousedown=\"cancelAction\">\n {{ t(\"Cancel\") }}\n </button>\n <button\n class=\"btn btn-primary\"\n :disabled=\"0 === countComment || !commentTooLong\"\n @mousedown=\"requestToSend\"\n >\n {{ placeholder }}\n </button>\n </div>\n </div>\n <CheckIdentityModal\n v-if=\"isCheckIdentity\"\n @validate=\"postComment\"\n @close=\"isCheckIdentity = false\"\n />\n <MessageModal\n v-if=\"postError\"\n :validatetext=\"t('Close')\"\n :title=\"t('Error')\"\n :message=\"t('Error occurs while post your comment...')\"\n @close=\"postError = false\"\n @validate=\"postError = false\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport Constants from \"../../../../public/config\";\nimport { defineAsyncComponent, ref, computed, watch, useTemplateRef } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst CheckIdentityModal = defineAsyncComponent(\n () => import(\"./modal/CheckIdentityModal.vue\"),\n);\nconst CommentName = defineAsyncComponent(() => import(\"./CommentName.vue\"));\nconst MessageModal = defineAsyncComponent(\n () => import(\"../../misc/modal/MessageModal.vue\"),\n);\nconst ClassicEmojiPicker = defineAsyncComponent(\n () => import(\"../../form/ClassicEmojiPicker.vue\"),\n);\nconst ClassicContentEditable = defineAsyncComponent(\n () => import(\"../../form/ClassicContentEditable.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n focus: { default: false, type: Boolean },\n inAnswerComment: {\n default: undefined,\n type: Object as () => CommentPodcast,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"cancelAction\", \"newComment\"]);\n\n//Data \nconst maxComment = Constants.MAX_COMMENT;\nconst newComment = ref(\"\");\nconst isTextareaActive = ref(false);\nconst isCheckIdentity = ref(false);\nconst postError = ref(false);\nconst textareaRef = useTemplateRef('textarea');\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n//Computed\nconst commentTooLong = computed(() => countComment.value <= maxComment);\nconst countComment = computed(() => newComment.value.length);\nconst placeholder = computed(() => props.inAnswerComment?.commentId? t(\"Answer a comment\"): t(\"Write a comment\"));\nconst uniqueId = computed(() => \"-comment\"+(props.inAnswerComment?.commentId??\"-parent\"));\n\n\n//Watch\nwatch(()=>props.focus, () => textareaRef?.value?.focus());\n\n\n//Methods\nfunction addEmojiSelected(emoji: string) {\n newComment.value += emoji;\n}\nfunction requestToSend(): void {\n if (commentStore.commentUser?.name) {\n postComment();\n } else {\n isCheckIdentity.value = true;\n }\n}\nfunction cancelAction(): void {\n newComment.value = \"\";\n isTextareaActive.value = false;\n emit(\"cancelAction\");\n}\nasync function postComment(): Promise<void> {\n try {\n const commentReceived = await classicApi.postData<CommentPodcast>({\n api: 2,\n path: \"comment/\",\n dataToSend: {\n answerTo: props.inAnswerComment?.commentId,\n content: newComment.value.trim(),\n name: commentStore.commentUser?.name ?? \"\",\n podcastId:\n props.podcast?.podcastId ?? props.inAnswerComment?.podcastId ?? 0,\n uuid: commentStore.commentUser?.uuid ?? \"\",\n timeline: defineTimelineValue(),\n },\n isNotAuth: undefined === authStore.authOrgaId,\n });\n emit(\"newComment\", commentReceived);\n newComment.value = \"\";\n isTextareaActive.value = false;\n } catch {\n postError.value = true;\n }\n isCheckIdentity.value = false;\n}\nfunction defineTimelineValue(): number {\n let timeline = 0;\n if (\n undefined !== props.podcast &&\n (playerStore.playerPodcast?.podcastId === props.podcast.podcastId ||\n playerStore.playerLive?.podcastId === props.podcast.podcastId)\n ) {\n timeline = Math.round(playerStore.playerElapsed * playerStore.playerTotal);\n if (props.podcast.duration && playerStore.playerPodcast) {\n timeline = Math.round(\n timeline - (playerStore.playerTotal - props.podcast.duration / 1000),\n );\n }\n }\n return timeline < 0 ? 0 : timeline;\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app .comment-input-container {\n .comment-input {\n border-bottom: 0.1rem solid var(--octopus-border-default);\n overflow: hidden;\n min-height: 36px;\n resize: none;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column comment-input-container mt-3\">\n <CommentName v-if=\"commentStore.commentUser?.name\" />\n <ClassicContentEditable\n ref=\"textarea\"\n v-model=\"newComment\"\n class=\"comment-input\"\n :placeholder=\"placeholder\"\n @focus=\"isTextareaActive = true\"\n />\n <div v-if=\"isTextareaActive\" class=\"d-flex justify-content-between mt-1\">\n <ClassicEmojiPicker\n :id=\"uniqueId\"\n popover-relative-class=\"page-element\"\n @emoji-selected=\"addEmojiSelected\"\n />\n <div class=\"d-flex ms-auto\">\n <p\n class=\"d-flex justify-content-end h6 me-3\"\n :class=\"{ 'text-danger': !commentTooLong }\"\n >\n {{ countComment + \" / \" + maxComment }}\n </p>\n <button class=\"btn me-2\" @mousedown=\"cancelAction\">\n {{ t(\"Cancel\") }}\n </button>\n <button\n class=\"btn btn-primary\"\n :disabled=\"0 === countComment || !commentTooLong\"\n @mousedown=\"requestToSend\"\n >\n {{ placeholder }}\n </button>\n </div>\n </div>\n <CheckIdentityModal\n v-if=\"isCheckIdentity\"\n @validate=\"postComment\"\n @close=\"isCheckIdentity = false\"\n />\n <MessageModal\n v-if=\"postError\"\n :validatetext=\"t('Close')\"\n :title=\"t('Error')\"\n :message=\"t('Error occurs while post your comment...')\"\n @close=\"postError = false\"\n @validate=\"postError = false\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport Constants from \"../../../../public/config\";\nimport { defineAsyncComponent, ref, computed, watch, useTemplateRef } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst CheckIdentityModal = defineAsyncComponent(\n () => import(\"./modal/CheckIdentityModal.vue\"),\n);\nconst CommentName = defineAsyncComponent(() => import(\"./CommentName.vue\"));\nconst MessageModal = defineAsyncComponent(\n () => import(\"../../misc/modal/MessageModal.vue\"),\n);\nconst ClassicEmojiPicker = defineAsyncComponent(\n () => import(\"../../form/ClassicEmojiPicker.vue\"),\n);\nconst ClassicContentEditable = defineAsyncComponent(\n () => import(\"../../form/ClassicContentEditable.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n focus: { default: false, type: Boolean },\n inAnswerComment: {\n default: undefined,\n type: Object as () => CommentPodcast,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"cancelAction\", \"newComment\"]);\n\n//Data \nconst maxComment = Constants.MAX_COMMENT;\nconst newComment = ref(\"\");\nconst isTextareaActive = ref(false);\nconst isCheckIdentity = ref(false);\nconst postError = ref(false);\nconst textareaRef = useTemplateRef('textarea');\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n//Computed\nconst commentTooLong = computed(() => countComment.value <= maxComment);\nconst countComment = computed(() => newComment.value.length);\nconst placeholder = computed(() => props.inAnswerComment?.commentId? t(\"Answer a comment\"): t(\"Write a comment\"));\nconst uniqueId = computed(() => \"-comment\"+(props.inAnswerComment?.commentId??\"-parent\"));\n\n\n//Watch\nwatch(()=>props.focus, () => textareaRef?.value?.focus());\n\n\n//Methods\nfunction addEmojiSelected(emoji: string) {\n newComment.value += emoji;\n}\nfunction requestToSend(): void {\n if (commentStore.commentUser?.name) {\n postComment();\n } else {\n isCheckIdentity.value = true;\n }\n}\nfunction cancelAction(): void {\n newComment.value = \"\";\n isTextareaActive.value = false;\n emit(\"cancelAction\");\n}\nasync function postComment(): Promise<void> {\n try {\n const commentReceived = await classicApi.postData<CommentPodcast>({\n api: 2,\n path: \"comment/\",\n dataToSend: {\n answerTo: props.inAnswerComment?.commentId,\n content: newComment.value.trim(),\n name: commentStore.commentUser?.name ?? \"\",\n podcastId:\n props.podcast?.podcastId ?? props.inAnswerComment?.podcastId ?? 0,\n uuid: commentStore.commentUser?.uuid ?? \"\",\n timeline: defineTimelineValue(),\n },\n isNotAuth: undefined === authStore.authOrgaId,\n });\n emit(\"newComment\", commentReceived);\n newComment.value = \"\";\n isTextareaActive.value = false;\n } catch {\n postError.value = true;\n }\n isCheckIdentity.value = false;\n}\nfunction defineTimelineValue(): number {\n let timeline = 0;\n if (\n undefined !== props.podcast &&\n (playerStore.playerPodcast?.podcastId === props.podcast.podcastId ||\n playerStore.playerLive?.podcastId === props.podcast.podcastId)\n ) {\n timeline = Math.round(playerStore.playerElapsed * playerStore.playerTotal);\n if (props.podcast.duration && playerStore.playerPodcast) {\n timeline = Math.round(\n timeline - (playerStore.playerTotal - props.podcast.duration / 1000),\n );\n }\n }\n return timeline < 0 ? 0 : timeline;\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app .comment-input-container {\n .comment-input {\n border-bottom: 0.1rem solid var(--octopus-border-default);\n overflow: hidden;\n min-height: 36px;\n resize: none;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentInput-DwRbD74k.mjs","names":[],"sources":["../src/components/display/comments/CommentInput.vue","../src/components/display/comments/CommentInput.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column comment-input-container mt-3\">\n <CommentName v-if=\"commentStore.commentUser?.name\" />\n <ClassicContentEditable\n ref=\"textarea\"\n v-model=\"newComment\"\n class=\"comment-input\"\n :placeholder=\"placeholder\"\n @focus=\"isTextareaActive = true\"\n />\n <div v-if=\"isTextareaActive\" class=\"d-flex justify-content-between mt-1\">\n <ClassicEmojiPicker\n :id=\"uniqueId\"\n popover-relative-class=\"page-element\"\n @emoji-selected=\"addEmojiSelected\"\n />\n <div class=\"d-flex ms-auto\">\n <p\n class=\"d-flex justify-content-end h6 me-3\"\n :class=\"{ 'text-danger': !commentTooLong }\"\n >\n {{ countComment + \" / \" + maxComment }}\n </p>\n <button class=\"btn me-2\" @mousedown=\"cancelAction\">\n {{ t(\"Cancel\") }}\n </button>\n <button\n class=\"btn btn-primary\"\n :disabled=\"0 === countComment || !commentTooLong\"\n @mousedown=\"requestToSend\"\n >\n {{ placeholder }}\n </button>\n </div>\n </div>\n <CheckIdentityModal\n v-if=\"isCheckIdentity\"\n @validate=\"postComment\"\n @close=\"isCheckIdentity = false\"\n />\n <MessageModal\n v-if=\"postError\"\n :validatetext=\"t('Close')\"\n :title=\"t('Error')\"\n :message=\"t('Error occurs while post your comment...')\"\n @close=\"postError = false\"\n @validate=\"postError = false\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport Constants from \"../../../../public/config\";\nimport { defineAsyncComponent, ref, computed, watch, useTemplateRef } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst CheckIdentityModal = defineAsyncComponent(\n () => import(\"./modal/CheckIdentityModal.vue\"),\n);\nconst CommentName = defineAsyncComponent(() => import(\"./CommentName.vue\"));\nconst MessageModal = defineAsyncComponent(\n () => import(\"../../misc/modal/MessageModal.vue\"),\n);\nconst ClassicEmojiPicker = defineAsyncComponent(\n () => import(\"../../form/ClassicEmojiPicker.vue\"),\n);\nconst ClassicContentEditable = defineAsyncComponent(\n () => import(\"../../form/ClassicContentEditable.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n focus: { default: false, type: Boolean },\n inAnswerComment: {\n default: undefined,\n type: Object as () => CommentPodcast,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"cancelAction\", \"newComment\"]);\n\n//Data \nconst maxComment = Constants.MAX_COMMENT;\nconst newComment = ref(\"\");\nconst isTextareaActive = ref(false);\nconst isCheckIdentity = ref(false);\nconst postError = ref(false);\nconst textareaRef = useTemplateRef('textarea');\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n//Computed\nconst commentTooLong = computed(() => countComment.value <= maxComment);\nconst countComment = computed(() => newComment.value.length);\nconst placeholder = computed(() => props.inAnswerComment?.commentId? t(\"Answer a comment\"): t(\"Write a comment\"));\nconst uniqueId = computed(() => \"-comment\"+(props.inAnswerComment?.commentId??\"-parent\"));\n\n\n//Watch\nwatch(()=>props.focus, () => textareaRef?.value?.focus());\n\n\n//Methods\nfunction addEmojiSelected(emoji: string) {\n newComment.value += emoji;\n}\nfunction requestToSend(): void {\n if (commentStore.commentUser?.name) {\n postComment();\n } else {\n isCheckIdentity.value = true;\n }\n}\nfunction cancelAction(): void {\n newComment.value = \"\";\n isTextareaActive.value = false;\n emit(\"cancelAction\");\n}\nasync function postComment(): Promise<void> {\n try {\n const commentReceived = await classicApi.postData<CommentPodcast>({\n api: 2,\n path: \"comment/\",\n dataToSend: {\n answerTo: props.inAnswerComment?.commentId,\n content: newComment.value.trim(),\n name: commentStore.commentUser?.name ?? \"\",\n podcastId:\n props.podcast?.podcastId ?? props.inAnswerComment?.podcastId ?? 0,\n uuid: commentStore.commentUser?.uuid ?? \"\",\n timeline: defineTimelineValue(),\n },\n isNotAuth: undefined === authStore.authOrgaId,\n });\n emit(\"newComment\", commentReceived);\n newComment.value = \"\";\n isTextareaActive.value = false;\n } catch {\n postError.value = true;\n }\n isCheckIdentity.value = false;\n}\nfunction defineTimelineValue(): number {\n let timeline = 0;\n if (\n undefined !== props.podcast &&\n (playerStore.playerPodcast?.podcastId === props.podcast.podcastId ||\n playerStore.playerLive?.podcastId === props.podcast.podcastId)\n ) {\n timeline = Math.round(playerStore.playerElapsed * playerStore.playerTotal);\n if (props.podcast.duration && playerStore.playerPodcast) {\n timeline = Math.round(\n timeline - (playerStore.playerTotal - props.podcast.duration / 1000),\n );\n }\n }\n return timeline < 0 ? 0 : timeline;\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app .comment-input-container {\n .comment-input {\n border-bottom: 0.1rem solid var(--octopus-border-default);\n overflow: hidden;\n min-height: 36px;\n resize: none;\n }\n}\n</style>\n","<template>\n <div class=\"d-flex flex-column comment-input-container mt-3\">\n <CommentName v-if=\"commentStore.commentUser?.name\" />\n <ClassicContentEditable\n ref=\"textarea\"\n v-model=\"newComment\"\n class=\"comment-input\"\n :placeholder=\"placeholder\"\n @focus=\"isTextareaActive = true\"\n />\n <div v-if=\"isTextareaActive\" class=\"d-flex justify-content-between mt-1\">\n <ClassicEmojiPicker\n :id=\"uniqueId\"\n popover-relative-class=\"page-element\"\n @emoji-selected=\"addEmojiSelected\"\n />\n <div class=\"d-flex ms-auto\">\n <p\n class=\"d-flex justify-content-end h6 me-3\"\n :class=\"{ 'text-danger': !commentTooLong }\"\n >\n {{ countComment + \" / \" + maxComment }}\n </p>\n <button class=\"btn me-2\" @mousedown=\"cancelAction\">\n {{ t(\"Cancel\") }}\n </button>\n <button\n class=\"btn btn-primary\"\n :disabled=\"0 === countComment || !commentTooLong\"\n @mousedown=\"requestToSend\"\n >\n {{ placeholder }}\n </button>\n </div>\n </div>\n <CheckIdentityModal\n v-if=\"isCheckIdentity\"\n @validate=\"postComment\"\n @close=\"isCheckIdentity = false\"\n />\n <MessageModal\n v-if=\"postError\"\n :validatetext=\"t('Close')\"\n :title=\"t('Error')\"\n :message=\"t('Error occurs while post your comment...')\"\n @close=\"postError = false\"\n @validate=\"postError = false\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../api/classicApi\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport Constants from \"../../../../public/config\";\nimport { defineAsyncComponent, ref, computed, watch, useTemplateRef } from \"vue\";\nimport { useCommentStore } from \"../../../stores/CommentStore\";\nimport { usePlayerStore } from \"../../../stores/PlayerStore\";\nimport { useAuthStore } from \"../../../stores/AuthStore\";\nimport { useI18n } from \"vue-i18n\";\nconst CheckIdentityModal = defineAsyncComponent(\n () => import(\"./modal/CheckIdentityModal.vue\"),\n);\nconst CommentName = defineAsyncComponent(() => import(\"./CommentName.vue\"));\nconst MessageModal = defineAsyncComponent(\n () => import(\"../../misc/modal/MessageModal.vue\"),\n);\nconst ClassicEmojiPicker = defineAsyncComponent(\n () => import(\"../../form/ClassicEmojiPicker.vue\"),\n);\nconst ClassicContentEditable = defineAsyncComponent(\n () => import(\"../../form/ClassicContentEditable.vue\"),\n);\n\n//Props \nconst props = defineProps({\n podcast: { default: undefined, type: Object as () => Podcast },\n focus: { default: false, type: Boolean },\n inAnswerComment: {\n default: undefined,\n type: Object as () => CommentPodcast,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"cancelAction\", \"newComment\"]);\n\n//Data \nconst maxComment = Constants.MAX_COMMENT;\nconst newComment = ref(\"\");\nconst isTextareaActive = ref(false);\nconst isCheckIdentity = ref(false);\nconst postError = ref(false);\nconst textareaRef = useTemplateRef('textarea');\n\n//Composables\nconst { t } = useI18n();\nconst playerStore = usePlayerStore();\nconst commentStore = useCommentStore();\nconst authStore = useAuthStore();\n\n//Computed\nconst commentTooLong = computed(() => countComment.value <= maxComment);\nconst countComment = computed(() => newComment.value.length);\nconst placeholder = computed(() => props.inAnswerComment?.commentId? t(\"Answer a comment\"): t(\"Write a comment\"));\nconst uniqueId = computed(() => \"-comment\"+(props.inAnswerComment?.commentId??\"-parent\"));\n\n\n//Watch\nwatch(()=>props.focus, () => textareaRef?.value?.focus());\n\n\n//Methods\nfunction addEmojiSelected(emoji: string) {\n newComment.value += emoji;\n}\nfunction requestToSend(): void {\n if (commentStore.commentUser?.name) {\n postComment();\n } else {\n isCheckIdentity.value = true;\n }\n}\nfunction cancelAction(): void {\n newComment.value = \"\";\n isTextareaActive.value = false;\n emit(\"cancelAction\");\n}\nasync function postComment(): Promise<void> {\n try {\n const commentReceived = await classicApi.postData<CommentPodcast>({\n api: 2,\n path: \"comment/\",\n dataToSend: {\n answerTo: props.inAnswerComment?.commentId,\n content: newComment.value.trim(),\n name: commentStore.commentUser?.name ?? \"\",\n podcastId:\n props.podcast?.podcastId ?? props.inAnswerComment?.podcastId ?? 0,\n uuid: commentStore.commentUser?.uuid ?? \"\",\n timeline: defineTimelineValue(),\n },\n isNotAuth: undefined === authStore.authOrgaId,\n });\n emit(\"newComment\", commentReceived);\n newComment.value = \"\";\n isTextareaActive.value = false;\n } catch {\n postError.value = true;\n }\n isCheckIdentity.value = false;\n}\nfunction defineTimelineValue(): number {\n let timeline = 0;\n if (\n undefined !== props.podcast &&\n (playerStore.playerPodcast?.podcastId === props.podcast.podcastId ||\n playerStore.playerLive?.podcastId === props.podcast.podcastId)\n ) {\n timeline = Math.round(playerStore.playerElapsed * playerStore.playerTotal);\n if (props.podcast.duration && playerStore.playerPodcast) {\n timeline = Math.round(\n timeline - (playerStore.playerTotal - props.podcast.duration / 1000),\n );\n }\n }\n return timeline < 0 ? 0 : timeline;\n}\n</script>\n\n<style lang=\"scss\">\n.octopus-app .comment-input-container {\n .comment-input {\n border-bottom: 0.1rem solid var(--octopus-border-default);\n overflow: hidden;\n min-height: 36px;\n resize: none;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentItem-B6_XUaFR.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentItem-CbbmwVXB.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentItem-DfKKazY0.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentItem-JRjSLmui.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
2
- import { i as useAuthStore } from "./classicApi-CkDHWZG1.mjs";
3
- import { t as useCommentStore } from "./CommentStore-Dv7j94Uo.mjs";
2
+ import { i as useAuthStore } from "./classicApi-xjOqAovv.mjs";
3
+ import { t as useCommentStore } from "./CommentStore-ClU882RI.mjs";
4
4
  import { t as CommentBasicView_default } from "./CommentBasicView-BIiF59xV.mjs";
5
5
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, normalizeClass, openBlock, ref, toDisplayString } from "vue";
6
6
  import { useI18n } from "vue-i18n";
@@ -32,11 +32,11 @@ var CommentItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
32
32
  },
33
33
  emits: ["deleteComment", "update:comment"],
34
34
  setup(__props, { expose: __expose, emit: __emit }) {
35
- const CommentInput = defineAsyncComponent(() => import("./CommentInput-CEioyN7X.mjs"));
36
- const CommentParentInfo = defineAsyncComponent(() => import("./CommentParentInfo-9Fe-3e6c.mjs"));
37
- const LikeSection = defineAsyncComponent(() => import("./LikeSection-DAid96g9.mjs"));
38
- const CommentMoreActions = defineAsyncComponent(() => import("./CommentMoreActions-C86aqy8M.mjs"));
39
- const CommentList = defineAsyncComponent(() => import("./CommentList-BsPwzqkf.mjs"));
35
+ const CommentInput = defineAsyncComponent(() => import("./CommentInput-D_p03L68.mjs"));
36
+ const CommentParentInfo = defineAsyncComponent(() => import("./CommentParentInfo-CRTYPb8P.mjs"));
37
+ const LikeSection = defineAsyncComponent(() => import("./LikeSection-jKjhnj88.mjs"));
38
+ const CommentMoreActions = defineAsyncComponent(() => import("./CommentMoreActions-CBSvuOGJ.mjs"));
39
+ const CommentList = defineAsyncComponent(() => import("./CommentList-BkKy5ftL.mjs"));
40
40
  const props = __props;
41
41
  const emit = __emit;
42
42
  const isAnsweringComment = ref(false);
@@ -229,4 +229,4 @@ var CommentItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Commen
229
229
  //#endregion
230
230
  export { CommentItem_default as default };
231
231
 
232
- //# sourceMappingURL=CommentItem-BefuRoxQ.mjs.map
232
+ //# sourceMappingURL=CommentItem-MFN0JNW1.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentItem-MFN0JNW1.mjs","names":[],"sources":["../src/components/display/comments/item/CommentItem.vue","../src/components/display/comments/item/CommentItem.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n","<template>\n <div\n class=\"d-flex flex-column flex-grow-1 w-100 really-light-secondary-bg\"\n :class=\"isAnAnswer && !isFlatList ? 'my-1 p-0' : 'my-3 p-2'\"\n >\n <div class=\"d-flex flex-nowrap justify-content-between align-items-center\">\n <CommentBasicView :comment=\"comment\" :edit-right=\"editRight\" />\n <CommentMoreActions\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n :config=\"config\"\n @delete-comment=\"emitDeleteComment\"\n />\n </div>\n <template v-if=\"isValidComment\">\n <div class=\"d-flex align-items-center mt-1\">\n <LikeSection\n v-model:comment=\"commentForVmodel\"\n :edit-right=\"editRight\"\n :podcast=\"podcast\"\n />\n <button\n v-if=\"!comment.answerTo && canPostComment\"\n class=\"btn btn-transparent\"\n @click=\"answerComment\"\n >\n {{ t(\"To answer\") }}\n </button>\n <button\n v-if=\"isFlatList && comment.answerTo\"\n class=\"btn btn-transparent d-flex align-items-center\"\n @click=\"showParentComment = !showParentComment\"\n >\n {{ t(\"In response to\") }}\n <ChevronDownIcon :class=\"{ 'arrow-transform': showParentComment }\" />\n </button>\n </div>\n <CommentInput\n v-if=\"isAnsweringComment && canPostComment\"\n class=\"ms-4\"\n :focus=\"focus\"\n :podcast=\"podcast\"\n :in-answer-comment=\"comment\"\n @cancel-action=\"isAnsweringComment = false\"\n @new-comment=\"newComment\"\n />\n <div\n v-if=\"comment.responses?.length && !isFlatList\"\n class=\"ms-4 mt-2 answers-section\"\n >\n <button\n class=\"d-flex align-items-center btn-transparent text-primary\"\n @click=\"showAnswers = !showAnswers\"\n >\n <ChevronDownIcon :class=\"{ 'arrow-transform': showAnswers }\" />\n {{ t(\"nb answers\", { nb: comment.responses.length }) }}\n </button>\n <CommentList\n v-if=\"showAnswers\"\n ref=\"commentList\"\n :podcast=\"podcast\"\n :size=\"5\"\n :answer-to-comment=\"comment.commentId\"\n :config=\"config\"\n :event-to-handle=\"eventToHandle\"\n @comment-deleted=\"updateForAnswerDeleted\"\n />\n </div>\n </template>\n <CommentParentInfo\n v-if=\"showParentComment\"\n class=\"ms-4\"\n :comment-id=\"comment.answerTo\"\n :edit-right=\"editRight\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ChevronDownIcon from \"vue-material-design-icons/ChevronDown.vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"../../../../stores/class/general/podcast\";\nimport CommentBasicView from \"./CommentBasicView.vue\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport {\n CommentMessage,\n CommentsConfig,\n} from \"../../../../stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst CommentInput = defineAsyncComponent(() => import(\"../CommentInput.vue\"));\nconst CommentParentInfo = defineAsyncComponent(\n () => import(\"../CommentParentInfo.vue\"),\n);\nconst LikeSection = defineAsyncComponent(\n () => import(\"../like/LikeSection.vue\"),\n);\nconst CommentMoreActions = defineAsyncComponent(\n () => import(\"./CommentMoreActions.vue\"),\n);\nconst CommentList = defineAsyncComponent(() => import(\"../CommentList.vue\"));\n\n\n//Props \nconst props = defineProps({\n comment: { default: () => ({}), type: Object as () => CommentPodcast },\n podcast: { default: undefined, type: Object as () => Podcast },\n isFlatList: { default: false, type: Boolean },\n config: { default: undefined, type: Object as () => CommentsConfig },\n organisationId: { default: undefined, type: String },\n})\n\n//Emits\nconst emit = defineEmits([\"deleteComment\", \"update:comment\"]);\n\n//Data \nconst isAnsweringComment = ref(false);\nconst showAnswers = ref(false);\nconst focus = ref(false);\nconst showParentComment = ref(false);\nconst eventToHandle : Ref<CommentMessage | undefined>= ref(undefined);\n\n//Composables\nconst { t } = useI18n();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n\n//Computed\nconst commentForVmodel = computed({\n get(): CommentPodcast {\n return props.comment;\n },\n set(value: CommentPodcast) {\n if (!eventActive.value) {\n emit(\"update:comment\", value);\n }\n },\n});\nconst isAnAnswer = computed(() => undefined !== props.comment.answerTo);\nconst editRight = computed(() => {\n return (\n (true === authStore.isRoleComments &&\n (authStore.authOrgaId === props.podcast?.organisation.id ||\n authStore.authOrgaId === props.organisationId)) ||\n true === authStore.isRoleAdmin\n );\n});\nconst isValidComment = computed(() => \"VALIDATED\" === props.comment.state);\nconst canPostComment = computed(() => {\n return commentStore.getCanPostComment(\n props.config,\n props.podcast,\n undefined !== authStore.authOrgaId,\n );\n});\nconst eventActive = computed(() => undefined !== props.podcast?.conferenceId);\n\n \n//Methods\nfunction answerComment(): void {\n isAnsweringComment.value = true;\n focus.value = !focus.value;\n}\nfunction newComment(comment: CommentPodcast): void {\n modifyAnswerNumber(comment.commentId);\n if (!eventActive.value) {\n eventToHandle.value = { type: \"CREATE\", comment: comment };\n }\n isAnsweringComment.value = false;\n}\nfunction modifyAnswerNumber(commentId: number, isAdd = true) {\n const commentToEdit = props.comment;\n if (commentToEdit.responses) {\n if (isAdd) {\n commentToEdit.responses.push(commentId);\n } else {\n const index = commentToEdit.responses.indexOf(commentId);\n if (index !== -1) {\n commentToEdit.responses.splice(index, 1);\n }\n }\n } else if (isAdd) {\n commentToEdit.responses = [commentId];\n }\n emit(\"update:comment\", commentToEdit);\n}\nfunction emitDeleteComment() {\n if (!eventActive.value) {\n emit(\"deleteComment\");\n }\n}\nfunction receiveEvent(event: CommentMessage) {\n if (\"CREATE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId);\n } else if (\"DELETE\" === event.type) {\n modifyAnswerNumber(event.comment.commentId, false);\n }\n eventToHandle.value = event;\n}\nfunction updateForAnswerDeleted(commentId: number) {\n modifyAnswerNumber(commentId, false);\n}\n//Expose\ndefineExpose({\n receiveEvent\n});\n</script>\n"],"mappings":"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"}