@kuadrant/kuadrant-backstage-plugin-frontend 0.4.0-dev2-3c8348b → 0.4.0-dev3-0da0695

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 (531) hide show
  1. package/dist/.config-schema.json +46 -46
  2. package/dist/@mf-types.zip +0 -0
  3. package/dist/mf-manifest.json +1 -1
  4. package/dist/mf-stats.json +1 -1
  5. package/dist/remoteEntry.js +2 -2
  6. package/dist/static/{runtime.4487ce49.js → runtime.70b7537d.js} +3 -3
  7. package/dist/static/{runtime.4487ce49.js.map → runtime.70b7537d.js.map} +1 -1
  8. package/dist/static/{vendor.4487ce49.js → vendor.70b7537d.js} +1 -1
  9. package/dist/static/{vendor.4487ce49.js.map → vendor.70b7537d.js.map} +1 -1
  10. package/dist-scalprum/configSchema.json +27 -0
  11. package/dist-scalprum/kuadrant.kuadrant-backstage-plugin-frontend.44bacdfb1c0370d4879d.js +2 -0
  12. package/dist-scalprum/kuadrant.kuadrant-backstage-plugin-frontend.44bacdfb1c0370d4879d.js.map +1 -0
  13. package/dist-scalprum/plugin-manifest.json +11 -0
  14. package/dist-scalprum/static/1037.30050946.chunk.js +2 -0
  15. package/dist-scalprum/static/1037.30050946.chunk.js.map +1 -0
  16. package/dist-scalprum/static/1340.8cd13740.chunk.js +3 -0
  17. package/dist-scalprum/static/1340.8cd13740.chunk.js.LICENSE.txt +18 -0
  18. package/dist-scalprum/static/1340.8cd13740.chunk.js.map +1 -0
  19. package/dist-scalprum/static/1719.e8f111d8.chunk.js +2 -0
  20. package/dist-scalprum/static/1719.e8f111d8.chunk.js.map +1 -0
  21. package/dist-scalprum/static/1931.4bfc9098.chunk.js +2 -0
  22. package/dist-scalprum/static/1931.4bfc9098.chunk.js.map +1 -0
  23. package/dist-scalprum/static/20.1b5831f0.chunk.js +3 -0
  24. package/dist-scalprum/static/20.1b5831f0.chunk.js.LICENSE.txt +14 -0
  25. package/dist-scalprum/static/20.1b5831f0.chunk.js.map +1 -0
  26. package/dist-scalprum/static/2251.ff998bd6.chunk.js +2 -0
  27. package/dist-scalprum/static/2251.ff998bd6.chunk.js.map +1 -0
  28. package/dist-scalprum/static/2769.3ab6acb7.chunk.js +2 -0
  29. package/dist-scalprum/static/2769.3ab6acb7.chunk.js.map +1 -0
  30. package/dist-scalprum/static/2821.1e3d6dc4.chunk.js +2 -0
  31. package/dist-scalprum/static/2821.1e3d6dc4.chunk.js.map +1 -0
  32. package/dist-scalprum/static/2822.ce006976.chunk.js +2 -0
  33. package/dist-scalprum/static/2822.ce006976.chunk.js.map +1 -0
  34. package/dist-scalprum/static/2952.60bab809.chunk.js +2 -0
  35. package/dist-scalprum/static/2952.60bab809.chunk.js.map +1 -0
  36. package/dist-scalprum/static/2967.06a5593b.chunk.js +2 -0
  37. package/dist-scalprum/static/2967.06a5593b.chunk.js.map +1 -0
  38. package/dist-scalprum/static/3007.7481e781.chunk.js +2 -0
  39. package/dist-scalprum/static/3007.7481e781.chunk.js.map +1 -0
  40. package/dist-scalprum/static/3015.2dad3eec.chunk.js +3 -0
  41. package/dist-scalprum/static/3015.2dad3eec.chunk.js.LICENSE.txt +9 -0
  42. package/dist-scalprum/static/3015.2dad3eec.chunk.js.map +1 -0
  43. package/dist-scalprum/static/3144.cbed804d.chunk.js +3 -0
  44. package/dist-scalprum/static/3144.cbed804d.chunk.js.LICENSE.txt +19 -0
  45. package/dist-scalprum/static/3144.cbed804d.chunk.js.map +1 -0
  46. package/dist-scalprum/static/327.a377854c.chunk.js +2 -0
  47. package/dist-scalprum/static/327.a377854c.chunk.js.map +1 -0
  48. package/dist-scalprum/static/3657.68703526.chunk.js +3 -0
  49. package/dist-scalprum/static/3657.68703526.chunk.js.LICENSE.txt +8 -0
  50. package/dist-scalprum/static/3657.68703526.chunk.js.map +1 -0
  51. package/dist-scalprum/static/3658.8a3da139.chunk.js +2 -0
  52. package/dist-scalprum/static/3658.8a3da139.chunk.js.map +1 -0
  53. package/dist-scalprum/static/3897.53c31fae.chunk.js +2 -0
  54. package/dist-scalprum/static/3897.53c31fae.chunk.js.map +1 -0
  55. package/dist-scalprum/static/3917.f6c5d76f.chunk.js +2 -0
  56. package/dist-scalprum/static/3917.f6c5d76f.chunk.js.map +1 -0
  57. package/dist-scalprum/static/3947.cd00bcd5.chunk.js +2 -0
  58. package/dist-scalprum/static/3947.cd00bcd5.chunk.js.map +1 -0
  59. package/dist-scalprum/static/4041.12a0055c.chunk.js +3 -0
  60. package/dist-scalprum/static/4041.12a0055c.chunk.js.LICENSE.txt +9 -0
  61. package/dist-scalprum/static/4041.12a0055c.chunk.js.map +1 -0
  62. package/dist-scalprum/static/4083.e067ea26.chunk.js +3 -0
  63. package/dist-scalprum/static/4083.e067ea26.chunk.js.LICENSE.txt +18 -0
  64. package/dist-scalprum/static/4083.e067ea26.chunk.js.map +1 -0
  65. package/dist-scalprum/static/438.32c3e072.chunk.js +2 -0
  66. package/dist-scalprum/static/438.32c3e072.chunk.js.map +1 -0
  67. package/dist-scalprum/static/4491.b4aa3375.chunk.js +2 -0
  68. package/dist-scalprum/static/4491.b4aa3375.chunk.js.map +1 -0
  69. package/dist-scalprum/static/4570.f63a94b5.chunk.js +3 -0
  70. package/dist-scalprum/static/4570.f63a94b5.chunk.js.LICENSE.txt +16 -0
  71. package/dist-scalprum/static/4570.f63a94b5.chunk.js.map +1 -0
  72. package/dist-scalprum/static/4641.afa4b7f4.chunk.js +2 -0
  73. package/dist-scalprum/static/4641.afa4b7f4.chunk.js.map +1 -0
  74. package/dist-scalprum/static/4712.32c000f9.chunk.js +2 -0
  75. package/dist-scalprum/static/4712.32c000f9.chunk.js.map +1 -0
  76. package/dist-scalprum/static/501.c053f97a.chunk.js +3 -0
  77. package/dist-scalprum/static/501.c053f97a.chunk.js.LICENSE.txt +21 -0
  78. package/dist-scalprum/static/501.c053f97a.chunk.js.map +1 -0
  79. package/dist-scalprum/static/5010.95aedf8d.chunk.js +3 -0
  80. package/dist-scalprum/static/5010.95aedf8d.chunk.js.LICENSE.txt +17 -0
  81. package/dist-scalprum/static/5010.95aedf8d.chunk.js.map +1 -0
  82. package/dist-scalprum/static/5197.c4151d55.chunk.js +2 -0
  83. package/dist-scalprum/static/5197.c4151d55.chunk.js.map +1 -0
  84. package/dist-scalprum/static/5943.d01f37ae.chunk.js +2 -0
  85. package/dist-scalprum/static/5943.d01f37ae.chunk.js.map +1 -0
  86. package/dist-scalprum/static/6038.9e308c20.chunk.js +3 -0
  87. package/dist-scalprum/static/6038.9e308c20.chunk.js.LICENSE.txt +8 -0
  88. package/dist-scalprum/static/6038.9e308c20.chunk.js.map +1 -0
  89. package/dist-scalprum/static/6272.98ac64ee.chunk.js +2 -0
  90. package/dist-scalprum/static/6272.98ac64ee.chunk.js.map +1 -0
  91. package/dist-scalprum/static/635.20cc75bd.chunk.js +3 -0
  92. package/dist-scalprum/static/635.20cc75bd.chunk.js.LICENSE.txt +9 -0
  93. package/dist-scalprum/static/635.20cc75bd.chunk.js.map +1 -0
  94. package/dist-scalprum/static/6371.bd298779.chunk.js +3 -0
  95. package/dist-scalprum/static/6371.bd298779.chunk.js.LICENSE.txt +9 -0
  96. package/dist-scalprum/static/6371.bd298779.chunk.js.map +1 -0
  97. package/dist-scalprum/static/6766.6766.d233128d.css +5 -0
  98. package/dist-scalprum/static/6766.6766.d233128d.css.map +1 -0
  99. package/dist-scalprum/static/6766.b1477b1f.chunk.js +3 -0
  100. package/dist-scalprum/static/6766.b1477b1f.chunk.js.LICENSE.txt +26 -0
  101. package/dist-scalprum/static/6766.b1477b1f.chunk.js.map +1 -0
  102. package/dist-scalprum/static/6837.daf44d4a.chunk.js +2 -0
  103. package/dist-scalprum/static/6837.daf44d4a.chunk.js.map +1 -0
  104. package/dist-scalprum/static/6853.95bdb23a.chunk.js +2 -0
  105. package/dist-scalprum/static/6853.95bdb23a.chunk.js.map +1 -0
  106. package/dist-scalprum/static/6972.67a3d5fa.chunk.js +2 -0
  107. package/dist-scalprum/static/6972.67a3d5fa.chunk.js.map +1 -0
  108. package/dist-scalprum/static/7076.a421f17a.chunk.js +2 -0
  109. package/dist-scalprum/static/7076.a421f17a.chunk.js.map +1 -0
  110. package/dist-scalprum/static/7164.3f49dba5.chunk.js +2 -0
  111. package/dist-scalprum/static/7164.3f49dba5.chunk.js.map +1 -0
  112. package/dist-scalprum/static/7266.8f906280.chunk.js +2 -0
  113. package/dist-scalprum/static/7266.8f906280.chunk.js.map +1 -0
  114. package/dist-scalprum/static/7270.fe2b531a.chunk.js +2 -0
  115. package/dist-scalprum/static/7270.fe2b531a.chunk.js.map +1 -0
  116. package/dist-scalprum/static/7293.61ba27ef.chunk.js +3 -0
  117. package/dist-scalprum/static/7293.61ba27ef.chunk.js.LICENSE.txt +9 -0
  118. package/dist-scalprum/static/7293.61ba27ef.chunk.js.map +1 -0
  119. package/dist-scalprum/static/7367.7f02a435.chunk.js +3 -0
  120. package/dist-scalprum/static/7367.7f02a435.chunk.js.LICENSE.txt +21 -0
  121. package/dist-scalprum/static/7367.7f02a435.chunk.js.map +1 -0
  122. package/dist-scalprum/static/7651.e4257476.chunk.js +2 -0
  123. package/dist-scalprum/static/7651.e4257476.chunk.js.map +1 -0
  124. package/dist-scalprum/static/7791.8fd95e78.chunk.js +2 -0
  125. package/dist-scalprum/static/7791.8fd95e78.chunk.js.map +1 -0
  126. package/dist-scalprum/static/8170.ee2d7c50.chunk.js +2 -0
  127. package/dist-scalprum/static/8170.ee2d7c50.chunk.js.map +1 -0
  128. package/dist-scalprum/static/8563.c70c61a5.chunk.js +3 -0
  129. package/dist-scalprum/static/8563.c70c61a5.chunk.js.LICENSE.txt +5 -0
  130. package/dist-scalprum/static/8563.c70c61a5.chunk.js.map +1 -0
  131. package/dist-scalprum/static/9400.6b78af9f.chunk.js +2 -0
  132. package/dist-scalprum/static/9400.6b78af9f.chunk.js.map +1 -0
  133. package/dist-scalprum/static/empty-state-illustration.7e3ad5a9..png +0 -0
  134. package/dist-scalprum/static/exposed-ApiIcon.da16b2cc.chunk.js +3 -0
  135. package/dist-scalprum/static/exposed-ApiIcon.da16b2cc.chunk.js.LICENSE.txt +9 -0
  136. package/dist-scalprum/static/exposed-ApiIcon.da16b2cc.chunk.js.map +1 -0
  137. package/dist-scalprum/static/exposed-KuadrantIcon.e9227839.chunk.js +3 -0
  138. package/dist-scalprum/static/exposed-KuadrantIcon.e9227839.chunk.js.LICENSE.txt +9 -0
  139. package/dist-scalprum/static/exposed-KuadrantIcon.e9227839.chunk.js.map +1 -0
  140. package/dist-scalprum/static/exposed-KuadrantPage.832aec5b.chunk.js +2 -0
  141. package/dist-scalprum/static/exposed-KuadrantPage.832aec5b.chunk.js.map +1 -0
  142. package/dist-scalprum/static/exposed-PluginRoot.daa5f940.chunk.js +2 -0
  143. package/dist-scalprum/static/exposed-PluginRoot.daa5f940.chunk.js.map +1 -0
  144. package/dist-scalprum/static/exposed-kuadrantApiFactory.3211b81a.chunk.js +2 -0
  145. package/dist-scalprum/static/exposed-kuadrantApiFactory.3211b81a.chunk.js.map +1 -0
  146. package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.6ce6e76b.chunk.js +2 -0
  147. package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.6ce6e76b.chunk.js.map +1 -0
  148. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.d7b748b1.chunk.js +2 -0
  149. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.d7b748b1.chunk.js.map +1 -0
  150. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.5cd4e70c.chunk.js +2 -0
  151. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.5cd4e70c.chunk.js.map +1 -0
  152. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.d7fb5ca9.chunk.js +2 -0
  153. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.d7fb5ca9.chunk.js.map +1 -0
  154. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.751ec93b.chunk.js +2 -0
  155. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.751ec93b.chunk.js.map +1 -0
  156. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.cdb860cc.chunk.js +2 -0
  157. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.cdb860cc.chunk.js.map +1 -0
  158. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.7773ba3b.chunk.js +2 -0
  159. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.7773ba3b.chunk.js.map +1 -0
  160. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.8cb340cc.chunk.js +2 -0
  161. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.8cb340cc.chunk.js.map +1 -0
  162. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.60bbff04.chunk.js +2 -0
  163. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.60bbff04.chunk.js.map +1 -0
  164. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.c0c83f48.chunk.js +2 -0
  165. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.c0c83f48.chunk.js.map +1 -0
  166. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.430c8942.chunk.js +2 -0
  167. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.430c8942.chunk.js.map +1 -0
  168. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.3e211a5e.chunk.js +2 -0
  169. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.3e211a5e.chunk.js.map +1 -0
  170. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.3d32ac5c.chunk.js +2 -0
  171. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.3d32ac5c.chunk.js.map +1 -0
  172. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.0f43909c.chunk.js +2 -0
  173. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.0f43909c.chunk.js.map +1 -0
  174. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.7136d2bd.chunk.js +2 -0
  175. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.7136d2bd.chunk.js.map +1 -0
  176. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.8aa64d3e.chunk.js +2 -0
  177. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.8aa64d3e.chunk.js.map +1 -0
  178. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.ad458763.chunk.js +2 -0
  179. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.ad458763.chunk.js.map +1 -0
  180. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.973d343c.chunk.js +2 -0
  181. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.973d343c.chunk.js.map +1 -0
  182. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.e6565209.chunk.js +2 -0
  183. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.e6565209.chunk.js.map +1 -0
  184. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.0691a169.chunk.js +2 -0
  185. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.0691a169.chunk.js.map +1 -0
  186. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.e8daf1f7.chunk.js +2 -0
  187. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.e8daf1f7.chunk.js.map +1 -0
  188. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.e196d223.chunk.js +2 -0
  189. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.e196d223.chunk.js.map +1 -0
  190. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.efabbf9d.chunk.js +2 -0
  191. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.efabbf9d.chunk.js.map +1 -0
  192. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.3b61cf62.chunk.js +2 -0
  193. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.3b61cf62.chunk.js.map +1 -0
  194. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.b801b70d.chunk.js +2 -0
  195. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.b801b70d.chunk.js.map +1 -0
  196. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.ded99d02.chunk.js +2 -0
  197. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.ded99d02.chunk.js.map +1 -0
  198. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.3eac73f9.chunk.js +2 -0
  199. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.3eac73f9.chunk.js.map +1 -0
  200. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.b07854cb.chunk.js +2 -0
  201. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.b07854cb.chunk.js.map +1 -0
  202. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.77521689.chunk.js +2 -0
  203. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.77521689.chunk.js.map +1 -0
  204. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.9448b879.chunk.js +2 -0
  205. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.9448b879.chunk.js.map +1 -0
  206. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.6b048c9a.chunk.js +2 -0
  207. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.6b048c9a.chunk.js.map +1 -0
  208. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.4aef666e.chunk.js +2 -0
  209. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.4aef666e.chunk.js.map +1 -0
  210. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.bb2ee554.chunk.js +2 -0
  211. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.bb2ee554.chunk.js.map +1 -0
  212. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.6fc48d6d.chunk.js +2 -0
  213. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.6fc48d6d.chunk.js.map +1 -0
  214. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.daf37e10.chunk.js +2 -0
  215. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.daf37e10.chunk.js.map +1 -0
  216. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.d547f78d.chunk.js +2 -0
  217. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.d547f78d.chunk.js.map +1 -0
  218. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.5049cd2e.chunk.js +2 -0
  219. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.5049cd2e.chunk.js.map +1 -0
  220. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.315865a3.chunk.js +2 -0
  221. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.315865a3.chunk.js.map +1 -0
  222. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7ea55553.chunk.js +2 -0
  223. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7ea55553.chunk.js.map +1 -0
  224. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.3117b0e3.chunk.js +2 -0
  225. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.3117b0e3.chunk.js.map +1 -0
  226. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.7456f80c.chunk.js +2 -0
  227. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.7456f80c.chunk.js.map +1 -0
  228. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.020b9d3d.chunk.js +2 -0
  229. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.020b9d3d.chunk.js.map +1 -0
  230. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.86aca306.chunk.js +2 -0
  231. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.86aca306.chunk.js.map +1 -0
  232. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.0a835926.chunk.js +2 -0
  233. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.0a835926.chunk.js.map +1 -0
  234. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.a135aa8b.chunk.js +2 -0
  235. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.a135aa8b.chunk.js.map +1 -0
  236. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.27aec10d.chunk.js +2 -0
  237. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.27aec10d.chunk.js.map +1 -0
  238. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.958aacec.chunk.js +2 -0
  239. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.958aacec.chunk.js.map +1 -0
  240. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.59aaced7.chunk.js +2 -0
  241. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.59aaced7.chunk.js.map +1 -0
  242. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.8b5a847e.chunk.js +2 -0
  243. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.8b5a847e.chunk.js.map +1 -0
  244. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.6e3f9db6.chunk.js +2 -0
  245. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.6e3f9db6.chunk.js.map +1 -0
  246. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.7c5d23e5.chunk.js +2 -0
  247. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.7c5d23e5.chunk.js.map +1 -0
  248. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.db0ae456.chunk.js +2 -0
  249. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.db0ae456.chunk.js.map +1 -0
  250. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.cc785691.chunk.js +2 -0
  251. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.cc785691.chunk.js.map +1 -0
  252. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.66841734.chunk.js +2 -0
  253. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.66841734.chunk.js.map +1 -0
  254. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.b1b96b4e.chunk.js +2 -0
  255. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.b1b96b4e.chunk.js.map +1 -0
  256. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.34d2f773.chunk.js +2 -0
  257. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.34d2f773.chunk.js.map +1 -0
  258. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0ff0bfbb.chunk.js +2 -0
  259. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0ff0bfbb.chunk.js.map +1 -0
  260. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.04bd2aa2.chunk.js +2 -0
  261. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.04bd2aa2.chunk.js.map +1 -0
  262. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.0ef6442e.chunk.js +2 -0
  263. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.0ef6442e.chunk.js.map +1 -0
  264. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.a1b295ac.chunk.js +2 -0
  265. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.a1b295ac.chunk.js.map +1 -0
  266. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.66f10825.chunk.js +2 -0
  267. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.66f10825.chunk.js.map +1 -0
  268. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.f36c83d1.chunk.js +2 -0
  269. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.f36c83d1.chunk.js.map +1 -0
  270. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.e170e44f.chunk.js +2 -0
  271. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.e170e44f.chunk.js.map +1 -0
  272. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.877c22cd.chunk.js +2 -0
  273. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.877c22cd.chunk.js.map +1 -0
  274. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.c1e0a697.chunk.js +2 -0
  275. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.c1e0a697.chunk.js.map +1 -0
  276. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.934843e3.chunk.js +2 -0
  277. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.934843e3.chunk.js.map +1 -0
  278. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.967148b0.chunk.js +2 -0
  279. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.967148b0.chunk.js.map +1 -0
  280. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.1e9b8477.chunk.js +2 -0
  281. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.1e9b8477.chunk.js.map +1 -0
  282. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.5796d462.chunk.js +2 -0
  283. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.5796d462.chunk.js.map +1 -0
  284. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.453ebb0f.chunk.js +2 -0
  285. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.453ebb0f.chunk.js.map +1 -0
  286. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.848e9531.chunk.js +2 -0
  287. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.848e9531.chunk.js.map +1 -0
  288. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.fa7fe849.chunk.js +2 -0
  289. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.fa7fe849.chunk.js.map +1 -0
  290. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.8caef7cd.chunk.js +2 -0
  291. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.8caef7cd.chunk.js.map +1 -0
  292. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.5a49c928.chunk.js +2 -0
  293. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.5a49c928.chunk.js.map +1 -0
  294. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.b13e9820.chunk.js +2 -0
  295. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.b13e9820.chunk.js.map +1 -0
  296. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.2978dc06.chunk.js +2 -0
  297. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.2978dc06.chunk.js.map +1 -0
  298. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.7a3e965f.chunk.js +2 -0
  299. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.7a3e965f.chunk.js.map +1 -0
  300. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.f0f2b2be.chunk.js +2 -0
  301. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.f0f2b2be.chunk.js.map +1 -0
  302. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.a29b3997.chunk.js +2 -0
  303. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.a29b3997.chunk.js.map +1 -0
  304. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.9cf3d54c.chunk.js +2 -0
  305. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.9cf3d54c.chunk.js.map +1 -0
  306. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.568e42d6.chunk.js +2 -0
  307. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.568e42d6.chunk.js.map +1 -0
  308. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.003b4149.chunk.js +2 -0
  309. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.003b4149.chunk.js.map +1 -0
  310. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.6a198fc7.chunk.js +2 -0
  311. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.6a198fc7.chunk.js.map +1 -0
  312. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.e9cf6e08.chunk.js +2 -0
  313. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.e9cf6e08.chunk.js.map +1 -0
  314. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.c96464e0.chunk.js +2 -0
  315. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.c96464e0.chunk.js.map +1 -0
  316. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.e88c5129.chunk.js +2 -0
  317. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.e88c5129.chunk.js.map +1 -0
  318. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.83466530.chunk.js +2 -0
  319. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.83466530.chunk.js.map +1 -0
  320. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.b7395612.chunk.js +2 -0
  321. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.b7395612.chunk.js.map +1 -0
  322. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.fe310a0e.chunk.js +2 -0
  323. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.fe310a0e.chunk.js.map +1 -0
  324. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.f0bdb034.chunk.js +2 -0
  325. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.f0bdb034.chunk.js.map +1 -0
  326. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.b08b90f3.chunk.js +2 -0
  327. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.b08b90f3.chunk.js.map +1 -0
  328. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.e5dd3415.chunk.js +2 -0
  329. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.e5dd3415.chunk.js.map +1 -0
  330. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.70a85a56.chunk.js +2 -0
  331. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.70a85a56.chunk.js.map +1 -0
  332. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.17ed8595.chunk.js +2 -0
  333. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.17ed8595.chunk.js.map +1 -0
  334. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.9e81ae3b.chunk.js +2 -0
  335. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.9e81ae3b.chunk.js.map +1 -0
  336. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.2d706a4a.chunk.js +2 -0
  337. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.2d706a4a.chunk.js.map +1 -0
  338. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.e09ffb38.chunk.js +2 -0
  339. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.e09ffb38.chunk.js.map +1 -0
  340. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.fb7fa1bd.chunk.js +2 -0
  341. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.fb7fa1bd.chunk.js.map +1 -0
  342. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.0367b344.chunk.js +2 -0
  343. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.0367b344.chunk.js.map +1 -0
  344. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.b7b471df.chunk.js +2 -0
  345. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.b7b471df.chunk.js.map +1 -0
  346. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.3703d3d6.chunk.js +2 -0
  347. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.3703d3d6.chunk.js.map +1 -0
  348. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.d066f704.chunk.js +2 -0
  349. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.d066f704.chunk.js.map +1 -0
  350. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.db532360.chunk.js +2 -0
  351. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.db532360.chunk.js.map +1 -0
  352. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.15a4f8b6.chunk.js +2 -0
  353. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.15a4f8b6.chunk.js.map +1 -0
  354. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.12cc49c0.chunk.js +2 -0
  355. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.12cc49c0.chunk.js.map +1 -0
  356. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.c4d4eb67.chunk.js +2 -0
  357. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.c4d4eb67.chunk.js.map +1 -0
  358. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.60c478c0.chunk.js +2 -0
  359. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.60c478c0.chunk.js.map +1 -0
  360. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.b80a6243.chunk.js +2 -0
  361. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.b80a6243.chunk.js.map +1 -0
  362. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.d1e79a83.chunk.js +2 -0
  363. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.d1e79a83.chunk.js.map +1 -0
  364. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.e89f0d76.chunk.js +2 -0
  365. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.e89f0d76.chunk.js.map +1 -0
  366. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.2fad9b33.chunk.js +2 -0
  367. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.2fad9b33.chunk.js.map +1 -0
  368. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.fdf944aa.chunk.js +2 -0
  369. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.fdf944aa.chunk.js.map +1 -0
  370. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.e5ec6191.chunk.js +2 -0
  371. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.e5ec6191.chunk.js.map +1 -0
  372. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.f2b66b70.chunk.js +2 -0
  373. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.f2b66b70.chunk.js.map +1 -0
  374. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.6cf400a2.chunk.js +2 -0
  375. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.6cf400a2.chunk.js.map +1 -0
  376. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.69236b3b.chunk.js +2 -0
  377. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.69236b3b.chunk.js.map +1 -0
  378. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.00b5534b.chunk.js +2 -0
  379. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.00b5534b.chunk.js.map +1 -0
  380. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.f66b6002.chunk.js +2 -0
  381. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.f66b6002.chunk.js.map +1 -0
  382. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.81666346.chunk.js +2 -0
  383. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.81666346.chunk.js.map +1 -0
  384. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.0625e6b8.chunk.js +2 -0
  385. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.0625e6b8.chunk.js.map +1 -0
  386. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.a72cf24d.chunk.js +2 -0
  387. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.a72cf24d.chunk.js.map +1 -0
  388. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.e259908f.chunk.js +2 -0
  389. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.e259908f.chunk.js.map +1 -0
  390. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.66abc520.chunk.js +2 -0
  391. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.66abc520.chunk.js.map +1 -0
  392. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.3f645414.chunk.js +2 -0
  393. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.3f645414.chunk.js.map +1 -0
  394. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.157adfc8.chunk.js +2 -0
  395. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.157adfc8.chunk.js.map +1 -0
  396. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.6e413f5e.chunk.js +2 -0
  397. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.6e413f5e.chunk.js.map +1 -0
  398. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.47014ef1.chunk.js +2 -0
  399. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.47014ef1.chunk.js.map +1 -0
  400. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.1af1f4b3.chunk.js +2 -0
  401. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.1af1f4b3.chunk.js.map +1 -0
  402. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.38660a92.chunk.js +2 -0
  403. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.38660a92.chunk.js.map +1 -0
  404. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.e92f0640.chunk.js +2 -0
  405. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.e92f0640.chunk.js.map +1 -0
  406. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.0372e2e4.chunk.js +2 -0
  407. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.0372e2e4.chunk.js.map +1 -0
  408. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.1b08385e.chunk.js +2 -0
  409. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.1b08385e.chunk.js.map +1 -0
  410. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.7d0f6ed2.chunk.js +2 -0
  411. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.7d0f6ed2.chunk.js.map +1 -0
  412. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.d1b10369.chunk.js +2 -0
  413. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.d1b10369.chunk.js.map +1 -0
  414. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.f638243c.chunk.js +2 -0
  415. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.f638243c.chunk.js.map +1 -0
  416. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.4c36bffa.chunk.js +2 -0
  417. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.4c36bffa.chunk.js.map +1 -0
  418. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.f3254a38.chunk.js +2 -0
  419. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.f3254a38.chunk.js.map +1 -0
  420. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.7a043394.chunk.js +2 -0
  421. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.7a043394.chunk.js.map +1 -0
  422. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.fdc8230f.chunk.js +2 -0
  423. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.fdc8230f.chunk.js.map +1 -0
  424. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.6e63451e.chunk.js +2 -0
  425. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.6e63451e.chunk.js.map +1 -0
  426. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.517c935e.chunk.js +2 -0
  427. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.517c935e.chunk.js.map +1 -0
  428. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.ac43344f.chunk.js +2 -0
  429. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.ac43344f.chunk.js.map +1 -0
  430. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.dda4b87c.chunk.js +2 -0
  431. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.dda4b87c.chunk.js.map +1 -0
  432. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.05aa4cef.chunk.js +2 -0
  433. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.05aa4cef.chunk.js.map +1 -0
  434. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.19d8a2a9.chunk.js +2 -0
  435. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.19d8a2a9.chunk.js.map +1 -0
  436. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.6092a281.chunk.js +2 -0
  437. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.6092a281.chunk.js.map +1 -0
  438. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.920f9a7c.chunk.js +2 -0
  439. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.920f9a7c.chunk.js.map +1 -0
  440. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.18a94d89.chunk.js +2 -0
  441. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.18a94d89.chunk.js.map +1 -0
  442. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.7c9e7cd0.chunk.js +2 -0
  443. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.7c9e7cd0.chunk.js.map +1 -0
  444. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.80a5fd04.chunk.js +2 -0
  445. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.80a5fd04.chunk.js.map +1 -0
  446. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.f4a97f7d.chunk.js +2 -0
  447. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.f4a97f7d.chunk.js.map +1 -0
  448. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.47ccba90.chunk.js +2 -0
  449. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.47ccba90.chunk.js.map +1 -0
  450. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.d7509115.chunk.js +2 -0
  451. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.d7509115.chunk.js.map +1 -0
  452. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.a254cc81.chunk.js +2 -0
  453. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.a254cc81.chunk.js.map +1 -0
  454. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.08cd6913.chunk.js +2 -0
  455. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.08cd6913.chunk.js.map +1 -0
  456. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.53d46ef7.chunk.js +2 -0
  457. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.53d46ef7.chunk.js.map +1 -0
  458. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.cbfeb2ca.chunk.js +2 -0
  459. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.cbfeb2ca.chunk.js.map +1 -0
  460. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.69717390.chunk.js +2 -0
  461. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.69717390.chunk.js.map +1 -0
  462. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.45023bc4.chunk.js +2 -0
  463. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.45023bc4.chunk.js.map +1 -0
  464. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.643b0f4f.chunk.js +2 -0
  465. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.643b0f4f.chunk.js.map +1 -0
  466. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.24d94a2c.chunk.js +2 -0
  467. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.24d94a2c.chunk.js.map +1 -0
  468. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.a1699a88.chunk.js +2 -0
  469. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.a1699a88.chunk.js.map +1 -0
  470. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.b430a4ca.chunk.js +2 -0
  471. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.b430a4ca.chunk.js.map +1 -0
  472. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.dd4d51f6.chunk.js +2 -0
  473. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.dd4d51f6.chunk.js.map +1 -0
  474. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.f818ddde.chunk.js +2 -0
  475. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.f818ddde.chunk.js.map +1 -0
  476. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.7bf1e358.chunk.js +2 -0
  477. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.7bf1e358.chunk.js.map +1 -0
  478. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.625ebea2.chunk.js +2 -0
  479. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.625ebea2.chunk.js.map +1 -0
  480. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.68a930f3.chunk.js +2 -0
  481. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.68a930f3.chunk.js.map +1 -0
  482. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.d4291027.chunk.js +2 -0
  483. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.d4291027.chunk.js.map +1 -0
  484. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.3b7031b9.chunk.js +2 -0
  485. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.3b7031b9.chunk.js.map +1 -0
  486. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.e4ea5413.chunk.js +2 -0
  487. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.e4ea5413.chunk.js.map +1 -0
  488. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.cf4ec513.chunk.js +2 -0
  489. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.cf4ec513.chunk.js.map +1 -0
  490. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.0cb0578c.chunk.js +2 -0
  491. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.0cb0578c.chunk.js.map +1 -0
  492. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.e2194878.chunk.js +2 -0
  493. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.e2194878.chunk.js.map +1 -0
  494. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.9a6c577b.chunk.js +2 -0
  495. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.9a6c577b.chunk.js.map +1 -0
  496. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.1548e34d.chunk.js +2 -0
  497. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.1548e34d.chunk.js.map +1 -0
  498. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.c608d992.chunk.js +2 -0
  499. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.c608d992.chunk.js.map +1 -0
  500. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.6b4054dd.chunk.js +2 -0
  501. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.6b4054dd.chunk.js.map +1 -0
  502. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.b764ee8b.chunk.js +2 -0
  503. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.b764ee8b.chunk.js.map +1 -0
  504. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.917594d4.chunk.js +2 -0
  505. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.917594d4.chunk.js.map +1 -0
  506. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.e83a46fb.chunk.js +2 -0
  507. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.e83a46fb.chunk.js.map +1 -0
  508. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.caea633d.chunk.js +2 -0
  509. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.caea633d.chunk.js.map +1 -0
  510. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.73fc4c05.chunk.js +2 -0
  511. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.73fc4c05.chunk.js.map +1 -0
  512. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.93d0d327.chunk.js +2 -0
  513. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.93d0d327.chunk.js.map +1 -0
  514. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.a98781bd.chunk.js +2 -0
  515. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.a98781bd.chunk.js.map +1 -0
  516. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.2cb77785.chunk.js +2 -0
  517. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.2cb77785.chunk.js.map +1 -0
  518. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.fbcd5fed.chunk.js +2 -0
  519. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.fbcd5fed.chunk.js.map +1 -0
  520. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.3b233004.chunk.js +2 -0
  521. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.3b233004.chunk.js.map +1 -0
  522. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.6b5feb4c.chunk.js +2 -0
  523. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.6b5feb4c.chunk.js.map +1 -0
  524. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.4c158dae.chunk.js +2 -0
  525. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.4c158dae.chunk.js.map +1 -0
  526. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.1bd2dc88.chunk.js +2 -0
  527. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.1bd2dc88.chunk.js.map +1 -0
  528. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.e84f063b.chunk.js +2 -0
  529. package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.e84f063b.chunk.js.map +1 -0
  530. package/package.json +2 -2
  531. /package/dist/static/{main.4487ce49.js → main.70b7537d.js} +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend=self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend||[]).push([[7651],{86197:(e,t,a)=>{a.d(t,{K:()=>d});var l=a(31085),s=(a(95478),a(54917)),i=a(10394),n=a(42899),o=a(72501),r=a(67720);const d=({planPolicy:e,authPolicy:t,rateLimitPolicy:a,includeTopMargin:d=!0})=>{var c,u,m,h;const p=(0,s.A)();return(0,l.jsx)(i.A,{mt:d?1:0,p:0,bgcolor:p.palette.background.default,children:(0,l.jsxs)(n.A,{container:!0,spacing:2,children:[(null==e?void 0:e.statusCondition)&&"True"===e.statusCondition.status||!(null==a?void 0:a.statusCondition)?(0,l.jsxs)(n.A,{item:!0,xs:12,md:6,children:[(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Plan Policy"}),(null==e?void 0:e.statusCondition)?(0,l.jsxs)(i.A,{children:[(0,l.jsx)(r.A,{label:e.statusCondition.reason,size:"small",style:{backgroundColor:"True"===e.statusCondition.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),e.discoveredPlans&&e.discoveredPlans.length>0&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(o.A,{variant:"caption",display:"block",gutterBottom:!0,color:"textSecondary",style:{marginTop:8},children:"Available PlanPolicy Tiers:"}),(0,l.jsx)(i.A,{display:"flex",flexWrap:"wrap",mt:1,style:{gap:8},children:e.discoveredPlans.map((e,t)=>{var a,s,i;const n=(null===(a=e.limits)||void 0===a?void 0:a.daily)?`${e.limits.daily}/day`:(null===(s=e.limits)||void 0===s?void 0:s.monthly)?`${e.limits.monthly}/month`:(null===(i=e.limits)||void 0===i?void 0:i.yearly)?`${e.limits.yearly}/year`:"No limit";return(0,l.jsx)(r.A,{label:`${e.tier}: ${n}`,size:"small",variant:"outlined",color:"primary"},t)})})]})]}):(0,l.jsx)(r.A,{label:"NotFound",size:"small",style:{backgroundColor:"#ff9800",color:"#fff",marginBottom:8}})]}):(0,l.jsxs)(n.A,{item:!0,xs:12,md:6,children:[(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"RateLimitPolicy"}),(null==a?void 0:a.statusCondition)?(0,l.jsxs)(i.A,{children:[(0,l.jsx)(r.A,{label:a.statusCondition.reason,size:"small",style:{backgroundColor:"True"===a.statusCondition.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),"True"===a.statusCondition.status&&(0,l.jsxs)(n.A,{container:!0,spacing:2,children:[(0,l.jsx)(n.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Name"}),(0,l.jsx)(o.A,{variant:"body2",children:(null===(c=a.namespacedName)||void 0===c?void 0:c.name)||"No RateLimit Policy name available"})]})}),(0,l.jsx)(n.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Namespace"}),(0,l.jsx)(o.A,{variant:"body2",children:(null===(u=a.namespacedName)||void 0===u?void 0:u.namespace)||"No RateLimit Policy namespace available"})]})})]})]}):(0,l.jsx)(r.A,{label:"NotFound",size:"small",style:{backgroundColor:"#ff9800",color:"#fff",marginBottom:8}})]}),(0,l.jsxs)(n.A,{item:!0,xs:12,md:6,children:[(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Auth Policy"}),(null==t?void 0:t.statusCondition)?(0,l.jsxs)(i.A,{children:[(0,l.jsx)(r.A,{label:t.statusCondition.reason,size:"small",style:{backgroundColor:"True"===t.statusCondition.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),"True"===t.statusCondition.status&&(0,l.jsxs)(n.A,{container:!0,spacing:2,children:[(0,l.jsx)(n.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Name"}),(0,l.jsx)(o.A,{variant:"body2",children:(null===(m=t.namespacedName)||void 0===m?void 0:m.name)||"No Auth Policy name available"})]})}),(0,l.jsx)(n.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Namespace"}),(0,l.jsx)(o.A,{variant:"body2",children:(null===(h=t.namespacedName)||void 0===h?void 0:h.namespace)||"No Auth Policy namespace available"})]})})]})]}):(0,l.jsx)(r.A,{label:"NotFound",size:"small",style:{backgroundColor:"#ff9800",color:"#fff",marginBottom:8}})]})]})})}},63221:(e,t,a)=>{a.d(t,{K:()=>A});var l=a(31085),s=a(95478),i=a(76891),n=a(61477),o=a(10394),r=a(46805),d=a(59461),c=a(72501),u=a(16249),m=a(93453),h=a(64947),p=a(78467),x=a(77225);const A=({open:e,title:t,description:a,confirmText:A,severity:v="normal",deleting:f=!1,onConfirm:j,onCancel:g})=>{const[b,y]=(0,s.useState)("");(0,s.useEffect)(()=>{e||y("")},[e]);const P="high"===v&&A,C=!P||b===A;return(0,l.jsxs)(i.A,{open:e,onClose:f?void 0:g,maxWidth:"sm",fullWidth:!0,children:[(0,l.jsxs)(n.A,{children:["high"===v&&(0,l.jsxs)(o.A,{display:"flex",alignItems:"center",style:{gap:8},children:[(0,l.jsx)(x.A,{color:"error"}),(0,l.jsx)("span",{children:t})]}),"high"!==v&&t]}),(0,l.jsxs)(r.A,{children:[(0,l.jsx)(d.A,{style:{whiteSpace:"pre-line"},children:a}),P&&(0,l.jsxs)(o.A,{mt:2,children:[(0,l.jsxs)(c.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:["Type ",(0,l.jsx)("strong",{children:A})," to confirm:"]}),(0,l.jsx)(u.A,{fullWidth:!0,variant:"outlined",size:"small",value:b,onChange:e=>y(e.target.value),disabled:f,autoFocus:!0,placeholder:A})]})]}),(0,l.jsxs)(m.A,{children:[(0,l.jsx)(h.A,{onClick:g,disabled:f,children:"Cancel"}),(0,l.jsx)(h.A,{onClick:()=>{C&&j()},color:"secondary",variant:"contained",disabled:f||!C,startIcon:f?(0,l.jsx)(p.A,{size:16,color:"inherit"}):void 0,children:f?"Deleting...":"Delete"})]})]})}},26997:(e,t,a)=>{a.d(t,{C:()=>D});var l=a(31085),s=a(95478),i=a(58837),n=a(76891),o=a(61477),r=a(46805),d=a(10394),c=a(72501),u=a(42899),m=a(16249),h=a(34839),p=a(29365),x=a(67720),A=a(71677),v=a(26343),f=a(95061),j=a(29635),g=a(86901),b=a(30285),y=a(93453),P=a(64947),C=a(78467),S=a(89031),k=a(18466),T=a(22097),I=a(70980),N=a(48351),R=a(4387),w=a(91638),L=a(86197),B=a(24170),z=a(97859);const W=(0,i.A)(e=>({asterisk:{color:"#f44336"},sectionHeader:{display:"flex",alignItems:"center",gap:e.spacing(.5),marginTop:e.spacing(2),marginBottom:e.spacing(1)},infoIcon:{fontSize:18,color:e.palette.text.secondary},tagChip:{marginRight:e.spacing(.5),marginBottom:e.spacing(.5)}})),D=({open:e,onClose:t,onSuccess:a,namespace:i,name:D})=>{var H,F;const U=W(),q=(0,T.useApi)(I.s),[M,E]=(0,s.useState)(!1),[$,_]=(0,s.useState)(""),[K,G]=(0,s.useState)(""),[V,O]=(0,s.useState)("v1"),[J,Q]=(0,s.useState)("Draft"),[X,Y]=(0,s.useState)("production"),[Z,ee]=(0,s.useState)("manual"),[te,ae]=(0,s.useState)([]),[le,se]=(0,s.useState)(null),[ie,ne]=(0,s.useState)(""),[oe,re]=(0,s.useState)(""),[de,ce]=(0,s.useState)(""),[ue,me]=(0,s.useState)(""),[he,pe]=(0,s.useState)(""),[xe,Ae]=(0,s.useState)(null),[ve,fe]=(0,s.useState)(null),[je,ge]=(0,s.useState)(""),[be,ye]=(0,s.useState)(!1),[Pe,Ce]=(0,s.useState)(null);(0,s.useEffect)(()=>{e&&i&&D&&(E(!0),ge(""),q.getApiProduct(i,D).then(e=>{var t,a,l,s,i,n,o,r,d,c;_(e.spec.displayName||""),G(e.spec.description||""),O(e.spec.version||"v1"),Q(e.spec.publishStatus||"Draft"),Y((null===(t=e.metadata.labels)||void 0===t?void 0:t.lifecycle)||"production"),ee(e.spec.approvalMode||"manual"),ae(e.spec.tags||[]),se(e.spec.targetRef||null),re((null===(a=e.spec.contact)||void 0===a?void 0:a.email)||""),ce((null===(l=e.spec.contact)||void 0===l?void 0:l.team)||""),me((null===(s=e.spec.documentation)||void 0===s?void 0:s.docsURL)||""),pe((null===(i=e.spec.documentation)||void 0===i?void 0:i.openAPISpecURL)||"");const u=(null===(o=e.status)||void 0===o||null===(n=o.conditions)||void 0===n?void 0:n.find(e=>"PlanPolicyDiscovered"===e.type))||null;Ae({statusCondition:u,discoveredPlans:(null===(r=e.status)||void 0===r?void 0:r.discoveredPlans)||null});const m=(null===(c=e.status)||void 0===c||null===(d=c.conditions)||void 0===d?void 0:d.find(e=>"AuthPolicyDiscovered"===e.type))||null;var h;const p="True"===(null==m?void 0:m.status)?(e=>{const t=e.split(" ");return t.length>=3?t[2]:""})(null!==(h=m.message)&&void 0!==h?h:""):"";fe({statusCondition:m,namespacedName:{name:p,namespace:e.metadata.namespace}}),Ce(null),E(!1)}).catch(e=>{ge(e.message||"Failed to load API product"),E(!1)}))},[e,i,D,q]),(0,s.useEffect)(()=>{e&&Ce(null)},[e]);const{value:Se,error:ke}=(0,w.A)(async()=>await q.getRateLimitPolicies(),[q,e]),Te=le?(0,z.d)(null==Se?void 0:Se.items,i,le.name):null,Ie=null==Te||null===(F=Te.status)||void 0===F||null===(H=F.conditions)||void 0===H?void 0:H.find(e=>"Accepted"===e.type),Ne={namespacedName:{namespace:null==Te?void 0:Te.metadata.namespace,name:null==Te?void 0:Te.metadata.name},statusCondition:Ie},Re=()=>{ie.trim()&&!te.includes(ie.trim())&&(ae([...te,ie.trim()]),ne(""))};return(0,l.jsxs)(n.A,{open:e,onClose:t,maxWidth:"md",fullWidth:!0,children:[(0,l.jsx)(o.A,{children:"Edit API Product"}),(0,l.jsxs)(r.A,{children:[je&&(0,l.jsx)(N.A,{severity:"error",style:{marginBottom:16},children:je}),ke&&(0,l.jsxs)(N.A,{severity:"error",style:{marginBottom:16},children:[(0,l.jsx)("strong",{children:"Failed to load RateLimitPolicies:"})," ",ke.message]}),M?(0,l.jsx)(d.A,{p:2,children:[...Array(8)].map((e,t)=>(0,l.jsx)(d.A,{mb:2,children:(0,l.jsx)(R.A,{variant:"text",width:"100%"})},t))}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(d.A,{className:U.sectionHeader,children:(0,l.jsx)(c.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"API product info"})})}),(0,l.jsxs)(u.A,{container:!0,spacing:2,children:[(0,l.jsx)(u.A,{item:!0,xs:6,children:(0,l.jsx)(m.A,{fullWidth:!0,label:"API product name",value:$,onChange:e=>_(e.target.value),placeholder:"My API",helperText:"Give a unique name for your API product",margin:"normal",required:!0,disabled:be,InputLabelProps:{classes:{asterisk:U.asterisk}}})}),(0,l.jsx)(u.A,{item:!0,xs:6,children:(0,l.jsx)(m.A,{fullWidth:!0,label:"Resource name",value:D,disabled:!0,helperText:"Kubernetes resource name (immutable)",margin:"normal"})}),(0,l.jsx)(u.A,{item:!0,xs:6,children:(0,l.jsx)(m.A,{fullWidth:!0,label:"Version",value:V,onChange:e=>O(e.target.value),placeholder:"v1",helperText:"Give a version to your API product",margin:"normal",disabled:be})}),(0,l.jsx)(u.A,{item:!0,xs:6,children:(0,l.jsx)(m.A,{fullWidth:!0,label:"Tag",value:ie,onChange:e=>ne(e.target.value),onKeyPress:e=>{"Enter"===e.key&&(e.preventDefault(),Re())},placeholder:"Add tag",helperText:"Add a tag to your API product",margin:"normal",disabled:be,InputProps:{endAdornment:ie?(0,l.jsx)(h.A,{position:"end",children:(0,l.jsx)(p.A,{size:"small",onClick:Re,disabled:be,children:(0,l.jsx)(k.A,{fontSize:"small"})})}):void 0}})}),te.length>0&&(0,l.jsx)(u.A,{item:!0,xs:12,children:(0,l.jsx)(d.A,{display:"flex",flexWrap:"wrap",children:te.map(e=>(0,l.jsx)(x.A,{label:e,onDelete:be?void 0:()=>{return t=e,void ae(te.filter(e=>e!==t));var t},size:"small",className:U.tagChip,disabled:be},e))})}),(0,l.jsx)(u.A,{item:!0,xs:12,children:(0,l.jsx)(m.A,{fullWidth:!0,label:"Description",value:K,onChange:e=>G(e.target.value),placeholder:"API description",margin:"normal",multiline:!0,rows:2,required:!0,disabled:be,InputLabelProps:{classes:{asterisk:U.asterisk}}})})]}),(0,l.jsxs)(d.A,{className:U.sectionHeader,children:[(0,l.jsx)(c.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"Associated route"})}),(0,l.jsx)(A.Ay,{title:"The HTTPRoute this API product is associated with",children:(0,l.jsx)(S.A,{className:U.infoIcon})})]}),(0,l.jsxs)(u.A,{container:!0,spacing:2,children:[(0,l.jsx)(u.A,{item:!0,xs:12,children:(0,l.jsx)(m.A,{fullWidth:!0,label:"OpenAPI Spec URL",value:he,onChange:e=>{return t=e.target.value,pe(t),void Ce((0,B.q)(t));var t},placeholder:"https://api.example.com/openapi.json",helperText:Pe||"Enter the full path to your API spec file",error:!!Pe,margin:"normal",disabled:be})}),(0,l.jsx)(u.A,{item:!0,xs:12,children:(0,l.jsx)(m.A,{fullWidth:!0,label:"Documentation URL",value:ue,onChange:e=>me(e.target.value),placeholder:"https://docs.example.com/api",helperText:"Link to external documentation for this API",margin:"normal",disabled:be})}),le&&(0,l.jsx)(u.A,{item:!0,xs:12,children:(0,l.jsx)(m.A,{fullWidth:!0,label:"HTTPRoute",value:`${le.namespace||i}/${le.name}`,disabled:!0,helperText:"Target HTTPRoute (immutable)",margin:"normal"})})]}),le&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(d.A,{className:U.sectionHeader,children:[(0,l.jsx)(c.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"HTTPRoute policies"})}),(0,l.jsx)(A.Ay,{title:"Shows the associated policies and rate limit tiers for the HTTPRoute",children:(0,l.jsx)(S.A,{className:U.infoIcon})})]}),(0,l.jsx)(L.K,{planPolicy:xe,authPolicy:ve,rateLimitPolicy:Ne,includeTopMargin:!1})]}),(0,l.jsxs)(d.A,{className:U.sectionHeader,children:[(0,l.jsx)(c.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"Lifecycle and Visibility"})}),(0,l.jsx)(A.Ay,{title:"Control the lifecycle state and catalog visibility of this API product",children:(0,l.jsx)(S.A,{className:U.infoIcon})})]}),(0,l.jsxs)(u.A,{container:!0,spacing:2,children:[(0,l.jsx)(u.A,{item:!0,xs:6,children:(0,l.jsxs)(m.A,{fullWidth:!0,select:!0,label:"Lifecycle",value:X,onChange:e=>Y(e.target.value),margin:"normal",helperText:"API lifecycle state",disabled:be,children:[(0,l.jsx)(v.A,{value:"experimental",children:"Experimental"}),(0,l.jsx)(v.A,{value:"production",children:"Production"}),(0,l.jsx)(v.A,{value:"deprecated",children:"Deprecated"}),(0,l.jsx)(v.A,{value:"retired",children:"Retired"})]})}),(0,l.jsx)(u.A,{item:!0,xs:6,children:(0,l.jsxs)(m.A,{fullWidth:!0,select:!0,label:"Publish Status",value:J,onChange:e=>Q(e.target.value),margin:"normal",helperText:"Controls catalog visibility",disabled:be,children:[(0,l.jsx)(v.A,{value:"Draft",children:"Draft"}),(0,l.jsx)(v.A,{value:"Published",children:"Published"})]})})]}),(0,l.jsxs)(d.A,{className:U.sectionHeader,children:[(0,l.jsx)(c.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"API Key approval"})}),(0,l.jsx)(A.Ay,{title:"Choose how API key requests are handled for this product",children:(0,l.jsx)(S.A,{className:U.infoIcon})})]}),(0,l.jsx)(f.A,{component:"fieldset",disabled:be,children:(0,l.jsxs)(j.A,{row:!0,value:Z,onChange:e=>ee(e.target.value),children:[(0,l.jsx)(g.A,{value:"manual",control:(0,l.jsx)(b.A,{color:"primary"}),label:(0,l.jsxs)(d.A,{children:[(0,l.jsx)(c.A,{variant:"body2",children:"Need manual approval"}),(0,l.jsx)(c.A,{variant:"caption",color:"textSecondary",children:"Requires approval for requesting this API"})]})}),(0,l.jsx)(g.A,{value:"automatic",control:(0,l.jsx)(b.A,{color:"primary"}),label:(0,l.jsxs)(d.A,{children:[(0,l.jsx)(c.A,{variant:"body2",children:"Automatic"}),(0,l.jsx)(c.A,{variant:"caption",color:"textSecondary",children:"Keys are created without need to be approved"})]})})]})})]})]}),(0,l.jsxs)(y.A,{children:[(0,l.jsx)(P.A,{onClick:t,disabled:be,children:"Cancel"}),(0,l.jsx)(P.A,{onClick:async()=>{if(ge(""),ye(!0),"retired"===X&&"Published"===J)return ge("Cannot publish a retired API product. Please set publish status to Draft."),void ye(!1);try{const e={metadata:{labels:{lifecycle:X}},spec:{displayName:$,description:K,version:V,publishStatus:J,approvalMode:Z,tags:te,targetRef:le,...oe||de?{contact:{...oe&&{email:oe},...de&&{team:de}}}:{},...ue||he?{documentation:{...ue&&{docsURL:ue},...he&&{openAPISpecURL:he}}}:{}}};await q.updateApiProduct(i,D,e),a(),t()}catch(e){ge(e instanceof Error?e.message:String(e))}finally{ye(!1)}},color:"primary",variant:"contained",disabled:be||M||!$||!K||!!Pe,startIcon:be?(0,l.jsx)(C.A,{size:16,color:"inherit"}):void 0,children:be?"Saving...":"Save"})]})]})}},97859:(e,t,a)=>{a.d(t,{d:()=>l});const l=(e,t,a)=>e&&e.find(e=>{const l=e.spec.targetRef;var s;const i=null!==(s=null==l?void 0:l.namespace)&&void 0!==s?s:e.metadata.namespace;return"HTTPRoute"===(null==l?void 0:l.kind)&&(null==l?void 0:l.name)===a&&i===t})||null},46299:(e,t,a)=>{a.d(t,{ee:()=>i,g9:()=>l,uU:()=>s});const l=e=>{const t={border:"none"};switch(e){case"Approved":return{...t,backgroundColor:"#1976d2",color:"#fff"};case"Denied":return{...t,backgroundColor:"#d32f2f",color:"#fff"};case"Failed":return{...t,backgroundColor:"#ed6c02",color:"#fff"};default:return{...t,backgroundColor:"#9c27b0",color:"#fff"}}},s=e=>{const t={border:"none"};switch(e){case"Approved":return{...t,backgroundColor:"#2e7d32",color:"#fff"};case"Denied":return{...t,backgroundColor:"#d32f2f",color:"#fff"};default:return{...t,backgroundColor:"#ed6c02",color:"#fff"}}},i=e=>{switch(e){case"production":return{backgroundColor:"#1976d2",color:"#fff"};case"experimental":return{backgroundColor:"#9c27b0",color:"#fff"};case"deprecated":return{backgroundColor:"#ff9800",color:"#fff"};case"retired":return{backgroundColor:"#d32f2f",color:"#fff"};default:return{}}}},24170:(e,t,a)=>{a.d(t,{o:()=>l,q:()=>s});const l=e=>e&&e.trim()?e.length>253?"Must be 253 characters or less":/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/.test(e)?null:"Must be lowercase alphanumeric with hyphens, start and end with alphanumeric":"Name is required",s=e=>{if(!e)return null;try{const t=new URL(e);return["http:","https:"].includes(t.protocol)?null:"Must be a valid HTTP or HTTPS URL"}catch{return"Must be a valid URL"}}}}]);
2
+ //# sourceMappingURL=7651.e4257476.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/7651.e4257476.chunk.js","mappings":"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","sources":["webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/components/ApiProductPolicies/ApiProductPolicies.tsx","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/components/ConfirmDeleteDialog/ConfirmDeleteDialog.tsx","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/components/EditAPIProductDialog/EditAPIProductDialog.tsx","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/utils/policies.ts","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/utils/styles.ts","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/utils/validation.ts"],"sourcesContent":["import React from 'react';\nimport { Box, Grid, Typography, Chip, useTheme } from '@material-ui/core';\nimport { StatusCondition } from \"../../types/api-management\";\n\nexport type PlanPoliciesProps = {\n statusCondition: StatusCondition | null;\n discoveredPlans: Array<{\n tier: string;\n limits?: {\n daily?: number;\n monthly?: number;\n yearly?: number;\n };\n }> | null;\n};\n\nexport type AuthPoliciesProps = {\n namespacedName: {\n name: string | null;\n namespace: string | null;\n } | null;\n statusCondition: StatusCondition | null;\n};\n\nexport type RateLimitPoliciesProps = {\n namespacedName: {\n name: string | null;\n namespace: string | null;\n } | null;\n statusCondition: StatusCondition | null;\n};\n\ninterface ApiProductPoliciesProps {\n planPolicy: PlanPoliciesProps | null;\n authPolicy: AuthPoliciesProps | null;\n rateLimitPolicy: RateLimitPoliciesProps | null;\n includeTopMargin?: boolean;\n}\n// Displays APIProduct policies\nexport const ApiProductPolicies: React.FC<ApiProductPoliciesProps> = ({\n planPolicy,\n authPolicy,\n rateLimitPolicy,\n includeTopMargin = true,\n}) => {\n const theme = useTheme();\n\n return (\n <Box\n mt={includeTopMargin ? 1 : 0}\n p={0}\n bgcolor={theme.palette.background.default}\n >\n <Grid container spacing={2}>\n {/* planpolicy chip shown when either plan exist or ratelimitpolicy does not exist*/}\n {((planPolicy?.statusCondition && planPolicy.statusCondition.status === \"True\") || !rateLimitPolicy?.statusCondition) ? (\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Plan Policy\n </Typography>\n {planPolicy?.statusCondition ? (\n <Box>\n <Chip\n label={planPolicy.statusCondition.reason}\n size=\"small\"\n style={{\n backgroundColor: planPolicy.statusCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n {planPolicy.discoveredPlans && planPolicy.discoveredPlans.length > 0 && (\n <>\n <Typography\n variant=\"caption\"\n display=\"block\"\n gutterBottom\n color=\"textSecondary\"\n style={{ marginTop: 8 }}\n >\n Available PlanPolicy Tiers:\n </Typography>\n <Box display=\"flex\" flexWrap=\"wrap\" mt={1} style={{ gap: 8 }}>\n {planPolicy.discoveredPlans.map((plan: any, idx: number) => {\n const limitText = plan.limits?.daily\n ? `${plan.limits.daily}/day`\n : plan.limits?.monthly\n ? `${plan.limits.monthly}/month`\n : plan.limits?.yearly\n ? `${plan.limits.yearly}/year`\n : 'No limit';\n return (\n <Chip\n key={idx}\n label={`${plan.tier}: ${limitText}`}\n size=\"small\"\n variant=\"outlined\"\n color=\"primary\"\n />\n );\n })}\n </Box>\n </>\n )}\n </Box>\n ) : (\n <Chip\n label=\"NotFound\"\n size=\"small\"\n style={{\n backgroundColor: \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n )}\n </Grid>\n ) : (\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n RateLimitPolicy\n </Typography>\n {rateLimitPolicy?.statusCondition ? (\n <Box>\n <Chip\n label={rateLimitPolicy.statusCondition.reason}\n size=\"small\"\n style={{\n backgroundColor: rateLimitPolicy.statusCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n {rateLimitPolicy.statusCondition.status === \"True\" && (\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Box>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Resource Name\n </Typography>\n <Typography variant=\"body2\">\n {rateLimitPolicy.namespacedName?.name || \"No RateLimit Policy name available\"}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Resource Namespace\n </Typography>\n <Typography variant=\"body2\">\n {rateLimitPolicy.namespacedName?.namespace || \"No RateLimit Policy namespace available\"}\n </Typography>\n </Box>\n </Grid>\n </Grid>\n )}\n </Box>\n ) : (\n <Chip\n label=\"NotFound\"\n size=\"small\"\n style={{\n backgroundColor: \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n )}\n </Grid>\n )}\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Auth Policy\n </Typography>\n {authPolicy?.statusCondition ? (\n <Box>\n <Chip\n label={authPolicy.statusCondition.reason}\n size=\"small\"\n style={{\n backgroundColor: authPolicy.statusCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n {authPolicy.statusCondition.status === \"True\" && (\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Box>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Resource Name\n </Typography>\n <Typography variant=\"body2\">\n {authPolicy.namespacedName?.name || \"No Auth Policy name available\"}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Resource Namespace\n </Typography>\n <Typography variant=\"body2\">\n {authPolicy.namespacedName?.namespace || \"No Auth Policy namespace available\"}\n </Typography>\n </Box>\n </Grid>\n </Grid>\n )}\n </Box>\n ) : (\n <Chip\n label=\"NotFound\"\n size=\"small\"\n style={{\n backgroundColor: \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n )}\n </Grid>\n </Grid>\n </Box>\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogContentText,\n DialogActions,\n Button,\n TextField,\n Typography,\n Box,\n CircularProgress,\n} from '@material-ui/core';\nimport WarningIcon from '@material-ui/icons/Warning';\n\nexport interface ConfirmDeleteDialogProps {\n open: boolean;\n title: string;\n description: string;\n // for dangerous deletes, require typing this text to confirm\n confirmText?: string;\n // severity affects styling - 'high' shows warning icon and requires text confirmation\n severity?: 'normal' | 'high';\n deleting?: boolean;\n onConfirm: () => void;\n onCancel: () => void;\n}\n\nexport const ConfirmDeleteDialog = ({\n open,\n title,\n description,\n confirmText,\n severity = 'normal',\n deleting = false,\n onConfirm,\n onCancel,\n}: ConfirmDeleteDialogProps) => {\n const [inputValue, setInputValue] = useState('');\n\n // reset input when dialog opens/closes\n useEffect(() => {\n if (!open) {\n setInputValue('');\n }\n }, [open]);\n\n const requiresTextConfirmation = severity === 'high' && confirmText;\n const canConfirm = requiresTextConfirmation ? inputValue === confirmText : true;\n\n const handleConfirm = () => {\n if (canConfirm) {\n onConfirm();\n }\n };\n\n return (\n <Dialog\n open={open}\n onClose={deleting ? undefined : onCancel}\n maxWidth=\"sm\"\n fullWidth\n >\n <DialogTitle>\n {severity === 'high' && (\n <Box display=\"flex\" alignItems=\"center\" style={{ gap: 8 }}>\n <WarningIcon color=\"error\" />\n <span>{title}</span>\n </Box>\n )}\n {severity !== 'high' && title}\n </DialogTitle>\n <DialogContent>\n <DialogContentText style={{ whiteSpace: 'pre-line' }}>\n {description}\n </DialogContentText>\n {requiresTextConfirmation && (\n <Box mt={2}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Type <strong>{confirmText}</strong> to confirm:\n </Typography>\n <TextField\n fullWidth\n variant=\"outlined\"\n size=\"small\"\n value={inputValue}\n onChange={e => setInputValue(e.target.value)}\n disabled={deleting}\n autoFocus\n placeholder={confirmText}\n />\n </Box>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={onCancel} disabled={deleting}>\n Cancel\n </Button>\n <Button\n onClick={handleConfirm}\n color=\"secondary\"\n variant=\"contained\"\n disabled={deleting || !canConfirm}\n startIcon={deleting ? <CircularProgress size={16} color=\"inherit\" /> : undefined}\n >\n {deleting ? 'Deleting...' : 'Delete'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","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 CircularProgress,\n makeStyles,\n FormControl,\n RadioGroup,\n FormControlLabel,\n Radio,\n Tooltip,\n IconButton,\n InputAdornment,\n} from '@material-ui/core';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\nimport AddIcon from '@material-ui/icons/Add';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { kuadrantApiRef } from '../../api';\nimport { Alert, Skeleton } from '@material-ui/lab';\nimport useAsync from 'react-use/lib/useAsync';\nimport { ApiProductPolicies, PlanPoliciesProps, AuthPoliciesProps, RateLimitPoliciesProps } from '../ApiProductPolicies';\nimport { validateURL } from '../../utils/validation';\nimport { APIProduct } from \"../../types/api-management.ts\";\nimport { Lifecycle } from '../../types/api-management';\nimport { getPolicyForRoute } from '../../utils/policies';\n\nconst useStyles = makeStyles((theme) => ({\n asterisk: {\n color: '#f44336',\n },\n sectionHeader: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n },\n infoIcon: {\n fontSize: 18,\n color: theme.palette.text.secondary,\n },\n tagChip: {\n marginRight: theme.spacing(0.5),\n marginBottom: theme.spacing(0.5),\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 kuadrantApi = useApi(kuadrantApiRef);\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 [lifecycle, setLifecycle] = useState<Lifecycle>('production');\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 [planPolicyProps, setPlanPoliciesProps] = useState<PlanPoliciesProps | null>(null);\n const [authPolicyProps, setAuthPolicyProps] = useState<AuthPoliciesProps | null>(null);\n const [error, setError] = useState('');\n const [saving, setSaving] = useState(false);\n const [openAPISpecError, setOpenAPISpecError] = useState<string | null>(null);\n\n // Load APIProduct data when dialog opens\n useEffect(() => {\n if (open && namespace && name) {\n setLoading(true);\n setError('');\n kuadrantApi.getApiProduct(namespace, name)\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 setLifecycle(data.metadata.labels?.lifecycle as Lifecycle || 'production' as Lifecycle);\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?.openAPISpecURL || '');\n const planPolicyCondition = data.status?.conditions?.find(\n (c: any) => c.type === \"PlanPolicyDiscovered\"\n ) || null;\n setPlanPoliciesProps({\n statusCondition: planPolicyCondition,\n discoveredPlans: data.status?.discoveredPlans || null,\n });\n const authPolicyCondition = data.status?.conditions?.find(\n (c: any) => c.type === \"AuthPolicyDiscovered\"\n ) || null;\n // Parse the auth policy name from the AuthPolicyDiscovered condition message\n // It's the only place to get the policy name without fetching all the policies.\n // Consider enhancing the developer portal controller to provide name in an structured way\n const parseNameFromMessage = (value: string) => {\n const parts = value.split(' ');\n return parts.length >= 3 ? parts[2] : '';\n };\n const authPolicyName = authPolicyCondition?.status === \"True\" ? parseNameFromMessage(authPolicyCondition.message ?? \"\") : \"\";\n setAuthPolicyProps({\n statusCondition: authPolicyCondition,\n namespacedName: {\n name: authPolicyName,\n namespace: data.metadata.namespace,\n },\n });\n setOpenAPISpecError(null);\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, kuadrantApi]);\n\n useEffect(() => {\n if (open) {\n setOpenAPISpecError(null);\n }\n }, [open]);\n\n // load ratelimitpolicies\n const {\n value: rateLimitPolicies,\n error: rateLimitPoliciesError\n } = useAsync(async () => {\n return await kuadrantApi.getRateLimitPolicies();\n }, [kuadrantApi, open]);\n\n const selectedRateLimitPolicy = targetRef\n ? getPolicyForRoute(rateLimitPolicies?.items, namespace, targetRef.name)\n : null;\n const rateLimitPolicyAcceptedCondition = selectedRateLimitPolicy?.status?.conditions?.find(\n (c: any) => c.type === \"Accepted\"\n );\n const rateLimitPolicyProps: RateLimitPoliciesProps = {\n namespacedName: {\n namespace: selectedRateLimitPolicy?.metadata.namespace,\n name: selectedRateLimitPolicy?.metadata.name,\n },\n statusCondition: rateLimitPolicyAcceptedCondition,\n }\n\n const handleOpenAPISpecChange = (value: string) => {\n setOpenAPISpec(value);\n setOpenAPISpecError(validateURL(value));\n };\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 // validate retired APIs cannot be published\n if (lifecycle === 'retired' && publishStatus === 'Published') {\n setError('Cannot publish a retired API product. Please set publish status to Draft.');\n setSaving(false);\n return;\n }\n\n try {\n const patch: Partial<APIProduct> = {\n // @ts-ignore We are applying a partial obj, not full\n metadata: {\n labels: {\n lifecycle,\n },\n },\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 && { openAPISpecURL: openAPISpec }),\n },\n } : {}),\n },\n };\n\n await kuadrantApi.updateApiProduct(namespace, name, patch);\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 {rateLimitPoliciesError && (\n <Alert severity=\"error\" style={{ marginBottom: 16 }}>\n <strong>Failed to load RateLimitPolicies:</strong> {rateLimitPoliciesError.message}\n </Alert>\n )}\n {loading ? (\n <Box p={2}>\n {[...Array(8)].map((_, i) => (\n <Box key={i} mb={2}>\n <Skeleton variant=\"text\" width=\"100%\" />\n </Box>\n ))}\n </Box>\n ) : (\n <>\n {/* API product info section */}\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>API product info</strong></Typography>\n </Box>\n <Grid container spacing={2}>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"API product name\"\n value={displayName}\n onChange={e => setDisplayName(e.target.value)}\n placeholder=\"My API\"\n helperText=\"Give a unique name for your API product\"\n margin=\"normal\"\n required\n disabled={saving}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Resource 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=\"Version\"\n value={version}\n onChange={e => setVersion(e.target.value)}\n placeholder=\"v1\"\n helperText=\"Give a version to your API product\"\n margin=\"normal\"\n disabled={saving}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Tag\"\n value={tagInput}\n onChange={e => setTagInput(e.target.value)}\n onKeyPress={e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleAddTag();\n }\n }}\n placeholder=\"Add tag\"\n helperText=\"Add a tag to your API product\"\n margin=\"normal\"\n disabled={saving}\n InputProps={{\n endAdornment: tagInput ? (\n <InputAdornment position=\"end\">\n <IconButton size=\"small\" onClick={handleAddTag} disabled={saving}>\n <AddIcon fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ) : undefined,\n }}\n />\n </Grid>\n {tags.length > 0 && (\n <Grid item xs={12}>\n <Box display=\"flex\" flexWrap=\"wrap\">\n {tags.map(tag => (\n <Chip\n key={tag}\n label={tag}\n onDelete={saving ? undefined : () => handleDeleteTag(tag)}\n size=\"small\"\n className={classes.tagChip}\n disabled={saving}\n />\n ))}\n </Box>\n </Grid>\n )}\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 disabled={saving}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n </Grid>\n\n {/* Associated route section */}\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>Associated route</strong></Typography>\n <Tooltip title=\"The HTTPRoute this API product is associated with\">\n <InfoOutlinedIcon className={classes.infoIcon} />\n </Tooltip>\n </Box>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"OpenAPI Spec URL\"\n value={openAPISpec}\n onChange={e => handleOpenAPISpecChange(e.target.value)}\n placeholder=\"https://api.example.com/openapi.json\"\n helperText={openAPISpecError || \"Enter the full path to your API spec file\"}\n error={!!openAPISpecError}\n margin=\"normal\"\n disabled={saving}\n />\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"Documentation URL\"\n value={docsURL}\n onChange={e => setDocsURL(e.target.value)}\n placeholder=\"https://docs.example.com/api\"\n helperText=\"Link to external documentation for this API\"\n margin=\"normal\"\n disabled={saving}\n />\n </Grid>\n {targetRef && (\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"HTTPRoute\"\n value={`${targetRef.namespace || namespace}/${targetRef.name}`}\n disabled\n helperText=\"Target HTTPRoute (immutable)\"\n margin=\"normal\"\n />\n </Grid>\n )}\n </Grid>\n\n {/* HTTPRoute policies section */}\n {targetRef && (\n <>\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>HTTPRoute policies</strong></Typography>\n <Tooltip title=\"Shows the associated policies and rate limit tiers for the HTTPRoute\">\n <InfoOutlinedIcon className={classes.infoIcon} />\n </Tooltip>\n </Box>\n <ApiProductPolicies\n planPolicy={planPolicyProps}\n authPolicy={authPolicyProps}\n rateLimitPolicy={rateLimitPolicyProps}\n includeTopMargin={false}\n />\n </>\n )}\n\n {/* Lifecycle and Visibility section */}\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>Lifecycle and Visibility</strong></Typography>\n <Tooltip title=\"Control the lifecycle state and catalog visibility of this API product\">\n <InfoOutlinedIcon className={classes.infoIcon} />\n </Tooltip>\n </Box>\n <Grid container spacing={2}>\n <Grid item xs={6}>\n <TextField\n fullWidth\n select\n label=\"Lifecycle\"\n value={lifecycle}\n onChange={e => setLifecycle(e.target.value as Lifecycle)}\n margin=\"normal\"\n helperText=\"API lifecycle state\"\n disabled={saving}\n >\n <MenuItem value=\"experimental\">Experimental</MenuItem>\n <MenuItem value=\"production\">Production</MenuItem>\n <MenuItem value=\"deprecated\">Deprecated</MenuItem>\n <MenuItem value=\"retired\">Retired</MenuItem>\n </TextField>\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=\"Controls catalog visibility\"\n disabled={saving}\n >\n <MenuItem value=\"Draft\">Draft</MenuItem>\n <MenuItem value=\"Published\">Published</MenuItem>\n </TextField>\n </Grid>\n </Grid>\n\n {/* API Key approval section */}\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>API Key approval</strong></Typography>\n <Tooltip title=\"Choose how API key requests are handled for this product\">\n <InfoOutlinedIcon className={classes.infoIcon} />\n </Tooltip>\n </Box>\n <FormControl component=\"fieldset\" disabled={saving}>\n <RadioGroup\n row\n value={approvalMode}\n onChange={e => setApprovalMode(e.target.value as 'automatic' | 'manual')}\n >\n <FormControlLabel\n value=\"manual\"\n control={<Radio color=\"primary\" />}\n label={\n <Box>\n <Typography variant=\"body2\">Need manual approval</Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n Requires approval for requesting this API\n </Typography>\n </Box>\n }\n />\n <FormControlLabel\n value=\"automatic\"\n control={<Radio color=\"primary\" />}\n label={\n <Box>\n <Typography variant=\"body2\">Automatic</Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n Keys are created without need to be approved\n </Typography>\n </Box>\n }\n />\n </RadioGroup>\n </FormControl>\n </>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose} disabled={saving}>Cancel</Button>\n <Button\n onClick={handleSave}\n color=\"primary\"\n variant=\"contained\"\n disabled={saving || loading || !displayName || !description || !!openAPISpecError}\n startIcon={saving ? <CircularProgress size={16} color=\"inherit\" /> : undefined}\n >\n {saving ? 'Saving...' : 'Save'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","/**\n * Find a policy that targets a specific APIProduct\n *\n * @param policies - Array of policies with targetRef\n * @param routeNamespace - Namespace of the target HTTPRoute\n * @param routeName - Name of the target HTTPRoute\n * @returns The matching policy or null if not found\n *\n * @remarks\n * The function matches a policy if:\n * - The targetRef.kind is 'HTTPRoute'\n * - The targetRef.name matches the routeName parameter\n * - The targetRef.namespace (or policy's metadata.namespace if not specified) matches the routeNamespace parameter\n */\nexport const getPolicyForRoute = (\n policies: any[] | undefined,\n routeNamespace: string,\n routeName: string,\n) => {\n if (!policies) return null;\n\n return policies.find((pp: any) => {\n const ref = pp.spec.targetRef;\n const targetNamespace = ref?.namespace ?? pp.metadata.namespace;\n\n return (\n ref?.kind === 'HTTPRoute' &&\n ref?.name === routeName &&\n targetNamespace === routeNamespace\n );\n }) || null;\n};\n","import { CSSProperties } from \"react\";\n\n/**\n * Returns inline styles for API key status chips on the My API Keys page.\n */\nexport const getMyApiKeysStatusChipStyle = (phase: string): CSSProperties => {\n const base = { border: \"none\" };\n switch (phase) {\n case \"Approved\":\n return { ...base, backgroundColor: \"#1976d2\", color: \"#fff\" }; // Blue\n case \"Denied\":\n return { ...base, backgroundColor: \"#d32f2f\", color: \"#fff\" }; // Red\n case \"Failed\":\n return { ...base, backgroundColor: \"#ed6c02\", color: \"#fff\" }; // Orange\n case \"Pending\":\n return { ...base, backgroundColor: \"#9c27b0\", color: \"#fff\" }; // Purple\n default:\n return { ...base, backgroundColor: \"#9c27b0\", color: \"#fff\" }; // Purple (fallback for Pending)\n }\n};\n\n/**\n * Returns inline styles for API key status chips on the Approval Queue page.\n * Uses inline styles to ensure proper specificity with Material-UI Chip.\n */\nexport const getApprovalQueueStatusChipStyle = (phase: string): CSSProperties => {\n const base = { border: \"none\" };\n switch (phase) {\n case \"Approved\":\n return { ...base, backgroundColor: \"#2e7d32\", color: \"#fff\" }; // Green\n case \"Denied\":\n return { ...base, backgroundColor: \"#d32f2f\", color: \"#fff\" }; // Red\n case \"Pending\":\n return { ...base, backgroundColor: \"#ed6c02\", color: \"#fff\" }; // Orange\n default:\n return { ...base, backgroundColor: \"#ed6c02\", color: \"#fff\" }; // Orange (fallback for Pending)\n }\n};\n\n/**\n * Returns inline styles for lifecycle chips.\n * Uses inline styles to ensure proper specificity with Material-UI Chip.\n */\nexport const getLifecycleChipStyle = (lifecycle: string): CSSProperties => {\n switch (lifecycle) {\n case \"production\":\n return { backgroundColor: \"#1976d2\", color: \"#fff\" }; // Blue\n case \"experimental\":\n return { backgroundColor: \"#9c27b0\", color: \"#fff\" }; // Purple\n case \"deprecated\":\n return { backgroundColor: \"#ff9800\", color: \"#fff\" }; // Orange\n case \"retired\":\n return { backgroundColor: \"#d32f2f\", color: \"#fff\" }; // Red\n default:\n return {};\n }\n};\n","// Kubernetes name validation\nexport const validateKubernetesName = (value: string): string | null => {\n if (!value || !value.trim()) {\n return 'Name is required';\n }\n if (value.length > 253) {\n return 'Must be 253 characters or less';\n }\n\n const dns1123Regex = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/;\n\n if (!dns1123Regex.test(value)) {\n return 'Must be lowercase alphanumeric with hyphens, start and end with alphanumeric';\n }\n\n return null;\n};\n\n// URL validation\nexport const validateURL = (value: string): string | null => {\n if (!value) {\n return null;\n }\n\n try {\n const url = new URL(value);\n if (!['http:', 'https:'].includes(url.protocol)) {\n return 'Must be a valid HTTP or HTTPS URL';\n }\n return null;\n } catch {\n return 'Must be a valid URL';\n }\n};\n"],"names":["ApiProductPolicies","planPolicy","authPolicy","rateLimitPolicy","includeTopMargin","theme","useTheme","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Box","mt","p","bgcolor","palette","background","default","jsxs","Grid","container","spacing","statusCondition","status","item","xs","md","Typography","variant","color","gutterBottom","Chip","label","reason","size","style","backgroundColor","marginBottom","discoveredPlans","length","Fragment","display","marginTop","flexWrap","gap","map","plan","idx","limitText","limits","daily","monthly","yearly","tier","namespacedName","name","namespace","ConfirmDeleteDialog","open","title","description","confirmText","severity","deleting","onConfirm","onCancel","inputValue","setInputValue","useState","useEffect","requiresTextConfirmation","canConfirm","Dialog","onClose","undefined","maxWidth","fullWidth","DialogTitle","alignItems","WarningIcon","span","DialogContent","DialogContentText","whiteSpace","strong","TextField","value","onChange","e","target","disabled","autoFocus","placeholder","DialogActions","Button","onClick","startIcon","CircularProgress","useStyles","makeStyles","asterisk","sectionHeader","infoIcon","fontSize","text","secondary","tagChip","marginRight","EditAPIProductDialog","onSuccess","selectedRateLimitPolicy","classes","kuadrantApi","useApi","kuadrantApiRef","loading","setLoading","displayName","setDisplayName","setDescription","version","setVersion","publishStatus","setPublishStatus","lifecycle","setLifecycle","approvalMode","setApprovalMode","tags","setTags","targetRef","setTargetRef","tagInput","setTagInput","contactEmail","setContactEmail","contactTeam","setContactTeam","docsURL","setDocsURL","openAPISpec","setOpenAPISpec","planPolicyProps","setPlanPoliciesProps","authPolicyProps","setAuthPolicyProps","error","setError","saving","setSaving","openAPISpecError","setOpenAPISpecError","getApiProduct","then","data","spec","metadata","labels","contact","email","team","documentation","openAPISpecURL","planPolicyCondition","conditions","find","c","type","authPolicyCondition","authPolicyName","parts","split","parseNameFromMessage","message","catch","err","rateLimitPolicies","rateLimitPoliciesError","useAsync","async","getRateLimitPolicies","getPolicyForRoute","items","rateLimitPolicyAcceptedCondition","rateLimitPolicyProps","handleAddTag","trim","includes","Alert","Array","_","i","mb","Skeleton","width","className","helperText","margin","required","InputLabelProps","onKeyPress","key","preventDefault","InputProps","endAdornment","InputAdornment","position","IconButton","AddIcon","tag","onDelete","handleDeleteTag","tagToDelete","filter","multiline","rows","Tooltip","InfoOutlinedIcon","handleOpenAPISpecChange","validateURL","select","MenuItem","FormControl","component","RadioGroup","row","FormControlLabel","control","Radio","patch","updateApiProduct","Error","String","policies","routeNamespace","routeName","pp","ref","targetNamespace","kind","getMyApiKeysStatusChipStyle","phase","base","border","getApprovalQueueStatusChipStyle","getLifecycleChipStyle","validateKubernetesName","test","url","URL","protocol"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend=self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend||[]).push([[7791],{57791:(e,t,s)=>{s.r(t),s.d(t,{ApiProductDetailPage:()=>E});var i=s(31085),a=s(95478),n=s(49634),l=s(22097),o=s(70980),r=s(35015),d=s(289),c=s(15831),u=s(46681),p=s(42367),v=s(37725),m=s(94641),h=s(96040),A=s(41241),x=s(58837),j=s(10394),y=s(64947),P=s(71677),f=s(29365),g=s(72501),b=s(31653),w=s(38605),I=s(55735),k=s(75625),C=s(39590),S=s(4387),N=s(48351),_=s(26997),R=s(63221),D=s(86197),U=s(89509),z=s(71255),L=s(46205),O=s(97859),T=s(34955);const B=(0,x.A)(e=>({label:{fontWeight:600,color:e.palette.text.secondary,marginBottom:e.spacing(.5),fontSize:"0.75rem",textTransform:"uppercase"},actionButtons:{display:"flex",gap:e.spacing(1),alignItems:"center"},cardHeader:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:e.spacing(2)},cardActions:{display:"flex",gap:e.spacing(1),alignItems:"center"}})),E=()=>{var e,t,s,x,E,H,Y,$,F,K,M,V,W,q,G,J,Q,X,Z,ee,te,se,ie,ae,ne,le,oe,re,de,ce;const ue=B(),{namespace:pe,name:ve}=(0,n.useParams)(),me=(0,n.useNavigate)(),he=(0,l.useApi)(o.s),Ae=(0,l.useApi)(l.alertApiRef),[xe,je]=(0,a.useState)(0),[ye,Pe]=(0,a.useState)(!1),[fe,ge]=(0,a.useState)(!1),[be,we]=(0,a.useState)(!1),[Ie,ke]=(0,a.useState)(0),{allowed:Ce}=(0,L.l)(T.v_),{allowed:Se}=(0,L.l)(T.R_),Ne=Ce,{value:_e,loading:Re,error:De}=(0,r.A)(async()=>await he.getApiProduct(pe,ve),[pe,ve,he,Ie]),{value:Ue}=(0,r.A)(async()=>{var e,t,s;if(!(null==_e||null===(t=_e.spec)||void 0===t||null===(e=t.targetRef)||void 0===e?void 0:e.name))return null;const i=_e.spec.targetRef.name,a=await he.getHttpRoute(pe,i);return(null==a||null===(s=a.spec)||void 0===s?void 0:s.hostnames)||null},[_e,pe,he]),{value:ze,error:Le}=(0,r.A)(async()=>await he.getRateLimitPolicies(),[he,open]),Oe=async()=>{var e,t;if(!_e)return;const s="Published"===(null===(e=_e.spec)||void 0===e?void 0:e.publishStatus)?"Draft":"Published",i=null===(t=_e.metadata.labels)||void 0===t?void 0:t.lifecycle;if("Published"!==s||"retired"!==i)try{await he.updateApiProduct(pe,ve,{spec:{publishStatus:s}}),Ae.post({message:`API Product ${"Published"===s?"published":"unpublished"} successfully`,severity:"success",display:"transient"}),ke(e=>e+1)}catch(e){const t=e instanceof Error?e.message:"unknown error occurred";Ae.post({message:`Failed to update publish status. ${t}`,severity:"error",display:"transient"})}else Ae.post({message:"Cannot publish a retired API product. Please change the lifecycle status first.",severity:"error",display:"transient"})};if(Re)return(0,i.jsxs)(d.Y,{themeId:"tool",children:[(0,i.jsx)(c.Y,{title:"Loading..."}),(0,i.jsx)(u.U,{children:(0,i.jsx)(j.A,{p:2,children:[...Array(5)].map((e,t)=>(0,i.jsx)(j.A,{p:2,children:(0,i.jsx)(S.A,{variant:"text",width:"100%"})},t))})})]});if(De||!_e)return(0,i.jsx)(p._,{error:De||new Error("API product not found")});const Te="Published"===(null===(e=_e.spec)||void 0===e?void 0:e.publishStatus),Be=(null===(s=_e.status)||void 0===s||null===(t=s.conditions)||void 0===t?void 0:t.find(e=>"PlanPolicyDiscovered"===e.type))||null,Ee=(null===(E=_e.status)||void 0===E||null===(x=E.conditions)||void 0===x?void 0:x.find(e=>"AuthPolicyDiscovered"===e.type))||null,He={statusCondition:Be,discoveredPlans:(null===(H=_e.status)||void 0===H?void 0:H.discoveredPlans)||[]};var Ye;const $e={statusCondition:Ee,namespacedName:{name:"True"===(null==Ee?void 0:Ee.status)?(e=>{const t=e.split(" ");return t.length>=3?t[2]:""})(null!==(Ye=Ee.message)&&void 0!==Ye?Ye:""):"",namespace:_e.metadata.namespace}};if(Le)return(0,i.jsx)(p._,{error:Le});const Fe=(null==_e||null===(Y=_e.spec)||void 0===Y?void 0:Y.targetRef)?(0,O.d)(null==ze?void 0:ze.items,_e.metadata.namespace,null==_e||null===($=_e.spec)||void 0===$?void 0:$.targetRef.name):null,Ke=null==Fe||null===(K=Fe.status)||void 0===K||null===(F=K.conditions)||void 0===F?void 0:F.find(e=>"Accepted"===e.type),Me={namespacedName:{namespace:null==Fe?void 0:Fe.metadata.namespace,name:null==Fe?void 0:Fe.metadata.name},statusCondition:Ke},Ve=(null===(V=_e.status)||void 0===V||null===(M=V.discoveredAuthScheme)||void 0===M?void 0:M.authentication)||{},We=Object.values(Ve),qe=We.some(e=>e.hasOwnProperty("jwt")),Ge=We.find(e=>e.hasOwnProperty("jwt")),Je=(null==Ge||null===(W=Ge.jwt)||void 0===W?void 0:W.issuerUrl)||"unknown",Qe=(null===(G=_e.status)||void 0===G||null===(q=G.oidcDiscovery)||void 0===q?void 0:q.tokenEndpoint)||"unknown",Xe=!(!(null===(Q=_e.status)||void 0===Q||null===(J=Q.openapi)||void 0===J?void 0:J.raw)&&!(null===(Z=_e.spec)||void 0===Z||null===(X=Z.documentation)||void 0===X?void 0:X.openAPISpecURL));let Ze=0;const et=Ze++,tt=Xe?Ze++:-1,st=Ze++,it=qe?Ze++:-1;return(0,i.jsxs)(d.Y,{themeId:"tool",children:[(0,i.jsx)(c.Y,{title:(null===(ee=_e.spec)||void 0===ee?void 0:ee.displayName)||_e.metadata.name,subtitle:(null===(te=_e.spec)||void 0===te?void 0:te.description)||"",children:(0,i.jsxs)(j.A,{className:ue.actionButtons,children:[(0,i.jsx)(v.N_,{to:"/kuadrant/api-products",children:(0,i.jsx)(y.A,{startIcon:(0,i.jsx)(I.A,{}),children:"Back"})}),Ne&&(0,i.jsx)(y.A,{variant:"outlined",color:Te?"default":"primary",onClick:Oe,children:Te?"Unpublish API product":"Publish API product"}),Ce&&(0,i.jsx)(P.Ay,{title:"Edit",children:(0,i.jsx)(f.A,{onClick:()=>Pe(!0),size:"small",children:(0,i.jsx)(k.A,{})})}),Se&&(0,i.jsx)(P.Ay,{title:"Delete",children:(0,i.jsx)(f.A,{onClick:()=>ge(!0),size:"small",children:(0,i.jsx)(C.A,{})})})]})}),(0,i.jsxs)(u.U,{children:[(0,i.jsx)(j.A,{mb:2,children:(0,i.jsxs)(m.B,{"aria-label":"breadcrumb",children:[(0,i.jsx)(v.N_,{to:"/kuadrant/api-products",children:"API Products"}),(0,i.jsx)(g.A,{children:(null===(se=_e.spec)||void 0===se?void 0:se.displayName)||_e.metadata.name})]})}),"deprecated"===(null===(ie=_e.metadata.labels)||void 0===ie?void 0:ie.lifecycle)&&(0,i.jsx)(j.A,{mb:2,children:(0,i.jsxs)(N.A,{severity:"warning",children:[(0,i.jsx)("strong",{children:"This API is deprecated."})," Please contact your administrator for more details."]})}),"retired"===(null===(ae=_e.metadata.labels)||void 0===ae?void 0:ae.lifecycle)&&(0,i.jsx)(j.A,{mb:2,children:(0,i.jsxs)(N.A,{severity:"error",children:[(0,i.jsx)("strong",{children:"This API has been retired and is no longer available."})," Please contact your administrator for alternatives."]})}),(0,i.jsx)(j.A,{mb:2,children:(0,i.jsxs)(b.A,{value:xe,onChange:(e,t)=>je(t),indicatorColor:"primary",textColor:"primary",children:[(0,i.jsx)(w.A,{label:"Overview"}),Xe&&(0,i.jsx)(w.A,{label:"Definition"}),(0,i.jsx)(w.A,{label:"Policies"}),qe&&(0,i.jsx)(w.A,{label:"OIDC"})]})}),xe===et&&(0,i.jsxs)(h.n,{title:"API Product",children:[(0,i.jsxs)(j.A,{className:ue.cardHeader,children:[(0,i.jsxs)(j.A,{children:[(0,i.jsx)(g.A,{variant:"caption",className:ue.label,children:"Product Name"}),(0,i.jsx)(g.A,{variant:"h6",children:(null===(ne=_e.spec)||void 0===ne?void 0:ne.displayName)||_e.metadata.name})]}),(0,i.jsxs)(j.A,{className:ue.cardActions,children:[Ne&&(0,i.jsx)(y.A,{variant:"outlined",color:Te?"default":"primary",onClick:Oe,size:"small",children:Te?"Unpublish API product":"Publish API product"}),Ce&&(0,i.jsx)(f.A,{onClick:()=>Pe(!0),size:"small",children:(0,i.jsx)(k.A,{fontSize:"small"})}),Se&&(0,i.jsx)(f.A,{onClick:()=>ge(!0),size:"small",children:(0,i.jsx)(C.A,{fontSize:"small"})})]})]}),(0,i.jsx)(U.O,{product:_e,showStatus:!0,showCatalogLink:!0,httpRouteHostnames:Ue})]}),xe===tt&&Xe&&(0,i.jsx)(h.n,{title:"API Definition",children:(null===(oe=_e.status)||void 0===oe||null===(le=oe.openapi)||void 0===le?void 0:le.raw)?(0,i.jsx)(A.S,{definition:_e.status.openapi.raw}):(0,i.jsx)(g.A,{variant:"body2",color:"textSecondary",children:(null===(de=_e.spec)||void 0===de||null===(re=de.documentation)||void 0===re?void 0:re.openAPISpecURL)?(0,i.jsxs)(i.Fragment,{children:["OpenAPI specification not yet synced. View at:"," ",(0,i.jsx)(v.N_,{to:_e.spec.documentation.openAPISpecURL,target:"_blank",children:_e.spec.documentation.openAPISpecURL})]}):"No OpenAPI specification available for this API product."})}),xe===st&&(0,i.jsx)(h.n,{title:"Discovered Policies",children:(0,i.jsx)(D.K,{planPolicy:He,authPolicy:$e,rateLimitPolicy:Me,includeTopMargin:!1})}),xe===it&&qe&&(0,i.jsx)(z.n,{issuerUrl:Je,tokenEndpoint:Qe})]}),(0,i.jsx)(_.C,{open:ye,onClose:()=>Pe(!1),onSuccess:()=>{Pe(!1),ke(e=>e+1),Ae.post({message:"API Product updated successfully",severity:"success",display:"transient"})},namespace:pe||"",name:ve||""}),(0,i.jsx)(R.K,{open:fe,title:"Delete API Product",description:`Are you sure you want to delete "${(null===(ce=_e.spec)||void 0===ce?void 0:ce.displayName)||_e.metadata.name}"? This action cannot be undone.`,severity:"high",confirmText:_e.metadata.name,deleting:be,onConfirm:async()=>{if(_e){we(!0);try{await he.deleteApiProduct(pe,ve),ge(!1),Ae.post({message:"API Product deleted successfully",severity:"success",display:"transient"}),me("/kuadrant/api-products")}catch(e){const t=e instanceof Error?e.message:"unknown error occurred";Ae.post({message:`Failed to delete API product. ${t}`,severity:"error",display:"transient"})}finally{we(!1)}}},onCancel:()=>ge(!1)})]})}}}]);
2
+ //# sourceMappingURL=7791.8fd95e78.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/7791.8fd95e78.chunk.js","mappings":"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","sources":["webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/components/ApiProductDetailPage/ApiProductDetailPage.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport {\n useApi,\n alertApiRef,\n} from \"@backstage/core-plugin-api\";\nimport { kuadrantApiRef } from '../../api';\nimport { useAsync } from \"react-use\";\nimport {\n Header,\n Page,\n Content,\n ResponseErrorPanel,\n InfoCard,\n Link,\n Breadcrumbs,\n} from \"@backstage/core-components\";\nimport { OpenApiDefinitionWidget } from \"@backstage/plugin-api-docs\";\nimport {\n Box,\n Typography,\n IconButton,\n Tooltip,\n Tabs,\n Tab,\n Button,\n makeStyles,\n} from \"@material-ui/core\";\nimport ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport { Alert, Skeleton } from '@material-ui/lab';\nimport { APIProduct } from \"../../types/api-management\";\nimport { EditAPIProductDialog } from \"../EditAPIProductDialog\";\nimport { ConfirmDeleteDialog } from \"../ConfirmDeleteDialog\";\nimport { ApiProductPolicies, PlanPoliciesProps, AuthPoliciesProps, RateLimitPoliciesProps } from '../ApiProductPolicies';\nimport { ApiProductDetails } from \"../ApiProductDetails\";\nimport { OidcProviderCard } from \"../OidcProviderCard\";\nimport { useKuadrantPermission } from \"../../utils/permissions\";\nimport { getPolicyForRoute } from '../../utils/policies';\nimport {\n kuadrantApiProductUpdateAllPermission,\n kuadrantApiProductDeleteAllPermission,\n} from \"../../permissions\";\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontWeight: 600,\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(0.5),\n fontSize: '0.75rem',\n textTransform: 'uppercase',\n },\n actionButtons: {\n display: \"flex\",\n gap: theme.spacing(1),\n alignItems: \"center\",\n },\n cardHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n marginBottom: theme.spacing(2),\n },\n cardActions: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ApiProductDetailPage = () => {\n const classes = useStyles();\n const { namespace, name } = useParams<{ namespace: string; name: string }>();\n const navigate = useNavigate();\n const kuadrantApi = useApi(kuadrantApiRef);\n const alertApi = useApi(alertApiRef);\n\n const [selectedTab, setSelectedTab] = useState(0);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [deleting, setDeleting] = useState(false);\n const [refreshKey, setRefreshKey] = useState(0);\n\n const { allowed: canUpdateApiProduct } = useKuadrantPermission(kuadrantApiProductUpdateAllPermission);\n const { allowed: canDeleteApiProduct } = useKuadrantPermission(kuadrantApiProductDeleteAllPermission);\n const canPublishApiProduct = canUpdateApiProduct;\n\n const {\n value: product,\n loading,\n error,\n } = useAsync(async () => {\n return await kuadrantApi.getApiProduct(namespace!, name!) as APIProduct;\n }, [namespace, name, kuadrantApi, refreshKey]);\n\n // fetch httproute to get hostnames\n const { value: httpRouteHostnames } = useAsync(async () => {\n if (!product?.spec?.targetRef?.name) {\n return null;\n }\n\n const routeName = product.spec.targetRef.name;\n const route = await kuadrantApi.getHttpRoute(namespace!, routeName)\n\n return route?.spec?.hostnames || null;\n }, [product, namespace, kuadrantApi]);\n\n // load ratelimitpolicies\n const {\n value: rateLimitPolicies,\n error: rateLimitPoliciesError\n } = useAsync(async () => {\n return await kuadrantApi.getRateLimitPolicies();\n }, [kuadrantApi, open]);\n\n const handlePublishToggle = async () => {\n if (!product) return;\n const newStatus = product.spec?.publishStatus === \"Published\" ? \"Draft\" : \"Published\";\n const lifecycle = product.metadata.labels?.lifecycle;\n\n // prevent publishing retired APIs\n if (newStatus === \"Published\" && lifecycle === \"retired\") {\n alertApi.post({\n message: `Cannot publish a retired API product. Please change the lifecycle status first.`,\n severity: \"error\",\n display: \"transient\",\n });\n return;\n }\n\n try {\n // @ts-ignore since updating partially the obj\n await kuadrantApi.updateApiProduct(namespace!, name!, { spec: { publishStatus: newStatus } });\n alertApi.post({\n message: `API Product ${newStatus === \"Published\" ? \"published\" : \"unpublished\"} successfully`,\n severity: \"success\",\n display: \"transient\",\n });\n setRefreshKey((k) => k + 1);\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : \"unknown error occurred\";\n alertApi.post({\n message: `Failed to update publish status. ${errorMessage}`,\n severity: \"error\",\n display: \"transient\",\n });\n }\n };\n\n const handleEditSuccess = () => {\n setEditDialogOpen(false);\n setRefreshKey((k) => k + 1);\n alertApi.post({\n message: \"API Product updated successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n };\n\n const handleDelete = async () => {\n if (!product) return;\n setDeleting(true);\n try {\n await kuadrantApi.deleteApiProduct(namespace!, name!);\n setDeleteDialogOpen(false);\n alertApi.post({\n message: \"API Product deleted successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n navigate(\"/kuadrant/api-products\");\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : \"unknown error occurred\";\n alertApi.post({\n message: `Failed to delete API product. ${errorMessage}`,\n severity: \"error\",\n display: \"transient\",\n });\n } finally {\n setDeleting(false);\n }\n };\n\n if (loading) {\n return (\n <Page themeId=\"tool\">\n <Header title=\"Loading...\" />\n <Content>\n <Box p={2}>\n {[...Array(5)].map((_, i) => (\n <Box key={i} p={2}>\n <Skeleton variant=\"text\" width=\"100%\" />\n </Box>\n ))}\n </Box>\n </Content>\n </Page>\n );\n }\n\n if (error || !product) {\n return (\n <ResponseErrorPanel error={error || new Error(\"API product not found\")} />\n );\n }\n\n const isPublished = product.spec?.publishStatus === \"Published\";\n\n\n // get policy conditions from status\n const planPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"PlanPolicyDiscovered\"\n ) || null;\n const authPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"AuthPolicyDiscovered\"\n ) || null;\n const discoveredPlans = product.status?.discoveredPlans || [];\n\n const planPolicyProps: PlanPoliciesProps = {\n statusCondition: planPolicyCondition,\n discoveredPlans: discoveredPlans,\n };\n // Parse the auth policy name from the AuthPolicyDiscovered condition message\n // It's the only place to get the policy name without fetching all the policies.\n // Consider enhancing the developer portal controller to provide name in an structured way\n const parseNameFromMessage = (value: string) => {\n const parts = value.split(' ');\n return parts.length >= 3 ? parts[2] : '';\n };\n const authPolicyName = authPolicyCondition?.status === \"True\" ? parseNameFromMessage(authPolicyCondition.message ?? \"\") : \"\";\n\n const authPolicyProps: AuthPoliciesProps = {\n statusCondition: authPolicyCondition,\n namespacedName: {\n name: authPolicyName,\n namespace: product.metadata.namespace,\n },\n };\n\n\n if (rateLimitPoliciesError) {\n return (\n <ResponseErrorPanel error={rateLimitPoliciesError} />\n );\n }\n\n const selectedRateLimitPolicy = product?.spec?.targetRef\n ? getPolicyForRoute(rateLimitPolicies?.items, product.metadata.namespace, product?.spec?.targetRef.name)\n : null;\n const rateLimitPolicyAcceptedCondition = selectedRateLimitPolicy?.status?.conditions?.find(\n (c: any) => c.type === \"Accepted\"\n );\n const rateLimitPolicyProps: RateLimitPoliciesProps = {\n namespacedName: {\n namespace: selectedRateLimitPolicy?.metadata.namespace,\n name: selectedRateLimitPolicy?.metadata.name,\n },\n statusCondition: rateLimitPolicyAcceptedCondition,\n }\n\n const authSchemes = product.status?.discoveredAuthScheme?.authentication || {};\n const schemeObjects = Object.values(authSchemes);\n const hasOIDCTab = schemeObjects.some((scheme: any) =>\n scheme.hasOwnProperty(\"jwt\"),\n );\n // Extract JWT issuer from the first JWT scheme\n const jwtScheme = schemeObjects.find((scheme: any) => scheme.hasOwnProperty(\"jwt\"));\n const jwtIssuer = (jwtScheme as any)?.jwt?.issuerUrl || \"unknown\";\n const jwtTokenEndpoint = product.status?.oidcDiscovery?.tokenEndpoint || \"unknown\";\n\n // compute tab indices\n const hasDefinitionTab = !!(product.status?.openapi?.raw || product.spec?.documentation?.openAPISpecURL);\n\n let nextIndex = 0;\n const overviewTabIndex = nextIndex++;\n const definitionTabIndex = hasDefinitionTab ? nextIndex++ : -1;\n const policiesTabIndex = nextIndex++;\n const oidcTabIndex = hasOIDCTab ? nextIndex++ : -1;\n\n return (\n <Page themeId=\"tool\">\n <Header\n title={product.spec?.displayName || product.metadata.name}\n subtitle={product.spec?.description || \"\"}\n >\n <Box className={classes.actionButtons}>\n <Link to=\"/kuadrant/api-products\">\n <Button startIcon={<ArrowBackIcon />}>Back</Button>\n </Link>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <Tooltip title=\"Edit\">\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon />\n </IconButton>\n </Tooltip>\n )}\n {canDeleteApiProduct && (\n <Tooltip title=\"Delete\">\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n </Header>\n <Content>\n <Box mb={2}>\n <Breadcrumbs aria-label=\"breadcrumb\">\n <Link to=\"/kuadrant/api-products\">API Products</Link>\n <Typography>{product.spec?.displayName || product.metadata.name}</Typography>\n </Breadcrumbs>\n </Box>\n\n\n {product.metadata.labels?.lifecycle === 'deprecated' && (\n <Box mb={2}>\n <Alert severity=\"warning\">\n <strong>This API is deprecated.</strong> Please contact your administrator for more details.\n </Alert>\n </Box>\n )}\n\n {product.metadata.labels?.lifecycle === 'retired' && (\n <Box mb={2}>\n <Alert severity=\"error\">\n <strong>This API has been retired and is no longer available.</strong> Please contact your administrator for alternatives.\n </Alert>\n </Box>\n )}\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=\"Overview\" />\n {hasDefinitionTab && <Tab label=\"Definition\" />}\n <Tab label=\"Policies\" />\n {hasOIDCTab && <Tab label=\"OIDC\" />}\n </Tabs>\n </Box>\n\n {selectedTab === overviewTabIndex && (\n <InfoCard title=\"API Product\">\n <Box className={classes.cardHeader}>\n <Box>\n <Typography variant=\"caption\" className={classes.label}>\n Product Name\n </Typography>\n <Typography variant=\"h6\">\n {product.spec?.displayName || product.metadata.name}\n </Typography>\n </Box>\n <Box className={classes.cardActions}>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n size=\"small\"\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon fontSize=\"small\" />\n </IconButton>\n )}\n {canDeleteApiProduct && (\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n </Box>\n\n <ApiProductDetails\n product={product}\n showStatus={true}\n showCatalogLink={true}\n httpRouteHostnames={httpRouteHostnames}\n />\n </InfoCard>\n )}\n\n {selectedTab === definitionTabIndex && hasDefinitionTab && (\n <InfoCard title=\"API Definition\">\n {product.status?.openapi?.raw ? (\n <OpenApiDefinitionWidget definition={product.status.openapi.raw} />\n ) : (\n <Typography variant=\"body2\" color=\"textSecondary\">\n {product.spec?.documentation?.openAPISpecURL ? (\n <>\n OpenAPI specification not yet synced. View at:{\" \"}\n <Link to={product.spec.documentation.openAPISpecURL} target=\"_blank\">\n {product.spec.documentation.openAPISpecURL}\n </Link>\n </>\n ) : (\n \"No OpenAPI specification available for this API product.\"\n )}\n </Typography>\n )}\n </InfoCard>\n )}\n\n {selectedTab === policiesTabIndex && (\n <InfoCard title=\"Discovered Policies\">\n <ApiProductPolicies\n planPolicy={planPolicyProps}\n authPolicy={authPolicyProps}\n rateLimitPolicy={rateLimitPolicyProps}\n includeTopMargin={false}\n />\n </InfoCard>\n )}\n\n {selectedTab === oidcTabIndex && hasOIDCTab && (\n <OidcProviderCard\n issuerUrl={jwtIssuer}\n tokenEndpoint={jwtTokenEndpoint}\n />\n )}\n </Content>\n\n <EditAPIProductDialog\n open={editDialogOpen}\n onClose={() => setEditDialogOpen(false)}\n onSuccess={handleEditSuccess}\n namespace={namespace || \"\"}\n name={name || \"\"}\n />\n\n <ConfirmDeleteDialog\n open={deleteDialogOpen}\n title=\"Delete API Product\"\n description={`Are you sure you want to delete \"${product.spec?.displayName || product.metadata.name}\"? This action cannot be undone.`}\n severity=\"high\"\n confirmText={product.metadata.name}\n deleting={deleting}\n onConfirm={handleDelete}\n onCancel={() => setDeleteDialogOpen(false)}\n />\n </Page>\n );\n};\n"],"names":["useStyles","makeStyles","theme","label","fontWeight","color","palette","text","secondary","marginBottom","spacing","fontSize","textTransform","actionButtons","display","gap","alignItems","cardHeader","justifyContent","cardActions","ApiProductDetailPage","product","selectedRateLimitPolicy","_jwtScheme_jwt","classes","namespace","name","useParams","navigate","useNavigate","kuadrantApi","useApi","kuadrantApiRef","alertApi","alertApiRef","selectedTab","setSelectedTab","useState","editDialogOpen","setEditDialogOpen","deleteDialogOpen","setDeleteDialogOpen","deleting","setDeleting","refreshKey","setRefreshKey","allowed","canUpdateApiProduct","useKuadrantPermission","kuadrantApiProductUpdateAllPermission","canDeleteApiProduct","kuadrantApiProductDeleteAllPermission","canPublishApiProduct","value","loading","error","useAsync","async","getApiProduct","httpRouteHostnames","route","spec","targetRef","routeName","getHttpRoute","hostnames","rateLimitPolicies","rateLimitPoliciesError","getRateLimitPolicies","open","handlePublishToggle","newStatus","publishStatus","lifecycle","metadata","labels","updateApiProduct","post","message","severity","k","err","errorMessage","Error","jsx_runtime","jsxs","Page","themeId","jsx","Header","title","Content","Box","p","Array","map","_","i","Skeleton","variant","width","ResponseErrorPanel","isPublished","planPolicyCondition","status","conditions","find","c","type","authPolicyCondition","planPolicyProps","statusCondition","discoveredPlans","authPolicyProps","namespacedName","parts","split","length","parseNameFromMessage","getPolicyForRoute","items","rateLimitPolicyAcceptedCondition","rateLimitPolicyProps","authSchemes","discoveredAuthScheme","authentication","schemeObjects","Object","values","hasOIDCTab","some","scheme","hasOwnProperty","jwtScheme","jwtIssuer","jwt","issuerUrl","jwtTokenEndpoint","oidcDiscovery","tokenEndpoint","hasDefinitionTab","openapi","raw","documentation","openAPISpecURL","nextIndex","overviewTabIndex","definitionTabIndex","policiesTabIndex","oidcTabIndex","displayName","subtitle","description","className","Link","to","Button","startIcon","ArrowBackIcon","onClick","Tooltip","IconButton","size","EditIcon","DeleteIcon","mb","Breadcrumbs","aria-label","Typography","Alert","strong","Tabs","onChange","newValue","indicatorColor","textColor","Tab","InfoCard","ApiProductDetails","showStatus","showCatalogLink","OpenApiDefinitionWidget","definition","Fragment","target","ApiProductPolicies","planPolicy","authPolicy","rateLimitPolicy","includeTopMargin","OidcProviderCard","EditAPIProductDialog","onClose","onSuccess","ConfirmDeleteDialog","confirmText","onConfirm","deleteApiProduct","onCancel"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend=self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend||[]).push([[8170],{18466:(t,e,n)=>{var a=n(4293),r=n(78920);e.A=void 0;var i=r(n(95478)),o=(0,a(n(74044)).default)(i.createElement("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");e.A=o},39053:(t,e,n)=>{var a=n(4293),r=n(78920);e.A=void 0;var i=r(n(95478)),o=(0,a(n(74044)).default)(i.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"}),"Info");e.A=o},32269:(t,e,n)=>{var a=n(4293),r=n(78920);e.A=void 0;var i=r(n(95478)),o=(0,a(n(74044)).default)(i.createElement("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"Visibility");e.A=o},61524:(t,e,n)=>{var a=n(4293),r=n(78920);e.A=void 0;var i=r(n(95478)),o=(0,a(n(74044)).default)(i.createElement("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");e.A=o},35015:(t,e,n)=>{n.d(e,{A:()=>o});var a=n(95478),r=n(85608),i=n(71581);function o(t,e){void 0===e&&(e=[]);var n=function(t,e,n){void 0===e&&(e=[]),void 0===n&&(n={loading:!1});var o=(0,a.useRef)(0),u=(0,i.A)(),l=(0,a.useState)(n),c=l[0],d=l[1],s=(0,a.useCallback)(function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var a=++o.current;return c.loading||d(function(t){return(0,r.__assign)((0,r.__assign)({},t),{loading:!0})}),t.apply(void 0,e).then(function(t){return u()&&a===o.current&&d({value:t,loading:!1}),t},function(t){return u()&&a===o.current&&d({error:t,loading:!1}),t})},e);return[c,s]}(t,e,{loading:!0}),o=n[0],u=n[1];return(0,a.useEffect)(function(){u()},[u]),o}},42708:(t,e,n)=>{n.r(e),n.d(e,{ApiKeyManagementTab:()=>a._});var a=n(82251)},25467:(t,e,n)=>{n.d(e,{tN:()=>r}),n(31085),n(22097);var a=n(15427);function r(){const t=(0,a.useVersionedContext)("entity-context");if(!t)throw new Error("Entity context is not available");const e=t.atVersion(1);if(!e)throw new Error("EntityContext v1 not available");if(!e.entity)throw new Error("useEntity hook is being called outside of an EntityLayout where the entity has not been loaded. If this is intentional, please use useAsyncEntity instead.");return{entity:e.entity}}(0,a.createVersionedContext)("entity-context")}}]);
2
+ //# sourceMappingURL=8170.ee2d7c50.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/8170.ee2d7c50.chunk.js","mappings":"+KAEAA,EAA6BC,EAAQ,MAErCC,EAA8BD,EAAQ,OAKtCE,EAAAC,OAAe,EAEf,IAAAC,EAAAH,EAAoCD,EAAQ,QAI5CK,GAAA,EAFAN,EAA4CC,EAAQ,QAEpDM,SAAAF,EAAAG,cAAA,QACAC,EAAA,wCACC,OAEDN,EAAAC,EAAeE,uBCjBfN,EAA6BC,EAAQ,MAErCC,EAA8BD,EAAQ,OAKtCE,EAAAC,OAAe,EAEf,IAAAC,EAAAH,EAAoCD,EAAQ,QAI5CK,GAAA,EAFAN,EAA4CC,EAAQ,QAEpDM,SAAAF,EAAAG,cAAA,QACAC,EAAA,qGACC,QAEDN,EAAAC,EAAeE,uBCjBfN,EAA6BC,EAAQ,MAErCC,EAA8BD,EAAQ,OAKtCE,EAAAC,OAAe,EAEf,IAAAC,EAAAH,EAAoCD,EAAQ,QAI5CK,GAAA,EAFAN,EAA4CC,EAAQ,QAEpDM,SAAAF,EAAAG,cAAA,QACAC,EAAA,sNACC,cAEDN,EAAAC,EAAeE,uBCjBfN,EAA6BC,EAAQ,MAErCC,EAA8BD,EAAQ,OAKtCE,EAAAC,OAAe,EAEf,IAAAC,EAAAH,EAAoCD,EAAQ,QAI5CK,GAAA,EAFAN,EAA4CC,EAAQ,QAEpDM,SAAAF,EAAAG,cAAA,QACAC,EAAA,8fACC,iBAEDN,EAAAC,EAAeE,yECjBA,SAAAI,EAAAC,EAAAC,QACf,IAAAA,IAA2BA,EAAA,IAC3B,IAAAC,ECDe,SAAAF,EAAAC,EAAAE,QACf,IAAAF,IAA2BA,EAAA,SAC3B,IAAAE,IAAmCA,EAAA,CAAiBC,SAAA,IACpD,IAAAC,GAAqB,EAAAC,EAAAC,QAAM,GAC3BC,GAAoB,EAAAC,EAAAhB,KACpBS,GAAa,EAAAI,EAAAI,UAAQP,GAAAQ,EAAAT,EAAA,GAAAU,EAAAV,EAAA,GACrBW,GAAmB,EAAAP,EAAAQ,aAAW,WAE9B,IADA,IAAAC,EAAA,GACAC,EAAA,EAAyBA,EAAAC,UAAAC,OAAuBF,IAChDD,EAAAC,GAAAC,UAAAD,GAEA,IAAAG,IAAAd,EAAAe,QAIA,OAHAT,EAAAP,SACAQ,EAAA,SAAAS,GAAuC,OAAQ,EAAAC,EAAAC,WAAS,EAAAD,EAAAC,UAAQ,GAAGF,GAAA,CAAgBjB,SAAA,GAAe,GAElGJ,EAAAwB,WAAA,EAAAT,GAAAU,KAAA,SAAAC,GAEA,OADAlB,KAAAW,IAAAd,EAAAe,SAAAR,EAAA,CAAkEc,MAAAA,EAAAtB,SAAA,IAClEsB,CACA,EAAS,SAAAC,GAET,OADAnB,KAAAW,IAAAd,EAAAe,SAAAR,EAAA,CAAkEe,MAAAA,EAAAvB,SAAA,IAClEuB,CACA,EACA,EAAK1B,GACL,OAAAU,EAAAE,EACA,CDvBae,CAAU5B,EAAAC,EAAA,CACvBG,SAAA,IACKO,EAAAT,EAAA,GAAAW,EAAAX,EAAA,GAIL,OAHI,EAAAI,EAAAuB,WAAS,WACbhB,GACA,EAAK,CAAAA,IACLF,CACA,kJEoBA,SAAAmB,IACA,MAAAC,GAA0B,EAAAC,EAAAC,qBAC1B,kBAEA,IAAAF,EACA,UAAAG,MAAA,mCAEA,MAAAR,EAAAK,EAAAI,UAAA,GACA,IAAAT,EACA,UAAAQ,MAAA,kCAEA,IAAAR,EAAAU,OACA,UAAAF,MACA,8JAGA,OAAWE,OAAAV,EAAAU,OACX,EA3CyB,EAAAJ,EAAAK,wBACzB","sources":["webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@material-ui/icons/Add.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@material-ui/icons/Info.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@material-ui/icons/Visibility.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@material-ui/icons/VisibilityOff.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/react-use/esm/useAsync.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/react-use/esm/useAsyncFn.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./node_modules/@backstage/plugin-catalog-react/dist/hooks/useEntity.esm.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n}), 'Info');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","import { useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nexport default function useAsync(fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useAsyncFn(fn, deps, {\n loading: true,\n }), state = _a[0], callback = _a[1];\n useEffect(function () {\n callback();\n }, [callback]);\n return state;\n}\n","import { __assign } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useMountedState from './useMountedState';\nexport default function useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = useRef(0);\n var isMounted = useMountedState();\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var callback = useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (__assign(__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\n","import { jsx } from 'react/jsx-runtime';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\nimport { AnalyticsContext } from '@backstage/core-plugin-api';\nimport { createVersionedContext, useVersionedContext, createVersionedValueMap } from '@backstage/version-bridge';\n\nconst NewEntityContext = createVersionedContext(\n \"entity-context\"\n);\nconst AsyncEntityProvider = (props) => {\n const { children, entity, loading, error, refresh } = props;\n const value = { entity, loading, error, refresh };\n return /* @__PURE__ */ jsx(NewEntityContext.Provider, { value: createVersionedValueMap({ 1: value }), children: /* @__PURE__ */ jsx(\n AnalyticsContext,\n {\n attributes: {\n ...entity ? { entityRef: stringifyEntityRef(entity) } : void 0\n },\n children\n }\n ) });\n};\nconst EntityProvider = (props) => /* @__PURE__ */ jsx(\n AsyncEntityProvider,\n {\n entity: props.entity,\n loading: !Boolean(props.entity),\n error: void 0,\n refresh: void 0,\n children: props.children\n }\n);\nfunction useEntity() {\n const versionedHolder = useVersionedContext(\n \"entity-context\"\n );\n if (!versionedHolder) {\n throw new Error(\"Entity context is not available\");\n }\n const value = versionedHolder.atVersion(1);\n if (!value) {\n throw new Error(\"EntityContext v1 not available\");\n }\n if (!value.entity) {\n throw new Error(\n \"useEntity hook is being called outside of an EntityLayout where the entity has not been loaded. If this is intentional, please use useAsyncEntity instead.\"\n );\n }\n return { entity: value.entity };\n}\nfunction useAsyncEntity() {\n const versionedHolder = useVersionedContext(\n \"entity-context\"\n );\n if (!versionedHolder) {\n throw new Error(\"Entity context is not available\");\n }\n const value = versionedHolder.atVersion(1);\n if (!value) {\n throw new Error(\"EntityContext v1 not available\");\n }\n const { entity, loading, error, refresh } = value;\n return { entity, loading, error, refresh };\n}\n\nexport { AsyncEntityProvider, EntityProvider, useAsyncEntity, useEntity };\n//# sourceMappingURL=useEntity.esm.js.map\n"],"names":["_interopRequireDefault","__webpack_require__","_interopRequireWildcard","exports","A","React","_default","default","createElement","d","useAsync","fn","deps","_a","initialState","loading","lastCallId","index_js_","useRef","isMounted","useMountedState","useState","state","set","callback","useCallback","args","_i","arguments","length","callId","current","prevState","tslib_es6","__assign","apply","then","value","error","useAsyncFn","useEffect","useEntity","versionedHolder","_backstage_version_bridge__WEBPACK_IMPORTED_MODULE_2__","useVersionedContext","Error","atVersion","entity","createVersionedContext"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see 8563.c70c61a5.chunk.js.LICENSE.txt */
2
+ (self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend=self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend||[]).push([[8563],{39330:(e,t,n)=>{"use strict";var r=n(4293),o=n(78920);t.A=void 0;var i=o(n(95478)),a=(0,r(n(74044)).default)(i.createElement("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}),"OpenInNew");t.A=a},61513:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var i,a,c=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var l in i=Object(arguments[s]))n.call(i,l)&&(c[l]=i[l]);if(t){a=t(i);for(var u=0;u<a.length;u++)r.call(i,a[u])&&(c[a[u]]=i[a[u]])}}return c}},79772:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function i(e,a){if(e===a)return!0;if(e&&a&&"object"==typeof e&&"object"==typeof a){if(e.constructor!==a.constructor)return!1;var c,s,l,u;if(Array.isArray(e)){if((c=e.length)!=a.length)return!1;for(s=c;0!==s--;)if(!i(e[s],a[s]))return!1;return!0}if(n&&e instanceof Map&&a instanceof Map){if(e.size!==a.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!a.has(s.value[0]))return!1;for(u=e.entries();!(s=u.next()).done;)if(!i(s.value[1],a.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&a instanceof Set){if(e.size!==a.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!a.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(a)){if((c=e.length)!=a.length)return!1;for(s=c;0!==s--;)if(e[s]!==a[s])return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof a.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof a.toString)return e.toString()===a.toString();if((c=(l=Object.keys(e)).length)!==Object.keys(a).length)return!1;for(s=c;0!==s--;)if(!Object.prototype.hasOwnProperty.call(a,l[s]))return!1;if(t&&e instanceof Element)return!1;for(s=c;0!==s--;)if(("_owner"!==l[s]&&"__v"!==l[s]&&"__o"!==l[s]||!e.$$typeof)&&!i(e[l[s]],a[l[s]]))return!1;return!0}return e!=e&&a!=a}e.exports=function(e,t){try{return i(e,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},86399:(e,t,n)=>{"use strict";var r,o=n(95478),i=(r=o)&&"object"==typeof r&&"default"in r?r.default:r;function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=!("undefined"==typeof window||!window.document||!window.document.createElement);e.exports=function(e,t,n){if("function"!=typeof e)throw new Error("Expected reducePropsToState to be a function.");if("function"!=typeof t)throw new Error("Expected handleStateChangeOnClient to be a function.");if(void 0!==n&&"function"!=typeof n)throw new Error("Expected mapStateOnServer to either be undefined or a function.");return function(r){if("function"!=typeof r)throw new Error("Expected WrappedComponent to be a React component.");var s,l=[];function u(){s=e(l.map(function(e){return e.props})),p.canUseDOM?t(s):n&&(s=n(s))}var p=function(e){var t,n;function o(){return e.apply(this,arguments)||this}n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o.peek=function(){return s},o.rewind=function(){if(o.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var e=s;return s=void 0,l=[],e};var a=o.prototype;return a.UNSAFE_componentWillMount=function(){l.push(this),u()},a.componentDidUpdate=function(){u()},a.componentWillUnmount=function(){var e=l.indexOf(this);l.splice(e,1),u()},a.render=function(){return i.createElement(r,this.props)},o}(o.PureComponent);return a(p,"displayName","SideEffect("+function(e){return e.displayName||e.name||"Component"}(r)+")"),a(p,"canUseDOM",c),p}}},37725:(e,t,n)=>{"use strict";n.d(t,{N_:()=>w});var r=n(31085),o=n(22097),i=n(49203),a=n(37976),c=n(72501),s=n(53373),l=n.n(s),u=n(45250),p=n(95478),f=n(49634),d=n(39330);const h=(0,a.makeStyles)(e=>({visuallyHidden:{clip:"rect(0 0 0 0)",clipPath:"inset(50%)",overflow:"hidden",position:"absolute",userSelect:"none",whiteSpace:"nowrap",height:1,width:1},externalLink:{position:"relative"},externalLinkIcon:{verticalAlign:"bottom",marginLeft:e.spacing(.5)}}),{name:"Link"}),g=()=>{const e=(0,o.useApp)().getSystemIcon("externalLink")||d.A,t=h();return(0,r.jsx)(e,{className:t.externalLinkIcon})},m=e=>/^([a-z+.-]+):/.test(e),y=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,b=window.open;if(b&&!b.__backstage){const e=function(...e){const t=String(e[0]);if(y.test(t))throw new Error("Rejected window.open() with a javascript: URL as a security precaution");return b.apply(this,e)};e.__backstage=!0,window.open=e}const v=e=>e instanceof Array?e.map(v).join(" ").trim():"object"==typeof e&&e?v(e?.props?.children):["string","number"].includes(typeof e)?String(e):"",w=(0,p.forwardRef)(({onClick:e,noTrack:t,externalLinkIcon:n,...a},s)=>{const p=h(),d=(0,o.useAnalytics)(),b=function(){const[e]=(0,f.createRoutesFromChildren)((0,r.jsx)(f.Route,{index:!0,element:(0,r.jsx)("div",{})}));return!e.index}()?(e=>{let t=String(e);const n=(()=>{const e=(()=>{try{return(0,o.useApi)(o.configApiRef).getOptionalString("app.baseUrl")}catch{return}})()??"/",{pathname:t}=new URL(e,"http://sample.dev");return(0,u.trimEnd)(t,"/")})(),r=m(t),i=t.startsWith(n);return r||i||(t=n.concat(t)),t})(a.to):a.to,w=v(a.children)||b,T=m(b),A=T&&!!/^https?:/.exec(b);if(y.test(b))throw new Error("Link component rejected javascript: URL as a security precaution");const x=n=>{e?.(n),t||d.captureEvent("click",w,{attributes:{to:b}})};return T?(0,r.jsxs)(i.A,{...A?{target:"_blank",rel:"noopener"}:{},...a,...a["aria-label"]?{"aria-label":`${a["aria-label"]}, Opens in a new window`}:{},ref:s,href:b,onClick:x,className:l()(p.externalLink,a.className),children:[a.children,n&&(0,r.jsx)(g,{}),(0,r.jsx)(c.A,{component:"span",className:p.visuallyHidden,children:", Opens in a new window"})]}):(0,r.jsx)(i.A,{...a,ref:s,component:f.Link,to:b,onClick:x})})},94641:(e,t,n)=>{"use strict";n.d(t,{B:()=>g});var r=n(31085),o=n(10394),i=n(45634),a=n(58007),c=n(8109),s=n(55197),l=n(37976),u=n(72501),p=n(95478);const f=(0,l.withStyles)({root:{textDecoration:"underline",cursor:"pointer"}},{name:"BackstageBreadcrumbsClickableText"})(u.A),d=(0,l.withStyles)({root:{textDecoration:"underline",color:"inherit"}},{name:"BackstageBreadcrumbsStyledBox"})(o.A),h=(0,l.withStyles)({root:{fontStyle:"italic"}},{name:"BreadcrumbsCurrentPage"})(o.A);function g(e){const{children:t,...n}=e,[o,l]=(0,p.useState)(null),u=p.Children.toArray(t),[g,m,...y]=u,b=y.length?y.pop():u[u.length-1],v=u.length>3,w=Boolean(o);return(0,r.jsxs)(p.Fragment,{children:[(0,r.jsxs)(i.A,{"aria-label":"breadcrumb",...n,children:[u.length>1&&(0,r.jsx)(d,{clone:!0,children:g}),u.length>2&&(0,r.jsx)(d,{clone:!0,children:m}),v&&(0,r.jsx)(f,{onClick:e=>{l(e.currentTarget)},children:"..."}),(0,r.jsx)(h,{children:b})]}),(0,r.jsx)(s.Ay,{open:w,anchorEl:o,onClose:()=>{l(null)},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:(0,r.jsx)(a.A,{children:y.map((e,t)=>(0,r.jsx)(c.A,{button:!0,children:(0,r.jsx)(d,{clone:!0,children:e})},t))})})]})}},46681:(e,t,n)=>{"use strict";n.d(t,{U:()=>s});var r=n(31085),o=n(37976),i=n(53373),a=n.n(i);const c=(0,o.makeStyles)(e=>({root:{gridArea:"pageContent",minWidth:0,paddingTop:e.spacing(3),paddingBottom:e.spacing(3),paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}},stretch:{display:"flex",flexDirection:"column",flexGrow:1},noPadding:{padding:0}}),{name:"BackstageContent"});function s(e){const{className:t,stretch:n,noPadding:o,children:i,...s}=e,l=c();return(0,r.jsx)("article",{...s,className:a()(l.root,t,{[l.stretch]:n,[l.noPadding]:o}),children:i})}},15831:(e,t,n)=>{"use strict";n.d(t,{Y:()=>be});var r,o,i,a,c=n(31085),s=n(22097),l=n(10394),u=n(42899),p=n(37976),f=n(71677),d=n(72501),h=n(39067),g=n.n(h),m=n(86399),y=n.n(m),b=n(79772),v=n.n(b),w=n(95478),T=n.n(w),A=n(61513),x=n.n(A),j="bodyAttributes",S="htmlAttributes",O={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},C=(Object.keys(O).map(function(e){return O[e]}),"charset"),k="cssText",E="href",L="innerHTML",P="itemprop",I="rel",N={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},B=Object.keys(N).reduce(function(e,t){return e[N[t]]=t,e},{}),R=[O.NOSCRIPT,O.SCRIPT,O.STYLE],_="data-react-helmet",M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},H=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},D=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},F=function(e){return!1===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")},Y=function(e){var t=$(e,O.TITLE),n=$(e,"titleTemplate");if(n&&t)return n.replace(/%s/g,function(){return Array.isArray(t)?t.join(""):t});var r=$(e,"defaultTitle");return t||r||void 0},q=function(e){return $(e,"onChangeClientState")||function(){}},U=function(e,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return z({},e,t)},{})},W=function(e,t){return t.filter(function(e){return void 0!==e[O.BASE]}).map(function(e){return e[O.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o++){var i=r[o].toLowerCase();if(-1!==e.indexOf(i)&&n[i])return t.concat(n)}return t},[])},V=function(e,t,n){var r={};return n.filter(function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&X("Helmet: "+e+' should be of type "Array". Instead found type "'+M(t[e])+'"'),!1)}).map(function(t){return t[e]}).reverse().reduce(function(e,n){var o={};n.filter(function(e){for(var n=void 0,i=Object.keys(e),a=0;a<i.length;a++){var c=i[a],s=c.toLowerCase();-1===t.indexOf(s)||n===I&&"canonical"===e[n].toLowerCase()||s===I&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(c)||c!==L&&c!==k&&c!==P||(n=c)}if(!n||!e[n])return!1;var l=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][l]&&(o[n][l]=!0,!0)}).reverse().forEach(function(t){return e.push(t)});for(var i=Object.keys(o),a=0;a<i.length;a++){var c=i[a],s=x()({},r[c],o[c]);r[c]=s}return e},[]).reverse()},$=function(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},K=(r=Date.now(),function(e){var t=Date.now();t-r>16?(r=t,e(t)):setTimeout(function(){K(e)},0)}),G=function(e){return clearTimeout(e)},J="undefined"!=typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||K:n.g.requestAnimationFrame||K,Q="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||G:n.g.cancelAnimationFrame||G,X=function(e){return console&&"function"==typeof console.warn&&console.warn(e)},Z=null,ee=function(e,t){var n=e.baseTag,r=e.bodyAttributes,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,c=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,u=e.styleTags,p=e.title,f=e.titleAttributes;re(O.BODY,r),re(O.HTML,o),ne(p,f);var d={baseTag:oe(O.BASE,n),linkTags:oe(O.LINK,i),metaTags:oe(O.META,a),noscriptTags:oe(O.NOSCRIPT,c),scriptTags:oe(O.SCRIPT,l),styleTags:oe(O.STYLE,u)},h={},g={};Object.keys(d).forEach(function(e){var t=d[e],n=t.newTags,r=t.oldTags;n.length&&(h[e]=n),r.length&&(g[e]=d[e].oldTags)}),t&&t(),s(e,h,g)},te=function(e){return Array.isArray(e)?e.join(""):e},ne=function(e,t){void 0!==e&&document.title!==e&&(document.title=te(e)),re(O.TITLE,t)},re=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(_),o=r?r.split(","):[],i=[].concat(o),a=Object.keys(t),c=0;c<a.length;c++){var s=a[c],l=t[s]||"";n.getAttribute(s)!==l&&n.setAttribute(s,l),-1===o.indexOf(s)&&o.push(s);var u=i.indexOf(s);-1!==u&&i.splice(u,1)}for(var p=i.length-1;p>=0;p--)n.removeAttribute(i[p]);o.length===i.length?n.removeAttribute(_):n.getAttribute(_)!==a.join(",")&&n.setAttribute(_,a.join(","))}},oe=function(e,t){var n=document.head||document.querySelector(O.HEAD),r=n.querySelectorAll(e+"["+_+"]"),o=Array.prototype.slice.call(r),i=[],a=void 0;return t&&t.length&&t.forEach(function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===L)n.innerHTML=t.innerHTML;else if(r===k)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var c=void 0===t[r]?"":t[r];n.setAttribute(r,c)}n.setAttribute(_,"true"),o.some(function(e,t){return a=t,n.isEqualNode(e)})?o.splice(a,1):i.push(n)}),o.forEach(function(e){return e.parentNode.removeChild(e)}),i.forEach(function(e){return n.appendChild(e)}),{oldTags:o,newTags:i}},ie=function(e){return Object.keys(e).reduce(function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r},"")},ae=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[N[n]||n]=e[n],t},t)},ce=function(e,t,n){switch(e){case O.TITLE:return{toComponent:function(){return e=t.title,n=t.titleAttributes,(r={key:e})[_]=!0,o=ae(n,r),[T().createElement(O.TITLE,o,e)];var e,n,r,o},toString:function(){return function(e,t,n,r){var o=ie(n),i=te(t);return o?"<"+e+" "+_+'="true" '+o+">"+F(i,r)+"</"+e+">":"<"+e+" "+_+'="true">'+F(i,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case j:case S:return{toComponent:function(){return ae(t)},toString:function(){return ie(t)}};default:return{toComponent:function(){return function(e,t){return t.map(function(t,n){var r,o=((r={key:n})[_]=!0,r);return Object.keys(t).forEach(function(e){var n=N[e]||e;if(n===L||n===k){var r=t.innerHTML||t.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=t[e]}),T().createElement(e,o)})}(e,t)},toString:function(){return function(e,t,n){return t.reduce(function(t,r){var o=Object.keys(r).filter(function(e){return!(e===L||e===k)}).reduce(function(e,t){var o=void 0===r[t]?t:t+'="'+F(r[t],n)+'"';return e?e+" "+o:o},""),i=r.innerHTML||r.cssText||"",a=-1===R.indexOf(e);return t+"<"+e+" "+_+'="true" '+o+(a?"/>":">"+i+"</"+e+">")},"")}(e,t,n)}}}},se=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,c=e.noscriptTags,s=e.scriptTags,l=e.styleTags,u=e.title,p=void 0===u?"":u,f=e.titleAttributes;return{base:ce(O.BASE,t,r),bodyAttributes:ce(j,n,r),htmlAttributes:ce(S,o,r),link:ce(O.LINK,i,r),meta:ce(O.META,a,r),noscript:ce(O.NOSCRIPT,c,r),script:ce(O.SCRIPT,s,r),style:ce(O.STYLE,l,r),title:ce(O.TITLE,{title:p,titleAttributes:f},r)}},le=y()(function(e){return{baseTag:W([E,"target"],e),bodyAttributes:U(j,e),defer:$(e,"defer"),encode:$(e,"encodeSpecialCharacters"),htmlAttributes:U(S,e),linkTags:V(O.LINK,[I,E],e),metaTags:V(O.META,["name",C,"http-equiv","property",P],e),noscriptTags:V(O.NOSCRIPT,[L],e),onChangeClientState:q(e),scriptTags:V(O.SCRIPT,["src",L],e),styleTags:V(O.STYLE,[k],e),title:Y(e),titleAttributes:U("titleAttributes",e)}},function(e){Z&&Q(Z),e.defer?Z=J(function(){ee(e,function(){Z=null})}):(ee(e),Z=null)},se)(function(){return null}),ue=(o=le,a=i=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return!v()(this.props,e)},t.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case O.SCRIPT:case O.NOSCRIPT:return{innerHTML:t};case O.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},t.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren,o=e.newChildProps,i=e.nestedChildren;return z({},r,((t={})[n.type]=[].concat(r[n.type]||[],[z({},o,this.mapNestedChildrenToProps(n,i))]),t))},t.prototype.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,i=e.newChildProps,a=e.nestedChildren;switch(r.type){case O.TITLE:return z({},o,((t={})[r.type]=a,t.titleAttributes=z({},i),t));case O.BODY:return z({},o,{bodyAttributes:z({},i)});case O.HTML:return z({},o,{htmlAttributes:z({},i)})}return z({},o,((n={})[r.type]=z({},i),n))},t.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=z({},t);return Object.keys(e).forEach(function(t){var r;n=z({},n,((r={})[t]=e[t],r))}),n},t.prototype.warnOnInvalidChildren=function(e,t){return!0},t.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return T().Children.forEach(e,function(e){if(e&&e.props){var o=e.props,i=o.children,a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[B[n]||n]=e[n],t},t)}(D(o,["children"]));switch(n.warnOnInvalidChildren(e,i),e.type){case O.LINK:case O.META:case O.NOSCRIPT:case O.SCRIPT:case O.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:a,nestedChildren:i});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:a,nestedChildren:i})}}}),t=this.mapArrayTypeChildrenToProps(r,t)},t.prototype.render=function(){var e=this.props,t=e.children,n=D(e,["children"]),r=z({},n);return t&&(r=this.mapChildrenToProps(t,r)),T().createElement(o,r)},H(t,null,[{key:"canUseDOM",set:function(e){o.canUseDOM=e}}]),t}(T().Component),i.propTypes={base:g().object,bodyAttributes:g().object,children:g().oneOfType([g().arrayOf(g().node),g().node]),defaultTitle:g().string,defer:g().bool,encodeSpecialCharacters:g().bool,htmlAttributes:g().object,link:g().arrayOf(g().object),meta:g().arrayOf(g().object),noscript:g().arrayOf(g().object),onChangeClientState:g().func,script:g().arrayOf(g().object),style:g().arrayOf(g().object),title:g().string,titleAttributes:g().object,titleTemplate:g().string},i.defaultProps={defer:!0,encodeSpecialCharacters:!0},i.peek=o.peek,i.rewind=function(){var e=o.rewind();return e||(e=se({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),e},a);ue.renderStatic=ue.rewind;var pe=n(37725),fe=n(94641);(0,p.makeStyles)(e=>({root:{width:"100%",transition:"padding-left 0.1s ease-out",isolation:"isolate",[e.breakpoints.up("sm")]:{paddingLeft:e=>e.isPinned?e.sidebarConfig.drawerWidthOpen:e.sidebarConfig.drawerWidthClosed},[e.breakpoints.down("xs")]:{paddingBottom:e=>e.sidebarConfig.mobileSidebarHeight},"@media print":{padding:"0px !important"}},content:{zIndex:0,isolation:"isolate","&:focus":{outline:0}}}),{name:"BackstageSidebarPage"});const de=(0,w.createContext)({content:{contentRef:void 0}}),he=(0,p.makeStyles)(e=>({header:{gridArea:"pageHeader",padding:e.spacing(3),width:"100%",boxShadow:e.shadows[4],position:"relative",zIndex:100,display:"flex",flexDirection:"row",alignItems:"center",backgroundImage:e.page.backgroundImage,backgroundPosition:"center",backgroundSize:"cover",[e.breakpoints.down("sm")]:{flexWrap:"wrap"}},leftItemsBox:{maxWidth:"100%",flexGrow:1},rightItemsBox:{width:"auto",alignItems:"center"},title:{color:e.page.fontColor,wordBreak:"break-word",fontSize:e.typography.h3.fontSize,marginBottom:0},subtitle:{color:e.page.fontColor,opacity:.8,display:"inline-block",marginTop:e.spacing(1),maxWidth:"75ch"},type:{textTransform:"uppercase",fontSize:11,opacity:.8,marginBottom:e.spacing(1),color:e.page.fontColor},breadcrumb:{color:e.page.fontColor},breadcrumbType:{fontSize:"inherit",opacity:.7,marginRight:-e.spacing(.3),marginBottom:e.spacing(.3)},breadcrumbTitle:{fontSize:"inherit",marginLeft:-e.spacing(.3),marginBottom:e.spacing(.3)}}),{name:"BackstageHeader"}),ge=({type:e,typeLink:t,classes:n,pageTitle:r})=>e?t?(0,c.jsxs)(fe.B,{className:n.breadcrumb,children:[(0,c.jsx)(pe.N_,{to:t,children:e}),(0,c.jsx)(d.A,{children:r})]}):(0,c.jsx)(d.A,{className:n.type,children:e}):null,me=({pageTitle:e,classes:t,tooltip:n})=>{const{contentRef:r}=function(){const{content:e}=(0,w.useContext)(de);return{focusContent:(0,w.useCallback)(()=>{e?.contentRef?.current?.focus()},[e]),contentRef:e?.contentRef}}(),o=(0,c.jsx)(d.A,{ref:r,tabIndex:-1,className:t.title,variant:"h1",children:e});return n?(0,c.jsx)(f.Ay,{title:n,placement:"top-start",children:o}):o},ye=({classes:e,subtitle:t})=>t?"string"!=typeof t?(0,c.jsx)(c.Fragment,{children:t}):(0,c.jsx)(d.A,{className:e.subtitle,variant:"subtitle2",component:"span",children:t}):null;function be(e){const{children:t,pageTitleOverride:n,style:r,subtitle:o,title:i,tooltip:a,type:p,typeLink:f}=e,d=he(),h=(0,s.useApi)(s.configApiRef).getOptionalString("app.title")||"Backstage",g=n||i,m=i||n,y=`${g} | %s | ${h}`,b=`${g} | ${h}`;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ue,{titleTemplate:y,defaultTitle:b}),(0,c.jsxs)("header",{style:r,className:d.header,children:[(0,c.jsxs)(l.A,{className:d.leftItemsBox,children:[(0,c.jsx)(ge,{classes:d,type:p,typeLink:f,pageTitle:m}),(0,c.jsx)(me,{classes:d,pageTitle:m,tooltip:a}),(0,c.jsx)(ye,{classes:d,subtitle:o})]}),(0,c.jsx)(u.A,{container:!0,className:d.rightItemsBox,spacing:4,children:t})]})]})}},289:(e,t,n)=>{"use strict";n.d(t,{Y:()=>s});var r=n(31085),o=n(37976),i=n(53373),a=n.n(i);const c=(0,o.makeStyles)(e=>({root:{display:"grid",gridTemplateAreas:"'pageHeader pageHeader pageHeader' 'pageSubheader pageSubheader pageSubheader' 'pageNav pageContent pageSidebar'",gridTemplateRows:"max-content auto 1fr",gridTemplateColumns:"auto 1fr auto",overflowY:"auto",height:"100vh",[e.breakpoints.down("xs")]:{height:"100%"},"@media print":{display:"block",height:"auto",overflowY:"inherit"}}}),{name:"BackstagePage"});function s(e){const{themeId:t,className:n,children:i}=e,s=c();return(0,r.jsx)(o.ThemeProvider,{theme:e=>({...e,page:e.getPageTheme({themeId:t})}),children:(0,r.jsx)("main",{className:a()(s.root,n),children:i})})}}}]);
3
+ //# sourceMappingURL=8563.c70c61a5.chunk.js.map
@@ -0,0 +1,5 @@
1
+ /*
2
+ object-assign
3
+ (c) Sindre Sorhus
4
+ @license MIT
5
+ */