@kuadrant/kuadrant-backstage-plugin-frontend 0.0.1-test.1-57ace816 → 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 (473) 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 +24 -8
  4. package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js.map +1 -1
  5. package/dist/components/ApprovalQueueCard/ApprovalQueueCard.esm.js +80 -48
  6. package/dist/components/ApprovalQueueCard/ApprovalQueueCard.esm.js.map +1 -1
  7. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +37 -25
  8. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
  9. package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js +20 -4
  10. package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js.map +1 -1
  11. package/dist/components/KuadrantPage/KuadrantPage.esm.js +19 -10
  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-scalprum/configSchema.json +1 -0
  16. package/dist-scalprum/internal.plugin-kuadrant.9baeefa3b735dde128c6.js +2 -0
  17. package/dist-scalprum/internal.plugin-kuadrant.9baeefa3b735dde128c6.js.map +1 -0
  18. package/dist-scalprum/plugin-manifest.json +11 -0
  19. package/dist-scalprum/static/1613.71f0fccd.chunk.js +3 -0
  20. package/dist-scalprum/static/1613.71f0fccd.chunk.js.LICENSE.txt +10 -0
  21. package/dist-scalprum/static/1613.71f0fccd.chunk.js.map +1 -0
  22. package/dist-scalprum/static/1836.b74b4c40.chunk.js +3 -0
  23. package/dist-scalprum/static/1836.b74b4c40.chunk.js.LICENSE.txt +10 -0
  24. package/dist-scalprum/static/1836.b74b4c40.chunk.js.map +1 -0
  25. package/dist-scalprum/static/2198.5905970e.chunk.js +2 -0
  26. package/dist-scalprum/static/2198.5905970e.chunk.js.map +1 -0
  27. package/dist-scalprum/static/3007.bffc9924.chunk.js +2 -0
  28. package/dist-scalprum/static/3007.bffc9924.chunk.js.map +1 -0
  29. package/dist-scalprum/static/3144.6f99ccee.chunk.js +3 -0
  30. package/dist-scalprum/static/3144.6f99ccee.chunk.js.LICENSE.txt +19 -0
  31. package/dist-scalprum/static/3144.6f99ccee.chunk.js.map +1 -0
  32. package/dist-scalprum/static/3483.2f14a8ca.chunk.js +3 -0
  33. package/dist-scalprum/static/3483.2f14a8ca.chunk.js.LICENSE.txt +5 -0
  34. package/dist-scalprum/static/3483.2f14a8ca.chunk.js.map +1 -0
  35. package/dist-scalprum/static/3647.b96f9b3e.chunk.js +2 -0
  36. package/dist-scalprum/static/3647.b96f9b3e.chunk.js.map +1 -0
  37. package/dist-scalprum/static/3657.59d45756.chunk.js +3 -0
  38. package/dist-scalprum/static/3657.59d45756.chunk.js.LICENSE.txt +10 -0
  39. package/dist-scalprum/static/3657.59d45756.chunk.js.map +1 -0
  40. package/dist-scalprum/static/4041.29923ad9.chunk.js +3 -0
  41. package/dist-scalprum/static/4041.29923ad9.chunk.js.LICENSE.txt +9 -0
  42. package/dist-scalprum/static/4041.29923ad9.chunk.js.map +1 -0
  43. package/dist-scalprum/static/4161.aa5fd28d.chunk.js +3 -0
  44. package/dist-scalprum/static/4161.aa5fd28d.chunk.js.LICENSE.txt +27 -0
  45. package/dist-scalprum/static/4161.aa5fd28d.chunk.js.map +1 -0
  46. package/dist-scalprum/static/428.0a290bc6.chunk.js +2 -0
  47. package/dist-scalprum/static/428.0a290bc6.chunk.js.map +1 -0
  48. package/dist-scalprum/static/4306.133aa342.chunk.js +2 -0
  49. package/dist-scalprum/static/4306.133aa342.chunk.js.map +1 -0
  50. package/dist-scalprum/static/441.8bd811bc.chunk.js +2 -0
  51. package/dist-scalprum/static/441.8bd811bc.chunk.js.map +1 -0
  52. package/dist-scalprum/static/4491.a2e0258f.chunk.js +2 -0
  53. package/dist-scalprum/static/4491.a2e0258f.chunk.js.map +1 -0
  54. package/dist-scalprum/static/4570.8b9f98d7.chunk.js +3 -0
  55. package/dist-scalprum/static/4570.8b9f98d7.chunk.js.LICENSE.txt +16 -0
  56. package/dist-scalprum/static/4570.8b9f98d7.chunk.js.map +1 -0
  57. package/dist-scalprum/static/5222.796292ca.chunk.js +2 -0
  58. package/dist-scalprum/static/5222.796292ca.chunk.js.map +1 -0
  59. package/dist-scalprum/static/5453.d8d305e9.chunk.js +2 -0
  60. package/dist-scalprum/static/5453.d8d305e9.chunk.js.map +1 -0
  61. package/dist-scalprum/static/5568.5dbce633.chunk.js +3 -0
  62. package/dist-scalprum/static/5568.5dbce633.chunk.js.LICENSE.txt +18 -0
  63. package/dist-scalprum/static/5568.5dbce633.chunk.js.map +1 -0
  64. package/dist-scalprum/static/5603.05d9ca7f.chunk.js +2 -0
  65. package/dist-scalprum/static/5603.05d9ca7f.chunk.js.map +1 -0
  66. package/dist-scalprum/static/5811.5c192eeb.chunk.js +2 -0
  67. package/dist-scalprum/static/5811.5c192eeb.chunk.js.map +1 -0
  68. package/dist-scalprum/static/6272.e49551fa.chunk.js +2 -0
  69. package/dist-scalprum/static/6272.e49551fa.chunk.js.map +1 -0
  70. package/dist-scalprum/static/6281.29f4549b.chunk.js +2 -0
  71. package/dist-scalprum/static/6281.29f4549b.chunk.js.map +1 -0
  72. package/dist-scalprum/static/6352.d48bba8c.chunk.js +2 -0
  73. package/dist-scalprum/static/6352.d48bba8c.chunk.js.map +1 -0
  74. package/dist-scalprum/static/6872.feed76d2.chunk.js +2 -0
  75. package/dist-scalprum/static/6872.feed76d2.chunk.js.map +1 -0
  76. package/dist-scalprum/static/7601.08d8ff3f.chunk.js +2 -0
  77. package/dist-scalprum/static/7601.08d8ff3f.chunk.js.map +1 -0
  78. package/dist-scalprum/static/7984.c8511b89.chunk.js +2 -0
  79. package/dist-scalprum/static/7984.c8511b89.chunk.js.map +1 -0
  80. package/dist-scalprum/static/8365.75ea3581.chunk.js +2 -0
  81. package/dist-scalprum/static/8365.75ea3581.chunk.js.map +1 -0
  82. package/dist-scalprum/static/8617.d1dc70a8.chunk.js +2 -0
  83. package/dist-scalprum/static/8617.d1dc70a8.chunk.js.map +1 -0
  84. package/dist-scalprum/static/9288.61b45746.chunk.js +3 -0
  85. package/dist-scalprum/static/9288.61b45746.chunk.js.LICENSE.txt +33 -0
  86. package/dist-scalprum/static/9288.61b45746.chunk.js.map +1 -0
  87. package/dist-scalprum/static/exposed-PluginRoot.8bc4d676.chunk.js +2 -0
  88. package/dist-scalprum/static/exposed-PluginRoot.8bc4d676.chunk.js.map +1 -0
  89. package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.2bd53873.chunk.js +2 -0
  90. package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.2bd53873.chunk.js.map +1 -0
  91. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.bb6a8626.chunk.js +2 -0
  92. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.bb6a8626.chunk.js.map +1 -0
  93. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.bd112f1a.chunk.js +2 -0
  94. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.bd112f1a.chunk.js.map +1 -0
  95. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.78db0238.chunk.js +2 -0
  96. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.78db0238.chunk.js.map +1 -0
  97. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.b0d90871.chunk.js +2 -0
  98. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.b0d90871.chunk.js.map +1 -0
  99. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.f9816c44.chunk.js +2 -0
  100. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.f9816c44.chunk.js.map +1 -0
  101. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.aa86d495.chunk.js +2 -0
  102. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.aa86d495.chunk.js.map +1 -0
  103. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.ddf703d6.chunk.js +2 -0
  104. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.ddf703d6.chunk.js.map +1 -0
  105. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.70910623.chunk.js +2 -0
  106. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.70910623.chunk.js.map +1 -0
  107. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.9b9ce313.chunk.js +2 -0
  108. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.9b9ce313.chunk.js.map +1 -0
  109. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.4bfb8996.chunk.js +2 -0
  110. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.4bfb8996.chunk.js.map +1 -0
  111. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.4b40a3f9.chunk.js +2 -0
  112. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.4b40a3f9.chunk.js.map +1 -0
  113. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.35f221e8.chunk.js +2 -0
  114. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.35f221e8.chunk.js.map +1 -0
  115. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.614c5248.chunk.js +2 -0
  116. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.614c5248.chunk.js.map +1 -0
  117. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.a06c1c62.chunk.js +2 -0
  118. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.a06c1c62.chunk.js.map +1 -0
  119. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.6381890e.chunk.js +2 -0
  120. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.6381890e.chunk.js.map +1 -0
  121. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.dfc9b0b0.chunk.js +2 -0
  122. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.dfc9b0b0.chunk.js.map +1 -0
  123. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.80d14346.chunk.js +2 -0
  124. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.80d14346.chunk.js.map +1 -0
  125. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.53f7c730.chunk.js +2 -0
  126. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.53f7c730.chunk.js.map +1 -0
  127. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.ec232b8a.chunk.js +2 -0
  128. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.ec232b8a.chunk.js.map +1 -0
  129. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.84e0a497.chunk.js +2 -0
  130. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.84e0a497.chunk.js.map +1 -0
  131. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.31bde7c5.chunk.js +2 -0
  132. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.31bde7c5.chunk.js.map +1 -0
  133. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.b43ce116.chunk.js +2 -0
  134. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.b43ce116.chunk.js.map +1 -0
  135. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.f884fdc0.chunk.js +2 -0
  136. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.f884fdc0.chunk.js.map +1 -0
  137. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.781cc6c6.chunk.js +2 -0
  138. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.781cc6c6.chunk.js.map +1 -0
  139. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.79dfc31f.chunk.js +2 -0
  140. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.79dfc31f.chunk.js.map +1 -0
  141. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.ab3b1c28.chunk.js +2 -0
  142. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.ab3b1c28.chunk.js.map +1 -0
  143. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.97b48014.chunk.js +2 -0
  144. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.97b48014.chunk.js.map +1 -0
  145. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.e3fcc98c.chunk.js +2 -0
  146. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.e3fcc98c.chunk.js.map +1 -0
  147. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.e6dbc3b4.chunk.js +2 -0
  148. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.e6dbc3b4.chunk.js.map +1 -0
  149. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.cb9028b5.chunk.js +2 -0
  150. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.cb9028b5.chunk.js.map +1 -0
  151. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.3bc87b5b.chunk.js +2 -0
  152. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.3bc87b5b.chunk.js.map +1 -0
  153. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.6b156852.chunk.js +2 -0
  154. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.6b156852.chunk.js.map +1 -0
  155. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.78d69dee.chunk.js +2 -0
  156. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.78d69dee.chunk.js.map +1 -0
  157. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.ff6a8f78.chunk.js +2 -0
  158. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.ff6a8f78.chunk.js.map +1 -0
  159. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.58c4cb07.chunk.js +2 -0
  160. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.58c4cb07.chunk.js.map +1 -0
  161. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.3a36e63f.chunk.js +2 -0
  162. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.3a36e63f.chunk.js.map +1 -0
  163. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.ea98c6fb.chunk.js +2 -0
  164. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.ea98c6fb.chunk.js.map +1 -0
  165. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7fc6f9a3.chunk.js +2 -0
  166. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7fc6f9a3.chunk.js.map +1 -0
  167. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.2cc312ae.chunk.js +2 -0
  168. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.2cc312ae.chunk.js.map +1 -0
  169. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.bf4f2b44.chunk.js +2 -0
  170. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.bf4f2b44.chunk.js.map +1 -0
  171. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.0a0b12af.chunk.js +2 -0
  172. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.0a0b12af.chunk.js.map +1 -0
  173. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.588e191d.chunk.js +2 -0
  174. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.588e191d.chunk.js.map +1 -0
  175. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.a8373241.chunk.js +2 -0
  176. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.a8373241.chunk.js.map +1 -0
  177. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.8fb85401.chunk.js +2 -0
  178. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.8fb85401.chunk.js.map +1 -0
  179. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.6d79126a.chunk.js +2 -0
  180. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.6d79126a.chunk.js.map +1 -0
  181. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.2c5fdf55.chunk.js +2 -0
  182. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.2c5fdf55.chunk.js.map +1 -0
  183. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.1ede6e37.chunk.js +2 -0
  184. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.1ede6e37.chunk.js.map +1 -0
  185. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.c3457b50.chunk.js +2 -0
  186. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.c3457b50.chunk.js.map +1 -0
  187. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.8fd3703c.chunk.js +2 -0
  188. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.8fd3703c.chunk.js.map +1 -0
  189. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.b30d0c38.chunk.js +2 -0
  190. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.b30d0c38.chunk.js.map +1 -0
  191. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.a34b6944.chunk.js +2 -0
  192. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.a34b6944.chunk.js.map +1 -0
  193. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.1e79c9b9.chunk.js +2 -0
  194. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.1e79c9b9.chunk.js.map +1 -0
  195. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.8a488b19.chunk.js +2 -0
  196. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.8a488b19.chunk.js.map +1 -0
  197. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.4ac917b8.chunk.js +2 -0
  198. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.4ac917b8.chunk.js.map +1 -0
  199. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.501777c7.chunk.js +2 -0
  200. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.501777c7.chunk.js.map +1 -0
  201. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0d7f4890.chunk.js +2 -0
  202. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0d7f4890.chunk.js.map +1 -0
  203. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.2f5c76b9.chunk.js +2 -0
  204. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.2f5c76b9.chunk.js.map +1 -0
  205. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.5ee62733.chunk.js +2 -0
  206. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.5ee62733.chunk.js.map +1 -0
  207. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.972cc801.chunk.js +2 -0
  208. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.972cc801.chunk.js.map +1 -0
  209. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.38ec3d00.chunk.js +2 -0
  210. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.38ec3d00.chunk.js.map +1 -0
  211. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.2ba37c00.chunk.js +2 -0
  212. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.2ba37c00.chunk.js.map +1 -0
  213. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.a45eb030.chunk.js +2 -0
  214. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.a45eb030.chunk.js.map +1 -0
  215. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.cceeafb0.chunk.js +2 -0
  216. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.cceeafb0.chunk.js.map +1 -0
  217. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.378d3296.chunk.js +2 -0
  218. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.378d3296.chunk.js.map +1 -0
  219. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.e740620a.chunk.js +2 -0
  220. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.e740620a.chunk.js.map +1 -0
  221. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.bb5b0086.chunk.js +2 -0
  222. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.bb5b0086.chunk.js.map +1 -0
  223. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.2347c999.chunk.js +2 -0
  224. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.2347c999.chunk.js.map +1 -0
  225. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.abc0a144.chunk.js +2 -0
  226. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.abc0a144.chunk.js.map +1 -0
  227. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.eaa5e2bf.chunk.js +2 -0
  228. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.eaa5e2bf.chunk.js.map +1 -0
  229. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.72fdf84d.chunk.js +2 -0
  230. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.72fdf84d.chunk.js.map +1 -0
  231. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.ecd68b19.chunk.js +2 -0
  232. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.ecd68b19.chunk.js.map +1 -0
  233. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.d698757b.chunk.js +2 -0
  234. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.d698757b.chunk.js.map +1 -0
  235. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.75c0a89b.chunk.js +2 -0
  236. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.75c0a89b.chunk.js.map +1 -0
  237. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.bbd3c104.chunk.js +2 -0
  238. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.bbd3c104.chunk.js.map +1 -0
  239. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.e2543cc2.chunk.js +2 -0
  240. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.e2543cc2.chunk.js.map +1 -0
  241. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.5d714528.chunk.js +2 -0
  242. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.5d714528.chunk.js.map +1 -0
  243. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.e57e3c89.chunk.js +2 -0
  244. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.e57e3c89.chunk.js.map +1 -0
  245. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.5859273c.chunk.js +2 -0
  246. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.5859273c.chunk.js.map +1 -0
  247. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.c60db034.chunk.js +2 -0
  248. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.c60db034.chunk.js.map +1 -0
  249. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.78be038f.chunk.js +2 -0
  250. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.78be038f.chunk.js.map +1 -0
  251. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.d9d4ed7e.chunk.js +2 -0
  252. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.d9d4ed7e.chunk.js.map +1 -0
  253. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.25afcc29.chunk.js +2 -0
  254. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.25afcc29.chunk.js.map +1 -0
  255. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.abe269c1.chunk.js +2 -0
  256. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.abe269c1.chunk.js.map +1 -0
  257. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.e04d1c07.chunk.js +2 -0
  258. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.e04d1c07.chunk.js.map +1 -0
  259. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.b0ad82d3.chunk.js +2 -0
  260. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.b0ad82d3.chunk.js.map +1 -0
  261. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.1ff533ef.chunk.js +2 -0
  262. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.1ff533ef.chunk.js.map +1 -0
  263. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.d934b52b.chunk.js +2 -0
  264. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.d934b52b.chunk.js.map +1 -0
  265. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.f43a39d0.chunk.js +2 -0
  266. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.f43a39d0.chunk.js.map +1 -0
  267. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.e3bfcde8.chunk.js +2 -0
  268. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.e3bfcde8.chunk.js.map +1 -0
  269. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.c5eaa6f5.chunk.js +2 -0
  270. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.c5eaa6f5.chunk.js.map +1 -0
  271. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.8d4054e7.chunk.js +2 -0
  272. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.8d4054e7.chunk.js.map +1 -0
  273. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.b4bb9102.chunk.js +2 -0
  274. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.b4bb9102.chunk.js.map +1 -0
  275. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.74045e43.chunk.js +2 -0
  276. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.74045e43.chunk.js.map +1 -0
  277. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.92519810.chunk.js +2 -0
  278. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.92519810.chunk.js.map +1 -0
  279. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.cc574d49.chunk.js +2 -0
  280. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.cc574d49.chunk.js.map +1 -0
  281. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.1cb2f675.chunk.js +2 -0
  282. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.1cb2f675.chunk.js.map +1 -0
  283. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.f624f22d.chunk.js +2 -0
  284. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.f624f22d.chunk.js.map +1 -0
  285. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.3ece3068.chunk.js +2 -0
  286. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.3ece3068.chunk.js.map +1 -0
  287. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.f32d41e6.chunk.js +2 -0
  288. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.f32d41e6.chunk.js.map +1 -0
  289. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.b6519e02.chunk.js +2 -0
  290. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.b6519e02.chunk.js.map +1 -0
  291. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.52f73c98.chunk.js +2 -0
  292. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.52f73c98.chunk.js.map +1 -0
  293. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.cad796c9.chunk.js +2 -0
  294. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.cad796c9.chunk.js.map +1 -0
  295. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.1489792c.chunk.js +2 -0
  296. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.1489792c.chunk.js.map +1 -0
  297. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.d8631b37.chunk.js +2 -0
  298. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.d8631b37.chunk.js.map +1 -0
  299. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.114e44eb.chunk.js +2 -0
  300. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.114e44eb.chunk.js.map +1 -0
  301. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.f1f17544.chunk.js +2 -0
  302. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.f1f17544.chunk.js.map +1 -0
  303. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.5251fe1a.chunk.js +2 -0
  304. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.5251fe1a.chunk.js.map +1 -0
  305. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.fa8fdac0.chunk.js +2 -0
  306. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.fa8fdac0.chunk.js.map +1 -0
  307. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.f5bc5b04.chunk.js +2 -0
  308. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.f5bc5b04.chunk.js.map +1 -0
  309. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.9b39cf3b.chunk.js +2 -0
  310. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.9b39cf3b.chunk.js.map +1 -0
  311. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.0cf721ff.chunk.js +2 -0
  312. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.0cf721ff.chunk.js.map +1 -0
  313. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.5f60f06d.chunk.js +2 -0
  314. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.5f60f06d.chunk.js.map +1 -0
  315. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.443301b3.chunk.js +2 -0
  316. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.443301b3.chunk.js.map +1 -0
  317. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.c54b2c4a.chunk.js +2 -0
  318. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.c54b2c4a.chunk.js.map +1 -0
  319. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.630147e0.chunk.js +2 -0
  320. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.630147e0.chunk.js.map +1 -0
  321. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.17afaed1.chunk.js +2 -0
  322. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.17afaed1.chunk.js.map +1 -0
  323. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.245f31b6.chunk.js +2 -0
  324. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.245f31b6.chunk.js.map +1 -0
  325. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.5b05cdf2.chunk.js +2 -0
  326. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.5b05cdf2.chunk.js.map +1 -0
  327. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.4934a8e8.chunk.js +2 -0
  328. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.4934a8e8.chunk.js.map +1 -0
  329. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.2d204375.chunk.js +2 -0
  330. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.2d204375.chunk.js.map +1 -0
  331. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.0e42541e.chunk.js +2 -0
  332. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.0e42541e.chunk.js.map +1 -0
  333. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.362a3b0a.chunk.js +2 -0
  334. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.362a3b0a.chunk.js.map +1 -0
  335. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.4a460eaf.chunk.js +2 -0
  336. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.4a460eaf.chunk.js.map +1 -0
  337. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.ea742315.chunk.js +2 -0
  338. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.ea742315.chunk.js.map +1 -0
  339. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.706a4bd6.chunk.js +2 -0
  340. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.706a4bd6.chunk.js.map +1 -0
  341. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.ae8475a2.chunk.js +2 -0
  342. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.ae8475a2.chunk.js.map +1 -0
  343. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.5052a768.chunk.js +2 -0
  344. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.5052a768.chunk.js.map +1 -0
  345. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.5b0d21b9.chunk.js +2 -0
  346. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.5b0d21b9.chunk.js.map +1 -0
  347. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.ade4c6c4.chunk.js +2 -0
  348. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.ade4c6c4.chunk.js.map +1 -0
  349. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.2bd36dc7.chunk.js +2 -0
  350. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.2bd36dc7.chunk.js.map +1 -0
  351. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.25f8d292.chunk.js +2 -0
  352. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.25f8d292.chunk.js.map +1 -0
  353. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.1961f69f.chunk.js +2 -0
  354. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.1961f69f.chunk.js.map +1 -0
  355. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.7bd31b3a.chunk.js +2 -0
  356. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.7bd31b3a.chunk.js.map +1 -0
  357. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.8d1f48c5.chunk.js +2 -0
  358. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.8d1f48c5.chunk.js.map +1 -0
  359. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.615fa721.chunk.js +2 -0
  360. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.615fa721.chunk.js.map +1 -0
  361. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.be0fdf0c.chunk.js +2 -0
  362. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.be0fdf0c.chunk.js.map +1 -0
  363. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.60f97895.chunk.js +2 -0
  364. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.60f97895.chunk.js.map +1 -0
  365. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.0cd375bc.chunk.js +2 -0
  366. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.0cd375bc.chunk.js.map +1 -0
  367. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.ee3f80da.chunk.js +2 -0
  368. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.ee3f80da.chunk.js.map +1 -0
  369. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.08443005.chunk.js +2 -0
  370. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.08443005.chunk.js.map +1 -0
  371. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.9e4100ae.chunk.js +2 -0
  372. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.9e4100ae.chunk.js.map +1 -0
  373. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.feb72aed.chunk.js +2 -0
  374. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.feb72aed.chunk.js.map +1 -0
  375. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.989943de.chunk.js +2 -0
  376. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.989943de.chunk.js.map +1 -0
  377. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.8f3a0af6.chunk.js +2 -0
  378. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.8f3a0af6.chunk.js.map +1 -0
  379. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.8540ccea.chunk.js +2 -0
  380. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.8540ccea.chunk.js.map +1 -0
  381. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.a5a73a29.chunk.js +2 -0
  382. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.a5a73a29.chunk.js.map +1 -0
  383. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.dc8afdf1.chunk.js +2 -0
  384. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.dc8afdf1.chunk.js.map +1 -0
  385. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.47518214.chunk.js +2 -0
  386. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.47518214.chunk.js.map +1 -0
  387. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.c0bcd6ce.chunk.js +2 -0
  388. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.c0bcd6ce.chunk.js.map +1 -0
  389. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.909f2a27.chunk.js +2 -0
  390. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.909f2a27.chunk.js.map +1 -0
  391. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.d84064e5.chunk.js +2 -0
  392. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.d84064e5.chunk.js.map +1 -0
  393. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.038504d0.chunk.js +2 -0
  394. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.038504d0.chunk.js.map +1 -0
  395. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.7e26e901.chunk.js +2 -0
  396. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.7e26e901.chunk.js.map +1 -0
  397. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.94075d6a.chunk.js +2 -0
  398. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.94075d6a.chunk.js.map +1 -0
  399. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.a4629d0a.chunk.js +2 -0
  400. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.a4629d0a.chunk.js.map +1 -0
  401. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.508b5846.chunk.js +2 -0
  402. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.508b5846.chunk.js.map +1 -0
  403. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.bb9cc730.chunk.js +2 -0
  404. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.bb9cc730.chunk.js.map +1 -0
  405. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.bec19089.chunk.js +2 -0
  406. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.bec19089.chunk.js.map +1 -0
  407. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.9bbc16eb.chunk.js +2 -0
  408. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.9bbc16eb.chunk.js.map +1 -0
  409. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.4fa5afdd.chunk.js +2 -0
  410. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.4fa5afdd.chunk.js.map +1 -0
  411. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.53da57ca.chunk.js +2 -0
  412. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.53da57ca.chunk.js.map +1 -0
  413. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.0e45c1cf.chunk.js +2 -0
  414. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.0e45c1cf.chunk.js.map +1 -0
  415. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.43421810.chunk.js +2 -0
  416. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.43421810.chunk.js.map +1 -0
  417. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.651dcc8d.chunk.js +2 -0
  418. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.651dcc8d.chunk.js.map +1 -0
  419. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.d69b1825.chunk.js +2 -0
  420. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.d69b1825.chunk.js.map +1 -0
  421. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.17155e77.chunk.js +2 -0
  422. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.17155e77.chunk.js.map +1 -0
  423. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.fe81a7fc.chunk.js +2 -0
  424. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.fe81a7fc.chunk.js.map +1 -0
  425. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.a431b2db.chunk.js +2 -0
  426. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.a431b2db.chunk.js.map +1 -0
  427. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.cde06cf5.chunk.js +2 -0
  428. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.cde06cf5.chunk.js.map +1 -0
  429. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.c5ac3a0a.chunk.js +2 -0
  430. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.c5ac3a0a.chunk.js.map +1 -0
  431. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.7d33a4a9.chunk.js +2 -0
  432. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.7d33a4a9.chunk.js.map +1 -0
  433. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.695a2547.chunk.js +2 -0
  434. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.695a2547.chunk.js.map +1 -0
  435. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.402e473f.chunk.js +2 -0
  436. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.402e473f.chunk.js.map +1 -0
  437. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.79af288c.chunk.js +2 -0
  438. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.79af288c.chunk.js.map +1 -0
  439. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.ecb04f2a.chunk.js +2 -0
  440. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.ecb04f2a.chunk.js.map +1 -0
  441. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.0f4ff415.chunk.js +2 -0
  442. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.0f4ff415.chunk.js.map +1 -0
  443. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.5cb0fdfc.chunk.js +2 -0
  444. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.5cb0fdfc.chunk.js.map +1 -0
  445. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.cf576f17.chunk.js +2 -0
  446. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.cf576f17.chunk.js.map +1 -0
  447. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.843d9bc4.chunk.js +2 -0
  448. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.843d9bc4.chunk.js.map +1 -0
  449. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.21c190ed.chunk.js +2 -0
  450. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.21c190ed.chunk.js.map +1 -0
  451. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.4703f4c5.chunk.js +2 -0
  452. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.4703f4c5.chunk.js.map +1 -0
  453. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.42eb54af.chunk.js +2 -0
  454. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.42eb54af.chunk.js.map +1 -0
  455. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.e32adbeb.chunk.js +2 -0
  456. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.e32adbeb.chunk.js.map +1 -0
  457. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.dea9db6c.chunk.js +2 -0
  458. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.dea9db6c.chunk.js.map +1 -0
  459. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.e82f126f.chunk.js +2 -0
  460. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.e82f126f.chunk.js.map +1 -0
  461. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.217c56f0.chunk.js +2 -0
  462. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.217c56f0.chunk.js.map +1 -0
  463. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.7cff3cbb.chunk.js +2 -0
  464. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.7cff3cbb.chunk.js.map +1 -0
  465. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.ee14d6a4.chunk.js +2 -0
  466. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.ee14d6a4.chunk.js.map +1 -0
  467. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.353780d4.chunk.js +2 -0
  468. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.353780d4.chunk.js.map +1 -0
  469. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.2aae489e.chunk.js +2 -0
  470. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.2aae489e.chunk.js.map +1 -0
  471. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.fc94a148.chunk.js +2 -0
  472. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.fc94a148.chunk.js.map +1 -0
  473. package/package.json +7 -3
