@saooti/octopus-sdk 42.1.0 → 42.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1335) hide show
  1. package/dist/AdvancedSearch-BDxs2o7K.mjs +429 -0
  2. package/dist/AdvancedSearch-BDxs2o7K.mjs.map +1 -0
  3. package/dist/AdvancedSearch-BHnCcqYo.mjs.map +1 -0
  4. package/dist/AdvancedSearch-BKZL4Og4.mjs.map +1 -0
  5. package/dist/AdvancedSearch-CARbyVFc.mjs.map +1 -0
  6. package/dist/AdvancedSearch-CzWBQyRR.mjs.map +1 -0
  7. package/dist/AdvancedSearch-DM5MiCRf.mjs.map +1 -0
  8. package/dist/AdvancedSearch-Wbmubxbf.mjs.map +1 -0
  9. package/dist/CategoryFilter-BpAevuLH.mjs.map +1 -0
  10. package/dist/CategoryFilter-BpgBUxCX.mjs.map +1 -0
  11. package/dist/CategoryFilter-BtvszT_D.mjs +237 -0
  12. package/dist/CategoryFilter-BtvszT_D.mjs.map +1 -0
  13. package/dist/CategoryFilter-D-eWUCe_.mjs.map +1 -0
  14. package/dist/CategoryFilter-D38WmeC3.mjs.map +1 -0
  15. package/dist/CategoryFilter-DLSD7boE.mjs.map +1 -0
  16. package/dist/CategoryFilter-DbsUFHSn.mjs.map +1 -0
  17. package/dist/CategoryList-BirNjSgi.mjs +182 -0
  18. package/dist/CategoryList-BirNjSgi.mjs.map +1 -0
  19. package/dist/CategoryList-BrImjKgB.mjs.map +1 -0
  20. package/dist/CategoryList-BwqfZEqt.mjs.map +1 -0
  21. package/dist/CategoryList-C-v_Us7L.mjs.map +1 -0
  22. package/dist/CategoryList-CvNF6D7q.mjs.map +1 -0
  23. package/dist/CategoryList-DiSaK_Hw.mjs.map +1 -0
  24. package/dist/CategoryList-DpDoSFYT.mjs.map +1 -0
  25. package/dist/CategoryPage-BSD7wvZY.mjs.map +1 -0
  26. package/dist/CategoryPage-C5eTwFuy.mjs.map +1 -0
  27. package/dist/CategoryPage-Ck7xTJ1X.mjs.map +1 -0
  28. package/dist/CategoryPage-CmX_-CLt.mjs.map +1 -0
  29. package/dist/CategoryPage-CnGzdY2g.mjs.map +1 -0
  30. package/dist/CategoryPage-D5i0OhIn.mjs.map +1 -0
  31. package/dist/CategoryPage-D7FVaEMo.mjs.map +1 -0
  32. package/dist/CategoryPage-ymiYVbKH.mjs.map +1 -0
  33. package/dist/CategoryPage-zRFFW7lm.mjs +57 -0
  34. package/dist/CategoryPage-zRFFW7lm.mjs.map +1 -0
  35. package/dist/ChapteringModal-BT3rYLl7.mjs.map +1 -0
  36. package/dist/ChapteringModal-CZxza2Hl.mjs.map +1 -0
  37. package/dist/ChapteringModal-DF99rhXl.mjs.map +1 -0
  38. package/dist/ChapteringModal-DSrRb0wM.mjs +82 -0
  39. package/dist/ChapteringModal-DSrRb0wM.mjs.map +1 -0
  40. package/dist/ChapteringModal-DYg4Rsyc.mjs.map +1 -0
  41. package/dist/ChapteringModal-mbAIsypl.mjs.map +1 -0
  42. package/dist/ChapteringModal-nWgj6pH1.mjs.map +1 -0
  43. package/dist/CheckIdentityModal-9R4NGHGc.mjs.map +1 -0
  44. package/dist/CheckIdentityModal-B1TGBzW-.mjs.map +1 -0
  45. package/dist/CheckIdentityModal-BeoPGlll.mjs +86 -0
  46. package/dist/CheckIdentityModal-BeoPGlll.mjs.map +1 -0
  47. package/dist/CheckIdentityModal-C-LeNKnp.mjs.map +1 -0
  48. package/dist/CheckIdentityModal-CVh4TWaA.mjs.map +1 -0
  49. package/dist/CheckIdentityModal-DG5UwIww.mjs.map +1 -0
  50. package/dist/CheckIdentityModal-DgfR8eN8.mjs.map +1 -0
  51. package/dist/CheckIdentityModal-Du2Jqur2.mjs.map +1 -0
  52. package/dist/ClassicAlert-DUQplMvs.mjs +85 -0
  53. package/dist/ClassicInputText-D2wR2cwa.mjs +371 -0
  54. package/dist/ClassicInputText-D2wR2cwa.mjs.map +1 -0
  55. package/dist/ClassicWysiwyg-Bew6KMXn.mjs +230 -0
  56. package/dist/ClassicWysiwyg-Bew6KMXn.mjs.map +1 -0
  57. package/dist/ClipboardModal-7VJwXjk7.mjs.map +1 -0
  58. package/dist/ClipboardModal-BNGanHiD.mjs.map +1 -0
  59. package/dist/ClipboardModal-BXQoN3az.mjs.map +1 -0
  60. package/dist/ClipboardModal-BeGqMvLb.mjs.map +1 -0
  61. package/dist/ClipboardModal-CS-czxOJ.mjs.map +1 -0
  62. package/dist/ClipboardModal-Dm9Z1sRK.mjs +84 -0
  63. package/dist/ClipboardModal-Dm9Z1sRK.mjs.map +1 -0
  64. package/dist/ClipboardModal-PbKpLGXl.mjs.map +1 -0
  65. package/dist/CommentBasicView-BIiF59xV.mjs +129 -0
  66. package/dist/CommentInput-BHP1nNsj.mjs.map +1 -0
  67. package/dist/CommentInput-BJTzH-_a.mjs.map +1 -0
  68. package/dist/CommentInput-BS_2bqYB.mjs.map +1 -0
  69. package/dist/CommentInput-Bp_Tu2c1.mjs.map +1 -0
  70. package/dist/CommentInput-C5ZDqAmV.mjs.map +1 -0
  71. package/dist/CommentInput-CnLukNZs.mjs.map +1 -0
  72. package/dist/CommentInput-DRmRcSy-.mjs.map +1 -0
  73. package/dist/CommentInput-yE5YpwPd.mjs +186 -0
  74. package/dist/CommentInput-yE5YpwPd.mjs.map +1 -0
  75. package/dist/CommentItem-B3jrVyCL.mjs.map +1 -0
  76. package/dist/CommentItem-B95BndID.mjs +232 -0
  77. package/dist/CommentItem-B95BndID.mjs.map +1 -0
  78. package/dist/CommentItem-BbVr_2V6.mjs.map +1 -0
  79. package/dist/CommentItem-CYzCxLtJ.mjs.map +1 -0
  80. package/dist/CommentItem-Czdd1oCE.mjs.map +1 -0
  81. package/dist/CommentItem-D39oSH9h.mjs.map +1 -0
  82. package/dist/CommentItem-DCzZsT7J.mjs.map +1 -0
  83. package/dist/CommentItem-DPieWrkL.mjs.map +1 -0
  84. package/dist/CommentItem-DmyqQ7Z6.mjs.map +1 -0
  85. package/dist/CommentItem-Vvd1NE_W.mjs.map +1 -0
  86. package/dist/CommentItem-vMMaiTCB.mjs.map +1 -0
  87. package/dist/CommentList-AZvaBFne.mjs.map +1 -0
  88. package/dist/CommentList-AwpVcpBT.mjs.map +1 -0
  89. package/dist/CommentList-BcFHoPtE.mjs.map +1 -0
  90. package/dist/CommentList-BiDfTOiB.mjs.map +1 -0
  91. package/dist/CommentList-Bms6vEQA.mjs.map +1 -0
  92. package/dist/CommentList-CeoSTTP_.mjs.map +1 -0
  93. package/dist/CommentList-Cn5TPBet.mjs.map +1 -0
  94. package/dist/CommentList-D0WPAZgF.mjs.map +1 -0
  95. package/dist/CommentList-Dj_kHO7R.mjs.map +1 -0
  96. package/dist/CommentList-Iyun_PoW.mjs.map +1 -0
  97. package/dist/CommentList-l9y2S0t4.mjs +302 -0
  98. package/dist/CommentList-l9y2S0t4.mjs.map +1 -0
  99. package/dist/CommentMoreActions-BAroeo8E.mjs.map +1 -0
  100. package/dist/CommentMoreActions-BLA7K7Wk.mjs.map +1 -0
  101. package/dist/CommentMoreActions-BR4CRRey.mjs.map +1 -0
  102. package/dist/CommentMoreActions-CrVm5-lX.mjs.map +1 -0
  103. package/dist/CommentMoreActions-DL8XqQRk.mjs.map +1 -0
  104. package/dist/CommentMoreActions-Q4pEU-LO.mjs.map +1 -0
  105. package/dist/CommentMoreActions-Tqomh5Yr.mjs.map +1 -0
  106. package/dist/CommentMoreActions-tL6Uqw1X.mjs +286 -0
  107. package/dist/CommentMoreActions-tL6Uqw1X.mjs.map +1 -0
  108. package/dist/CommentName-5ZjKhTYa.mjs.map +1 -0
  109. package/dist/CommentName-BXD3T5EZ.mjs.map +1 -0
  110. package/dist/CommentName-D6y51EaZ.mjs.map +1 -0
  111. package/dist/CommentName-Dg4--t-W.mjs +96 -0
  112. package/dist/CommentName-Dg4--t-W.mjs.map +1 -0
  113. package/dist/CommentName-Dlnmhpr3.mjs.map +1 -0
  114. package/dist/CommentName-DxVYb9pg.mjs.map +1 -0
  115. package/dist/CommentName-RfqW4AQ6.mjs.map +1 -0
  116. package/dist/CommentName-sDkjL2pg.mjs.map +1 -0
  117. package/dist/CommentParentInfo-8jbjym0a.mjs +64 -0
  118. package/dist/CommentParentInfo-8jbjym0a.mjs.map +1 -0
  119. package/dist/CommentParentInfo-9pG8GbXZ.mjs.map +1 -0
  120. package/dist/CommentParentInfo-C8OdTBnA.mjs.map +1 -0
  121. package/dist/CommentParentInfo-CR723vnS.mjs.map +1 -0
  122. package/dist/CommentParentInfo-CbW6NDS2.mjs.map +1 -0
  123. package/dist/CommentParentInfo-CmJmczbB.mjs.map +1 -0
  124. package/dist/CommentParentInfo-DNRID2W9.mjs.map +1 -0
  125. package/dist/CommentParentInfo-DvhjIGxr.mjs.map +1 -0
  126. package/dist/CommentParentInfo-Sr7QsGrE.mjs.map +1 -0
  127. package/dist/CommentPlayer-BAqa0jnq.mjs.map +1 -0
  128. package/dist/CommentPlayer-CbcrWm1W.mjs.map +1 -0
  129. package/dist/CommentPlayer-Ckqy3Uy2.mjs.map +1 -0
  130. package/dist/CommentPlayer-DG-Vm9oa.mjs.map +1 -0
  131. package/dist/CommentPlayer-DWWiCxmf.mjs.map +1 -0
  132. package/dist/CommentPlayer-RqOzQeht.mjs.map +1 -0
  133. package/dist/CommentPlayer-lesewf4s.mjs +86 -0
  134. package/dist/CommentPlayer-lesewf4s.mjs.map +1 -0
  135. package/dist/CommentSection-0qvo2Lir.mjs.map +1 -0
  136. package/dist/CommentSection-B1No9DSa.mjs.map +1 -0
  137. package/dist/CommentSection-BH0240SR.mjs.map +1 -0
  138. package/dist/CommentSection-BRUVbqPQ.mjs +141 -0
  139. package/dist/CommentSection-BRUVbqPQ.mjs.map +1 -0
  140. package/dist/CommentSection-BW11Kkmw.mjs.map +1 -0
  141. package/dist/CommentSection-CGRHE7GP.mjs.map +1 -0
  142. package/dist/CommentSection-CLvjEX6w.mjs.map +1 -0
  143. package/dist/CommentSection-CRfcutkV.mjs.map +1 -0
  144. package/dist/CommentSection-ClFb7E4o.mjs.map +1 -0
  145. package/dist/CommentSection-CsyPvXiH.mjs.map +1 -0
  146. package/dist/CommentSection-DPMfFBSU.mjs.map +1 -0
  147. package/dist/CommentStore-B68P59zw.mjs.map +1 -0
  148. package/dist/CommentStore-BTml7qHF.mjs.map +1 -0
  149. package/dist/CommentStore-BwTJgPTy.mjs.map +1 -0
  150. package/dist/CommentStore-C1k1GX5R.mjs.map +1 -0
  151. package/dist/CommentStore-C9bhViPU.mjs +355 -0
  152. package/dist/CommentStore-C9bhViPU.mjs.map +1 -0
  153. package/dist/CommentStore-Ce-VQB6Q.mjs.map +1 -0
  154. package/dist/CommentStore-WgCnFHHi.mjs.map +1 -0
  155. package/dist/ContractPreviewModal-B9TjRP6t.mjs.map +1 -0
  156. package/dist/ContractPreviewModal-BrB9KaNH.mjs.map +1 -0
  157. package/dist/ContractPreviewModal-DB0Uv_bC.mjs.map +1 -0
  158. package/dist/ContractPreviewModal-DDJNYv49.mjs +101 -0
  159. package/dist/ContractPreviewModal-DDJNYv49.mjs.map +1 -0
  160. package/dist/ContractPreviewModal-Dlnmubps.mjs.map +1 -0
  161. package/dist/ContractPreviewModal-Duqx-yDT.mjs.map +1 -0
  162. package/dist/ContractPreviewModal-nMZHO_9q.mjs.map +1 -0
  163. package/dist/DownloadPodcastButton-BDYJT1At.mjs.map +1 -0
  164. package/dist/DownloadPodcastButton-C9RI5S7T.mjs.map +1 -0
  165. package/dist/DownloadPodcastButton-CQFTSstH.mjs.map +1 -0
  166. package/dist/DownloadPodcastButton-CvO14B8j.mjs.map +1 -0
  167. package/dist/DownloadPodcastButton-DAH2mwB3.mjs.map +1 -0
  168. package/dist/DownloadPodcastButton-DXJGjfIn.mjs +53 -0
  169. package/dist/DownloadPodcastButton-DXJGjfIn.mjs.map +1 -0
  170. package/dist/DownloadPodcastButton-DunrZi_3.mjs.map +1 -0
  171. package/dist/EditCommentModal-BHmUXtiy.mjs.map +1 -0
  172. package/dist/EditCommentModal-Bs7nuqdq.mjs.map +1 -0
  173. package/dist/EditCommentModal-Czp-qN4t.mjs +162 -0
  174. package/dist/EditCommentModal-Czp-qN4t.mjs.map +1 -0
  175. package/dist/EditCommentModal-D90FgueB.mjs.map +1 -0
  176. package/dist/EditCommentModal-DXo4LVcx.mjs.map +1 -0
  177. package/dist/EditCommentModal-SelQld7b.mjs.map +1 -0
  178. package/dist/EditCommentModal-dnPijKAh.mjs.map +1 -0
  179. package/dist/EditCommentModal-ntxMdZu5.mjs.map +1 -0
  180. package/dist/EmissionGroupChooser-BWcOXb7T.mjs.map +1 -0
  181. package/dist/EmissionGroupChooser-CFP7ChoW.mjs.map +1 -0
  182. package/dist/EmissionGroupChooser-DArypPDT.mjs.map +1 -0
  183. package/dist/EmissionGroupChooser-Dy1hnlF_.mjs.map +1 -0
  184. package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs +82 -0
  185. package/dist/EmissionGroupChooser-ZdhmJ8Bp.mjs.map +1 -0
  186. package/dist/EmissionGroupChooser-ylVvYy2W.mjs.map +1 -0
  187. package/dist/EmissionGroupChooser-zSxcBqKm.mjs.map +1 -0
  188. package/dist/EmissionInlineList-BH4EgEIF.mjs.map +1 -0
  189. package/dist/EmissionInlineList-B_HOW86o.mjs.map +1 -0
  190. package/dist/EmissionInlineList-Bqvh02uF.mjs +188 -0
  191. package/dist/EmissionInlineList-Bqvh02uF.mjs.map +1 -0
  192. package/dist/EmissionInlineList-CBmzKWGR.mjs.map +1 -0
  193. package/dist/EmissionInlineList-CO8i9b1t.mjs.map +1 -0
  194. package/dist/EmissionInlineList-Ciye_EZb.mjs.map +1 -0
  195. package/dist/EmissionInlineList-nNNANPRs.mjs.map +1 -0
  196. package/dist/EmissionItem-4CsF574w.mjs.map +1 -0
  197. package/dist/EmissionItem-BhghTyeT.mjs.map +1 -0
  198. package/dist/EmissionItem-Bv7O9sQY.mjs.map +1 -0
  199. package/dist/EmissionItem-DC_Gc-Yw.mjs.map +1 -0
  200. package/dist/EmissionItem-DoBM2Zk2.mjs +183 -0
  201. package/dist/EmissionItem-DoBM2Zk2.mjs.map +1 -0
  202. package/dist/EmissionItem-M-lMW-jg.mjs.map +1 -0
  203. package/dist/EmissionItem-VxhfrUve.mjs.map +1 -0
  204. package/dist/EmissionItem-aVrOlqEx.mjs.map +1 -0
  205. package/dist/EmissionItem-imaccCr_.mjs.map +1 -0
  206. package/dist/EmissionList-BQ1mTIYn.mjs.map +1 -0
  207. package/dist/EmissionList-BRPN4Bbj.mjs.map +1 -0
  208. package/dist/EmissionList-BYIBfZWr.mjs.map +1 -0
  209. package/dist/EmissionList-Bh3ZlvV4.mjs +325 -0
  210. package/dist/EmissionList-Bh3ZlvV4.mjs.map +1 -0
  211. package/dist/EmissionList-CCfo5-ne.mjs.map +1 -0
  212. package/dist/EmissionList-CyEpkgR4.mjs.map +1 -0
  213. package/dist/EmissionList-DCeUp8TW.mjs.map +1 -0
  214. package/dist/EmissionList-DJydSpE4.mjs.map +1 -0
  215. package/dist/EmissionList-WYL-BhnJ.mjs.map +1 -0
  216. package/dist/EmissionPage-B2oy9fmW.mjs.map +1 -0
  217. package/dist/EmissionPage-BG6RIWP2.mjs +322 -0
  218. package/dist/EmissionPage-BG6RIWP2.mjs.map +1 -0
  219. package/dist/EmissionPage-BTfSMrZf.mjs.map +1 -0
  220. package/dist/EmissionPage-BpAJ1yOV.mjs.map +1 -0
  221. package/dist/EmissionPage-BzQpG8xt.mjs.map +1 -0
  222. package/dist/EmissionPage-Cf529LJJ.mjs.map +1 -0
  223. package/dist/EmissionPage-CwwNOUrQ.mjs.map +1 -0
  224. package/dist/EmissionPage-DCdIpmQo.mjs.map +1 -0
  225. package/dist/EmissionPage-DFnA4TXs.mjs.map +1 -0
  226. package/dist/EmissionPlayerItem-C3gZhSS3.mjs.map +1 -0
  227. package/dist/EmissionPlayerItem-CX-QVZ9s.mjs.map +1 -0
  228. package/dist/EmissionPlayerItem-CmghDKRx.mjs.map +1 -0
  229. package/dist/EmissionPlayerItem-CoeKMQgN.mjs.map +1 -0
  230. package/dist/EmissionPlayerItem-CvoVh-dC.mjs +167 -0
  231. package/dist/EmissionPlayerItem-CvoVh-dC.mjs.map +1 -0
  232. package/dist/EmissionPlayerItem-D1Ebv-_R.mjs.map +1 -0
  233. package/dist/EmissionPlayerItem-D6BXdTio.mjs.map +1 -0
  234. package/dist/EmissionPresentationItem-B2PbYGuW.mjs +78 -0
  235. package/dist/EmissionPresentationItem-B2PbYGuW.mjs.map +1 -0
  236. package/dist/EmissionPresentationItem-BQo96is9.mjs.map +1 -0
  237. package/dist/EmissionPresentationItem-CC_LJc4L.mjs.map +1 -0
  238. package/dist/EmissionPresentationItem-CQvXZ8NH.mjs.map +1 -0
  239. package/dist/EmissionPresentationItem-DGNyBwfe.mjs.map +1 -0
  240. package/dist/EmissionPresentationItem-hWnX_Niv.mjs.map +1 -0
  241. package/dist/EmissionPresentationItem-qoHKghk0.mjs.map +1 -0
  242. package/dist/EmissionPresentationList-B2NzHsFl.mjs.map +1 -0
  243. package/dist/EmissionPresentationList-BQfeuKW5.mjs.map +1 -0
  244. package/dist/EmissionPresentationList-BXNJsC5t.mjs +125 -0
  245. package/dist/EmissionPresentationList-BXNJsC5t.mjs.map +1 -0
  246. package/dist/EmissionPresentationList-CHFD5_a2.mjs.map +1 -0
  247. package/dist/EmissionPresentationList-D0TKOmTK.mjs.map +1 -0
  248. package/dist/EmissionPresentationList-Ddvukpya.mjs.map +1 -0
  249. package/dist/EmissionPresentationList-DnnKYjsb.mjs.map +1 -0
  250. package/dist/EmissionsPage-4WdKVeuO.mjs.map +1 -0
  251. package/dist/EmissionsPage-A04HnSMy.mjs.map +1 -0
  252. package/dist/EmissionsPage-B1arrsZ7.mjs +199 -0
  253. package/dist/EmissionsPage-B1arrsZ7.mjs.map +1 -0
  254. package/dist/EmissionsPage-B6SUW-vO.mjs.map +1 -0
  255. package/dist/EmissionsPage-BvF7n3Yb.mjs.map +1 -0
  256. package/dist/EmissionsPage-CNFwsWQZ.mjs.map +1 -0
  257. package/dist/EmissionsPage-CduOfydR.mjs.map +1 -0
  258. package/dist/EmissionsPage-Cf94lGLe.mjs.map +1 -0
  259. package/dist/EmissionsPage-O86N2cgU.mjs.map +1 -0
  260. package/dist/Error403Page-B9KNl0uP.mjs.map +1 -0
  261. package/dist/Error403Page-BLJFuPG2.mjs.map +1 -0
  262. package/dist/Error403Page-BmdiuBiS.mjs.map +1 -0
  263. package/dist/Error403Page-Bpi0DQqg.mjs.map +1 -0
  264. package/dist/Error403Page-Bv-DWyb6.mjs +69 -0
  265. package/dist/Error403Page-Bv-DWyb6.mjs.map +1 -0
  266. package/dist/Error403Page-D4NmqstJ.mjs.map +1 -0
  267. package/dist/Error403Page-DO2cfKKn.mjs.map +1 -0
  268. package/dist/ErrorMessage-D2XAzxpC.mjs +44 -0
  269. package/dist/FooterGarSection-77dYJO_c.mjs +71 -0
  270. package/dist/FooterGarSection-77dYJO_c.mjs.map +1 -0
  271. package/dist/FooterGarSection-D4m9HB_o.mjs.map +1 -0
  272. package/dist/FooterGarSection-DQpsC2u3.mjs.map +1 -0
  273. package/dist/FooterGarSection-DVMJjVGm.mjs.map +1 -0
  274. package/dist/FooterGarSection-JoXm35Vy.mjs.map +1 -0
  275. package/dist/FooterGarSection-SpmxTFrf.mjs.map +1 -0
  276. package/dist/FooterGarSection-t4vNUGXJ.mjs.map +1 -0
  277. package/dist/FooterSection-B1hXBiqI.mjs +242 -0
  278. package/dist/FooterSection-B1hXBiqI.mjs.map +1 -0
  279. package/dist/FooterSection-BAJcoVwL.mjs.map +1 -0
  280. package/dist/FooterSection-Bq3lB2TI.mjs.map +1 -0
  281. package/dist/FooterSection-C5CqAdjV.mjs.map +1 -0
  282. package/dist/FooterSection-CsQxaQcK.mjs.map +1 -0
  283. package/dist/FooterSection-DuQdO0l0.mjs.map +1 -0
  284. package/dist/FooterSection-XGEgsnuF.mjs.map +1 -0
  285. package/dist/FooterSection-mtZULuem.mjs.map +1 -0
  286. package/dist/HomeDropdown-87gJP-lN.mjs +110 -0
  287. package/dist/HomeDropdown-87gJP-lN.mjs.map +1 -0
  288. package/dist/HomeDropdown-CDNruBUp.mjs.map +1 -0
  289. package/dist/HomeDropdown-COZXjE97.mjs.map +1 -0
  290. package/dist/HomeDropdown-CbsZFW4n.mjs.map +1 -0
  291. package/dist/HomeDropdown-CjYjgO1n.mjs.map +1 -0
  292. package/dist/HomeDropdown-CxQn-jPC.mjs.map +1 -0
  293. package/dist/HomeDropdown-DEIBKTqy.mjs.map +1 -0
  294. package/dist/HomePage-1jBFTx4x.mjs.map +1 -0
  295. package/dist/HomePage-B5guMcf_.mjs.map +1 -0
  296. package/dist/HomePage-BapL4kmy.mjs.map +1 -0
  297. package/dist/HomePage-Brr9jjcQ.mjs +166 -0
  298. package/dist/HomePage-Brr9jjcQ.mjs.map +1 -0
  299. package/dist/HomePage-C8nsZZ_c.mjs.map +1 -0
  300. package/dist/HomePage-CP_NQ_PF.mjs.map +1 -0
  301. package/dist/HomePage-DnHbPmY9.mjs.map +1 -0
  302. package/dist/HomePage-Dxhi0hWO.mjs.map +1 -0
  303. package/dist/HomePage-MPbx0_Rn.mjs.map +1 -0
  304. package/dist/LikeSection-1P9-7FQ5.mjs +167 -0
  305. package/dist/LikeSection-1P9-7FQ5.mjs.map +1 -0
  306. package/dist/LikeSection-BTmkwQD8.mjs.map +1 -0
  307. package/dist/LikeSection-BUY3_ffV.mjs.map +1 -0
  308. package/dist/LikeSection-B_WX9gZJ.mjs.map +1 -0
  309. package/dist/LikeSection-BaUfRdSh.mjs.map +1 -0
  310. package/dist/LikeSection-CComV07M.mjs.map +1 -0
  311. package/dist/LikeSection-Cdz0IJU0.mjs.map +1 -0
  312. package/dist/LikeSection-U8EqRJ-f.mjs.map +1 -0
  313. package/dist/ListPaginate-8oxuFw7s.mjs.map +1 -0
  314. package/dist/ListPaginate-Brg8Wr3w.mjs.map +1 -0
  315. package/dist/ListPaginate-CEgFM1e5.mjs +202 -0
  316. package/dist/ListPaginate-CEgFM1e5.mjs.map +1 -0
  317. package/dist/ListPaginate-COITr_yE.mjs.map +1 -0
  318. package/dist/ListPaginate-DdKoq0e5.mjs.map +1 -0
  319. package/dist/ListPaginate-FHXkQDy8.mjs.map +1 -0
  320. package/dist/ListPaginate-zVukPB6N.mjs.map +1 -0
  321. package/dist/LiveHorizontalList-7JGEvrpb.mjs.map +1 -0
  322. package/dist/LiveHorizontalList-B1SBPu5Q.mjs.map +1 -0
  323. package/dist/LiveHorizontalList-B2xa65mW.mjs.map +1 -0
  324. package/dist/LiveHorizontalList-BUvldEM0.mjs.map +1 -0
  325. package/dist/LiveHorizontalList-C1hlGGKj.mjs.map +1 -0
  326. package/dist/LiveHorizontalList-CE9LoLWi.mjs.map +1 -0
  327. package/dist/LiveHorizontalList-DPNeqKTt.mjs.map +1 -0
  328. package/dist/LiveHorizontalList-G4GVIv-L.mjs +136 -0
  329. package/dist/LiveHorizontalList-G4GVIv-L.mjs.map +1 -0
  330. package/dist/LiveHorizontalList-X8_qayl-.mjs.map +1 -0
  331. package/dist/LiveList-BbuHhQob.mjs.map +1 -0
  332. package/dist/LiveList-BiODr6Zp.mjs +324 -0
  333. package/dist/LiveList-BiODr6Zp.mjs.map +1 -0
  334. package/dist/LiveList-CPABb0tx.mjs.map +1 -0
  335. package/dist/LiveList-CR-jqjcU.mjs.map +1 -0
  336. package/dist/LiveList-DSogJX1N.mjs.map +1 -0
  337. package/dist/LiveList-DkZ1l2Xt.mjs.map +1 -0
  338. package/dist/LiveList-Dr_7cqG_.mjs.map +1 -0
  339. package/dist/LiveList-dc4ARAq2.mjs.map +1 -0
  340. package/dist/LiveList-oosaj9TJ.mjs.map +1 -0
  341. package/dist/LivesPage-BHmymrRD.mjs.map +1 -0
  342. package/dist/LivesPage-BPwVGQdv.mjs.map +1 -0
  343. package/dist/LivesPage-BfhAMY15.mjs.map +1 -0
  344. package/dist/LivesPage-CAa4XsJW.mjs.map +1 -0
  345. package/dist/LivesPage-CHLwG5gj.mjs.map +1 -0
  346. package/dist/LivesPage-DGA3L9AW.mjs.map +1 -0
  347. package/dist/LivesPage-DIjoqz-K.mjs.map +1 -0
  348. package/dist/LivesPage-LF5yGp4X.mjs.map +1 -0
  349. package/dist/LivesPage-vu6VOIIy.mjs +76 -0
  350. package/dist/LivesPage-vu6VOIIy.mjs.map +1 -0
  351. package/dist/MapPage-BAdp_uyS.mjs.map +1 -0
  352. package/dist/MapPage-BUwYdsZz.mjs.map +1 -0
  353. package/dist/MapPage-CP0LRWUV.mjs.map +1 -0
  354. package/dist/MapPage-DmEdjPRe.mjs +303 -0
  355. package/dist/MapPage-DmEdjPRe.mjs.map +1 -0
  356. package/dist/MapPage-Dr-Lo2xc.mjs.map +1 -0
  357. package/dist/MapPage-DsNW6bfn.mjs.map +1 -0
  358. package/dist/MapPage-acIILN8p.mjs.map +1 -0
  359. package/dist/MobileMenu-B8KrEHS7.mjs.map +1 -0
  360. package/dist/MobileMenu-BBX4HKwH.mjs.map +1 -0
  361. package/dist/MobileMenu-Bz6UhLWC.mjs.map +1 -0
  362. package/dist/MobileMenu-C3Ti4eGr.mjs.map +1 -0
  363. package/dist/MobileMenu-C4rmAeeO.mjs.map +1 -0
  364. package/dist/MobileMenu-D_oFeqsX.mjs.map +1 -0
  365. package/dist/MobileMenu-xNe7tNdx.mjs +187 -0
  366. package/dist/MobileMenu-xNe7tNdx.mjs.map +1 -0
  367. package/dist/NewsletterModal-C0yXR-kQ.mjs.map +1 -0
  368. package/dist/NewsletterModal-Cdyqy09L.mjs.map +1 -0
  369. package/dist/NewsletterModal-D586dru6.mjs.map +1 -0
  370. package/dist/NewsletterModal-DNrt2N6S.mjs.map +1 -0
  371. package/dist/NewsletterModal-LqgD6CbF.mjs +82 -0
  372. package/dist/NewsletterModal-LqgD6CbF.mjs.map +1 -0
  373. package/dist/NewsletterModal-nsrnL-nQ.mjs.map +1 -0
  374. package/dist/NewsletterModal-uv5C55km.mjs.map +1 -0
  375. package/dist/OrganisationChooser-BiNMu3dn.mjs +190 -0
  376. package/dist/OrganisationChooser-BiNMu3dn.mjs.map +1 -0
  377. package/dist/OrganisationChooser-CTkEs5Lk.mjs.map +1 -0
  378. package/dist/OrganisationChooser-D2PVq36_.mjs.map +1 -0
  379. package/dist/OrganisationChooser-D4pgbdT9.mjs.map +1 -0
  380. package/dist/OrganisationChooser-Df1zfiwF.mjs.map +1 -0
  381. package/dist/OrganisationChooser-DsfCK19O.mjs.map +1 -0
  382. package/dist/OrganisationChooser-RBwmBNhI.mjs.map +1 -0
  383. package/dist/OrganisationChooserLight-BJwIMZ6G.mjs +84 -0
  384. package/dist/OrganisationChooserLight-BJwIMZ6G.mjs.map +1 -0
  385. package/dist/OrganisationChooserLight-BsmG2mng.mjs.map +1 -0
  386. package/dist/OrganisationChooserLight-C1VGVe3p.mjs.map +1 -0
  387. package/dist/OrganisationChooserLight-CP3_D7XA.mjs.map +1 -0
  388. package/dist/OrganisationChooserLight-DI8OeLkm.mjs.map +1 -0
  389. package/dist/OrganisationChooserLight-Dpi7pho1.mjs.map +1 -0
  390. package/dist/OrganisationChooserLight-DyisKiU3.mjs.map +1 -0
  391. package/dist/PageNotFound-5He9oK3T.mjs.map +1 -0
  392. package/dist/PageNotFound-BILSb0NS.mjs.map +1 -0
  393. package/dist/PageNotFound-C-HodkyM.mjs.map +1 -0
  394. package/dist/PageNotFound-CJmz7PmV.mjs.map +1 -0
  395. package/dist/PageNotFound-ChQf6Ngj.mjs +58 -0
  396. package/dist/PageNotFound-ChQf6Ngj.mjs.map +1 -0
  397. package/dist/PageNotFound-D8OzzGBQ.mjs.map +1 -0
  398. package/dist/PageNotFound-Dl4pr9W6.mjs.map +1 -0
  399. package/dist/ParticipantInlineList-BEnBWVWR.mjs.map +1 -0
  400. package/dist/ParticipantInlineList-C0nBiyWg.mjs.map +1 -0
  401. package/dist/ParticipantInlineList-CRBcuszy.mjs.map +1 -0
  402. package/dist/ParticipantInlineList-CcCfd9rJ.mjs +117 -0
  403. package/dist/ParticipantInlineList-CcCfd9rJ.mjs.map +1 -0
  404. package/dist/ParticipantInlineList-Cnqgz2lu.mjs.map +1 -0
  405. package/dist/ParticipantInlineList-CrEivwtQ.mjs.map +1 -0
  406. package/dist/ParticipantInlineList-DR2ZAj4I.mjs.map +1 -0
  407. package/dist/ParticipantInlineList-NKPnosX0.mjs.map +1 -0
  408. package/dist/ParticipantInlineList-tRiCRhZT.mjs.map +1 -0
  409. package/dist/ParticipantItem-BUux9Sod.mjs.map +1 -0
  410. package/dist/ParticipantItem-Bo3lOYet.mjs.map +1 -0
  411. package/dist/ParticipantItem-CQkg9uA2.mjs.map +1 -0
  412. package/dist/ParticipantItem-CYD8mFKj.mjs.map +1 -0
  413. package/dist/ParticipantItem-Ch4_98y_.mjs +138 -0
  414. package/dist/ParticipantItem-Ch4_98y_.mjs.map +1 -0
  415. package/dist/ParticipantItem-Duf1Dqiy.mjs.map +1 -0
  416. package/dist/ParticipantItem-Py7gMJEO.mjs.map +1 -0
  417. package/dist/ParticipantItem-cWDpHBmw.mjs.map +1 -0
  418. package/dist/ParticipantItem-sU3HvxsO.mjs.map +1 -0
  419. package/dist/ParticipantPage-BjbzvT79.mjs.map +1 -0
  420. package/dist/ParticipantPage-CFOmsr7J.mjs.map +1 -0
  421. package/dist/ParticipantPage-CJF_q763.mjs.map +1 -0
  422. package/dist/ParticipantPage-CayKwqJR.mjs.map +1 -0
  423. package/dist/ParticipantPage-Cc6c48Re.mjs.map +1 -0
  424. package/dist/ParticipantPage-D-47wU1r.mjs.map +1 -0
  425. package/dist/ParticipantPage-DhEts9Fb.mjs.map +1 -0
  426. package/dist/ParticipantPage-DkQssmwq.mjs.map +1 -0
  427. package/dist/ParticipantPage-DtAxvp2W.mjs +203 -0
  428. package/dist/ParticipantPage-DtAxvp2W.mjs.map +1 -0
  429. package/dist/ParticipantsPage-BQWxk0kn.mjs.map +1 -0
  430. package/dist/ParticipantsPage-ByDJNNQP.mjs.map +1 -0
  431. package/dist/ParticipantsPage-BzdpZCDO.mjs +262 -0
  432. package/dist/ParticipantsPage-BzdpZCDO.mjs.map +1 -0
  433. package/dist/ParticipantsPage-C0zCaBAN.mjs.map +1 -0
  434. package/dist/ParticipantsPage-CMlr61eA.mjs.map +1 -0
  435. package/dist/ParticipantsPage-COkwBD_g.mjs.map +1 -0
  436. package/dist/ParticipantsPage-CxOpIszl.mjs.map +1 -0
  437. package/dist/ParticipantsPage-DbCJ_xh8.mjs.map +1 -0
  438. package/dist/ParticipantsPage-lPPbUyo7.mjs.map +1 -0
  439. package/dist/PlayerAnonymousModal-7vjldHzL.mjs.map +1 -0
  440. package/dist/PlayerAnonymousModal-BKSUU6ln.mjs.map +1 -0
  441. package/dist/PlayerAnonymousModal-BKaI6E9o.mjs +84 -0
  442. package/dist/PlayerAnonymousModal-BKaI6E9o.mjs.map +1 -0
  443. package/dist/PlayerAnonymousModal-BtghKP8M.mjs.map +1 -0
  444. package/dist/PlayerAnonymousModal-Bz_vt6vZ.mjs.map +1 -0
  445. package/dist/PlayerAnonymousModal-CnKXq6ez.mjs.map +1 -0
  446. package/dist/PlayerAnonymousModal-ZqyARAv3.mjs.map +1 -0
  447. package/dist/PlayerCompact-B-WRNyqn.mjs +209 -0
  448. package/dist/PlayerCompact-B-WRNyqn.mjs.map +1 -0
  449. package/dist/PlayerCompact-B-x6J7cl.mjs.map +1 -0
  450. package/dist/PlayerCompact-BzcQcgqX.mjs.map +1 -0
  451. package/dist/PlayerCompact-CcRdWagH.mjs.map +1 -0
  452. package/dist/PlayerCompact-D2p0ZIHQ.mjs.map +1 -0
  453. package/dist/PlayerCompact-aIbQLF3h.mjs.map +1 -0
  454. package/dist/PlayerCompact-gWt2fJaQ.mjs.map +1 -0
  455. package/dist/PlayerComponent-BzlYi_Ow.mjs.map +1 -0
  456. package/dist/PlayerComponent-CBZxYTU1.mjs.map +1 -0
  457. package/dist/PlayerComponent-CUHTRJic.mjs +929 -0
  458. package/dist/PlayerComponent-CUHTRJic.mjs.map +1 -0
  459. package/dist/PlayerComponent-D2h1w9z5.mjs.map +1 -0
  460. package/dist/PlayerComponent-D4U1OmjB.mjs.map +1 -0
  461. package/dist/PlayerComponent-Dnqs6S8R.mjs.map +1 -0
  462. package/dist/PlayerComponent-ZTo5F4BH.mjs.map +1 -0
  463. package/dist/PlayerLarge-2ekd361u.mjs.map +1 -0
  464. package/dist/PlayerLarge-BisiuTbM.mjs.map +1 -0
  465. package/dist/PlayerLarge-Cujee7Yx.mjs.map +1 -0
  466. package/dist/PlayerLarge-DUX0TfTs.mjs.map +1 -0
  467. package/dist/PlayerLarge-DmbtYNNk.mjs.map +1 -0
  468. package/dist/PlayerLarge-Kt-pV6N_.mjs +190 -0
  469. package/dist/PlayerLarge-Kt-pV6N_.mjs.map +1 -0
  470. package/dist/PlayerLarge-qjnmbVOv.mjs.map +1 -0
  471. package/dist/PlayerPlayButton-BPsfZCY3.mjs.map +1 -0
  472. package/dist/PlayerPlayButton-CAElMmMV.mjs +400 -0
  473. package/dist/PlayerPlayButton-CAElMmMV.mjs.map +1 -0
  474. package/dist/PlayerPlayButton-CCjszcz0.mjs.map +1 -0
  475. package/dist/PlayerPlayButton-Ch13_VDS.mjs.map +1 -0
  476. package/dist/PlayerPlayButton-Cyrw_cga.mjs.map +1 -0
  477. package/dist/PlayerPlayButton-XWMj19eH.mjs.map +1 -0
  478. package/dist/PlayerPlayButton-pCY5tl9N.mjs.map +1 -0
  479. package/dist/PlayerProgressBar-BAOBWS7y.mjs.map +1 -0
  480. package/dist/PlayerProgressBar-Bx_i6wnH.mjs.map +1 -0
  481. package/dist/PlayerProgressBar-CwMFzYDi.mjs.map +1 -0
  482. package/dist/PlayerProgressBar-D-cNkJmu.mjs.map +1 -0
  483. package/dist/PlayerProgressBar-DWAyhBWx.mjs +86 -0
  484. package/dist/PlayerProgressBar-DWAyhBWx.mjs.map +1 -0
  485. package/dist/PlayerProgressBar-Drigrm0o.mjs.map +1 -0
  486. package/dist/PlayerProgressBar-MfOUpxGI.mjs.map +1 -0
  487. package/dist/PlayerStore-7LlyIvl0.mjs.map +1 -0
  488. package/dist/PlayerStore-7vhL8Npe.mjs +230 -0
  489. package/dist/PlayerStore-7vhL8Npe.mjs.map +1 -0
  490. package/dist/PlayerStore-B6kwXQZ8.mjs.map +1 -0
  491. package/dist/PlayerStore-BvkLLLst.mjs.map +1 -0
  492. package/dist/PlayerStore-C1tm0Oar.mjs.map +1 -0
  493. package/dist/PlayerStore-DZiDRLQN.mjs.map +1 -0
  494. package/dist/PlayerStore-kuZWcb-U.mjs.map +1 -0
  495. package/dist/PlayerVideo-7nnfCTlR.mjs.map +1 -0
  496. package/dist/PlayerVideo-BofTa3uM.mjs.map +1 -0
  497. package/dist/PlayerVideo-BtkR6jg2.mjs.map +1 -0
  498. package/dist/PlayerVideo-CG_vQWU0.mjs.map +1 -0
  499. package/dist/PlayerVideo-CJ9eefTe.mjs.map +1 -0
  500. package/dist/PlayerVideo-Dq7OHOig.mjs +72 -0
  501. package/dist/PlayerVideo-Dq7OHOig.mjs.map +1 -0
  502. package/dist/PlayerVideo-DqT3hB5y.mjs.map +1 -0
  503. package/dist/PlayerVideoDigiteka-BFLGMVo-.mjs.map +1 -0
  504. package/dist/PlayerVideoDigiteka-CAmI0Em3.mjs.map +1 -0
  505. package/dist/PlayerVideoDigiteka-Cy0L4YOd.mjs.map +1 -0
  506. package/dist/PlayerVideoDigiteka-DnNkrWIT.mjs.map +1 -0
  507. package/dist/PlayerVideoDigiteka-Dt73T6Qs.mjs.map +1 -0
  508. package/dist/PlayerVideoDigiteka-Dud6Y4wc.mjs.map +1 -0
  509. package/dist/PlayerVideoDigiteka-pNFWNrON.mjs +102 -0
  510. package/dist/PlayerVideoDigiteka-pNFWNrON.mjs.map +1 -0
  511. package/dist/PlayerVideoHls-BDDiwxGb.mjs.map +1 -0
  512. package/dist/PlayerVideoHls-CE2SIkEn.mjs +232 -0
  513. package/dist/PlayerVideoHls-CE2SIkEn.mjs.map +1 -0
  514. package/dist/PlayerVideoHls-CoK72Ry1.mjs.map +1 -0
  515. package/dist/PlayerVideoHls-D-nrZlVs.mjs.map +1 -0
  516. package/dist/PlayerVideoHls-cotysRp5.mjs.map +1 -0
  517. package/dist/PlayerVideoHls-jOa02CyD.mjs.map +1 -0
  518. package/dist/PlayerVideoHls-k_3vIV-3.mjs.map +1 -0
  519. package/dist/PlaylistPage-BZx9ojty.mjs.map +1 -0
  520. package/dist/PlaylistPage-CBWEAkDm.mjs.map +1 -0
  521. package/dist/PlaylistPage-Cb5ukqXZ.mjs +228 -0
  522. package/dist/PlaylistPage-Cb5ukqXZ.mjs.map +1 -0
  523. package/dist/PlaylistPage-Cv15l4gs.mjs.map +1 -0
  524. package/dist/PlaylistPage-D6OVQKg7.mjs.map +1 -0
  525. package/dist/PlaylistPage-D__PNCOf.mjs.map +1 -0
  526. package/dist/PlaylistPage-Jv5rPWTt.mjs.map +1 -0
  527. package/dist/PlaylistPage-Le2dLhgP.mjs.map +1 -0
  528. package/dist/PlaylistPage-Tbq77bN4.mjs.map +1 -0
  529. package/dist/PlaylistsPage-BSD4BZop.mjs.map +1 -0
  530. package/dist/PlaylistsPage-C_aZ8Lzc.mjs.map +1 -0
  531. package/dist/PlaylistsPage-D8YgTvxe.mjs.map +1 -0
  532. package/dist/PlaylistsPage-DAVADzhL.mjs +395 -0
  533. package/dist/PlaylistsPage-DAVADzhL.mjs.map +1 -0
  534. package/dist/PlaylistsPage-DkkPMbPD.mjs.map +1 -0
  535. package/dist/PlaylistsPage-MqIyXNlI.mjs.map +1 -0
  536. package/dist/PlaylistsPage-W-eroSMe.mjs.map +1 -0
  537. package/dist/PodcastFilterList-CPtCzU9P.mjs.map +1 -0
  538. package/dist/PodcastFilterList-CmqrA2oC.mjs +254 -0
  539. package/dist/PodcastFilterList-CmqrA2oC.mjs.map +1 -0
  540. package/dist/PodcastFilterList-Co_yncww.mjs.map +1 -0
  541. package/dist/PodcastFilterList-CqqSn_UR.mjs.map +1 -0
  542. package/dist/PodcastFilterList-CsN5tLJ5.mjs.map +1 -0
  543. package/dist/PodcastFilterList-DluBCeUz.mjs.map +1 -0
  544. package/dist/PodcastFilterList-DooOZgn6.mjs.map +1 -0
  545. package/dist/PodcastFilterList-Dt-zeKoY.mjs.map +1 -0
  546. package/dist/PodcastFilterList-ScEWo73F.mjs.map +1 -0
  547. package/dist/PodcastImage-BeXlZu-M.mjs.map +1 -0
  548. package/dist/PodcastImage-C0y1-_Ef.mjs.map +1 -0
  549. package/dist/PodcastImage-C21I_lnU.mjs.map +1 -0
  550. package/dist/PodcastImage-CWKY72t1.mjs.map +1 -0
  551. package/dist/PodcastImage-CbOp5HBb.mjs.map +1 -0
  552. package/dist/PodcastImage-DamlmvBn.mjs.map +1 -0
  553. package/dist/PodcastImage-DsU_qbcI.mjs.map +1 -0
  554. package/dist/PodcastImage-FhC5F4MR.mjs +174 -0
  555. package/dist/PodcastImage-FhC5F4MR.mjs.map +1 -0
  556. package/dist/PodcastImage-fBx9FmaM.mjs.map +1 -0
  557. package/dist/PodcastInlineList-4uf55RGp.mjs.map +1 -0
  558. package/dist/PodcastInlineList-BFe-4rfk.mjs.map +1 -0
  559. package/dist/PodcastInlineList-BP-eXViR.mjs.map +1 -0
  560. package/dist/PodcastInlineList-CDumc8n6.mjs +138 -0
  561. package/dist/PodcastInlineList-CDumc8n6.mjs.map +1 -0
  562. package/dist/PodcastInlineList-CMLSSgCl.mjs.map +1 -0
  563. package/dist/PodcastInlineList-CoLPUU1O.mjs.map +1 -0
  564. package/dist/PodcastInlineList-DVEOw_jZ.mjs.map +1 -0
  565. package/dist/PodcastInlineList-NuchUq3F.mjs.map +1 -0
  566. package/dist/PodcastInlineList-TrVj1WsC.mjs.map +1 -0
  567. package/dist/PodcastInlineListTemplate-Bif2XHIx.mjs.map +1 -0
  568. package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs +233 -0
  569. package/dist/PodcastInlineListTemplate-CB3uZjwS.mjs.map +1 -0
  570. package/dist/PodcastInlineListTemplate-CiXIYnv7.mjs.map +1 -0
  571. package/dist/PodcastInlineListTemplate-CpLRagzE.mjs.map +1 -0
  572. package/dist/PodcastInlineListTemplate-D9_3zHeM.mjs.map +1 -0
  573. package/dist/PodcastInlineListTemplate-DJSNNFOh.mjs.map +1 -0
  574. package/dist/PodcastInlineListTemplate-PnoLyihJ.mjs.map +1 -0
  575. package/dist/PodcastIsPlaying-640MMTTV.mjs.map +1 -0
  576. package/dist/PodcastIsPlaying-BfKDPivV.mjs.map +1 -0
  577. package/dist/PodcastIsPlaying-CjnQmJ0x.mjs.map +1 -0
  578. package/dist/PodcastIsPlaying-DMXKbEjS.mjs.map +1 -0
  579. package/dist/PodcastIsPlaying-DpUjmLlW.mjs.map +1 -0
  580. package/dist/PodcastIsPlaying-DqnPEYSJ.mjs +30 -0
  581. package/dist/PodcastIsPlaying-DqnPEYSJ.mjs.map +1 -0
  582. package/dist/PodcastIsPlaying-j9a5pcJu.mjs.map +1 -0
  583. package/dist/PodcastItem-B2omNjKA.mjs.map +1 -0
  584. package/dist/PodcastItem-BTKSsuZY.mjs.map +1 -0
  585. package/dist/PodcastItem-BUe2ZVg7.mjs.map +1 -0
  586. package/dist/PodcastItem-DlzucX-c.mjs.map +1 -0
  587. package/dist/PodcastItem-DqcitfgD.mjs.map +1 -0
  588. package/dist/PodcastItem-_eKhUVGk.mjs.map +1 -0
  589. package/dist/PodcastItem-a9u75Wpq.mjs.map +1 -0
  590. package/dist/PodcastItem-cssDzcpa.mjs.map +1 -0
  591. package/dist/PodcastItem-rF33x3wp.mjs +287 -0
  592. package/dist/PodcastItem-rF33x3wp.mjs.map +1 -0
  593. package/dist/PodcastList-3w_q0Qic.mjs.map +1 -0
  594. package/dist/PodcastList-5vsIa70L.mjs.map +1 -0
  595. package/dist/PodcastList-ATGmVU1-.mjs.map +1 -0
  596. package/dist/PodcastList-B20GtO2V.mjs.map +1 -0
  597. package/dist/PodcastList-BSKlfx8q.mjs.map +1 -0
  598. package/dist/PodcastList-BV902l6U.mjs.map +1 -0
  599. package/dist/PodcastList-BWYRh4OU.mjs.map +1 -0
  600. package/dist/PodcastList-BewxderG.mjs +330 -0
  601. package/dist/PodcastList-BewxderG.mjs.map +1 -0
  602. package/dist/PodcastList-CHOZ5sWV.mjs.map +1 -0
  603. package/dist/PodcastList-CMATMgPs.mjs.map +1 -0
  604. package/dist/PodcastList-CzAh_ZPT.mjs.map +1 -0
  605. package/dist/PodcastList-DYLAwHbt.mjs +182 -0
  606. package/dist/PodcastList-DYLAwHbt.mjs.map +1 -0
  607. package/dist/PodcastList-Dxg8A4ui.mjs.map +1 -0
  608. package/dist/PodcastList-NQ0QF4lo.mjs.map +1 -0
  609. package/dist/PodcastList-TLe8ef1p.mjs.map +1 -0
  610. package/dist/PodcastList-aeKPA2Pa.mjs.map +1 -0
  611. package/dist/PodcastList-w8j9w3A3.mjs.map +1 -0
  612. package/dist/PodcastList-zLoXrLjM.mjs.map +1 -0
  613. package/dist/PodcastPage-7TvhRhNY.mjs.map +1 -0
  614. package/dist/PodcastPage-9LBDV577.mjs.map +1 -0
  615. package/dist/PodcastPage-ASnAv0Hy.mjs.map +1 -0
  616. package/dist/PodcastPage-B8AKWW1N.mjs.map +1 -0
  617. package/dist/PodcastPage-BHnY1AyE.mjs.map +1 -0
  618. package/dist/PodcastPage-BOuG5LyA.mjs.map +1 -0
  619. package/dist/PodcastPage-BvRTyXh8.mjs.map +1 -0
  620. package/dist/PodcastPage-BwzigA-q.mjs.map +1 -0
  621. package/dist/PodcastPage-CQvLnC1G.mjs.map +1 -0
  622. package/dist/PodcastPage-C_8OMBPC.mjs.map +1 -0
  623. package/dist/PodcastPage-C_Eg4Zbc.mjs.map +1 -0
  624. package/dist/PodcastPage-CbwfzcE9.mjs.map +1 -0
  625. package/dist/PodcastPage-CgjKlSvp.mjs.map +1 -0
  626. package/dist/PodcastPage-CrF52JIi.mjs.map +1 -0
  627. package/dist/PodcastPage-Culwyrcp.mjs.map +1 -0
  628. package/dist/PodcastPage-D8kQEHyz.mjs.map +1 -0
  629. package/dist/PodcastPage-DPXR-5-z.mjs.map +1 -0
  630. package/dist/PodcastPage-DStxOLRd.mjs.map +1 -0
  631. package/dist/PodcastPage-DcvotAob.mjs.map +1 -0
  632. package/dist/PodcastPage-DlZWXScN.mjs.map +1 -0
  633. package/dist/PodcastPage-DoUwareI.mjs.map +1 -0
  634. package/dist/PodcastPage-NMZSFjQm.mjs +756 -0
  635. package/dist/PodcastPage-NMZSFjQm.mjs.map +1 -0
  636. package/dist/PodcastPage-V1XY5ICb.mjs.map +1 -0
  637. package/dist/PodcastPage-fC-hXh-c.mjs.map +1 -0
  638. package/dist/PodcastPage-k8D3U82P.mjs.map +1 -0
  639. package/dist/PodcastPage-wTylVERN.mjs.map +1 -0
  640. package/dist/PodcastPage-xjk1WBAv.mjs.map +1 -0
  641. package/dist/PodcastPlayBar-BEyKbC22.mjs.map +1 -0
  642. package/dist/PodcastPlayBar-Cggx8A-d.mjs.map +1 -0
  643. package/dist/PodcastPlayBar-DHIXjuJO.mjs.map +1 -0
  644. package/dist/PodcastPlayBar-D_b7qme_.mjs +83 -0
  645. package/dist/PodcastPlayBar-D_b7qme_.mjs.map +1 -0
  646. package/dist/PodcastPlayBar-N3TwfXUo.mjs.map +1 -0
  647. package/dist/PodcastPlayBar-_e0LCcGd.mjs.map +1 -0
  648. package/dist/PodcastPlayBar-lojf3mqg.mjs.map +1 -0
  649. package/dist/PodcastPlayBasicButton-BoFyO-5v.mjs.map +1 -0
  650. package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs +72 -0
  651. package/dist/PodcastPlayBasicButton-Br9wqAv7.mjs.map +1 -0
  652. package/dist/PodcastPlayBasicButton-Ca7KCiwF.mjs.map +1 -0
  653. package/dist/PodcastPlayBasicButton-Cot0Hw7f.mjs.map +1 -0
  654. package/dist/PodcastPlayBasicButton-CuRUgSxj.mjs.map +1 -0
  655. package/dist/PodcastPlayBasicButton-D2RrMC3u.mjs.map +1 -0
  656. package/dist/PodcastPlayBasicButton-KJRkgfDO.mjs.map +1 -0
  657. package/dist/PodcastPlayButton-BE6hVdpb.mjs.map +1 -0
  658. package/dist/PodcastPlayButton-BL06-DcD.mjs.map +1 -0
  659. package/dist/PodcastPlayButton-CIlav88-.mjs.map +1 -0
  660. package/dist/PodcastPlayButton-CfbXWla-.mjs.map +1 -0
  661. package/dist/PodcastPlayButton-CkUupm2O.mjs.map +1 -0
  662. package/dist/PodcastPlayButton-Cwh7588y.mjs.map +1 -0
  663. package/dist/PodcastPlayButton-Dgv5W72_.mjs +236 -0
  664. package/dist/PodcastPlayButton-Dgv5W72_.mjs.map +1 -0
  665. package/dist/PodcastPlayButton-DwKPWtV0.mjs.map +1 -0
  666. package/dist/PodcastPlayButton-vspf9u4U.mjs.map +1 -0
  667. package/dist/PodcastPlaylistInlineList-B3cji_kZ.mjs.map +1 -0
  668. package/dist/PodcastPlaylistInlineList-BdfZY6Bi.mjs.map +1 -0
  669. package/dist/PodcastPlaylistInlineList-BxUy7Yg7.mjs.map +1 -0
  670. package/dist/PodcastPlaylistInlineList-C3khc2NN.mjs.map +1 -0
  671. package/dist/PodcastPlaylistInlineList-CQF7SZ6j.mjs.map +1 -0
  672. package/dist/PodcastPlaylistInlineList-D8VLeO5u.mjs.map +1 -0
  673. package/dist/PodcastPlaylistInlineList-D9PS9Z2X.mjs.map +1 -0
  674. package/dist/PodcastPlaylistInlineList-WISkRxKn.mjs.map +1 -0
  675. package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs +115 -0
  676. package/dist/PodcastPlaylistInlineList-YDhy9TvO.mjs.map +1 -0
  677. package/dist/PodcastPresentationList-6ZP8AnoX.mjs.map +1 -0
  678. package/dist/PodcastPresentationList-AP-ZURmT.mjs.map +1 -0
  679. package/dist/PodcastPresentationList-BC6cS2jK.mjs.map +1 -0
  680. package/dist/PodcastPresentationList-BfakxuQt.mjs.map +1 -0
  681. package/dist/PodcastPresentationList-CfsRs5zo.mjs.map +1 -0
  682. package/dist/PodcastPresentationList-Crr-1ywF.mjs.map +1 -0
  683. package/dist/PodcastPresentationList-Cvn11sIu.mjs.map +1 -0
  684. package/dist/PodcastPresentationList-DxUwH3dU.mjs +200 -0
  685. package/dist/PodcastPresentationList-DxUwH3dU.mjs.map +1 -0
  686. package/dist/PodcastPresentationList-V-rJhaqG.mjs.map +1 -0
  687. package/dist/PodcastProgressBar-BBwzkXWn.mjs.map +1 -0
  688. package/dist/PodcastProgressBar-C2Kbdsds.mjs.map +1 -0
  689. package/dist/PodcastProgressBar-CxWDWvG2.mjs.map +1 -0
  690. package/dist/PodcastProgressBar-DY-PA2H4.mjs.map +1 -0
  691. package/dist/PodcastProgressBar-D_togvfJ.mjs +98 -0
  692. package/dist/PodcastProgressBar-D_togvfJ.mjs.map +1 -0
  693. package/dist/PodcastProgressBar-lNHC70cW.mjs.map +1 -0
  694. package/dist/PodcastProgressBar-n2ASk6Jr.mjs.map +1 -0
  695. package/dist/PodcastRawTranscript-BXaXSOG0.mjs.map +1 -0
  696. package/dist/PodcastRawTranscript-Bp-DCioJ.mjs.map +1 -0
  697. package/dist/PodcastRawTranscript-CHnE4Q9g.mjs +184 -0
  698. package/dist/PodcastRawTranscript-CHnE4Q9g.mjs.map +1 -0
  699. package/dist/PodcastRawTranscript-Cl5YD7_I.mjs.map +1 -0
  700. package/dist/PodcastRawTranscript-D2eMeI5k.mjs.map +1 -0
  701. package/dist/PodcastRawTranscript-DyHxxFrC.mjs.map +1 -0
  702. package/dist/PodcastRawTranscript-yTs0EUKz.mjs.map +1 -0
  703. package/dist/PodcastRubriqueList-BSqs8IWw.mjs.map +1 -0
  704. package/dist/PodcastRubriqueList-BoQ3r-hl.mjs.map +1 -0
  705. package/dist/PodcastRubriqueList-D6UwV3RM.mjs.map +1 -0
  706. package/dist/PodcastRubriqueList-DHWcZB1k.mjs.map +1 -0
  707. package/dist/PodcastRubriqueList-DQhU9j2T.mjs.map +1 -0
  708. package/dist/PodcastRubriqueList-DqHgAzXW.mjs +83 -0
  709. package/dist/PodcastRubriqueList-DqHgAzXW.mjs.map +1 -0
  710. package/dist/PodcastRubriqueList-MKouh9FT.mjs.map +1 -0
  711. package/dist/PodcastSwiperList-BIlusV0y.mjs.map +1 -0
  712. package/dist/PodcastSwiperList-BcOEmb2L.mjs.map +1 -0
  713. package/dist/PodcastSwiperList-Bcl4Sr87.mjs.map +1 -0
  714. package/dist/PodcastSwiperList-CHiE_5Np.mjs.map +1 -0
  715. package/dist/PodcastSwiperList-CW7KHrXE.mjs.map +1 -0
  716. package/dist/PodcastSwiperList-CZ0_rjSj.mjs.map +1 -0
  717. package/dist/PodcastSwiperList-DlOf7qj-.mjs.map +1 -0
  718. package/dist/PodcastSwiperList-DwAm99HI.mjs.map +1 -0
  719. package/dist/PodcastSwiperList-PoinXUn2.mjs +219 -0
  720. package/dist/PodcastSwiperList-PoinXUn2.mjs.map +1 -0
  721. package/dist/PodcastmakerHeader-3PeM3wyF.mjs.map +1 -0
  722. package/dist/PodcastmakerHeader-BC7yZTRo.mjs.map +1 -0
  723. package/dist/PodcastmakerHeader-BVeOsj4_.mjs.map +1 -0
  724. package/dist/PodcastmakerHeader-C-vkFOcc.mjs.map +1 -0
  725. package/dist/PodcastmakerHeader-CLPAECC5.mjs.map +1 -0
  726. package/dist/PodcastmakerHeader-CTOmo93E.mjs +58 -0
  727. package/dist/PodcastmakerHeader-CTOmo93E.mjs.map +1 -0
  728. package/dist/PodcastmakerHeader-DOD21_py.mjs.map +1 -0
  729. package/dist/PodcastsPage-234XpWuj.mjs.map +1 -0
  730. package/dist/PodcastsPage-B1JUH1co.mjs +217 -0
  731. package/dist/PodcastsPage-B1JUH1co.mjs.map +1 -0
  732. package/dist/PodcastsPage-BNc0uI4a.mjs.map +1 -0
  733. package/dist/PodcastsPage-C601uah1.mjs.map +1 -0
  734. package/dist/PodcastsPage-CJHRB5IS.mjs.map +1 -0
  735. package/dist/PodcastsPage-Cp5g1lhW.mjs.map +1 -0
  736. package/dist/PodcastsPage-D7jjbbx6.mjs.map +1 -0
  737. package/dist/PodcastsPage-T8kmqhD6.mjs.map +1 -0
  738. package/dist/PodcastsPage-xZGU98Tj.mjs.map +1 -0
  739. package/dist/ProductorSearch-CTMYAxKp.mjs.map +1 -0
  740. package/dist/ProductorSearch-CeZ-1cW7.mjs.map +1 -0
  741. package/dist/ProductorSearch-D4fWcKog.mjs.map +1 -0
  742. package/dist/ProductorSearch-DCH0mawe.mjs.map +1 -0
  743. package/dist/ProductorSearch-DEQwq8Qp.mjs.map +1 -0
  744. package/dist/ProductorSearch-XQ1jGYQw.mjs +161 -0
  745. package/dist/ProductorSearch-XQ1jGYQw.mjs.map +1 -0
  746. package/dist/ProductorSearch-xyzEQY1e.mjs.map +1 -0
  747. package/dist/ProgressBar-6lP5chZK.mjs.map +1 -0
  748. package/dist/ProgressBar-Bt-AMFne.mjs.map +1 -0
  749. package/dist/ProgressBar-ButRLZKn.mjs.map +1 -0
  750. package/dist/ProgressBar-CyddCXNJ.mjs +158 -0
  751. package/dist/ProgressBar-CyddCXNJ.mjs.map +1 -0
  752. package/dist/ProgressBar-DSMOh1wT.mjs.map +1 -0
  753. package/dist/ProgressBar-NFkInTLb.mjs.map +1 -0
  754. package/dist/ProgressBar-Z51T1XCf.mjs.map +1 -0
  755. package/dist/QrCode-20OgUzN2.mjs.map +1 -0
  756. package/dist/QrCode-6ZkgX9Ta.mjs +177 -0
  757. package/dist/QrCode-6ZkgX9Ta.mjs.map +1 -0
  758. package/dist/QrCode-Bc2uQc55.mjs.map +1 -0
  759. package/dist/QrCode-CeV2SpH9.mjs.map +1 -0
  760. package/dist/QrCode-Do-uF9l1.mjs.map +1 -0
  761. package/dist/QrCode-LWqUFrdO.mjs.map +1 -0
  762. package/dist/QrCode-pbaY5gW1.mjs.map +1 -0
  763. package/dist/QrCodeModal-BHfET22K.mjs.map +1 -0
  764. package/dist/QrCodeModal-BNVatZWE.mjs +64 -0
  765. package/dist/QrCodeModal-BNVatZWE.mjs.map +1 -0
  766. package/dist/QrCodeModal-DFfNl0fW.mjs.map +1 -0
  767. package/dist/QrCodeModal-DemrNflK.mjs.map +1 -0
  768. package/dist/QrCodeModal-Do265wVe.mjs.map +1 -0
  769. package/dist/QrCodeModal-NiYU4p1I.mjs.map +1 -0
  770. package/dist/QrCodeModal-wRXhUjGf.mjs.map +1 -0
  771. package/dist/RadioCurrently-BFAEfLFX.mjs.map +1 -0
  772. package/dist/RadioCurrently-Bf-Pg-J_.mjs +112 -0
  773. package/dist/RadioCurrently-Bf-Pg-J_.mjs.map +1 -0
  774. package/dist/RadioCurrently-CXjYjO3m.mjs.map +1 -0
  775. package/dist/RadioCurrently-CZiABA2W.mjs.map +1 -0
  776. package/dist/RadioCurrently-CoOjRUyE.mjs.map +1 -0
  777. package/dist/RadioCurrently-JKL0a_SK.mjs.map +1 -0
  778. package/dist/RadioCurrently-hx7bw94i.mjs.map +1 -0
  779. package/dist/RadioHistory-BF-qlL2M.mjs.map +1 -0
  780. package/dist/RadioHistory-Bf2QIRr6.mjs.map +1 -0
  781. package/dist/RadioHistory-C7tOpvUk.mjs +139 -0
  782. package/dist/RadioHistory-C7tOpvUk.mjs.map +1 -0
  783. package/dist/RadioHistory-CQCcGdcs.mjs.map +1 -0
  784. package/dist/RadioHistory-D-xw6ZDO.mjs.map +1 -0
  785. package/dist/RadioHistory-D6niGKEI.mjs.map +1 -0
  786. package/dist/RadioHistory-mkQlj0G1.mjs.map +1 -0
  787. package/dist/RadioImage-6T5CmnKh.mjs.map +1 -0
  788. package/dist/RadioImage-BUvykGlw.mjs.map +1 -0
  789. package/dist/RadioImage-BrYBuloV.mjs.map +1 -0
  790. package/dist/RadioImage-CMtQaqiz.mjs.map +1 -0
  791. package/dist/RadioImage-CiIj65_a.mjs +85 -0
  792. package/dist/RadioImage-CiIj65_a.mjs.map +1 -0
  793. package/dist/RadioImage-DVwQNtMT.mjs.map +1 -0
  794. package/dist/RadioImage-XqoEXwZv.mjs.map +1 -0
  795. package/dist/RadioList-BotOeNwF.mjs +125 -0
  796. package/dist/RadioList-BotOeNwF.mjs.map +1 -0
  797. package/dist/RadioList-CjP-UN50.mjs.map +1 -0
  798. package/dist/RadioList-CroBp4d5.mjs.map +1 -0
  799. package/dist/RadioList-DUkyj-3T.mjs.map +1 -0
  800. package/dist/RadioList-Dp5kjFiW.mjs.map +1 -0
  801. package/dist/RadioList-DpSiNcDT.mjs.map +1 -0
  802. package/dist/RadioList-k2aCdh24.mjs.map +1 -0
  803. package/dist/RadioPage-BE4wCcA2.mjs.map +1 -0
  804. package/dist/RadioPage-BeTgvUPE.mjs.map +1 -0
  805. package/dist/RadioPage-CcPPJUmX.mjs +137 -0
  806. package/dist/RadioPage-CcPPJUmX.mjs.map +1 -0
  807. package/dist/RadioPage-Cqc1x0Ld.mjs.map +1 -0
  808. package/dist/RadioPage-Cvr1JY6T.mjs.map +1 -0
  809. package/dist/RadioPage-DwYxk45W.mjs.map +1 -0
  810. package/dist/RadioPage-IflTSXFQ.mjs.map +1 -0
  811. package/dist/RadioPlanning-BHklVGWm.mjs.map +1 -0
  812. package/dist/RadioPlanning-C5dPMP4_.mjs.map +1 -0
  813. package/dist/RadioPlanning-C8MtglrL.mjs +290 -0
  814. package/dist/RadioPlanning-C8MtglrL.mjs.map +1 -0
  815. package/dist/RadioPlanning-DCyp5l76.mjs.map +1 -0
  816. package/dist/RadioPlanning-Iw9vA8fj.mjs.map +1 -0
  817. package/dist/RadioPlanning-MiAA82P8.mjs.map +1 -0
  818. package/dist/RadioPlanning-zfc80hVQ.mjs.map +1 -0
  819. package/dist/RadioProgressBar-1PEu9PP_.mjs +67 -0
  820. package/dist/RadioProgressBar-1PEu9PP_.mjs.map +1 -0
  821. package/dist/RadioProgressBar-B1zJqxTH.mjs.map +1 -0
  822. package/dist/RadioProgressBar-BE7xpKuz.mjs.map +1 -0
  823. package/dist/RadioProgressBar-C7Lk7NWa.mjs.map +1 -0
  824. package/dist/RadioProgressBar-C7syfJeD.mjs.map +1 -0
  825. package/dist/RadioProgressBar-DKaDO8E3.mjs.map +1 -0
  826. package/dist/RadioProgressBar-DUwPmtUM.mjs.map +1 -0
  827. package/dist/RecaptchaModal-B4NgHMv8.mjs.map +1 -0
  828. package/dist/RecaptchaModal-Bh0R-LJQ.mjs.map +1 -0
  829. package/dist/RecaptchaModal-CHFdC9Sq.mjs +148 -0
  830. package/dist/RecaptchaModal-CHFdC9Sq.mjs.map +1 -0
  831. package/dist/RecaptchaModal-DDN7f19l.mjs.map +1 -0
  832. package/dist/RecaptchaModal-DZgBJsqv.mjs.map +1 -0
  833. package/dist/RecaptchaModal-D_Jsgg1Y.mjs.map +1 -0
  834. package/dist/RecaptchaModal-DeXzozPd.mjs.map +1 -0
  835. package/dist/ReportAbuseModal-BNmgx7J8.mjs.map +1 -0
  836. package/dist/ReportAbuseModal-CGdwy6AX.mjs.map +1 -0
  837. package/dist/ReportAbuseModal-CRcYir1i.mjs +134 -0
  838. package/dist/ReportAbuseModal-CRcYir1i.mjs.map +1 -0
  839. package/dist/ReportAbuseModal-Cd05gQRG.mjs.map +1 -0
  840. package/dist/ReportAbuseModal-DZZSuWJL.mjs.map +1 -0
  841. package/dist/ReportAbuseModal-Dhr0wNeN.mjs.map +1 -0
  842. package/dist/ReportAbuseModal-Jkua96nx.mjs.map +1 -0
  843. package/dist/ReportAbuseModal-fW3qVnqB.mjs.map +1 -0
  844. package/dist/RightsIndicator-BS3j-fVM.mjs.map +1 -0
  845. package/dist/RightsIndicator-BfnK3wyp.mjs.map +1 -0
  846. package/dist/RightsIndicator-CIvYsls2.mjs.map +1 -0
  847. package/dist/RightsIndicator-DCXOdtYK.mjs.map +1 -0
  848. package/dist/RightsIndicator-DeX5rK6p.mjs +124 -0
  849. package/dist/RightsIndicator-DeX5rK6p.mjs.map +1 -0
  850. package/dist/RightsIndicator-IodEqXTS.mjs.map +1 -0
  851. package/dist/RightsIndicator-Tp19E3wH.mjs.map +1 -0
  852. package/dist/RightsIndicator-UnNA-JnX.mjs.map +1 -0
  853. package/dist/RightsIndicator-fNFREWAW.mjs.map +1 -0
  854. package/dist/RightsWrapper-B8WfUUyU.mjs +212 -0
  855. package/dist/RightsWrapper-B8WfUUyU.mjs.map +1 -0
  856. package/dist/RightsWrapper-C4RmSfic.mjs.map +1 -0
  857. package/dist/RightsWrapper-CuyTiPNy.mjs.map +1 -0
  858. package/dist/RightsWrapper-CwfoSSsa.mjs.map +1 -0
  859. package/dist/RightsWrapper-Dfn3I70v.mjs.map +1 -0
  860. package/dist/RightsWrapper-Du_voV0a.mjs.map +1 -0
  861. package/dist/RightsWrapper-cUlJfjI3.mjs.map +1 -0
  862. package/dist/RubriqueFilter-CM7kr6ig.mjs.map +1 -0
  863. package/dist/RubriqueFilter-CZDYRGY1.mjs.map +1 -0
  864. package/dist/RubriqueFilter-ChiOg_xE.mjs.map +1 -0
  865. package/dist/RubriqueFilter-CmuKuprg.mjs.map +1 -0
  866. package/dist/RubriqueFilter-DL_FXRSA.mjs +199 -0
  867. package/dist/RubriqueFilter-DL_FXRSA.mjs.map +1 -0
  868. package/dist/RubriqueFilter-DrH0XXvc.mjs.map +1 -0
  869. package/dist/RubriqueFilter-MMI5yYaP.mjs.map +1 -0
  870. package/dist/RubriqueList-16-5nihG.mjs.map +1 -0
  871. package/dist/RubriqueList-BdfABEgq.mjs.map +1 -0
  872. package/dist/RubriqueList-BsPLy3ay.mjs.map +1 -0
  873. package/dist/RubriqueList-CJa6V4RB.mjs.map +1 -0
  874. package/dist/RubriqueList-CMOS69Vq.mjs +206 -0
  875. package/dist/RubriqueList-CMOS69Vq.mjs.map +1 -0
  876. package/dist/RubriqueList-CqwNtNAT.mjs.map +1 -0
  877. package/dist/RubriqueList-CwjcXWs4.mjs.map +1 -0
  878. package/dist/RubriquePage-08LTF55B.mjs.map +1 -0
  879. package/dist/RubriquePage-CCy-5tNr.mjs.map +1 -0
  880. package/dist/RubriquePage-CPZDxfSO.mjs.map +1 -0
  881. package/dist/RubriquePage-CuiSjNdT.mjs.map +1 -0
  882. package/dist/RubriquePage-D4eQhRIL.mjs.map +1 -0
  883. package/dist/RubriquePage-DB366qxe.mjs.map +1 -0
  884. package/dist/RubriquePage-DFHbwv9G.mjs.map +1 -0
  885. package/dist/RubriquePage-TE1WN6Ij.mjs +108 -0
  886. package/dist/RubriquePage-TE1WN6Ij.mjs.map +1 -0
  887. package/dist/RubriquePage-hjdDUqyU.mjs.map +1 -0
  888. package/dist/SearchPage-B8jX1vjG.mjs.map +1 -0
  889. package/dist/SearchPage-BwFLn1-g.mjs.map +1 -0
  890. package/dist/SearchPage-CPD8eLYV.mjs.map +1 -0
  891. package/dist/SearchPage-CUtOUZtw.mjs.map +1 -0
  892. package/dist/SearchPage-D21Gk42b.mjs.map +1 -0
  893. package/dist/SearchPage-DMmu7a0f.mjs +77 -0
  894. package/dist/SearchPage-DMmu7a0f.mjs.map +1 -0
  895. package/dist/SearchPage-DucZ1EKg.mjs.map +1 -0
  896. package/dist/SearchPage-DxnpnU0j.mjs.map +1 -0
  897. package/dist/SearchPage-oR9fUtW3.mjs.map +1 -0
  898. package/dist/ShareAnonymous---HePDRB.mjs.map +1 -0
  899. package/dist/ShareAnonymous-BRlQaJhi.mjs +321 -0
  900. package/dist/ShareAnonymous-BRlQaJhi.mjs.map +1 -0
  901. package/dist/ShareAnonymous-BW1VhJ2n.mjs.map +1 -0
  902. package/dist/ShareAnonymous-CsldJHoJ.mjs.map +1 -0
  903. package/dist/ShareAnonymous-DEGyPCUj.mjs.map +1 -0
  904. package/dist/ShareAnonymous-DiNPUc2X.mjs.map +1 -0
  905. package/dist/ShareAnonymous-eT0sUVWS.mjs.map +1 -0
  906. package/dist/ShareModalPlayer-BIwH-p5d.mjs.map +1 -0
  907. package/dist/ShareModalPlayer-CdUUtZ-5.mjs.map +1 -0
  908. package/dist/ShareModalPlayer-D98G_Ndx.mjs +135 -0
  909. package/dist/ShareModalPlayer-D98G_Ndx.mjs.map +1 -0
  910. package/dist/ShareModalPlayer-DANO4VOp.mjs.map +1 -0
  911. package/dist/ShareModalPlayer-DjvS43q5.mjs.map +1 -0
  912. package/dist/ShareModalPlayer-b-ZIHCWY.mjs.map +1 -0
  913. package/dist/ShareModalPlayer-o8Tnrbh1.mjs.map +1 -0
  914. package/dist/ShareNewsletter--cvmmWE0.mjs.map +1 -0
  915. package/dist/ShareNewsletter-C-clOCKi.mjs +211 -0
  916. package/dist/ShareNewsletter-C-clOCKi.mjs.map +1 -0
  917. package/dist/ShareNewsletter-CUcmJiot.mjs.map +1 -0
  918. package/dist/ShareNewsletter-Cp4-g5fA.mjs.map +1 -0
  919. package/dist/ShareNewsletter-D8_5L_AT.mjs.map +1 -0
  920. package/dist/ShareNewsletter-Je8-QirK.mjs.map +1 -0
  921. package/dist/ShareNewsletter-N55dIA_B.mjs.map +1 -0
  922. package/dist/SharePlayer-B4Ljxcx6.mjs.map +1 -0
  923. package/dist/SharePlayer-BxHten3Y.mjs.map +1 -0
  924. package/dist/SharePlayer-CD7oGqJ2.mjs.map +1 -0
  925. package/dist/SharePlayer-CE1qHkec.mjs.map +1 -0
  926. package/dist/SharePlayer-ChACZKgH.mjs +378 -0
  927. package/dist/SharePlayer-ChACZKgH.mjs.map +1 -0
  928. package/dist/SharePlayer-CltOR0Zh.mjs.map +1 -0
  929. package/dist/SharePlayer-CxoaWa3_.mjs.map +1 -0
  930. package/dist/SharePlayerRadio-BJVzAG1L.mjs.map +1 -0
  931. package/dist/SharePlayerRadio-Bixx8yFN.mjs.map +1 -0
  932. package/dist/SharePlayerRadio-CMsTpb_x.mjs.map +1 -0
  933. package/dist/SharePlayerRadio-CTMdvwN2.mjs +127 -0
  934. package/dist/SharePlayerRadio-CTMdvwN2.mjs.map +1 -0
  935. package/dist/SharePlayerRadio-DU35ed7Y.mjs.map +1 -0
  936. package/dist/SharePlayerRadio-Djz3HIfx.mjs.map +1 -0
  937. package/dist/SharePlayerRadio-Dn3ui9OK.mjs.map +1 -0
  938. package/dist/SharePlayerTypes-B7FLniHB.mjs +232 -0
  939. package/dist/SharePlayerTypes-B7FLniHB.mjs.map +1 -0
  940. package/dist/SharePlayerTypes-C8lDg7bE.mjs.map +1 -0
  941. package/dist/SharePlayerTypes-CFjDgT1d.mjs.map +1 -0
  942. package/dist/SharePlayerTypes-C_YQdJl2.mjs.map +1 -0
  943. package/dist/SharePlayerTypes-CzN4HZRH.mjs.map +1 -0
  944. package/dist/SharePlayerTypes-Dkw0Yqdu.mjs.map +1 -0
  945. package/dist/SharePlayerTypes-M9s8-uCs.mjs.map +1 -0
  946. package/dist/ShareSocialsButtons--KcYTi2-.mjs.map +1 -0
  947. package/dist/ShareSocialsButtons--haMp5t-.mjs.map +1 -0
  948. package/dist/ShareSocialsButtons-CGq1RtWh.mjs.map +1 -0
  949. package/dist/ShareSocialsButtons-DEojeSLw.mjs.map +1 -0
  950. package/dist/ShareSocialsButtons-DLb_GRG-.mjs.map +1 -0
  951. package/dist/ShareSocialsButtons-DiJVocCJ.mjs +159 -0
  952. package/dist/ShareSocialsButtons-DiJVocCJ.mjs.map +1 -0
  953. package/dist/ShareSocialsButtons-IJQ1CgrC.mjs.map +1 -0
  954. package/dist/SimpleLayout-BAZ05Zz6.mjs.map +1 -0
  955. package/dist/SimpleLayout-BDnreCwm.mjs.map +1 -0
  956. package/dist/SimpleLayout-BHNwX8pP.mjs.map +1 -0
  957. package/dist/SimpleLayout-CPmBnpo-.mjs.map +1 -0
  958. package/dist/SimpleLayout-CUVtAQSt.mjs.map +1 -0
  959. package/dist/SimpleLayout-CjDOkAVU.mjs.map +1 -0
  960. package/dist/SimpleLayout-DLEAl9OH.mjs +41 -0
  961. package/dist/SimpleLayout-DLEAl9OH.mjs.map +1 -0
  962. package/dist/SmartLinkPage-BJoMvpYI.mjs +238 -0
  963. package/dist/SmartLinkPage-BJoMvpYI.mjs.map +1 -0
  964. package/dist/SmartLinkPage-Bd0ODVRl.mjs.map +1 -0
  965. package/dist/SmartLinkPage-C_zq0_aw.mjs.map +1 -0
  966. package/dist/SmartLinkPage-D1QlrObF.mjs.map +1 -0
  967. package/dist/SmartLinkPage-Dd0BLsjZ.mjs.map +1 -0
  968. package/dist/SmartLinkPage-DfFv2Nmb.mjs.map +1 -0
  969. package/dist/SmartLinkPage-wnKKixdQ.mjs.map +1 -0
  970. package/dist/SubscribeButtons-6HA0Mk9a.mjs.map +1 -0
  971. package/dist/SubscribeButtons-B6i1IdLa.mjs.map +1 -0
  972. package/dist/SubscribeButtons-BZrXH39i.mjs.map +1 -0
  973. package/dist/SubscribeButtons-C64eSNCp.mjs.map +1 -0
  974. package/dist/SubscribeButtons-DQ5YmkQO.mjs.map +1 -0
  975. package/dist/SubscribeButtons-EUkx8pZP.mjs.map +1 -0
  976. package/dist/SubscribeButtons-Va9APuBC.mjs +203 -0
  977. package/dist/SubscribeButtons-Va9APuBC.mjs.map +1 -0
  978. package/dist/SwiperList-B20Vye8P.mjs +207 -0
  979. package/dist/SwiperList-B20Vye8P.mjs.map +1 -0
  980. package/dist/SwiperList-Bokt5AG5.mjs.map +1 -0
  981. package/dist/SwiperList-CFKov21b.mjs.map +1 -0
  982. package/dist/SwiperList-DkllmyUF.mjs.map +1 -0
  983. package/dist/SwiperList-F5w64QMB.mjs.map +1 -0
  984. package/dist/SwiperList-LZV53McU.mjs.map +1 -0
  985. package/dist/SwiperList-ek1fgcDE.mjs.map +1 -0
  986. package/dist/TagList-B4PT2uXD.mjs +134 -0
  987. package/dist/TagList-B4PT2uXD.mjs.map +1 -0
  988. package/dist/TagList-BGlKCk4Q.mjs.map +1 -0
  989. package/dist/TagList-BjCugYvL.mjs.map +1 -0
  990. package/dist/TagList-DNMyr3U9.mjs.map +1 -0
  991. package/dist/TagList-DgsYcSmt.mjs.map +1 -0
  992. package/dist/TagList-WMAlflFl.mjs.map +1 -0
  993. package/dist/TagList-aSS_8yRX.mjs.map +1 -0
  994. package/dist/TagPage-BNeE4Lhq.mjs.map +1 -0
  995. package/dist/TagPage-BUXelbn2.mjs +125 -0
  996. package/dist/TagPage-BUXelbn2.mjs.map +1 -0
  997. package/dist/TagPage-Bsc2U_3X.mjs.map +1 -0
  998. package/dist/TagPage-C2iQSROU.mjs.map +1 -0
  999. package/dist/TagPage-CgscaJP0.mjs.map +1 -0
  1000. package/dist/TagPage-DEHCzUJu.mjs.map +1 -0
  1001. package/dist/TagPage-DFQt2R7S.mjs.map +1 -0
  1002. package/dist/TagPage-DPjY0S19.mjs.map +1 -0
  1003. package/dist/TagPage-DRTznoWj.mjs.map +1 -0
  1004. package/dist/TopBar-Bg0jGbps.mjs +760 -0
  1005. package/dist/TopBar-Bg0jGbps.mjs.map +1 -0
  1006. package/dist/TopBar-Br6MU5NS.mjs.map +1 -0
  1007. package/dist/TopBar-C5xvL55I.mjs.map +1 -0
  1008. package/dist/TopBar-Ct2Wi2fl.mjs.map +1 -0
  1009. package/dist/TopBar-Ct9XAxTS.mjs.map +1 -0
  1010. package/dist/TopBar-sSswTZjE.mjs.map +1 -0
  1011. package/dist/TopBar-tJHG0wJq.mjs.map +1 -0
  1012. package/dist/UserButtonContent-CE-161kg.mjs.map +1 -0
  1013. package/dist/UserButtonContent-CPa7Icpi.mjs +185 -0
  1014. package/dist/UserButtonContent-CPa7Icpi.mjs.map +1 -0
  1015. package/dist/UserButtonContent-D4Gfs-j-.mjs.map +1 -0
  1016. package/dist/UserButtonContent-DPWKHiAu.mjs.map +1 -0
  1017. package/dist/UserButtonContent-DV8mGqxl.mjs.map +1 -0
  1018. package/dist/UserButtonContent-DoRcEYhc.mjs.map +1 -0
  1019. package/dist/UserButtonContent-Y-pBXCLI.mjs.map +1 -0
  1020. package/dist/VideoModuleBox-8vaXrEZb.mjs.map +1 -0
  1021. package/dist/VideoModuleBox-BBIipxxW.mjs.map +1 -0
  1022. package/dist/VideoModuleBox-CIZ34N35.mjs +85 -0
  1023. package/dist/VideoModuleBox-CIZ34N35.mjs.map +1 -0
  1024. package/dist/VideoModuleBox-Ckr0ogRq.mjs.map +1 -0
  1025. package/dist/VideoModuleBox-Dqiduxtz.mjs.map +1 -0
  1026. package/dist/VideoModuleBox-Gs2cRVCQ.mjs.map +1 -0
  1027. package/dist/VideoModuleBox-T3Fic5E1.mjs.map +1 -0
  1028. package/dist/VideoPage-5l2yCwzq.mjs.map +1 -0
  1029. package/dist/VideoPage-B-7n9a0w.mjs +274 -0
  1030. package/dist/VideoPage-B-7n9a0w.mjs.map +1 -0
  1031. package/dist/VideoPage-C9RjP0jZ.mjs.map +1 -0
  1032. package/dist/VideoPage-C_EGSeQr.mjs.map +1 -0
  1033. package/dist/VideoPage-Ck6UhhNl.mjs.map +1 -0
  1034. package/dist/VideoPage-CzK2E8of.mjs.map +1 -0
  1035. package/dist/VideoPage-DDW-8u0o.mjs.map +1 -0
  1036. package/dist/VideoPage-DVSiNd8a.mjs.map +1 -0
  1037. package/dist/VideoPage-Dr-rwYv9.mjs.map +1 -0
  1038. package/dist/VideoPage-Gr_u3MAh.mjs.map +1 -0
  1039. package/dist/VideoPage-w0OwVwV2.mjs.map +1 -0
  1040. package/dist/classicApi-BB-XyzeX.mjs.map +1 -0
  1041. package/dist/classicApi-BGltEbgE.mjs.map +1 -0
  1042. package/dist/classicApi-BTNeGEhM.mjs.map +1 -0
  1043. package/dist/classicApi-CaN5kdYr.mjs.map +1 -0
  1044. package/dist/classicApi-ChvwoPGT.mjs +1906 -0
  1045. package/dist/classicApi-ChvwoPGT.mjs.map +1 -0
  1046. package/dist/classicApi-CzfRsZHJ.mjs.map +1 -0
  1047. package/dist/classicApi-D1fMJl0J.mjs.map +1 -0
  1048. package/dist/downloadHelper-C64lrfkY.mjs.map +1 -0
  1049. package/dist/downloadHelper-CMi7-Uui.mjs.map +1 -0
  1050. package/dist/downloadHelper-COaLNbRP.mjs.map +1 -0
  1051. package/dist/downloadHelper-CVAsxSd_.mjs.map +1 -0
  1052. package/dist/downloadHelper-CuFfOvc0.mjs +36 -0
  1053. package/dist/downloadHelper-CuFfOvc0.mjs.map +1 -0
  1054. package/dist/downloadHelper-euySfVzt.mjs.map +1 -0
  1055. package/dist/downloadHelper-fJeVpKge.mjs.map +1 -0
  1056. package/dist/index.mjs +100 -100
  1057. package/dist/messages-BBXCgqNE.mjs.map +1 -0
  1058. package/dist/messages-BfcKCwbs.mjs.map +1 -0
  1059. package/dist/messages-C-3-wU0o.mjs +2757 -0
  1060. package/dist/messages-C-3-wU0o.mjs.map +1 -0
  1061. package/dist/messages-DFgZU_JY.mjs.map +1 -0
  1062. package/dist/messages-DI0RP16T.mjs.map +1 -0
  1063. package/dist/messages-ffqRcdFK.mjs.map +1 -0
  1064. package/dist/messages-tvu0LPPD.mjs.map +1 -0
  1065. package/dist/tests.mjs +2 -2
  1066. package/dist/useAdvancedParamInit-B0q6bEG9.mjs.map +1 -0
  1067. package/dist/useAdvancedParamInit-Bmasoyik.mjs.map +1 -0
  1068. package/dist/useAdvancedParamInit-BnHjPfDr.mjs.map +1 -0
  1069. package/dist/useAdvancedParamInit-Cqr0FvM6.mjs.map +1 -0
  1070. package/dist/useAdvancedParamInit-DpFW5LOX.mjs +162 -0
  1071. package/dist/useAdvancedParamInit-DpFW5LOX.mjs.map +1 -0
  1072. package/dist/useAdvancedParamInit-TYud_aDM.mjs.map +1 -0
  1073. package/dist/useAdvancedParamInit-TnnXwHRW.mjs.map +1 -0
  1074. package/dist/useDayjs-CK_TIXDt.mjs +32 -0
  1075. package/dist/useDayjs-CK_TIXDt.mjs.map +1 -0
  1076. package/dist/useDayjs-CXOnFQYE.mjs.map +1 -0
  1077. package/dist/useDayjs-D_JdvkuA.mjs.map +1 -0
  1078. package/dist/useDayjs-Dcl8o-f2.mjs.map +1 -0
  1079. package/dist/useDayjs-DfbYqqzw.mjs.map +1 -0
  1080. package/dist/useDayjs-DgjE7bQE.mjs.map +1 -0
  1081. package/dist/useDayjs-Qw7bsgun.mjs.map +1 -0
  1082. package/dist/useErrorHandler-B2omq-xn.mjs.map +1 -0
  1083. package/dist/useErrorHandler-BZkAkzNC.mjs +19 -0
  1084. package/dist/useErrorHandler-BZkAkzNC.mjs.map +1 -0
  1085. package/dist/useErrorHandler-BpXnCp74.mjs.map +1 -0
  1086. package/dist/useErrorHandler-Ccs5lCXK.mjs.map +1 -0
  1087. package/dist/useErrorHandler-DDjgV9tS.mjs.map +1 -0
  1088. package/dist/useErrorHandler-TP_xzyLW.mjs.map +1 -0
  1089. package/dist/useErrorHandler-hTEtFcs_.mjs.map +1 -0
  1090. package/dist/useImageProxy-B0l13vKR.mjs.map +1 -0
  1091. package/dist/useImageProxy-BCtwrFPB.mjs.map +1 -0
  1092. package/dist/useImageProxy-CFXtzue5.mjs.map +1 -0
  1093. package/dist/useImageProxy-CLgdcHCl.mjs.map +1 -0
  1094. package/dist/useImageProxy-CNYAGjLf.mjs.map +1 -0
  1095. package/dist/useImageProxy-DdK55qB4.mjs +20 -0
  1096. package/dist/useImageProxy-DdK55qB4.mjs.map +1 -0
  1097. package/dist/useImageProxy-Drr0R83A.mjs.map +1 -0
  1098. package/dist/useOrgaComputed-B07BGfc5.mjs.map +1 -0
  1099. package/dist/useOrgaComputed-CZYeUhPI.mjs.map +1 -0
  1100. package/dist/useOrgaComputed-Cvryrkbp.mjs.map +1 -0
  1101. package/dist/useOrgaComputed-D5SfqMx9.mjs +19 -0
  1102. package/dist/useOrgaComputed-D5SfqMx9.mjs.map +1 -0
  1103. package/dist/useOrgaComputed-D8Aak710.mjs.map +1 -0
  1104. package/dist/useOrgaComputed-Dcs2QQ4K.mjs.map +1 -0
  1105. package/dist/useOrgaComputed-dKPouMl1.mjs.map +1 -0
  1106. package/dist/usePlayerLogicProgress-Bb_pkMxz.mjs.map +1 -0
  1107. package/dist/usePlayerLogicProgress-BckKC1fU.mjs.map +1 -0
  1108. package/dist/usePlayerLogicProgress-C-gsD-ec.mjs +108 -0
  1109. package/dist/usePlayerLogicProgress-C-gsD-ec.mjs.map +1 -0
  1110. package/dist/usePlayerLogicProgress-DRrXB53_.mjs.map +1 -0
  1111. package/dist/usePlayerLogicProgress-KiC9MszQ.mjs.map +1 -0
  1112. package/dist/usePlayerLogicProgress-lypDuxfv.mjs.map +1 -0
  1113. package/dist/usePlayerLogicProgress-mpS1rYM1.mjs.map +1 -0
  1114. package/dist/usePodcastView-3dCNrbxq.mjs.map +1 -0
  1115. package/dist/usePodcastView-Bxbpf2Aj.mjs.map +1 -0
  1116. package/dist/usePodcastView-C4Ak6N5U.mjs.map +1 -0
  1117. package/dist/usePodcastView-CWnGApRW.mjs.map +1 -0
  1118. package/dist/usePodcastView-Cm6ruTDT.mjs.map +1 -0
  1119. package/dist/usePodcastView-DlzuYDsj.mjs +56 -0
  1120. package/dist/usePodcastView-DlzuYDsj.mjs.map +1 -0
  1121. package/dist/usePodcastView-_Gt7IKys.mjs.map +1 -0
  1122. package/dist/usePresentationItem-1wOfXOdb.mjs.map +1 -0
  1123. package/dist/usePresentationItem-BIoivvjV.mjs.map +1 -0
  1124. package/dist/usePresentationItem-BkAS8Vr0.mjs.map +1 -0
  1125. package/dist/usePresentationItem-CUGbjF4i.mjs +190 -0
  1126. package/dist/usePresentationItem-CUGbjF4i.mjs.map +1 -0
  1127. package/dist/usePresentationItem-D5rbUsCh.mjs.map +1 -0
  1128. package/dist/usePresentationItem-Dq1BLr6j.mjs.map +1 -0
  1129. package/dist/usePresentationItem-Dww8g4Vm.mjs.map +1 -0
  1130. package/dist/useRights-2iW8A6VG.mjs.map +1 -0
  1131. package/dist/useRights-Bh8pPIIT.mjs.map +1 -0
  1132. package/dist/useRights-C0SGDVHr.mjs.map +1 -0
  1133. package/dist/useRights-C_1sfdF_.mjs.map +1 -0
  1134. package/dist/useRights-ChjlGASZ.mjs.map +1 -0
  1135. package/dist/useRights-DNL2VJUc.mjs +276 -0
  1136. package/dist/useRights-DNL2VJUc.mjs.map +1 -0
  1137. package/dist/useRights-DeR0K7I4.mjs.map +1 -0
  1138. package/dist/useRubriquesFilterComputed-BORLAh8s.mjs.map +1 -0
  1139. package/dist/useRubriquesFilterComputed-CC3kqtFK.mjs.map +1 -0
  1140. package/dist/useRubriquesFilterComputed-CKezlYVc.mjs.map +1 -0
  1141. package/dist/useRubriquesFilterComputed-DHNQz04L.mjs.map +1 -0
  1142. package/dist/useRubriquesFilterComputed-DWgN-E8P.mjs.map +1 -0
  1143. package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs +13 -0
  1144. package/dist/useRubriquesFilterComputed-Dg4HclyQ.mjs.map +1 -0
  1145. package/dist/useRubriquesFilterComputed-NQGEdYXb.mjs.map +1 -0
  1146. package/dist/useRubriquesFilterParam-BGBTXNIe.mjs.map +1 -0
  1147. package/dist/useRubriquesFilterParam-BbLPbrFy.mjs.map +1 -0
  1148. package/dist/useRubriquesFilterParam-BjMqOyMg.mjs.map +1 -0
  1149. package/dist/useRubriquesFilterParam-BrWFpJhb.mjs +36 -0
  1150. package/dist/useRubriquesFilterParam-BrWFpJhb.mjs.map +1 -0
  1151. package/dist/useRubriquesFilterParam-DwnlkS0K.mjs.map +1 -0
  1152. package/dist/useRubriquesFilterParam-YXdzWQqQ.mjs.map +1 -0
  1153. package/dist/useRubriquesFilterParam-r0AJqZsJ.mjs.map +1 -0
  1154. package/dist/useSharePlatforms-BqPO-hyZ.mjs +468 -0
  1155. package/dist/useSharePlatforms-BqPO-hyZ.mjs.map +1 -0
  1156. package/dist/useSharePlatforms-CP7lHEZ0.mjs.map +1 -0
  1157. package/dist/useSharePlatforms-C_EB_xsb.mjs.map +1 -0
  1158. package/dist/useSharePlatforms-CcG4_k68.mjs.map +1 -0
  1159. package/dist/useSharePlatforms-CgGpSSII.mjs.map +1 -0
  1160. package/dist/useSharePlatforms-CrHyAS2m.mjs.map +1 -0
  1161. package/dist/useSharePlatforms-D81_zd1r.mjs.map +1 -0
  1162. package/dist/useSimplePageParam-9ps_YIpq.mjs.map +1 -0
  1163. package/dist/useSimplePageParam-ByeUUq4Z.mjs +54 -0
  1164. package/dist/useSimplePageParam-ByeUUq4Z.mjs.map +1 -0
  1165. package/dist/useSimplePageParam-C4qdDtdw.mjs.map +1 -0
  1166. package/dist/useSimplePageParam-COisq-R3.mjs.map +1 -0
  1167. package/dist/useSimplePageParam-DT1XPwfb.mjs.map +1 -0
  1168. package/dist/useSimplePageParam-DZIpRJUc.mjs.map +1 -0
  1169. package/dist/useSimplePageParam-Dw3p3GCC.mjs.map +1 -0
  1170. package/dist/useTranslation-BPLqy26U.mjs.map +1 -0
  1171. package/dist/useTranslation-C4rvyoXK.mjs.map +1 -0
  1172. package/dist/useTranslation-C8Dy1ma7.mjs.map +1 -0
  1173. package/dist/useTranslation-CLkN3q6e.mjs.map +1 -0
  1174. package/dist/useTranslation-COKe4d2D.mjs.map +1 -0
  1175. package/dist/useTranslation-Dsw1HxX9.mjs +205 -0
  1176. package/dist/useTranslation-Dsw1HxX9.mjs.map +1 -0
  1177. package/dist/useTranslation-kKZZLtgm.mjs.map +1 -0
  1178. package/dist/usefetchRadioData-3E5_FJJM.mjs +55 -0
  1179. package/dist/usefetchRadioData-3E5_FJJM.mjs.map +1 -0
  1180. package/dist/usefetchRadioData-B5vQJGHp.mjs.map +1 -0
  1181. package/dist/usefetchRadioData-Cb6piM3h.mjs.map +1 -0
  1182. package/dist/usefetchRadioData-Ch_otD17.mjs.map +1 -0
  1183. package/dist/usefetchRadioData-D5WFrvWd.mjs.map +1 -0
  1184. package/dist/usefetchRadioData-lhw_qPJh.mjs.map +1 -0
  1185. package/dist/usefetchRadioData-qr9F-158.mjs.map +1 -0
  1186. package/package.json +1 -1
  1187. package/src/components/display/podcasts/PodcastModuleBox.vue +293 -252
  1188. package/src/components/form/ClassicWysiwyg.vue +2 -4
  1189. package/src/components/misc/FooterSection.vue +3 -1
  1190. package/src/locale/de.json +3 -1
  1191. package/src/locale/en.json +3 -1
  1192. package/src/locale/es.json +3 -1
  1193. package/src/locale/fr.json +3 -0
  1194. package/src/locale/it.json +3 -1
  1195. package/src/locale/sl.json +3 -1
  1196. package/tests/components/display/podcasts/PodcastModuleBox.spec.ts +68 -0
  1197. package/dist/AdvancedSearch-C__BZuJX.mjs +0 -429
  1198. package/dist/CategoryFilter-DRXTrqyR.mjs +0 -237
  1199. package/dist/CategoryList-BeBPhibG.mjs +0 -182
  1200. package/dist/CategoryPage-CsabctRT.mjs +0 -57
  1201. package/dist/ChapteringModal-BCPmvaRT.mjs +0 -82
  1202. package/dist/CheckIdentityModal-fNecycn-.mjs +0 -86
  1203. package/dist/ClassicAlert-dYigdfoZ.mjs +0 -85
  1204. package/dist/ClassicInputText-B7EAwP2N.mjs +0 -371
  1205. package/dist/ClassicWysiwyg-BKq8ExjM.mjs +0 -230
  1206. package/dist/ClipboardModal-Bd_hrJu_.mjs +0 -84
  1207. package/dist/CommentBasicView-bNaLVdjT.mjs +0 -129
  1208. package/dist/CommentInput-B7qnp3is.mjs +0 -186
  1209. package/dist/CommentItem-DDCavfx_.mjs +0 -232
  1210. package/dist/CommentList-BbEaau4S.mjs +0 -302
  1211. package/dist/CommentMoreActions-CB8419fO.mjs +0 -286
  1212. package/dist/CommentName-DFzxl7mU.mjs +0 -96
  1213. package/dist/CommentParentInfo-BDSceNbu.mjs +0 -64
  1214. package/dist/CommentPlayer-D_cgM4oc.mjs +0 -86
  1215. package/dist/CommentSection-CfhzLqZE.mjs +0 -141
  1216. package/dist/CommentStore-DAa7RQ_3.mjs +0 -355
  1217. package/dist/ContractPreviewModal-CC3KTcFM.mjs +0 -101
  1218. package/dist/DownloadPodcastButton-DdWnV_YZ.mjs +0 -53
  1219. package/dist/EditCommentModal-7vDcLEPD.mjs +0 -162
  1220. package/dist/EmissionGroupChooser-ZJLNTZLc.mjs +0 -82
  1221. package/dist/EmissionInlineList-JQp7JC97.mjs +0 -188
  1222. package/dist/EmissionItem-9HFaHgWp.mjs +0 -183
  1223. package/dist/EmissionList-Clu9bigG.mjs +0 -325
  1224. package/dist/EmissionPage-DX_2HI0y.mjs +0 -322
  1225. package/dist/EmissionPlayerItem-C8IKeJ7q.mjs +0 -167
  1226. package/dist/EmissionPresentationItem-CmxIvauh.mjs +0 -78
  1227. package/dist/EmissionPresentationList-CIx49QaD.mjs +0 -125
  1228. package/dist/EmissionsPage-CxLXKG5S.mjs +0 -199
  1229. package/dist/Error403Page-DARTxoEK.mjs +0 -69
  1230. package/dist/ErrorMessage-DhSwu9H_.mjs +0 -44
  1231. package/dist/FooterGarSection-IH0ADl_V.mjs +0 -71
  1232. package/dist/FooterSection-r3Ehg0kp.mjs +0 -238
  1233. package/dist/HomeDropdown-B9Hg49uX.mjs +0 -110
  1234. package/dist/HomePage-C3t8bQ4X.mjs +0 -166
  1235. package/dist/LikeSection-KEHYZ6eH.mjs +0 -167
  1236. package/dist/ListPaginate-Dd3eeyMI.mjs +0 -202
  1237. package/dist/LiveHorizontalList-CiyK7eIx.mjs +0 -136
  1238. package/dist/LiveList-DnEolyFx.mjs +0 -324
  1239. package/dist/LivesPage-BjOGZLj4.mjs +0 -76
  1240. package/dist/MapPage-BO2h6OPn.mjs +0 -303
  1241. package/dist/MobileMenu-DzyIn4Ww.mjs +0 -187
  1242. package/dist/NewsletterModal-MVu7IC0K.mjs +0 -82
  1243. package/dist/OrganisationChooser-BZnwu6PU.mjs +0 -190
  1244. package/dist/OrganisationChooserLight-DtC9SY2k.mjs +0 -84
  1245. package/dist/PageNotFound-XkbxiC3R.mjs +0 -58
  1246. package/dist/ParticipantInlineList-D13FKP63.mjs +0 -117
  1247. package/dist/ParticipantItem-NaOJtacr.mjs +0 -138
  1248. package/dist/ParticipantPage-CVDQ4I-p.mjs +0 -203
  1249. package/dist/ParticipantsPage-CxDl6EWr.mjs +0 -262
  1250. package/dist/PlayerAnonymousModal-DstBQ-Zs.mjs +0 -84
  1251. package/dist/PlayerCompact-DgsZttBX.mjs +0 -209
  1252. package/dist/PlayerComponent-BDJQLPcs.mjs +0 -929
  1253. package/dist/PlayerLarge-CubFsFCt.mjs +0 -190
  1254. package/dist/PlayerPlayButton-DQBkOGod.mjs +0 -400
  1255. package/dist/PlayerProgressBar-AhqJPkUk.mjs +0 -86
  1256. package/dist/PlayerStore-S4mFfJ75.mjs +0 -230
  1257. package/dist/PlayerVideo-D-TYPaLL.mjs +0 -72
  1258. package/dist/PlayerVideoDigiteka-DMC8L6Mz.mjs +0 -102
  1259. package/dist/PlayerVideoHls-VFKtt3Qx.mjs +0 -232
  1260. package/dist/PlaylistPage-BrZuaX3e.mjs +0 -228
  1261. package/dist/PlaylistsPage-CAaiC48j.mjs +0 -395
  1262. package/dist/PodcastFilterList-YdyFX695.mjs +0 -254
  1263. package/dist/PodcastImage-CF7D3Alx.mjs +0 -174
  1264. package/dist/PodcastInlineList-C_dvAa4O.mjs +0 -138
  1265. package/dist/PodcastInlineListTemplate-DpveKzmq.mjs +0 -233
  1266. package/dist/PodcastIsPlaying-Dx_XNjz4.mjs +0 -30
  1267. package/dist/PodcastItem-C5U2vYiX.mjs +0 -287
  1268. package/dist/PodcastList-BHOJTVqP.mjs +0 -182
  1269. package/dist/PodcastList-Dkh7Kahu.mjs +0 -330
  1270. package/dist/PodcastPage-CTwEe_n7.mjs +0 -725
  1271. package/dist/PodcastPlayBar-BafidGw3.mjs +0 -83
  1272. package/dist/PodcastPlayBasicButton-DqomjSS_.mjs +0 -72
  1273. package/dist/PodcastPlayButton--X67hSEO.mjs +0 -236
  1274. package/dist/PodcastPlaylistInlineList-Csf1PwTQ.mjs +0 -115
  1275. package/dist/PodcastPresentationList-DSQebLtP.mjs +0 -200
  1276. package/dist/PodcastProgressBar-BoRBxgPF.mjs +0 -98
  1277. package/dist/PodcastRawTranscript-HOcGzqam.mjs +0 -184
  1278. package/dist/PodcastRubriqueList-C6IUkNSJ.mjs +0 -83
  1279. package/dist/PodcastSwiperList-B6Rb4sb3.mjs +0 -219
  1280. package/dist/PodcastmakerHeader-SuHA7pwQ.mjs +0 -58
  1281. package/dist/PodcastsPage-BA8vFVBZ.mjs +0 -217
  1282. package/dist/ProductorSearch-DXwssvrx.mjs +0 -161
  1283. package/dist/ProgressBar-BPdSp8k3.mjs +0 -158
  1284. package/dist/QrCode-DIUhV-JI.mjs +0 -177
  1285. package/dist/QrCodeModal-DsqDbf2S.mjs +0 -64
  1286. package/dist/RadioCurrently-2uhupYt4.mjs +0 -112
  1287. package/dist/RadioHistory-7HK9VIXU.mjs +0 -139
  1288. package/dist/RadioImage-DgrrJqhi.mjs +0 -85
  1289. package/dist/RadioList-5WLGZn1M.mjs +0 -125
  1290. package/dist/RadioPage-BLrZ2cZQ.mjs +0 -137
  1291. package/dist/RadioPlanning-CMSEqOnd.mjs +0 -290
  1292. package/dist/RadioProgressBar-imph2EDe.mjs +0 -67
  1293. package/dist/RecaptchaModal-CxDPhjIv.mjs +0 -148
  1294. package/dist/ReportAbuseModal-Cn4dKNYU.mjs +0 -134
  1295. package/dist/RightsIndicator-DMZt2V0j.mjs +0 -124
  1296. package/dist/RightsWrapper-CH6QzSWu.mjs +0 -212
  1297. package/dist/RubriqueFilter-BIBa9NNw.mjs +0 -199
  1298. package/dist/RubriqueList-7NFIBpzM.mjs +0 -206
  1299. package/dist/RubriquePage-Dh4NUQ2M.mjs +0 -108
  1300. package/dist/SearchPage-nupT1-eH.mjs +0 -77
  1301. package/dist/ShareAnonymous-BmIwbMz_.mjs +0 -321
  1302. package/dist/ShareModalPlayer-CKQAlhfC.mjs +0 -135
  1303. package/dist/ShareNewsletter-YyZJPmj3.mjs +0 -211
  1304. package/dist/SharePlayer-B-8165rs.mjs +0 -378
  1305. package/dist/SharePlayerRadio-CqLsQYYx.mjs +0 -127
  1306. package/dist/SharePlayerTypes-Bt2LQhZe.mjs +0 -232
  1307. package/dist/ShareSocialsButtons-CZtpG1zL.mjs +0 -159
  1308. package/dist/SimpleLayout-TPl5v_-v.mjs +0 -41
  1309. package/dist/SmartLinkPage-DsLBvlOf.mjs +0 -238
  1310. package/dist/SubscribeButtons-DTu2q9nM.mjs +0 -203
  1311. package/dist/SwiperList-DkzjytBq.mjs +0 -207
  1312. package/dist/TagList-CZwg6-Wl.mjs +0 -134
  1313. package/dist/TagPage-DX0T8dNu.mjs +0 -125
  1314. package/dist/TopBar-BshQ_eFb.mjs +0 -760
  1315. package/dist/UserButtonContent-BwvIN_8j.mjs +0 -185
  1316. package/dist/VideoModuleBox-CYxZFZQV.mjs +0 -85
  1317. package/dist/VideoPage-B1udtWP7.mjs +0 -274
  1318. package/dist/classicApi-DpwVUC0E.mjs +0 -1906
  1319. package/dist/downloadHelper-DNFvCWE7.mjs +0 -36
  1320. package/dist/messages-DxAfPLH1.mjs +0 -2745
  1321. package/dist/useAdvancedParamInit-XK-FI81b.mjs +0 -162
  1322. package/dist/useDayjs-CD7LNHpM.mjs +0 -32
  1323. package/dist/useErrorHandler-DpcjkDh_.mjs +0 -19
  1324. package/dist/useImageProxy-DI8RhM5W.mjs +0 -20
  1325. package/dist/useOrgaComputed-Cv6ZE0fR.mjs +0 -19
  1326. package/dist/usePlayerLogicProgress-DJXygp1R.mjs +0 -108
  1327. package/dist/usePodcastView-AB8-AjDO.mjs +0 -56
  1328. package/dist/usePresentationItem-BSIM0LPe.mjs +0 -190
  1329. package/dist/useRights-9acWcTMy.mjs +0 -276
  1330. package/dist/useRubriquesFilterComputed-Hr6ZScZJ.mjs +0 -13
  1331. package/dist/useRubriquesFilterParam-CHOhIyzc.mjs +0 -36
  1332. package/dist/useSharePlatforms-BS51_Mgp.mjs +0 -468
  1333. package/dist/useSimplePageParam-CWi9AKl0.mjs +0 -54
  1334. package/dist/useTranslation-Bw07I8Rj.mjs +0 -205
  1335. package/dist/usefetchRadioData-CoAFZngO.mjs +0 -55
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRights-C0SGDVHr.mjs","names":[],"sources":["../src/components/composable/useRights.ts"],"sourcesContent":["import { Mix } from \"../../stores/class/radio/mix\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport type { Emission } from \"../../stores/class/general/emission\";\nimport type { Podcast } from \"../../stores/class/general/podcast\";\nimport { PlaylistMedia } from \"../../stores/class/radio/playlistMedia\";\nimport { Cartouchier } from \"../../stores/class/cartouchier/cartouchier\";\nimport { Media } from \"../../stores/class/general/media\";\nimport { Conference } from \"../../stores/class/conference/conference\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\n\ntype Role =\n 'ADMIN'|'ORGANISATION'|\n 'PRODUCTION'|'RESTRICTED_PRODUCTION'|'PODCAST_CRUD'|'PODCAST_VALIDATION'|\n 'PLAYLISTS'|'ANIMATION'|'RESTRICTED_ANIMATION'|'RADIO'|'LIVE'|\n 'EDITION'\n ;\n\nexport enum ActionRight {\n /** User can perform the action */\n Allowed = 'allowed',\n /** User lacks the required role */\n DeniedNoRight = 'no_right', \n /** User has a restricted role but does not own the resource **/\n DeniedNotOwner = 'not_owner',\n /** User is scoped to specific rubriques */\n DeniedInsufficientScope = 'no_scope'\n}\n\n// Constraint type for the object passed to deriveCanFunctions.\n// any[] is intentional: it allows functions with any parameter signature to satisfy\n// the constraint while still enforcing that the return type is ActionRight.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SyncRightFns = Record<string, (...args: any[]) => ActionRight>;\n\n// Maps every key of the form `get${A}Right` to `can${A}`, preserving the parameter\n// types of the original function but changing the return type to boolean.\n// Keys that do not match the naming convention are dropped (mapped to never).\ntype CanFns<T extends SyncRightFns> = {\n [K in keyof T as K extends `get${infer A}Right` ? `can${A}` : never]:\n T[K] extends (...args: infer P) => ActionRight ? (...args: P) => boolean : never;\n};\n\n/**\n * Generates boolean shortcut functions from a set of `getRightXxx` functions.\n *\n * Convention: `get${Action}Right(…args) → ActionRight`\n * becomes `can${Action}(…args) → boolean`\n *\n * The generated function returns true when the underlying getRightXxx returns\n * ActionRight.Allowed, and false otherwise. This means callers that only need\n * a simple yes/no answer can use canXxx(), while callers that need the specific\n * denial reason (DeniedNoRight vs DeniedNotOwner) can call getRightXxx() directly.\n *\n * Only synchronous functions should be passed here; async rights functions must\n * be wrapped manually.\n */\nfunction deriveCanFunctions<T extends SyncRightFns>(fns: T): CanFns<T> {\n const result = {} as CanFns<T>;\n for (const key of Object.keys(fns) as (keyof T & string)[]) {\n if (key.startsWith('get') && key.endsWith('Right')) {\n const canKey = `can${key.slice(3, -5)}` as keyof CanFns<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (result as any)[canKey] = (...args: unknown[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (fns as any)[key](...args) === ActionRight.Allowed;\n }\n }\n return result;\n}\n\n/**\n * Composable to manage rights.\n * Based on AuthStore, but converts roles to easily usable tests for various\n * actions.\n */\nexport const useRights = () => {\n const authStore = useAuthStore();\n\n function roleContainsAny(...roles: Role[]): boolean {\n return (authStore.authRole as Role[]).findIndex((r: Role) => roles.includes(r)) > -1;\n }\n\n function hasSufficientScope(elementRubriques: Array<number> = [], parentRubriques: Array<number> = []): boolean {\n const ids = elementRubriques.concat(parentRubriques);\n const scope = authStore.userScope;\n if (scope.length === 0) {\n return true;\n }\n\n for (const id of scope) {\n if (ids.includes(id)) {\n return true;\n }\n }\n\n return false;\n }\n\n ////////////////////////////\n // Emission rights\n ////////////////////////////\n function getCreateEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditEmissionRight(emission: Emission): ActionRight {\n if (!hasSufficientScope(emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n \n if (\n (!emission.emissionId && getCreateEmissionRight() === ActionRight.Allowed) ||\n roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ) {\n return ActionRight.Allowed;\n }\n\n if (roleContainsAny('RESTRICTED_PRODUCTION')) {\n return emission.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteEmissionRight(emission: Emission): ActionRight {\n // In case of restricted production, it will only delete podcasts\n // created by user, and delete the emission only if empty afterwards\n if (roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'RESTRICTED_PRODUCTION')) {\n return hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditCommentsConfigEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // Podcast rights\n function getCreatePodcastRight(emission?: Emission): ActionRight {\n if(roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return !emission || hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getDuplicatePodcastRight(): ActionRight {\n // Same as creation but notably without PODCAST_CRUD and RESTRICTED_ANIMATION\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPodcastRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n if (roleContainsAny('PODCAST_CRUD')) {\n return podcast.valid === false && podcast.publisher?.userId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePodcastRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getValidatePodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'PODCAST_VALIDATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCommentsConfigPodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Playlist rights\n ////////////////////////////\n function getCreatePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Participant rights\n ////////////////////////////\n function getCreateParticipantRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function getParticipantEditRight(participantId: number|undefined): Promise<ActionRight> {\n // New participants can be edited, and also with sufficient rights\n return (!participantId || roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION'))\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function canEditParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n async function canDeleteParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n ////////////////////////////\n // Rubriques/rubriquage rights\n ////////////////////////////\n function getCreateRubriquesRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'EDITION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function getEditRubriquesRight(_element: Rubrique|Rubriquage): ActionRight {\n return getCreateRubriquesRight();\n }\n\n ////////////////////////////\n // Aggregator rights\n ////////////////////////////\n function getCreateAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeleteAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Cartouchier rights\n ////////////////////////////\n function getCreateCartouchierRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCartouchierRight(element: Cartouchier): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteCartouchierRight(element: Cartouchier): ActionRight {\n return getEditCartouchierRight(element);\n }\n\n ////////////////////////////\n // PlaylistMedia rights\n ////////////////////////////\n function getCreatePlaylistMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistMediaRight(element: PlaylistMedia): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistMediaRight(element: PlaylistMedia): ActionRight {\n return getEditPlaylistMediaRight(element);\n }\n\n ////////////////////////////\n // Media rights\n ////////////////////////////\n function getCreateMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMediaRight(element: Media): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteMediaRight(element: Media): ActionRight {\n return getEditMediaRight(element);\n }\n\n ////////////////////////////\n // Mix rights\n ////////////////////////////\n function getCreateMixRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'RADIO')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMixRight(_element: Mix): ActionRight {\n return getCreateMixRight();\n }\n\n function getDeleteMixRight(element: Mix): ActionRight {\n return getEditMixRight(element);\n }\n\n ////////////////////////////\n // Transcript/translation rights\n ////////////////////////////\n function getEditTranscriptRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'PODCAST_CRUD')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getEditTranscriptVisibilityRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditTranslationRight(podcast: Podcast): ActionRight {\n return getEditTranscriptRight(podcast);\n }\n\n ////////////////////////////\n // Live\n ////////////////////////////\n function getAccessRecordingRight(conference: Conference, isLive: boolean): ActionRight {\n if (isLive) {\n return roleContainsAny('LIVE') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n } else {\n return roleContainsAny('ANIMATION', 'RESTRICTED_ANIMATION') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n }\n }\n\n ////////////////////////////\n // Other action rights\n ////////////////////////////\n function getEditCodeInsertPlayerRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditChapteringRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getCreatePromoVideoRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n } else if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditPromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n function getDeletePromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n // View/utility checks — outside the action pattern\n function canSeeHistory(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION');\n }\n\n function isRestrictedProduction(): boolean {\n return roleContainsAny('RESTRICTED_PRODUCTION') && !roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n const rightFns = {\n // Emissions\n getCreateEmissionRight,\n getEditEmissionRight,\n getDeleteEmissionRight,\n getEditCommentsConfigEmissionRight,\n // Podcasts\n getCreatePodcastRight,\n getDuplicatePodcastRight,\n getEditPodcastRight,\n getDeletePodcastRight,\n getValidatePodcastRight,\n getEditCommentsConfigPodcastRight,\n // Playlists\n getCreatePlaylistRight,\n getEditPlaylistRight,\n getDeletePlaylistRight,\n // Participants (sync only)\n getCreateParticipantRight,\n // Rubriques/Rubriquages\n getCreateRubriquesRight,\n getEditRubriquesRight,\n // Aggregators\n getCreateAggregatorRight,\n getEditAggregatorRight,\n getDeleteAggregatorRight,\n // Cartouchier\n getCreateCartouchierRight,\n getEditCartouchierRight,\n getDeleteCartouchierRight,\n // PlaylistMedia\n getCreatePlaylistMediaRight,\n getEditPlaylistMediaRight,\n getDeletePlaylistMediaRight,\n // Media\n getCreateMediaRight,\n getEditMediaRight,\n getDeleteMediaRight,\n // Mix\n getCreateMixRight,\n getEditMixRight,\n getDeleteMixRight,\n // Translation/transcription\n getEditTranscriptRight,\n getEditTranscriptVisibilityRight,\n getEditTranslationRight,\n // Other\n getAccessRecordingRight,\n getEditCodeInsertPlayerRight,\n getEditChapteringRight,\n getCreatePromoVideoRight,\n getEditPromoVideoRight,\n getDeletePromoVideoRight\n };\n\n const canFns = deriveCanFunctions(rightFns);\n\n function canReadRSSRules(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n function canEditRSSRules(): boolean {\n return canReadRSSRules();\n }\n\n return {\n ...rightFns,\n ...canFns,\n // Async participant (kept manually — async functions excluded from deriveCanFunctions)\n getParticipantEditRight,\n canEditParticipant,\n canDeleteParticipant,\n // RSS Rules (manual — outside the getRightXxx convention)\n canReadRSSRules,\n canEditRSSRules,\n // View/utility checks\n canSeeHistory,\n isRestrictedProduction,\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRights-C_1sfdF_.mjs","names":[],"sources":["../src/components/composable/useRights.ts"],"sourcesContent":["import { Mix } from \"../../stores/class/radio/mix\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport type { Emission } from \"../../stores/class/general/emission\";\nimport type { Podcast } from \"../../stores/class/general/podcast\";\nimport { PlaylistMedia } from \"../../stores/class/radio/playlistMedia\";\nimport { Cartouchier } from \"../../stores/class/cartouchier/cartouchier\";\nimport { Media } from \"../../stores/class/general/media\";\nimport { Conference } from \"../../stores/class/conference/conference\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\n\ntype Role =\n 'ADMIN'|'ORGANISATION'|\n 'PRODUCTION'|'RESTRICTED_PRODUCTION'|'PODCAST_CRUD'|'PODCAST_VALIDATION'|\n 'PLAYLISTS'|'ANIMATION'|'RESTRICTED_ANIMATION'|'RADIO'|'LIVE'|\n 'EDITION'\n ;\n\nexport enum ActionRight {\n /** User can perform the action */\n Allowed = 'allowed',\n /** User lacks the required role */\n DeniedNoRight = 'no_right', \n /** User has a restricted role but does not own the resource **/\n DeniedNotOwner = 'not_owner',\n /** User is scoped to specific rubriques */\n DeniedInsufficientScope = 'no_scope'\n}\n\n// Constraint type for the object passed to deriveCanFunctions.\n// any[] is intentional: it allows functions with any parameter signature to satisfy\n// the constraint while still enforcing that the return type is ActionRight.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SyncRightFns = Record<string, (...args: any[]) => ActionRight>;\n\n// Maps every key of the form `get${A}Right` to `can${A}`, preserving the parameter\n// types of the original function but changing the return type to boolean.\n// Keys that do not match the naming convention are dropped (mapped to never).\ntype CanFns<T extends SyncRightFns> = {\n [K in keyof T as K extends `get${infer A}Right` ? `can${A}` : never]:\n T[K] extends (...args: infer P) => ActionRight ? (...args: P) => boolean : never;\n};\n\n/**\n * Generates boolean shortcut functions from a set of `getRightXxx` functions.\n *\n * Convention: `get${Action}Right(…args) → ActionRight`\n * becomes `can${Action}(…args) → boolean`\n *\n * The generated function returns true when the underlying getRightXxx returns\n * ActionRight.Allowed, and false otherwise. This means callers that only need\n * a simple yes/no answer can use canXxx(), while callers that need the specific\n * denial reason (DeniedNoRight vs DeniedNotOwner) can call getRightXxx() directly.\n *\n * Only synchronous functions should be passed here; async rights functions must\n * be wrapped manually.\n */\nfunction deriveCanFunctions<T extends SyncRightFns>(fns: T): CanFns<T> {\n const result = {} as CanFns<T>;\n for (const key of Object.keys(fns) as (keyof T & string)[]) {\n if (key.startsWith('get') && key.endsWith('Right')) {\n const canKey = `can${key.slice(3, -5)}` as keyof CanFns<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (result as any)[canKey] = (...args: unknown[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (fns as any)[key](...args) === ActionRight.Allowed;\n }\n }\n return result;\n}\n\n/**\n * Composable to manage rights.\n * Based on AuthStore, but converts roles to easily usable tests for various\n * actions.\n */\nexport const useRights = () => {\n const authStore = useAuthStore();\n\n function roleContainsAny(...roles: Role[]): boolean {\n return (authStore.authRole as Role[]).findIndex((r: Role) => roles.includes(r)) > -1;\n }\n\n function hasSufficientScope(elementRubriques: Array<number> = [], parentRubriques: Array<number> = []): boolean {\n const ids = elementRubriques.concat(parentRubriques);\n const scope = authStore.userScope;\n if (scope.length === 0) {\n return true;\n }\n\n for (const id of scope) {\n if (ids.includes(id)) {\n return true;\n }\n }\n\n return false;\n }\n\n ////////////////////////////\n // Emission rights\n ////////////////////////////\n function getCreateEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditEmissionRight(emission: Emission): ActionRight {\n if (!hasSufficientScope(emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n \n if (\n (!emission.emissionId && getCreateEmissionRight() === ActionRight.Allowed) ||\n roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ) {\n return ActionRight.Allowed;\n }\n\n if (roleContainsAny('RESTRICTED_PRODUCTION')) {\n return emission.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteEmissionRight(emission: Emission): ActionRight {\n // In case of restricted production, it will only delete podcasts\n // created by user, and delete the emission only if empty afterwards\n if (roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'RESTRICTED_PRODUCTION')) {\n return hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditCommentsConfigEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // Podcast rights\n function getCreatePodcastRight(emission?: Emission): ActionRight {\n if(roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return !emission || hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getDuplicatePodcastRight(): ActionRight {\n // Same as creation but notably without PODCAST_CRUD and RESTRICTED_ANIMATION\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPodcastRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n if (roleContainsAny('PODCAST_CRUD')) {\n return podcast.valid === false && podcast.publisher?.userId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePodcastRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getValidatePodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'PODCAST_VALIDATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCommentsConfigPodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Playlist rights\n ////////////////////////////\n function getCreatePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Participant rights\n ////////////////////////////\n function getCreateParticipantRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function getParticipantEditRight(participantId: number|undefined): Promise<ActionRight> {\n // New participants can be edited, and also with sufficient rights\n return (!participantId || roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION'))\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function canEditParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n async function canDeleteParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n ////////////////////////////\n // Rubriques/rubriquage rights\n ////////////////////////////\n function getCreateRubriquesRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'EDITION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function getEditRubriquesRight(_element: Rubrique|Rubriquage): ActionRight {\n return getCreateRubriquesRight();\n }\n\n ////////////////////////////\n // Aggregator rights\n ////////////////////////////\n function getCreateAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeleteAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Cartouchier rights\n ////////////////////////////\n function getCreateCartouchierRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCartouchierRight(element: Cartouchier): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteCartouchierRight(element: Cartouchier): ActionRight {\n return getEditCartouchierRight(element);\n }\n\n ////////////////////////////\n // PlaylistMedia rights\n ////////////////////////////\n function getCreatePlaylistMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistMediaRight(element: PlaylistMedia): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistMediaRight(element: PlaylistMedia): ActionRight {\n return getEditPlaylistMediaRight(element);\n }\n\n ////////////////////////////\n // Media rights\n ////////////////////////////\n function getCreateMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMediaRight(element: Media): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteMediaRight(element: Media): ActionRight {\n return getEditMediaRight(element);\n }\n\n ////////////////////////////\n // Mix rights\n ////////////////////////////\n function getCreateMixRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'RADIO')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMixRight(_element: Mix): ActionRight {\n return getCreateMixRight();\n }\n\n function getDeleteMixRight(element: Mix): ActionRight {\n return getEditMixRight(element);\n }\n\n ////////////////////////////\n // Transcript/translation rights\n ////////////////////////////\n function getEditTranscriptRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'PODCAST_CRUD')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getEditTranscriptVisibilityRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditTranslationRight(podcast: Podcast): ActionRight {\n return getEditTranscriptRight(podcast);\n }\n\n ////////////////////////////\n // Live\n ////////////////////////////\n function getAccessRecordingRight(conference: Conference, isLive: boolean): ActionRight {\n if (isLive) {\n return roleContainsAny('LIVE') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n } else {\n return roleContainsAny('ANIMATION', 'RESTRICTED_ANIMATION') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n }\n }\n\n ////////////////////////////\n // Other action rights\n ////////////////////////////\n function getEditCodeInsertPlayerRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditChapteringRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getCreatePromoVideoRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n } else if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditPromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n function getDeletePromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n // View/utility checks — outside the action pattern\n function canSeeHistory(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION');\n }\n\n function isRestrictedProduction(): boolean {\n return roleContainsAny('RESTRICTED_PRODUCTION') && !roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n const rightFns = {\n // Emissions\n getCreateEmissionRight,\n getEditEmissionRight,\n getDeleteEmissionRight,\n getEditCommentsConfigEmissionRight,\n // Podcasts\n getCreatePodcastRight,\n getDuplicatePodcastRight,\n getEditPodcastRight,\n getDeletePodcastRight,\n getValidatePodcastRight,\n getEditCommentsConfigPodcastRight,\n // Playlists\n getCreatePlaylistRight,\n getEditPlaylistRight,\n getDeletePlaylistRight,\n // Participants (sync only)\n getCreateParticipantRight,\n // Rubriques/Rubriquages\n getCreateRubriquesRight,\n getEditRubriquesRight,\n // Aggregators\n getCreateAggregatorRight,\n getEditAggregatorRight,\n getDeleteAggregatorRight,\n // Cartouchier\n getCreateCartouchierRight,\n getEditCartouchierRight,\n getDeleteCartouchierRight,\n // PlaylistMedia\n getCreatePlaylistMediaRight,\n getEditPlaylistMediaRight,\n getDeletePlaylistMediaRight,\n // Media\n getCreateMediaRight,\n getEditMediaRight,\n getDeleteMediaRight,\n // Mix\n getCreateMixRight,\n getEditMixRight,\n getDeleteMixRight,\n // Translation/transcription\n getEditTranscriptRight,\n getEditTranscriptVisibilityRight,\n getEditTranslationRight,\n // Other\n getAccessRecordingRight,\n getEditCodeInsertPlayerRight,\n getEditChapteringRight,\n getCreatePromoVideoRight,\n getEditPromoVideoRight,\n getDeletePromoVideoRight\n };\n\n const canFns = deriveCanFunctions(rightFns);\n\n function canReadRSSRules(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n function canEditRSSRules(): boolean {\n return canReadRSSRules();\n }\n\n return {\n ...rightFns,\n ...canFns,\n // Async participant (kept manually — async functions excluded from deriveCanFunctions)\n getParticipantEditRight,\n canEditParticipant,\n canDeleteParticipant,\n // RSS Rules (manual — outside the getRightXxx convention)\n canReadRSSRules,\n canEditRSSRules,\n // View/utility checks\n canSeeHistory,\n isRestrictedProduction,\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRights-ChjlGASZ.mjs","names":[],"sources":["../src/components/composable/useRights.ts"],"sourcesContent":["import { Mix } from \"../../stores/class/radio/mix\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport type { Emission } from \"../../stores/class/general/emission\";\nimport type { Podcast } from \"../../stores/class/general/podcast\";\nimport { PlaylistMedia } from \"../../stores/class/radio/playlistMedia\";\nimport { Cartouchier } from \"../../stores/class/cartouchier/cartouchier\";\nimport { Media } from \"../../stores/class/general/media\";\nimport { Conference } from \"../../stores/class/conference/conference\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\n\ntype Role =\n 'ADMIN'|'ORGANISATION'|\n 'PRODUCTION'|'RESTRICTED_PRODUCTION'|'PODCAST_CRUD'|'PODCAST_VALIDATION'|\n 'PLAYLISTS'|'ANIMATION'|'RESTRICTED_ANIMATION'|'RADIO'|'LIVE'|\n 'EDITION'\n ;\n\nexport enum ActionRight {\n /** User can perform the action */\n Allowed = 'allowed',\n /** User lacks the required role */\n DeniedNoRight = 'no_right', \n /** User has a restricted role but does not own the resource **/\n DeniedNotOwner = 'not_owner',\n /** User is scoped to specific rubriques */\n DeniedInsufficientScope = 'no_scope'\n}\n\n// Constraint type for the object passed to deriveCanFunctions.\n// any[] is intentional: it allows functions with any parameter signature to satisfy\n// the constraint while still enforcing that the return type is ActionRight.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SyncRightFns = Record<string, (...args: any[]) => ActionRight>;\n\n// Maps every key of the form `get${A}Right` to `can${A}`, preserving the parameter\n// types of the original function but changing the return type to boolean.\n// Keys that do not match the naming convention are dropped (mapped to never).\ntype CanFns<T extends SyncRightFns> = {\n [K in keyof T as K extends `get${infer A}Right` ? `can${A}` : never]:\n T[K] extends (...args: infer P) => ActionRight ? (...args: P) => boolean : never;\n};\n\n/**\n * Generates boolean shortcut functions from a set of `getRightXxx` functions.\n *\n * Convention: `get${Action}Right(…args) → ActionRight`\n * becomes `can${Action}(…args) → boolean`\n *\n * The generated function returns true when the underlying getRightXxx returns\n * ActionRight.Allowed, and false otherwise. This means callers that only need\n * a simple yes/no answer can use canXxx(), while callers that need the specific\n * denial reason (DeniedNoRight vs DeniedNotOwner) can call getRightXxx() directly.\n *\n * Only synchronous functions should be passed here; async rights functions must\n * be wrapped manually.\n */\nfunction deriveCanFunctions<T extends SyncRightFns>(fns: T): CanFns<T> {\n const result = {} as CanFns<T>;\n for (const key of Object.keys(fns) as (keyof T & string)[]) {\n if (key.startsWith('get') && key.endsWith('Right')) {\n const canKey = `can${key.slice(3, -5)}` as keyof CanFns<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (result as any)[canKey] = (...args: unknown[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (fns as any)[key](...args) === ActionRight.Allowed;\n }\n }\n return result;\n}\n\n/**\n * Composable to manage rights.\n * Based on AuthStore, but converts roles to easily usable tests for various\n * actions.\n */\nexport const useRights = () => {\n const authStore = useAuthStore();\n\n function roleContainsAny(...roles: Role[]): boolean {\n return (authStore.authRole as Role[]).findIndex((r: Role) => roles.includes(r)) > -1;\n }\n\n function hasSufficientScope(elementRubriques: Array<number> = [], parentRubriques: Array<number> = []): boolean {\n const ids = elementRubriques.concat(parentRubriques);\n const scope = authStore.userScope;\n if (scope.length === 0) {\n return true;\n }\n\n for (const id of scope) {\n if (ids.includes(id)) {\n return true;\n }\n }\n\n return false;\n }\n\n ////////////////////////////\n // Emission rights\n ////////////////////////////\n function getCreateEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditEmissionRight(emission: Emission): ActionRight {\n if (!hasSufficientScope(emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n \n if (\n (!emission.emissionId && getCreateEmissionRight() === ActionRight.Allowed) ||\n roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ) {\n return ActionRight.Allowed;\n }\n\n if (roleContainsAny('RESTRICTED_PRODUCTION')) {\n return emission.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteEmissionRight(emission: Emission): ActionRight {\n // In case of restricted production, it will only delete podcasts\n // created by user, and delete the emission only if empty afterwards\n if (roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'RESTRICTED_PRODUCTION')) {\n return hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditCommentsConfigEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // Podcast rights\n function getCreatePodcastRight(emission?: Emission): ActionRight {\n if(roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return !emission || hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getDuplicatePodcastRight(): ActionRight {\n // Same as creation but notably without PODCAST_CRUD and RESTRICTED_ANIMATION\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPodcastRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n if (roleContainsAny('PODCAST_CRUD')) {\n return podcast.valid === false && podcast.publisher?.userId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePodcastRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getValidatePodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'PODCAST_VALIDATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCommentsConfigPodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Playlist rights\n ////////////////////////////\n function getCreatePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Participant rights\n ////////////////////////////\n function getCreateParticipantRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function getParticipantEditRight(participantId: number|undefined): Promise<ActionRight> {\n // New participants can be edited, and also with sufficient rights\n return (!participantId || roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION'))\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function canEditParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n async function canDeleteParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n ////////////////////////////\n // Rubriques/rubriquage rights\n ////////////////////////////\n function getCreateRubriquesRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'EDITION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function getEditRubriquesRight(_element: Rubrique|Rubriquage): ActionRight {\n return getCreateRubriquesRight();\n }\n\n ////////////////////////////\n // Aggregator rights\n ////////////////////////////\n function getCreateAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeleteAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Cartouchier rights\n ////////////////////////////\n function getCreateCartouchierRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCartouchierRight(element: Cartouchier): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteCartouchierRight(element: Cartouchier): ActionRight {\n return getEditCartouchierRight(element);\n }\n\n ////////////////////////////\n // PlaylistMedia rights\n ////////////////////////////\n function getCreatePlaylistMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistMediaRight(element: PlaylistMedia): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistMediaRight(element: PlaylistMedia): ActionRight {\n return getEditPlaylistMediaRight(element);\n }\n\n ////////////////////////////\n // Media rights\n ////////////////////////////\n function getCreateMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMediaRight(element: Media): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteMediaRight(element: Media): ActionRight {\n return getEditMediaRight(element);\n }\n\n ////////////////////////////\n // Mix rights\n ////////////////////////////\n function getCreateMixRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'RADIO')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMixRight(_element: Mix): ActionRight {\n return getCreateMixRight();\n }\n\n function getDeleteMixRight(element: Mix): ActionRight {\n return getEditMixRight(element);\n }\n\n ////////////////////////////\n // Transcript/translation rights\n ////////////////////////////\n function getEditTranscriptRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'PODCAST_CRUD')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getEditTranscriptVisibilityRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditTranslationRight(podcast: Podcast): ActionRight {\n return getEditTranscriptRight(podcast);\n }\n\n ////////////////////////////\n // Live\n ////////////////////////////\n function getAccessRecordingRight(conference: Conference, isLive: boolean): ActionRight {\n if (isLive) {\n return roleContainsAny('LIVE') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n } else {\n return roleContainsAny('ANIMATION', 'RESTRICTED_ANIMATION') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n }\n }\n\n ////////////////////////////\n // Other action rights\n ////////////////////////////\n function getEditCodeInsertPlayerRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditChapteringRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getCreatePromoVideoRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n } else if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditPromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n function getDeletePromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n // View/utility checks — outside the action pattern\n function canSeeHistory(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION');\n }\n\n function isRestrictedProduction(): boolean {\n return roleContainsAny('RESTRICTED_PRODUCTION') && !roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n const rightFns = {\n // Emissions\n getCreateEmissionRight,\n getEditEmissionRight,\n getDeleteEmissionRight,\n getEditCommentsConfigEmissionRight,\n // Podcasts\n getCreatePodcastRight,\n getDuplicatePodcastRight,\n getEditPodcastRight,\n getDeletePodcastRight,\n getValidatePodcastRight,\n getEditCommentsConfigPodcastRight,\n // Playlists\n getCreatePlaylistRight,\n getEditPlaylistRight,\n getDeletePlaylistRight,\n // Participants (sync only)\n getCreateParticipantRight,\n // Rubriques/Rubriquages\n getCreateRubriquesRight,\n getEditRubriquesRight,\n // Aggregators\n getCreateAggregatorRight,\n getEditAggregatorRight,\n getDeleteAggregatorRight,\n // Cartouchier\n getCreateCartouchierRight,\n getEditCartouchierRight,\n getDeleteCartouchierRight,\n // PlaylistMedia\n getCreatePlaylistMediaRight,\n getEditPlaylistMediaRight,\n getDeletePlaylistMediaRight,\n // Media\n getCreateMediaRight,\n getEditMediaRight,\n getDeleteMediaRight,\n // Mix\n getCreateMixRight,\n getEditMixRight,\n getDeleteMixRight,\n // Translation/transcription\n getEditTranscriptRight,\n getEditTranscriptVisibilityRight,\n getEditTranslationRight,\n // Other\n getAccessRecordingRight,\n getEditCodeInsertPlayerRight,\n getEditChapteringRight,\n getCreatePromoVideoRight,\n getEditPromoVideoRight,\n getDeletePromoVideoRight\n };\n\n const canFns = deriveCanFunctions(rightFns);\n\n function canReadRSSRules(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n function canEditRSSRules(): boolean {\n return canReadRSSRules();\n }\n\n return {\n ...rightFns,\n ...canFns,\n // Async participant (kept manually — async functions excluded from deriveCanFunctions)\n getParticipantEditRight,\n canEditParticipant,\n canDeleteParticipant,\n // RSS Rules (manual — outside the getRightXxx convention)\n canReadRSSRules,\n canEditRSSRules,\n // View/utility checks\n canSeeHistory,\n isRestrictedProduction,\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,276 @@
1
+ import { i as useAuthStore } from "./classicApi-ChvwoPGT.mjs";
2
+ //#region src/components/composable/useRights.ts
3
+ var ActionRight = /* @__PURE__ */ function(ActionRight) {
4
+ /** User can perform the action */
5
+ ActionRight["Allowed"] = "allowed";
6
+ /** User lacks the required role */
7
+ ActionRight["DeniedNoRight"] = "no_right";
8
+ /** User has a restricted role but does not own the resource **/
9
+ ActionRight["DeniedNotOwner"] = "not_owner";
10
+ /** User is scoped to specific rubriques */
11
+ ActionRight["DeniedInsufficientScope"] = "no_scope";
12
+ return ActionRight;
13
+ }({});
14
+ /**
15
+ * Generates boolean shortcut functions from a set of `getRightXxx` functions.
16
+ *
17
+ * Convention: `get${Action}Right(…args) → ActionRight`
18
+ * becomes `can${Action}(…args) → boolean`
19
+ *
20
+ * The generated function returns true when the underlying getRightXxx returns
21
+ * ActionRight.Allowed, and false otherwise. This means callers that only need
22
+ * a simple yes/no answer can use canXxx(), while callers that need the specific
23
+ * denial reason (DeniedNoRight vs DeniedNotOwner) can call getRightXxx() directly.
24
+ *
25
+ * Only synchronous functions should be passed here; async rights functions must
26
+ * be wrapped manually.
27
+ */
28
+ function deriveCanFunctions(fns) {
29
+ const result = {};
30
+ for (const key of Object.keys(fns)) if (key.startsWith("get") && key.endsWith("Right")) {
31
+ const canKey = `can${key.slice(3, -5)}`;
32
+ result[canKey] = (...args) => fns[key](...args) === "allowed";
33
+ }
34
+ return result;
35
+ }
36
+ /**
37
+ * Composable to manage rights.
38
+ * Based on AuthStore, but converts roles to easily usable tests for various
39
+ * actions.
40
+ */
41
+ var useRights = () => {
42
+ const authStore = useAuthStore();
43
+ function roleContainsAny(...roles) {
44
+ return authStore.authRole.findIndex((r) => roles.includes(r)) > -1;
45
+ }
46
+ function hasSufficientScope(elementRubriques = [], parentRubriques = []) {
47
+ const ids = elementRubriques.concat(parentRubriques);
48
+ const scope = authStore.userScope;
49
+ if (scope.length === 0) return true;
50
+ for (const id of scope) if (ids.includes(id)) return true;
51
+ return false;
52
+ }
53
+ function getCreateEmissionRight() {
54
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RESTRICTED_PRODUCTION") ? "allowed" : "no_right";
55
+ }
56
+ function getEditEmissionRight(emission) {
57
+ if (!hasSufficientScope(emission.rubriqueIds)) return "no_scope";
58
+ if (!emission.emissionId && getCreateEmissionRight() === "allowed" || roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION")) return "allowed";
59
+ if (roleContainsAny("RESTRICTED_PRODUCTION")) return emission.createdByUserId === authStore.authProfile?.userId ? "allowed" : "not_owner";
60
+ return "no_right";
61
+ }
62
+ function getDeleteEmissionRight(emission) {
63
+ if (roleContainsAny("ADMIN", "ORGANISATION")) return "allowed";
64
+ else if (roleContainsAny("PRODUCTION", "RESTRICTED_PRODUCTION")) return hasSufficientScope(emission.rubriqueIds) ? "allowed" : "no_scope";
65
+ else return "no_right";
66
+ }
67
+ function getEditCommentsConfigEmissionRight() {
68
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION") ? "allowed" : "no_right";
69
+ }
70
+ function getCreatePodcastRight(emission) {
71
+ if (roleContainsAny("ADMIN", "ORGANISATION")) return "allowed";
72
+ else if (roleContainsAny("PRODUCTION", "PODCAST_CRUD", "RESTRICTED_PRODUCTION", "RESTRICTED_ANIMATION")) return !emission || hasSufficientScope(emission.rubriqueIds) ? "allowed" : "no_scope";
73
+ else return "no_right";
74
+ }
75
+ function getDuplicatePodcastRight() {
76
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RESTRICTED_PRODUCTION") ? "allowed" : "no_right";
77
+ }
78
+ function getEditPodcastRight(podcast) {
79
+ if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) return "no_scope";
80
+ if (roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION")) return "allowed";
81
+ if (roleContainsAny("RESTRICTED_PRODUCTION", "RESTRICTED_ANIMATION")) return podcast.createdByUserId === authStore.authProfile?.userId ? "allowed" : "not_owner";
82
+ if (roleContainsAny("PODCAST_CRUD")) return podcast.valid === false && podcast.publisher?.userId === authStore.authProfile?.userId ? "allowed" : "not_owner";
83
+ return "no_right";
84
+ }
85
+ function getDeletePodcastRight(podcast) {
86
+ return getEditPodcastRight(podcast);
87
+ }
88
+ function getValidatePodcastRight() {
89
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "PODCAST_VALIDATION") ? "allowed" : "no_right";
90
+ }
91
+ function getEditCommentsConfigPodcastRight() {
92
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION") ? "allowed" : "no_right";
93
+ }
94
+ function getCreatePlaylistRight() {
95
+ return roleContainsAny("ADMIN", "ORGANISATION", "PLAYLISTS") ? "allowed" : "no_right";
96
+ }
97
+ function getEditPlaylistRight() {
98
+ return roleContainsAny("ADMIN", "ORGANISATION", "PLAYLISTS") ? "allowed" : "no_right";
99
+ }
100
+ function getDeletePlaylistRight() {
101
+ return roleContainsAny("ADMIN", "ORGANISATION", "PLAYLISTS") ? "allowed" : "no_right";
102
+ }
103
+ function getCreateParticipantRight() {
104
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RESTRICTED_PRODUCTION") ? "allowed" : "no_right";
105
+ }
106
+ async function getParticipantEditRight(participantId) {
107
+ return !participantId || roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RESTRICTED_PRODUCTION") ? "allowed" : "no_right";
108
+ }
109
+ async function canEditParticipant(participantId) {
110
+ return await getParticipantEditRight(participantId) === "allowed";
111
+ }
112
+ async function canDeleteParticipant(participantId) {
113
+ return await getParticipantEditRight(participantId) === "allowed";
114
+ }
115
+ function getCreateRubriquesRight() {
116
+ return roleContainsAny("ADMIN", "ORGANISATION", "EDITION") ? "allowed" : "no_right";
117
+ }
118
+ function getEditRubriquesRight(_element) {
119
+ return getCreateRubriquesRight();
120
+ }
121
+ function getCreateAggregatorRight() {
122
+ return roleContainsAny("ADMIN", "ORGANISATION") ? "allowed" : "no_right";
123
+ }
124
+ function getEditAggregatorRight() {
125
+ return roleContainsAny("ADMIN", "ORGANISATION") ? "allowed" : "no_right";
126
+ }
127
+ function getDeleteAggregatorRight() {
128
+ return roleContainsAny("ADMIN", "ORGANISATION") ? "allowed" : "no_right";
129
+ }
130
+ function getCreateCartouchierRight() {
131
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RADIO", "ANIMATION", "PODCAST_CRUD", "RESTRICTED_PRODUCTION", "RESTRICTED_ANIMATION") ? "allowed" : "no_right";
132
+ }
133
+ function getEditCartouchierRight(element) {
134
+ if (roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RADIO", "ANIMATION")) return "allowed";
135
+ if (roleContainsAny("RESTRICTED_PRODUCTION", "RESTRICTED_ANIMATION", "PODCAST_CRUD")) return element.ownerId !== void 0 && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId ? "allowed" : "not_owner";
136
+ return "no_right";
137
+ }
138
+ function getDeleteCartouchierRight(element) {
139
+ return getEditCartouchierRight(element);
140
+ }
141
+ function getCreatePlaylistMediaRight() {
142
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RADIO", "ANIMATION", "PODCAST_CRUD", "RESTRICTED_PRODUCTION", "RESTRICTED_ANIMATION") ? "allowed" : "no_right";
143
+ }
144
+ function getEditPlaylistMediaRight(element) {
145
+ if (roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RADIO", "ANIMATION")) return "allowed";
146
+ if (roleContainsAny("RESTRICTED_PRODUCTION", "RESTRICTED_ANIMATION", "PODCAST_CRUD")) return element.ownerId !== void 0 && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId ? "allowed" : "not_owner";
147
+ return "no_right";
148
+ }
149
+ function getDeletePlaylistMediaRight(element) {
150
+ return getEditPlaylistMediaRight(element);
151
+ }
152
+ function getCreateMediaRight() {
153
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RADIO", "ANIMATION", "PODCAST_CRUD", "RESTRICTED_PRODUCTION", "RESTRICTED_ANIMATION") ? "allowed" : "no_right";
154
+ }
155
+ function getEditMediaRight(element) {
156
+ if (roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION", "RADIO", "ANIMATION")) return "allowed";
157
+ if (roleContainsAny("RESTRICTED_PRODUCTION", "RESTRICTED_ANIMATION", "PODCAST_CRUD")) return element.ownerId !== void 0 && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId ? "allowed" : "not_owner";
158
+ return "no_right";
159
+ }
160
+ function getDeleteMediaRight(element) {
161
+ return getEditMediaRight(element);
162
+ }
163
+ function getCreateMixRight() {
164
+ return roleContainsAny("ADMIN", "ORGANISATION", "RADIO") ? "allowed" : "no_right";
165
+ }
166
+ function getEditMixRight(_element) {
167
+ return getCreateMixRight();
168
+ }
169
+ function getDeleteMixRight(element) {
170
+ return getEditMixRight(element);
171
+ }
172
+ function getEditTranscriptRight(podcast) {
173
+ if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) return "no_scope";
174
+ if (roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION")) return "allowed";
175
+ if (roleContainsAny("RESTRICTED_PRODUCTION", "PODCAST_CRUD")) return podcast.createdByUserId === authStore.authProfile?.userId ? "allowed" : "not_owner";
176
+ return "no_right";
177
+ }
178
+ function getEditTranscriptVisibilityRight(podcast) {
179
+ if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) return "no_scope";
180
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION") ? "allowed" : "no_right";
181
+ }
182
+ function getEditTranslationRight(podcast) {
183
+ return getEditTranscriptRight(podcast);
184
+ }
185
+ function getAccessRecordingRight(conference, isLive) {
186
+ if (isLive) return roleContainsAny("LIVE") ? "allowed" : "no_right";
187
+ else return roleContainsAny("ANIMATION", "RESTRICTED_ANIMATION") ? "allowed" : "no_right";
188
+ }
189
+ function getEditCodeInsertPlayerRight() {
190
+ return roleContainsAny("ADMIN", "ORGANISATION") ? "allowed" : "no_right";
191
+ }
192
+ function getEditChapteringRight(podcast) {
193
+ return getEditPodcastRight(podcast);
194
+ }
195
+ function getCreatePromoVideoRight(podcast) {
196
+ if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) return "no_scope";
197
+ else if (roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION")) return "allowed";
198
+ else return "no_right";
199
+ }
200
+ function getEditPromoVideoRight(podcast) {
201
+ return getCreatePromoVideoRight(podcast);
202
+ }
203
+ function getDeletePromoVideoRight(podcast) {
204
+ return getCreatePromoVideoRight(podcast);
205
+ }
206
+ function canSeeHistory() {
207
+ return roleContainsAny("ADMIN", "ORGANISATION");
208
+ }
209
+ function isRestrictedProduction() {
210
+ return roleContainsAny("RESTRICTED_PRODUCTION") && !roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION");
211
+ }
212
+ const rightFns = {
213
+ getCreateEmissionRight,
214
+ getEditEmissionRight,
215
+ getDeleteEmissionRight,
216
+ getEditCommentsConfigEmissionRight,
217
+ getCreatePodcastRight,
218
+ getDuplicatePodcastRight,
219
+ getEditPodcastRight,
220
+ getDeletePodcastRight,
221
+ getValidatePodcastRight,
222
+ getEditCommentsConfigPodcastRight,
223
+ getCreatePlaylistRight,
224
+ getEditPlaylistRight,
225
+ getDeletePlaylistRight,
226
+ getCreateParticipantRight,
227
+ getCreateRubriquesRight,
228
+ getEditRubriquesRight,
229
+ getCreateAggregatorRight,
230
+ getEditAggregatorRight,
231
+ getDeleteAggregatorRight,
232
+ getCreateCartouchierRight,
233
+ getEditCartouchierRight,
234
+ getDeleteCartouchierRight,
235
+ getCreatePlaylistMediaRight,
236
+ getEditPlaylistMediaRight,
237
+ getDeletePlaylistMediaRight,
238
+ getCreateMediaRight,
239
+ getEditMediaRight,
240
+ getDeleteMediaRight,
241
+ getCreateMixRight,
242
+ getEditMixRight,
243
+ getDeleteMixRight,
244
+ getEditTranscriptRight,
245
+ getEditTranscriptVisibilityRight,
246
+ getEditTranslationRight,
247
+ getAccessRecordingRight,
248
+ getEditCodeInsertPlayerRight,
249
+ getEditChapteringRight,
250
+ getCreatePromoVideoRight,
251
+ getEditPromoVideoRight,
252
+ getDeletePromoVideoRight
253
+ };
254
+ const canFns = deriveCanFunctions(rightFns);
255
+ function canReadRSSRules() {
256
+ return roleContainsAny("ADMIN", "ORGANISATION", "PRODUCTION");
257
+ }
258
+ function canEditRSSRules() {
259
+ return canReadRSSRules();
260
+ }
261
+ return {
262
+ ...rightFns,
263
+ ...canFns,
264
+ getParticipantEditRight,
265
+ canEditParticipant,
266
+ canDeleteParticipant,
267
+ canReadRSSRules,
268
+ canEditRSSRules,
269
+ canSeeHistory,
270
+ isRestrictedProduction
271
+ };
272
+ };
273
+ //#endregion
274
+ export { useRights as n, ActionRight as t };
275
+
276
+ //# sourceMappingURL=useRights-DNL2VJUc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRights-DNL2VJUc.mjs","names":[],"sources":["../src/components/composable/useRights.ts"],"sourcesContent":["import { Mix } from \"../../stores/class/radio/mix\";\nimport { useAuthStore } from \"../../stores/AuthStore\";\nimport type { Emission } from \"../../stores/class/general/emission\";\nimport type { Podcast } from \"../../stores/class/general/podcast\";\nimport { PlaylistMedia } from \"../../stores/class/radio/playlistMedia\";\nimport { Cartouchier } from \"../../stores/class/cartouchier/cartouchier\";\nimport { Media } from \"../../stores/class/general/media\";\nimport { Conference } from \"../../stores/class/conference/conference\";\nimport { Rubrique } from \"@/stores/class/rubrique/rubrique\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\n\ntype Role =\n 'ADMIN'|'ORGANISATION'|\n 'PRODUCTION'|'RESTRICTED_PRODUCTION'|'PODCAST_CRUD'|'PODCAST_VALIDATION'|\n 'PLAYLISTS'|'ANIMATION'|'RESTRICTED_ANIMATION'|'RADIO'|'LIVE'|\n 'EDITION'\n ;\n\nexport enum ActionRight {\n /** User can perform the action */\n Allowed = 'allowed',\n /** User lacks the required role */\n DeniedNoRight = 'no_right', \n /** User has a restricted role but does not own the resource **/\n DeniedNotOwner = 'not_owner',\n /** User is scoped to specific rubriques */\n DeniedInsufficientScope = 'no_scope'\n}\n\n// Constraint type for the object passed to deriveCanFunctions.\n// any[] is intentional: it allows functions with any parameter signature to satisfy\n// the constraint while still enforcing that the return type is ActionRight.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SyncRightFns = Record<string, (...args: any[]) => ActionRight>;\n\n// Maps every key of the form `get${A}Right` to `can${A}`, preserving the parameter\n// types of the original function but changing the return type to boolean.\n// Keys that do not match the naming convention are dropped (mapped to never).\ntype CanFns<T extends SyncRightFns> = {\n [K in keyof T as K extends `get${infer A}Right` ? `can${A}` : never]:\n T[K] extends (...args: infer P) => ActionRight ? (...args: P) => boolean : never;\n};\n\n/**\n * Generates boolean shortcut functions from a set of `getRightXxx` functions.\n *\n * Convention: `get${Action}Right(…args) → ActionRight`\n * becomes `can${Action}(…args) → boolean`\n *\n * The generated function returns true when the underlying getRightXxx returns\n * ActionRight.Allowed, and false otherwise. This means callers that only need\n * a simple yes/no answer can use canXxx(), while callers that need the specific\n * denial reason (DeniedNoRight vs DeniedNotOwner) can call getRightXxx() directly.\n *\n * Only synchronous functions should be passed here; async rights functions must\n * be wrapped manually.\n */\nfunction deriveCanFunctions<T extends SyncRightFns>(fns: T): CanFns<T> {\n const result = {} as CanFns<T>;\n for (const key of Object.keys(fns) as (keyof T & string)[]) {\n if (key.startsWith('get') && key.endsWith('Right')) {\n const canKey = `can${key.slice(3, -5)}` as keyof CanFns<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (result as any)[canKey] = (...args: unknown[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (fns as any)[key](...args) === ActionRight.Allowed;\n }\n }\n return result;\n}\n\n/**\n * Composable to manage rights.\n * Based on AuthStore, but converts roles to easily usable tests for various\n * actions.\n */\nexport const useRights = () => {\n const authStore = useAuthStore();\n\n function roleContainsAny(...roles: Role[]): boolean {\n return (authStore.authRole as Role[]).findIndex((r: Role) => roles.includes(r)) > -1;\n }\n\n function hasSufficientScope(elementRubriques: Array<number> = [], parentRubriques: Array<number> = []): boolean {\n const ids = elementRubriques.concat(parentRubriques);\n const scope = authStore.userScope;\n if (scope.length === 0) {\n return true;\n }\n\n for (const id of scope) {\n if (ids.includes(id)) {\n return true;\n }\n }\n\n return false;\n }\n\n ////////////////////////////\n // Emission rights\n ////////////////////////////\n function getCreateEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditEmissionRight(emission: Emission): ActionRight {\n if (!hasSufficientScope(emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n \n if (\n (!emission.emissionId && getCreateEmissionRight() === ActionRight.Allowed) ||\n roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ) {\n return ActionRight.Allowed;\n }\n\n if (roleContainsAny('RESTRICTED_PRODUCTION')) {\n return emission.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteEmissionRight(emission: Emission): ActionRight {\n // In case of restricted production, it will only delete podcasts\n // created by user, and delete the emission only if empty afterwards\n if (roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'RESTRICTED_PRODUCTION')) {\n return hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditCommentsConfigEmissionRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // Podcast rights\n function getCreatePodcastRight(emission?: Emission): ActionRight {\n if(roleContainsAny('ADMIN', 'ORGANISATION')) {\n return ActionRight.Allowed;\n } else if (roleContainsAny('PRODUCTION', 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return !emission || hasSufficientScope(emission.rubriqueIds)\n ? ActionRight.Allowed\n : ActionRight.DeniedInsufficientScope;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getDuplicatePodcastRight(): ActionRight {\n // Same as creation but notably without PODCAST_CRUD and RESTRICTED_ANIMATION\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPodcastRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n if (roleContainsAny('PODCAST_CRUD')) {\n return podcast.valid === false && podcast.publisher?.userId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePodcastRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getValidatePodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'PODCAST_VALIDATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCommentsConfigPodcastRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Playlist rights\n ////////////////////////////\n function getCreatePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PLAYLISTS')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Participant rights\n ////////////////////////////\n function getCreateParticipantRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function getParticipantEditRight(participantId: number|undefined): Promise<ActionRight> {\n // New participants can be edited, and also with sufficient rights\n return (!participantId || roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RESTRICTED_PRODUCTION'))\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n async function canEditParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n async function canDeleteParticipant(participantId: number|undefined): Promise<boolean> {\n return await getParticipantEditRight(participantId) === ActionRight.Allowed;\n }\n\n ////////////////////////////\n // Rubriques/rubriquage rights\n ////////////////////////////\n function getCreateRubriquesRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'EDITION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function getEditRubriquesRight(_element: Rubrique|Rubriquage): ActionRight {\n return getCreateRubriquesRight();\n }\n\n ////////////////////////////\n // Aggregator rights\n ////////////////////////////\n function getCreateAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getDeleteAggregatorRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n ////////////////////////////\n // Cartouchier rights\n ////////////////////////////\n function getCreateCartouchierRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditCartouchierRight(element: Cartouchier): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteCartouchierRight(element: Cartouchier): ActionRight {\n return getEditCartouchierRight(element);\n }\n\n ////////////////////////////\n // PlaylistMedia rights\n ////////////////////////////\n function getCreatePlaylistMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditPlaylistMediaRight(element: PlaylistMedia): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeletePlaylistMediaRight(element: PlaylistMedia): ActionRight {\n return getEditPlaylistMediaRight(element);\n }\n\n ////////////////////////////\n // Media rights\n ////////////////////////////\n function getCreateMediaRight(): ActionRight {\n return roleContainsAny(\n 'ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION',\n 'PODCAST_CRUD', 'RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION'\n )\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMediaRight(element: Media): ActionRight {\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION', 'RADIO', 'ANIMATION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'RESTRICTED_ANIMATION', 'PODCAST_CRUD')) {\n return element.ownerId !== undefined && element.ownerId !== null && element.ownerId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getDeleteMediaRight(element: Media): ActionRight {\n return getEditMediaRight(element);\n }\n\n ////////////////////////////\n // Mix rights\n ////////////////////////////\n function getCreateMixRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'RADIO')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditMixRight(_element: Mix): ActionRight {\n return getCreateMixRight();\n }\n\n function getDeleteMixRight(element: Mix): ActionRight {\n return getEditMixRight(element);\n }\n\n ////////////////////////////\n // Transcript/translation rights\n ////////////////////////////\n function getEditTranscriptRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n }\n if (roleContainsAny('RESTRICTED_PRODUCTION', 'PODCAST_CRUD')) {\n return podcast.createdByUserId === authStore.authProfile?.userId\n ? ActionRight.Allowed\n : ActionRight.DeniedNotOwner;\n }\n return ActionRight.DeniedNoRight;\n }\n\n function getEditTranscriptVisibilityRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n }\n\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditTranslationRight(podcast: Podcast): ActionRight {\n return getEditTranscriptRight(podcast);\n }\n\n ////////////////////////////\n // Live\n ////////////////////////////\n function getAccessRecordingRight(conference: Conference, isLive: boolean): ActionRight {\n if (isLive) {\n return roleContainsAny('LIVE') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n } else {\n return roleContainsAny('ANIMATION', 'RESTRICTED_ANIMATION') ? ActionRight.Allowed : ActionRight.DeniedNoRight;\n }\n }\n\n ////////////////////////////\n // Other action rights\n ////////////////////////////\n function getEditCodeInsertPlayerRight(): ActionRight {\n return roleContainsAny('ADMIN', 'ORGANISATION')\n ? ActionRight.Allowed\n : ActionRight.DeniedNoRight;\n }\n\n function getEditChapteringRight(podcast: Podcast): ActionRight {\n return getEditPodcastRight(podcast);\n }\n\n function getCreatePromoVideoRight(podcast: Podcast): ActionRight {\n if (!hasSufficientScope(podcast.rubriqueIds, podcast.emission.rubriqueIds)) {\n return ActionRight.DeniedInsufficientScope;\n } else if (roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION')) {\n return ActionRight.Allowed;\n } else {\n return ActionRight.DeniedNoRight;\n }\n }\n\n function getEditPromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n function getDeletePromoVideoRight(podcast: Podcast): ActionRight {\n return getCreatePromoVideoRight(podcast);\n }\n\n // View/utility checks — outside the action pattern\n function canSeeHistory(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION');\n }\n\n function isRestrictedProduction(): boolean {\n return roleContainsAny('RESTRICTED_PRODUCTION') && !roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n const rightFns = {\n // Emissions\n getCreateEmissionRight,\n getEditEmissionRight,\n getDeleteEmissionRight,\n getEditCommentsConfigEmissionRight,\n // Podcasts\n getCreatePodcastRight,\n getDuplicatePodcastRight,\n getEditPodcastRight,\n getDeletePodcastRight,\n getValidatePodcastRight,\n getEditCommentsConfigPodcastRight,\n // Playlists\n getCreatePlaylistRight,\n getEditPlaylistRight,\n getDeletePlaylistRight,\n // Participants (sync only)\n getCreateParticipantRight,\n // Rubriques/Rubriquages\n getCreateRubriquesRight,\n getEditRubriquesRight,\n // Aggregators\n getCreateAggregatorRight,\n getEditAggregatorRight,\n getDeleteAggregatorRight,\n // Cartouchier\n getCreateCartouchierRight,\n getEditCartouchierRight,\n getDeleteCartouchierRight,\n // PlaylistMedia\n getCreatePlaylistMediaRight,\n getEditPlaylistMediaRight,\n getDeletePlaylistMediaRight,\n // Media\n getCreateMediaRight,\n getEditMediaRight,\n getDeleteMediaRight,\n // Mix\n getCreateMixRight,\n getEditMixRight,\n getDeleteMixRight,\n // Translation/transcription\n getEditTranscriptRight,\n getEditTranscriptVisibilityRight,\n getEditTranslationRight,\n // Other\n getAccessRecordingRight,\n getEditCodeInsertPlayerRight,\n getEditChapteringRight,\n getCreatePromoVideoRight,\n getEditPromoVideoRight,\n getDeletePromoVideoRight\n };\n\n const canFns = deriveCanFunctions(rightFns);\n\n function canReadRSSRules(): boolean {\n return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');\n }\n\n function canEditRSSRules(): boolean {\n return canReadRSSRules();\n }\n\n return {\n ...rightFns,\n ...canFns,\n // Async participant (kept manually — async functions excluded from deriveCanFunctions)\n getParticipantEditRight,\n canEditParticipant,\n canDeleteParticipant,\n // RSS Rules (manual — outside the getRightXxx convention)\n canReadRSSRules,\n canEditRSSRules,\n // View/utility checks\n canSeeHistory,\n isRestrictedProduction,\n };\n};\n"],"mappings":"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"}