@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,212 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
3
+ import { A as state, i as useAuthStore } from "./classicApi-ChvwoPGT.mjs";
4
+ import { n as useRights, t as ActionRight } from "./useRights-DNL2VJUc.mjs";
5
+ import { t as ClassicPopover_default } from "./ClassicPopover-BIyLKorz.mjs";
6
+ import { computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, defineComponent, getCurrentInstance, openBlock, renderSlot, toDisplayString, withCtx } from "vue";
7
+ import { useI18n } from "vue-i18n";
8
+ import { storeToRefs } from "pinia";
9
+ //#region src/components/composable/useRightsIndicator.ts
10
+ var useRightsIndicator = (props) => {
11
+ const rights = useRights();
12
+ const { t, te } = useI18n();
13
+ const { isAuthenticated } = storeToRefs(useAuthStore());
14
+ const actionSegmentMap = {
15
+ create: "Create",
16
+ edit: "Edit",
17
+ delete: "Delete"
18
+ };
19
+ /**
20
+ * Whether to display the indicator
21
+ * It is not shown on podcastmaker, or for unidentified users
22
+ */
23
+ const displayIndicator = computed(() => {
24
+ return !state.generalParameters.podcastmaker && isAuthenticated.value;
25
+ });
26
+ /**
27
+ * The entity on which rights are checked
28
+ */
29
+ const entity = computed(() => {
30
+ let arg;
31
+ let entitySegment;
32
+ if ("podcast" in props && props.podcast) {
33
+ entitySegment = "Podcast";
34
+ arg = props.podcast;
35
+ } else if ("emission" in props && props.emission) {
36
+ entitySegment = "Emission";
37
+ arg = props.emission;
38
+ } else if ("cartouchier" in props && props.cartouchier) {
39
+ entitySegment = "Cartouchier";
40
+ arg = props.cartouchier;
41
+ } else if ("mix" in props && props.mix) {
42
+ entitySegment = "Mix";
43
+ arg = props.mix;
44
+ } else if ("playlistMedia" in props && props.playlistMedia) {
45
+ entitySegment = "PlaylistMedia";
46
+ arg = props.playlistMedia;
47
+ } else if ("media" in props && props.media) {
48
+ entitySegment = "Media";
49
+ arg = props.media;
50
+ } else if ("promoVideoFor" in props && props.promoVideoFor) {
51
+ entitySegment = "PromoVideo";
52
+ arg = props.promoVideoFor;
53
+ } else return null;
54
+ return [entitySegment, arg];
55
+ });
56
+ /**
57
+ * The current rights for the given entity
58
+ */
59
+ const actionRight = computed(() => {
60
+ const data = entity.value;
61
+ if (!data) return ActionRight.DeniedNoRight;
62
+ const [entitySegment, arg] = data;
63
+ if (props.action === "any") {
64
+ const checks = typeof arg === "object" && arg !== null ? [
65
+ "Create",
66
+ "Edit",
67
+ "Delete"
68
+ ] : ["Create"];
69
+ let best = ActionRight.DeniedNoRight;
70
+ for (const a of checks) {
71
+ const r = callRightMethod(`get${a}${entitySegment}Right`, arg);
72
+ if (r === ActionRight.Allowed) return ActionRight.Allowed;
73
+ if (r === ActionRight.DeniedNotOwner) best = ActionRight.DeniedNotOwner;
74
+ }
75
+ return best;
76
+ }
77
+ if ((props.action === "edit" || props.action === "delete") && typeof arg !== "object") return ActionRight.DeniedNoRight;
78
+ return callRightMethod(`get${actionSegmentMap[props.action]}${entitySegment}Right`, arg);
79
+ });
80
+ /** Helper for calling the method on useRights */
81
+ function callRightMethod(key, arg) {
82
+ return rights[key](arg);
83
+ }
84
+ return {
85
+ displayIndicator,
86
+ hasAccess: computed(() => {
87
+ return actionRight.value === ActionRight.Allowed;
88
+ }),
89
+ message: computed(() => {
90
+ const entitySegment = entity.value?.[0];
91
+ let key;
92
+ let genericKey;
93
+ switch (actionRight.value) {
94
+ case ActionRight.Allowed: return "";
95
+ case ActionRight.DeniedNotOwner:
96
+ key = `RightsIndicator - ${entitySegment} - Not owner`;
97
+ genericKey = "Generic - Action disabled - Not owner";
98
+ break;
99
+ case ActionRight.DeniedInsufficientScope:
100
+ key = `RightsIndicator - ${entitySegment} - Insufficient scope`;
101
+ genericKey = "RightsIndicator - Generic - Insufficient scope";
102
+ break;
103
+ case ActionRight.DeniedNoRight:
104
+ key = `RightsIndicator - ${entitySegment} - Insufficient rights`;
105
+ genericKey = "RightsIndicator - Generic - Insufficient rights";
106
+ break;
107
+ default: return "Cannot process rights";
108
+ }
109
+ if (te(key)) return t(key);
110
+ else return t(genericKey);
111
+ })
112
+ };
113
+ };
114
+ //#endregion
115
+ //#region src/components/display/RightsWrapper.vue?vue&type=script&setup=true&lang.ts
116
+ var RightsWrapper_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
117
+ __name: "RightsWrapper",
118
+ props: {
119
+ podcast: {
120
+ type: [Object, Boolean],
121
+ required: false,
122
+ skipCheck: true
123
+ },
124
+ action: {
125
+ type: String,
126
+ required: true
127
+ },
128
+ emission: {
129
+ type: [Object, Boolean],
130
+ required: false,
131
+ skipCheck: true
132
+ },
133
+ cartouchier: {
134
+ type: [Object, Boolean],
135
+ required: false,
136
+ skipCheck: true
137
+ },
138
+ mix: {
139
+ type: [Object, Boolean],
140
+ required: false,
141
+ skipCheck: true
142
+ },
143
+ playlistMedia: {
144
+ type: [Object, Boolean],
145
+ required: false,
146
+ skipCheck: true
147
+ },
148
+ media: {
149
+ type: [Object, Boolean],
150
+ required: false,
151
+ skipCheck: true
152
+ },
153
+ promoVideoFor: {
154
+ type: null,
155
+ required: false
156
+ }
157
+ },
158
+ setup(__props, { expose: __expose }) {
159
+ __expose();
160
+ const props = __props;
161
+ const { displayIndicator, hasAccess, message } = useRightsIndicator(props);
162
+ const uid = getCurrentInstance()?.uid;
163
+ const __returned__ = {
164
+ props,
165
+ displayIndicator,
166
+ hasAccess,
167
+ message,
168
+ uid,
169
+ elementId: computed(() => "rights-wrapper-" + uid),
170
+ ClassicPopover: ClassicPopover_default
171
+ };
172
+ Object.defineProperty(__returned__, "__isScriptSetup", {
173
+ enumerable: false,
174
+ value: true
175
+ });
176
+ return __returned__;
177
+ }
178
+ });
179
+ //#endregion
180
+ //#region src/components/display/RightsWrapper.vue
181
+ var RightsWrapper_exports = /* @__PURE__ */ __exportAll({ default: () => RightsWrapper_default });
182
+ var _hoisted_1 = { key: 0 };
183
+ var _hoisted_2 = {
184
+ key: 0,
185
+ class: "rights-visually-hidden"
186
+ };
187
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
188
+ return $setup.displayIndicator ? (openBlock(), createElementBlock("div", _hoisted_1, [
189
+ renderSlot(_ctx.$slots, "default", {
190
+ id: $setup.elementId,
191
+ hasAccess: $setup.hasAccess
192
+ }, void 0, true),
193
+ !$setup.hasAccess ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString($setup.message), 1)) : createCommentVNode("v-if", true),
194
+ !$setup.hasAccess ? (openBlock(), createBlock($setup["ClassicPopover"], {
195
+ key: 1,
196
+ target: $setup.elementId,
197
+ "only-mouse": ""
198
+ }, {
199
+ default: withCtx(() => [createTextVNode(toDisplayString($setup.message), 1)]),
200
+ _: 1
201
+ }, 8, ["target"])) : createCommentVNode("v-if", true)
202
+ ])) : createCommentVNode("v-if", true);
203
+ }
204
+ var RightsWrapper_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RightsWrapper_vue_vue_type_script_setup_true_lang_default, [
205
+ ["render", _sfc_render],
206
+ ["__scopeId", "data-v-ae2750ed"],
207
+ ["__file", "/home/julien/Workspace/octopus-sdk/src/components/display/RightsWrapper.vue"]
208
+ ]);
209
+ //#endregion
210
+ export { RightsWrapper_exports as n, useRightsIndicator as r, RightsWrapper_default as t };
211
+
212
+ //# sourceMappingURL=RightsWrapper-B8WfUUyU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsWrapper-B8WfUUyU.mjs","names":[],"sources":["../src/components/composable/useRightsIndicator.ts","../src/components/display/RightsWrapper.vue","../src/components/display/RightsWrapper.vue"],"sourcesContent":["import { Mix } from '../../stores/class/radio/mix';\nimport { PlaylistMedia } from '../../stores/class/radio/playlistMedia';\nimport { Podcast } from '../../stores/class/general/podcast';\nimport { Cartouchier } from '../../stores/class/cartouchier/cartouchier';\nimport { Media } from \"../../stores/class/general/media\";\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { ActionRight, useRights } from '../composable/useRights';\nimport { state } from '../../stores/ParamSdkStore';\nimport { useAuthStore } from '../../stores/AuthStore';\nimport { storeToRefs } from 'pinia';\nimport { Emission } from '@/stores/class/general/emission';\n\ntype Action = 'create'|'edit'|'delete'|'any';\n\nexport interface PropsBase {\n /** Type of action to check */\n action: Action;\n}\n\ntype NeverEntities = {\n podcast?: never;\n emission?: never;\n cartouchier?: never;\n mix?: never;\n playlistMedia?: never;\n media?: never;\n promoVideoFor?: never;\n};\n\nexport interface PropsPodcast extends PropsBase, Omit<NeverEntities, 'podcast'> {\n podcast: Podcast|boolean;\n}\nexport interface PropsEmission extends PropsBase, Omit<NeverEntities, 'emission'> {\n emission: Emission|boolean;\n}\nexport interface PropsCartouchier extends PropsBase, Omit<NeverEntities, 'cartouchier'> {\n cartouchier: Cartouchier|boolean;\n}\nexport interface PropsMix extends PropsBase, Omit<NeverEntities, 'mix'> {\n mix: Mix|boolean;\n}\nexport interface PropsPlaylistMedia extends PropsBase, Omit<NeverEntities, 'playlistMedia'> {\n playlistMedia: PlaylistMedia|boolean;\n}\nexport interface PropsMedia extends PropsBase, Omit<NeverEntities, 'media'> {\n media: Media|boolean;\n}\nexport interface PropsPromoVideo extends PropsBase, Omit<NeverEntities, 'promoVideoFor'> {\n promoVideoFor: Podcast;\n}\n\nexport type RightsProps = PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia;\n\nexport const useRightsIndicator = (props: PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia) => {\n const rights = useRights();\n const { t, te } = useI18n();\n const { isAuthenticated } = storeToRefs(useAuthStore());\n\n type Rights = ReturnType<typeof useRights>;\n type ActionSegment = 'Create'|'Edit'|'Delete';\n type EntitySegment = 'Podcast'|'Emission'|'Cartouchier'|'Mix'|'PlaylistMedia'|'Media'|'PromoVideo';\n type RightMethodKey = `get${ActionSegment}${EntitySegment}Right` & keyof Rights;\n type RightEntity = Podcast|Emission|Cartouchier|Mix|PlaylistMedia|Media|boolean|undefined;\n\n const actionSegmentMap: Record<Exclude<Action, 'any'>, ActionSegment> = {\n create: 'Create',\n edit: 'Edit',\n delete: 'Delete',\n };\n\n /**\n * Whether to display the indicator\n * It is not shown on podcastmaker, or for unidentified users\n */\n const displayIndicator = computed((): boolean => {\n return !state.generalParameters.podcastmaker && isAuthenticated.value;\n });\n\n /**\n * The entity on which rights are checked\n */\n const entity = computed((): [EntitySegment, RightEntity]|null => {\n let arg: RightEntity;\n let entitySegment: EntitySegment|undefined;\n\n if ('podcast' in props && props.podcast) {\n entitySegment = 'Podcast';\n arg = props.podcast;\n } else if ('emission' in props && props.emission) {\n entitySegment = 'Emission';\n arg = props.emission;\n } else if ('cartouchier' in props && props.cartouchier) {\n entitySegment = 'Cartouchier';\n arg = props.cartouchier;\n } else if ('mix' in props && props.mix) {\n entitySegment = 'Mix';\n arg = props.mix;\n } else if ('playlistMedia' in props && props.playlistMedia) {\n entitySegment = 'PlaylistMedia';\n arg = props.playlistMedia;\n } else if ('media' in props && props.media) {\n entitySegment = 'Media';\n arg = props.media;\n } else if ('promoVideoFor' in props && props.promoVideoFor) {\n entitySegment = 'PromoVideo';\n arg = props.promoVideoFor;\n } else {\n return null;\n }\n\n return [entitySegment, arg];\n });\n\n /**\n * The current rights for the given entity\n */\n const actionRight = computed((): ActionRight => {\n const data = entity.value;\n if (!data) {\n return ActionRight.DeniedNoRight;\n }\n\n const [entitySegment, arg] = data;\n\n if (props.action === 'any') {\n const checks: ActionSegment[] = typeof arg === 'object' && arg !== null\n ? ['Create', 'Edit', 'Delete']\n : ['Create'];\n\n let best = ActionRight.DeniedNoRight;\n for (const a of checks) {\n const key = `get${a}${entitySegment}Right` as RightMethodKey;\n const r = callRightMethod(key, arg);\n if (r === ActionRight.Allowed) {\n return ActionRight.Allowed;\n }\n if (r === ActionRight.DeniedNotOwner) {\n best = ActionRight.DeniedNotOwner;\n }\n }\n return best;\n }\n\n if ((props.action === 'edit' || props.action === 'delete') && typeof arg !== 'object') {\n return ActionRight.DeniedNoRight;\n }\n\n const methodName = `get${actionSegmentMap[props.action]}${entitySegment}Right` as RightMethodKey;\n return callRightMethod(methodName, arg);\n });\n\n /** Helper for calling the method on useRights */\n function callRightMethod(key: RightMethodKey, arg: unknown): ActionRight {\n return (rights[key] as (arg?: unknown) => ActionRight)(arg);\n }\n\n const hasAccess = computed((): boolean => {\n return actionRight.value === ActionRight.Allowed;\n });\n\n const message = computed((): string => {\n const entitySegment = entity.value?.[0];\n let key: string;\n let genericKey: string;\n \n switch (actionRight.value) {\n case ActionRight.Allowed:\n return '';\n\n case ActionRight.DeniedNotOwner:\n key = `RightsIndicator - ${entitySegment} - Not owner`;\n genericKey = 'Generic - Action disabled - Not owner';\n break;\n\n case ActionRight.DeniedInsufficientScope:\n key = `RightsIndicator - ${entitySegment} - Insufficient scope`;\n genericKey = 'RightsIndicator - Generic - Insufficient scope';\n break;\n\n case ActionRight.DeniedNoRight:\n key = `RightsIndicator - ${entitySegment} - Insufficient rights`;\n genericKey = 'RightsIndicator - Generic - Insufficient rights';\n break;\n\n default:\n return 'Cannot process rights';\n }\n\n if (te(key)) {\n return t(key);\n } else {\n return t(genericKey);\n }\n });\n\n return {\n displayIndicator,\n hasAccess,\n message\n }\n};\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsWrapper-C4RmSfic.mjs","names":[],"sources":["../src/components/composable/useRightsIndicator.ts","../src/components/display/RightsWrapper.vue","../src/components/display/RightsWrapper.vue"],"sourcesContent":["import { Mix } from '../../stores/class/radio/mix';\nimport { PlaylistMedia } from '../../stores/class/radio/playlistMedia';\nimport { Podcast } from '../../stores/class/general/podcast';\nimport { Cartouchier } from '../../stores/class/cartouchier/cartouchier';\nimport { Media } from \"../../stores/class/general/media\";\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { ActionRight, useRights } from '../composable/useRights';\nimport { state } from '../../stores/ParamSdkStore';\nimport { useAuthStore } from '../../stores/AuthStore';\nimport { storeToRefs } from 'pinia';\nimport { Emission } from '@/stores/class/general/emission';\n\ntype Action = 'create'|'edit'|'delete'|'any';\n\nexport interface PropsBase {\n /** Type of action to check */\n action: Action;\n}\n\ntype NeverEntities = {\n podcast?: never;\n emission?: never;\n cartouchier?: never;\n mix?: never;\n playlistMedia?: never;\n media?: never;\n promoVideoFor?: never;\n};\n\nexport interface PropsPodcast extends PropsBase, Omit<NeverEntities, 'podcast'> {\n podcast: Podcast|boolean;\n}\nexport interface PropsEmission extends PropsBase, Omit<NeverEntities, 'emission'> {\n emission: Emission|boolean;\n}\nexport interface PropsCartouchier extends PropsBase, Omit<NeverEntities, 'cartouchier'> {\n cartouchier: Cartouchier|boolean;\n}\nexport interface PropsMix extends PropsBase, Omit<NeverEntities, 'mix'> {\n mix: Mix|boolean;\n}\nexport interface PropsPlaylistMedia extends PropsBase, Omit<NeverEntities, 'playlistMedia'> {\n playlistMedia: PlaylistMedia|boolean;\n}\nexport interface PropsMedia extends PropsBase, Omit<NeverEntities, 'media'> {\n media: Media|boolean;\n}\nexport interface PropsPromoVideo extends PropsBase, Omit<NeverEntities, 'promoVideoFor'> {\n promoVideoFor: Podcast;\n}\n\nexport type RightsProps = PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia;\n\nexport const useRightsIndicator = (props: PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia) => {\n const rights = useRights();\n const { t, te } = useI18n();\n const { isAuthenticated } = storeToRefs(useAuthStore());\n\n type Rights = ReturnType<typeof useRights>;\n type ActionSegment = 'Create'|'Edit'|'Delete';\n type EntitySegment = 'Podcast'|'Emission'|'Cartouchier'|'Mix'|'PlaylistMedia'|'Media'|'PromoVideo';\n type RightMethodKey = `get${ActionSegment}${EntitySegment}Right` & keyof Rights;\n type RightEntity = Podcast|Emission|Cartouchier|Mix|PlaylistMedia|Media|boolean|undefined;\n\n const actionSegmentMap: Record<Exclude<Action, 'any'>, ActionSegment> = {\n create: 'Create',\n edit: 'Edit',\n delete: 'Delete',\n };\n\n /**\n * Whether to display the indicator\n * It is not shown on podcastmaker, or for unidentified users\n */\n const displayIndicator = computed((): boolean => {\n return !state.generalParameters.podcastmaker && isAuthenticated.value;\n });\n\n /**\n * The entity on which rights are checked\n */\n const entity = computed((): [EntitySegment, RightEntity]|null => {\n let arg: RightEntity;\n let entitySegment: EntitySegment|undefined;\n\n if ('podcast' in props && props.podcast) {\n entitySegment = 'Podcast';\n arg = props.podcast;\n } else if ('emission' in props && props.emission) {\n entitySegment = 'Emission';\n arg = props.emission;\n } else if ('cartouchier' in props && props.cartouchier) {\n entitySegment = 'Cartouchier';\n arg = props.cartouchier;\n } else if ('mix' in props && props.mix) {\n entitySegment = 'Mix';\n arg = props.mix;\n } else if ('playlistMedia' in props && props.playlistMedia) {\n entitySegment = 'PlaylistMedia';\n arg = props.playlistMedia;\n } else if ('media' in props && props.media) {\n entitySegment = 'Media';\n arg = props.media;\n } else if ('promoVideoFor' in props && props.promoVideoFor) {\n entitySegment = 'PromoVideo';\n arg = props.promoVideoFor;\n } else {\n return null;\n }\n\n return [entitySegment, arg];\n });\n\n /**\n * The current rights for the given entity\n */\n const actionRight = computed((): ActionRight => {\n const data = entity.value;\n if (!data) {\n return ActionRight.DeniedNoRight;\n }\n\n const [entitySegment, arg] = data;\n\n if (props.action === 'any') {\n const checks: ActionSegment[] = typeof arg === 'object' && arg !== null\n ? ['Create', 'Edit', 'Delete']\n : ['Create'];\n\n let best = ActionRight.DeniedNoRight;\n for (const a of checks) {\n const key = `get${a}${entitySegment}Right` as RightMethodKey;\n const r = callRightMethod(key, arg);\n if (r === ActionRight.Allowed) {\n return ActionRight.Allowed;\n }\n if (r === ActionRight.DeniedNotOwner) {\n best = ActionRight.DeniedNotOwner;\n }\n }\n return best;\n }\n\n if ((props.action === 'edit' || props.action === 'delete') && typeof arg !== 'object') {\n return ActionRight.DeniedNoRight;\n }\n\n const methodName = `get${actionSegmentMap[props.action]}${entitySegment}Right` as RightMethodKey;\n return callRightMethod(methodName, arg);\n });\n\n /** Helper for calling the method on useRights */\n function callRightMethod(key: RightMethodKey, arg: unknown): ActionRight {\n return (rights[key] as (arg?: unknown) => ActionRight)(arg);\n }\n\n const hasAccess = computed((): boolean => {\n return actionRight.value === ActionRight.Allowed;\n });\n\n const message = computed((): string => {\n const entitySegment = entity.value?.[0];\n let key: string;\n let genericKey: string;\n \n switch (actionRight.value) {\n case ActionRight.Allowed:\n return '';\n\n case ActionRight.DeniedNotOwner:\n key = `RightsIndicator - ${entitySegment} - Not owner`;\n genericKey = 'Generic - Action disabled - Not owner';\n break;\n\n case ActionRight.DeniedInsufficientScope:\n key = `RightsIndicator - ${entitySegment} - Insufficient scope`;\n genericKey = 'RightsIndicator - Generic - Insufficient scope';\n break;\n\n case ActionRight.DeniedNoRight:\n key = `RightsIndicator - ${entitySegment} - Insufficient rights`;\n genericKey = 'RightsIndicator - Generic - Insufficient rights';\n break;\n\n default:\n return 'Cannot process rights';\n }\n\n if (te(key)) {\n return t(key);\n } else {\n return t(genericKey);\n }\n });\n\n return {\n displayIndicator,\n hasAccess,\n message\n }\n};\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsWrapper-CuyTiPNy.mjs","names":[],"sources":["../src/components/composable/useRightsIndicator.ts","../src/components/display/RightsWrapper.vue","../src/components/display/RightsWrapper.vue"],"sourcesContent":["import { Mix } from '../../stores/class/radio/mix';\nimport { PlaylistMedia } from '../../stores/class/radio/playlistMedia';\nimport { Podcast } from '../../stores/class/general/podcast';\nimport { Cartouchier } from '../../stores/class/cartouchier/cartouchier';\nimport { Media } from \"../../stores/class/general/media\";\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { ActionRight, useRights } from '../composable/useRights';\nimport { state } from '../../stores/ParamSdkStore';\nimport { useAuthStore } from '../../stores/AuthStore';\nimport { storeToRefs } from 'pinia';\nimport { Emission } from '@/stores/class/general/emission';\n\ntype Action = 'create'|'edit'|'delete'|'any';\n\nexport interface PropsBase {\n /** Type of action to check */\n action: Action;\n}\n\ntype NeverEntities = {\n podcast?: never;\n emission?: never;\n cartouchier?: never;\n mix?: never;\n playlistMedia?: never;\n media?: never;\n promoVideoFor?: never;\n};\n\nexport interface PropsPodcast extends PropsBase, Omit<NeverEntities, 'podcast'> {\n podcast: Podcast|boolean;\n}\nexport interface PropsEmission extends PropsBase, Omit<NeverEntities, 'emission'> {\n emission: Emission|boolean;\n}\nexport interface PropsCartouchier extends PropsBase, Omit<NeverEntities, 'cartouchier'> {\n cartouchier: Cartouchier|boolean;\n}\nexport interface PropsMix extends PropsBase, Omit<NeverEntities, 'mix'> {\n mix: Mix|boolean;\n}\nexport interface PropsPlaylistMedia extends PropsBase, Omit<NeverEntities, 'playlistMedia'> {\n playlistMedia: PlaylistMedia|boolean;\n}\nexport interface PropsMedia extends PropsBase, Omit<NeverEntities, 'media'> {\n media: Media|boolean;\n}\nexport interface PropsPromoVideo extends PropsBase, Omit<NeverEntities, 'promoVideoFor'> {\n promoVideoFor: Podcast;\n}\n\nexport type RightsProps = PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia;\n\nexport const useRightsIndicator = (props: PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia) => {\n const rights = useRights();\n const { t, te } = useI18n();\n const { isAuthenticated } = storeToRefs(useAuthStore());\n\n type Rights = ReturnType<typeof useRights>;\n type ActionSegment = 'Create'|'Edit'|'Delete';\n type EntitySegment = 'Podcast'|'Emission'|'Cartouchier'|'Mix'|'PlaylistMedia'|'Media'|'PromoVideo';\n type RightMethodKey = `get${ActionSegment}${EntitySegment}Right` & keyof Rights;\n type RightEntity = Podcast|Emission|Cartouchier|Mix|PlaylistMedia|Media|boolean|undefined;\n\n const actionSegmentMap: Record<Exclude<Action, 'any'>, ActionSegment> = {\n create: 'Create',\n edit: 'Edit',\n delete: 'Delete',\n };\n\n /**\n * Whether to display the indicator\n * It is not shown on podcastmaker, or for unidentified users\n */\n const displayIndicator = computed((): boolean => {\n return !state.generalParameters.podcastmaker && isAuthenticated.value;\n });\n\n /**\n * The entity on which rights are checked\n */\n const entity = computed((): [EntitySegment, RightEntity]|null => {\n let arg: RightEntity;\n let entitySegment: EntitySegment|undefined;\n\n if ('podcast' in props && props.podcast) {\n entitySegment = 'Podcast';\n arg = props.podcast;\n } else if ('emission' in props && props.emission) {\n entitySegment = 'Emission';\n arg = props.emission;\n } else if ('cartouchier' in props && props.cartouchier) {\n entitySegment = 'Cartouchier';\n arg = props.cartouchier;\n } else if ('mix' in props && props.mix) {\n entitySegment = 'Mix';\n arg = props.mix;\n } else if ('playlistMedia' in props && props.playlistMedia) {\n entitySegment = 'PlaylistMedia';\n arg = props.playlistMedia;\n } else if ('media' in props && props.media) {\n entitySegment = 'Media';\n arg = props.media;\n } else if ('promoVideoFor' in props && props.promoVideoFor) {\n entitySegment = 'PromoVideo';\n arg = props.promoVideoFor;\n } else {\n return null;\n }\n\n return [entitySegment, arg];\n });\n\n /**\n * The current rights for the given entity\n */\n const actionRight = computed((): ActionRight => {\n const data = entity.value;\n if (!data) {\n return ActionRight.DeniedNoRight;\n }\n\n const [entitySegment, arg] = data;\n\n if (props.action === 'any') {\n const checks: ActionSegment[] = typeof arg === 'object' && arg !== null\n ? ['Create', 'Edit', 'Delete']\n : ['Create'];\n\n let best = ActionRight.DeniedNoRight;\n for (const a of checks) {\n const key = `get${a}${entitySegment}Right` as RightMethodKey;\n const r = callRightMethod(key, arg);\n if (r === ActionRight.Allowed) {\n return ActionRight.Allowed;\n }\n if (r === ActionRight.DeniedNotOwner) {\n best = ActionRight.DeniedNotOwner;\n }\n }\n return best;\n }\n\n if ((props.action === 'edit' || props.action === 'delete') && typeof arg !== 'object') {\n return ActionRight.DeniedNoRight;\n }\n\n const methodName = `get${actionSegmentMap[props.action]}${entitySegment}Right` as RightMethodKey;\n return callRightMethod(methodName, arg);\n });\n\n /** Helper for calling the method on useRights */\n function callRightMethod(key: RightMethodKey, arg: unknown): ActionRight {\n return (rights[key] as (arg?: unknown) => ActionRight)(arg);\n }\n\n const hasAccess = computed((): boolean => {\n return actionRight.value === ActionRight.Allowed;\n });\n\n const message = computed((): string => {\n const entitySegment = entity.value?.[0];\n let key: string;\n let genericKey: string;\n \n switch (actionRight.value) {\n case ActionRight.Allowed:\n return '';\n\n case ActionRight.DeniedNotOwner:\n key = `RightsIndicator - ${entitySegment} - Not owner`;\n genericKey = 'Generic - Action disabled - Not owner';\n break;\n\n case ActionRight.DeniedInsufficientScope:\n key = `RightsIndicator - ${entitySegment} - Insufficient scope`;\n genericKey = 'RightsIndicator - Generic - Insufficient scope';\n break;\n\n case ActionRight.DeniedNoRight:\n key = `RightsIndicator - ${entitySegment} - Insufficient rights`;\n genericKey = 'RightsIndicator - Generic - Insufficient rights';\n break;\n\n default:\n return 'Cannot process rights';\n }\n\n if (te(key)) {\n return t(key);\n } else {\n return t(genericKey);\n }\n });\n\n return {\n displayIndicator,\n hasAccess,\n message\n }\n};\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsWrapper-CwfoSSsa.mjs","names":[],"sources":["../src/components/composable/useRightsIndicator.ts","../src/components/display/RightsWrapper.vue","../src/components/display/RightsWrapper.vue"],"sourcesContent":["import { Mix } from '../../stores/class/radio/mix';\nimport { PlaylistMedia } from '../../stores/class/radio/playlistMedia';\nimport { Podcast } from '../../stores/class/general/podcast';\nimport { Cartouchier } from '../../stores/class/cartouchier/cartouchier';\nimport { Media } from \"../../stores/class/general/media\";\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { ActionRight, useRights } from '../composable/useRights';\nimport { state } from '../../stores/ParamSdkStore';\nimport { useAuthStore } from '../../stores/AuthStore';\nimport { storeToRefs } from 'pinia';\nimport { Emission } from '@/stores/class/general/emission';\n\ntype Action = 'create'|'edit'|'delete'|'any';\n\nexport interface PropsBase {\n /** Type of action to check */\n action: Action;\n}\n\ntype NeverEntities = {\n podcast?: never;\n emission?: never;\n cartouchier?: never;\n mix?: never;\n playlistMedia?: never;\n media?: never;\n promoVideoFor?: never;\n};\n\nexport interface PropsPodcast extends PropsBase, Omit<NeverEntities, 'podcast'> {\n podcast: Podcast|boolean;\n}\nexport interface PropsEmission extends PropsBase, Omit<NeverEntities, 'emission'> {\n emission: Emission|boolean;\n}\nexport interface PropsCartouchier extends PropsBase, Omit<NeverEntities, 'cartouchier'> {\n cartouchier: Cartouchier|boolean;\n}\nexport interface PropsMix extends PropsBase, Omit<NeverEntities, 'mix'> {\n mix: Mix|boolean;\n}\nexport interface PropsPlaylistMedia extends PropsBase, Omit<NeverEntities, 'playlistMedia'> {\n playlistMedia: PlaylistMedia|boolean;\n}\nexport interface PropsMedia extends PropsBase, Omit<NeverEntities, 'media'> {\n media: Media|boolean;\n}\nexport interface PropsPromoVideo extends PropsBase, Omit<NeverEntities, 'promoVideoFor'> {\n promoVideoFor: Podcast;\n}\n\nexport type RightsProps = PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia;\n\nexport const useRightsIndicator = (props: PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia) => {\n const rights = useRights();\n const { t, te } = useI18n();\n const { isAuthenticated } = storeToRefs(useAuthStore());\n\n type Rights = ReturnType<typeof useRights>;\n type ActionSegment = 'Create'|'Edit'|'Delete';\n type EntitySegment = 'Podcast'|'Emission'|'Cartouchier'|'Mix'|'PlaylistMedia'|'Media'|'PromoVideo';\n type RightMethodKey = `get${ActionSegment}${EntitySegment}Right` & keyof Rights;\n type RightEntity = Podcast|Emission|Cartouchier|Mix|PlaylistMedia|Media|boolean|undefined;\n\n const actionSegmentMap: Record<Exclude<Action, 'any'>, ActionSegment> = {\n create: 'Create',\n edit: 'Edit',\n delete: 'Delete',\n };\n\n /**\n * Whether to display the indicator\n * It is not shown on podcastmaker, or for unidentified users\n */\n const displayIndicator = computed((): boolean => {\n return !state.generalParameters.podcastmaker && isAuthenticated.value;\n });\n\n /**\n * The entity on which rights are checked\n */\n const entity = computed((): [EntitySegment, RightEntity]|null => {\n let arg: RightEntity;\n let entitySegment: EntitySegment|undefined;\n\n if ('podcast' in props && props.podcast) {\n entitySegment = 'Podcast';\n arg = props.podcast;\n } else if ('emission' in props && props.emission) {\n entitySegment = 'Emission';\n arg = props.emission;\n } else if ('cartouchier' in props && props.cartouchier) {\n entitySegment = 'Cartouchier';\n arg = props.cartouchier;\n } else if ('mix' in props && props.mix) {\n entitySegment = 'Mix';\n arg = props.mix;\n } else if ('playlistMedia' in props && props.playlistMedia) {\n entitySegment = 'PlaylistMedia';\n arg = props.playlistMedia;\n } else if ('media' in props && props.media) {\n entitySegment = 'Media';\n arg = props.media;\n } else if ('promoVideoFor' in props && props.promoVideoFor) {\n entitySegment = 'PromoVideo';\n arg = props.promoVideoFor;\n } else {\n return null;\n }\n\n return [entitySegment, arg];\n });\n\n /**\n * The current rights for the given entity\n */\n const actionRight = computed((): ActionRight => {\n const data = entity.value;\n if (!data) {\n return ActionRight.DeniedNoRight;\n }\n\n const [entitySegment, arg] = data;\n\n if (props.action === 'any') {\n const checks: ActionSegment[] = typeof arg === 'object' && arg !== null\n ? ['Create', 'Edit', 'Delete']\n : ['Create'];\n\n let best = ActionRight.DeniedNoRight;\n for (const a of checks) {\n const key = `get${a}${entitySegment}Right` as RightMethodKey;\n const r = callRightMethod(key, arg);\n if (r === ActionRight.Allowed) {\n return ActionRight.Allowed;\n }\n if (r === ActionRight.DeniedNotOwner) {\n best = ActionRight.DeniedNotOwner;\n }\n }\n return best;\n }\n\n if ((props.action === 'edit' || props.action === 'delete') && typeof arg !== 'object') {\n return ActionRight.DeniedNoRight;\n }\n\n const methodName = `get${actionSegmentMap[props.action]}${entitySegment}Right` as RightMethodKey;\n return callRightMethod(methodName, arg);\n });\n\n /** Helper for calling the method on useRights */\n function callRightMethod(key: RightMethodKey, arg: unknown): ActionRight {\n return (rights[key] as (arg?: unknown) => ActionRight)(arg);\n }\n\n const hasAccess = computed((): boolean => {\n return actionRight.value === ActionRight.Allowed;\n });\n\n const message = computed((): string => {\n const entitySegment = entity.value?.[0];\n let key: string;\n let genericKey: string;\n \n switch (actionRight.value) {\n case ActionRight.Allowed:\n return '';\n\n case ActionRight.DeniedNotOwner:\n key = `RightsIndicator - ${entitySegment} - Not owner`;\n genericKey = 'Generic - Action disabled - Not owner';\n break;\n\n case ActionRight.DeniedInsufficientScope:\n key = `RightsIndicator - ${entitySegment} - Insufficient scope`;\n genericKey = 'RightsIndicator - Generic - Insufficient scope';\n break;\n\n case ActionRight.DeniedNoRight:\n key = `RightsIndicator - ${entitySegment} - Insufficient rights`;\n genericKey = 'RightsIndicator - Generic - Insufficient rights';\n break;\n\n default:\n return 'Cannot process rights';\n }\n\n if (te(key)) {\n return t(key);\n } else {\n return t(genericKey);\n }\n });\n\n return {\n displayIndicator,\n hasAccess,\n message\n }\n};\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsWrapper-Dfn3I70v.mjs","names":[],"sources":["../src/components/composable/useRightsIndicator.ts","../src/components/display/RightsWrapper.vue","../src/components/display/RightsWrapper.vue"],"sourcesContent":["import { Mix } from '../../stores/class/radio/mix';\nimport { PlaylistMedia } from '../../stores/class/radio/playlistMedia';\nimport { Podcast } from '../../stores/class/general/podcast';\nimport { Cartouchier } from '../../stores/class/cartouchier/cartouchier';\nimport { Media } from \"../../stores/class/general/media\";\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { ActionRight, useRights } from '../composable/useRights';\nimport { state } from '../../stores/ParamSdkStore';\nimport { useAuthStore } from '../../stores/AuthStore';\nimport { storeToRefs } from 'pinia';\nimport { Emission } from '@/stores/class/general/emission';\n\ntype Action = 'create'|'edit'|'delete'|'any';\n\nexport interface PropsBase {\n /** Type of action to check */\n action: Action;\n}\n\ntype NeverEntities = {\n podcast?: never;\n emission?: never;\n cartouchier?: never;\n mix?: never;\n playlistMedia?: never;\n media?: never;\n promoVideoFor?: never;\n};\n\nexport interface PropsPodcast extends PropsBase, Omit<NeverEntities, 'podcast'> {\n podcast: Podcast|boolean;\n}\nexport interface PropsEmission extends PropsBase, Omit<NeverEntities, 'emission'> {\n emission: Emission|boolean;\n}\nexport interface PropsCartouchier extends PropsBase, Omit<NeverEntities, 'cartouchier'> {\n cartouchier: Cartouchier|boolean;\n}\nexport interface PropsMix extends PropsBase, Omit<NeverEntities, 'mix'> {\n mix: Mix|boolean;\n}\nexport interface PropsPlaylistMedia extends PropsBase, Omit<NeverEntities, 'playlistMedia'> {\n playlistMedia: PlaylistMedia|boolean;\n}\nexport interface PropsMedia extends PropsBase, Omit<NeverEntities, 'media'> {\n media: Media|boolean;\n}\nexport interface PropsPromoVideo extends PropsBase, Omit<NeverEntities, 'promoVideoFor'> {\n promoVideoFor: Podcast;\n}\n\nexport type RightsProps = PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia;\n\nexport const useRightsIndicator = (props: PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia) => {\n const rights = useRights();\n const { t, te } = useI18n();\n const { isAuthenticated } = storeToRefs(useAuthStore());\n\n type Rights = ReturnType<typeof useRights>;\n type ActionSegment = 'Create'|'Edit'|'Delete';\n type EntitySegment = 'Podcast'|'Emission'|'Cartouchier'|'Mix'|'PlaylistMedia'|'Media'|'PromoVideo';\n type RightMethodKey = `get${ActionSegment}${EntitySegment}Right` & keyof Rights;\n type RightEntity = Podcast|Emission|Cartouchier|Mix|PlaylistMedia|Media|boolean|undefined;\n\n const actionSegmentMap: Record<Exclude<Action, 'any'>, ActionSegment> = {\n create: 'Create',\n edit: 'Edit',\n delete: 'Delete',\n };\n\n /**\n * Whether to display the indicator\n * It is not shown on podcastmaker, or for unidentified users\n */\n const displayIndicator = computed((): boolean => {\n return !state.generalParameters.podcastmaker && isAuthenticated.value;\n });\n\n /**\n * The entity on which rights are checked\n */\n const entity = computed((): [EntitySegment, RightEntity]|null => {\n let arg: RightEntity;\n let entitySegment: EntitySegment|undefined;\n\n if ('podcast' in props && props.podcast) {\n entitySegment = 'Podcast';\n arg = props.podcast;\n } else if ('emission' in props && props.emission) {\n entitySegment = 'Emission';\n arg = props.emission;\n } else if ('cartouchier' in props && props.cartouchier) {\n entitySegment = 'Cartouchier';\n arg = props.cartouchier;\n } else if ('mix' in props && props.mix) {\n entitySegment = 'Mix';\n arg = props.mix;\n } else if ('playlistMedia' in props && props.playlistMedia) {\n entitySegment = 'PlaylistMedia';\n arg = props.playlistMedia;\n } else if ('media' in props && props.media) {\n entitySegment = 'Media';\n arg = props.media;\n } else if ('promoVideoFor' in props && props.promoVideoFor) {\n entitySegment = 'PromoVideo';\n arg = props.promoVideoFor;\n } else {\n return null;\n }\n\n return [entitySegment, arg];\n });\n\n /**\n * The current rights for the given entity\n */\n const actionRight = computed((): ActionRight => {\n const data = entity.value;\n if (!data) {\n return ActionRight.DeniedNoRight;\n }\n\n const [entitySegment, arg] = data;\n\n if (props.action === 'any') {\n const checks: ActionSegment[] = typeof arg === 'object' && arg !== null\n ? ['Create', 'Edit', 'Delete']\n : ['Create'];\n\n let best = ActionRight.DeniedNoRight;\n for (const a of checks) {\n const key = `get${a}${entitySegment}Right` as RightMethodKey;\n const r = callRightMethod(key, arg);\n if (r === ActionRight.Allowed) {\n return ActionRight.Allowed;\n }\n if (r === ActionRight.DeniedNotOwner) {\n best = ActionRight.DeniedNotOwner;\n }\n }\n return best;\n }\n\n if ((props.action === 'edit' || props.action === 'delete') && typeof arg !== 'object') {\n return ActionRight.DeniedNoRight;\n }\n\n const methodName = `get${actionSegmentMap[props.action]}${entitySegment}Right` as RightMethodKey;\n return callRightMethod(methodName, arg);\n });\n\n /** Helper for calling the method on useRights */\n function callRightMethod(key: RightMethodKey, arg: unknown): ActionRight {\n return (rights[key] as (arg?: unknown) => ActionRight)(arg);\n }\n\n const hasAccess = computed((): boolean => {\n return actionRight.value === ActionRight.Allowed;\n });\n\n const message = computed((): string => {\n const entitySegment = entity.value?.[0];\n let key: string;\n let genericKey: string;\n \n switch (actionRight.value) {\n case ActionRight.Allowed:\n return '';\n\n case ActionRight.DeniedNotOwner:\n key = `RightsIndicator - ${entitySegment} - Not owner`;\n genericKey = 'Generic - Action disabled - Not owner';\n break;\n\n case ActionRight.DeniedInsufficientScope:\n key = `RightsIndicator - ${entitySegment} - Insufficient scope`;\n genericKey = 'RightsIndicator - Generic - Insufficient scope';\n break;\n\n case ActionRight.DeniedNoRight:\n key = `RightsIndicator - ${entitySegment} - Insufficient rights`;\n genericKey = 'RightsIndicator - Generic - Insufficient rights';\n break;\n\n default:\n return 'Cannot process rights';\n }\n\n if (te(key)) {\n return t(key);\n } else {\n return t(genericKey);\n }\n });\n\n return {\n displayIndicator,\n hasAccess,\n message\n }\n};\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsWrapper-Du_voV0a.mjs","names":[],"sources":["../src/components/composable/useRightsIndicator.ts","../src/components/display/RightsWrapper.vue","../src/components/display/RightsWrapper.vue"],"sourcesContent":["import { Mix } from '../../stores/class/radio/mix';\nimport { PlaylistMedia } from '../../stores/class/radio/playlistMedia';\nimport { Podcast } from '../../stores/class/general/podcast';\nimport { Cartouchier } from '../../stores/class/cartouchier/cartouchier';\nimport { Media } from \"../../stores/class/general/media\";\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { ActionRight, useRights } from '../composable/useRights';\nimport { state } from '../../stores/ParamSdkStore';\nimport { useAuthStore } from '../../stores/AuthStore';\nimport { storeToRefs } from 'pinia';\nimport { Emission } from '@/stores/class/general/emission';\n\ntype Action = 'create'|'edit'|'delete'|'any';\n\nexport interface PropsBase {\n /** Type of action to check */\n action: Action;\n}\n\ntype NeverEntities = {\n podcast?: never;\n emission?: never;\n cartouchier?: never;\n mix?: never;\n playlistMedia?: never;\n media?: never;\n promoVideoFor?: never;\n};\n\nexport interface PropsPodcast extends PropsBase, Omit<NeverEntities, 'podcast'> {\n podcast: Podcast|boolean;\n}\nexport interface PropsEmission extends PropsBase, Omit<NeverEntities, 'emission'> {\n emission: Emission|boolean;\n}\nexport interface PropsCartouchier extends PropsBase, Omit<NeverEntities, 'cartouchier'> {\n cartouchier: Cartouchier|boolean;\n}\nexport interface PropsMix extends PropsBase, Omit<NeverEntities, 'mix'> {\n mix: Mix|boolean;\n}\nexport interface PropsPlaylistMedia extends PropsBase, Omit<NeverEntities, 'playlistMedia'> {\n playlistMedia: PlaylistMedia|boolean;\n}\nexport interface PropsMedia extends PropsBase, Omit<NeverEntities, 'media'> {\n media: Media|boolean;\n}\nexport interface PropsPromoVideo extends PropsBase, Omit<NeverEntities, 'promoVideoFor'> {\n promoVideoFor: Podcast;\n}\n\nexport type RightsProps = PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia;\n\nexport const useRightsIndicator = (props: PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia) => {\n const rights = useRights();\n const { t, te } = useI18n();\n const { isAuthenticated } = storeToRefs(useAuthStore());\n\n type Rights = ReturnType<typeof useRights>;\n type ActionSegment = 'Create'|'Edit'|'Delete';\n type EntitySegment = 'Podcast'|'Emission'|'Cartouchier'|'Mix'|'PlaylistMedia'|'Media'|'PromoVideo';\n type RightMethodKey = `get${ActionSegment}${EntitySegment}Right` & keyof Rights;\n type RightEntity = Podcast|Emission|Cartouchier|Mix|PlaylistMedia|Media|boolean|undefined;\n\n const actionSegmentMap: Record<Exclude<Action, 'any'>, ActionSegment> = {\n create: 'Create',\n edit: 'Edit',\n delete: 'Delete',\n };\n\n /**\n * Whether to display the indicator\n * It is not shown on podcastmaker, or for unidentified users\n */\n const displayIndicator = computed((): boolean => {\n return !state.generalParameters.podcastmaker && isAuthenticated.value;\n });\n\n /**\n * The entity on which rights are checked\n */\n const entity = computed((): [EntitySegment, RightEntity]|null => {\n let arg: RightEntity;\n let entitySegment: EntitySegment|undefined;\n\n if ('podcast' in props && props.podcast) {\n entitySegment = 'Podcast';\n arg = props.podcast;\n } else if ('emission' in props && props.emission) {\n entitySegment = 'Emission';\n arg = props.emission;\n } else if ('cartouchier' in props && props.cartouchier) {\n entitySegment = 'Cartouchier';\n arg = props.cartouchier;\n } else if ('mix' in props && props.mix) {\n entitySegment = 'Mix';\n arg = props.mix;\n } else if ('playlistMedia' in props && props.playlistMedia) {\n entitySegment = 'PlaylistMedia';\n arg = props.playlistMedia;\n } else if ('media' in props && props.media) {\n entitySegment = 'Media';\n arg = props.media;\n } else if ('promoVideoFor' in props && props.promoVideoFor) {\n entitySegment = 'PromoVideo';\n arg = props.promoVideoFor;\n } else {\n return null;\n }\n\n return [entitySegment, arg];\n });\n\n /**\n * The current rights for the given entity\n */\n const actionRight = computed((): ActionRight => {\n const data = entity.value;\n if (!data) {\n return ActionRight.DeniedNoRight;\n }\n\n const [entitySegment, arg] = data;\n\n if (props.action === 'any') {\n const checks: ActionSegment[] = typeof arg === 'object' && arg !== null\n ? ['Create', 'Edit', 'Delete']\n : ['Create'];\n\n let best = ActionRight.DeniedNoRight;\n for (const a of checks) {\n const key = `get${a}${entitySegment}Right` as RightMethodKey;\n const r = callRightMethod(key, arg);\n if (r === ActionRight.Allowed) {\n return ActionRight.Allowed;\n }\n if (r === ActionRight.DeniedNotOwner) {\n best = ActionRight.DeniedNotOwner;\n }\n }\n return best;\n }\n\n if ((props.action === 'edit' || props.action === 'delete') && typeof arg !== 'object') {\n return ActionRight.DeniedNoRight;\n }\n\n const methodName = `get${actionSegmentMap[props.action]}${entitySegment}Right` as RightMethodKey;\n return callRightMethod(methodName, arg);\n });\n\n /** Helper for calling the method on useRights */\n function callRightMethod(key: RightMethodKey, arg: unknown): ActionRight {\n return (rights[key] as (arg?: unknown) => ActionRight)(arg);\n }\n\n const hasAccess = computed((): boolean => {\n return actionRight.value === ActionRight.Allowed;\n });\n\n const message = computed((): string => {\n const entitySegment = entity.value?.[0];\n let key: string;\n let genericKey: string;\n \n switch (actionRight.value) {\n case ActionRight.Allowed:\n return '';\n\n case ActionRight.DeniedNotOwner:\n key = `RightsIndicator - ${entitySegment} - Not owner`;\n genericKey = 'Generic - Action disabled - Not owner';\n break;\n\n case ActionRight.DeniedInsufficientScope:\n key = `RightsIndicator - ${entitySegment} - Insufficient scope`;\n genericKey = 'RightsIndicator - Generic - Insufficient scope';\n break;\n\n case ActionRight.DeniedNoRight:\n key = `RightsIndicator - ${entitySegment} - Insufficient rights`;\n genericKey = 'RightsIndicator - Generic - Insufficient rights';\n break;\n\n default:\n return 'Cannot process rights';\n }\n\n if (te(key)) {\n return t(key);\n } else {\n return t(genericKey);\n }\n });\n\n return {\n displayIndicator,\n hasAccess,\n message\n }\n};\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightsWrapper-cUlJfjI3.mjs","names":[],"sources":["../src/components/composable/useRightsIndicator.ts","../src/components/display/RightsWrapper.vue","../src/components/display/RightsWrapper.vue"],"sourcesContent":["import { Mix } from '../../stores/class/radio/mix';\nimport { PlaylistMedia } from '../../stores/class/radio/playlistMedia';\nimport { Podcast } from '../../stores/class/general/podcast';\nimport { Cartouchier } from '../../stores/class/cartouchier/cartouchier';\nimport { Media } from \"../../stores/class/general/media\";\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { ActionRight, useRights } from '../composable/useRights';\nimport { state } from '../../stores/ParamSdkStore';\nimport { useAuthStore } from '../../stores/AuthStore';\nimport { storeToRefs } from 'pinia';\nimport { Emission } from '@/stores/class/general/emission';\n\ntype Action = 'create'|'edit'|'delete'|'any';\n\nexport interface PropsBase {\n /** Type of action to check */\n action: Action;\n}\n\ntype NeverEntities = {\n podcast?: never;\n emission?: never;\n cartouchier?: never;\n mix?: never;\n playlistMedia?: never;\n media?: never;\n promoVideoFor?: never;\n};\n\nexport interface PropsPodcast extends PropsBase, Omit<NeverEntities, 'podcast'> {\n podcast: Podcast|boolean;\n}\nexport interface PropsEmission extends PropsBase, Omit<NeverEntities, 'emission'> {\n emission: Emission|boolean;\n}\nexport interface PropsCartouchier extends PropsBase, Omit<NeverEntities, 'cartouchier'> {\n cartouchier: Cartouchier|boolean;\n}\nexport interface PropsMix extends PropsBase, Omit<NeverEntities, 'mix'> {\n mix: Mix|boolean;\n}\nexport interface PropsPlaylistMedia extends PropsBase, Omit<NeverEntities, 'playlistMedia'> {\n playlistMedia: PlaylistMedia|boolean;\n}\nexport interface PropsMedia extends PropsBase, Omit<NeverEntities, 'media'> {\n media: Media|boolean;\n}\nexport interface PropsPromoVideo extends PropsBase, Omit<NeverEntities, 'promoVideoFor'> {\n promoVideoFor: Podcast;\n}\n\nexport type RightsProps = PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia;\n\nexport const useRightsIndicator = (props: PropsPodcast|PropsEmission|PropsCartouchier|PropsMix|PropsPlaylistMedia|PropsMedia) => {\n const rights = useRights();\n const { t, te } = useI18n();\n const { isAuthenticated } = storeToRefs(useAuthStore());\n\n type Rights = ReturnType<typeof useRights>;\n type ActionSegment = 'Create'|'Edit'|'Delete';\n type EntitySegment = 'Podcast'|'Emission'|'Cartouchier'|'Mix'|'PlaylistMedia'|'Media'|'PromoVideo';\n type RightMethodKey = `get${ActionSegment}${EntitySegment}Right` & keyof Rights;\n type RightEntity = Podcast|Emission|Cartouchier|Mix|PlaylistMedia|Media|boolean|undefined;\n\n const actionSegmentMap: Record<Exclude<Action, 'any'>, ActionSegment> = {\n create: 'Create',\n edit: 'Edit',\n delete: 'Delete',\n };\n\n /**\n * Whether to display the indicator\n * It is not shown on podcastmaker, or for unidentified users\n */\n const displayIndicator = computed((): boolean => {\n return !state.generalParameters.podcastmaker && isAuthenticated.value;\n });\n\n /**\n * The entity on which rights are checked\n */\n const entity = computed((): [EntitySegment, RightEntity]|null => {\n let arg: RightEntity;\n let entitySegment: EntitySegment|undefined;\n\n if ('podcast' in props && props.podcast) {\n entitySegment = 'Podcast';\n arg = props.podcast;\n } else if ('emission' in props && props.emission) {\n entitySegment = 'Emission';\n arg = props.emission;\n } else if ('cartouchier' in props && props.cartouchier) {\n entitySegment = 'Cartouchier';\n arg = props.cartouchier;\n } else if ('mix' in props && props.mix) {\n entitySegment = 'Mix';\n arg = props.mix;\n } else if ('playlistMedia' in props && props.playlistMedia) {\n entitySegment = 'PlaylistMedia';\n arg = props.playlistMedia;\n } else if ('media' in props && props.media) {\n entitySegment = 'Media';\n arg = props.media;\n } else if ('promoVideoFor' in props && props.promoVideoFor) {\n entitySegment = 'PromoVideo';\n arg = props.promoVideoFor;\n } else {\n return null;\n }\n\n return [entitySegment, arg];\n });\n\n /**\n * The current rights for the given entity\n */\n const actionRight = computed((): ActionRight => {\n const data = entity.value;\n if (!data) {\n return ActionRight.DeniedNoRight;\n }\n\n const [entitySegment, arg] = data;\n\n if (props.action === 'any') {\n const checks: ActionSegment[] = typeof arg === 'object' && arg !== null\n ? ['Create', 'Edit', 'Delete']\n : ['Create'];\n\n let best = ActionRight.DeniedNoRight;\n for (const a of checks) {\n const key = `get${a}${entitySegment}Right` as RightMethodKey;\n const r = callRightMethod(key, arg);\n if (r === ActionRight.Allowed) {\n return ActionRight.Allowed;\n }\n if (r === ActionRight.DeniedNotOwner) {\n best = ActionRight.DeniedNotOwner;\n }\n }\n return best;\n }\n\n if ((props.action === 'edit' || props.action === 'delete') && typeof arg !== 'object') {\n return ActionRight.DeniedNoRight;\n }\n\n const methodName = `get${actionSegmentMap[props.action]}${entitySegment}Right` as RightMethodKey;\n return callRightMethod(methodName, arg);\n });\n\n /** Helper for calling the method on useRights */\n function callRightMethod(key: RightMethodKey, arg: unknown): ActionRight {\n return (rights[key] as (arg?: unknown) => ActionRight)(arg);\n }\n\n const hasAccess = computed((): boolean => {\n return actionRight.value === ActionRight.Allowed;\n });\n\n const message = computed((): string => {\n const entitySegment = entity.value?.[0];\n let key: string;\n let genericKey: string;\n \n switch (actionRight.value) {\n case ActionRight.Allowed:\n return '';\n\n case ActionRight.DeniedNotOwner:\n key = `RightsIndicator - ${entitySegment} - Not owner`;\n genericKey = 'Generic - Action disabled - Not owner';\n break;\n\n case ActionRight.DeniedInsufficientScope:\n key = `RightsIndicator - ${entitySegment} - Insufficient scope`;\n genericKey = 'RightsIndicator - Generic - Insufficient scope';\n break;\n\n case ActionRight.DeniedNoRight:\n key = `RightsIndicator - ${entitySegment} - Insufficient rights`;\n genericKey = 'RightsIndicator - Generic - Insufficient rights';\n break;\n\n default:\n return 'Cannot process rights';\n }\n\n if (te(key)) {\n return t(key);\n } else {\n return t(genericKey);\n }\n });\n\n return {\n displayIndicator,\n hasAccess,\n message\n }\n};\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n","<template>\n <div\n v-if=\"displayIndicator\"\n >\n <slot :id=\"elementId\" :has-access=\"hasAccess\" />\n <span v-if=\"!hasAccess\" class=\"rights-visually-hidden\">{{ message }}</span>\n <ClassicPopover\n v-if=\"!hasAccess\"\n :target=\"elementId\"\n only-mouse\n >\n {{ message }}\n </ClassicPopover>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance } from 'vue';\nimport { RightsProps, useRightsIndicator } from '../composable/useRightsIndicator';\nimport ClassicPopover from '../misc/ClassicPopover.vue';\n\nconst props = defineProps<RightsProps>();\n\nconst { displayIndicator, hasAccess, message } = useRightsIndicator(props);\n\nconst uid = getCurrentInstance()?.uid;\n/** ID of the icon for reference by the popover */\nconst elementId = computed((): string => 'rights-wrapper-' + uid);\n</script>\n\n<style scoped lang=\"scss\">\n/** Helper class to keep the data accessible for screen readers */\n.rights-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RubriqueFilter-CM7kr6ig.mjs","names":[],"sources":["../src/components/display/filter/RubriqueFilter.vue","../src/components/display/filter/RubriqueFilter.vue"],"sourcesContent":["<template>\n <div\n v-if=\"organisation && rubriquageData\"\n class=\"d-flex mt-3 align-items-center\"\n >\n <ClassicCheckbox\n v-model:text-init=\"isRubriquage\"\n class=\"flex-shrink-0\"\n id-checkbox=\"search-rubriquage-checkbox\"\n :label=\"t('By topic')\"\n />\n <div v-if=\"isRubriquage\" class=\"d-flex ms-1 flex-column flex-grow-1\">\n <RubriqueChoice\n v-for=\"(filter, index) in internRubriqueFilter\"\n :key=\"index\"\n :index=\"index\"\n :rubriquage-display=\"getRubriquage(index)\"\n :rubrique-id-selected=\"filter.rubriqueId\"\n :rubriquage-id-selected=\"filter.rubriquageId\"\n :no-deselect=\"true\"\n @update-rubrique=\"updateRubrique\"\n @update-rubriquage=\"updateRubriquage\"\n @delete-rubrique-choice=\"deleteRubriqueChoice(index)\"\n />\n <button\n v-if=\"availableRubriquage.length\"\n class=\"btn mt-2\"\n @click=\"addFilter\"\n >\n {{ t(\"Add a sort criterion by topic\") }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useRubriquesFilterParam } from \"../../composable/route/useRubriquesFilterParam\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicCheckbox from \"../../form/ClassicCheckbox.vue\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeMount } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst RubriqueChoice = defineAsyncComponent(\n () => import(\"./RubriqueChoice.vue\"),\n);\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n rubriqueFilter: {\n default: () => [],\n type: Array as () => Array<RubriquageFilter>,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"update:rubriqueFilter\", \"warning\"]);\n\n//Data \nconst isRubriquage = ref(false);\nconst internRubriqueFilter: Ref<Array<RubriquageFilter>> = ref([]);\nconst rubriquageData: Ref<Array<Rubriquage>> = ref([]);\nconst needToFetchRubrique = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { stringifyRubriquesFilter } = useRubriquesFilterParam();\nconst filterStore = useFilterStore();\n\n//Computed\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\nconst availableRubriquage = computed(() => getAvailableRubriquage(internRubriqueFilter.value));\n\n\n//Watch\nwatch(organisation, () => {\n if (isRubriquage.value) {\n fetchTopics();\n } else {\n needToFetchRubrique.value = true;\n }\n});\nwatch(()=>props.rubriqueFilter, () => {\n isRubriquage.value = 0 !== props.rubriqueFilter?.length;\n if (\n props.rubriqueFilter &&\n stringifyRubriquesFilter(internRubriqueFilter.value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n internRubriqueFilter.value = props.rubriqueFilter;\n }\n}, {deep: true,immediate: true});\nwatch(isRubriquage, () => {\n if (needToFetchRubrique.value) {\n fetchTopics();\n }\n if (isRubriquage.value && 0 === internRubriqueFilter.value.length) {\n addFilter();\n }\n const value = isRubriquage.value ? internRubriqueFilter.value : [];\n if (\n stringifyRubriquesFilter(value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n emit(\"update:rubriqueFilter\", value);\n }\n});\n\n\nonBeforeMount(()=>fetchTopics())\n\n//Methods\nfunction updateInternRubriqueFilter() {\n if (isRubriquage.value) {\n emit(\"update:rubriqueFilter\", internRubriqueFilter.value);\n } else {\n isRubriquage.value = true;\n }\n}\nfunction addFilter(): void {\n if (availableRubriquage.value?.[0].rubriquageId) {\n internRubriqueFilter.value.push({\n rubriquageId: availableRubriquage.value[0].rubriquageId,\n rubriqueId: 0,\n nameRubriquage: rubriquageData.value[0].title,\n nameRubrique: \"\",\n });\n updateInternRubriqueFilter();\n }\n}\nfunction deleteRubriqueChoice(index: number): void {\n internRubriqueFilter.value.splice(index, 1);\n updateInternRubriqueFilter();\n}\nfunction getAvailableRubriquage(\n filterRubrique: Array<RubriquageFilter>,\n): Array<Rubriquage> {\n if (filterRubrique.length) {\n const rubriquageIdToNotShow = filterRubrique.map((a) => a.rubriquageId);\n return rubriquageData.value.filter((element) => {\n if (element.rubriquageId) {\n return !rubriquageIdToNotShow.includes(element.rubriquageId);\n }\n });\n }\n return rubriquageData.value;\n}\nfunction getRubriquage(index: number) {\n const elementToNotShow = Array.from(internRubriqueFilter.value);\n elementToNotShow.splice(index, 1);\n return getAvailableRubriquage(elementToNotShow);\n}\nfunction updateRubrique(newValue: { rubriqueId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriqueId = newValue.rubriqueId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nfunction updateRubriquage(newValue: { rubriquageId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriquageId = newValue.rubriquageId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nasync function fetchTopics(): Promise<void> {\n if (!organisation.value) return;\n needToFetchRubrique.value = false;\n const data = await classicApi.fetchData<Array<Rubriquage>>({\n api: 0,\n path: \"rubriquage/find/\" + organisation.value,\n specialTreatement: true,\n });\n rubriquageData.value = data.filter((element: Rubriquage) => {\n return element.rubriques.length;\n });\n if (0 === rubriquageData.value.length) {\n if (internRubriqueFilter.value.length) {\n internRubriqueFilter.value = [];\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n return;\n }\n const internRubriqueFilterToUpdate = [];\n for (const filter of internRubriqueFilter.value) {\n const rubriquageExist = rubriquageData.value.find(\n (element) => element.rubriquageId === filter.rubriquageId,\n );\n if (rubriquageExist) {\n internRubriqueFilterToUpdate.push(filter);\n }\n }\n if (\n internRubriqueFilterToUpdate.length !== internRubriqueFilter.value.length\n ) {\n internRubriqueFilter.value = internRubriqueFilterToUpdate;\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n}\n</script>\n","<template>\n <div\n v-if=\"organisation && rubriquageData\"\n class=\"d-flex mt-3 align-items-center\"\n >\n <ClassicCheckbox\n v-model:text-init=\"isRubriquage\"\n class=\"flex-shrink-0\"\n id-checkbox=\"search-rubriquage-checkbox\"\n :label=\"t('By topic')\"\n />\n <div v-if=\"isRubriquage\" class=\"d-flex ms-1 flex-column flex-grow-1\">\n <RubriqueChoice\n v-for=\"(filter, index) in internRubriqueFilter\"\n :key=\"index\"\n :index=\"index\"\n :rubriquage-display=\"getRubriquage(index)\"\n :rubrique-id-selected=\"filter.rubriqueId\"\n :rubriquage-id-selected=\"filter.rubriquageId\"\n :no-deselect=\"true\"\n @update-rubrique=\"updateRubrique\"\n @update-rubriquage=\"updateRubriquage\"\n @delete-rubrique-choice=\"deleteRubriqueChoice(index)\"\n />\n <button\n v-if=\"availableRubriquage.length\"\n class=\"btn mt-2\"\n @click=\"addFilter\"\n >\n {{ t(\"Add a sort criterion by topic\") }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useRubriquesFilterParam } from \"../../composable/route/useRubriquesFilterParam\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicCheckbox from \"../../form/ClassicCheckbox.vue\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeMount } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst RubriqueChoice = defineAsyncComponent(\n () => import(\"./RubriqueChoice.vue\"),\n);\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n rubriqueFilter: {\n default: () => [],\n type: Array as () => Array<RubriquageFilter>,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"update:rubriqueFilter\", \"warning\"]);\n\n//Data \nconst isRubriquage = ref(false);\nconst internRubriqueFilter: Ref<Array<RubriquageFilter>> = ref([]);\nconst rubriquageData: Ref<Array<Rubriquage>> = ref([]);\nconst needToFetchRubrique = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { stringifyRubriquesFilter } = useRubriquesFilterParam();\nconst filterStore = useFilterStore();\n\n//Computed\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\nconst availableRubriquage = computed(() => getAvailableRubriquage(internRubriqueFilter.value));\n\n\n//Watch\nwatch(organisation, () => {\n if (isRubriquage.value) {\n fetchTopics();\n } else {\n needToFetchRubrique.value = true;\n }\n});\nwatch(()=>props.rubriqueFilter, () => {\n isRubriquage.value = 0 !== props.rubriqueFilter?.length;\n if (\n props.rubriqueFilter &&\n stringifyRubriquesFilter(internRubriqueFilter.value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n internRubriqueFilter.value = props.rubriqueFilter;\n }\n}, {deep: true,immediate: true});\nwatch(isRubriquage, () => {\n if (needToFetchRubrique.value) {\n fetchTopics();\n }\n if (isRubriquage.value && 0 === internRubriqueFilter.value.length) {\n addFilter();\n }\n const value = isRubriquage.value ? internRubriqueFilter.value : [];\n if (\n stringifyRubriquesFilter(value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n emit(\"update:rubriqueFilter\", value);\n }\n});\n\n\nonBeforeMount(()=>fetchTopics())\n\n//Methods\nfunction updateInternRubriqueFilter() {\n if (isRubriquage.value) {\n emit(\"update:rubriqueFilter\", internRubriqueFilter.value);\n } else {\n isRubriquage.value = true;\n }\n}\nfunction addFilter(): void {\n if (availableRubriquage.value?.[0].rubriquageId) {\n internRubriqueFilter.value.push({\n rubriquageId: availableRubriquage.value[0].rubriquageId,\n rubriqueId: 0,\n nameRubriquage: rubriquageData.value[0].title,\n nameRubrique: \"\",\n });\n updateInternRubriqueFilter();\n }\n}\nfunction deleteRubriqueChoice(index: number): void {\n internRubriqueFilter.value.splice(index, 1);\n updateInternRubriqueFilter();\n}\nfunction getAvailableRubriquage(\n filterRubrique: Array<RubriquageFilter>,\n): Array<Rubriquage> {\n if (filterRubrique.length) {\n const rubriquageIdToNotShow = filterRubrique.map((a) => a.rubriquageId);\n return rubriquageData.value.filter((element) => {\n if (element.rubriquageId) {\n return !rubriquageIdToNotShow.includes(element.rubriquageId);\n }\n });\n }\n return rubriquageData.value;\n}\nfunction getRubriquage(index: number) {\n const elementToNotShow = Array.from(internRubriqueFilter.value);\n elementToNotShow.splice(index, 1);\n return getAvailableRubriquage(elementToNotShow);\n}\nfunction updateRubrique(newValue: { rubriqueId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriqueId = newValue.rubriqueId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nfunction updateRubriquage(newValue: { rubriquageId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriquageId = newValue.rubriquageId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nasync function fetchTopics(): Promise<void> {\n if (!organisation.value) return;\n needToFetchRubrique.value = false;\n const data = await classicApi.fetchData<Array<Rubriquage>>({\n api: 0,\n path: \"rubriquage/find/\" + organisation.value,\n specialTreatement: true,\n });\n rubriquageData.value = data.filter((element: Rubriquage) => {\n return element.rubriques.length;\n });\n if (0 === rubriquageData.value.length) {\n if (internRubriqueFilter.value.length) {\n internRubriqueFilter.value = [];\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n return;\n }\n const internRubriqueFilterToUpdate = [];\n for (const filter of internRubriqueFilter.value) {\n const rubriquageExist = rubriquageData.value.find(\n (element) => element.rubriquageId === filter.rubriquageId,\n );\n if (rubriquageExist) {\n internRubriqueFilterToUpdate.push(filter);\n }\n }\n if (\n internRubriqueFilterToUpdate.length !== internRubriqueFilter.value.length\n ) {\n internRubriqueFilter.value = internRubriqueFilterToUpdate;\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n}\n</script>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RubriqueFilter-CZDYRGY1.mjs","names":[],"sources":["../src/components/display/filter/RubriqueFilter.vue","../src/components/display/filter/RubriqueFilter.vue"],"sourcesContent":["<template>\n <div\n v-if=\"organisation && rubriquageData\"\n class=\"d-flex mt-3 align-items-center\"\n >\n <ClassicCheckbox\n v-model:text-init=\"isRubriquage\"\n class=\"flex-shrink-0\"\n id-checkbox=\"search-rubriquage-checkbox\"\n :label=\"t('By topic')\"\n />\n <div v-if=\"isRubriquage\" class=\"d-flex ms-1 flex-column flex-grow-1\">\n <RubriqueChoice\n v-for=\"(filter, index) in internRubriqueFilter\"\n :key=\"index\"\n :index=\"index\"\n :rubriquage-display=\"getRubriquage(index)\"\n :rubrique-id-selected=\"filter.rubriqueId\"\n :rubriquage-id-selected=\"filter.rubriquageId\"\n :no-deselect=\"true\"\n @update-rubrique=\"updateRubrique\"\n @update-rubriquage=\"updateRubriquage\"\n @delete-rubrique-choice=\"deleteRubriqueChoice(index)\"\n />\n <button\n v-if=\"availableRubriquage.length\"\n class=\"btn mt-2\"\n @click=\"addFilter\"\n >\n {{ t(\"Add a sort criterion by topic\") }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useRubriquesFilterParam } from \"../../composable/route/useRubriquesFilterParam\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicCheckbox from \"../../form/ClassicCheckbox.vue\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeMount } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst RubriqueChoice = defineAsyncComponent(\n () => import(\"./RubriqueChoice.vue\"),\n);\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n rubriqueFilter: {\n default: () => [],\n type: Array as () => Array<RubriquageFilter>,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"update:rubriqueFilter\", \"warning\"]);\n\n//Data \nconst isRubriquage = ref(false);\nconst internRubriqueFilter: Ref<Array<RubriquageFilter>> = ref([]);\nconst rubriquageData: Ref<Array<Rubriquage>> = ref([]);\nconst needToFetchRubrique = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { stringifyRubriquesFilter } = useRubriquesFilterParam();\nconst filterStore = useFilterStore();\n\n//Computed\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\nconst availableRubriquage = computed(() => getAvailableRubriquage(internRubriqueFilter.value));\n\n\n//Watch\nwatch(organisation, () => {\n if (isRubriquage.value) {\n fetchTopics();\n } else {\n needToFetchRubrique.value = true;\n }\n});\nwatch(()=>props.rubriqueFilter, () => {\n isRubriquage.value = 0 !== props.rubriqueFilter?.length;\n if (\n props.rubriqueFilter &&\n stringifyRubriquesFilter(internRubriqueFilter.value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n internRubriqueFilter.value = props.rubriqueFilter;\n }\n}, {deep: true,immediate: true});\nwatch(isRubriquage, () => {\n if (needToFetchRubrique.value) {\n fetchTopics();\n }\n if (isRubriquage.value && 0 === internRubriqueFilter.value.length) {\n addFilter();\n }\n const value = isRubriquage.value ? internRubriqueFilter.value : [];\n if (\n stringifyRubriquesFilter(value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n emit(\"update:rubriqueFilter\", value);\n }\n});\n\n\nonBeforeMount(()=>fetchTopics())\n\n//Methods\nfunction updateInternRubriqueFilter() {\n if (isRubriquage.value) {\n emit(\"update:rubriqueFilter\", internRubriqueFilter.value);\n } else {\n isRubriquage.value = true;\n }\n}\nfunction addFilter(): void {\n if (availableRubriquage.value?.[0].rubriquageId) {\n internRubriqueFilter.value.push({\n rubriquageId: availableRubriquage.value[0].rubriquageId,\n rubriqueId: 0,\n nameRubriquage: rubriquageData.value[0].title,\n nameRubrique: \"\",\n });\n updateInternRubriqueFilter();\n }\n}\nfunction deleteRubriqueChoice(index: number): void {\n internRubriqueFilter.value.splice(index, 1);\n updateInternRubriqueFilter();\n}\nfunction getAvailableRubriquage(\n filterRubrique: Array<RubriquageFilter>,\n): Array<Rubriquage> {\n if (filterRubrique.length) {\n const rubriquageIdToNotShow = filterRubrique.map((a) => a.rubriquageId);\n return rubriquageData.value.filter((element) => {\n if (element.rubriquageId) {\n return !rubriquageIdToNotShow.includes(element.rubriquageId);\n }\n });\n }\n return rubriquageData.value;\n}\nfunction getRubriquage(index: number) {\n const elementToNotShow = Array.from(internRubriqueFilter.value);\n elementToNotShow.splice(index, 1);\n return getAvailableRubriquage(elementToNotShow);\n}\nfunction updateRubrique(newValue: { rubriqueId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriqueId = newValue.rubriqueId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nfunction updateRubriquage(newValue: { rubriquageId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriquageId = newValue.rubriquageId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nasync function fetchTopics(): Promise<void> {\n if (!organisation.value) return;\n needToFetchRubrique.value = false;\n const data = await classicApi.fetchData<Array<Rubriquage>>({\n api: 0,\n path: \"rubriquage/find/\" + organisation.value,\n specialTreatement: true,\n });\n rubriquageData.value = data.filter((element: Rubriquage) => {\n return element.rubriques.length;\n });\n if (0 === rubriquageData.value.length) {\n if (internRubriqueFilter.value.length) {\n internRubriqueFilter.value = [];\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n return;\n }\n const internRubriqueFilterToUpdate = [];\n for (const filter of internRubriqueFilter.value) {\n const rubriquageExist = rubriquageData.value.find(\n (element) => element.rubriquageId === filter.rubriquageId,\n );\n if (rubriquageExist) {\n internRubriqueFilterToUpdate.push(filter);\n }\n }\n if (\n internRubriqueFilterToUpdate.length !== internRubriqueFilter.value.length\n ) {\n internRubriqueFilter.value = internRubriqueFilterToUpdate;\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n}\n</script>\n","<template>\n <div\n v-if=\"organisation && rubriquageData\"\n class=\"d-flex mt-3 align-items-center\"\n >\n <ClassicCheckbox\n v-model:text-init=\"isRubriquage\"\n class=\"flex-shrink-0\"\n id-checkbox=\"search-rubriquage-checkbox\"\n :label=\"t('By topic')\"\n />\n <div v-if=\"isRubriquage\" class=\"d-flex ms-1 flex-column flex-grow-1\">\n <RubriqueChoice\n v-for=\"(filter, index) in internRubriqueFilter\"\n :key=\"index\"\n :index=\"index\"\n :rubriquage-display=\"getRubriquage(index)\"\n :rubrique-id-selected=\"filter.rubriqueId\"\n :rubriquage-id-selected=\"filter.rubriquageId\"\n :no-deselect=\"true\"\n @update-rubrique=\"updateRubrique\"\n @update-rubriquage=\"updateRubriquage\"\n @delete-rubrique-choice=\"deleteRubriqueChoice(index)\"\n />\n <button\n v-if=\"availableRubriquage.length\"\n class=\"btn mt-2\"\n @click=\"addFilter\"\n >\n {{ t(\"Add a sort criterion by topic\") }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useRubriquesFilterParam } from \"../../composable/route/useRubriquesFilterParam\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicCheckbox from \"../../form/ClassicCheckbox.vue\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeMount } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst RubriqueChoice = defineAsyncComponent(\n () => import(\"./RubriqueChoice.vue\"),\n);\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n rubriqueFilter: {\n default: () => [],\n type: Array as () => Array<RubriquageFilter>,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"update:rubriqueFilter\", \"warning\"]);\n\n//Data \nconst isRubriquage = ref(false);\nconst internRubriqueFilter: Ref<Array<RubriquageFilter>> = ref([]);\nconst rubriquageData: Ref<Array<Rubriquage>> = ref([]);\nconst needToFetchRubrique = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { stringifyRubriquesFilter } = useRubriquesFilterParam();\nconst filterStore = useFilterStore();\n\n//Computed\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\nconst availableRubriquage = computed(() => getAvailableRubriquage(internRubriqueFilter.value));\n\n\n//Watch\nwatch(organisation, () => {\n if (isRubriquage.value) {\n fetchTopics();\n } else {\n needToFetchRubrique.value = true;\n }\n});\nwatch(()=>props.rubriqueFilter, () => {\n isRubriquage.value = 0 !== props.rubriqueFilter?.length;\n if (\n props.rubriqueFilter &&\n stringifyRubriquesFilter(internRubriqueFilter.value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n internRubriqueFilter.value = props.rubriqueFilter;\n }\n}, {deep: true,immediate: true});\nwatch(isRubriquage, () => {\n if (needToFetchRubrique.value) {\n fetchTopics();\n }\n if (isRubriquage.value && 0 === internRubriqueFilter.value.length) {\n addFilter();\n }\n const value = isRubriquage.value ? internRubriqueFilter.value : [];\n if (\n stringifyRubriquesFilter(value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n emit(\"update:rubriqueFilter\", value);\n }\n});\n\n\nonBeforeMount(()=>fetchTopics())\n\n//Methods\nfunction updateInternRubriqueFilter() {\n if (isRubriquage.value) {\n emit(\"update:rubriqueFilter\", internRubriqueFilter.value);\n } else {\n isRubriquage.value = true;\n }\n}\nfunction addFilter(): void {\n if (availableRubriquage.value?.[0].rubriquageId) {\n internRubriqueFilter.value.push({\n rubriquageId: availableRubriquage.value[0].rubriquageId,\n rubriqueId: 0,\n nameRubriquage: rubriquageData.value[0].title,\n nameRubrique: \"\",\n });\n updateInternRubriqueFilter();\n }\n}\nfunction deleteRubriqueChoice(index: number): void {\n internRubriqueFilter.value.splice(index, 1);\n updateInternRubriqueFilter();\n}\nfunction getAvailableRubriquage(\n filterRubrique: Array<RubriquageFilter>,\n): Array<Rubriquage> {\n if (filterRubrique.length) {\n const rubriquageIdToNotShow = filterRubrique.map((a) => a.rubriquageId);\n return rubriquageData.value.filter((element) => {\n if (element.rubriquageId) {\n return !rubriquageIdToNotShow.includes(element.rubriquageId);\n }\n });\n }\n return rubriquageData.value;\n}\nfunction getRubriquage(index: number) {\n const elementToNotShow = Array.from(internRubriqueFilter.value);\n elementToNotShow.splice(index, 1);\n return getAvailableRubriquage(elementToNotShow);\n}\nfunction updateRubrique(newValue: { rubriqueId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriqueId = newValue.rubriqueId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nfunction updateRubriquage(newValue: { rubriquageId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriquageId = newValue.rubriquageId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nasync function fetchTopics(): Promise<void> {\n if (!organisation.value) return;\n needToFetchRubrique.value = false;\n const data = await classicApi.fetchData<Array<Rubriquage>>({\n api: 0,\n path: \"rubriquage/find/\" + organisation.value,\n specialTreatement: true,\n });\n rubriquageData.value = data.filter((element: Rubriquage) => {\n return element.rubriques.length;\n });\n if (0 === rubriquageData.value.length) {\n if (internRubriqueFilter.value.length) {\n internRubriqueFilter.value = [];\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n return;\n }\n const internRubriqueFilterToUpdate = [];\n for (const filter of internRubriqueFilter.value) {\n const rubriquageExist = rubriquageData.value.find(\n (element) => element.rubriquageId === filter.rubriquageId,\n );\n if (rubriquageExist) {\n internRubriqueFilterToUpdate.push(filter);\n }\n }\n if (\n internRubriqueFilterToUpdate.length !== internRubriqueFilter.value.length\n ) {\n internRubriqueFilter.value = internRubriqueFilterToUpdate;\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n}\n</script>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RubriqueFilter-ChiOg_xE.mjs","names":[],"sources":["../src/components/display/filter/RubriqueFilter.vue","../src/components/display/filter/RubriqueFilter.vue"],"sourcesContent":["<template>\n <div\n v-if=\"organisation && rubriquageData\"\n class=\"d-flex mt-3 align-items-center\"\n >\n <ClassicCheckbox\n v-model:text-init=\"isRubriquage\"\n class=\"flex-shrink-0\"\n id-checkbox=\"search-rubriquage-checkbox\"\n :label=\"t('By topic')\"\n />\n <div v-if=\"isRubriquage\" class=\"d-flex ms-1 flex-column flex-grow-1\">\n <RubriqueChoice\n v-for=\"(filter, index) in internRubriqueFilter\"\n :key=\"index\"\n :index=\"index\"\n :rubriquage-display=\"getRubriquage(index)\"\n :rubrique-id-selected=\"filter.rubriqueId\"\n :rubriquage-id-selected=\"filter.rubriquageId\"\n :no-deselect=\"true\"\n @update-rubrique=\"updateRubrique\"\n @update-rubriquage=\"updateRubriquage\"\n @delete-rubrique-choice=\"deleteRubriqueChoice(index)\"\n />\n <button\n v-if=\"availableRubriquage.length\"\n class=\"btn mt-2\"\n @click=\"addFilter\"\n >\n {{ t(\"Add a sort criterion by topic\") }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useRubriquesFilterParam } from \"../../composable/route/useRubriquesFilterParam\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicCheckbox from \"../../form/ClassicCheckbox.vue\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeMount } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst RubriqueChoice = defineAsyncComponent(\n () => import(\"./RubriqueChoice.vue\"),\n);\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n rubriqueFilter: {\n default: () => [],\n type: Array as () => Array<RubriquageFilter>,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"update:rubriqueFilter\", \"warning\"]);\n\n//Data \nconst isRubriquage = ref(false);\nconst internRubriqueFilter: Ref<Array<RubriquageFilter>> = ref([]);\nconst rubriquageData: Ref<Array<Rubriquage>> = ref([]);\nconst needToFetchRubrique = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { stringifyRubriquesFilter } = useRubriquesFilterParam();\nconst filterStore = useFilterStore();\n\n//Computed\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\nconst availableRubriquage = computed(() => getAvailableRubriquage(internRubriqueFilter.value));\n\n\n//Watch\nwatch(organisation, () => {\n if (isRubriquage.value) {\n fetchTopics();\n } else {\n needToFetchRubrique.value = true;\n }\n});\nwatch(()=>props.rubriqueFilter, () => {\n isRubriquage.value = 0 !== props.rubriqueFilter?.length;\n if (\n props.rubriqueFilter &&\n stringifyRubriquesFilter(internRubriqueFilter.value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n internRubriqueFilter.value = props.rubriqueFilter;\n }\n}, {deep: true,immediate: true});\nwatch(isRubriquage, () => {\n if (needToFetchRubrique.value) {\n fetchTopics();\n }\n if (isRubriquage.value && 0 === internRubriqueFilter.value.length) {\n addFilter();\n }\n const value = isRubriquage.value ? internRubriqueFilter.value : [];\n if (\n stringifyRubriquesFilter(value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n emit(\"update:rubriqueFilter\", value);\n }\n});\n\n\nonBeforeMount(()=>fetchTopics())\n\n//Methods\nfunction updateInternRubriqueFilter() {\n if (isRubriquage.value) {\n emit(\"update:rubriqueFilter\", internRubriqueFilter.value);\n } else {\n isRubriquage.value = true;\n }\n}\nfunction addFilter(): void {\n if (availableRubriquage.value?.[0].rubriquageId) {\n internRubriqueFilter.value.push({\n rubriquageId: availableRubriquage.value[0].rubriquageId,\n rubriqueId: 0,\n nameRubriquage: rubriquageData.value[0].title,\n nameRubrique: \"\",\n });\n updateInternRubriqueFilter();\n }\n}\nfunction deleteRubriqueChoice(index: number): void {\n internRubriqueFilter.value.splice(index, 1);\n updateInternRubriqueFilter();\n}\nfunction getAvailableRubriquage(\n filterRubrique: Array<RubriquageFilter>,\n): Array<Rubriquage> {\n if (filterRubrique.length) {\n const rubriquageIdToNotShow = filterRubrique.map((a) => a.rubriquageId);\n return rubriquageData.value.filter((element) => {\n if (element.rubriquageId) {\n return !rubriquageIdToNotShow.includes(element.rubriquageId);\n }\n });\n }\n return rubriquageData.value;\n}\nfunction getRubriquage(index: number) {\n const elementToNotShow = Array.from(internRubriqueFilter.value);\n elementToNotShow.splice(index, 1);\n return getAvailableRubriquage(elementToNotShow);\n}\nfunction updateRubrique(newValue: { rubriqueId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriqueId = newValue.rubriqueId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nfunction updateRubriquage(newValue: { rubriquageId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriquageId = newValue.rubriquageId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nasync function fetchTopics(): Promise<void> {\n if (!organisation.value) return;\n needToFetchRubrique.value = false;\n const data = await classicApi.fetchData<Array<Rubriquage>>({\n api: 0,\n path: \"rubriquage/find/\" + organisation.value,\n specialTreatement: true,\n });\n rubriquageData.value = data.filter((element: Rubriquage) => {\n return element.rubriques.length;\n });\n if (0 === rubriquageData.value.length) {\n if (internRubriqueFilter.value.length) {\n internRubriqueFilter.value = [];\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n return;\n }\n const internRubriqueFilterToUpdate = [];\n for (const filter of internRubriqueFilter.value) {\n const rubriquageExist = rubriquageData.value.find(\n (element) => element.rubriquageId === filter.rubriquageId,\n );\n if (rubriquageExist) {\n internRubriqueFilterToUpdate.push(filter);\n }\n }\n if (\n internRubriqueFilterToUpdate.length !== internRubriqueFilter.value.length\n ) {\n internRubriqueFilter.value = internRubriqueFilterToUpdate;\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n}\n</script>\n","<template>\n <div\n v-if=\"organisation && rubriquageData\"\n class=\"d-flex mt-3 align-items-center\"\n >\n <ClassicCheckbox\n v-model:text-init=\"isRubriquage\"\n class=\"flex-shrink-0\"\n id-checkbox=\"search-rubriquage-checkbox\"\n :label=\"t('By topic')\"\n />\n <div v-if=\"isRubriquage\" class=\"d-flex ms-1 flex-column flex-grow-1\">\n <RubriqueChoice\n v-for=\"(filter, index) in internRubriqueFilter\"\n :key=\"index\"\n :index=\"index\"\n :rubriquage-display=\"getRubriquage(index)\"\n :rubrique-id-selected=\"filter.rubriqueId\"\n :rubriquage-id-selected=\"filter.rubriquageId\"\n :no-deselect=\"true\"\n @update-rubrique=\"updateRubrique\"\n @update-rubriquage=\"updateRubriquage\"\n @delete-rubrique-choice=\"deleteRubriqueChoice(index)\"\n />\n <button\n v-if=\"availableRubriquage.length\"\n class=\"btn mt-2\"\n @click=\"addFilter\"\n >\n {{ t(\"Add a sort criterion by topic\") }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useRubriquesFilterParam } from \"../../composable/route/useRubriquesFilterParam\";\nimport classicApi from \"../../../api/classicApi\";\nimport ClassicCheckbox from \"../../form/ClassicCheckbox.vue\";\nimport { Rubriquage } from \"@/stores/class/rubrique/rubriquage\";\nimport { RubriquageFilter } from \"@/stores/class/rubrique/rubriquageFilter\";\nimport { useFilterStore } from \"../../../stores/FilterStore\";\nimport { defineAsyncComponent, ref, Ref, computed, watch, onBeforeMount } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nconst RubriqueChoice = defineAsyncComponent(\n () => import(\"./RubriqueChoice.vue\"),\n);\n\n//Props \nconst props = defineProps({\n organisationId: { default: undefined, type: String },\n rubriqueFilter: {\n default: () => [],\n type: Array as () => Array<RubriquageFilter>,\n },\n})\n\n//Emits\nconst emit = defineEmits([\"update:rubriqueFilter\", \"warning\"]);\n\n//Data \nconst isRubriquage = ref(false);\nconst internRubriqueFilter: Ref<Array<RubriquageFilter>> = ref([]);\nconst rubriquageData: Ref<Array<Rubriquage>> = ref([]);\nconst needToFetchRubrique = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { stringifyRubriquesFilter } = useRubriquesFilterParam();\nconst filterStore = useFilterStore();\n\n//Computed\nconst organisation = computed(() => props.organisationId ? props.organisationId : filterStore.filterOrgaId);\nconst availableRubriquage = computed(() => getAvailableRubriquage(internRubriqueFilter.value));\n\n\n//Watch\nwatch(organisation, () => {\n if (isRubriquage.value) {\n fetchTopics();\n } else {\n needToFetchRubrique.value = true;\n }\n});\nwatch(()=>props.rubriqueFilter, () => {\n isRubriquage.value = 0 !== props.rubriqueFilter?.length;\n if (\n props.rubriqueFilter &&\n stringifyRubriquesFilter(internRubriqueFilter.value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n internRubriqueFilter.value = props.rubriqueFilter;\n }\n}, {deep: true,immediate: true});\nwatch(isRubriquage, () => {\n if (needToFetchRubrique.value) {\n fetchTopics();\n }\n if (isRubriquage.value && 0 === internRubriqueFilter.value.length) {\n addFilter();\n }\n const value = isRubriquage.value ? internRubriqueFilter.value : [];\n if (\n stringifyRubriquesFilter(value) !==\n stringifyRubriquesFilter(props.rubriqueFilter)\n ) {\n emit(\"update:rubriqueFilter\", value);\n }\n});\n\n\nonBeforeMount(()=>fetchTopics())\n\n//Methods\nfunction updateInternRubriqueFilter() {\n if (isRubriquage.value) {\n emit(\"update:rubriqueFilter\", internRubriqueFilter.value);\n } else {\n isRubriquage.value = true;\n }\n}\nfunction addFilter(): void {\n if (availableRubriquage.value?.[0].rubriquageId) {\n internRubriqueFilter.value.push({\n rubriquageId: availableRubriquage.value[0].rubriquageId,\n rubriqueId: 0,\n nameRubriquage: rubriquageData.value[0].title,\n nameRubrique: \"\",\n });\n updateInternRubriqueFilter();\n }\n}\nfunction deleteRubriqueChoice(index: number): void {\n internRubriqueFilter.value.splice(index, 1);\n updateInternRubriqueFilter();\n}\nfunction getAvailableRubriquage(\n filterRubrique: Array<RubriquageFilter>,\n): Array<Rubriquage> {\n if (filterRubrique.length) {\n const rubriquageIdToNotShow = filterRubrique.map((a) => a.rubriquageId);\n return rubriquageData.value.filter((element) => {\n if (element.rubriquageId) {\n return !rubriquageIdToNotShow.includes(element.rubriquageId);\n }\n });\n }\n return rubriquageData.value;\n}\nfunction getRubriquage(index: number) {\n const elementToNotShow = Array.from(internRubriqueFilter.value);\n elementToNotShow.splice(index, 1);\n return getAvailableRubriquage(elementToNotShow);\n}\nfunction updateRubrique(newValue: { rubriqueId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriqueId = newValue.rubriqueId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nfunction updateRubriquage(newValue: { rubriquageId: number; index: number }): void {\n const item = internRubriqueFilter.value[newValue.index];\n item.rubriquageId = newValue.rubriquageId;\n internRubriqueFilter.value.splice(newValue.index, 1, item);\n updateInternRubriqueFilter();\n}\nasync function fetchTopics(): Promise<void> {\n if (!organisation.value) return;\n needToFetchRubrique.value = false;\n const data = await classicApi.fetchData<Array<Rubriquage>>({\n api: 0,\n path: \"rubriquage/find/\" + organisation.value,\n specialTreatement: true,\n });\n rubriquageData.value = data.filter((element: Rubriquage) => {\n return element.rubriques.length;\n });\n if (0 === rubriquageData.value.length) {\n if (internRubriqueFilter.value.length) {\n internRubriqueFilter.value = [];\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n return;\n }\n const internRubriqueFilterToUpdate = [];\n for (const filter of internRubriqueFilter.value) {\n const rubriquageExist = rubriquageData.value.find(\n (element) => element.rubriquageId === filter.rubriquageId,\n );\n if (rubriquageExist) {\n internRubriqueFilterToUpdate.push(filter);\n }\n }\n if (\n internRubriqueFilterToUpdate.length !== internRubriqueFilter.value.length\n ) {\n internRubriqueFilter.value = internRubriqueFilterToUpdate;\n updateInternRubriqueFilter();\n emit(\"warning\");\n }\n}\n</script>\n"],"mappings":"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"}