@@ -1 +1 @@
1
- {"version":3,"file":"EditAPIProductDialog.esm.js","sources":["../../../src/components/EditAPIProductDialog/EditAPIProductDialog.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n TextField,\n Box,\n Typography,\n Chip,\n Grid,\n MenuItem,\n} from '@material-ui/core';\nimport { useApi, configApiRef, fetchApiRef } from '@backstage/core-plugin-api';\nimport { Alert } from '@material-ui/lab';\nimport { Progress } from '@backstage/core-components';\n\ninterface EditAPIProductDialogProps {\n open: boolean;\n onClose: () => void;\n onSuccess: () => void;\n namespace: string;\n name: string;\n}\n\nexport const EditAPIProductDialog = ({open, onClose, onSuccess, namespace, name}: EditAPIProductDialogProps) => {\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [loading, setLoading] = useState(false);\n const [displayName, setDisplayName] = useState('');\n const [description, setDescription] = useState('');\n const [version, setVersion] = useState('v1');\n const [publishStatus, setPublishStatus] = useState<'Draft' | 'Published'>('Draft');\n const [approvalMode, setApprovalMode] = useState<'automatic' | 'manual'>('manual');\n const [tags, setTags] = useState<string[]>([]);\n const [targetRef, setTargetRef] = useState<any>(null);\n const [tagInput, setTagInput] = useState('');\n const [contactEmail, setContactEmail] = useState('');\n const [contactTeam, setContactTeam] = useState('');\n const [docsURL, setDocsURL] = useState('');\n const [openAPISpec, setOpenAPISpec] = useState('');\n const [error, setError] = useState('');\n const [saving, setSaving] = useState(false);\n\n // Load APIProduct data when dialog opens\n useEffect(() => {\n if (open && namespace && name) {\n setLoading(true);\n setError('');\n\n fetchApi.fetch(`${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`)\n .then(res => res.json())\n .then(data => {\n setDisplayName(data.spec.displayName || '');\n setDescription(data.spec.description || '');\n setVersion(data.spec.version || 'v1');\n setPublishStatus(data.spec.publishStatus || 'Draft');\n setApprovalMode(data.spec.approvalMode || 'manual');\n setTags(data.spec.tags || []);\n setTargetRef(data.spec.targetRef || null);\n setContactEmail(data.spec.contact?.email || '');\n setContactTeam(data.spec.contact?.team || '');\n setDocsURL(data.spec.documentation?.docsURL || '');\n setOpenAPISpec(data.spec.documentation?.openAPISpec || '');\n setLoading(false);\n })\n .catch(err => {\n setError(err.message || 'Failed to load API Product');\n setLoading(false);\n });\n }\n }, [open, namespace, name, backendUrl, fetchApi]);\n\n const handleAddTag = () => {\n if (tagInput.trim() && !tags.includes(tagInput.trim())) {\n setTags([...tags, tagInput.trim()]);\n setTagInput('');\n }\n };\n\n const handleDeleteTag = (tagToDelete: string) => {\n setTags(tags.filter(tag => tag !== tagToDelete));\n };\n\n const handleSave = async () => {\n setError('');\n setSaving(true);\n\n try {\n const patch = {\n spec: {\n displayName,\n description,\n version,\n publishStatus,\n approvalMode,\n tags,\n targetRef,\n ...(contactEmail || contactTeam ? {\n contact: {\n ...(contactEmail && { email: contactEmail }),\n ...(contactTeam && { team: contactTeam }),\n },\n } : {}),\n ...(docsURL || openAPISpec ? {\n documentation: {\n ...(docsURL && { docsURL }),\n ...(openAPISpec && { openAPISpec }),\n },\n } : {}),\n },\n };\n\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(patch),\n }\n );\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'failed to update apiproduct');\n }\n\n onSuccess();\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"md\" fullWidth>\n <DialogTitle>Edit API Product</DialogTitle>\n <DialogContent>\n {error && (\n <Alert severity=\"error\" style={{ marginBottom: 16 }}>\n {error}\n </Alert>\n )}\n\n {loading ? (\n <Progress />\n ) : (\n <Grid container spacing={2}>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Name\"\n value={name}\n disabled\n helperText=\"Kubernetes resource name (immutable)\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Namespace\"\n value={namespace}\n disabled\n helperText=\"Kubernetes namespace (immutable)\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Display Name\"\n value={displayName}\n onChange={e => setDisplayName(e.target.value)}\n placeholder=\"My API\"\n margin=\"normal\"\n required\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Version\"\n value={version}\n onChange={e => setVersion(e.target.value)}\n placeholder=\"v1\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n select\n label=\"Publish Status\"\n value={publishStatus}\n onChange={e => setPublishStatus(e.target.value as 'Draft' | 'Published')}\n margin=\"normal\"\n helperText=\"Draft: Hidden from catalog. Published: Visible in catalog.\"\n >\n <MenuItem value=\"Draft\">Draft (Hidden)</MenuItem>\n <MenuItem value=\"Published\">Published (Visible)</MenuItem>\n </TextField>\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n select\n label=\"Approval Mode\"\n value={approvalMode}\n onChange={e => setApprovalMode(e.target.value as 'automatic' | 'manual')}\n margin=\"normal\"\n helperText=\"Automatic: keys created immediately. Manual: requires approval.\"\n >\n <MenuItem value=\"manual\">Manual</MenuItem>\n <MenuItem value=\"automatic\">Automatic</MenuItem>\n </TextField>\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"Description\"\n value={description}\n onChange={e => setDescription(e.target.value)}\n placeholder=\"API description\"\n margin=\"normal\"\n multiline\n rows={2}\n required\n />\n </Grid>\n\n <Grid item xs={12}>\n <Typography variant=\"subtitle2\" gutterBottom style={{ marginTop: 16 }}>\n Tags\n </Typography>\n <Box display=\"flex\" flexWrap=\"wrap\" marginBottom={1} style={{ gap: 8 }}>\n {tags.map(tag => (\n <Chip\n key={tag}\n label={tag}\n onDelete={() => handleDeleteTag(tag)}\n size=\"small\"\n />\n ))}\n </Box>\n <Box display=\"flex\" style={{ gap: 8 }}>\n <TextField\n fullWidth\n size=\"small\"\n value={tagInput}\n onChange={e => setTagInput(e.target.value)}\n onKeyPress={e => e.key === 'Enter' && handleAddTag()}\n placeholder=\"Add tag\"\n />\n <Button onClick={handleAddTag} variant=\"outlined\" size=\"small\">\n Add\n </Button>\n </Box>\n </Grid>\n\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Contact Email\"\n value={contactEmail}\n onChange={e => setContactEmail(e.target.value)}\n placeholder=\"api-team@example.com\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Contact Team\"\n value={contactTeam}\n onChange={e => setContactTeam(e.target.value)}\n placeholder=\"platform-team\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Docs URL\"\n value={docsURL}\n onChange={e => setDocsURL(e.target.value)}\n placeholder=\"https://api.example.com/docs\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"OpenAPI Spec URL\"\n value={openAPISpec}\n onChange={e => setOpenAPISpec(e.target.value)}\n placeholder=\"https://api.example.com/openapi.json\"\n margin=\"normal\"\n />\n </Grid>\n </Grid>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose}>Cancel</Button>\n <Button\n onClick={handleSave}\n color=\"primary\"\n variant=\"contained\"\n disabled={saving || loading || !displayName || !description}\n >\n {saving ? 'Saving...' : 'Save'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditAPIProductDialog.esm.js","sources":["../../../src/components/EditAPIProductDialog/EditAPIProductDialog.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n TextField,\n Box,\n Typography,\n Chip,\n Grid,\n MenuItem,\n makeStyles,\n} from '@material-ui/core';\nimport { useApi, configApiRef, fetchApiRef } from '@backstage/core-plugin-api';\nimport { Alert } from '@material-ui/lab';\nimport { Progress } from '@backstage/core-components';\n\nconst useStyles = makeStyles({\n asterisk: {\n color: '#f44336',\n },\n});\n\ninterface EditAPIProductDialogProps {\n open: boolean;\n onClose: () => void;\n onSuccess: () => void;\n namespace: string;\n name: string;\n}\n\nexport const EditAPIProductDialog = ({open, onClose, onSuccess, namespace, name}: EditAPIProductDialogProps) => {\n const classes = useStyles();\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [loading, setLoading] = useState(false);\n const [displayName, setDisplayName] = useState('');\n const [description, setDescription] = useState('');\n const [version, setVersion] = useState('v1');\n const [publishStatus, setPublishStatus] = useState<'Draft' | 'Published'>('Draft');\n const [approvalMode, setApprovalMode] = useState<'automatic' | 'manual'>('manual');\n const [tags, setTags] = useState<string[]>([]);\n const [targetRef, setTargetRef] = useState<any>(null);\n const [tagInput, setTagInput] = useState('');\n const [contactEmail, setContactEmail] = useState('');\n const [contactTeam, setContactTeam] = useState('');\n const [docsURL, setDocsURL] = useState('');\n const [openAPISpec, setOpenAPISpec] = useState('');\n const [error, setError] = useState('');\n const [saving, setSaving] = useState(false);\n\n // Load APIProduct data when dialog opens\n useEffect(() => {\n if (open && namespace && name) {\n setLoading(true);\n setError('');\n\n fetchApi.fetch(`${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`)\n .then(res => res.json())\n .then(data => {\n setDisplayName(data.spec.displayName || '');\n setDescription(data.spec.description || '');\n setVersion(data.spec.version || 'v1');\n setPublishStatus(data.spec.publishStatus || 'Draft');\n setApprovalMode(data.spec.approvalMode || 'manual');\n setTags(data.spec.tags || []);\n setTargetRef(data.spec.targetRef || null);\n setContactEmail(data.spec.contact?.email || '');\n setContactTeam(data.spec.contact?.team || '');\n setDocsURL(data.spec.documentation?.docsURL || '');\n setOpenAPISpec(data.spec.documentation?.openAPISpec || '');\n setLoading(false);\n })\n .catch(err => {\n setError(err.message || 'Failed to load API Product');\n setLoading(false);\n });\n }\n }, [open, namespace, name, backendUrl, fetchApi]);\n\n const handleAddTag = () => {\n if (tagInput.trim() && !tags.includes(tagInput.trim())) {\n setTags([...tags, tagInput.trim()]);\n setTagInput('');\n }\n };\n\n const handleDeleteTag = (tagToDelete: string) => {\n setTags(tags.filter(tag => tag !== tagToDelete));\n };\n\n const handleSave = async () => {\n setError('');\n setSaving(true);\n\n try {\n const patch = {\n spec: {\n displayName,\n description,\n version,\n publishStatus,\n approvalMode,\n tags,\n targetRef,\n ...(contactEmail || contactTeam ? {\n contact: {\n ...(contactEmail && { email: contactEmail }),\n ...(contactTeam && { team: contactTeam }),\n },\n } : {}),\n ...(docsURL || openAPISpec ? {\n documentation: {\n ...(docsURL && { docsURL }),\n ...(openAPISpec && { openAPISpec }),\n },\n } : {}),\n },\n };\n\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(patch),\n }\n );\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'failed to update apiproduct');\n }\n\n onSuccess();\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"md\" fullWidth>\n <DialogTitle>Edit API Product</DialogTitle>\n <DialogContent>\n {error && (\n <Alert severity=\"error\" style={{ marginBottom: 16 }}>\n {error}\n </Alert>\n )}\n\n {loading ? (\n <Progress />\n ) : (\n <Grid container spacing={2}>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Name\"\n value={name}\n disabled\n helperText=\"Kubernetes resource name (immutable)\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Namespace\"\n value={namespace}\n disabled\n helperText=\"Derived from HTTPRoute (immutable)\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Display Name\"\n value={displayName}\n onChange={e => setDisplayName(e.target.value)}\n placeholder=\"My API\"\n margin=\"normal\"\n required\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Version\"\n value={version}\n onChange={e => setVersion(e.target.value)}\n placeholder=\"v1\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n select\n label=\"Publish Status\"\n value={publishStatus}\n onChange={e => setPublishStatus(e.target.value as 'Draft' | 'Published')}\n margin=\"normal\"\n helperText=\"Draft: Hidden from catalog. Published: Visible in catalog.\"\n >\n <MenuItem value=\"Draft\">Draft (Hidden)</MenuItem>\n <MenuItem value=\"Published\">Published (Visible)</MenuItem>\n </TextField>\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n select\n label=\"Approval Mode\"\n value={approvalMode}\n onChange={e => setApprovalMode(e.target.value as 'automatic' | 'manual')}\n margin=\"normal\"\n helperText=\"Automatic: keys created immediately. Manual: requires approval.\"\n >\n <MenuItem value=\"manual\">Manual</MenuItem>\n <MenuItem value=\"automatic\">Automatic</MenuItem>\n </TextField>\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"Description\"\n value={description}\n onChange={e => setDescription(e.target.value)}\n placeholder=\"API description\"\n margin=\"normal\"\n multiline\n rows={2}\n required\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n\n <Grid item xs={12}>\n <Typography variant=\"subtitle2\" gutterBottom style={{ marginTop: 16 }}>\n Tags\n </Typography>\n <Box display=\"flex\" flexWrap=\"wrap\" marginBottom={1} style={{ gap: 8 }}>\n {tags.map(tag => (\n <Chip\n key={tag}\n label={tag}\n onDelete={() => handleDeleteTag(tag)}\n size=\"small\"\n />\n ))}\n </Box>\n <Box display=\"flex\" style={{ gap: 8 }}>\n <TextField\n fullWidth\n size=\"small\"\n value={tagInput}\n onChange={e => setTagInput(e.target.value)}\n onKeyPress={e => e.key === 'Enter' && handleAddTag()}\n placeholder=\"Add tag\"\n />\n <Button onClick={handleAddTag} variant=\"outlined\" size=\"small\">\n Add\n </Button>\n </Box>\n </Grid>\n\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Contact Email\"\n value={contactEmail}\n onChange={e => setContactEmail(e.target.value)}\n placeholder=\"api-team@example.com\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Contact Team\"\n value={contactTeam}\n onChange={e => setContactTeam(e.target.value)}\n placeholder=\"platform-team\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Docs URL\"\n value={docsURL}\n onChange={e => setDocsURL(e.target.value)}\n placeholder=\"https://api.example.com/docs\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"OpenAPI Spec URL\"\n value={openAPISpec}\n onChange={e => setOpenAPISpec(e.target.value)}\n placeholder=\"https://api.example.com/openapi.json\"\n margin=\"normal\"\n />\n </Grid>\n </Grid>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose}>Cancel</Button>\n <Button\n onClick={handleSave}\n color=\"primary\"\n variant=\"contained\"\n disabled={saving || loading || !displayName || !description}\n >\n {saving ? 'Saving...' : 'Save'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import React, { useState } from 'react';
2
- import { Box, Button, Typography, Grid, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Chip, IconButton } from '@material-ui/core';
2
+ import { Box, Typography, Grid, Button, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Chip, IconButton } from '@material-ui/core';
3
3
  import AddIcon from '@material-ui/icons/Add';
4
4
  import DeleteIcon from '@material-ui/icons/Delete';
5
5
  import EditIcon from '@material-ui/icons/Edit';
6
- import { Page, Header, SupportButton, Content, ContentHeader, Progress, ResponseErrorPanel, InfoCard, Table, Link } from '@backstage/core-components';
6
+ import { Page, Header, SupportButton, Content, Progress, ResponseErrorPanel, InfoCard, Table, Link } from '@backstage/core-components';
7
7
  import useAsync from 'react-use/lib/useAsync';
8
8
  import { useApi, configApiRef, fetchApiRef } from '@backstage/core-plugin-api';
9
9
  import { ApprovalQueueCard } from '../ApprovalQueueCard/ApprovalQueueCard.esm.js';
10
+ import { MyApiKeysCard } from '../MyApiKeysCard/MyApiKeysCard.esm.js';
10
11
  import { PermissionGate } from '../PermissionGate/PermissionGate.esm.js';
11
12
  import { CreateAPIProductDialog } from '../CreateAPIProductDialog/CreateAPIProductDialog.esm.js';
12
13
  import { kuadrantApiProductListPermission, kuadrantApiProductCreatePermission, kuadrantApiKeyRequestReadAllPermission, kuadrantApiProductDeletePermission, kuadrantApiProductUpdatePermission, kuadrantPlanPolicyListPermission } from '../../permissions.esm.js';
@@ -207,16 +208,24 @@ const ResourceList = () => {
207
208
  }
208
209
  );
209
210
  };
210
- return /* @__PURE__ */ React.createElement(Page, { themeId: "tool" }, /* @__PURE__ */ React.createElement(Header, { title: "Kuadrant", subtitle: "API Management for Kubernetes" }, /* @__PURE__ */ React.createElement(SupportButton, null, "Manage API products and access requests")), /* @__PURE__ */ React.createElement(Content, null, /* @__PURE__ */ React.createElement(ContentHeader, { title: "API Products" }, /* @__PURE__ */ React.createElement(Box, { display: "flex", alignItems: "center", style: { gap: 16 } }, canCreateApiProduct && /* @__PURE__ */ React.createElement(
211
- Button,
211
+ return /* @__PURE__ */ React.createElement(Page, { themeId: "tool" }, /* @__PURE__ */ React.createElement(Header, { title: "Kuadrant", subtitle: "API management for Kubernetes" }, /* @__PURE__ */ React.createElement(SupportButton, null, "Manage API products and access requests")), /* @__PURE__ */ React.createElement(Content, null, loading && /* @__PURE__ */ React.createElement(Progress, null), error && /* @__PURE__ */ React.createElement(ResponseErrorPanel, { error }), permissionError && /* @__PURE__ */ React.createElement(Box, { p: 2 }, /* @__PURE__ */ React.createElement(Typography, { color: "error" }, "unable to check permissions: ", permissionError.message), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "textSecondary" }, "permission: ", createPermissionError ? "kuadrant.apiproduct.create" : deletePermissionError ? "kuadrant.apiproduct.delete" : approvalQueuePermissionError ? "kuadrant.apikeyrequest.read.all" : planPolicyPermissionError ? "kuadrant.planpolicy.list" : "unknown"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "textSecondary" }, "please try again or contact your administrator")), !loading && !error && !permissionError && /* @__PURE__ */ React.createElement(Grid, { container: true, spacing: 3, direction: "column" }, /* @__PURE__ */ React.createElement(Grid, { item: true }, /* @__PURE__ */ React.createElement(MyApiKeysCard, null)), /* @__PURE__ */ React.createElement(Grid, { item: true }, /* @__PURE__ */ React.createElement(
212
+ InfoCard,
212
213
  {
213
- variant: "contained",
214
- color: "primary",
215
- startIcon: /* @__PURE__ */ React.createElement(AddIcon, null),
216
- onClick: () => setCreateDialogOpen(true)
214
+ title: "API Products",
215
+ action: canCreateApiProduct ? /* @__PURE__ */ React.createElement(Box, { display: "flex", alignItems: "center", height: "100%", mt: 1 }, /* @__PURE__ */ React.createElement(
216
+ Button,
217
+ {
218
+ variant: "contained",
219
+ color: "primary",
220
+ size: "small",
221
+ startIcon: /* @__PURE__ */ React.createElement(AddIcon, null),
222
+ onClick: () => setCreateDialogOpen(true)
223
+ },
224
+ "Create API Product"
225
+ )) : undefined
217
226
  },
218
- "Create API Product"
219
- ))), loading && /* @__PURE__ */ React.createElement(Progress, null), error && /* @__PURE__ */ React.createElement(ResponseErrorPanel, { error }), permissionError && /* @__PURE__ */ React.createElement(Box, { p: 2 }, /* @__PURE__ */ React.createElement(Typography, { color: "error" }, "Unable to check permissions: ", permissionError.message), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "textSecondary" }, "Permission: ", createPermissionError ? "kuadrant.apiproduct.create" : deletePermissionError ? "kuadrant.apiproduct.delete" : approvalQueuePermissionError ? "kuadrant.apikeyrequest.read.all" : planPolicyPermissionError ? "kuadrant.planpolicy.list" : "unknown"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "textSecondary" }, "Please try again or contact your administrator")), !loading && !error && !permissionError && /* @__PURE__ */ React.createElement(Grid, { container: true, spacing: 3, direction: "column" }, /* @__PURE__ */ React.createElement(Grid, { item: true }, /* @__PURE__ */ React.createElement(InfoCard, { title: "API Products" }, renderResources(apiProducts?.items))), canListPlanPolicies && /* @__PURE__ */ React.createElement(Grid, { item: true }, /* @__PURE__ */ React.createElement(InfoCard, { title: "Plan Policies" }, renderPlanPolicies(planPolicies?.items))), canViewApprovalQueue && /* @__PURE__ */ React.createElement(Grid, { item: true }, /* @__PURE__ */ React.createElement(ApprovalQueueCard, null))), /* @__PURE__ */ React.createElement(
227
+ renderResources(apiProducts?.items)
228
+ )), canListPlanPolicies && /* @__PURE__ */ React.createElement(Grid, { item: true }, /* @__PURE__ */ React.createElement(InfoCard, { title: "Plan Policies" }, renderPlanPolicies(planPolicies?.items))), canViewApprovalQueue && /* @__PURE__ */ React.createElement(Grid, { item: true }, /* @__PURE__ */ React.createElement(ApprovalQueueCard, null))), /* @__PURE__ */ React.createElement(
220
229
  CreateAPIProductDialog,
221
230
  {
222
231
  open: createDialogOpen,
@@ -1 +1 @@
1
- {"version":3,"file":"KuadrantPage.esm.js","sources":["../../../src/components/KuadrantPage/KuadrantPage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Typography, Grid, Box, Chip, Button, IconButton, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions } from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport {\n InfoCard,\n Header,\n Page,\n Content,\n ContentHeader,\n SupportButton,\n Progress,\n ResponseErrorPanel,\n Link,\n Table,\n TableColumn,\n} from '@backstage/core-components';\nimport useAsync from 'react-use/lib/useAsync';\nimport { useApi, configApiRef, fetchApiRef } from '@backstage/core-plugin-api';\nimport { ApprovalQueueCard } from '../ApprovalQueueCard';\nimport { PermissionGate } from '../PermissionGate';\nimport { CreateAPIProductDialog } from '../CreateAPIProductDialog';\nimport {\n kuadrantApiProductCreatePermission,\n kuadrantApiProductDeletePermission,\n kuadrantApiProductUpdatePermission,\n kuadrantApiProductListPermission,\n kuadrantApiKeyRequestReadAllPermission,\n kuadrantPlanPolicyListPermission,\n} from '../../permissions';\nimport { useKuadrantPermission } from '../../utils/permissions';\nimport { EditAPIProductDialog } from '../EditAPIProductDialog';\n\ntype KuadrantResource = {\n metadata: {\n name: string;\n namespace: string;\n creationTimestamp: string;\n };\n spec?: any;\n};\n\ntype KuadrantList = {\n items: KuadrantResource[];\n};\n\nexport const ResourceList = () => {\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [createDialogOpen, setCreateDialogOpen] = useState(false);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [refreshTrigger, setRefreshTrigger] = useState(0);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [apiProductToDelete, setApiProductToDelete] = useState<{ namespace: string; name: string } | null>(null);\n const [apiProductToEdit, setApiProductToEdit] = useState<{ namespace: string; name: string } | null>(null);\n const [deleting, setDeleting] = useState(false);\n\n const {\n allowed: canCreateApiProduct,\n loading: createPermissionLoading,\n error: createPermissionError,\n } = useKuadrantPermission(kuadrantApiProductCreatePermission);\n\n const {\n allowed: canViewApprovalQueue,\n loading: approvalQueuePermissionLoading,\n error: approvalQueuePermissionError,\n } = useKuadrantPermission(kuadrantApiKeyRequestReadAllPermission);\n\n const {\n allowed: canDeleteApiProduct,\n loading: deletePermissionLoading,\n error: deletePermissionError,\n } = useKuadrantPermission(kuadrantApiProductDeletePermission);\n\n const {\n allowed: canUpdateApiProduct,\n } = useKuadrantPermission(kuadrantApiProductUpdatePermission);\n\n const {\n allowed: canListPlanPolicies,\n loading: planPolicyPermissionLoading,\n error: planPolicyPermissionError,\n } = useKuadrantPermission(kuadrantPlanPolicyListPermission);\n\n const { value: apiProducts, loading: apiProductsLoading, error: apiProductsError } = useAsync(async (): Promise<KuadrantList> => {\n const response = await fetchApi.fetch(`${backendUrl}/api/kuadrant/apiproducts`);\n return await response.json();\n }, [backendUrl, fetchApi, refreshTrigger]);\n\n const { value: planPolicies, loading: planPoliciesLoading, error: planPoliciesError } = useAsync(async (): Promise<KuadrantList> => {\n const response = await fetchApi.fetch(`${backendUrl}/api/kuadrant/planpolicies`);\n return await response.json();\n }, [backendUrl, fetchApi, refreshTrigger]);\n\n const loading = apiProductsLoading || planPoliciesLoading || createPermissionLoading || approvalQueuePermissionLoading || deletePermissionLoading || planPolicyPermissionLoading;\n const error = apiProductsError || planPoliciesError;\n const permissionError = createPermissionError || approvalQueuePermissionError || deletePermissionError || planPolicyPermissionError;\n\n const handleCreateSuccess = () => {\n setRefreshTrigger(prev => prev + 1);\n };\n\n const handleEditClick = (namespace: string, name: string) => {\n setApiProductToEdit({ namespace, name });\n setEditDialogOpen(true);\n };\n\n const handleEditSuccess = () => {\n setRefreshTrigger(prev => prev + 1);\n };\n\n const handleDeleteClick = (namespace: string, name: string) => {\n setApiProductToDelete({ namespace, name });\n setDeleteDialogOpen(true);\n };\n\n const handleDeleteConfirm = async () => {\n if (!apiProductToDelete) return;\n\n setDeleting(true);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${apiProductToDelete.namespace}/${apiProductToDelete.name}`,\n { method: 'DELETE' }\n );\n\n if (!response.ok) {\n throw new Error('failed to delete apiproduct');\n }\n\n setRefreshTrigger(prev => prev + 1);\n } catch (err) {\n console.error('error deleting apiproduct:', err);\n } finally {\n setDeleting(false);\n setDeleteDialogOpen(false);\n setApiProductToDelete(null);\n }\n };\n\n const handleDeleteCancel = () => {\n setDeleteDialogOpen(false);\n setApiProductToDelete(null);\n };\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 });\n };\n\n const columns: TableColumn[] = [\n {\n title: 'Name',\n field: 'name',\n render: (row: any) => (\n <Link to={`/catalog/default/api/${row.metadata.name}/api-product`}>\n <strong>{row.spec?.displayName || row.metadata.name}</strong>\n </Link>\n ),\n },\n {\n title: 'Resource Name',\n field: 'metadata.name',\n },\n {\n title: 'Version',\n field: 'spec.version',\n render: (row: any) => row.spec?.version || '-',\n },\n {\n title: 'HTTPRoute',\n field: 'spec.targetRef.name',\n render: (row: any) => row.spec?.targetRef?.name || '-',\n },\n {\n title: 'Publish Status',\n field: 'spec.publishStatus',\n render: (row: any) => {\n const status = row.spec?.publishStatus || 'Draft';\n return (\n <Chip \n label={status} \n size=\"small\" \n color={status === 'Published' ? 'primary' : 'default'}\n />\n );\n },\n },\n {\n title: 'Namespace',\n field: 'metadata.namespace',\n },\n {\n title: 'Created',\n field: 'metadata.creationTimestamp',\n render: (row: any) => formatDate(row.metadata.creationTimestamp),\n },\n {\n title: 'Actions',\n field: 'actions',\n render: (row: any) => (\n <Box display=\"flex\" style={{ gap: 4 }}>\n {canUpdateApiProduct && (\n <IconButton\n size=\"small\"\n onClick={() => handleEditClick(row.metadata.namespace, row.metadata.name)}\n title=\"Edit API Product\"\n >\n <EditIcon fontSize=\"small\" />\n </IconButton>\n )}\n \n {canDeleteApiProduct && (\n <IconButton\n size=\"small\"\n onClick={() => handleDeleteClick(row.metadata.namespace, row.metadata.name)}\n title=\"Delete API Product\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n ),\n },\n ];\n\n const planPolicyColumns: TableColumn[] = [\n {\n title: 'Name',\n field: 'metadata.name',\n render: (row: any) => (\n <Link to={`/kuadrant/planpolicy/${row.metadata.namespace}/${row.metadata.name}`}>\n <strong>{row.metadata.name}</strong>\n </Link>\n ),\n },\n {\n title: 'Namespace',\n field: 'metadata.namespace',\n },\n ];\n\n const renderResources = (resources: KuadrantResource[] | undefined) => {\n if (!resources || resources.length === 0) {\n return <Typography variant=\"body2\" color=\"textSecondary\">No API products found</Typography>;\n }\n return (\n <Table\n options={{ paging: false, search: false, toolbar: false }}\n columns={columns}\n data={resources}\n />\n );\n };\n\n const renderPlanPolicies = (resources: KuadrantResource[] | undefined) => {\n if (!resources || resources.length === 0) {\n return <Typography variant=\"body2\" color=\"textSecondary\">No plan policies found</Typography>;\n }\n return (\n <Table\n options={{ paging: false, search: false, toolbar: false }}\n columns={planPolicyColumns}\n data={resources}\n />\n );\n };\n\n return (\n <Page themeId=\"tool\">\n <Header title=\"Kuadrant\" subtitle=\"API Management for Kubernetes\">\n <SupportButton>Manage API products and access requests</SupportButton>\n </Header>\n <Content>\n <ContentHeader title=\"API Products\">\n <Box display=\"flex\" alignItems=\"center\" style={{ gap: 16 }}>\n {canCreateApiProduct && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n startIcon={<AddIcon />}\n onClick={() => setCreateDialogOpen(true)}\n >\n Create API Product\n </Button>\n )}\n </Box>\n </ContentHeader>\n {loading && <Progress />}\n {error && <ResponseErrorPanel error={error} />}\n {permissionError && (\n <Box p={2}>\n <Typography color=\"error\">\n Unable to check permissions: {permissionError.message}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Permission: {createPermissionError ? 'kuadrant.apiproduct.create' :\n deletePermissionError ? 'kuadrant.apiproduct.delete' :\n approvalQueuePermissionError ? 'kuadrant.apikeyrequest.read.all' :\n planPolicyPermissionError ? 'kuadrant.planpolicy.list' : 'unknown'}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Please try again or contact your administrator\n </Typography>\n </Box>\n )}\n {!loading && !error && !permissionError && (\n <Grid container spacing={3} direction=\"column\">\n <Grid item>\n <InfoCard title=\"API Products\">\n {renderResources(apiProducts?.items)}\n </InfoCard>\n </Grid>\n\n {canListPlanPolicies && (\n <Grid item>\n <InfoCard title=\"Plan Policies\">\n {renderPlanPolicies(planPolicies?.items)}\n </InfoCard>\n </Grid>\n )}\n\n {canViewApprovalQueue && (\n <Grid item>\n <ApprovalQueueCard />\n </Grid>\n )}\n </Grid>\n )}\n <CreateAPIProductDialog\n open={createDialogOpen}\n onClose={() => setCreateDialogOpen(false)}\n onSuccess={handleCreateSuccess}\n />\n <EditAPIProductDialog\n open={editDialogOpen}\n onClose={() => setEditDialogOpen(false)}\n onSuccess={handleEditSuccess}\n namespace={apiProductToEdit?.namespace || ''}\n name={apiProductToEdit?.name || ''}\n />\n <Dialog open={deleteDialogOpen} onClose={handleDeleteCancel}>\n <DialogTitle>Delete API Product</DialogTitle>\n <DialogContent>\n <DialogContentText>\n Are you sure you want to delete {apiProductToDelete?.name} from namespace {apiProductToDelete?.namespace}?\n This will permanently remove the API Product from Kubernetes.\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={handleDeleteCancel} color=\"primary\">\n Cancel\n </Button>\n <Button onClick={handleDeleteConfirm} color=\"secondary\" disabled={deleting}>\n {deleting ? 'Deleting...' : 'Delete'}\n </Button>\n </DialogActions>\n </Dialog>\n </Content>\n </Page>\n );\n};\n\nexport const KuadrantPage = () => {\n return (\n <PermissionGate\n permission={kuadrantApiProductListPermission}\n errorMessage=\"you don't have permission to view the Kuadrant page\"\n >\n <ResourceList />\n </PermissionGate>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KuadrantPage.esm.js","sources":["../../../src/components/KuadrantPage/KuadrantPage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Typography, Grid, Box, Chip, Button, IconButton, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions } from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport {\n InfoCard,\n Header,\n Page,\n Content,\n SupportButton,\n Progress,\n ResponseErrorPanel,\n Link,\n Table,\n TableColumn,\n} from '@backstage/core-components';\nimport useAsync from 'react-use/lib/useAsync';\nimport { useApi, configApiRef, fetchApiRef } from '@backstage/core-plugin-api';\nimport { ApprovalQueueCard } from '../ApprovalQueueCard';\nimport { MyApiKeysCard } from '../MyApiKeysCard';\nimport { PermissionGate } from '../PermissionGate';\nimport { CreateAPIProductDialog } from '../CreateAPIProductDialog';\nimport {\n kuadrantApiProductCreatePermission,\n kuadrantApiProductDeletePermission,\n kuadrantApiProductUpdatePermission,\n kuadrantApiProductListPermission,\n kuadrantApiKeyRequestReadAllPermission,\n kuadrantPlanPolicyListPermission,\n} from '../../permissions';\nimport { useKuadrantPermission } from '../../utils/permissions';\nimport { EditAPIProductDialog } from '../EditAPIProductDialog';\n\ntype KuadrantResource = {\n metadata: {\n name: string;\n namespace: string;\n creationTimestamp: string;\n };\n spec?: any;\n};\n\ntype KuadrantList = {\n items: KuadrantResource[];\n};\n\nexport const ResourceList = () => {\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [createDialogOpen, setCreateDialogOpen] = useState(false);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [refreshTrigger, setRefreshTrigger] = useState(0);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [apiProductToDelete, setApiProductToDelete] = useState<{ namespace: string; name: string } | null>(null);\n const [apiProductToEdit, setApiProductToEdit] = useState<{ namespace: string; name: string } | null>(null);\n const [deleting, setDeleting] = useState(false);\n\n const {\n allowed: canCreateApiProduct,\n loading: createPermissionLoading,\n error: createPermissionError,\n } = useKuadrantPermission(kuadrantApiProductCreatePermission);\n\n const {\n allowed: canViewApprovalQueue,\n loading: approvalQueuePermissionLoading,\n error: approvalQueuePermissionError,\n } = useKuadrantPermission(kuadrantApiKeyRequestReadAllPermission);\n\n const {\n allowed: canDeleteApiProduct,\n loading: deletePermissionLoading,\n error: deletePermissionError,\n } = useKuadrantPermission(kuadrantApiProductDeletePermission);\n\n const {\n allowed: canUpdateApiProduct,\n } = useKuadrantPermission(kuadrantApiProductUpdatePermission);\n\n const {\n allowed: canListPlanPolicies,\n loading: planPolicyPermissionLoading,\n error: planPolicyPermissionError,\n } = useKuadrantPermission(kuadrantPlanPolicyListPermission);\n\n const { value: apiProducts, loading: apiProductsLoading, error: apiProductsError } = useAsync(async (): Promise<KuadrantList> => {\n const response = await fetchApi.fetch(`${backendUrl}/api/kuadrant/apiproducts`);\n return await response.json();\n }, [backendUrl, fetchApi, refreshTrigger]);\n\n const { value: planPolicies, loading: planPoliciesLoading, error: planPoliciesError } = useAsync(async (): Promise<KuadrantList> => {\n const response = await fetchApi.fetch(`${backendUrl}/api/kuadrant/planpolicies`);\n return await response.json();\n }, [backendUrl, fetchApi, refreshTrigger]);\n\n const loading = apiProductsLoading || planPoliciesLoading || createPermissionLoading || approvalQueuePermissionLoading || deletePermissionLoading || planPolicyPermissionLoading;\n const error = apiProductsError || planPoliciesError;\n const permissionError = createPermissionError || approvalQueuePermissionError || deletePermissionError || planPolicyPermissionError;\n\n const handleCreateSuccess = () => {\n setRefreshTrigger(prev => prev + 1);\n };\n\n const handleEditClick = (namespace: string, name: string) => {\n setApiProductToEdit({ namespace, name });\n setEditDialogOpen(true);\n };\n\n const handleEditSuccess = () => {\n setRefreshTrigger(prev => prev + 1);\n };\n\n const handleDeleteClick = (namespace: string, name: string) => {\n setApiProductToDelete({ namespace, name });\n setDeleteDialogOpen(true);\n };\n\n const handleDeleteConfirm = async () => {\n if (!apiProductToDelete) return;\n\n setDeleting(true);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${apiProductToDelete.namespace}/${apiProductToDelete.name}`,\n { method: 'DELETE' }\n );\n\n if (!response.ok) {\n throw new Error('failed to delete apiproduct');\n }\n\n setRefreshTrigger(prev => prev + 1);\n } catch (err) {\n console.error('error deleting apiproduct:', err);\n } finally {\n setDeleting(false);\n setDeleteDialogOpen(false);\n setApiProductToDelete(null);\n }\n };\n\n const handleDeleteCancel = () => {\n setDeleteDialogOpen(false);\n setApiProductToDelete(null);\n };\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 });\n };\n\n const columns: TableColumn[] = [\n {\n title: 'Name',\n field: 'name',\n render: (row: any) => (\n <Link to={`/catalog/default/api/${row.metadata.name}/api-product`}>\n <strong>{row.spec?.displayName || row.metadata.name}</strong>\n </Link>\n ),\n },\n {\n title: 'Resource Name',\n field: 'metadata.name',\n },\n {\n title: 'Version',\n field: 'spec.version',\n render: (row: any) => row.spec?.version || '-',\n },\n {\n title: 'HTTPRoute',\n field: 'spec.targetRef.name',\n render: (row: any) => row.spec?.targetRef?.name || '-',\n },\n {\n title: 'Publish Status',\n field: 'spec.publishStatus',\n render: (row: any) => {\n const status = row.spec?.publishStatus || 'Draft';\n return (\n <Chip \n label={status} \n size=\"small\" \n color={status === 'Published' ? 'primary' : 'default'}\n />\n );\n },\n },\n {\n title: 'Namespace',\n field: 'metadata.namespace',\n },\n {\n title: 'Created',\n field: 'metadata.creationTimestamp',\n render: (row: any) => formatDate(row.metadata.creationTimestamp),\n },\n {\n title: 'Actions',\n field: 'actions',\n render: (row: any) => (\n <Box display=\"flex\" style={{ gap: 4 }}>\n {canUpdateApiProduct && (\n <IconButton\n size=\"small\"\n onClick={() => handleEditClick(row.metadata.namespace, row.metadata.name)}\n title=\"Edit API Product\"\n >\n <EditIcon fontSize=\"small\" />\n </IconButton>\n )}\n \n {canDeleteApiProduct && (\n <IconButton\n size=\"small\"\n onClick={() => handleDeleteClick(row.metadata.namespace, row.metadata.name)}\n title=\"Delete API Product\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n ),\n },\n ];\n\n const planPolicyColumns: TableColumn[] = [\n {\n title: 'Name',\n field: 'metadata.name',\n render: (row: any) => (\n <Link to={`/kuadrant/planpolicy/${row.metadata.namespace}/${row.metadata.name}`}>\n <strong>{row.metadata.name}</strong>\n </Link>\n ),\n },\n {\n title: 'Namespace',\n field: 'metadata.namespace',\n },\n ];\n\n const renderResources = (resources: KuadrantResource[] | undefined) => {\n if (!resources || resources.length === 0) {\n return <Typography variant=\"body2\" color=\"textSecondary\">No API products found</Typography>;\n }\n return (\n <Table\n options={{ paging: false, search: false, toolbar: false }}\n columns={columns}\n data={resources}\n />\n );\n };\n\n const renderPlanPolicies = (resources: KuadrantResource[] | undefined) => {\n if (!resources || resources.length === 0) {\n return <Typography variant=\"body2\" color=\"textSecondary\">No plan policies found</Typography>;\n }\n return (\n <Table\n options={{ paging: false, search: false, toolbar: false }}\n columns={planPolicyColumns}\n data={resources}\n />\n );\n };\n\n return (\n <Page themeId=\"tool\">\n <Header title=\"Kuadrant\" subtitle=\"API management for Kubernetes\">\n <SupportButton>Manage API products and access requests</SupportButton>\n </Header>\n <Content>\n {loading && <Progress />}\n {error && <ResponseErrorPanel error={error} />}\n {permissionError && (\n <Box p={2}>\n <Typography color=\"error\">\n unable to check permissions: {permissionError.message}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n permission: {createPermissionError ? 'kuadrant.apiproduct.create' :\n deletePermissionError ? 'kuadrant.apiproduct.delete' :\n approvalQueuePermissionError ? 'kuadrant.apikeyrequest.read.all' :\n planPolicyPermissionError ? 'kuadrant.planpolicy.list' : 'unknown'}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n please try again or contact your administrator\n </Typography>\n </Box>\n )}\n {!loading && !error && !permissionError && (\n <Grid container spacing={3} direction=\"column\">\n <Grid item>\n <MyApiKeysCard />\n </Grid>\n\n <Grid item>\n <InfoCard\n title=\"API Products\"\n action={\n canCreateApiProduct ? (\n <Box display=\"flex\" alignItems=\"center\" height=\"100%\" mt={1}>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n startIcon={<AddIcon />}\n onClick={() => setCreateDialogOpen(true)}\n >\n Create API Product\n </Button>\n </Box>\n ) : undefined\n }\n >\n {renderResources(apiProducts?.items)}\n </InfoCard>\n </Grid>\n\n {canListPlanPolicies && (\n <Grid item>\n <InfoCard title=\"Plan Policies\">\n {renderPlanPolicies(planPolicies?.items)}\n </InfoCard>\n </Grid>\n )}\n\n {canViewApprovalQueue && (\n <Grid item>\n <ApprovalQueueCard />\n </Grid>\n )}\n </Grid>\n )}\n <CreateAPIProductDialog\n open={createDialogOpen}\n onClose={() => setCreateDialogOpen(false)}\n onSuccess={handleCreateSuccess}\n />\n <EditAPIProductDialog\n open={editDialogOpen}\n onClose={() => setEditDialogOpen(false)}\n onSuccess={handleEditSuccess}\n namespace={apiProductToEdit?.namespace || ''}\n name={apiProductToEdit?.name || ''}\n />\n <Dialog open={deleteDialogOpen} onClose={handleDeleteCancel}>\n <DialogTitle>Delete API Product</DialogTitle>\n <DialogContent>\n <DialogContentText>\n Are you sure you want to delete {apiProductToDelete?.name} from namespace {apiProductToDelete?.namespace}?\n This will permanently remove the API Product from Kubernetes.\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={handleDeleteCancel} color=\"primary\">\n Cancel\n </Button>\n <Button onClick={handleDeleteConfirm} color=\"secondary\" disabled={deleting}>\n {deleting ? 'Deleting...' : 'Delete'}\n </Button>\n </DialogActions>\n </Dialog>\n </Content>\n </Page>\n );\n};\n\nexport const KuadrantPage = () => {\n return (\n <PermissionGate\n permission={kuadrantApiProductListPermission}\n errorMessage=\"you don't have permission to view the Kuadrant page\"\n >\n <ResourceList />\n </PermissionGate>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import React, { useState } from 'react';
2
+ import { InfoCard, Table, Link } from '@backstage/core-components';
3
+ import { useApi, configApiRef, fetchApiRef, identityApiRef } from '@backstage/core-plugin-api';
4
+ import useAsync from 'react-use/lib/useAsync';
5
+ import { Typography, Box, Tabs, Tab, Chip, Tooltip, IconButton } from '@material-ui/core';
6
+ import VisibilityIcon from '@material-ui/icons/Visibility';
7
+ import VisibilityOffIcon from '@material-ui/icons/VisibilityOff';
8
+
9
+ const MyApiKeysCard = () => {
10
+ const config = useApi(configApiRef);
11
+ const fetchApi = useApi(fetchApiRef);
12
+ const identityApi = useApi(identityApiRef);
13
+ const backendUrl = config.getString("backend.baseUrl");
14
+ const [selectedTab, setSelectedTab] = useState(0);
15
+ const [, setUserId] = useState("");
16
+ const [visibleKeys, setVisibleKeys] = useState(/* @__PURE__ */ new Set());
17
+ useAsync(async () => {
18
+ const identity = await identityApi.getBackstageIdentity();
19
+ setUserId(identity.userEntityRef.split("/")[1] || "guest");
20
+ }, [identityApi]);
21
+ const { value: requests, loading, error } = useAsync(async () => {
22
+ const response = await fetchApi.fetch(
23
+ `${backendUrl}/api/kuadrant/requests/my`
24
+ );
25
+ if (!response.ok) {
26
+ throw new Error("failed to fetch requests");
27
+ }
28
+ const data = await response.json();
29
+ return data.items || [];
30
+ }, [backendUrl, fetchApi]);
31
+ if (loading) {
32
+ return /* @__PURE__ */ React.createElement(InfoCard, { title: "My API Keys" }, /* @__PURE__ */ React.createElement(Typography, null, "Loading..."));
33
+ }
34
+ if (error) {
35
+ return /* @__PURE__ */ React.createElement(InfoCard, { title: "My API Keys" }, /* @__PURE__ */ React.createElement(Typography, { color: "error" }, "Error loading API keys: ", error.message));
36
+ }
37
+ const allRequests = requests || [];
38
+ const approvedRequests = allRequests.filter((r) => r.status?.phase === "Approved");
39
+ const pendingRequests = allRequests.filter((r) => !r.status?.phase || r.status.phase === "Pending");
40
+ const rejectedRequests = allRequests.filter((r) => r.status?.phase === "Rejected");
41
+ const toggleKeyVisibility = (keyName) => {
42
+ setVisibleKeys((prev) => {
43
+ const newSet = new Set(prev);
44
+ if (newSet.has(keyName)) {
45
+ newSet.delete(keyName);
46
+ } else {
47
+ newSet.add(keyName);
48
+ }
49
+ return newSet;
50
+ });
51
+ };
52
+ const columns = [
53
+ {
54
+ title: "API Product",
55
+ field: "spec.apiName",
56
+ render: (row) => /* @__PURE__ */ React.createElement(Link, { to: `/catalog/default/api/${row.spec.apiName}/api-keys` }, /* @__PURE__ */ React.createElement("strong", null, row.spec.apiName))
57
+ },
58
+ {
59
+ title: "Plan",
60
+ field: "spec.planTier",
61
+ render: (row) => {
62
+ const color = row.spec.planTier === "gold" ? "primary" : row.spec.planTier === "silver" ? "default" : "secondary";
63
+ return /* @__PURE__ */ React.createElement(Chip, { label: row.spec.planTier, color, size: "small" });
64
+ }
65
+ },
66
+ {
67
+ title: "Use Case",
68
+ field: "spec.useCase",
69
+ render: (row) => {
70
+ return /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, row.spec.useCase || "-");
71
+ }
72
+ },
73
+ {
74
+ title: "Status",
75
+ field: "status.phase",
76
+ render: (row) => {
77
+ const phase = row.status?.phase || "Pending";
78
+ const color = phase === "Approved" ? "primary" : phase === "Rejected" ? "secondary" : "default";
79
+ return /* @__PURE__ */ React.createElement(Chip, { label: phase, color, size: "small" });
80
+ }
81
+ },
82
+ {
83
+ title: "Reason",
84
+ render: (row) => {
85
+ if (row.status?.phase === "Rejected" && row.status.reason) {
86
+ return /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "error" }, row.status.reason);
87
+ }
88
+ return /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "textSecondary" }, "-");
89
+ }
90
+ },
91
+ {
92
+ title: "Reviewed By",
93
+ render: (row) => {
94
+ if ((row.status?.phase === "Approved" || row.status?.phase === "Rejected") && row.status.reviewedBy) {
95
+ const reviewedDate = row.status.reviewedAt ? new Date(row.status.reviewedAt).toLocaleDateString() : "";
96
+ return /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, row.status.reviewedBy), reviewedDate && /* @__PURE__ */ React.createElement(Typography, { variant: "caption", color: "textSecondary" }, reviewedDate));
97
+ }
98
+ return /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "textSecondary" }, "-");
99
+ }
100
+ },
101
+ {
102
+ title: "API Key",
103
+ render: (row) => {
104
+ if (row.status?.phase === "Approved" && row.status.apiKey) {
105
+ const isVisible = visibleKeys.has(row.metadata.name);
106
+ return /* @__PURE__ */ React.createElement(Box, { display: "flex", alignItems: "center", style: { gap: 8 } }, /* @__PURE__ */ React.createElement(Box, { fontFamily: "monospace", fontSize: "0.875rem" }, isVisible ? row.status.apiKey : "\u2022".repeat(20) + "..."), /* @__PURE__ */ React.createElement(Tooltip, { title: isVisible ? "hide key" : "show key" }, /* @__PURE__ */ React.createElement(
107
+ IconButton,
108
+ {
109
+ size: "small",
110
+ onClick: () => toggleKeyVisibility(row.metadata.name)
111
+ },
112
+ isVisible ? /* @__PURE__ */ React.createElement(VisibilityOffIcon, { fontSize: "small" }) : /* @__PURE__ */ React.createElement(VisibilityIcon, { fontSize: "small" })
113
+ )));
114
+ }
115
+ return /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "textSecondary" }, "-");
116
+ }
117
+ },
118
+ {
119
+ title: "Requested",
120
+ field: "metadata.creationTimestamp",
121
+ render: (row) => {
122
+ const date = new Date(row.metadata.creationTimestamp);
123
+ return date.toLocaleDateString();
124
+ }
125
+ }
126
+ ];
127
+ const getTabData = () => {
128
+ switch (selectedTab) {
129
+ case 0:
130
+ return approvedRequests;
131
+ case 1:
132
+ return pendingRequests;
133
+ case 2:
134
+ return rejectedRequests;
135
+ default:
136
+ return allRequests;
137
+ }
138
+ };
139
+ const tabData = getTabData();
140
+ return /* @__PURE__ */ React.createElement(
141
+ InfoCard,
142
+ {
143
+ title: "My API Keys",
144
+ subheader: `${approvedRequests.length} active, ${pendingRequests.length} pending`
145
+ },
146
+ /* @__PURE__ */ React.createElement(Box, { mb: 2 }, /* @__PURE__ */ React.createElement(
147
+ Tabs,
148
+ {
149
+ value: selectedTab,
150
+ onChange: (_, newValue) => setSelectedTab(newValue),
151
+ indicatorColor: "primary",
152
+ textColor: "primary"
153
+ },
154
+ /* @__PURE__ */ React.createElement(Tab, { label: `Active (${approvedRequests.length})` }),
155
+ /* @__PURE__ */ React.createElement(Tab, { label: `Pending (${pendingRequests.length})` }),
156
+ /* @__PURE__ */ React.createElement(Tab, { label: `Rejected (${rejectedRequests.length})` })
157
+ )),
158
+ tabData.length === 0 ? /* @__PURE__ */ React.createElement(Box, { p: 3, textAlign: "center" }, /* @__PURE__ */ React.createElement(Typography, { variant: "body1", color: "textSecondary" }, selectedTab === 0 && "No active API keys. Request access to an API to get started.", selectedTab === 1 && "No pending requests.", selectedTab === 2 && "No rejected requests.")) : /* @__PURE__ */ React.createElement(
159
+ Table,
160
+ {
161
+ options: {
162
+ paging: tabData.length > 10,
163
+ pageSize: 10,
164
+ search: false,
165
+ toolbar: false
166
+ },
167
+ columns,
168
+ data: tabData
169
+ }
170
+ )
171
+ );
172
+ };
173
+
174
+ export { MyApiKeysCard };
175
+ //# sourceMappingURL=MyApiKeysCard.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MyApiKeysCard.esm.js","sources":["../../../src/components/MyApiKeysCard/MyApiKeysCard.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { InfoCard, Table, TableColumn, Link } from '@backstage/core-components';\nimport { useApi, configApiRef, fetchApiRef, identityApiRef } from '@backstage/core-plugin-api';\nimport useAsync from 'react-use/lib/useAsync';\nimport { Box, Chip, Typography, Tabs, Tab, IconButton, Tooltip } from '@material-ui/core';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport VisibilityOffIcon from '@material-ui/icons/VisibilityOff';\n\ninterface APIKeyRequest {\n metadata: {\n name: string;\n namespace: string;\n creationTimestamp: string;\n };\n spec: {\n apiName: string;\n apiNamespace: string;\n planTier: string;\n useCase?: string;\n requestedBy: {\n userId: string;\n email?: string;\n };\n };\n status?: {\n phase: 'Pending' | 'Approved' | 'Rejected';\n apiKey?: string;\n apiHostname?: string;\n reason?: string;\n reviewedBy?: string;\n reviewedAt?: string;\n };\n}\n\nexport const MyApiKeysCard = () => {\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const identityApi = useApi(identityApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [selectedTab, setSelectedTab] = useState(0);\n const [, setUserId] = useState<string>('');\n const [visibleKeys, setVisibleKeys] = useState<Set<string>>(new Set());\n\n useAsync(async () => {\n const identity = await identityApi.getBackstageIdentity();\n setUserId(identity.userEntityRef.split('/')[1] || 'guest');\n }, [identityApi]);\n\n const { value: requests, loading, error } = useAsync(async () => {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/requests/my`\n );\n if (!response.ok) {\n throw new Error('failed to fetch requests');\n }\n const data = await response.json();\n return data.items || [];\n }, [backendUrl, fetchApi]);\n\n if (loading) {\n return (\n <InfoCard title=\"My API Keys\">\n <Typography>Loading...</Typography>\n </InfoCard>\n );\n }\n\n if (error) {\n return (\n <InfoCard title=\"My API Keys\">\n <Typography color=\"error\">Error loading API keys: {error.message}</Typography>\n </InfoCard>\n );\n }\n\n const allRequests = requests || [];\n const approvedRequests = allRequests.filter((r: APIKeyRequest) => r.status?.phase === 'Approved');\n const pendingRequests = allRequests.filter((r: APIKeyRequest) => !r.status?.phase || r.status.phase === 'Pending');\n const rejectedRequests = allRequests.filter((r: APIKeyRequest) => r.status?.phase === 'Rejected');\n\n const toggleKeyVisibility = (keyName: string) => {\n setVisibleKeys(prev => {\n const newSet = new Set(prev);\n if (newSet.has(keyName)) {\n newSet.delete(keyName);\n } else {\n newSet.add(keyName);\n }\n return newSet;\n });\n };\n\n const columns: TableColumn<APIKeyRequest>[] = [\n {\n title: 'API Product',\n field: 'spec.apiName',\n render: (row: APIKeyRequest) => (\n <Link to={`/catalog/default/api/${row.spec.apiName}/api-keys`}>\n <strong>{row.spec.apiName}</strong>\n </Link>\n ),\n },\n {\n title: 'Plan',\n field: 'spec.planTier',\n render: (row: APIKeyRequest) => {\n const color = row.spec.planTier === 'gold' ? 'primary' :\n row.spec.planTier === 'silver' ? 'default' : 'secondary';\n return <Chip label={row.spec.planTier} color={color} size=\"small\" />;\n },\n },\n {\n title: 'Use Case',\n field: 'spec.useCase',\n render: (row: APIKeyRequest) => {\n return (\n <Typography variant=\"body2\">\n {row.spec.useCase || '-'}\n </Typography>\n );\n },\n },\n {\n title: 'Status',\n field: 'status.phase',\n render: (row: APIKeyRequest) => {\n const phase = row.status?.phase || 'Pending';\n const color = phase === 'Approved' ? 'primary' :\n phase === 'Rejected' ? 'secondary' : 'default';\n return <Chip label={phase} color={color} size=\"small\" />;\n },\n },\n {\n title: 'Reason',\n render: (row: APIKeyRequest) => {\n if (row.status?.phase === 'Rejected' && row.status.reason) {\n return (\n <Typography variant=\"body2\" color=\"error\">\n {row.status.reason}\n </Typography>\n );\n }\n return <Typography variant=\"body2\" color=\"textSecondary\">-</Typography>;\n },\n },\n {\n title: 'Reviewed By',\n render: (row: APIKeyRequest) => {\n if ((row.status?.phase === 'Approved' || row.status?.phase === 'Rejected') && row.status.reviewedBy) {\n const reviewedDate = row.status.reviewedAt ? new Date(row.status.reviewedAt).toLocaleDateString() : '';\n return (\n <Box>\n <Typography variant=\"body2\">{row.status.reviewedBy}</Typography>\n {reviewedDate && (\n <Typography variant=\"caption\" color=\"textSecondary\">\n {reviewedDate}\n </Typography>\n )}\n </Box>\n );\n }\n return <Typography variant=\"body2\" color=\"textSecondary\">-</Typography>;\n },\n },\n {\n title: 'API Key',\n render: (row: APIKeyRequest) => {\n if (row.status?.phase === 'Approved' && row.status.apiKey) {\n const isVisible = visibleKeys.has(row.metadata.name);\n return (\n <Box display=\"flex\" alignItems=\"center\" style={{ gap: 8 }}>\n <Box fontFamily=\"monospace\" fontSize=\"0.875rem\">\n {isVisible ? row.status.apiKey : '•'.repeat(20) + '...'}\n </Box>\n <Tooltip title={isVisible ? 'hide key' : 'show key'}>\n <IconButton\n size=\"small\"\n onClick={() => toggleKeyVisibility(row.metadata.name)}\n >\n {isVisible ? <VisibilityOffIcon fontSize=\"small\" /> : <VisibilityIcon fontSize=\"small\" />}\n </IconButton>\n </Tooltip>\n </Box>\n );\n }\n return <Typography variant=\"body2\" color=\"textSecondary\">-</Typography>;\n },\n },\n {\n title: 'Requested',\n field: 'metadata.creationTimestamp',\n render: (row: APIKeyRequest) => {\n const date = new Date(row.metadata.creationTimestamp);\n return date.toLocaleDateString();\n },\n },\n ];\n\n const getTabData = () => {\n switch (selectedTab) {\n case 0:\n return approvedRequests;\n case 1:\n return pendingRequests;\n case 2:\n return rejectedRequests;\n default:\n return allRequests;\n }\n };\n\n const tabData = getTabData();\n\n return (\n <InfoCard\n title=\"My API Keys\"\n subheader={`${approvedRequests.length} active, ${pendingRequests.length} pending`}\n >\n <Box mb={2}>\n <Tabs\n value={selectedTab}\n onChange={(_, newValue) => setSelectedTab(newValue)}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n <Tab label={`Active (${approvedRequests.length})`} />\n <Tab label={`Pending (${pendingRequests.length})`} />\n <Tab label={`Rejected (${rejectedRequests.length})`} />\n </Tabs>\n </Box>\n {tabData.length === 0 ? (\n <Box p={3} textAlign=\"center\">\n <Typography variant=\"body1\" color=\"textSecondary\">\n {selectedTab === 0 && 'No active API keys. Request access to an API to get started.'}\n {selectedTab === 1 && 'No pending requests.'}\n {selectedTab === 2 && 'No rejected requests.'}\n </Typography>\n </Box>\n ) : (\n <Table\n options={{\n paging: tabData.length > 10,\n pageSize: 10,\n search: false,\n toolbar: false,\n }}\n columns={columns}\n data={tabData}\n />\n )}\n </InfoCard>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1,2 @@
1
+ __load_plugin_entry__("internal.plugin-kuadrant",(()=>{"use strict";var h,e,g,a,t,i,l,r,n,s,_,c,u,o,f,y,d,x,b,p,m,v={76741:(h,e,g)=>{var a={PluginRoot:()=>g.e(879).then(()=>()=>g(72627)),KuadrantPage:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiAccessCard:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiKeyManagementTab:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiKeysContent:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiProductInfoContent:()=>g.e(879).then(()=>()=>g(72627)),KuadrantApprovalQueueCard:()=>g.e(879).then(()=>()=>g(72627))},t=(h,e)=>(g.R=e,e=g.o(a,h)?a[h]():Promise.resolve().then(()=>{throw new Error('Module "'+h+'" does not exist in container.')}),g.R=void 0,e),i=(h,e)=>{if(g.S){var a="default",t=g.S[a];if(t&&t!==h)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return g.S[a]=h,g.I(a,e)}};g.d(e,{get:()=>t,init:()=>i})}},k={};function w(h){var e=k[h];if(void 0!==e)return e.exports;var g=k[h]={id:h,loaded:!1,exports:{}};return v[h].call(g.exports,g,g.exports,w),g.loaded=!0,g.exports}return w.m=v,w.c=k,w.n=h=>{var e=h&&h.__esModule?()=>h.default:()=>h;return w.d(e,{a:e}),e},e=Object.getPrototypeOf?h=>Object.getPrototypeOf(h):h=>h.__proto__,w.t=function(g,a){if(1&a&&(g=this(g)),8&a)return g;if("object"==typeof g&&g){if(4&a&&g.__esModule)return g;if(16&a&&"function"==typeof g.then)return g}var t=Object.create(null);w.r(t);var i={};h=h||[null,e({}),e([]),e(e)];for(var l=2&a&&g;("object"==typeof l||"function"==typeof l)&&!~h.indexOf(l);l=e(l))Object.getOwnPropertyNames(l).forEach(h=>i[h]=()=>g[h]);return i.default=()=>g,w.d(t,i),t},w.d=(h,e)=>{for(var g in e)w.o(e,g)&&!w.o(h,g)&&Object.defineProperty(h,g,{enumerable:!0,get:e[g]})},w.f={},w.e=h=>Promise.all(Object.keys(w.f).reduce((e,g)=>(w.f[g](h,e),e),[])),w.u=h=>"static/"+({51:"react-syntax-highlighter_languages_highlight_prolog",200:"react-syntax-highlighter_languages_highlight_mel",206:"react-syntax-highlighter_languages_highlight_gml",371:"react-syntax-highlighter_languages_highlight_excel",456:"react-syntax-highlighter_languages_highlight_roboconf",460:"react-syntax-highlighter_languages_highlight_avrasm",464:"react-syntax-highlighter_languages_highlight_shell",557:"react-syntax-highlighter_languages_highlight_oneC",579:"react-syntax-highlighter_languages_highlight_vbnet",634:"react-syntax-highlighter_languages_highlight_scilab",879:"exposed-PluginRoot",927:"react-syntax-highlighter_languages_highlight_javascript",946:"react-syntax-highlighter_languages_highlight_clojure",985:"react-syntax-highlighter_languages_highlight_monkey",1062:"react-syntax-highlighter_languages_highlight_nim",1084:"react-syntax-highlighter_languages_highlight_aspectj",1099:"react-syntax-highlighter_languages_highlight_ebnf",1173:"react-syntax-highlighter_languages_highlight_autohotkey",1177:"react-syntax-highlighter_languages_highlight_profile",1214:"react-syntax-highlighter_languages_highlight_properties",1276:"react-syntax-highlighter_languages_highlight_phpTemplate",1325:"react-syntax-highlighter_languages_highlight_actionscript",1352:"react-syntax-highlighter_languages_highlight_fortran",1362:"react-syntax-highlighter_languages_highlight_mathematica",1418:"react-syntax-highlighter_languages_highlight_pony",1441:"react-syntax-highlighter_languages_highlight_coq",1461:"react-syntax-highlighter_languages_highlight_livescript",1489:"react-syntax-highlighter_languages_highlight_reasonml",1496:"react-syntax-highlighter_languages_highlight_lua",1522:"react-syntax-highlighter_languages_highlight_dust",1679:"react-syntax-highlighter_languages_highlight_scheme",1694:"react-syntax-highlighter_languages_highlight_accesslog",1727:"react-syntax-highlighter_languages_highlight_oxygene",1750:"react-syntax-highlighter_languages_highlight_makefile",1828:"react-syntax-highlighter_languages_highlight_dockerfile",1895:"react-syntax-highlighter_languages_highlight_pythonRepl",1956:"react-syntax-highlighter_languages_highlight_puppet",1961:"react-syntax-highlighter_languages_highlight_stan",1972:"react-syntax-highlighter_languages_highlight_fsharp",2007:"react-syntax-highlighter_languages_highlight_css",2064:"react-syntax-highlighter_languages_highlight_vhdl",2108:"react-syntax-highlighter_languages_highlight_cLike",2180:"react-syntax-highlighter_languages_highlight_sqf",2234:"react-syntax-highlighter_languages_highlight_lisp",2267:"react-syntax-highlighter_languages_highlight_maxima",2346:"react-syntax-highlighter_languages_highlight_d",2362:"react-syntax-highlighter_languages_highlight_xquery",2378:"react-syntax-highlighter_languages_highlight_parser3",2383:"react-syntax-highlighter_languages_highlight_crmsh",2438:"react-syntax-highlighter_languages_highlight_haxe",2488:"react-syntax-highlighter_languages_highlight_verilog",2496:"react-syntax-highlighter_languages_highlight_erlangRepl",2512:"react-syntax-highlighter_languages_highlight_stylus",2516:"react-syntax-highlighter_languages_highlight_apache",2665:"react-syntax-highlighter_languages_highlight_powershell",2693:"react-syntax-highlighter_languages_highlight_tap",2727:"react-syntax-highlighter_languages_highlight_q",2743:"react-syntax-highlighter_languages_highlight_asciidoc",2762:"react-syntax-highlighter_languages_highlight_haskell",2795:"react-syntax-highlighter_languages_highlight_dns",2871:"react-syntax-highlighter_languages_highlight_typescript",2882:"react-syntax-highlighter_languages_highlight_sml",2979:"react-syntax-highlighter_languages_highlight_plaintext",2981:"react-syntax-highlighter_languages_highlight_ruleslanguage",2983:"react-syntax-highlighter_languages_highlight_golo",3146:"react-syntax-highlighter_languages_highlight_purebasic",3193:"react-syntax-highlighter_languages_highlight_xml",3299:"react-syntax-highlighter_languages_highlight_fix",3357:"react-syntax-highlighter_languages_highlight_x86asm",3384:"react-syntax-highlighter_languages_highlight_ini",3418:"react-syntax-highlighter_languages_highlight_ruby",3419:"react-syntax-highlighter_languages_highlight_nix",3487:"react-syntax-highlighter_languages_highlight_mipsasm",3500:"react-syntax-highlighter_languages_highlight_autoit",3540:"react-syntax-highlighter_languages_highlight_moonscript",3562:"react-syntax-highlighter_languages_highlight_gams",3580:"react-syntax-highlighter_languages_highlight_csp",3607:"react-syntax-highlighter_languages_highlight_abnf",3623:"react-syntax-highlighter_languages_highlight_yaml",3722:"react-syntax-highlighter_languages_highlight_latex",3736:"react-syntax-highlighter_languages_highlight_json",3811:"react-syntax-highlighter_languages_highlight_erb",3885:"react-syntax-highlighter_languages_highlight_stata",3923:"react-syntax-highlighter_languages_highlight_applescript",3988:"react-syntax-highlighter_languages_highlight_vala",4014:"react-syntax-highlighter_languages_highlight_scss",4075:"react-syntax-highlighter_languages_highlight_hsp",4110:"react-syntax-highlighter_languages_highlight_tp",4135:"react-syntax-highlighter_languages_highlight_mizar",4282:"react-syntax-highlighter_languages_highlight_livecodeserver",4300:"react-syntax-highlighter_languages_highlight_r",4342:"react-syntax-highlighter_languages_highlight_php",4383:"react-syntax-highlighter_languages_highlight_dsconfig",4436:"react-syntax-highlighter_languages_highlight_zephir",4446:"react-syntax-highlighter_languages_highlight_leaf",4493:"react-syntax-highlighter_languages_highlight_gauss",4575:"react-syntax-highlighter_languages_highlight_processing",4635:"react-syntax-highlighter_languages_highlight_jbossCli",4733:"react-syntax-highlighter_languages_highlight_llvm",4835:"react-syntax-highlighter_languages_highlight_cos",4931:"react-syntax-highlighter_languages_highlight_step21",4956:"react-syntax-highlighter_languages_highlight_angelscript",4971:"react-syntax-highlighter_languages_highlight_lsl",5034:"react-syntax-highlighter_languages_highlight_ada",5051:"react-syntax-highlighter_languages_highlight_coffeescript",5099:"react-syntax-highlighter_languages_highlight_nsis",5123:"react-syntax-highlighter_languages_highlight_erlang",5189:"react-syntax-highlighter_languages_highlight_dts",5251:"react-syntax-highlighter_languages_highlight_pgsql",5253:"react-syntax-highlighter_languages_highlight_clojureRepl",5286:"react-syntax-highlighter_languages_highlight_nginx",5446:"react-syntax-highlighter_languages_highlight_ocaml",5565:"react-syntax-highlighter_languages_highlight_kotlin",5613:"react-syntax-highlighter_languages_highlight_rib",5664:"react-syntax-highlighter_languages_highlight_dos",5773:"react-syntax-highlighter_languages_highlight_mojolicious",5813:"react-syntax-highlighter_languages_highlight_less",5819:"react-syntax-highlighter_languages_highlight_gradle",5868:"react-syntax-highlighter_languages_highlight_inform7",5900:"react-syntax-highlighter_languages_highlight_lasso",6057:"react-syntax-highlighter_languages_highlight_sqlMore",6152:"react-syntax-highlighter_languages_highlight_vbscriptHtml",6161:"react-syntax-highlighter_languages_highlight_clean",6177:"react-syntax-highlighter_languages_highlight_taggerscript",6195:"react-syntax-highlighter_languages_highlight_ldif",6228:"react-syntax-highlighter_languages_highlight_rust",6267:"react-syntax-highlighter_languages_highlight_swift",6354:"react-syntax-highlighter_languages_highlight_java",6501:"react-syntax-highlighter_languages_highlight_armasm",6512:"react-syntax-highlighter_languages_highlight_scala",6542:"react-syntax-highlighter_languages_highlight_vim",6555:"react-syntax-highlighter_languages_highlight_openscad",6573:"react-syntax-highlighter_languages_highlight_cpp",6780:"react-syntax-highlighter_languages_highlight_qml",6835:"react-syntax-highlighter_languages_highlight_brainfuck",6848:"react-syntax-highlighter_languages_highlight_crystal",6924:"react-syntax-highlighter_languages_highlight_isbl",6977:"react-syntax-highlighter_languages_highlight_rsl",6986:"react-syntax-highlighter_languages_highlight_capnproto",7048:"react-syntax-highlighter_languages_highlight_gherkin",7079:"react-syntax-highlighter_languages_highlight_diff",7131:"react-syntax-highlighter_languages_highlight_protobuf",7209:"react-syntax-highlighter_languages_highlight_perl",7247:"react-syntax-highlighter_languages_highlight_cmake",7254:"react-syntax-highlighter_languages_highlight_subunit",7351:"react-syntax-highlighter_languages_highlight_elixir",7401:"react-syntax-highlighter_languages_highlight_sas",7406:"react-syntax-highlighter_languages_highlight_sql",7439:"react-syntax-highlighter_languages_highlight_flix",7533:"react-syntax-highlighter_languages_highlight_awk",7572:"react-syntax-highlighter_languages_highlight_basic",7764:"react-syntax-highlighter_languages_highlight_go",7776:"react-syntax-highlighter_languages_highlight_haml",7794:"react-syntax-highlighter_languages_highlight_http",7818:"react-syntax-highlighter_languages_highlight_arduino",7879:"react-syntax-highlighter_languages_highlight_csharp",7934:"react-syntax-highlighter_languages_highlight_glsl",7959:"react-syntax-highlighter_languages_highlight_htmlbars",8001:"react-syntax-highlighter_languages_highlight_matlab",8030:"react-syntax-highlighter_languages_highlight_handlebars",8058:"react-syntax-highlighter_languages_highlight_n1ql",8078:"react-syntax-highlighter_languages_highlight_delphi",8138:"react-syntax-highlighter_languages_highlight_elm",8140:"react-syntax-highlighter_languages_highlight_pf",8216:"react-syntax-highlighter_languages_highlight_bnf",8217:"react-syntax-highlighter_languages_highlight_twig",8331:"react-syntax-highlighter_languages_highlight_thrift",8338:"react-syntax-highlighter_languages_highlight_objectivec",8549:"react-syntax-highlighter_languages_highlight_c",8595:"react-syntax-highlighter_languages_highlight_hy",8705:"react-syntax-highlighter_languages_highlight_nodeRepl",8725:"react-syntax-highlighter_languages_highlight_smalltalk",8727:"react-syntax-highlighter/lowlight-import",8753:"react-syntax-highlighter_languages_highlight_mercury",8755:"react-syntax-highlighter_languages_highlight_tcl",8763:"react-syntax-highlighter_languages_highlight_routeros",8833:"react-syntax-highlighter_languages_highlight_markdown",8874:"react-syntax-highlighter_languages_highlight_smali",8903:"react-syntax-highlighter_languages_highlight_axapta",8904:"react-syntax-highlighter_languages_highlight_python",8948:"react-syntax-highlighter_languages_highlight_groovy",9078:"react-syntax-highlighter_languages_highlight_irpf90",9118:"react-syntax-highlighter_languages_highlight_juliaRepl",9139:"react-syntax-highlighter_languages_highlight_django",9162:"react-syntax-highlighter_languages_highlight_ceylon",9175:"react-syntax-highlighter_languages_highlight_vbscript",9229:"react-syntax-highlighter_languages_highlight_julia",9265:"react-syntax-highlighter_languages_highlight_dart",9406:"react-syntax-highlighter_languages_highlight_cal",9612:"react-syntax-highlighter_languages_highlight_bash",9702:"react-syntax-highlighter_languages_highlight_gcode",9726:"react-syntax-highlighter_languages_highlight_xl",9882:"react-syntax-highlighter_languages_highlight_arcade"}[h]||h)+"."+{51:"be0fdf0c",200:"5251fe1a",206:"2347c999",371:"2f5c76b9",428:"0a290bc6",441:"8bd811bc",456:"47518214",460:"6381890e",464:"9bbc16eb",557:"362a3b0a",579:"21c190ed",634:"bb9cc730",879:"8bc4d676",927:"b0ad82d3",946:"e3fcc98c",985:"5f60f06d",1062:"17afaed1",1084:"35f221e8",1099:"a34b6944",1173:"614c5248",1177:"615fa721",1214:"60f97895",1276:"2bd36dc7",1325:"78db0238",1352:"38ec3d00",1362:"d8631b37",1418:"1961f69f",1441:"6b156852",1461:"3ece3068",1489:"a5a73a29",1496:"52f73c98",1522:"b30d0c38",1613:"71f0fccd",1679:"508b5846",1694:"bd112f1a",1727:"ea742315",1750:"cad796c9",1828:"2c5fdf55",1836:"b74b4c40",1895:"feb72aed",1956:"ee3f80da",1961:"17155e77",1972:"2ba37c00",2007:"2cc312ae",2064:"dea9db6c",2108:"f884fdc0",2180:"43421810",2198:"5905970e",2234:"1cb2f675",2267:"f1f17544",2346:"bf4f2b44",2362:"353780d4",2378:"706a4bd6",2383:"58c4cb07",2438:"e2543cc2",2488:"e32adbeb",2496:"0d7f4890",2512:"cde06cf5",2516:"aa86d495",2665:"7bd31b3a",2693:"402e473f",2727:"989943de",2743:"4b40a3f9",2762:"bbd3c104",2795:"6d79126a",2871:"cf576f17",2882:"0e45c1cf",2979:"25f8d292",2981:"038504d0",2983:"eaa5e2bf",3007:"bffc9924",3144:"6f99ccee",3146:"08443005",3193:"ee14d6a4",3299:"5ee62733",3357:"217c56f0",3384:"d9d4ed7e",3418:"d84064e5",3419:"245f31b6",3483:"2f14a8ca",3487:"f5bc5b04",3500:"a06c1c62",3540:"443301b3",3562:"a45eb030",3580:"7fc6f9a3",3607:"bb6a8626",3623:"2aae489e",3647:"b96f9b3e",3657:"59d45756",3722:"b4bb9102",3736:"d934b52b",3811:"4ac917b8",3885:"fe81a7fc",3923:"ddf703d6",3988:"843d9bc4",4014:"bec19089",4041:"29923ad9",4075:"5d714528",4110:"0f4ff415",4135:"9b39cf3b",4161:"aa5fd28d",4282:"f624f22d",4300:"8540ccea",4306:"133aa342",4342:"ade4c6c4",4383:"c3457b50",4436:"fc94a148",4446:"92519810",4491:"a2e0258f",4493:"cceeafb0",4570:"8b9f98d7",4575:"8d1f48c5",4635:"1ff533ef",4733:"f32d41e6",4835:"78d69dee",4931:"a431b2db",4956:"f9816c44",4971:"b6519e02",5034:"b0d90871",5051:"3bc87b5b",5099:"4934a8e8",5123:"501777c7",5189:"8fd3703c",5222:"796292ca",5251:"5b0d21b9",5253:"e6dbc3b4",5286:"630147e0",5446:"0e42541e",5453:"d8d305e9",5565:"c5eaa6f5",5568:"5dbce633",5603:"05d9ca7f",5613:"dc8afdf1",5664:"1ede6e37",5773:"0cf721ff",5811:"5c192eeb",5813:"cc574d49",5819:"72fdf84d",5868:"78be038f",5900:"8d4054e7",6057:"d69b1825",6152:"42eb54af",6161:"97b48014",6177:"695a2547",6195:"74045e43",6228:"7e26e901",6267:"7d33a4a9",6272:"e49551fa",6281:"29f4549b",6352:"d48bba8c",6354:"e04d1c07",6501:"4bfb8996",6512:"a4629d0a",6542:"e82f126f",6555:"4a460eaf",6573:"ff6a8f78",6780:"8f3a0af6",6835:"31bde7c5",6848:"3a36e63f",6872:"feed76d2",6924:"abe269c1",6977:"909f2a27",6986:"79dfc31f",7048:"e740620a",7079:"a8373241",7131:"0cd375bc",7209:"ae8475a2",7247:"cb9028b5",7254:"c5ac3a0a",7351:"1e79c9b9",7401:"94075d6a",7406:"651dcc8d",7439:"972cc801",7533:"dfc9b0b0",7572:"ec232b8a",7601:"08d8ff3f",7764:"abc0a144",7776:"d698757b",7794:"5859273c",7818:"9b9ce313",7879:"ea98c6fb",7934:"bb5b0086",7959:"e57e3c89",7984:"c8511b89",8001:"114e44eb",8030:"75c0a89b",8058:"c54b2c4a",8078:"588e191d",8138:"8a488b19",8140:"5052a768",8216:"84e0a497",8217:"5cb0fdfc",8331:"ecb04f2a",8338:"2d204375",8365:"75ea3581",8549:"b43ce116",8595:"c60db034",8617:"d1dc70a8",8705:"5b05cdf2",8725:"53da57ca",8727:"2bd53873",8753:"fa8fdac0",8755:"79af288c",8763:"c0bcd6ce",8833:"1489792c",8874:"4fa5afdd",8903:"80d14346",8904:"9e4100ae",8948:"ecd68b19",9078:"25afcc29",9118:"e3bfcde8",9139:"8fb85401",9162:"ab3b1c28",9175:"4703f4c5",9229:"f43a39d0",9265:"0a0b12af",9288:"61b45746",9406:"781cc6c6",9612:"53f7c730",9702:"378d3296",9726:"7cff3cbb",9882:"70910623"}[h]+".chunk.js",w.miniCssF=h=>{},w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(h){if("object"==typeof window)return window}}(),w.o=(h,e)=>Object.prototype.hasOwnProperty.call(h,e),g={},a="internal.plugin-kuadrant:",w.l=(h,e,t,i)=>{if(g[h])g[h].push(e);else{var l,r;if(void 0!==t)for(var n=document.getElementsByTagName("script"),s=0;s<n.length;s++){var _=n[s];if(_.getAttribute("src")==h||_.getAttribute("data-webpack")==a+t){l=_;break}}l||(r=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,w.nc&&l.setAttribute("nonce",w.nc),l.setAttribute("data-webpack",a+t),l.src=h),g[h]=[e];var c=(e,a)=>{l.onerror=l.onload=null,clearTimeout(u);var t=g[h];if(delete g[h],l.parentNode&&l.parentNode.removeChild(l),t&&t.forEach(h=>h(a)),e)return e(a)},u=setTimeout(c.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=c.bind(null,l.onerror),l.onload=c.bind(null,l.onload),r&&document.head.appendChild(l)}},w.r=h=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(h,"__esModule",{value:!0})},w.nmd=h=>(h.paths=[],h.children||(h.children=[]),h),(()=>{w.S={};var h={},e={};w.I=(g,a)=>{a||(a=[]);var t=e[g];if(t||(t=e[g]={}),!(a.indexOf(t)>=0)){if(a.push(t),h[g])return h[g];w.o(w.S,g)||(w.S[g]={});var i=w.S[g],l="internal.plugin-kuadrant",r=(h,e,g,a)=>{var t=i[h]=i[h]||{},r=t[e];(!r||!r.loaded&&(!a!=!r.eager?a:l>r.from))&&(t[e]={get:g,from:l,eager:!!a})},n=[];return"default"===g&&(r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([w.e(5568),w.e(7601),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(47601))),r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([w.e(5568),w.e(428),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(20428))),r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([w.e(5568),w.e(6272),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(26272))),r("@backstage/core-plugin-api","1.11.1",()=>Promise.all([w.e(5568),w.e(3647),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(83647))),r("@backstage/version-bridge","1.0.11",()=>Promise.all([w.e(5478),w.e(5603)]).then(()=>()=>w(65603))),r("@material-ui/core/styles","4.12.4",()=>Promise.all([w.e(6352),w.e(5478),w.e(1942),w.e(4491)]).then(()=>()=>w(64491))),r("@material-ui/styles","4.11.5",()=>Promise.all([w.e(4570),w.e(5478),w.e(3007)]).then(()=>()=>w(94570))),r("react-dom","18.3.1",()=>Promise.all([w.e(3144),w.e(5478)]).then(()=>()=>w(43144))),r("react-router-dom","6.30.1",()=>Promise.all([w.e(1613),w.e(3657),w.e(5478),w.e(484),w.e(2731)]).then(()=>()=>w(73657))),r("react-router","6.30.1",()=>Promise.all([w.e(1613),w.e(1836),w.e(5478)]).then(()=>()=>w(51836))),r("react","18.3.1",()=>w.e(4041).then(()=>()=>w(14041)))),h[g]=n.length?Promise.all(n).then(()=>h[g]=1):1}}})(),(()=>{var h;w.g.importScripts&&(h=w.g.location+"");var e=w.g.document;if(!h&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(h=e.currentScript.src),!h)){var g=e.getElementsByTagName("script");if(g.length)for(var a=g.length-1;a>-1&&(!h||!/^http(s?):/.test(h));)h=g[a--].src}if(!h)throw new Error("Automatic publicPath is not supported in this browser");h=h.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),w.p=h})(),t=h=>{var e=h=>h.split(".").map(h=>+h==h?+h:h),g=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(h),a=g[1]?e(g[1]):[];return g[2]&&(a.length++,a.push.apply(a,e(g[2]))),g[3]&&(a.push([]),a.push.apply(a,e(g[3]))),a},i=(h,e)=>{h=t(h),e=t(e);for(var g=0;;){if(g>=h.length)return g<e.length&&"u"!=(typeof e[g])[0];var a=h[g],i=(typeof a)[0];if(g>=e.length)return"u"==i;var l=e[g],r=(typeof l)[0];if(i!=r)return"o"==i&&"n"==r||"s"==r||"u"==i;if("o"!=i&&"u"!=i&&a!=l)return a<l;g++}},l=h=>{var e=h[0],g="";if(1===h.length)return"*";if(e+.5){g+=0==e?">=":-1==e?"<":1==e?"^":2==e?"~":e>0?"=":"!=";for(var a=1,t=1;t<h.length;t++)a--,g+="u"==(typeof(r=h[t]))[0]?"-":(a>0?".":"")+(a=2,r);return g}var i=[];for(t=1;t<h.length;t++){var r=h[t];i.push(0===r?"not("+n()+")":1===r?"("+n()+" || "+n()+")":2===r?i.pop()+" "+i.pop():l(r))}return n();function n(){return i.pop().replace(/^\((.+)\)$/,"$1")}},r=(h,e)=>{if(0 in h){e=t(e);var g=h[0],a=g<0;a&&(g=-g-1);for(var i=0,l=1,n=!0;;l++,i++){var s,_,c=l<h.length?(typeof h[l])[0]:"";if(i>=e.length||"o"==(_=(typeof(s=e[i]))[0]))return!n||("u"==c?l>g&&!a:""==c!=a);if("u"==_){if(!n||"u"!=c)return!1}else if(n)if(c==_)if(l<=g){if(s!=h[l])return!1}else{if(a?s>h[l]:s<h[l])return!1;s!=h[l]&&(n=!1)}else if("s"!=c&&"n"!=c){if(a||l<=g)return!1;n=!1,l--}else{if(l<=g||_<c!=a)return!1;n=!1}else"s"!=c&&"n"!=c&&(n=!1,l--)}}var u=[],o=u.pop.bind(u);for(i=1;i<h.length;i++){var f=h[i];u.push(1==f?o()|o():2==f?o()&o():f?r(f,e):!o())}return!!o()},n=(h,e)=>h&&w.o(h,e),s=h=>(h.loaded=1,h.get()),_=h=>Object.keys(h).reduce((e,g)=>(h[g].eager&&(e[g]=h[g]),e),{}),c=(h,e,g)=>{var a=g?_(h[e]):h[e];return Object.keys(a).reduce((h,e)=>!h||!a[h].loaded&&i(h,e)?e:h,0)},u=(h,e,g,a)=>"Unsatisfied version "+g+" from "+(g&&h[e][g].from)+" of shared singleton module "+e+" (required "+l(a)+")",o=h=>{throw new Error(h)},f=h=>{"undefined"!=typeof console&&console.warn&&console.warn(h)},y=(h,e,g)=>g?g():((h,e)=>o("Shared module "+e+" doesn't exist in shared scope "+h))(h,e),d=(h=>function(e,g,a,t,i){var l=w.I(e);return l&&l.then&&!a?l.then(h.bind(h,e,w.S[e],g,!1,t,i)):h(e,w.S[e],g,a,t,i)})((h,e,g,a,t,i)=>{if(!n(e,g))return y(h,g,i);var l=c(e,g,a);return r(t,l)||f(u(e,g,l,t)),s(e[g][l])}),x={},b={22097:()=>d("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([w.e(5568),w.e(6272),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(26272))),95478:()=>d("default","react",!1,[0],()=>w.e(4041).then(()=>()=>w(14041))),42469:()=>d("default","react-router-dom",!1,[0],()=>Promise.all([w.e(1613),w.e(3657),w.e(484),w.e(2731)]).then(()=>()=>w(73657))),64218:()=>d("default","@backstage/version-bridge",!1,[0],()=>w.e(7984).then(()=>()=>w(65603))),11942:()=>d("default","@material-ui/styles",!1,[0],()=>w.e(4570).then(()=>()=>w(94570))),40484:()=>d("default","react-dom",!1,[0],()=>w.e(3144).then(()=>()=>w(43144))),92731:()=>d("default","react-router",!1,[0],()=>w.e(1836).then(()=>()=>w(51836))),37976:()=>d("default","@material-ui/core/styles",!1,[0],()=>w.e(6872).then(()=>()=>w(64491))),97094:()=>d("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([w.e(3647),w.e(2469)]).then(()=>()=>w(83647))),26659:()=>d("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([w.e(428),w.e(2469)]).then(()=>()=>w(20428)))},p={484:[40484],879:[22097],1942:[11942],2469:[42469],2731:[92731],4218:[64218],5478:[95478],6659:[26659],7094:[97094],7976:[37976]},m={},w.f.consumes=(h,e)=>{w.o(p,h)&&p[h].forEach(h=>{if(w.o(x,h))return e.push(x[h]);if(!m[h]){var g=e=>{x[h]=0,w.m[h]=g=>{delete w.c[h],g.exports=e()}};m[h]=!0;var a=e=>{delete x[h],w.m[h]=g=>{throw delete w.c[h],e}};try{var t=b[h]();t.then?e.push(x[h]=t.then(g).catch(a)):g(t)}catch(h){a(h)}}})},(()=>{var h={2310:0};w.f.j=(e,g)=>{var a=w.o(h,e)?h[e]:void 0;if(0!==a)if(a)g.push(a[2]);else if(/^(1942|2469|2731|4218|484|5478|6659|7094|7976)$/.test(e))h[e]=0;else{var t=new Promise((g,t)=>a=h[e]=[g,t]);g.push(a[2]=t);var i=w.p+w.u(e),l=new Error;w.l(i,g=>{if(w.o(h,e)&&(0!==(a=h[e])&&(h[e]=void 0),a)){var t=g&&("load"===g.type?"missing":g.type),i=g&&g.target&&g.target.src;l.message="Loading chunk "+e+" failed.\n("+t+": "+i+")",l.name="ChunkLoadError",l.type=t,l.request=i,a[1](l)}},"chunk-"+e,e)}};var e=(e,g)=>{var a,t,[i,l,r]=g,n=0;if(i.some(e=>0!==h[e])){for(a in l)w.o(l,a)&&(w.m[a]=l[a]);r&&r(w)}for(e&&e(g);n<i.length;n++)t=i[n],w.o(h,t)&&h[t]&&h[t][0](),h[t]=0},g=self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[];g.forEach(e.bind(null,0)),g.push=e.bind(null,g.push.bind(g))})(),w(76741)})());
2
+ //# sourceMappingURL=internal.plugin-kuadrant.9baeefa3b735dde128c6.js.map