@kuadrant/kuadrant-backstage-plugin-frontend 0.0.1-test.1-d62c1cdb → 0.0.1-test.1-464d7760

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 (484) hide show
  1. package/dist/components/ApiAccessCard/ApiAccessCard.esm.js +15 -10
  2. package/dist/components/ApiAccessCard/ApiAccessCard.esm.js.map +1 -1
  3. package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js +74 -29
  4. package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js.map +1 -1
  5. package/dist/components/ApprovalQueueCard/ApprovalQueueCard.esm.js +116 -74
  6. package/dist/components/ApprovalQueueCard/ApprovalQueueCard.esm.js.map +1 -1
  7. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +74 -47
  8. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
  9. package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js +274 -0
  10. package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js.map +1 -0
  11. package/dist/components/KuadrantPage/KuadrantPage.esm.js +101 -41
  12. package/dist/components/KuadrantPage/KuadrantPage.esm.js.map +1 -1
  13. package/dist/components/MyApiKeysCard/MyApiKeysCard.esm.js +175 -0
  14. package/dist/components/MyApiKeysCard/MyApiKeysCard.esm.js.map +1 -0
  15. package/dist/components/PermissionGate/PermissionGate.esm.js +7 -16
  16. package/dist/components/PermissionGate/PermissionGate.esm.js.map +1 -1
  17. package/dist/index.d.ts +81 -1
  18. package/dist/index.esm.js +1 -0
  19. package/dist/index.esm.js.map +1 -1
  20. package/dist/permissions.esm.js +103 -0
  21. package/dist/permissions.esm.js.map +1 -0
  22. package/dist/utils/permissions.esm.js +19 -0
  23. package/dist/utils/permissions.esm.js.map +1 -0
  24. package/dist-scalprum/configSchema.json +1 -0
  25. package/dist-scalprum/internal.plugin-kuadrant.9baeefa3b735dde128c6.js +2 -0
  26. package/dist-scalprum/internal.plugin-kuadrant.9baeefa3b735dde128c6.js.map +1 -0
  27. package/dist-scalprum/plugin-manifest.json +11 -0
  28. package/dist-scalprum/static/1613.71f0fccd.chunk.js +3 -0
  29. package/dist-scalprum/static/1613.71f0fccd.chunk.js.LICENSE.txt +10 -0
  30. package/dist-scalprum/static/1613.71f0fccd.chunk.js.map +1 -0
  31. package/dist-scalprum/static/1836.b74b4c40.chunk.js +3 -0
  32. package/dist-scalprum/static/1836.b74b4c40.chunk.js.LICENSE.txt +10 -0
  33. package/dist-scalprum/static/1836.b74b4c40.chunk.js.map +1 -0
  34. package/dist-scalprum/static/2198.5905970e.chunk.js +2 -0
  35. package/dist-scalprum/static/2198.5905970e.chunk.js.map +1 -0
  36. package/dist-scalprum/static/3007.bffc9924.chunk.js +2 -0
  37. package/dist-scalprum/static/3007.bffc9924.chunk.js.map +1 -0
  38. package/dist-scalprum/static/3144.6f99ccee.chunk.js +3 -0
  39. package/dist-scalprum/static/3144.6f99ccee.chunk.js.LICENSE.txt +19 -0
  40. package/dist-scalprum/static/3144.6f99ccee.chunk.js.map +1 -0
  41. package/dist-scalprum/static/3483.2f14a8ca.chunk.js +3 -0
  42. package/dist-scalprum/static/3483.2f14a8ca.chunk.js.LICENSE.txt +5 -0
  43. package/dist-scalprum/static/3483.2f14a8ca.chunk.js.map +1 -0
  44. package/dist-scalprum/static/3647.b96f9b3e.chunk.js +2 -0
  45. package/dist-scalprum/static/3647.b96f9b3e.chunk.js.map +1 -0
  46. package/dist-scalprum/static/3657.59d45756.chunk.js +3 -0
  47. package/dist-scalprum/static/3657.59d45756.chunk.js.LICENSE.txt +10 -0
  48. package/dist-scalprum/static/3657.59d45756.chunk.js.map +1 -0
  49. package/dist-scalprum/static/4041.29923ad9.chunk.js +3 -0
  50. package/dist-scalprum/static/4041.29923ad9.chunk.js.LICENSE.txt +9 -0
  51. package/dist-scalprum/static/4041.29923ad9.chunk.js.map +1 -0
  52. package/dist-scalprum/static/4161.aa5fd28d.chunk.js +3 -0
  53. package/dist-scalprum/static/4161.aa5fd28d.chunk.js.LICENSE.txt +27 -0
  54. package/dist-scalprum/static/4161.aa5fd28d.chunk.js.map +1 -0
  55. package/dist-scalprum/static/428.0a290bc6.chunk.js +2 -0
  56. package/dist-scalprum/static/428.0a290bc6.chunk.js.map +1 -0
  57. package/dist-scalprum/static/4306.133aa342.chunk.js +2 -0
  58. package/dist-scalprum/static/4306.133aa342.chunk.js.map +1 -0
  59. package/dist-scalprum/static/441.8bd811bc.chunk.js +2 -0
  60. package/dist-scalprum/static/441.8bd811bc.chunk.js.map +1 -0
  61. package/dist-scalprum/static/4491.a2e0258f.chunk.js +2 -0
  62. package/dist-scalprum/static/4491.a2e0258f.chunk.js.map +1 -0
  63. package/dist-scalprum/static/4570.8b9f98d7.chunk.js +3 -0
  64. package/dist-scalprum/static/4570.8b9f98d7.chunk.js.LICENSE.txt +16 -0
  65. package/dist-scalprum/static/4570.8b9f98d7.chunk.js.map +1 -0
  66. package/dist-scalprum/static/5222.796292ca.chunk.js +2 -0
  67. package/dist-scalprum/static/5222.796292ca.chunk.js.map +1 -0
  68. package/dist-scalprum/static/5453.d8d305e9.chunk.js +2 -0
  69. package/dist-scalprum/static/5453.d8d305e9.chunk.js.map +1 -0
  70. package/dist-scalprum/static/5568.5dbce633.chunk.js +3 -0
  71. package/dist-scalprum/static/5568.5dbce633.chunk.js.LICENSE.txt +18 -0
  72. package/dist-scalprum/static/5568.5dbce633.chunk.js.map +1 -0
  73. package/dist-scalprum/static/5603.05d9ca7f.chunk.js +2 -0
  74. package/dist-scalprum/static/5603.05d9ca7f.chunk.js.map +1 -0
  75. package/dist-scalprum/static/5811.5c192eeb.chunk.js +2 -0
  76. package/dist-scalprum/static/5811.5c192eeb.chunk.js.map +1 -0
  77. package/dist-scalprum/static/6272.e49551fa.chunk.js +2 -0
  78. package/dist-scalprum/static/6272.e49551fa.chunk.js.map +1 -0
  79. package/dist-scalprum/static/6281.29f4549b.chunk.js +2 -0
  80. package/dist-scalprum/static/6281.29f4549b.chunk.js.map +1 -0
  81. package/dist-scalprum/static/6352.d48bba8c.chunk.js +2 -0
  82. package/dist-scalprum/static/6352.d48bba8c.chunk.js.map +1 -0
  83. package/dist-scalprum/static/6872.feed76d2.chunk.js +2 -0
  84. package/dist-scalprum/static/6872.feed76d2.chunk.js.map +1 -0
  85. package/dist-scalprum/static/7601.08d8ff3f.chunk.js +2 -0
  86. package/dist-scalprum/static/7601.08d8ff3f.chunk.js.map +1 -0
  87. package/dist-scalprum/static/7984.c8511b89.chunk.js +2 -0
  88. package/dist-scalprum/static/7984.c8511b89.chunk.js.map +1 -0
  89. package/dist-scalprum/static/8365.75ea3581.chunk.js +2 -0
  90. package/dist-scalprum/static/8365.75ea3581.chunk.js.map +1 -0
  91. package/dist-scalprum/static/8617.d1dc70a8.chunk.js +2 -0
  92. package/dist-scalprum/static/8617.d1dc70a8.chunk.js.map +1 -0
  93. package/dist-scalprum/static/9288.61b45746.chunk.js +3 -0
  94. package/dist-scalprum/static/9288.61b45746.chunk.js.LICENSE.txt +33 -0
  95. package/dist-scalprum/static/9288.61b45746.chunk.js.map +1 -0
  96. package/dist-scalprum/static/exposed-PluginRoot.8bc4d676.chunk.js +2 -0
  97. package/dist-scalprum/static/exposed-PluginRoot.8bc4d676.chunk.js.map +1 -0
  98. package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.2bd53873.chunk.js +2 -0
  99. package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.2bd53873.chunk.js.map +1 -0
  100. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.bb6a8626.chunk.js +2 -0
  101. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.bb6a8626.chunk.js.map +1 -0
  102. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.bd112f1a.chunk.js +2 -0
  103. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.bd112f1a.chunk.js.map +1 -0
  104. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.78db0238.chunk.js +2 -0
  105. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.78db0238.chunk.js.map +1 -0
  106. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.b0d90871.chunk.js +2 -0
  107. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.b0d90871.chunk.js.map +1 -0
  108. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.f9816c44.chunk.js +2 -0
  109. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.f9816c44.chunk.js.map +1 -0
  110. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.aa86d495.chunk.js +2 -0
  111. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.aa86d495.chunk.js.map +1 -0
  112. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.ddf703d6.chunk.js +2 -0
  113. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.ddf703d6.chunk.js.map +1 -0
  114. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.70910623.chunk.js +2 -0
  115. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.70910623.chunk.js.map +1 -0
  116. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.9b9ce313.chunk.js +2 -0
  117. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.9b9ce313.chunk.js.map +1 -0
  118. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.4bfb8996.chunk.js +2 -0
  119. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.4bfb8996.chunk.js.map +1 -0
  120. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.4b40a3f9.chunk.js +2 -0
  121. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.4b40a3f9.chunk.js.map +1 -0
  122. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.35f221e8.chunk.js +2 -0
  123. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.35f221e8.chunk.js.map +1 -0
  124. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.614c5248.chunk.js +2 -0
  125. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.614c5248.chunk.js.map +1 -0
  126. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.a06c1c62.chunk.js +2 -0
  127. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.a06c1c62.chunk.js.map +1 -0
  128. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.6381890e.chunk.js +2 -0
  129. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.6381890e.chunk.js.map +1 -0
  130. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.dfc9b0b0.chunk.js +2 -0
  131. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.dfc9b0b0.chunk.js.map +1 -0
  132. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.80d14346.chunk.js +2 -0
  133. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.80d14346.chunk.js.map +1 -0
  134. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.53f7c730.chunk.js +2 -0
  135. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.53f7c730.chunk.js.map +1 -0
  136. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.ec232b8a.chunk.js +2 -0
  137. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.ec232b8a.chunk.js.map +1 -0
  138. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.84e0a497.chunk.js +2 -0
  139. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.84e0a497.chunk.js.map +1 -0
  140. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.31bde7c5.chunk.js +2 -0
  141. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.31bde7c5.chunk.js.map +1 -0
  142. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.b43ce116.chunk.js +2 -0
  143. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.b43ce116.chunk.js.map +1 -0
  144. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.f884fdc0.chunk.js +2 -0
  145. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.f884fdc0.chunk.js.map +1 -0
  146. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.781cc6c6.chunk.js +2 -0
  147. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.781cc6c6.chunk.js.map +1 -0
  148. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.79dfc31f.chunk.js +2 -0
  149. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.79dfc31f.chunk.js.map +1 -0
  150. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.ab3b1c28.chunk.js +2 -0
  151. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.ab3b1c28.chunk.js.map +1 -0
  152. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.97b48014.chunk.js +2 -0
  153. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.97b48014.chunk.js.map +1 -0
  154. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.e3fcc98c.chunk.js +2 -0
  155. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.e3fcc98c.chunk.js.map +1 -0
  156. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.e6dbc3b4.chunk.js +2 -0
  157. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.e6dbc3b4.chunk.js.map +1 -0
  158. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.cb9028b5.chunk.js +2 -0
  159. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.cb9028b5.chunk.js.map +1 -0
  160. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.3bc87b5b.chunk.js +2 -0
  161. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.3bc87b5b.chunk.js.map +1 -0
  162. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.6b156852.chunk.js +2 -0
  163. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.6b156852.chunk.js.map +1 -0
  164. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.78d69dee.chunk.js +2 -0
  165. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.78d69dee.chunk.js.map +1 -0
  166. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.ff6a8f78.chunk.js +2 -0
  167. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.ff6a8f78.chunk.js.map +1 -0
  168. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.58c4cb07.chunk.js +2 -0
  169. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.58c4cb07.chunk.js.map +1 -0
  170. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.3a36e63f.chunk.js +2 -0
  171. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.3a36e63f.chunk.js.map +1 -0
  172. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.ea98c6fb.chunk.js +2 -0
  173. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.ea98c6fb.chunk.js.map +1 -0
  174. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7fc6f9a3.chunk.js +2 -0
  175. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7fc6f9a3.chunk.js.map +1 -0
  176. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.2cc312ae.chunk.js +2 -0
  177. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.2cc312ae.chunk.js.map +1 -0
  178. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.bf4f2b44.chunk.js +2 -0
  179. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.bf4f2b44.chunk.js.map +1 -0
  180. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.0a0b12af.chunk.js +2 -0
  181. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.0a0b12af.chunk.js.map +1 -0
  182. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.588e191d.chunk.js +2 -0
  183. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.588e191d.chunk.js.map +1 -0
  184. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.a8373241.chunk.js +2 -0
  185. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.a8373241.chunk.js.map +1 -0
  186. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.8fb85401.chunk.js +2 -0
  187. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.8fb85401.chunk.js.map +1 -0
  188. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.6d79126a.chunk.js +2 -0
  189. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.6d79126a.chunk.js.map +1 -0
  190. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.2c5fdf55.chunk.js +2 -0
  191. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.2c5fdf55.chunk.js.map +1 -0
  192. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.1ede6e37.chunk.js +2 -0
  193. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.1ede6e37.chunk.js.map +1 -0
  194. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.c3457b50.chunk.js +2 -0
  195. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.c3457b50.chunk.js.map +1 -0
  196. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.8fd3703c.chunk.js +2 -0
  197. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.8fd3703c.chunk.js.map +1 -0
  198. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.b30d0c38.chunk.js +2 -0
  199. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.b30d0c38.chunk.js.map +1 -0
  200. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.a34b6944.chunk.js +2 -0
  201. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.a34b6944.chunk.js.map +1 -0
  202. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.1e79c9b9.chunk.js +2 -0
  203. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.1e79c9b9.chunk.js.map +1 -0
  204. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.8a488b19.chunk.js +2 -0
  205. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.8a488b19.chunk.js.map +1 -0
  206. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.4ac917b8.chunk.js +2 -0
  207. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.4ac917b8.chunk.js.map +1 -0
  208. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.501777c7.chunk.js +2 -0
  209. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.501777c7.chunk.js.map +1 -0
  210. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0d7f4890.chunk.js +2 -0
  211. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0d7f4890.chunk.js.map +1 -0
  212. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.2f5c76b9.chunk.js +2 -0
  213. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.2f5c76b9.chunk.js.map +1 -0
  214. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.5ee62733.chunk.js +2 -0
  215. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.5ee62733.chunk.js.map +1 -0
  216. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.972cc801.chunk.js +2 -0
  217. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.972cc801.chunk.js.map +1 -0
  218. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.38ec3d00.chunk.js +2 -0
  219. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.38ec3d00.chunk.js.map +1 -0
  220. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.2ba37c00.chunk.js +2 -0
  221. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.2ba37c00.chunk.js.map +1 -0
  222. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.a45eb030.chunk.js +2 -0
  223. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.a45eb030.chunk.js.map +1 -0
  224. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.cceeafb0.chunk.js +2 -0
  225. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.cceeafb0.chunk.js.map +1 -0
  226. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.378d3296.chunk.js +2 -0
  227. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.378d3296.chunk.js.map +1 -0
  228. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.e740620a.chunk.js +2 -0
  229. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.e740620a.chunk.js.map +1 -0
  230. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.bb5b0086.chunk.js +2 -0
  231. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.bb5b0086.chunk.js.map +1 -0
  232. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.2347c999.chunk.js +2 -0
  233. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.2347c999.chunk.js.map +1 -0
  234. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.abc0a144.chunk.js +2 -0
  235. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.abc0a144.chunk.js.map +1 -0
  236. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.eaa5e2bf.chunk.js +2 -0
  237. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.eaa5e2bf.chunk.js.map +1 -0
  238. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.72fdf84d.chunk.js +2 -0
  239. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.72fdf84d.chunk.js.map +1 -0
  240. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.ecd68b19.chunk.js +2 -0
  241. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.ecd68b19.chunk.js.map +1 -0
  242. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.d698757b.chunk.js +2 -0
  243. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.d698757b.chunk.js.map +1 -0
  244. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.75c0a89b.chunk.js +2 -0
  245. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.75c0a89b.chunk.js.map +1 -0
  246. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.bbd3c104.chunk.js +2 -0
  247. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.bbd3c104.chunk.js.map +1 -0
  248. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.e2543cc2.chunk.js +2 -0
  249. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.e2543cc2.chunk.js.map +1 -0
  250. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.5d714528.chunk.js +2 -0
  251. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.5d714528.chunk.js.map +1 -0
  252. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.e57e3c89.chunk.js +2 -0
  253. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.e57e3c89.chunk.js.map +1 -0
  254. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.5859273c.chunk.js +2 -0
  255. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.5859273c.chunk.js.map +1 -0
  256. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.c60db034.chunk.js +2 -0
  257. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.c60db034.chunk.js.map +1 -0
  258. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.78be038f.chunk.js +2 -0
  259. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.78be038f.chunk.js.map +1 -0
  260. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.d9d4ed7e.chunk.js +2 -0
  261. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.d9d4ed7e.chunk.js.map +1 -0
  262. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.25afcc29.chunk.js +2 -0
  263. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.25afcc29.chunk.js.map +1 -0
  264. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.abe269c1.chunk.js +2 -0
  265. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.abe269c1.chunk.js.map +1 -0
  266. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.e04d1c07.chunk.js +2 -0
  267. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.e04d1c07.chunk.js.map +1 -0
  268. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.b0ad82d3.chunk.js +2 -0
  269. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.b0ad82d3.chunk.js.map +1 -0
  270. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.1ff533ef.chunk.js +2 -0
  271. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.1ff533ef.chunk.js.map +1 -0
  272. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.d934b52b.chunk.js +2 -0
  273. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.d934b52b.chunk.js.map +1 -0
  274. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.f43a39d0.chunk.js +2 -0
  275. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.f43a39d0.chunk.js.map +1 -0
  276. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.e3bfcde8.chunk.js +2 -0
  277. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.e3bfcde8.chunk.js.map +1 -0
  278. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.c5eaa6f5.chunk.js +2 -0
  279. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.c5eaa6f5.chunk.js.map +1 -0
  280. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.8d4054e7.chunk.js +2 -0
  281. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.8d4054e7.chunk.js.map +1 -0
  282. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.b4bb9102.chunk.js +2 -0
  283. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.b4bb9102.chunk.js.map +1 -0
  284. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.74045e43.chunk.js +2 -0
  285. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.74045e43.chunk.js.map +1 -0
  286. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.92519810.chunk.js +2 -0
  287. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.92519810.chunk.js.map +1 -0
  288. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.cc574d49.chunk.js +2 -0
  289. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.cc574d49.chunk.js.map +1 -0
  290. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.1cb2f675.chunk.js +2 -0
  291. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.1cb2f675.chunk.js.map +1 -0
  292. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.f624f22d.chunk.js +2 -0
  293. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.f624f22d.chunk.js.map +1 -0
  294. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.3ece3068.chunk.js +2 -0
  295. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.3ece3068.chunk.js.map +1 -0
  296. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.f32d41e6.chunk.js +2 -0
  297. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.f32d41e6.chunk.js.map +1 -0
  298. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.b6519e02.chunk.js +2 -0
  299. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.b6519e02.chunk.js.map +1 -0
  300. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.52f73c98.chunk.js +2 -0
  301. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.52f73c98.chunk.js.map +1 -0
  302. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.cad796c9.chunk.js +2 -0
  303. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.cad796c9.chunk.js.map +1 -0
  304. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.1489792c.chunk.js +2 -0
  305. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.1489792c.chunk.js.map +1 -0
  306. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.d8631b37.chunk.js +2 -0
  307. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.d8631b37.chunk.js.map +1 -0
  308. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.114e44eb.chunk.js +2 -0
  309. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.114e44eb.chunk.js.map +1 -0
  310. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.f1f17544.chunk.js +2 -0
  311. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.f1f17544.chunk.js.map +1 -0
  312. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.5251fe1a.chunk.js +2 -0
  313. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.5251fe1a.chunk.js.map +1 -0
  314. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.fa8fdac0.chunk.js +2 -0
  315. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.fa8fdac0.chunk.js.map +1 -0
  316. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.f5bc5b04.chunk.js +2 -0
  317. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.f5bc5b04.chunk.js.map +1 -0
  318. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.9b39cf3b.chunk.js +2 -0
  319. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.9b39cf3b.chunk.js.map +1 -0
  320. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.0cf721ff.chunk.js +2 -0
  321. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.0cf721ff.chunk.js.map +1 -0
  322. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.5f60f06d.chunk.js +2 -0
  323. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.5f60f06d.chunk.js.map +1 -0
  324. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.443301b3.chunk.js +2 -0
  325. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.443301b3.chunk.js.map +1 -0
  326. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.c54b2c4a.chunk.js +2 -0
  327. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.c54b2c4a.chunk.js.map +1 -0
  328. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.630147e0.chunk.js +2 -0
  329. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.630147e0.chunk.js.map +1 -0
  330. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.17afaed1.chunk.js +2 -0
  331. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.17afaed1.chunk.js.map +1 -0
  332. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.245f31b6.chunk.js +2 -0
  333. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.245f31b6.chunk.js.map +1 -0
  334. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.5b05cdf2.chunk.js +2 -0
  335. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.5b05cdf2.chunk.js.map +1 -0
  336. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.4934a8e8.chunk.js +2 -0
  337. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.4934a8e8.chunk.js.map +1 -0
  338. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.2d204375.chunk.js +2 -0
  339. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.2d204375.chunk.js.map +1 -0
  340. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.0e42541e.chunk.js +2 -0
  341. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.0e42541e.chunk.js.map +1 -0
  342. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.362a3b0a.chunk.js +2 -0
  343. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.362a3b0a.chunk.js.map +1 -0
  344. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.4a460eaf.chunk.js +2 -0
  345. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.4a460eaf.chunk.js.map +1 -0
  346. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.ea742315.chunk.js +2 -0
  347. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.ea742315.chunk.js.map +1 -0
  348. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.706a4bd6.chunk.js +2 -0
  349. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.706a4bd6.chunk.js.map +1 -0
  350. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.ae8475a2.chunk.js +2 -0
  351. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.ae8475a2.chunk.js.map +1 -0
  352. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.5052a768.chunk.js +2 -0
  353. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.5052a768.chunk.js.map +1 -0
  354. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.5b0d21b9.chunk.js +2 -0
  355. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.5b0d21b9.chunk.js.map +1 -0
  356. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.ade4c6c4.chunk.js +2 -0
  357. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.ade4c6c4.chunk.js.map +1 -0
  358. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.2bd36dc7.chunk.js +2 -0
  359. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.2bd36dc7.chunk.js.map +1 -0
  360. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.25f8d292.chunk.js +2 -0
  361. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.25f8d292.chunk.js.map +1 -0
  362. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.1961f69f.chunk.js +2 -0
  363. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.1961f69f.chunk.js.map +1 -0
  364. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.7bd31b3a.chunk.js +2 -0
  365. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.7bd31b3a.chunk.js.map +1 -0
  366. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.8d1f48c5.chunk.js +2 -0
  367. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.8d1f48c5.chunk.js.map +1 -0
  368. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.615fa721.chunk.js +2 -0
  369. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.615fa721.chunk.js.map +1 -0
  370. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.be0fdf0c.chunk.js +2 -0
  371. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.be0fdf0c.chunk.js.map +1 -0
  372. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.60f97895.chunk.js +2 -0
  373. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.60f97895.chunk.js.map +1 -0
  374. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.0cd375bc.chunk.js +2 -0
  375. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.0cd375bc.chunk.js.map +1 -0
  376. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.ee3f80da.chunk.js +2 -0
  377. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.ee3f80da.chunk.js.map +1 -0
  378. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.08443005.chunk.js +2 -0
  379. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.08443005.chunk.js.map +1 -0
  380. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.9e4100ae.chunk.js +2 -0
  381. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.9e4100ae.chunk.js.map +1 -0
  382. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.feb72aed.chunk.js +2 -0
  383. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.feb72aed.chunk.js.map +1 -0
  384. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.989943de.chunk.js +2 -0
  385. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.989943de.chunk.js.map +1 -0
  386. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.8f3a0af6.chunk.js +2 -0
  387. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.8f3a0af6.chunk.js.map +1 -0
  388. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.8540ccea.chunk.js +2 -0
  389. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.8540ccea.chunk.js.map +1 -0
  390. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.a5a73a29.chunk.js +2 -0
  391. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.a5a73a29.chunk.js.map +1 -0
  392. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.dc8afdf1.chunk.js +2 -0
  393. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.dc8afdf1.chunk.js.map +1 -0
  394. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.47518214.chunk.js +2 -0
  395. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.47518214.chunk.js.map +1 -0
  396. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.c0bcd6ce.chunk.js +2 -0
  397. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.c0bcd6ce.chunk.js.map +1 -0
  398. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.909f2a27.chunk.js +2 -0
  399. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.909f2a27.chunk.js.map +1 -0
  400. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.d84064e5.chunk.js +2 -0
  401. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.d84064e5.chunk.js.map +1 -0
  402. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.038504d0.chunk.js +2 -0
  403. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.038504d0.chunk.js.map +1 -0
  404. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.7e26e901.chunk.js +2 -0
  405. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.7e26e901.chunk.js.map +1 -0
  406. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.94075d6a.chunk.js +2 -0
  407. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.94075d6a.chunk.js.map +1 -0
  408. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.a4629d0a.chunk.js +2 -0
  409. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.a4629d0a.chunk.js.map +1 -0
  410. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.508b5846.chunk.js +2 -0
  411. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.508b5846.chunk.js.map +1 -0
  412. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.bb9cc730.chunk.js +2 -0
  413. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.bb9cc730.chunk.js.map +1 -0
  414. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.bec19089.chunk.js +2 -0
  415. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.bec19089.chunk.js.map +1 -0
  416. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.9bbc16eb.chunk.js +2 -0
  417. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.9bbc16eb.chunk.js.map +1 -0
  418. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.4fa5afdd.chunk.js +2 -0
  419. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.4fa5afdd.chunk.js.map +1 -0
  420. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.53da57ca.chunk.js +2 -0
  421. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.53da57ca.chunk.js.map +1 -0
  422. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.0e45c1cf.chunk.js +2 -0
  423. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.0e45c1cf.chunk.js.map +1 -0
  424. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.43421810.chunk.js +2 -0
  425. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.43421810.chunk.js.map +1 -0
  426. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.651dcc8d.chunk.js +2 -0
  427. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.651dcc8d.chunk.js.map +1 -0
  428. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.d69b1825.chunk.js +2 -0
  429. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.d69b1825.chunk.js.map +1 -0
  430. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.17155e77.chunk.js +2 -0
  431. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.17155e77.chunk.js.map +1 -0
  432. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.fe81a7fc.chunk.js +2 -0
  433. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.fe81a7fc.chunk.js.map +1 -0
  434. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.a431b2db.chunk.js +2 -0
  435. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.a431b2db.chunk.js.map +1 -0
  436. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.cde06cf5.chunk.js +2 -0
  437. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.cde06cf5.chunk.js.map +1 -0
  438. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.c5ac3a0a.chunk.js +2 -0
  439. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.c5ac3a0a.chunk.js.map +1 -0
  440. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.7d33a4a9.chunk.js +2 -0
  441. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.7d33a4a9.chunk.js.map +1 -0
  442. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.695a2547.chunk.js +2 -0
  443. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.695a2547.chunk.js.map +1 -0
  444. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.402e473f.chunk.js +2 -0
  445. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.402e473f.chunk.js.map +1 -0
  446. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.79af288c.chunk.js +2 -0
  447. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.79af288c.chunk.js.map +1 -0
  448. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.ecb04f2a.chunk.js +2 -0
  449. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.ecb04f2a.chunk.js.map +1 -0
  450. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.0f4ff415.chunk.js +2 -0
  451. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.0f4ff415.chunk.js.map +1 -0
  452. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.5cb0fdfc.chunk.js +2 -0
  453. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.5cb0fdfc.chunk.js.map +1 -0
  454. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.cf576f17.chunk.js +2 -0
  455. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.cf576f17.chunk.js.map +1 -0
  456. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.843d9bc4.chunk.js +2 -0
  457. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.843d9bc4.chunk.js.map +1 -0
  458. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.21c190ed.chunk.js +2 -0
  459. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.21c190ed.chunk.js.map +1 -0
  460. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.4703f4c5.chunk.js +2 -0
  461. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.4703f4c5.chunk.js.map +1 -0
  462. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.42eb54af.chunk.js +2 -0
  463. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.42eb54af.chunk.js.map +1 -0
  464. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.e32adbeb.chunk.js +2 -0
  465. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.e32adbeb.chunk.js.map +1 -0
  466. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.dea9db6c.chunk.js +2 -0
  467. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.dea9db6c.chunk.js.map +1 -0
  468. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.e82f126f.chunk.js +2 -0
  469. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.e82f126f.chunk.js.map +1 -0
  470. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.217c56f0.chunk.js +2 -0
  471. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.217c56f0.chunk.js.map +1 -0
  472. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.7cff3cbb.chunk.js +2 -0
  473. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.7cff3cbb.chunk.js.map +1 -0
  474. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.ee14d6a4.chunk.js +2 -0
  475. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.ee14d6a4.chunk.js.map +1 -0
  476. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.353780d4.chunk.js +2 -0
  477. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.353780d4.chunk.js.map +1 -0
  478. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.2aae489e.chunk.js +2 -0
  479. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.2aae489e.chunk.js.map +1 -0
  480. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.fc94a148.chunk.js +2 -0
  481. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.fc94a148.chunk.js.map +1 -0
  482. package/package.json +7 -3
  483. package/dist/hooks/useUserRole.esm.js +0 -49
  484. package/dist/hooks/useUserRole.esm.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[6272],{26272:(t,e,n)=>{n.r(e),n.d(e,{AnalyticsContext:()=>c,FeatureFlagState:()=>G,SessionState:()=>R,alertApiRef:()=>$,analyticsApiRef:()=>l,appThemeApiRef:()=>F,atlassianAuthApiRef:()=>N,attachComponentData:()=>W,bitbucketAuthApiRef:()=>E,bitbucketServerAuthApiRef:()=>C,configApiRef:()=>j,createApiFactory:()=>m,createApiRef:()=>p.y,createComponentExtension:()=>X,createExternalRouteRef:()=>pt,createPlugin:()=>nt,createReactExtension:()=>J,createRoutableExtension:()=>K,createRouteRef:()=>it,createSubRouteRef:()=>ct,discoveryApiRef:()=>P,errorApiRef:()=>V.m,featureFlagsApiRef:()=>D,fetchApiRef:()=>I,getComponentData:()=>B,githubAuthApiRef:()=>v,gitlabAuthApiRef:()=>b,googleAuthApiRef:()=>y,identityApiRef:()=>T,microsoftAuthApiRef:()=>A,oauthRequestApiRef:()=>O,oktaAuthApiRef:()=>w,oneloginAuthApiRef:()=>x,openshiftAuthApiRef:()=>k,storageApiRef:()=>_,useAnalytics:()=>g,useApi:()=>u.gf,useApiHolder:()=>u.Q2,useApp:()=>z,useElementFilter:()=>tt,useRouteRef:()=>U,useRouteRefParams:()=>lt,vmwareCloudAuthApiRef:()=>S,withApis:()=>u.wV});var o=n(31085),r=n(64218),i=n(95478);const a=(0,r.createVersionedContext)("analytics-context"),s=()=>{const t=(0,i.useContext)(a);if(void 0===t)return{routeRef:"unknown",pluginId:"root",extension:"App"};const e=t.atVersion(1);if(void 0===e)throw new Error("No context found for version 1.");return e},c=t=>{const{attributes:e,children:n}=t,i={...s(),...e},c=(0,r.createVersionedValueMap)({1:i});return(0,o.jsx)(a.Provider,{value:c,children:n})};var u=n(87092),p=n(89940);const l=(0,p.y)({id:"core.analytics"}),d=(0,r.getOrCreateGlobalSingleton)("core-plugin-api:analytics-tracker-events",()=>({mostRecentGatheredNavigation:void 0,mostRecentRoutableExtensionRender:void 0,beforeUnloadRegistered:!1})),h="_ROUTABLE-EXTENSION-RENDERED";class f{constructor(t,e={routeRef:"unknown",pluginId:"root",extension:"App"}){this.analyticsApi=t,this.context=e,d.beforeUnloadRegistered||(addEventListener("beforeunload",()=>{d.mostRecentGatheredNavigation&&(this.analyticsApi.captureEvent({...d.mostRecentGatheredNavigation,...d.mostRecentRoutableExtensionRender}),d.mostRecentGatheredNavigation=void 0,d.mostRecentRoutableExtensionRender=void 0)},{once:!0,passive:!0}),d.beforeUnloadRegistered=!0)}setContext(t){this.context=t}captureEvent(t,e,{value:n,attributes:o}={}){const{_routeNodeType:r,...i}=this.context;if(t!==h){if(d.mostRecentGatheredNavigation){try{this.analyticsApi.captureEvent({...d.mostRecentGatheredNavigation,...d.mostRecentRoutableExtensionRender})}catch(t){console.warn("Error during analytics event capture. %o",t)}d.mostRecentGatheredNavigation=void 0,d.mostRecentRoutableExtensionRender=void 0}if("navigate"!==t||"gathered"!==r||"root"!==i.pluginId)try{this.analyticsApi.captureEvent({action:t,subject:e,value:n,attributes:o,context:i})}catch(t){console.warn("Error during analytics event capture. %o",t)}else d.mostRecentGatheredNavigation={action:t,subject:e,value:n,attributes:o,context:i}}else d.mostRecentGatheredNavigation&&(d.mostRecentRoutableExtensionRender={context:{...i,extension:"App"}})}}function g(){const t=(0,i.useRef)(null),e=s(),n=function(){try{return(0,u.gf)(l)}catch{return{captureEvent:()=>{}}}}(),o=(null===t.current&&(t.current=new f(n)),t.current);return o.setContext(e),o}function m(t,e){return"id"in t?{api:t,deps:{},factory:()=>e}:t}var R=(t=>(t.SignedIn="SignedIn",t.SignedOut="SignedOut",t))(R||{});const y=(0,p.y)({id:"core.auth.google"}),v=(0,p.y)({id:"core.auth.github"}),w=(0,p.y)({id:"core.auth.okta"}),b=(0,p.y)({id:"core.auth.gitlab"}),A=(0,p.y)({id:"core.auth.microsoft"}),x=(0,p.y)({id:"core.auth.onelogin"}),E=(0,p.y)({id:"core.auth.bitbucket"}),C=(0,p.y)({id:"core.auth.bitbucket-server"}),N=(0,p.y)({id:"core.auth.atlassian"}),S=(0,p.y)({id:"core.auth.vmware-cloud"}),k=(0,p.y)({id:"core.auth.openshift"}),$=(0,p.y)({id:"core.alert"}),F=(0,p.y)({id:"core.apptheme"}),j=(0,p.y)({id:"core.config"}),P=(0,p.y)({id:"core.discovery"});var V=n(50884),G=(t=>(t[t.None=0]="None",t[t.Active=1]="Active",t))(G||{});const D=(0,p.y)({id:"core.featureflags"}),I=(0,p.y)({id:"core.fetch"}),T=(0,p.y)({id:"core.identity"}),O=(0,p.y)({id:"core.oauthrequest"}),_=(0,p.y)({id:"core.storage"}),z=()=>{const t=(0,r.useVersionedContext)("app-context");if(!t)throw new Error("App context is not available");const e=t.atVersion(1);if(!e)throw new Error("AppContext v1 not available");return e},M=(0,r.getOrCreateGlobalSingleton)("component-data-store",()=>new WeakMap),H="__backstage_data";function W(t,e,n){const o=t;let r=o[H]??M.get(t);if(r||(r={map:new Map},Object.defineProperty(o,H,{enumerable:!1,configurable:!0,writable:!1,value:r}),M.set(t,r)),r.map.has(e)){const n=t.displayName||t.name;throw new Error(`Attempted to attach duplicate data "${e}" to component "${n}"`)}r.map.set(e,n)}function B(t,e){if(!t)return;const n=t.type;if(!n)return;const o=n[H]??M.get(n);return o?o.map.get(e):void 0}var L=n(42469);function U(t){const{pathname:e}=(0,L.useLocation)(),n=(0,r.useVersionedContext)("routing-context");if(!n)throw new Error("Routing context is not available");const o=n.atVersion(1),a=(0,i.useMemo)(()=>o&&o.resolve(t,{pathname:e}),[o,t,e]);if(!n)throw new Error("useRouteRef used outside of routing context");if(!o)throw new Error("RoutingContext v1 not available");const s="optional"in t&&t.optional;if(!a&&!s)throw new Error(`No path for ${t}`);return a}class q extends i.Component{static getDerivedStateFromError(t){return{error:t}}state={error:void 0};handleErrorReset=()=>{this.setState({error:void 0})};render(){const{error:t}=this.state,{app:e,plugin:n}=this.props,{ErrorBoundaryFallback:r}=e.getComponents();return t?(0,o.jsx)(r,{error:t,resetError:this.handleErrorReset,plugin:n}):this.props.children}}var Q=n(57556);function K(t){const{component:e,mountPoint:n,name:r}=t;return J({component:{lazy:()=>e().then(t=>{const e=e=>{const r=g();try{U(n)}catch(t){if("object"==typeof t&&null!==t){const{message:e}=t;if("string"==typeof e&&e.startsWith("No path for "))throw new Error(`Routable extension component with mount point ${n} was not discovered in the app element tree. Routable extension components may not be rendered by other components and must be directly available as an element within the App provider component.`)}throw t}return(0,i.useEffect)(()=>{r.captureEvent(h,"")},[r]),(0,o.jsx)(t,{...e})},a=r||t.displayName||t.name||"LazyComponent";return e.displayName=`RoutableExtension(${a})`,e})},data:{"core.mountPoint":n},name:r})}function X(t){const{component:e,name:n}=t;return J({component:e,name:n})}function J(t){const{data:e={},name:n}=t;let r;if(n||console.warn("Declaring extensions without name is DEPRECATED. Make sure that all usages of createReactExtension, createComponentExtension and createRoutableExtension provide a name."),"lazy"in t.component){const e=t.component.lazy;r=(0,i.lazy)(()=>e().then(t=>({default:t}),t=>{const e=n?` of the ${n} extension`:"";throw new Q.HK(`Failed lazy loading${e}, try to reload the page`,t)}))}else r=t.component.sync;const a=n||r.displayName||r.name||"Component";return{expose(t){const s=a=>{const s=z(),{Progress:u}=s.getComponents(),p=e?.["core.mountPoint"];return(0,o.jsx)(i.Suspense,{fallback:(0,o.jsx)(u,{}),children:(0,o.jsx)(q,{app:s,plugin:t,children:(0,o.jsx)(c,{attributes:{pluginId:t.getId(),...n&&{extension:n},...p&&{routeRef:p.id}},children:(0,o.jsx)(r,{...a})})})})};W(s,"core.plugin",t),W(s,"core.extensionName",n);for(const[t,n]of Object.entries(e))W(s,t,n);return s.displayName=`Extension(${a})`,s}}}function Y(t,e,n,o){return i.Children.toArray(t).flatMap(t=>{if(!(0,i.isValidElement)(t))return[];if(t.type===i.Fragment)return Y(t.props.children,e,n,o);if(B(t,"core.featureFlagged")){const r=t.props;return("with"in r?e.isActive(r.with):!e.isActive(r.without))?Y(t.props.children,e,n,o):[]}if(void 0===n||n(t))return[t];if(o)throw new Error(o);return Y(t.props.children,e,n,o)})}class Z{constructor(t,e){this.node=t,this.featureFlagsApi=e}selectByComponentData(t){const e=Y(this.node,this.featureFlagsApi,e=>void 0!==B(e,t.key),t.withStrictError);return new Z(e,this.featureFlagsApi)}findComponentData(t){return Y(this.node,this.featureFlagsApi,e=>void 0!==B(e,t.key)).map(e=>B(e,t.key)).filter(t=>void 0!==t)}getElements(){return Y(this.node,this.featureFlagsApi)}}function tt(t,e,n=[]){const o=(0,u.gf)(D),r=new Z(t,o);return(0,i.useMemo)(()=>e(r),[t,...n])}class et{constructor(t){this.config=t}getId(){return this.config.id}getApis(){return this.config.apis??[]}getFeatureFlags(){return this.config.featureFlags?.slice()??[]}get routes(){return this.config.routes??{}}get externalRoutes(){return this.config.externalRoutes??{}}provide(t){return t.expose(this)}toString(){return`plugin{${this.config.id}}`}}function nt(t){return new et(t)}const ot=(0,r.getOrCreateGlobalSingleton)("route-ref-type",()=>Symbol("route-ref-type"));class rt{constructor(t,e){this.id=t,this.params=e}[ot]="absolute";get title(){return this.id}toString(){return`routeRef{type=absolute,id=${this.id}}`}}function it(t){return new rt(t.id,t.params??[])}const at=/^\w+$/;class st{constructor(t,e,n,o){this.id=t,this.path=e,this.parent=n,this.params=o}[ot]="sub";toString(){return`routeRef{type=sub,id=${this.id}}`}}function ct(t){const{id:e,path:n,parent:o}=t,r=n.split("/").filter(t=>t.startsWith(":")).map(t=>t.substring(1)),i=[...o.params,...r];if(o.params.some(t=>r.includes(t)))throw new Error("SubRouteRef may not have params that overlap with its parent");if(!n.startsWith("/"))throw new Error(`SubRouteRef path must start with '/', got '${n}'`);if(n.endsWith("/"))throw new Error(`SubRouteRef path must not end with '/', got '${n}'`);for(const t of r)if(!at.test(t))throw new Error(`SubRouteRef path has invalid param, got '${t}'`);return new st(e,n,o,i)}class ut{constructor(t,e,n,o){this.id=t,this.params=e,this.optional=n,this.defaultTarget=o}[ot]="external";toString(){return`routeRef{type=external,id=${this.id}}`}getDefaultTarget(){return this.defaultTarget}}function pt(t){return new ut(t.id,t.params??[],Boolean(t.optional),t?.defaultTarget)}function lt(t){return(0,L.useParams)()}},50884:(t,e,n)=>{n.d(e,{m:()=>o}),n(31085),n(64218);const o=(0,n(89940).y)({id:"core.error"})},87092:(t,e,n)=>{n.d(e,{Q2:()=>a,gf:()=>s,wV:()=>c});var o=n(31085),r=n(64218),i=n(57556);function a(){const t=(0,r.useVersionedContext)("api-context");if(!t)throw new i.EH("API context is not available");const e=t.atVersion(1);if(!e)throw new i.EH("ApiContext v1 not available");return e}function s(t){const e=a().get(t);if(!e)throw new i.EH(`No implementation available for ${t}`);return e}function c(t){return function(e){const n=n=>{const r=a(),s={};for(const e in t)if(t.hasOwnProperty(e)){const n=t[e],o=r.get(n);if(!o)throw new i.EH(`No implementation available for ${n}`);s[e]=o}return(0,o.jsx)(e,{...n,...s})},r=e.displayName||e.name||"Component";return n.displayName=`withApis(${r})`,n}}},89940:(t,e,n)=>{n.d(e,{y:()=>r});class o{constructor(t){if(this.config=t,!t.id.split(".").flatMap(t=>t.split("-")).every(t=>t.match(/^[a-z][a-z0-9]*$/)))throw new Error(`API id must only contain period separated lowercase alphanum tokens with dashes, got '${t.id}'`)}get id(){return this.config.id}get T(){throw new Error(`tried to read ApiRef.T of ${this}`)}toString(){return`apiRef{${this.config.id}}`}}function r(t){return new o(t)}}}]);
2
+ //# sourceMappingURL=6272.e49551fa.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/6272.e49551fa.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/analytics/AnalyticsContext.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/AnalyticsApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/analytics/Tracker.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/analytics/useAnalytics.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/system/helpers.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/auth.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/AlertApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/AppThemeApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/ConfigApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/DiscoveryApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/FeatureFlagsApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/FetchApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/IdentityApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/OAuthRequestApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/StorageApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/app/useApp.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/extensions/componentData.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/routing/useRouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/extensions/PluginErrorBoundary.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/extensions/extensions.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/extensions/useElementFilter.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/plugin/Plugin.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/routing/types.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/routing/RouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/routing/SubRouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/routing/ExternalRouteRef.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/routing/useRouteRefParams.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/definitions/ErrorApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/system/useApi.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-plugin-api/dist/apis/system/ApiRef.esm.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { createVersionedContext, createVersionedValueMap } from '@backstage/version-bridge';\nimport { useContext } from 'react';\n\nconst AnalyticsReactContext = createVersionedContext(\"analytics-context\");\nconst useAnalyticsContext = () => {\n const theContext = useContext(AnalyticsReactContext);\n if (theContext === void 0) {\n return {\n routeRef: \"unknown\",\n pluginId: \"root\",\n extension: \"App\"\n };\n }\n const theValue = theContext.atVersion(1);\n if (theValue === void 0) {\n throw new Error(\"No context found for version 1.\");\n }\n return theValue;\n};\nconst AnalyticsContext = (options) => {\n const { attributes, children } = options;\n const parentValues = useAnalyticsContext();\n const combinedValue = {\n ...parentValues,\n ...attributes\n };\n const versionedCombinedValue = createVersionedValueMap({ 1: combinedValue });\n return /* @__PURE__ */ jsx(AnalyticsReactContext.Provider, { value: versionedCombinedValue, children });\n};\n\nexport { AnalyticsContext, useAnalyticsContext };\n//# sourceMappingURL=AnalyticsContext.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst analyticsApiRef = createApiRef({\n id: \"core.analytics\"\n});\n\nexport { analyticsApiRef };\n//# sourceMappingURL=AnalyticsApi.esm.js.map\n","import { getOrCreateGlobalSingleton } from '@backstage/version-bridge';\n\nconst globalEvents = getOrCreateGlobalSingleton(\n \"core-plugin-api:analytics-tracker-events\",\n () => ({\n mostRecentGatheredNavigation: void 0,\n mostRecentRoutableExtensionRender: void 0,\n beforeUnloadRegistered: false\n })\n);\nconst routableExtensionRenderedEvent = \"_ROUTABLE-EXTENSION-RENDERED\";\nclass Tracker {\n constructor(analyticsApi, context = {\n routeRef: \"unknown\",\n pluginId: \"root\",\n extension: \"App\"\n }) {\n this.analyticsApi = analyticsApi;\n this.context = context;\n if (!globalEvents.beforeUnloadRegistered) {\n addEventListener(\n \"beforeunload\",\n () => {\n if (globalEvents.mostRecentGatheredNavigation) {\n this.analyticsApi.captureEvent({\n ...globalEvents.mostRecentGatheredNavigation,\n ...globalEvents.mostRecentRoutableExtensionRender\n });\n globalEvents.mostRecentGatheredNavigation = void 0;\n globalEvents.mostRecentRoutableExtensionRender = void 0;\n }\n },\n { once: true, passive: true }\n );\n globalEvents.beforeUnloadRegistered = true;\n }\n }\n setContext(context) {\n this.context = context;\n }\n captureEvent(action, subject, {\n value,\n attributes\n } = {}) {\n const { _routeNodeType, ...context } = this.context;\n if (action === routableExtensionRenderedEvent) {\n if (globalEvents.mostRecentGatheredNavigation) {\n globalEvents.mostRecentRoutableExtensionRender = {\n context: {\n ...context,\n extension: \"App\"\n }\n };\n }\n return;\n }\n if (globalEvents.mostRecentGatheredNavigation) {\n try {\n this.analyticsApi.captureEvent({\n ...globalEvents.mostRecentGatheredNavigation,\n ...globalEvents.mostRecentRoutableExtensionRender\n });\n } catch (e) {\n console.warn(\"Error during analytics event capture. %o\", e);\n }\n globalEvents.mostRecentGatheredNavigation = void 0;\n globalEvents.mostRecentRoutableExtensionRender = void 0;\n }\n if (action === \"navigate\" && _routeNodeType === \"gathered\" && context.pluginId === \"root\") {\n globalEvents.mostRecentGatheredNavigation = {\n action,\n subject,\n value,\n attributes,\n context\n };\n return;\n }\n try {\n this.analyticsApi.captureEvent({\n action,\n subject,\n value,\n attributes,\n context\n });\n } catch (e) {\n console.warn(\"Error during analytics event capture. %o\", e);\n }\n }\n}\n\nexport { Tracker, routableExtensionRenderedEvent };\n//# sourceMappingURL=Tracker.esm.js.map\n","import { useAnalyticsContext } from './AnalyticsContext.esm.js';\nimport { useApi } from '../apis/system/useApi.esm.js';\nimport '../apis/definitions/auth.esm.js';\nimport '../apis/definitions/AlertApi.esm.js';\nimport { analyticsApiRef } from '../apis/definitions/AnalyticsApi.esm.js';\nimport '../apis/definitions/AppThemeApi.esm.js';\nimport '../apis/definitions/ConfigApi.esm.js';\nimport '../apis/definitions/DiscoveryApi.esm.js';\nimport '../apis/definitions/ErrorApi.esm.js';\nimport '../apis/definitions/FeatureFlagsApi.esm.js';\nimport '../apis/definitions/FetchApi.esm.js';\nimport '../apis/definitions/IdentityApi.esm.js';\nimport '../apis/definitions/OAuthRequestApi.esm.js';\nimport '../apis/definitions/StorageApi.esm.js';\nimport { useRef } from 'react';\nimport { Tracker } from './Tracker.esm.js';\n\nfunction useAnalyticsApi() {\n try {\n return useApi(analyticsApiRef);\n } catch {\n return { captureEvent: () => {\n } };\n }\n}\nfunction useAnalytics() {\n const trackerRef = useRef(null);\n const context = useAnalyticsContext();\n const analyticsApi = useAnalyticsApi();\n function getTracker() {\n if (trackerRef.current === null) {\n trackerRef.current = new Tracker(analyticsApi);\n }\n return trackerRef.current;\n }\n const tracker = getTracker();\n tracker.setContext(context);\n return tracker;\n}\n\nexport { useAnalytics };\n//# sourceMappingURL=useAnalytics.esm.js.map\n","function createApiFactory(factory, instance) {\n if (\"id\" in factory) {\n return {\n api: factory,\n deps: {},\n factory: () => instance\n };\n }\n return factory;\n}\n\nexport { createApiFactory };\n//# sourceMappingURL=helpers.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nvar SessionState = /* @__PURE__ */ ((SessionState2) => {\n SessionState2[\"SignedIn\"] = \"SignedIn\";\n SessionState2[\"SignedOut\"] = \"SignedOut\";\n return SessionState2;\n})(SessionState || {});\nconst googleAuthApiRef = createApiRef({\n id: \"core.auth.google\"\n});\nconst githubAuthApiRef = createApiRef({\n id: \"core.auth.github\"\n});\nconst oktaAuthApiRef = createApiRef({\n id: \"core.auth.okta\"\n});\nconst gitlabAuthApiRef = createApiRef({\n id: \"core.auth.gitlab\"\n});\nconst microsoftAuthApiRef = createApiRef({\n id: \"core.auth.microsoft\"\n});\nconst oneloginAuthApiRef = createApiRef({\n id: \"core.auth.onelogin\"\n});\nconst bitbucketAuthApiRef = createApiRef({\n id: \"core.auth.bitbucket\"\n});\nconst bitbucketServerAuthApiRef = createApiRef({\n id: \"core.auth.bitbucket-server\"\n});\nconst atlassianAuthApiRef = createApiRef({\n id: \"core.auth.atlassian\"\n});\nconst vmwareCloudAuthApiRef = createApiRef({\n id: \"core.auth.vmware-cloud\"\n});\nconst openshiftAuthApiRef = createApiRef({\n id: \"core.auth.openshift\"\n});\n\nexport { SessionState, atlassianAuthApiRef, bitbucketAuthApiRef, bitbucketServerAuthApiRef, githubAuthApiRef, gitlabAuthApiRef, googleAuthApiRef, microsoftAuthApiRef, oktaAuthApiRef, oneloginAuthApiRef, openshiftAuthApiRef, vmwareCloudAuthApiRef };\n//# sourceMappingURL=auth.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst alertApiRef = createApiRef({\n id: \"core.alert\"\n});\n\nexport { alertApiRef };\n//# sourceMappingURL=AlertApi.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst appThemeApiRef = createApiRef({\n id: \"core.apptheme\"\n});\n\nexport { appThemeApiRef };\n//# sourceMappingURL=AppThemeApi.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst configApiRef = createApiRef({\n id: \"core.config\"\n});\n\nexport { configApiRef };\n//# sourceMappingURL=ConfigApi.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst discoveryApiRef = createApiRef({\n id: \"core.discovery\"\n});\n\nexport { discoveryApiRef };\n//# sourceMappingURL=DiscoveryApi.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nvar FeatureFlagState = /* @__PURE__ */ ((FeatureFlagState2) => {\n FeatureFlagState2[FeatureFlagState2[\"None\"] = 0] = \"None\";\n FeatureFlagState2[FeatureFlagState2[\"Active\"] = 1] = \"Active\";\n return FeatureFlagState2;\n})(FeatureFlagState || {});\nconst featureFlagsApiRef = createApiRef({\n id: \"core.featureflags\"\n});\n\nexport { FeatureFlagState, featureFlagsApiRef };\n//# sourceMappingURL=FeatureFlagsApi.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst fetchApiRef = createApiRef({\n id: \"core.fetch\"\n});\n\nexport { fetchApiRef };\n//# sourceMappingURL=FetchApi.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst identityApiRef = createApiRef({\n id: \"core.identity\"\n});\n\nexport { identityApiRef };\n//# sourceMappingURL=IdentityApi.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst oauthRequestApiRef = createApiRef({\n id: \"core.oauthrequest\"\n});\n\nexport { oauthRequestApiRef };\n//# sourceMappingURL=OAuthRequestApi.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst storageApiRef = createApiRef({\n id: \"core.storage\"\n});\n\nexport { storageApiRef };\n//# sourceMappingURL=StorageApi.esm.js.map\n","import { useVersionedContext } from '@backstage/version-bridge';\n\nconst useApp = () => {\n const versionedContext = useVersionedContext(\n \"app-context\"\n );\n if (!versionedContext) {\n throw new Error(\"App context is not available\");\n }\n const appContext = versionedContext.atVersion(1);\n if (!appContext) {\n throw new Error(\"AppContext v1 not available\");\n }\n return appContext;\n};\n\nexport { useApp };\n//# sourceMappingURL=useApp.esm.js.map\n","import { getOrCreateGlobalSingleton } from '@backstage/version-bridge';\n\nconst globalStore = getOrCreateGlobalSingleton(\n \"component-data-store\",\n () => /* @__PURE__ */ new WeakMap()\n);\nconst componentDataKey = \"__backstage_data\";\nfunction attachComponentData(component, type, data) {\n const dataComponent = component;\n let container = dataComponent[componentDataKey] ?? globalStore.get(component);\n if (!container) {\n container = { map: /* @__PURE__ */ new Map() };\n Object.defineProperty(dataComponent, componentDataKey, {\n enumerable: false,\n configurable: true,\n writable: false,\n value: container\n });\n globalStore.set(component, container);\n }\n if (container.map.has(type)) {\n const name = component.displayName || component.name;\n throw new Error(\n `Attempted to attach duplicate data \"${type}\" to component \"${name}\"`\n );\n }\n container.map.set(type, data);\n}\nfunction getComponentData(node, type) {\n if (!node) {\n return void 0;\n }\n const component = node.type;\n if (!component) {\n return void 0;\n }\n const container = component[componentDataKey] ?? globalStore.get(component);\n if (!container) {\n return void 0;\n }\n return container.map.get(type);\n}\n\nexport { attachComponentData, getComponentData };\n//# sourceMappingURL=componentData.esm.js.map\n","import { useMemo } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useVersionedContext } from '@backstage/version-bridge';\n\nfunction useRouteRef(routeRef) {\n const { pathname } = useLocation();\n const versionedContext = useVersionedContext(\n \"routing-context\"\n );\n if (!versionedContext) {\n throw new Error(\"Routing context is not available\");\n }\n const resolver = versionedContext.atVersion(1);\n const routeFunc = useMemo(\n () => resolver && resolver.resolve(routeRef, { pathname }),\n [resolver, routeRef, pathname]\n );\n if (!versionedContext) {\n throw new Error(\"useRouteRef used outside of routing context\");\n }\n if (!resolver) {\n throw new Error(\"RoutingContext v1 not available\");\n }\n const isOptional = \"optional\" in routeRef && routeRef.optional;\n if (!routeFunc && !isOptional) {\n throw new Error(`No path for ${routeRef}`);\n }\n return routeFunc;\n}\n\nexport { useRouteRef };\n//# sourceMappingURL=useRouteRef.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { Component } from 'react';\n\nclass PluginErrorBoundary extends Component {\n static getDerivedStateFromError(error) {\n return { error };\n }\n state = { error: void 0 };\n handleErrorReset = () => {\n this.setState({ error: void 0 });\n };\n render() {\n const { error } = this.state;\n const { app, plugin } = this.props;\n const { ErrorBoundaryFallback } = app.getComponents();\n if (error) {\n return /* @__PURE__ */ jsx(\n ErrorBoundaryFallback,\n {\n error,\n resetError: this.handleErrorReset,\n plugin\n }\n );\n }\n return this.props.children;\n }\n}\n\nexport { PluginErrorBoundary };\n//# sourceMappingURL=PluginErrorBoundary.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { lazy, useEffect, Suspense } from 'react';\nimport { AnalyticsContext } from '../analytics/AnalyticsContext.esm.js';\nimport { useAnalytics } from '../analytics/useAnalytics.esm.js';\nimport { useApp } from '../app/useApp.esm.js';\nimport '../routing/types.esm.js';\nimport { useRouteRef } from '../routing/useRouteRef.esm.js';\nimport 'react-router-dom';\nimport { attachComponentData } from './componentData.esm.js';\nimport { PluginErrorBoundary } from './PluginErrorBoundary.esm.js';\nimport { routableExtensionRenderedEvent } from '../analytics/Tracker.esm.js';\nimport { ForwardedError } from '@backstage/errors';\n\nfunction createRoutableExtension(options) {\n const { component, mountPoint, name } = options;\n return createReactExtension({\n component: {\n lazy: () => component().then((InnerComponent) => {\n const RoutableExtensionWrapper = (props) => {\n const analytics = useAnalytics();\n try {\n useRouteRef(mountPoint);\n } catch (error) {\n if (typeof error === \"object\" && error !== null) {\n const { message } = error;\n if (typeof message === \"string\" && message.startsWith(\"No path for \")) {\n throw new Error(\n `Routable extension component with mount point ${mountPoint} was not discovered in the app element tree. Routable extension components may not be rendered by other components and must be directly available as an element within the App provider component.`\n );\n }\n }\n throw error;\n }\n useEffect(() => {\n analytics.captureEvent(routableExtensionRenderedEvent, \"\");\n }, [analytics]);\n return /* @__PURE__ */ jsx(InnerComponent, { ...props });\n };\n const componentName = name || InnerComponent.displayName || InnerComponent.name || \"LazyComponent\";\n RoutableExtensionWrapper.displayName = `RoutableExtension(${componentName})`;\n return RoutableExtensionWrapper;\n })\n },\n data: {\n \"core.mountPoint\": mountPoint\n },\n name\n });\n}\nfunction createComponentExtension(options) {\n const { component, name } = options;\n return createReactExtension({ component, name });\n}\nfunction createReactExtension(options) {\n const { data = {}, name } = options;\n if (!name) {\n console.warn(\n \"Declaring extensions without name is DEPRECATED. Make sure that all usages of createReactExtension, createComponentExtension and createRoutableExtension provide a name.\"\n );\n }\n let Component;\n if (\"lazy\" in options.component) {\n const lazyLoader = options.component.lazy;\n Component = lazy(\n () => lazyLoader().then(\n (component) => ({ default: component }),\n (error) => {\n const ofExtension = name ? ` of the ${name} extension` : \"\";\n throw new ForwardedError(\n `Failed lazy loading${ofExtension}, try to reload the page`,\n error\n );\n }\n )\n );\n } else {\n Component = options.component.sync;\n }\n const componentName = name || Component.displayName || Component.name || \"Component\";\n return {\n expose(plugin) {\n const Result = (props) => {\n const app = useApp();\n const { Progress } = app.getComponents();\n const mountPoint = data?.[\"core.mountPoint\"];\n return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Progress, {}), children: /* @__PURE__ */ jsx(PluginErrorBoundary, { app, plugin, children: /* @__PURE__ */ jsx(\n AnalyticsContext,\n {\n attributes: {\n pluginId: plugin.getId(),\n ...name && { extension: name },\n ...mountPoint && { routeRef: mountPoint.id }\n },\n children: /* @__PURE__ */ jsx(Component, { ...props })\n }\n ) }) });\n };\n attachComponentData(Result, \"core.plugin\", plugin);\n attachComponentData(Result, \"core.extensionName\", name);\n for (const [key, value] of Object.entries(data)) {\n attachComponentData(Result, key, value);\n }\n Result.displayName = `Extension(${componentName})`;\n return Result;\n }\n };\n}\n\nexport { createComponentExtension, createReactExtension, createRoutableExtension };\n//# sourceMappingURL=extensions.esm.js.map\n","import { useMemo, Children, isValidElement, Fragment } from 'react';\nimport { getComponentData } from './componentData.esm.js';\nimport { useApi } from '../apis/system/useApi.esm.js';\nimport '../apis/definitions/auth.esm.js';\nimport '../apis/definitions/AlertApi.esm.js';\nimport '../apis/definitions/AnalyticsApi.esm.js';\nimport '../apis/definitions/AppThemeApi.esm.js';\nimport '../apis/definitions/ConfigApi.esm.js';\nimport '../apis/definitions/DiscoveryApi.esm.js';\nimport '../apis/definitions/ErrorApi.esm.js';\nimport { featureFlagsApiRef } from '../apis/definitions/FeatureFlagsApi.esm.js';\nimport '../apis/definitions/FetchApi.esm.js';\nimport '../apis/definitions/IdentityApi.esm.js';\nimport '../apis/definitions/OAuthRequestApi.esm.js';\nimport '../apis/definitions/StorageApi.esm.js';\n\nfunction selectChildren(rootNode, featureFlagsApi, selector, strictError) {\n return Children.toArray(rootNode).flatMap((node) => {\n if (!isValidElement(node)) {\n return [];\n }\n if (node.type === Fragment) {\n return selectChildren(\n node.props.children,\n featureFlagsApi,\n selector,\n strictError\n );\n }\n if (getComponentData(node, \"core.featureFlagged\")) {\n const props = node.props;\n const isEnabled = \"with\" in props ? featureFlagsApi.isActive(props.with) : !featureFlagsApi.isActive(props.without);\n if (isEnabled) {\n return selectChildren(\n node.props.children,\n featureFlagsApi,\n selector,\n strictError\n );\n }\n return [];\n }\n if (selector === void 0 || selector(node)) {\n return [node];\n }\n if (strictError) {\n throw new Error(strictError);\n }\n return selectChildren(\n node.props.children,\n featureFlagsApi,\n selector,\n strictError\n );\n });\n}\nclass Collection {\n constructor(node, featureFlagsApi) {\n this.node = node;\n this.featureFlagsApi = featureFlagsApi;\n }\n selectByComponentData(query) {\n const selection = selectChildren(\n this.node,\n this.featureFlagsApi,\n (node) => getComponentData(node, query.key) !== void 0,\n query.withStrictError\n );\n return new Collection(selection, this.featureFlagsApi);\n }\n findComponentData(query) {\n const selection = selectChildren(\n this.node,\n this.featureFlagsApi,\n (node) => getComponentData(node, query.key) !== void 0\n );\n return selection.map((node) => getComponentData(node, query.key)).filter((data) => data !== void 0);\n }\n getElements() {\n return selectChildren(this.node, this.featureFlagsApi);\n }\n}\nfunction useElementFilter(node, filterFn, dependencies = []) {\n const featureFlagsApi = useApi(featureFlagsApiRef);\n const elements = new Collection(node, featureFlagsApi);\n return useMemo(() => filterFn(elements), [node, ...dependencies]);\n}\n\nexport { useElementFilter };\n//# sourceMappingURL=useElementFilter.esm.js.map\n","class PluginImpl {\n constructor(config) {\n this.config = config;\n }\n getId() {\n return this.config.id;\n }\n getApis() {\n return this.config.apis ?? [];\n }\n getFeatureFlags() {\n return this.config.featureFlags?.slice() ?? [];\n }\n get routes() {\n return this.config.routes ?? {};\n }\n get externalRoutes() {\n return this.config.externalRoutes ?? {};\n }\n provide(extension) {\n return extension.expose(this);\n }\n toString() {\n return `plugin{${this.config.id}}`;\n }\n}\nfunction createPlugin(config) {\n return new PluginImpl(config);\n}\n\nexport { PluginImpl, createPlugin };\n//# sourceMappingURL=Plugin.esm.js.map\n","import { getOrCreateGlobalSingleton } from '@backstage/version-bridge';\n\nconst routeRefType = getOrCreateGlobalSingleton(\n \"route-ref-type\",\n () => Symbol(\"route-ref-type\")\n);\n\nexport { routeRefType };\n//# sourceMappingURL=types.esm.js.map\n","import { routeRefType } from './types.esm.js';\n\nclass RouteRefImpl {\n constructor(id, params) {\n this.id = id;\n this.params = params;\n }\n [routeRefType] = \"absolute\";\n get title() {\n return this.id;\n }\n toString() {\n return `routeRef{type=absolute,id=${this.id}}`;\n }\n}\nfunction createRouteRef(config) {\n return new RouteRefImpl(\n config.id,\n config.params ?? []\n );\n}\n\nexport { RouteRefImpl, createRouteRef };\n//# sourceMappingURL=RouteRef.esm.js.map\n","import { routeRefType } from './types.esm.js';\n\nconst PARAM_PATTERN = /^\\w+$/;\nclass SubRouteRefImpl {\n constructor(id, path, parent, params) {\n this.id = id;\n this.path = path;\n this.parent = parent;\n this.params = params;\n }\n [routeRefType] = \"sub\";\n toString() {\n return `routeRef{type=sub,id=${this.id}}`;\n }\n}\nfunction createSubRouteRef(config) {\n const { id, path, parent } = config;\n const pathParams = path.split(\"/\").filter((p) => p.startsWith(\":\")).map((p) => p.substring(1));\n const params = [...parent.params, ...pathParams];\n if (parent.params.some((p) => pathParams.includes(p))) {\n throw new Error(\n \"SubRouteRef may not have params that overlap with its parent\"\n );\n }\n if (!path.startsWith(\"/\")) {\n throw new Error(`SubRouteRef path must start with '/', got '${path}'`);\n }\n if (path.endsWith(\"/\")) {\n throw new Error(`SubRouteRef path must not end with '/', got '${path}'`);\n }\n for (const param of pathParams) {\n if (!PARAM_PATTERN.test(param)) {\n throw new Error(`SubRouteRef path has invalid param, got '${param}'`);\n }\n }\n const subRouteRef = new SubRouteRefImpl(\n id,\n path,\n parent,\n params\n );\n return subRouteRef;\n}\n\nexport { SubRouteRefImpl, createSubRouteRef };\n//# sourceMappingURL=SubRouteRef.esm.js.map\n","import { routeRefType } from './types.esm.js';\n\nclass ExternalRouteRefImpl {\n constructor(id, params, optional, defaultTarget) {\n this.id = id;\n this.params = params;\n this.optional = optional;\n this.defaultTarget = defaultTarget;\n }\n [routeRefType] = \"external\";\n toString() {\n return `routeRef{type=external,id=${this.id}}`;\n }\n getDefaultTarget() {\n return this.defaultTarget;\n }\n}\nfunction createExternalRouteRef(options) {\n return new ExternalRouteRefImpl(\n options.id,\n options.params ?? [],\n Boolean(options.optional),\n options?.defaultTarget\n );\n}\n\nexport { ExternalRouteRefImpl, createExternalRouteRef };\n//# sourceMappingURL=ExternalRouteRef.esm.js.map\n","import { useParams } from 'react-router-dom';\n\nfunction useRouteRefParams(_routeRef) {\n return useParams();\n}\n\nexport { useRouteRefParams };\n//# sourceMappingURL=useRouteRefParams.esm.js.map\n","import 'react/jsx-runtime';\nimport '@backstage/version-bridge';\nimport '@backstage/errors';\nimport { createApiRef } from '../system/ApiRef.esm.js';\n\nconst errorApiRef = createApiRef({\n id: \"core.error\"\n});\n\nexport { errorApiRef };\n//# sourceMappingURL=ErrorApi.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { useVersionedContext } from '@backstage/version-bridge';\nimport { NotImplementedError } from '@backstage/errors';\n\nfunction useApiHolder() {\n const versionedHolder = useVersionedContext(\"api-context\");\n if (!versionedHolder) {\n throw new NotImplementedError(\"API context is not available\");\n }\n const apiHolder = versionedHolder.atVersion(1);\n if (!apiHolder) {\n throw new NotImplementedError(\"ApiContext v1 not available\");\n }\n return apiHolder;\n}\nfunction useApi(apiRef) {\n const apiHolder = useApiHolder();\n const api = apiHolder.get(apiRef);\n if (!api) {\n throw new NotImplementedError(`No implementation available for ${apiRef}`);\n }\n return api;\n}\nfunction withApis(apis) {\n return function withApisWrapper(WrappedComponent) {\n const Hoc = (props) => {\n const apiHolder = useApiHolder();\n const impls = {};\n for (const key in apis) {\n if (apis.hasOwnProperty(key)) {\n const ref = apis[key];\n const api = apiHolder.get(ref);\n if (!api) {\n throw new NotImplementedError(\n `No implementation available for ${ref}`\n );\n }\n impls[key] = api;\n }\n }\n return /* @__PURE__ */ jsx(WrappedComponent, { ...props, ...impls });\n };\n const displayName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n Hoc.displayName = `withApis(${displayName})`;\n return Hoc;\n };\n}\n\nexport { useApi, useApiHolder, withApis };\n//# sourceMappingURL=useApi.esm.js.map\n","class ApiRefImpl {\n constructor(config) {\n this.config = config;\n const valid = config.id.split(\".\").flatMap((part) => part.split(\"-\")).every((part) => part.match(/^[a-z][a-z0-9]*$/));\n if (!valid) {\n throw new Error(\n `API id must only contain period separated lowercase alphanum tokens with dashes, got '${config.id}'`\n );\n }\n }\n get id() {\n return this.config.id;\n }\n // Utility for getting type of an api, using `typeof apiRef.T`\n get T() {\n throw new Error(`tried to read ApiRef.T of ${this}`);\n }\n toString() {\n return `apiRef{${this.config.id}}`;\n }\n}\nfunction createApiRef(config) {\n return new ApiRefImpl(config);\n}\n\nexport { createApiRef };\n//# sourceMappingURL=ApiRef.esm.js.map\n"],"names":["AnalyticsReactContext","createVersionedContext","useAnalyticsContext","theContext","useContext","routeRef","pluginId","extension","theValue","atVersion","Error","AnalyticsContext","options","attributes","children","combinedValue","versionedCombinedValue","createVersionedValueMap","jsx","Provider","value","analyticsApiRef","id","globalEvents","getOrCreateGlobalSingleton","mostRecentGatheredNavigation","mostRecentRoutableExtensionRender","beforeUnloadRegistered","routableExtensionRenderedEvent","Tracker","constructor","analyticsApi","context","this","addEventListener","captureEvent","once","passive","setContext","action","subject","_routeNodeType","e","console","warn","useAnalytics","trackerRef","useRef","useAnalyticsApi","tracker","current","createApiFactory","factory","instance","api","deps","SessionState","SessionState2","googleAuthApiRef","githubAuthApiRef","oktaAuthApiRef","gitlabAuthApiRef","microsoftAuthApiRef","oneloginAuthApiRef","bitbucketAuthApiRef","bitbucketServerAuthApiRef","atlassianAuthApiRef","vmwareCloudAuthApiRef","openshiftAuthApiRef","alertApiRef","appThemeApiRef","configApiRef","discoveryApiRef","FeatureFlagState","FeatureFlagState2","featureFlagsApiRef","fetchApiRef","identityApiRef","oauthRequestApiRef","storageApiRef","useApp","versionedContext","useVersionedContext","appContext","globalStore","WeakMap","componentDataKey","attachComponentData","component","type","data","dataComponent","container","get","map","Map","Object","defineProperty","enumerable","configurable","writable","set","has","name","displayName","getComponentData","node","useRouteRef","pathname","useLocation","resolver","routeFunc","useMemo","resolve","isOptional","optional","PluginErrorBoundary","Component","getDerivedStateFromError","error","state","handleErrorReset","setState","render","app","plugin","props","ErrorBoundaryFallback","getComponents","resetError","createRoutableExtension","mountPoint","createReactExtension","lazy","then","InnerComponent","RoutableExtensionWrapper","analytics","message","startsWith","useEffect","componentName","createComponentExtension","lazyLoader","default","ofExtension","sync","expose","Result","Progress","Suspense","fallback","getId","key","entries","selectChildren","rootNode","featureFlagsApi","selector","strictError","Children","toArray","flatMap","isValidElement","Fragment","isActive","with","without","Collection","selectByComponentData","query","selection","withStrictError","findComponentData","filter","getElements","useElementFilter","filterFn","dependencies","elements","PluginImpl","config","getApis","apis","getFeatureFlags","featureFlags","slice","routes","externalRoutes","provide","toString","createPlugin","routeRefType","Symbol","RouteRefImpl","params","title","createRouteRef","PARAM_PATTERN","SubRouteRefImpl","path","parent","createSubRouteRef","pathParams","split","p","substring","some","includes","endsWith","param","test","ExternalRouteRefImpl","defaultTarget","getDefaultTarget","createExternalRouteRef","Boolean","useRouteRefParams","_routeRef","useParams","errorApiRef","useApiHolder","versionedHolder","apiHolder","useApi","apiRef","withApis","WrappedComponent","Hoc","impls","hasOwnProperty","ref","ApiRefImpl","part","every","match","T","createApiRef"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[6281],{16281:(e,t,a)=>{a.d(t,{d:()=>N});var r=a(31085),n=a(95478),s=a(22097),i=a(35015),d=a(42367),o=a(86687),l=a(25010),c=a(96040),p=a(34955),u=a(46205),m=a(76891),v=a(61477),h=a(46805),A=a(16249),j=a(93453),y=a(64947),x=a(72501),g=a(10394),b=a(67720),f=a(31653),q=a(38605),k=a(55429),w=a(92399);const C=({open:e,request:t,action:a,onClose:s,onConfirm:i})=>{const[d,o]=(0,n.useState)("");return(0,r.jsxs)(m.A,{open:e,onClose:s,maxWidth:"sm",fullWidth:!0,children:[(0,r.jsxs)(v.A,{children:["approve"===a?"Approve":"Reject"," API Key Request"]}),(0,r.jsx)(h.A,{children:t&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"User:"})," ",t.spec.requestedBy.userId]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"API:"})," ",t.spec.apiName]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Plan:"})," ",t.spec.planTier]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Use Case:"})," ",t.spec.useCase||"-"]}),(0,r.jsx)(A.A,{label:"Comment (optional)",multiline:!0,rows:3,fullWidth:!0,margin:"normal",value:d,onChange:e=>o(e.target.value)})]})}),(0,r.jsxs)(j.A,{children:[(0,r.jsx)(y.A,{onClick:s,children:"Cancel"}),(0,r.jsx)(y.A,{onClick:()=>{i(d),o("")},color:"approve"===a?"primary":"secondary",variant:"contained",children:"approve"===a?"Approve":"Reject"})]})]})},R=({open:e,requests:t,action:a,onClose:s,onConfirm:i})=>{const[d,o]=(0,n.useState)(""),l="approve"===a;return(0,r.jsxs)(m.A,{open:e,onClose:s,maxWidth:"md",fullWidth:!0,children:[(0,r.jsxs)(v.A,{children:[l?"Approve":"Reject"," ",t.length," API Key Requests"]}),(0,r.jsxs)(h.A,{children:[(0,r.jsxs)(x.A,{variant:"body2",paragraph:!0,children:["You are about to ",l?"approve":"reject"," the following requests:"]}),(0,r.jsx)(g.A,{mb:2,maxHeight:200,overflow:"auto",children:t.map(e=>(0,r.jsx)(g.A,{mb:1,p:1,bgcolor:"background.default",children:(0,r.jsxs)(x.A,{variant:"body2",children:[(0,r.jsx)("strong",{children:e.spec.requestedBy.userId})," - ",e.spec.apiName," (",e.spec.planTier,")"]})},`${e.metadata.namespace}/${e.metadata.name}`))}),(0,r.jsx)(A.A,{label:"Comment (optional)",multiline:!0,fullWidth:!0,margin:"normal",value:d,onChange:e=>o(e.target.value),helperText:`This comment will be applied to all ${l?"approved":"rejected"} requests`})]}),(0,r.jsxs)(j.A,{children:[(0,r.jsx)(y.A,{onClick:s,children:"Cancel"}),(0,r.jsx)(y.A,{onClick:()=>{i(d),o("")},color:l?"primary":"secondary",variant:"contained",children:l?"Approve All":"Reject All"})]})]})},N=()=>{const e=(0,s.useApi)(s.configApiRef),t=(0,s.useApi)(s.fetchApiRef),a=(0,s.useApi)(s.identityApiRef),m=e.getString("backend.baseUrl"),[v,h]=(0,n.useState)(0),[A,j]=(0,n.useState)(0),[N,B]=(0,n.useState)([]),[S,$]=(0,n.useState)({open:!1,request:null,action:"approve"}),[I,T]=(0,n.useState)({open:!1,requests:[],action:"approve"}),{allowed:P,loading:W,error:z}=(0,u.l)(p.H4),{value:U,loading:Q,error:_}=(0,i.A)(async()=>{const e=(await a.getBackstageIdentity()).userEntityRef;console.log("ApprovalQueueCard: fetching all requests from",`${m}/api/kuadrant/requests`);const r=await t.fetch(`${m}/api/kuadrant/requests`);if(!r.ok)return console.log("ApprovalQueueCard: failed to fetch requests, status:",r.status),{pending:[],approved:[],rejected:[],reviewedBy:e};const n=r.headers.get("content-type");if(!n||!n.includes("application/json"))return console.log("ApprovalQueueCard: received non-json response"),{pending:[],approved:[],rejected:[],reviewedBy:e};const s=(await r.json()).items||[];console.log("ApprovalQueueCard: received",s.length,"total requests"),console.log("ApprovalQueueCard: raw requests:",s);const i=s.filter(e=>{var t;return"Pending"===((null===(t=e.status)||void 0===t?void 0:t.phase)||"Pending")}),d=s.filter(e=>{var t;return"Approved"===(null===(t=e.status)||void 0===t?void 0:t.phase)}),o=s.filter(e=>{var t;return"Rejected"===(null===(t=e.status)||void 0===t?void 0:t.phase)});return console.log("ApprovalQueueCard: grouped -",{pending:i.length,approved:d.length,rejected:o.length}),{pending:i,approved:d,rejected:o,reviewedBy:e}},[m,t,a,v]);if(Q||W)return(0,r.jsx)(o.k,{});if(_)return(0,r.jsx)(d._,{error:_});if(z)return(0,r.jsxs)(g.A,{p:2,children:[(0,r.jsxs)(x.A,{color:"error",children:["Unable to check permissions: ",z.message]}),(0,r.jsx)(x.A,{variant:"body2",color:"textSecondary",children:"Permission: kuadrant.apikeyrequest.update"}),(0,r.jsx)(x.A,{variant:"body2",color:"textSecondary",children:"Please try again or contact your administrator"})]});const E=(null==U?void 0:U.pending)||[],H=(null==U?void 0:U.approved)||[],J=(null==U?void 0:U.rejected)||[],O=e=>new Date(e).toLocaleDateString("en-GB",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}),D=[{title:"Request Name",field:"metadata.name",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.metadata.name})},{title:"User",field:"spec.requestedBy.userId",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.spec.requestedBy.userId})},{title:"API",field:"spec.apiName",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:(0,r.jsx)("strong",{children:e.spec.apiName})})},{title:"Namespace",field:"spec.apiNamespace",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.spec.apiNamespace})},{title:"Plan",field:"spec.planTier",render:e=>(0,r.jsx)(b.A,{label:e.spec.planTier,size:"small"})},{title:"Use Case",field:"spec.useCase",render:e=>(0,r.jsx)(x.A,{variant:"body2",style:{maxWidth:200},noWrap:!0,title:e.spec.useCase,children:e.spec.useCase||"-"})},{title:"Requested",field:"spec.requestedAt",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.spec.requestedAt?O(e.spec.requestedAt):"-"})},{title:"Actions",render:e=>P?(0,r.jsxs)(g.A,{display:"flex",style:{gap:8},children:[(0,r.jsx)(y.A,{size:"small",startIcon:(0,r.jsx)(k.A,{}),onClick:()=>{$({open:!0,request:e,action:"approve"})},color:"primary",variant:"outlined",children:"Approve"}),(0,r.jsx)(y.A,{size:"small",startIcon:(0,r.jsx)(w.A,{}),onClick:()=>{$({open:!0,request:e,action:"reject"})},color:"secondary",variant:"outlined",children:"Reject"})]}):null}],F=[{title:"Request Name",field:"metadata.name",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.metadata.name})},{title:"User",field:"spec.requestedBy.userId",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.spec.requestedBy.userId})},{title:"API",field:"spec.apiName",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:(0,r.jsx)("strong",{children:e.spec.apiName})})},{title:"Namespace",field:"spec.apiNamespace",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.spec.apiNamespace})},{title:"Plan",field:"spec.planTier",render:e=>(0,r.jsx)(b.A,{label:e.spec.planTier,size:"small"})},{title:"Requested",field:"spec.requestedAt",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.spec.requestedAt?O(e.spec.requestedAt):"-"})},{title:"Approved",field:"status.reviewedAt",render:e=>{var t;return(0,r.jsx)(x.A,{variant:"body2",children:(null===(t=e.status)||void 0===t?void 0:t.reviewedAt)?O(e.status.reviewedAt):"-"})}},{title:"Reviewed By",field:"status.reviewedBy",render:e=>{var t;return(0,r.jsx)(x.A,{variant:"body2",children:(null===(t=e.status)||void 0===t?void 0:t.reviewedBy)||"-"})}},{title:"Approval Type",field:"status.reviewedBy",render:e=>{var t;const a="system"===(null===(t=e.status)||void 0===t?void 0:t.reviewedBy);return(0,r.jsx)(b.A,{label:a?"Automatic":"Manual",size:"small",color:a?"default":"primary"})}}],K=[{title:"Request Name",field:"metadata.name",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.metadata.name})},{title:"User",field:"spec.requestedBy.userId",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.spec.requestedBy.userId})},{title:"API",field:"spec.apiName",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:(0,r.jsx)("strong",{children:e.spec.apiName})})},{title:"Namespace",field:"spec.apiNamespace",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.spec.apiNamespace})},{title:"Plan",field:"spec.planTier",render:e=>(0,r.jsx)(b.A,{label:e.spec.planTier,size:"small"})},{title:"Requested",field:"spec.requestedAt",render:e=>(0,r.jsx)(x.A,{variant:"body2",children:e.spec.requestedAt?O(e.spec.requestedAt):"-"})},{title:"Rejected",field:"status.reviewedAt",render:e=>{var t;return(0,r.jsx)(x.A,{variant:"body2",children:(null===(t=e.status)||void 0===t?void 0:t.reviewedAt)?O(e.status.reviewedAt):"-"})}},{title:"Reviewed By",field:"status.reviewedBy",render:e=>{var t;return(0,r.jsx)(x.A,{variant:"body2",children:(null===(t=e.status)||void 0===t?void 0:t.reviewedBy)||"-"})}},{title:"Reason",field:"status.reason",render:e=>{var t,a;return(0,r.jsx)(x.A,{variant:"body2",style:{maxWidth:200},noWrap:!0,title:null===(t=e.status)||void 0===t?void 0:t.reason,children:(null===(a=e.status)||void 0===a?void 0:a.reason)||"-"})}}],L=(()=>{switch(A){case 0:default:return{data:H,columns:F,showSelection:!1};case 1:return{data:E.map(e=>{const t=N.some(t=>t.metadata.name===e.metadata.name&&t.metadata.namespace===e.metadata.namespace);return{...e,tableData:{checked:t}}}),columns:D,showSelection:!0};case 2:return{data:J,columns:K,showSelection:!1}}})();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(c.n,{title:"API Access Requests",subheader:`${E.length} pending, ${H.length} approved, ${J.length} rejected`,children:[(0,r.jsx)(g.A,{mb:2,children:(0,r.jsxs)(f.A,{value:A,onChange:(e,t)=>{j(t),B([])},indicatorColor:"primary",textColor:"primary",children:[(0,r.jsx)(q.A,{label:`Approved (${H.length})`}),(0,r.jsx)(q.A,{label:`Pending (${E.length})`}),(0,r.jsx)(q.A,{label:`Rejected (${J.length})`})]})}),P&&1===A&&N.length>0&&(0,r.jsxs)(g.A,{mb:2,display:"flex",alignItems:"center",justifyContent:"space-between",p:2,bgcolor:"background.default",children:[(0,r.jsxs)(x.A,{variant:"body2",children:[N.length," request",1!==N.length?"s":""," selected"]}),(0,r.jsxs)(g.A,{display:"flex",style:{gap:8},children:[(0,r.jsx)(y.A,{size:"small",variant:"contained",color:"primary",startIcon:(0,r.jsx)(k.A,{}),onClick:()=>{0!==N.length&&T({open:!0,requests:N,action:"approve"})},children:"Approve Selected"}),(0,r.jsx)(y.A,{size:"small",variant:"contained",color:"secondary",startIcon:(0,r.jsx)(w.A,{}),onClick:()=>{0!==N.length&&T({open:!0,requests:N,action:"reject"})},children:"Reject Selected"})]})]}),0===L.data.length?(0,r.jsx)(g.A,{p:3,textAlign:"center",children:(0,r.jsxs)(x.A,{variant:"body1",color:"textSecondary",children:[0===A&&"No approved requests.",1===A&&"No pending requests.",2===A&&"No rejected requests."]})}):(0,r.jsx)(l.X,{options:{selection:P&&L.showSelection,paging:L.data.length>10,pageSize:10,search:!1,showTextRowsSelected:!1,toolbar:!1},data:L.data,columns:L.columns,onSelectionChange:e=>B(e)})]}),(0,r.jsx)(C,{open:S.open,request:S.request,action:S.action,onClose:()=>$({open:!1,request:null,action:"approve"}),onConfirm:async e=>{if(!S.request||!U)return;const a="approve"===S.action?`${m}/api/kuadrant/requests/${S.request.metadata.namespace}/${S.request.metadata.name}/approve`:`${m}/api/kuadrant/requests/${S.request.metadata.namespace}/${S.request.metadata.name}/reject`;try{if(!(await t.fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({comment:e,reviewedBy:U.reviewedBy})})).ok)throw new Error(`failed to ${S.action} request`);$({open:!1,request:null,action:"approve"}),h(e=>e+1)}catch(e){console.error(`error ${S.action}ing request:`,e)}}}),(0,r.jsx)(R,{open:I.open,requests:I.requests,action:I.action,onClose:()=>T({open:!1,requests:[],action:"approve"}),onConfirm:async e=>{if(!U||0===I.requests.length)return;const a="approve"===I.action?`${m}/api/kuadrant/requests/bulk-approve`:`${m}/api/kuadrant/requests/bulk-reject`;try{if(!(await t.fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({requests:I.requests.map(e=>({namespace:e.metadata.namespace,name:e.metadata.name})),comment:e,reviewedBy:U.reviewedBy})})).ok)throw new Error(`failed to bulk ${I.action} requests`);T({open:!1,requests:[],action:"approve"}),B([]),h(e=>e+1)}catch(e){console.error(`error bulk ${I.action}ing requests:`,e)}}})]})}},34955:(e,t,a)=>{a.d(t,{FL:()=>s,H4:()=>p,J:()=>n,KN:()=>l,TE:()=>c,ib:()=>i,jH:()=>m,qC:()=>d,uL:()=>u,vs:()=>o});var r=a(83572);(0,r.i)({name:"kuadrant.planpolicy.create",attributes:{action:"create"}}),(0,r.i)({name:"kuadrant.planpolicy.read",attributes:{action:"read"}}),(0,r.i)({name:"kuadrant.planpolicy.update",attributes:{action:"update"}}),(0,r.i)({name:"kuadrant.planpolicy.delete",attributes:{action:"delete"}});const n=(0,r.i)({name:"kuadrant.planpolicy.list",attributes:{action:"read"}}),s=(0,r.i)({name:"kuadrant.apiproduct.create",attributes:{action:"create"}}),i=((0,r.i)({name:"kuadrant.apiproduct.read",attributes:{action:"read"}}),(0,r.i)({name:"kuadrant.apiproduct.update",attributes:{action:"update"}})),d=(0,r.i)({name:"kuadrant.apiproduct.delete",attributes:{action:"delete"}}),o=(0,r.i)({name:"kuadrant.apiproduct.list",attributes:{action:"read"}}),l=(0,r.i)({name:"kuadrant.apikeyrequest.create",attributes:{action:"create"},resourceType:"apiproduct"}),c=((0,r.i)({name:"kuadrant.apikeyrequest.read.own",attributes:{action:"read"}}),(0,r.i)({name:"kuadrant.apikeyrequest.read.all",attributes:{action:"read"}})),p=(0,r.i)({name:"kuadrant.apikeyrequest.update",attributes:{action:"update"}}),u=((0,r.i)({name:"kuadrant.apikeyrequest.list",attributes:{action:"read"}}),(0,r.i)({name:"kuadrant.apikey.read.own",attributes:{action:"read"}}),(0,r.i)({name:"kuadrant.apikey.read.all",attributes:{action:"read"}}),(0,r.i)({name:"kuadrant.apikey.delete.own",attributes:{action:"delete"}})),m=(0,r.i)({name:"kuadrant.apikey.delete.all",attributes:{action:"delete"}})},46205:(e,t,a)=>{a.d(t,{W:()=>s,l:()=>n});var r=a(87421);function n(e,t){const a="resourceType"in e?{permission:e,resourceRef:t}:{permission:e},n=(0,r.J)(a);return{allowed:n.allowed,loading:n.loading,error:n.error}}function s(e,t,a,r){return!!r||!(!a||e!==t)}}}]);
2
+ //# sourceMappingURL=6281.29f4549b.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/6281.29f4549b.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/./src/components/ApprovalQueueCard/ApprovalQueueCard.tsx","webpack://internal.plugin-kuadrant/./src/permissions.ts","webpack://internal.plugin-kuadrant/./src/utils/permissions.ts"],"sourcesContent":["import React, { useState } from 'react';\nimport { useApi, fetchApiRef, identityApiRef, configApiRef } from '@backstage/core-plugin-api';\nimport { useAsync } from 'react-use';\nimport {\n Table,\n TableColumn,\n Progress,\n ResponseErrorPanel,\n InfoCard,\n} from '@backstage/core-components';\nimport { kuadrantApiKeyRequestUpdatePermission } from '../../permissions';\nimport { useKuadrantPermission } from '../../utils/permissions';\nimport {\n Button,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n TextField,\n Chip,\n Typography,\n Box,\n Tabs,\n Tab,\n} from '@material-ui/core';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport { APIKeyRequest } from '../../types/api-management';\n\ninterface ApprovalDialogProps {\n open: boolean;\n request: APIKeyRequest | null;\n action: 'approve' | 'reject';\n onClose: () => void;\n onConfirm: (comment: string) => void;\n}\n\nconst ApprovalDialog = ({ open, request, action, onClose, onConfirm }: ApprovalDialogProps) => {\n const [comment, setComment] = useState('');\n\n const handleConfirm = () => {\n onConfirm(comment);\n setComment('');\n };\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"sm\" fullWidth>\n <DialogTitle>\n {action === 'approve' ? 'Approve' : 'Reject'} API Key Request\n </DialogTitle>\n <DialogContent>\n {request && (\n <>\n <p><strong>User:</strong> {request.spec.requestedBy.userId}</p>\n <p><strong>API:</strong> {request.spec.apiName}</p>\n <p><strong>Plan:</strong> {request.spec.planTier}</p>\n <p><strong>Use Case:</strong> {request.spec.useCase || '-'}</p>\n <TextField\n label=\"Comment (optional)\"\n multiline\n rows={3}\n fullWidth\n margin=\"normal\"\n value={comment}\n onChange={(e) => setComment(e.target.value)}\n />\n </>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose}>Cancel</Button>\n <Button\n onClick={handleConfirm}\n color={action === 'approve' ? 'primary' : 'secondary'}\n variant=\"contained\"\n >\n {action === 'approve' ? 'Approve' : 'Reject'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\ninterface BulkActionDialogProps {\n open: boolean;\n requests: APIKeyRequest[];\n action: 'approve' | 'reject';\n onClose: () => void;\n onConfirm: (comment: string) => void;\n}\n\nconst BulkActionDialog = ({ open, requests, action, onClose, onConfirm }: BulkActionDialogProps) => {\n const [comment, setComment] = useState('');\n\n const handleConfirm = () => {\n onConfirm(comment);\n setComment('');\n };\n\n const isApprove = action === 'approve';\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"md\" fullWidth>\n <DialogTitle>\n {isApprove ? 'Approve' : 'Reject'} {requests.length} API Key Requests\n </DialogTitle>\n <DialogContent>\n <Typography variant=\"body2\" paragraph>\n You are about to {isApprove ? 'approve' : 'reject'} the following requests:\n </Typography>\n <Box mb={2} maxHeight={200} overflow=\"auto\">\n {requests.map(request => (\n <Box key={`${request.metadata.namespace}/${request.metadata.name}`} mb={1} p={1} bgcolor=\"background.default\">\n <Typography variant=\"body2\">\n <strong>{request.spec.requestedBy.userId}</strong> - {request.spec.apiName} ({request.spec.planTier})\n </Typography>\n </Box>\n ))}\n </Box>\n <TextField\n label=\"Comment (optional)\"\n multiline\n fullWidth\n margin=\"normal\"\n value={comment}\n onChange={(e) => setComment(e.target.value)}\n helperText={`This comment will be applied to all ${isApprove ? 'approved' : 'rejected'} requests`}\n />\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose}>Cancel</Button>\n <Button\n onClick={handleConfirm}\n color={isApprove ? 'primary' : 'secondary'}\n variant=\"contained\"\n >\n {isApprove ? 'Approve All' : 'Reject All'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport const ApprovalQueueCard = () => {\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const identityApi = useApi(identityApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [refresh, setRefresh] = useState(0);\n const [selectedTab, setSelectedTab] = useState(0);\n const [selectedRequests, setSelectedRequests] = useState<APIKeyRequest[]>([]);\n const [dialogState, setDialogState] = useState<{\n open: boolean;\n request: APIKeyRequest | null;\n action: 'approve' | 'reject';\n }>({\n open: false,\n request: null,\n action: 'approve',\n });\n const [bulkDialogState, setBulkDialogState] = useState<{\n open: boolean;\n requests: APIKeyRequest[];\n action: 'approve' | 'reject';\n }>({\n open: false,\n requests: [],\n action: 'approve',\n });\n\n const {\n allowed: canUpdateRequests,\n loading: updatePermissionLoading,\n error: updatePermissionError,\n } = useKuadrantPermission(kuadrantApiKeyRequestUpdatePermission);\n\n const { value, loading, error } = useAsync(async () => {\n const identity = await identityApi.getBackstageIdentity();\n const reviewedBy = identity.userEntityRef;\n\n console.log('ApprovalQueueCard: fetching all requests from', `${backendUrl}/api/kuadrant/requests`);\n\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/requests`\n );\n if (!response.ok) {\n console.log('ApprovalQueueCard: failed to fetch requests, status:', response.status);\n return { pending: [] as APIKeyRequest[], approved: [] as APIKeyRequest[], rejected: [] as APIKeyRequest[], reviewedBy };\n }\n\n // check content-type before parsing json\n const contentType = response.headers.get('content-type');\n if (!contentType || !contentType.includes('application/json')) {\n console.log('ApprovalQueueCard: received non-json response');\n return { pending: [] as APIKeyRequest[], approved: [] as APIKeyRequest[], rejected: [] as APIKeyRequest[], reviewedBy };\n }\n\n const data = await response.json();\n const allRequests = data.items || [];\n\n console.log('ApprovalQueueCard: received', allRequests.length, 'total requests');\n console.log('ApprovalQueueCard: raw requests:', allRequests);\n\n // group by status (field is 'phase' not 'status')\n const pending = allRequests.filter((r: APIKeyRequest) => {\n const phase = (r.status as any)?.phase || 'Pending';\n return phase === 'Pending';\n });\n const approved = allRequests.filter((r: APIKeyRequest) => {\n const phase = (r.status as any)?.phase;\n return phase === 'Approved';\n });\n const rejected = allRequests.filter((r: APIKeyRequest) => {\n const phase = (r.status as any)?.phase;\n return phase === 'Rejected';\n });\n\n console.log('ApprovalQueueCard: grouped -', {\n pending: pending.length,\n approved: approved.length,\n rejected: rejected.length,\n });\n\n return { pending, approved, rejected, reviewedBy };\n }, [backendUrl, fetchApi, identityApi, refresh]);\n\n const handleApprove = (request: APIKeyRequest) => {\n setDialogState({ open: true, request, action: 'approve' });\n };\n\n const handleReject = (request: APIKeyRequest) => {\n setDialogState({ open: true, request, action: 'reject' });\n };\n\n const handleConfirm = async (comment: string) => {\n if (!dialogState.request || !value) return;\n\n const endpoint = dialogState.action === 'approve'\n ? `${backendUrl}/api/kuadrant/requests/${dialogState.request.metadata.namespace}/${dialogState.request.metadata.name}/approve`\n : `${backendUrl}/api/kuadrant/requests/${dialogState.request.metadata.namespace}/${dialogState.request.metadata.name}/reject`;\n\n try {\n const response = await fetchApi.fetch(endpoint, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n comment,\n reviewedBy: value.reviewedBy,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`failed to ${dialogState.action} request`);\n }\n\n setDialogState({ open: false, request: null, action: 'approve' });\n setRefresh(r => r + 1);\n } catch (err) {\n console.error(`error ${dialogState.action}ing request:`, err);\n }\n };\n\n const handleBulkApprove = () => {\n if (selectedRequests.length === 0) return;\n setBulkDialogState({ open: true, requests: selectedRequests, action: 'approve' });\n };\n\n const handleBulkReject = () => {\n if (selectedRequests.length === 0) return;\n setBulkDialogState({ open: true, requests: selectedRequests, action: 'reject' });\n };\n\n const handleBulkConfirm = async (comment: string) => {\n if (!value || bulkDialogState.requests.length === 0) return;\n\n const isApprove = bulkDialogState.action === 'approve';\n const endpoint = isApprove\n ? `${backendUrl}/api/kuadrant/requests/bulk-approve`\n : `${backendUrl}/api/kuadrant/requests/bulk-reject`;\n\n try {\n const response = await fetchApi.fetch(endpoint, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n requests: bulkDialogState.requests.map(r => ({\n namespace: r.metadata.namespace,\n name: r.metadata.name,\n })),\n comment,\n reviewedBy: value.reviewedBy,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`failed to bulk ${bulkDialogState.action} requests`);\n }\n\n setBulkDialogState({ open: false, requests: [], action: 'approve' });\n setSelectedRequests([]);\n setRefresh(r => r + 1);\n } catch (err) {\n console.error(`error bulk ${bulkDialogState.action}ing requests:`, err);\n }\n };\n\n if (loading || updatePermissionLoading) {\n return <Progress />;\n }\n\n if (error) {\n return <ResponseErrorPanel error={error} />;\n }\n\n if (updatePermissionError) {\n return (\n <Box p={2}>\n <Typography color=\"error\">\n Unable to check permissions: {updatePermissionError.message}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Permission: kuadrant.apikeyrequest.update\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Please try again or contact your administrator\n </Typography>\n </Box>\n );\n }\n\n const pending = value?.pending || [];\n const approved = value?.approved || [];\n const rejected = value?.rejected || [];\n\n const formatDate = (dateString: string) => {\n const date = new Date(dateString);\n return date.toLocaleDateString('en-GB', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n });\n };\n\n const pendingColumns: TableColumn<APIKeyRequest>[] = [\n {\n title: 'Request Name',\n field: 'metadata.name',\n render: (row) => <Typography variant=\"body2\">{row.metadata.name}</Typography>,\n },\n {\n title: 'User',\n field: 'spec.requestedBy.userId',\n render: (row) => <Typography variant=\"body2\">{row.spec.requestedBy.userId}</Typography>,\n },\n {\n title: 'API',\n field: 'spec.apiName',\n render: (row) => <Typography variant=\"body2\"><strong>{row.spec.apiName}</strong></Typography>,\n },\n {\n title: 'Namespace',\n field: 'spec.apiNamespace',\n render: (row) => <Typography variant=\"body2\">{row.spec.apiNamespace}</Typography>,\n },\n {\n title: 'Plan',\n field: 'spec.planTier',\n render: (row) => (\n <Chip\n label={row.spec.planTier}\n size=\"small\"\n />\n ),\n },\n {\n title: 'Use Case',\n field: 'spec.useCase',\n render: (row) => (\n <Typography variant=\"body2\" style={{ maxWidth: 200 }} noWrap title={row.spec.useCase}>\n {row.spec.useCase || '-'}\n </Typography>\n ),\n },\n {\n title: 'Requested',\n field: 'spec.requestedAt',\n render: (row) => (\n <Typography variant=\"body2\">\n {row.spec.requestedAt ? formatDate(row.spec.requestedAt) : '-'}\n </Typography>\n ),\n },\n {\n title: 'Actions',\n render: (row) => {\n if (!canUpdateRequests) return null;\n return (\n <Box display=\"flex\" style={{ gap: 8 }}>\n <Button\n size=\"small\"\n startIcon={<CheckCircleIcon />}\n onClick={() => handleApprove(row)}\n color=\"primary\"\n variant=\"outlined\"\n >\n Approve\n </Button>\n <Button\n size=\"small\"\n startIcon={<CancelIcon />}\n onClick={() => handleReject(row)}\n color=\"secondary\"\n variant=\"outlined\"\n >\n Reject\n </Button>\n </Box>\n );\n },\n },\n ];\n\n const approvedColumns: TableColumn<APIKeyRequest>[] = [\n {\n title: 'Request Name',\n field: 'metadata.name',\n render: (row) => <Typography variant=\"body2\">{row.metadata.name}</Typography>,\n },\n {\n title: 'User',\n field: 'spec.requestedBy.userId',\n render: (row) => <Typography variant=\"body2\">{row.spec.requestedBy.userId}</Typography>,\n },\n {\n title: 'API',\n field: 'spec.apiName',\n render: (row) => <Typography variant=\"body2\"><strong>{row.spec.apiName}</strong></Typography>,\n },\n {\n title: 'Namespace',\n field: 'spec.apiNamespace',\n render: (row) => <Typography variant=\"body2\">{row.spec.apiNamespace}</Typography>,\n },\n {\n title: 'Plan',\n field: 'spec.planTier',\n render: (row) => (\n <Chip\n label={row.spec.planTier}\n size=\"small\"\n />\n ),\n },\n {\n title: 'Requested',\n field: 'spec.requestedAt',\n render: (row) => (\n <Typography variant=\"body2\">\n {row.spec.requestedAt ? formatDate(row.spec.requestedAt) : '-'}\n </Typography>\n ),\n },\n {\n title: 'Approved',\n field: 'status.reviewedAt',\n render: (row) => (\n <Typography variant=\"body2\">\n {row.status?.reviewedAt ? formatDate(row.status.reviewedAt) : '-'}\n </Typography>\n ),\n },\n {\n title: 'Reviewed By',\n field: 'status.reviewedBy',\n render: (row) => (\n <Typography variant=\"body2\">\n {row.status?.reviewedBy || '-'}\n </Typography>\n ),\n },\n {\n title: 'Approval Type',\n field: 'status.reviewedBy',\n render: (row) => {\n const isAutomatic = row.status?.reviewedBy === 'system';\n return (\n <Chip\n label={isAutomatic ? 'Automatic' : 'Manual'}\n size=\"small\"\n color={isAutomatic ? 'default' : 'primary'}\n />\n );\n },\n },\n ];\n\n const rejectedColumns: TableColumn<APIKeyRequest>[] = [\n {\n title: 'Request Name',\n field: 'metadata.name',\n render: (row) => <Typography variant=\"body2\">{row.metadata.name}</Typography>,\n },\n {\n title: 'User',\n field: 'spec.requestedBy.userId',\n render: (row) => <Typography variant=\"body2\">{row.spec.requestedBy.userId}</Typography>,\n },\n {\n title: 'API',\n field: 'spec.apiName',\n render: (row) => <Typography variant=\"body2\"><strong>{row.spec.apiName}</strong></Typography>,\n },\n {\n title: 'Namespace',\n field: 'spec.apiNamespace',\n render: (row) => <Typography variant=\"body2\">{row.spec.apiNamespace}</Typography>,\n },\n {\n title: 'Plan',\n field: 'spec.planTier',\n render: (row) => (\n <Chip\n label={row.spec.planTier}\n size=\"small\"\n />\n ),\n },\n {\n title: 'Requested',\n field: 'spec.requestedAt',\n render: (row) => (\n <Typography variant=\"body2\">\n {row.spec.requestedAt ? formatDate(row.spec.requestedAt) : '-'}\n </Typography>\n ),\n },\n {\n title: 'Rejected',\n field: 'status.reviewedAt',\n render: (row) => (\n <Typography variant=\"body2\">\n {row.status?.reviewedAt ? formatDate(row.status.reviewedAt) : '-'}\n </Typography>\n ),\n },\n {\n title: 'Reviewed By',\n field: 'status.reviewedBy',\n render: (row) => (\n <Typography variant=\"body2\">\n {row.status?.reviewedBy || '-'}\n </Typography>\n ),\n },\n {\n title: 'Reason',\n field: 'status.reason',\n render: (row) => (\n <Typography variant=\"body2\" style={{ maxWidth: 200 }} noWrap title={row.status?.reason}>\n {row.status?.reason || '-'}\n </Typography>\n ),\n },\n ];\n\n const getTabData = () => {\n switch (selectedTab) {\n case 0:\n return { data: approved, columns: approvedColumns, showSelection: false };\n case 1:\n // Add tableData.checked to control checkbox state\n const pendingWithSelection = pending.map((row: APIKeyRequest) => {\n const isSelected = selectedRequests.some(\n selected => selected.metadata.name === row.metadata.name &&\n selected.metadata.namespace === row.metadata.namespace\n );\n return {\n ...row,\n tableData: { checked: isSelected },\n };\n });\n return { data: pendingWithSelection, columns: pendingColumns, showSelection: true };\n case 2:\n return { data: rejected, columns: rejectedColumns, showSelection: false };\n default:\n return { data: approved, columns: approvedColumns, showSelection: false };\n }\n };\n\n const tabData = getTabData();\n\n return (\n <>\n <InfoCard\n title=\"API Access Requests\"\n subheader={`${pending.length} pending, ${approved.length} approved, ${rejected.length} rejected`}\n >\n <Box mb={2}>\n <Tabs\n value={selectedTab}\n onChange={(_, newValue) => {\n setSelectedTab(newValue);\n setSelectedRequests([]);\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n <Tab label={`Approved (${approved.length})`} />\n <Tab label={`Pending (${pending.length})`} />\n <Tab label={`Rejected (${rejected.length})`} />\n </Tabs>\n </Box>\n\n {canUpdateRequests && selectedTab === 1 && selectedRequests.length > 0 && (\n <Box mb={2} display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" p={2} bgcolor=\"background.default\">\n <Typography variant=\"body2\">\n {selectedRequests.length} request{selectedRequests.length !== 1 ? 's' : ''} selected\n </Typography>\n <Box display=\"flex\" style={{ gap: 8 }}>\n <Button\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n startIcon={<CheckCircleIcon />}\n onClick={handleBulkApprove}\n >\n Approve Selected\n </Button>\n <Button\n size=\"small\"\n variant=\"contained\"\n color=\"secondary\"\n startIcon={<CancelIcon />}\n onClick={handleBulkReject}\n >\n Reject Selected\n </Button>\n </Box>\n </Box>\n )}\n\n {tabData.data.length === 0 ? (\n <Box p={3} textAlign=\"center\">\n <Typography variant=\"body1\" color=\"textSecondary\">\n {selectedTab === 0 && 'No approved requests.'}\n {selectedTab === 1 && 'No pending requests.'}\n {selectedTab === 2 && 'No rejected requests.'}\n </Typography>\n </Box>\n ) : (\n <Table\n options={{\n selection: canUpdateRequests && tabData.showSelection,\n paging: tabData.data.length > 10,\n pageSize: 10,\n search: false,\n showTextRowsSelected: false,\n toolbar: false,\n }}\n data={tabData.data}\n columns={tabData.columns}\n onSelectionChange={(rows) => setSelectedRequests(rows as APIKeyRequest[])}\n />\n )}\n </InfoCard>\n <ApprovalDialog\n open={dialogState.open}\n request={dialogState.request}\n action={dialogState.action}\n onClose={() => setDialogState({ open: false, request: null, action: 'approve' })}\n onConfirm={handleConfirm}\n />\n <BulkActionDialog\n open={bulkDialogState.open}\n requests={bulkDialogState.requests}\n action={bulkDialogState.action}\n onClose={() => setBulkDialogState({ open: false, requests: [], action: 'approve' })}\n onConfirm={handleBulkConfirm}\n />\n </>\n );\n};\n","import { createPermission } from '@backstage/plugin-permission-common';\n\n/**\n * permission definitions for the kuadrant plugin\n *\n * these permissions control access to kuadrant resources and operations.\n * they must match the permissions defined in the backend plugin.\n *\n * permission types:\n * - BasicPermission: standard permission that applies globally\n * - ResourcePermission: permission scoped to specific resource types (e.g., apiproduct)\n *\n * permission patterns:\n * - `.create` - create new resources\n * - `.read` - read resource details\n * - `.read.own` - read only resources owned by the user\n * - `.read.all` - read all resources regardless of ownership\n * - `.update` - modify existing resources\n * - `.delete` - delete resources\n * - `.delete.own` - delete only resources owned by the user\n * - `.delete.all` - delete any resource regardless of ownership\n * - `.list` - list/view collections of resources\n */\n\n// planpolicy permissions\nexport const kuadrantPlanPolicyCreatePermission = createPermission({\n name: 'kuadrant.planpolicy.create',\n attributes: { action: 'create' },\n});\n\nexport const kuadrantPlanPolicyReadPermission = createPermission({\n name: 'kuadrant.planpolicy.read',\n attributes: { action: 'read' },\n});\n\nexport const kuadrantPlanPolicyUpdatePermission = createPermission({\n name: 'kuadrant.planpolicy.update',\n attributes: { action: 'update' },\n});\n\nexport const kuadrantPlanPolicyDeletePermission = createPermission({\n name: 'kuadrant.planpolicy.delete',\n attributes: { action: 'delete' },\n});\n\nexport const kuadrantPlanPolicyListPermission = createPermission({\n name: 'kuadrant.planpolicy.list',\n attributes: { action: 'read' },\n});\n\n// apiproduct permissions\nexport const kuadrantApiProductCreatePermission = createPermission({\n name: 'kuadrant.apiproduct.create',\n attributes: { action: 'create' },\n});\n\nexport const kuadrantApiProductReadPermission = createPermission({\n name: 'kuadrant.apiproduct.read',\n attributes: { action: 'read' },\n});\n\nexport const kuadrantApiProductUpdatePermission = createPermission({\n name: 'kuadrant.apiproduct.update',\n attributes: { action: 'update' },\n});\n\nexport const kuadrantApiProductDeletePermission = createPermission({\n name: 'kuadrant.apiproduct.delete',\n attributes: { action: 'delete' },\n});\n\nexport const kuadrantApiProductListPermission = createPermission({\n name: 'kuadrant.apiproduct.list',\n attributes: { action: 'read' },\n});\n\n// apikeyrequest permissions\n\n/**\n * permission to create API key requests\n *\n * this is a ResourcePermission scoped to 'apiproduct', allowing\n * fine-grained control over which API products users can request access to.\n *\n * use in frontend: useKuadrantPermission(kuadrantApiKeyRequestCreatePermission)\n * use in backend with resource: { permission, resourceRef: 'apiproduct:namespace/name' }\n */\nexport const kuadrantApiKeyRequestCreatePermission = createPermission({\n name: 'kuadrant.apikeyrequest.create',\n attributes: { action: 'create' },\n resourceType: 'apiproduct',\n});\n\n/**\n * permission to read API key requests created by the current user\n * use this for allowing users to see their own request history\n */\nexport const kuadrantApiKeyRequestReadOwnPermission = createPermission({\n name: 'kuadrant.apikeyrequest.read.own',\n attributes: { action: 'read' },\n});\n\n/**\n * permission to read all API key requests regardless of who created them\n * use this for platform engineers/admins who need to view the approval queue\n */\nexport const kuadrantApiKeyRequestReadAllPermission = createPermission({\n name: 'kuadrant.apikeyrequest.read.all',\n attributes: { action: 'read' },\n});\n\n/**\n * permission to approve or reject API key requests\n * typically granted to API owners and platform engineers\n */\nexport const kuadrantApiKeyRequestUpdatePermission = createPermission({\n name: 'kuadrant.apikeyrequest.update',\n attributes: { action: 'update' },\n});\n\nexport const kuadrantApiKeyRequestListPermission = createPermission({\n name: 'kuadrant.apikeyrequest.list',\n attributes: { action: 'read' },\n});\n\n// api key permissions\n\n/**\n * permission to read API keys owned by the current user\n * allows users to view their own active API keys\n */\nexport const kuadrantApiKeyReadOwnPermission = createPermission({\n name: 'kuadrant.apikey.read.own',\n attributes: { action: 'read' },\n});\n\n/**\n * permission to read all API keys regardless of ownership\n * for platform engineers/admins who need to audit keys\n */\nexport const kuadrantApiKeyReadAllPermission = createPermission({\n name: 'kuadrant.apikey.read.all',\n attributes: { action: 'read' },\n});\n\n/**\n * permission to delete API keys owned by the current user\n * allows users to revoke their own access\n */\nexport const kuadrantApiKeyDeleteOwnPermission = createPermission({\n name: 'kuadrant.apikey.delete.own',\n attributes: { action: 'delete' },\n});\n\n/**\n * permission to delete any API key regardless of ownership\n * for platform engineers/admins who need to revoke access\n */\nexport const kuadrantApiKeyDeleteAllPermission = createPermission({\n name: 'kuadrant.apikey.delete.all',\n attributes: { action: 'delete' },\n});\n\nexport const kuadrantPermissions = [\n kuadrantPlanPolicyCreatePermission,\n kuadrantPlanPolicyReadPermission,\n kuadrantPlanPolicyUpdatePermission,\n kuadrantPlanPolicyDeletePermission,\n kuadrantPlanPolicyListPermission,\n kuadrantApiProductCreatePermission,\n kuadrantApiProductReadPermission,\n kuadrantApiProductUpdatePermission,\n kuadrantApiProductDeletePermission,\n kuadrantApiProductListPermission,\n kuadrantApiKeyRequestCreatePermission,\n kuadrantApiKeyRequestReadOwnPermission,\n kuadrantApiKeyRequestReadAllPermission,\n kuadrantApiKeyRequestUpdatePermission,\n kuadrantApiKeyRequestListPermission,\n kuadrantApiKeyReadOwnPermission,\n kuadrantApiKeyReadAllPermission,\n kuadrantApiKeyDeleteOwnPermission,\n kuadrantApiKeyDeleteAllPermission,\n];\n","import { usePermission } from '@backstage/plugin-permission-react';\nimport { Permission, ResourcePermission } from '@backstage/plugin-permission-common';\n\n/**\n * result of a permission check including error state\n */\nexport interface PermissionCheckResult {\n allowed: boolean;\n loading: boolean;\n error?: Error;\n}\n\n/**\n * custom hook for checking kuadrant permissions that handles both\n * BasicPermission and ResourcePermission types without type bypasses\n *\n * @param permission - the permission to check\n * @param resourceRef - optional resource reference for ResourcePermissions\n * @returns permission check result with error handling\n *\n * @example\n * // basic permission\n * const { allowed, loading, error } = useKuadrantPermission(\n * kuadrantApiProductListPermission\n * );\n *\n * @example\n * // resource permission\n * const { allowed, loading, error } = useKuadrantPermission(\n * kuadrantApiKeyRequestCreatePermission,\n * 'apiproduct:namespace/name'\n * );\n */\nexport function useKuadrantPermission(\n permission: Permission,\n resourceRef?: string,\n): PermissionCheckResult {\n // construct the permission request based on whether it's a ResourcePermission\n const permissionRequest = 'resourceType' in permission\n ? { permission: permission as ResourcePermission, resourceRef }\n : { permission };\n\n const result = usePermission(permissionRequest as any);\n\n return {\n allowed: result.allowed,\n loading: result.loading,\n error: result.error,\n };\n}\n\n/**\n * helper to determine if a user can delete a specific API key or request\n *\n * @param ownerId - the user id who owns the key/request\n * @param currentUserId - the current user's id\n * @param canDeleteOwn - whether user has permission to delete their own keys\n * @param canDeleteAll - whether user has permission to delete all keys\n * @returns true if user can delete this specific key/request\n */\nexport function canDeleteResource(\n ownerId: string,\n currentUserId: string,\n canDeleteOwn: boolean,\n canDeleteAll: boolean,\n): boolean {\n if (canDeleteAll) return true;\n if (canDeleteOwn && ownerId === currentUserId) return true;\n return false;\n}\n"],"names":["ApprovalDialog","open","request","action","onClose","onConfirm","comment","setComment","useState","Dialog","maxWidth","fullWidth","DialogTitle","DialogContent","p","strong","spec","requestedBy","userId","apiName","planTier","useCase","TextField","label","multiline","rows","margin","value","onChange","e","target","DialogActions","Button","onClick","color","variant","BulkActionDialog","requests","isApprove","length","Typography","paragraph","Box","mb","maxHeight","overflow","map","bgcolor","metadata","namespace","name","helperText","ApprovalQueueCard","config","useApi","configApiRef","fetchApi","fetchApiRef","identityApi","identityApiRef","backendUrl","getString","refresh","setRefresh","selectedTab","setSelectedTab","selectedRequests","setSelectedRequests","dialogState","setDialogState","bulkDialogState","setBulkDialogState","allowed","canUpdateRequests","loading","updatePermissionLoading","error","updatePermissionError","useKuadrantPermission","kuadrantApiKeyRequestUpdatePermission","useAsync","async","reviewedBy","getBackstageIdentity","userEntityRef","console","log","response","fetch","ok","status","pending","approved","rejected","contentType","headers","get","includes","allRequests","json","items","filter","r","phase","Progress","ResponseErrorPanel","message","formatDate","dateString","Date","toLocaleDateString","year","month","day","hour","minute","pendingColumns","title","field","render","row","apiNamespace","Chip","size","style","noWrap","requestedAt","display","gap","startIcon","CheckCircleIcon","CancelIcon","approvedColumns","reviewedAt","isAutomatic","rejectedColumns","reason","tabData","data","columns","showSelection","isSelected","some","selected","tableData","checked","getTabData","InfoCard","subheader","Tabs","_","newValue","indicatorColor","textColor","Tab","alignItems","justifyContent","textAlign","Table","options","selection","paging","pageSize","search","showTextRowsSelected","toolbar","onSelectionChange","endpoint","method","body","JSON","stringify","Error","err","createPermission","attributes","kuadrantPlanPolicyListPermission","kuadrantApiProductCreatePermission","kuadrantApiProductUpdatePermission","kuadrantApiProductDeletePermission","kuadrantApiProductListPermission","kuadrantApiKeyRequestCreatePermission","resourceType","kuadrantApiKeyRequestReadAllPermission","kuadrantApiKeyDeleteOwnPermission","kuadrantApiKeyDeleteAllPermission","permission","resourceRef","permissionRequest","result","usePermission","canDeleteResource","ownerId","currentUserId","canDeleteOwn","canDeleteAll"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[3007,6352],{268:(t,n,e)=>{e.d(n,{E2:()=>i,J1:()=>l,Ob:()=>o,Rv:()=>p,X0:()=>f,X4:()=>g,YL:()=>c,a:()=>v,e$:()=>h,eM:()=>d,rP:()=>u,tL:()=>s});var r=e(87447);function a(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(Math.max(n,t),e)}function i(t){t=t.substr(1);var n=new RegExp(".{1,".concat(t.length>=6?2:1,"}"),"g"),e=t.match(n);return e&&1===e[0].length&&(e=e.map(function(t){return t+t})),e?"rgb".concat(4===e.length?"a":"","(").concat(e.map(function(t,n){return n<3?parseInt(t,16):Math.round(parseInt(t,16)/255*1e3)/1e3}).join(", "),")"):""}function o(t){if(0===t.indexOf("#"))return t;var n=u(t).values;return"#".concat(n.map(function(t){return 1===(n=t.toString(16)).length?"0".concat(n):n;var n}).join(""))}function c(t){var n=(t=u(t)).values,e=n[0],r=n[1]/100,a=n[2]/100,i=r*Math.min(a,1-a),o=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(t+e/30)%12;return a-i*Math.max(Math.min(n-3,9-n,1),-1)},c="rgb",d=[Math.round(255*o(0)),Math.round(255*o(8)),Math.round(255*o(4))];return"hsla"===t.type&&(c+="a",d.push(n[3])),f({type:c,values:d})}function u(t){if(t.type)return t;if("#"===t.charAt(0))return u(i(t));var n=t.indexOf("("),e=t.substring(0,n);if(-1===["rgb","rgba","hsl","hsla"].indexOf(e))throw new Error((0,r.A)(3,t));var a=t.substring(n+1,t.length-1).split(",");return{type:e,values:a=a.map(function(t){return parseFloat(t)})}}function f(t){var n=t.type,e=t.values;return-1!==n.indexOf("rgb")?e=e.map(function(t,n){return n<3?parseInt(t,10):t}):-1!==n.indexOf("hsl")&&(e[1]="".concat(e[1],"%"),e[2]="".concat(e[2],"%")),"".concat(n,"(").concat(e.join(", "),")")}function d(t,n){var e=l(t),r=l(n);return(Math.max(e,r)+.05)/(Math.min(e,r)+.05)}function l(t){var n="hsl"===(t=u(t)).type?u(c(t)).values:t.values;return n=n.map(function(t){return(t/=255)<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}),Number((.2126*n[0]+.7152*n[1]+.0722*n[2]).toFixed(3))}function s(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return l(t)>.5?h(t,n):v(t,n)}function p(t,n){return g(t,n)}function g(t,n){return t=u(t),n=a(n),"rgb"!==t.type&&"hsl"!==t.type||(t.type+="a"),t.values[3]=n,f(t)}function h(t,n){if(t=u(t),n=a(n),-1!==t.type.indexOf("hsl"))t.values[2]*=1-n;else if(-1!==t.type.indexOf("rgb"))for(var e=0;e<3;e+=1)t.values[e]*=1-n;return f(t)}function v(t,n){if(t=u(t),n=a(n),-1!==t.type.indexOf("hsl"))t.values[2]+=(100-t.values[2])*n;else if(-1!==t.type.indexOf("rgb"))for(var e=0;e<3;e+=1)t.values[e]+=(255-t.values[e])*n;return f(t)}},3475:(t,n,e)=>{e.d(n,{A:()=>r});const r={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"}},4499:(t,n,e)=>{e.d(n,{A:()=>r});const r={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"}},5405:(t,n,e)=>{function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}e.d(n,{A:()=>r})},6456:(t,n,e)=>{e.d(n,{A:()=>r});const r={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"}},7031:(t,n,e)=>{e.d(n,{A:()=>o});var r=e(89575),a=e(11942),i=e(37247);const o=function(t,n){return(0,a.withStyles)(t,(0,r.A)({defaultTheme:i.A},n))}},7289:(t,n,e)=>{e.d(n,{A:()=>r});const r={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"}},11369:(t,n,e)=>{e.d(n,{A:()=>a});var r=e(17545);function a(t){var n=function(t){if("object"!=(0,r.A)(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var e=n.call(t,"string");if("object"!=(0,r.A)(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,r.A)(n)?n:n+""}},16328:(t,n,e)=>{e.d(n,{A:()=>o});var r=e(89575),a=e(17545);function i(t){return t&&"object"===(0,a.A)(t)&&t.constructor===Object}function o(t,n){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{clone:!0},a=e.clone?(0,r.A)({},t):t;return i(t)&&i(n)&&Object.keys(n).forEach(function(r){"__proto__"!==r&&(i(n[r])&&r in t?a[r]=o(t[r],n[r],e):a[r]=n[r])}),a}},17502:(t,n,e)=>{function r(t,n){if(null==t)return{};var e={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(-1!==n.indexOf(r))continue;e[r]=t[r]}return e}e.d(n,{A:()=>r})},17545:(t,n,e)=>{function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}e.d(n,{A:()=>r})},24586:(t,n,e)=>{e.d(n,{A:()=>a});var r=e(11369);function a(t,n,e){return(n=(0,r.A)(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}},26931:(t,n,e)=>{e.d(n,{A:()=>r});const r={mobileStepper:1e3,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500}},27985:(t,n,e)=>{e.d(n,{A:()=>a});var r=e(86284);function a(t,n){if(t){if("string"==typeof t)return(0,r.A)(t,n);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?(0,r.A)(t,n):void 0}}},37247:(t,n,e)=>{e.d(n,{A:()=>r});const r=(0,e(98392).A)()},38084:(t,n,e)=>{e.d(n,{A:()=>r});const r={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"}},38184:(t,n,e)=>{e.d(n,{L:()=>p,A:()=>h});var r,a,i=e(90689),o=e(59292),c=e(92076),u={m:"margin",p:"padding"},f={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},d={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},l=(r=function(t){if(t.length>2){if(!d[t])return[t];t=d[t]}var n=t.split(""),e=(0,i.A)(n,2),r=e[0],a=e[1],o=u[r],c=f[a]||"";return Array.isArray(c)?c.map(function(t){return o+t}):[o+c]},a={},function(t){return void 0===a[t]&&(a[t]=r(t)),a[t]}),s=["m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY"];function p(t){var n=t.spacing||8;return"number"==typeof n?function(t){return n*t}:Array.isArray(n)?function(t){return n[t]}:"function"==typeof n?n:function(){}}function g(t){var n=p(t.theme);return Object.keys(t).map(function(e){if(-1===s.indexOf(e))return null;var r=function(t,n){return function(e){return t.reduce(function(t,r){return t[r]=function(t,n){if("string"==typeof n||null==n)return n;var e=t(Math.abs(n));return n>=0?e:"number"==typeof e?-e:"-".concat(e)}(n,e),t},{})}}(l(e),n),a=t[e];return(0,o.N)(t,a,r)}).reduce(c.A,{})}g.propTypes={},g.filterProps=s;const h=g},39850:(t,n,e)=>{e.d(n,{A:()=>a});var r=e(17502);function a(t,n){if(null==t)return{};var e,a,i=(0,r.A)(t,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a<o.length;a++)e=o[a],-1===n.indexOf(e)&&{}.propertyIsEnumerable.call(t,e)&&(i[e]=t[e])}return i}},42793:(t,n,e)=>{e.d(n,{A:()=>o,H:()=>i});var r=e(89575),a=e(39850),i=["xs","sm","md","lg","xl"];function o(t){var n=t.values,e=void 0===n?{xs:0,sm:600,md:960,lg:1280,xl:1920}:n,o=t.unit,c=void 0===o?"px":o,u=t.step,f=void 0===u?5:u,d=(0,a.A)(t,["values","unit","step"]);function l(t){var n="number"==typeof e[t]?e[t]:t;return"@media (min-width:".concat(n).concat(c,")")}function s(t,n){var r=i.indexOf(n);return r===i.length-1?l(t):"@media (min-width:".concat("number"==typeof e[t]?e[t]:t).concat(c,") and ")+"(max-width:".concat((-1!==r&&"number"==typeof e[i[r+1]]?e[i[r+1]]:n)-f/100).concat(c,")")}return(0,r.A)({keys:i,values:e,up:l,down:function(t){var n=i.indexOf(t)+1,r=e[i[n]];return n===i.length?l("xs"):"@media (max-width:".concat(("number"==typeof r&&n>0?r:t)-f/100).concat(c,")")},between:s,only:function(t){return s(t,t)},width:function(t){return e[t]}},d)}},43457:(t,n,e)=>{e.d(n,{Ay:()=>c,cz:()=>a,p0:()=>i});var r=e(39850),a={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},i={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function o(t){return"".concat(Math.round(t),"ms")}const c={easing:a,duration:i,create:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.duration,c=void 0===e?i.standard:e,u=n.easing,f=void 0===u?a.easeInOut:u,d=n.delay,l=void 0===d?0:d;return(0,r.A)(n,["duration","easing","delay"]),(Array.isArray(t)?t:[t]).map(function(t){return"".concat(t," ").concat("string"==typeof c?c:o(c)," ").concat(f," ").concat("string"==typeof l?l:o(l))}).join(",")},getAutoHeightDuration:function(t){if(!t)return 0;var n=t/36;return Math.round(10*(4+15*Math.pow(n,.25)+n/5))}}},54024:(t,n,e)=>{e.d(n,{A:()=>r});const r={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"}},54917:(t,n,e)=>{e.d(n,{A:()=>i});var r=e(11942),a=(e(95478),e(37247));function i(){return(0,r.useTheme)()||a.A}},57285:(t,n,e)=>{e.d(n,{A:()=>r});const r={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"}},59292:(t,n,e)=>{e.d(n,{N:()=>o});var r=e(17545),a={xs:0,sm:600,md:960,lg:1280,xl:1920},i={keys:["xs","sm","md","lg","xl"],up:function(t){return"@media (min-width:".concat(a[t],"px)")}};function o(t,n,e){if(Array.isArray(n)){var a=t.theme.breakpoints||i;return n.reduce(function(t,r,i){return t[a.up(a.keys[i])]=e(n[i]),t},{})}if("object"===(0,r.A)(n)){var o=t.theme.breakpoints||i;return Object.keys(n).reduce(function(t,r){return t[o.up(r)]=e(n[r]),t},{})}return e(n)}},60882:(t,n,e)=>{e.d(n,{A:()=>o});var r=e(89575),a=e(11942),i=e(37247);const o=function(t){var n=(0,a.styled)(t);return function(t,e){return n(t,(0,r.A)({defaultTheme:i.A},e))}}},86284:(t,n,e)=>{function r(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=Array(n);e<n;e++)r[e]=t[e];return r}e.d(n,{A:()=>r})},87447:(t,n,e)=>{function r(t){for(var n="https://mui.com/production-error/?code="+t,e=1;e<arguments.length;e+=1)n+="&args[]="+encodeURIComponent(arguments[e]);return"Minified Material-UI error #"+t+"; visit "+n+" for the full message."}e.d(n,{A:()=>r})},89575:(t,n,e)=>{function r(){return r=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var r in e)({}).hasOwnProperty.call(e,r)&&(t[r]=e[r])}return t},r.apply(null,arguments)}e.d(n,{A:()=>r})},90689:(t,n,e)=>{e.d(n,{A:()=>o});var r=e(96488),a=e(27985),i=e(5405);function o(t,n){return(0,r.A)(t)||function(t,n){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,a,i,o,c=[],u=!0,f=!1;try{if(i=(e=e.call(t)).next,0===n){if(Object(e)!==e)return;u=!1}else for(;!(u=(r=i.call(e)).done)&&(c.push(r.value),c.length!==n);u=!0);}catch(t){f=!0,a=t}finally{try{if(!u&&null!=e.return&&(o=e.return(),Object(o)!==o))return}finally{if(f)throw a}}return c}}(t,n)||(0,a.A)(t,n)||(0,i.A)()}},92076:(t,n,e)=>{e.d(n,{A:()=>a});var r=e(16328);const a=function(t,n){return n?(0,r.A)(t,n,{clone:!1}):t}},95186:(t,n,e)=>{e.d(n,{A:()=>r});const r={black:"#000",white:"#fff"}},96488:(t,n,e)=>{function r(t){if(Array.isArray(t))return t}e.d(n,{A:()=>r})},98392:(t,n,e)=>{e.d(n,{D:()=>P,A:()=>B});var r=e(39850),a=e(16328),i=e(42793),o=e(24586),c=e(89575);function u(t,n,e){var r;return(0,c.A)({gutters:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return console.warn(["Material-UI: theme.mixins.gutters() is deprecated.","You can use the source of the mixin directly:","\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n "].join("\n")),(0,c.A)({paddingLeft:n(2),paddingRight:n(2)},e,(0,o.A)({},t.up("sm"),(0,c.A)({paddingLeft:n(3),paddingRight:n(3)},e[t.up("sm")])))},toolbar:(r={minHeight:56},(0,o.A)(r,"".concat(t.up("xs")," and (orientation: landscape)"),{minHeight:48}),(0,o.A)(r,t.up("sm"),{minHeight:64}),r)},e)}var f=e(87447),d=e(95186),l=e(6456),s=e(7289),p=e(3475),g=e(38084),h=e(57285),v=e(4499),m=e(54024),A=e(268),b={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:d.A.white,default:l.A[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},y={text:{primary:d.A.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:l.A[800],default:"#303030"},action:{active:d.A.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function x(t,n,e,r){var a=r.light||r,i=r.dark||1.5*r;t[n]||(t.hasOwnProperty(e)?t[n]=t[e]:"light"===n?t.light=(0,A.a)(t.main,a):"dark"===n&&(t.dark=(0,A.e$)(t.main,i)))}function O(t){return Math.round(1e5*t)/1e5}function w(t){return O(t)}var k={textTransform:"uppercase"},S='"Roboto", "Helvetica", "Arial", sans-serif';function M(t,n){var e="function"==typeof n?n(t):n,i=e.fontFamily,o=void 0===i?S:i,u=e.fontSize,f=void 0===u?14:u,d=e.fontWeightLight,l=void 0===d?300:d,s=e.fontWeightRegular,p=void 0===s?400:s,g=e.fontWeightMedium,h=void 0===g?500:g,v=e.fontWeightBold,m=void 0===v?700:v,A=e.htmlFontSize,b=void 0===A?16:A,y=e.allVariants,x=e.pxToRem,M=(0,r.A)(e,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]),j=f/14,T=x||function(t){return"".concat(t/b*j,"rem")},R=function(t,n,e,r,a){return(0,c.A)({fontFamily:o,fontWeight:t,fontSize:T(n),lineHeight:e},o===S?{letterSpacing:"".concat(O(r/n),"em")}:{},a,y)},L={h1:R(l,96,1.167,-1.5),h2:R(l,60,1.2,-.5),h3:R(p,48,1.167,0),h4:R(p,34,1.235,.25),h5:R(p,24,1.334,0),h6:R(h,20,1.6,.15),subtitle1:R(p,16,1.75,.15),subtitle2:R(h,14,1.57,.1),body1:R(p,16,1.5,.15),body2:R(p,14,1.43,.15),button:R(h,14,1.75,.4,k),caption:R(p,12,1.66,.4),overline:R(p,12,2.66,1,k)};return(0,a.A)((0,c.A)({htmlFontSize:b,pxToRem:T,round:w,fontFamily:o,fontSize:f,fontWeightLight:l,fontWeightRegular:p,fontWeightMedium:h,fontWeightBold:m},L),M,{clone:!1})}function j(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}const T=["none",j(0,2,1,-1,0,1,1,0,0,1,3,0),j(0,3,1,-2,0,2,2,0,0,1,5,0),j(0,3,3,-2,0,3,4,0,0,1,8,0),j(0,2,4,-1,0,4,5,0,0,1,10,0),j(0,3,5,-1,0,5,8,0,0,1,14,0),j(0,3,5,-1,0,6,10,0,0,1,18,0),j(0,4,5,-2,0,7,10,1,0,2,16,1),j(0,5,5,-3,0,8,10,1,0,3,14,2),j(0,5,6,-3,0,9,12,1,0,3,16,2),j(0,6,6,-3,0,10,14,1,0,4,18,3),j(0,6,7,-4,0,11,15,1,0,4,20,3),j(0,7,8,-4,0,12,17,2,0,5,22,4),j(0,7,8,-4,0,13,19,2,0,5,24,4),j(0,7,9,-4,0,14,21,2,0,5,26,4),j(0,8,9,-5,0,15,22,2,0,6,28,5),j(0,8,10,-5,0,16,24,2,0,6,30,5),j(0,8,11,-5,0,17,26,2,0,6,32,5),j(0,9,11,-5,0,18,28,2,0,7,34,6),j(0,9,12,-6,0,19,29,2,0,7,36,6),j(0,10,13,-6,0,20,31,3,0,8,38,7),j(0,10,13,-6,0,21,33,3,0,8,40,7),j(0,10,14,-6,0,22,35,3,0,8,42,7),j(0,11,14,-7,0,23,36,3,0,9,44,8),j(0,11,15,-7,0,24,38,3,0,9,46,8)],R={borderRadius:4};var L=e(38184),I=e(43457),z=e(26931);function W(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.breakpoints,e=void 0===n?{}:n,o=t.mixins,O=void 0===o?{}:o,w=t.palette,k=void 0===w?{}:w,S=t.spacing,j=t.typography,W=void 0===j?{}:j,P=(0,r.A)(t,["breakpoints","mixins","palette","spacing","typography"]),B=function(t){var n=t.primary,e=void 0===n?{light:s.A[300],main:s.A[500],dark:s.A[700]}:n,i=t.secondary,o=void 0===i?{light:p.A.A200,main:p.A.A400,dark:p.A.A700}:i,u=t.error,O=void 0===u?{light:g.A[300],main:g.A[500],dark:g.A[700]}:u,w=t.warning,k=void 0===w?{light:h.A[300],main:h.A[500],dark:h.A[700]}:w,S=t.info,M=void 0===S?{light:v.A[300],main:v.A[500],dark:v.A[700]}:S,j=t.success,T=void 0===j?{light:m.A[300],main:m.A[500],dark:m.A[700]}:j,R=t.type,L=void 0===R?"light":R,I=t.contrastThreshold,z=void 0===I?3:I,W=t.tonalOffset,P=void 0===W?.2:W,B=(0,r.A)(t,["primary","secondary","error","warning","info","success","type","contrastThreshold","tonalOffset"]);function E(t){return(0,A.eM)(t,y.text.primary)>=z?y.text.primary:b.text.primary}var F=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;if(!(t=(0,c.A)({},t)).main&&t[n]&&(t.main=t[n]),!t.main)throw new Error((0,f.A)(4,n));if("string"!=typeof t.main)throw new Error((0,f.A)(5,JSON.stringify(t.main)));return x(t,"light",e,P),x(t,"dark",r,P),t.contrastText||(t.contrastText=E(t.main)),t},_={dark:y,light:b};return(0,a.A)((0,c.A)({common:d.A,type:L,primary:F(e),secondary:F(o,"A400","A200","A700"),error:F(O),warning:F(k),info:F(M),success:F(T),grey:l.A,contrastThreshold:z,getContrastText:E,augmentColor:F,tonalOffset:P},_[L]),B)}(k),E=(0,i.A)(e),F=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(t.mui)return t;var n=(0,L.L)({spacing:t}),e=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return 0===e.length?n(1):1===e.length?n(e[0]):e.map(function(t){if("string"==typeof t)return t;var e=n(t);return"number"==typeof e?"".concat(e,"px"):e}).join(" ")};return Object.defineProperty(e,"unit",{get:function(){return t}}),e.mui=!0,e}(S),_=(0,a.A)({breakpoints:E,direction:"ltr",mixins:u(E,F,O),overrides:{},palette:B,props:{},shadows:T,typography:M(B,W),spacing:F,shape:R,transitions:I.Ay,zIndex:z.A},P),H=arguments.length,C=new Array(H>1?H-1:0),X=1;X<H;X++)C[X-1]=arguments[X];return C.reduce(function(t,n){return(0,a.A)(t,n)},_)}function P(){return W.apply(void 0,arguments)}const B=W}}]);
2
+ //# sourceMappingURL=6352.d48bba8c.chunk.js.map