@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.
- package/dist/.config-schema.json +46 -46
- package/dist/@mf-types.zip +0 -0
- package/dist/mf-manifest.json +1 -1
- package/dist/mf-stats.json +1 -1
- package/dist/remoteEntry.js +2 -2
- package/dist/static/{runtime.4487ce49.js → runtime.70b7537d.js} +3 -3
- package/dist/static/{runtime.4487ce49.js.map → runtime.70b7537d.js.map} +1 -1
- package/dist/static/{vendor.4487ce49.js → vendor.70b7537d.js} +1 -1
- package/dist/static/{vendor.4487ce49.js.map → vendor.70b7537d.js.map} +1 -1
- package/dist-scalprum/configSchema.json +27 -0
- package/dist-scalprum/kuadrant.kuadrant-backstage-plugin-frontend.44bacdfb1c0370d4879d.js +2 -0
- package/dist-scalprum/kuadrant.kuadrant-backstage-plugin-frontend.44bacdfb1c0370d4879d.js.map +1 -0
- package/dist-scalprum/plugin-manifest.json +11 -0
- package/dist-scalprum/static/1037.30050946.chunk.js +2 -0
- package/dist-scalprum/static/1037.30050946.chunk.js.map +1 -0
- package/dist-scalprum/static/1340.8cd13740.chunk.js +3 -0
- package/dist-scalprum/static/1340.8cd13740.chunk.js.LICENSE.txt +18 -0
- package/dist-scalprum/static/1340.8cd13740.chunk.js.map +1 -0
- package/dist-scalprum/static/1719.e8f111d8.chunk.js +2 -0
- package/dist-scalprum/static/1719.e8f111d8.chunk.js.map +1 -0
- package/dist-scalprum/static/1931.4bfc9098.chunk.js +2 -0
- package/dist-scalprum/static/1931.4bfc9098.chunk.js.map +1 -0
- package/dist-scalprum/static/20.1b5831f0.chunk.js +3 -0
- package/dist-scalprum/static/20.1b5831f0.chunk.js.LICENSE.txt +14 -0
- package/dist-scalprum/static/20.1b5831f0.chunk.js.map +1 -0
- package/dist-scalprum/static/2251.ff998bd6.chunk.js +2 -0
- package/dist-scalprum/static/2251.ff998bd6.chunk.js.map +1 -0
- package/dist-scalprum/static/2769.3ab6acb7.chunk.js +2 -0
- package/dist-scalprum/static/2769.3ab6acb7.chunk.js.map +1 -0
- package/dist-scalprum/static/2821.1e3d6dc4.chunk.js +2 -0
- package/dist-scalprum/static/2821.1e3d6dc4.chunk.js.map +1 -0
- package/dist-scalprum/static/2822.ce006976.chunk.js +2 -0
- package/dist-scalprum/static/2822.ce006976.chunk.js.map +1 -0
- package/dist-scalprum/static/2952.60bab809.chunk.js +2 -0
- package/dist-scalprum/static/2952.60bab809.chunk.js.map +1 -0
- package/dist-scalprum/static/2967.06a5593b.chunk.js +2 -0
- package/dist-scalprum/static/2967.06a5593b.chunk.js.map +1 -0
- package/dist-scalprum/static/3007.7481e781.chunk.js +2 -0
- package/dist-scalprum/static/3007.7481e781.chunk.js.map +1 -0
- package/dist-scalprum/static/3015.2dad3eec.chunk.js +3 -0
- package/dist-scalprum/static/3015.2dad3eec.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/3015.2dad3eec.chunk.js.map +1 -0
- package/dist-scalprum/static/3144.cbed804d.chunk.js +3 -0
- package/dist-scalprum/static/3144.cbed804d.chunk.js.LICENSE.txt +19 -0
- package/dist-scalprum/static/3144.cbed804d.chunk.js.map +1 -0
- package/dist-scalprum/static/327.a377854c.chunk.js +2 -0
- package/dist-scalprum/static/327.a377854c.chunk.js.map +1 -0
- package/dist-scalprum/static/3657.68703526.chunk.js +3 -0
- package/dist-scalprum/static/3657.68703526.chunk.js.LICENSE.txt +8 -0
- package/dist-scalprum/static/3657.68703526.chunk.js.map +1 -0
- package/dist-scalprum/static/3658.8a3da139.chunk.js +2 -0
- package/dist-scalprum/static/3658.8a3da139.chunk.js.map +1 -0
- package/dist-scalprum/static/3897.53c31fae.chunk.js +2 -0
- package/dist-scalprum/static/3897.53c31fae.chunk.js.map +1 -0
- package/dist-scalprum/static/3917.f6c5d76f.chunk.js +2 -0
- package/dist-scalprum/static/3917.f6c5d76f.chunk.js.map +1 -0
- package/dist-scalprum/static/3947.cd00bcd5.chunk.js +2 -0
- package/dist-scalprum/static/3947.cd00bcd5.chunk.js.map +1 -0
- package/dist-scalprum/static/4041.12a0055c.chunk.js +3 -0
- package/dist-scalprum/static/4041.12a0055c.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/4041.12a0055c.chunk.js.map +1 -0
- package/dist-scalprum/static/4083.e067ea26.chunk.js +3 -0
- package/dist-scalprum/static/4083.e067ea26.chunk.js.LICENSE.txt +18 -0
- package/dist-scalprum/static/4083.e067ea26.chunk.js.map +1 -0
- package/dist-scalprum/static/438.32c3e072.chunk.js +2 -0
- package/dist-scalprum/static/438.32c3e072.chunk.js.map +1 -0
- package/dist-scalprum/static/4491.b4aa3375.chunk.js +2 -0
- package/dist-scalprum/static/4491.b4aa3375.chunk.js.map +1 -0
- package/dist-scalprum/static/4570.f63a94b5.chunk.js +3 -0
- package/dist-scalprum/static/4570.f63a94b5.chunk.js.LICENSE.txt +16 -0
- package/dist-scalprum/static/4570.f63a94b5.chunk.js.map +1 -0
- package/dist-scalprum/static/4641.afa4b7f4.chunk.js +2 -0
- package/dist-scalprum/static/4641.afa4b7f4.chunk.js.map +1 -0
- package/dist-scalprum/static/4712.32c000f9.chunk.js +2 -0
- package/dist-scalprum/static/4712.32c000f9.chunk.js.map +1 -0
- package/dist-scalprum/static/501.c053f97a.chunk.js +3 -0
- package/dist-scalprum/static/501.c053f97a.chunk.js.LICENSE.txt +21 -0
- package/dist-scalprum/static/501.c053f97a.chunk.js.map +1 -0
- package/dist-scalprum/static/5010.95aedf8d.chunk.js +3 -0
- package/dist-scalprum/static/5010.95aedf8d.chunk.js.LICENSE.txt +17 -0
- package/dist-scalprum/static/5010.95aedf8d.chunk.js.map +1 -0
- package/dist-scalprum/static/5197.c4151d55.chunk.js +2 -0
- package/dist-scalprum/static/5197.c4151d55.chunk.js.map +1 -0
- package/dist-scalprum/static/5943.d01f37ae.chunk.js +2 -0
- package/dist-scalprum/static/5943.d01f37ae.chunk.js.map +1 -0
- package/dist-scalprum/static/6038.9e308c20.chunk.js +3 -0
- package/dist-scalprum/static/6038.9e308c20.chunk.js.LICENSE.txt +8 -0
- package/dist-scalprum/static/6038.9e308c20.chunk.js.map +1 -0
- package/dist-scalprum/static/6272.98ac64ee.chunk.js +2 -0
- package/dist-scalprum/static/6272.98ac64ee.chunk.js.map +1 -0
- package/dist-scalprum/static/635.20cc75bd.chunk.js +3 -0
- package/dist-scalprum/static/635.20cc75bd.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/635.20cc75bd.chunk.js.map +1 -0
- package/dist-scalprum/static/6371.bd298779.chunk.js +3 -0
- package/dist-scalprum/static/6371.bd298779.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/6371.bd298779.chunk.js.map +1 -0
- package/dist-scalprum/static/6766.6766.d233128d.css +5 -0
- package/dist-scalprum/static/6766.6766.d233128d.css.map +1 -0
- package/dist-scalprum/static/6766.b1477b1f.chunk.js +3 -0
- package/dist-scalprum/static/6766.b1477b1f.chunk.js.LICENSE.txt +26 -0
- package/dist-scalprum/static/6766.b1477b1f.chunk.js.map +1 -0
- package/dist-scalprum/static/6837.daf44d4a.chunk.js +2 -0
- package/dist-scalprum/static/6837.daf44d4a.chunk.js.map +1 -0
- package/dist-scalprum/static/6853.95bdb23a.chunk.js +2 -0
- package/dist-scalprum/static/6853.95bdb23a.chunk.js.map +1 -0
- package/dist-scalprum/static/6972.67a3d5fa.chunk.js +2 -0
- package/dist-scalprum/static/6972.67a3d5fa.chunk.js.map +1 -0
- package/dist-scalprum/static/7076.a421f17a.chunk.js +2 -0
- package/dist-scalprum/static/7076.a421f17a.chunk.js.map +1 -0
- package/dist-scalprum/static/7164.3f49dba5.chunk.js +2 -0
- package/dist-scalprum/static/7164.3f49dba5.chunk.js.map +1 -0
- package/dist-scalprum/static/7266.8f906280.chunk.js +2 -0
- package/dist-scalprum/static/7266.8f906280.chunk.js.map +1 -0
- package/dist-scalprum/static/7270.fe2b531a.chunk.js +2 -0
- package/dist-scalprum/static/7270.fe2b531a.chunk.js.map +1 -0
- package/dist-scalprum/static/7293.61ba27ef.chunk.js +3 -0
- package/dist-scalprum/static/7293.61ba27ef.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/7293.61ba27ef.chunk.js.map +1 -0
- package/dist-scalprum/static/7367.7f02a435.chunk.js +3 -0
- package/dist-scalprum/static/7367.7f02a435.chunk.js.LICENSE.txt +21 -0
- package/dist-scalprum/static/7367.7f02a435.chunk.js.map +1 -0
- package/dist-scalprum/static/7651.e4257476.chunk.js +2 -0
- package/dist-scalprum/static/7651.e4257476.chunk.js.map +1 -0
- package/dist-scalprum/static/7791.8fd95e78.chunk.js +2 -0
- package/dist-scalprum/static/7791.8fd95e78.chunk.js.map +1 -0
- package/dist-scalprum/static/8170.ee2d7c50.chunk.js +2 -0
- package/dist-scalprum/static/8170.ee2d7c50.chunk.js.map +1 -0
- package/dist-scalprum/static/8563.c70c61a5.chunk.js +3 -0
- package/dist-scalprum/static/8563.c70c61a5.chunk.js.LICENSE.txt +5 -0
- package/dist-scalprum/static/8563.c70c61a5.chunk.js.map +1 -0
- package/dist-scalprum/static/9400.6b78af9f.chunk.js +2 -0
- package/dist-scalprum/static/9400.6b78af9f.chunk.js.map +1 -0
- package/dist-scalprum/static/empty-state-illustration.7e3ad5a9..png +0 -0
- package/dist-scalprum/static/exposed-ApiIcon.da16b2cc.chunk.js +3 -0
- package/dist-scalprum/static/exposed-ApiIcon.da16b2cc.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/exposed-ApiIcon.da16b2cc.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-KuadrantIcon.e9227839.chunk.js +3 -0
- package/dist-scalprum/static/exposed-KuadrantIcon.e9227839.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/exposed-KuadrantIcon.e9227839.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-KuadrantPage.832aec5b.chunk.js +2 -0
- package/dist-scalprum/static/exposed-KuadrantPage.832aec5b.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-PluginRoot.daa5f940.chunk.js +2 -0
- package/dist-scalprum/static/exposed-PluginRoot.daa5f940.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-kuadrantApiFactory.3211b81a.chunk.js +2 -0
- package/dist-scalprum/static/exposed-kuadrantApiFactory.3211b81a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.6ce6e76b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter/lowlight-import.6ce6e76b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.d7b748b1.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_abnf.d7b748b1.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.5cd4e70c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_accesslog.5cd4e70c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.d7fb5ca9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_actionscript.d7fb5ca9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.751ec93b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ada.751ec93b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.cdb860cc.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_angelscript.cdb860cc.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.7773ba3b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_apache.7773ba3b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.8cb340cc.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_applescript.8cb340cc.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.60bbff04.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arcade.60bbff04.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.c0c83f48.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_arduino.c0c83f48.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.430c8942.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_armasm.430c8942.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.3e211a5e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_asciidoc.3e211a5e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.3d32ac5c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_aspectj.3d32ac5c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.0f43909c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autohotkey.0f43909c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.7136d2bd.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_autoit.7136d2bd.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.8aa64d3e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_avrasm.8aa64d3e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.ad458763.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_awk.ad458763.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.973d343c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_axapta.973d343c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.e6565209.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bash.e6565209.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.0691a169.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_basic.0691a169.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.e8daf1f7.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_bnf.e8daf1f7.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.e196d223.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_brainfuck.e196d223.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.efabbf9d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_c.efabbf9d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.3b61cf62.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cLike.3b61cf62.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.b801b70d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cal.b801b70d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.ded99d02.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_capnproto.ded99d02.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.3eac73f9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ceylon.3eac73f9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.b07854cb.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clean.b07854cb.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.77521689.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojure.77521689.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.9448b879.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_clojureRepl.9448b879.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.6b048c9a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cmake.6b048c9a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.4aef666e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coffeescript.4aef666e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.bb2ee554.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_coq.bb2ee554.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.6fc48d6d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cos.6fc48d6d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.daf37e10.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_cpp.daf37e10.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.d547f78d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crmsh.d547f78d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.5049cd2e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_crystal.5049cd2e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.315865a3.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csharp.315865a3.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7ea55553.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_csp.7ea55553.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.3117b0e3.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_css.3117b0e3.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.7456f80c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_d.7456f80c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.020b9d3d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dart.020b9d3d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.86aca306.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_delphi.86aca306.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.0a835926.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_diff.0a835926.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.a135aa8b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_django.a135aa8b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.27aec10d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dns.27aec10d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.958aacec.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dockerfile.958aacec.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.59aaced7.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dos.59aaced7.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.8b5a847e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dsconfig.8b5a847e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.6e3f9db6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dts.6e3f9db6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.7c5d23e5.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_dust.7c5d23e5.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.db0ae456.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ebnf.db0ae456.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.cc785691.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elixir.cc785691.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.66841734.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_elm.66841734.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.b1b96b4e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erb.b1b96b4e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.34d2f773.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlang.34d2f773.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0ff0bfbb.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_erlangRepl.0ff0bfbb.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.04bd2aa2.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_excel.04bd2aa2.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.0ef6442e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fix.0ef6442e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.a1b295ac.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_flix.a1b295ac.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.66f10825.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fortran.66f10825.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.f36c83d1.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_fsharp.f36c83d1.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.e170e44f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gams.e170e44f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.877c22cd.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gauss.877c22cd.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.c1e0a697.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gcode.c1e0a697.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.934843e3.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gherkin.934843e3.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.967148b0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_glsl.967148b0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.1e9b8477.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gml.1e9b8477.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.5796d462.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_go.5796d462.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.453ebb0f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_golo.453ebb0f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.848e9531.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_gradle.848e9531.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.fa7fe849.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_groovy.fa7fe849.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.8caef7cd.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haml.8caef7cd.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.5a49c928.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_handlebars.5a49c928.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.b13e9820.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haskell.b13e9820.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.2978dc06.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_haxe.2978dc06.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.7a3e965f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hsp.7a3e965f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.f0f2b2be.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_htmlbars.f0f2b2be.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.a29b3997.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_http.a29b3997.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.9cf3d54c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_hy.9cf3d54c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.568e42d6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_inform7.568e42d6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.003b4149.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ini.003b4149.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.6a198fc7.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_irpf90.6a198fc7.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.e9cf6e08.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_isbl.e9cf6e08.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.c96464e0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_java.c96464e0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.e88c5129.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_javascript.e88c5129.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.83466530.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_jbossCli.83466530.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.b7395612.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_json.b7395612.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.fe310a0e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_julia.fe310a0e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.f0bdb034.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_juliaRepl.f0bdb034.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.b08b90f3.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_kotlin.b08b90f3.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.e5dd3415.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lasso.e5dd3415.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.70a85a56.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_latex.70a85a56.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.17ed8595.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ldif.17ed8595.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.9e81ae3b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_leaf.9e81ae3b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.2d706a4a.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_less.2d706a4a.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.e09ffb38.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lisp.e09ffb38.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.fb7fa1bd.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livecodeserver.fb7fa1bd.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.0367b344.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_livescript.0367b344.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.b7b471df.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_llvm.b7b471df.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.3703d3d6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lsl.3703d3d6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.d066f704.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_lua.d066f704.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.db532360.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_makefile.db532360.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.15a4f8b6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_markdown.15a4f8b6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.12cc49c0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mathematica.12cc49c0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.c4d4eb67.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_matlab.c4d4eb67.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.60c478c0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_maxima.60c478c0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.b80a6243.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mel.b80a6243.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.d1e79a83.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mercury.d1e79a83.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.e89f0d76.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mipsasm.e89f0d76.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.2fad9b33.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mizar.2fad9b33.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.fdf944aa.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_mojolicious.fdf944aa.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.e5ec6191.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_monkey.e5ec6191.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.f2b66b70.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_moonscript.f2b66b70.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.6cf400a2.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_n1ql.6cf400a2.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.69236b3b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nginx.69236b3b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.00b5534b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nim.00b5534b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.f66b6002.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nix.f66b6002.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.81666346.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nodeRepl.81666346.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.0625e6b8.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_nsis.0625e6b8.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.a72cf24d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_objectivec.a72cf24d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.e259908f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ocaml.e259908f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.66abc520.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oneC.66abc520.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.3f645414.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_openscad.3f645414.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.157adfc8.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_oxygene.157adfc8.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.6e413f5e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_parser3.6e413f5e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.47014ef1.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_perl.47014ef1.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.1af1f4b3.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pf.1af1f4b3.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.38660a92.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pgsql.38660a92.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.e92f0640.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_php.e92f0640.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.0372e2e4.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_phpTemplate.0372e2e4.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.1b08385e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_plaintext.1b08385e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.7d0f6ed2.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pony.7d0f6ed2.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.d1b10369.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_powershell.d1b10369.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.f638243c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_processing.f638243c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.4c36bffa.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_profile.4c36bffa.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.f3254a38.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_prolog.f3254a38.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.7a043394.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_properties.7a043394.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.fdc8230f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_protobuf.fdc8230f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.6e63451e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_puppet.6e63451e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.517c935e.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_purebasic.517c935e.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.ac43344f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_python.ac43344f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.dda4b87c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_pythonRepl.dda4b87c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.05aa4cef.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_q.05aa4cef.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.19d8a2a9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_qml.19d8a2a9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.6092a281.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_r.6092a281.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.920f9a7c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_reasonml.920f9a7c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.18a94d89.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rib.18a94d89.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.7c9e7cd0.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_roboconf.7c9e7cd0.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.80a5fd04.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_routeros.80a5fd04.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.f4a97f7d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rsl.f4a97f7d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.47ccba90.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruby.47ccba90.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.d7509115.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_ruleslanguage.d7509115.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.a254cc81.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_rust.a254cc81.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.08cd6913.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sas.08cd6913.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.53d46ef7.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scala.53d46ef7.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.cbfeb2ca.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scheme.cbfeb2ca.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.69717390.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scilab.69717390.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.45023bc4.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_scss.45023bc4.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.643b0f4f.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_shell.643b0f4f.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.24d94a2c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smali.24d94a2c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.a1699a88.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_smalltalk.a1699a88.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.b430a4ca.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sml.b430a4ca.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.dd4d51f6.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqf.dd4d51f6.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.f818ddde.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sql.f818ddde.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.7bf1e358.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_sqlMore.7bf1e358.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.625ebea2.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stan.625ebea2.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.68a930f3.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stata.68a930f3.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.d4291027.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_step21.d4291027.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.3b7031b9.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_stylus.3b7031b9.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.e4ea5413.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_subunit.e4ea5413.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.cf4ec513.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_swift.cf4ec513.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.0cb0578c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_taggerscript.0cb0578c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.e2194878.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tap.e2194878.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.9a6c577b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tcl.9a6c577b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.1548e34d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_thrift.1548e34d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.c608d992.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_tp.c608d992.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.6b4054dd.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_twig.6b4054dd.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.b764ee8b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_typescript.b764ee8b.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.917594d4.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vala.917594d4.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.e83a46fb.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbnet.e83a46fb.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.caea633d.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscript.caea633d.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.73fc4c05.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.73fc4c05.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.93d0d327.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_verilog.93d0d327.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.a98781bd.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vhdl.a98781bd.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.2cb77785.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_vim.2cb77785.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.fbcd5fed.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_x86asm.fbcd5fed.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.3b233004.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xl.3b233004.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.6b5feb4c.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xml.6b5feb4c.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.4c158dae.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_xquery.4c158dae.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.1bd2dc88.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_yaml.1bd2dc88.chunk.js.map +1 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.e84f063b.chunk.js +2 -0
- package/dist-scalprum/static/react-syntax-highlighter_languages_highlight_zephir.e84f063b.chunk.js.map +1 -0
- package/package.json +2 -2
- /package/dist/static/{main.4487ce49.js → main.70b7537d.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/2821.1e3d6dc4.chunk.js","mappings":"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","sources":["webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/components/FilterPanel/FilterPanel.tsx","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/components/CreateAPIProductDialog/CreateAPIProductDialog.tsx","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/components/KuadrantPage/ApiProductsPage.tsx","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./src/components/PermissionGate/PermissionGate.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n Typography,\n Checkbox,\n FormControlLabel,\n FormGroup,\n Divider,\n Button,\n Collapse,\n makeStyles,\n} from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: 240,\n minWidth: 240,\n padding: theme.spacing(2),\n borderRight: `1px solid ${theme.palette.divider}`,\n backgroundColor: theme.palette.background.paper,\n height: '100%',\n overflowY: 'auto',\n },\n sectionTitle: {\n fontWeight: 600,\n fontSize: '0.75rem',\n textTransform: 'uppercase',\n letterSpacing: '0.05em',\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(1),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n cursor: 'pointer',\n userSelect: 'none',\n },\n filterSection: {\n marginBottom: theme.spacing(2),\n },\n checkbox: {\n padding: theme.spacing(0.5),\n },\n checkboxLabel: {\n fontSize: '0.875rem',\n },\n clearButton: {\n marginTop: theme.spacing(2),\n },\n count: {\n fontSize: '0.75rem',\n color: theme.palette.text.secondary,\n marginLeft: theme.spacing(1),\n },\n}));\n\nexport interface FilterOption {\n value: string;\n label: string;\n count?: number;\n}\n\nexport interface FilterSection {\n id: string;\n title: string;\n options: FilterOption[];\n collapsed?: boolean;\n}\n\nexport interface FilterState {\n [sectionId: string]: string[];\n}\n\ninterface FilterPanelProps {\n sections: FilterSection[];\n filters: FilterState;\n onChange: (filters: FilterState) => void;\n onClear?: () => void;\n}\n\nexport const FilterPanel = ({\n sections,\n filters,\n onChange,\n onClear,\n}: FilterPanelProps) => {\n const classes = useStyles();\n const [collapsedSections, setCollapsedSections] = React.useState<Set<string>>(\n new Set(sections.filter(s => s.collapsed).map(s => s.id)),\n );\n\n const toggleSection = (sectionId: string) => {\n setCollapsedSections(prev => {\n const next = new Set(prev);\n if (next.has(sectionId)) {\n next.delete(sectionId);\n } else {\n next.add(sectionId);\n }\n return next;\n });\n };\n\n const handleCheckboxChange = (sectionId: string, value: string) => {\n const currentValues = filters[sectionId] || [];\n const newValues = currentValues.includes(value)\n ? currentValues.filter(v => v !== value)\n : [...currentValues, value];\n\n onChange({\n ...filters,\n [sectionId]: newValues,\n });\n };\n\n const hasActiveFilters = Object.values(filters).some(\n values => values.length > 0,\n );\n\n const handleClear = () => {\n const clearedFilters: FilterState = {};\n sections.forEach(section => {\n clearedFilters[section.id] = [];\n });\n onChange(clearedFilters);\n onClear?.();\n };\n\n return (\n <Box className={classes.root}>\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" mb={2}>\n <Typography variant=\"subtitle2\">Filters</Typography>\n {hasActiveFilters && (\n <Button\n size=\"small\"\n color=\"primary\"\n onClick={handleClear}\n >\n Clear all\n </Button>\n )}\n </Box>\n\n <Divider />\n\n {sections.map(section => {\n const isCollapsed = collapsedSections.has(section.id);\n const selectedCount = (filters[section.id] || []).length;\n\n return (\n <Box key={section.id} className={classes.filterSection} mt={2}>\n <Box\n className={classes.sectionTitle}\n onClick={() => toggleSection(section.id)}\n >\n <Box display=\"flex\" alignItems=\"center\">\n <span>{section.title}</span>\n {selectedCount > 0 && (\n <span className={classes.count}>({selectedCount})</span>\n )}\n </Box>\n {isCollapsed ? (\n <ExpandMoreIcon fontSize=\"small\" />\n ) : (\n <ExpandLessIcon fontSize=\"small\" />\n )}\n </Box>\n\n <Collapse in={!isCollapsed}>\n <FormGroup>\n {section.options.map(option => (\n <FormControlLabel\n key={option.value}\n control={\n <Checkbox\n checked={(filters[section.id] || []).includes(option.value)}\n onChange={() =>\n handleCheckboxChange(section.id, option.value)\n }\n size=\"small\"\n className={classes.checkbox}\n color=\"primary\"\n />\n }\n label={\n <Box display=\"flex\" alignItems=\"center\">\n <span className={classes.checkboxLabel}>\n {option.label}\n </span>\n {option.count !== undefined && (\n <span className={classes.count}>({option.count})</span>\n )}\n </Box>\n }\n />\n ))}\n </FormGroup>\n </Collapse>\n </Box>\n );\n })}\n </Box>\n );\n};\n","import React, { useEffect, useState } 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 } from '@material-ui/lab';\nimport useAsync from 'react-use/lib/useAsync';\nimport { ApiProductPolicies } from '../ApiProductPolicies';\nimport { validateKubernetesName, 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 CreateAPIProductDialogProps {\n open: boolean;\n onClose: () => void;\n onSuccess: (productInfo: { namespace: string; name: string; displayName: string }) => void;\n}\n\nexport const CreateAPIProductDialog = ({ open, onClose, onSuccess }: CreateAPIProductDialogProps) => {\n const classes = useStyles();\n const kuadrantApi = useApi(kuadrantApiRef);\n\n const [name, setName] = useState('');\n const [displayName, setDisplayName] = useState('');\n const [description, setDescription] = useState('');\n const [version, setVersion] = useState('v1');\n const [approvalMode, setApprovalMode] = useState<'automatic' | 'manual'>('manual');\n const [publishStatus, setPublishStatus] = useState<'Draft' | 'Published'>('Published');\n const [lifecycle, setLifecycle] = useState<Lifecycle>('production');\n const [tags, setTags] = useState<string[]>([]);\n const [tagInput, setTagInput] = useState('');\n const [selectedHTTPRoute, setSelectedHTTPRoute] = useState('');\n const [contactEmail, setContactEmail] = useState('');\n const [contactTeam, setContactTeam] = useState('');\n const [docsURL, setDocsURL] = useState('');\n const [openAPISpec, setOpenAPISpec] = useState('');\n const [error, setError] = useState('');\n const [creating, setCreating] = useState(false);\n const [httpRoutesRetry, setHttpRoutesRetry] = useState(0);\n const [nameError, setNameError] = useState<string | null>(null);\n const [openAPISpecError, setOpenAPISpecError] = useState<string | null>(null);\n const [routeSearchTerm, setRouteSearchTerm] = useState('');\n const [routeSearchField, setRouteSearchField] = useState<'name' | 'namespace' | 'planpolicy'>('name');\n const {\n value: httpRoutes,\n loading: httpRoutesLoading,\n error: httpRoutesError\n } = useAsync(async () => {\n const data = await kuadrantApi.getHttpRoutes();\n return data.items || [];\n }, [kuadrantApi, open, httpRoutesRetry]);\n\n // load planpolicies with full details to show associated plans\n const {\n value: planPolicies,\n error: planPoliciesError\n } = useAsync(async () => {\n return await kuadrantApi.getPlanPolicies();\n }, [kuadrantApi, open]);\n\n // load authpolicies\n const {\n value: authPolicies,\n error: authPoliciesError\n } = useAsync(async () => {\n return await kuadrantApi.getAuthPolicies();\n }, [kuadrantApi, 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 // find planpolicy associated with selected httproute\n const getPlanPolicyForRoute = (routeNamespace: string, routeName: string) => {\n return getPolicyForRoute(planPolicies?.items, routeNamespace, routeName);\n };\n\n // find authpolicy associated with selected httproute\n const getAuthPolicyForRoute = (routeNamespace: string, routeName: string) => {\n return getPolicyForRoute(authPolicies?.items, routeNamespace, routeName);\n };\n\n // find ratelimitpolicy associated with selected httproute\n const getRateLimitPolicyForRoute = (routeNamespace: string, routeName: string) => {\n return getPolicyForRoute(rateLimitPolicies?.items, routeNamespace, routeName);\n };\n\n const selectedRouteInfo = selectedHTTPRoute ? selectedHTTPRoute.split('/') : null;\n const selectedPlanPolicy = selectedRouteInfo\n ? getPlanPolicyForRoute(selectedRouteInfo[0], selectedRouteInfo[1])\n : null;\n const planPolicyAcceptedCondition = selectedPlanPolicy?.status?.conditions?.find(\n (c: any) => c.type === \"Accepted\"\n );\n const selectedAuthPolicy = selectedRouteInfo\n ? getAuthPolicyForRoute(selectedRouteInfo[0], selectedRouteInfo[1])\n : null;\n const authPolicyAcceptedCondition = selectedAuthPolicy?.status?.conditions?.find(\n (c: any) => c.type === \"Accepted\"\n );\n const selectedRateLimitPolicy = selectedRouteInfo\n ? getRateLimitPolicyForRoute(selectedRouteInfo[0], selectedRouteInfo[1])\n : null;\n const rateLimitPolicyAcceptedCondition = selectedRateLimitPolicy?.status?.conditions?.find(\n (c: any) => c.type === \"Accepted\"\n );\n const planPolicyProps = {\n statusCondition: planPolicyAcceptedCondition,\n discoveredPlans: selectedPlanPolicy?.spec.plans,\n }\n const authPolicyProps = {\n namespacedName: {\n namespace: selectedAuthPolicy?.metadata.namespace,\n name: selectedAuthPolicy?.metadata.name,\n },\n statusCondition: authPolicyAcceptedCondition,\n }\n const rateLimitPolicyProps = {\n namespacedName: {\n namespace: selectedRateLimitPolicy?.metadata.namespace,\n name: selectedRateLimitPolicy?.metadata.name,\n },\n statusCondition: rateLimitPolicyAcceptedCondition,\n }\n\n // format tier info for dropdown display\n const formatTierInfo = (policy: any): string => {\n if (!policy?.spec?.plans) return '';\n const tiers = Object.entries(policy.spec.plans)\n .map(([name, plan]: [string, any]) => {\n const limit = plan?.limits?.requests;\n if (!limit) return name;\n return `${name}: ${limit.count}/${limit.period}`;\n })\n .join('; ');\n return tiers ? ` (${tiers})` : '';\n };\n\n // get policy info for a route (for dropdown display)\n const getPolicyInfoForRoute = (routeNamespace: string, routeName: string): string => {\n const policy = getPlanPolicyForRoute(routeNamespace, routeName);\n if (!policy) return 'N/A';\n return `${policy.metadata.name}${formatTierInfo(policy)}`;\n };\n\n useEffect(() => {\n if (open) {\n setNameError(null);\n setOpenAPISpecError(null);\n }\n }, [open]);\n\n // validate handlers\n const handleNameChange = (value: string) => {\n setName(value);\n setNameError(validateKubernetesName(value));\n };\n\n const handleDisplayNameChange = (value: string) => {\n setDisplayName(value);\n // Auto-generate Kubernetes resource name from display name with random hex suffix\n if (!name || name.match(/-[a-f0-9]{6}$/)) {\n const baseName = value.toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');\n const randomHex = Math.floor(Math.random() * 16777215).toString(16).padStart(6, '0');\n const autoName = `${baseName}-${randomHex}`;\n setName(autoName);\n setNameError(validateKubernetesName(autoName));\n }\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 handleClose = () => {\n setName('');\n setDisplayName('');\n setDescription('');\n setVersion('v1');\n setApprovalMode('manual');\n setPublishStatus('Published');\n setLifecycle('production');\n setTags([]);\n setTagInput('');\n setSelectedHTTPRoute('');\n setContactEmail('');\n setContactTeam('');\n setDocsURL('');\n setOpenAPISpec('');\n setError('');\n setNameError(null);\n setOpenAPISpecError(null);\n onClose();\n };\n\n const handleCreate = async () => {\n setError('');\n setCreating(true);\n\n try {\n if (!selectedHTTPRoute) {\n throw new Error('Please select an HTTPRoute');\n }\n\n const [selectedRouteNamespace, selectedRouteName] = selectedHTTPRoute.split('/');\n\n // derive namespace from selected httproute\n const namespace = selectedRouteNamespace;\n\n const apiProduct: APIProduct = {\n apiVersion: 'devportal.kuadrant.io/v1alpha1',\n kind: 'APIProduct',\n metadata: {\n name,\n namespace,\n labels: {\n lifecycle,\n },\n },\n spec: {\n displayName,\n description,\n version,\n approvalMode,\n publishStatus,\n tags,\n targetRef: {\n group: 'gateway.networking.k8s.io',\n kind: 'HTTPRoute',\n name: selectedRouteName,\n namespace: selectedRouteNamespace,\n },\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.createApiProduct(apiProduct);\n onSuccess({ namespace, name, displayName });\n handleClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n } finally {\n setCreating(false);\n }\n };\n\n const hasValidationErrors = !!nameError || !!openAPISpecError;\n\n return (\n <Dialog open={open} onClose={handleClose} maxWidth=\"md\" fullWidth>\n <DialogTitle>Create API Product</DialogTitle>\n <DialogContent>\n {error && (\n <Alert severity=\"error\" style={{ marginBottom: 16 }}>\n {error}\n </Alert>\n )}\n {httpRoutesError && (\n <Alert severity=\"error\" style={{ marginBottom: 16 }}>\n <strong>Failed to load HTTPRoutes:</strong> {httpRoutesError.message}\n <Box mt={1}>\n <Button\n size=\"small\"\n variant=\"outlined\"\n onClick={() => setHttpRoutesRetry(prev => prev + 1)}\n >\n Retry\n </Button>\n </Box>\n </Alert>\n )}\n\n {planPoliciesError && (\n <Alert severity=\"warning\" style={{ marginBottom: 16 }}>\n <strong>Failed to load PlanPolicies:</strong> {planPoliciesError.message}\n <Typography variant=\"body2\" style={{ marginTop: 8 }}>\n You can still create the API Product, but plan information may be incomplete.\n </Typography>\n </Alert>\n )}\n {authPoliciesError && (\n <Alert severity=\"warning\" style={{ marginBottom: 16 }}>\n <strong>Failed to load AuthPolicies:</strong> {authPoliciesError.message}\n </Alert>\n )}\n {rateLimitPoliciesError && (\n <Alert severity=\"warning\" style={{ marginBottom: 16 }}>\n <strong>Failed to load RateLimitPolicies:</strong> {rateLimitPoliciesError.message}\n </Alert>\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 => handleDisplayNameChange(e.target.value)}\n placeholder=\"My API\"\n helperText=\"Display name for your API product (shown to users)\"\n margin=\"normal\"\n required\n disabled={creating}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Kubernetes resource name\"\n value={name}\n onChange={e => handleNameChange(e.target.value)}\n placeholder=\"my-api\"\n helperText={nameError || \"Auto-generated from product name. Only lowercase, numbers, and hyphens allowed.\"}\n error={!!nameError}\n margin=\"normal\"\n required\n disabled={creating}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Version\"\n value={version}\n onChange={e => setVersion(e.target.value)}\n placeholder=\"v1\"\n helperText=\"Give a version to your API product\"\n margin=\"normal\"\n required\n disabled={creating}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\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={creating}\n InputProps={{\n endAdornment: tagInput ? (\n <InputAdornment position=\"end\">\n <IconButton size=\"small\" onClick={handleAddTag} disabled={creating}>\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={creating ? undefined : () => handleDeleteTag(tag)}\n size=\"small\"\n className={classes.tagChip}\n disabled={creating}\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={creating}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n </Grid>\n\n {/* Add API and Associate route section */}\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>Add API and Associate route</strong></Typography>\n <Tooltip title=\"Register an existing API and associate HTTPRoute for your API product\">\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={creating}\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={creating}\n />\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n select\n label=\"HTTPRoute\"\n value={selectedHTTPRoute}\n onChange={e => setSelectedHTTPRoute(e.target.value)}\n margin=\"normal\"\n required\n helperText={\n httpRoutesError\n ? \"Unable to load HTTPRoutes. Please retry.\"\n : \"Select an HTTPRoute. APIProduct will be created in the same namespace.\"\n }\n error={!!httpRoutesError}\n disabled={httpRoutesLoading || creating || !!httpRoutesError}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n SelectProps={{\n 'data-testid': 'httproute-select',\n MenuProps: {\n PaperProps: {\n style: { maxHeight: 400 },\n },\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n },\n } as any}\n >\n {/* Search bar inside dropdown */}\n <Box px={2} pt={1} pb={1} style={{ position: 'sticky', top: 0, zIndex: 1 }}>\n <TextField\n fullWidth\n size=\"small\"\n placeholder=\"Search...\"\n value={routeSearchTerm}\n onChange={e => setRouteSearchTerm(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n onClick={e => e.stopPropagation()}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <TextField\n select\n size=\"small\"\n value={routeSearchField}\n onChange={e => setRouteSearchField(e.target.value as 'name' | 'namespace' | 'planpolicy')}\n onKeyDown={e => e.stopPropagation()}\n onClick={e => e.stopPropagation()}\n style={{ minWidth: 120 }}\n variant=\"standard\"\n >\n <MenuItem value=\"name\">Name</MenuItem>\n <MenuItem value=\"namespace\">Namespace</MenuItem>\n <MenuItem value=\"planpolicy\">PlanPolicy</MenuItem>\n </TextField>\n </InputAdornment>\n ),\n }}\n />\n </Box>\n {httpRoutesLoading && (\n <MenuItem value=\"\">Loading...</MenuItem>\n )}\n {httpRoutesError && (\n <MenuItem value=\"\">Error loading routes</MenuItem>\n )}\n {!httpRoutesLoading && !httpRoutesError && httpRoutes && httpRoutes.length === 0 && (\n <MenuItem value=\"\">No HTTPRoutes available</MenuItem>\n )}\n {!httpRoutesLoading && !httpRoutesError && httpRoutes && httpRoutes\n .filter((route: any) => {\n if (!routeSearchTerm) return true;\n const routeNs = route.metadata.namespace;\n const routeName = route.metadata.name;\n const policyInfo = getPolicyInfoForRoute(routeNs, routeName);\n const searchLower = routeSearchTerm.toLowerCase();\n\n switch (routeSearchField) {\n case 'name':\n return routeName.toLowerCase().includes(searchLower);\n case 'namespace':\n return routeNs.toLowerCase().includes(searchLower);\n case 'planpolicy':\n return policyInfo.toLowerCase().includes(searchLower);\n default:\n return true;\n }\n })\n .map((route: any) => {\n const routeNs = route.metadata.namespace;\n const routeName = route.metadata.name;\n const policyInfo = getPolicyInfoForRoute(routeNs, routeName);\n return (\n <MenuItem\n key={`${routeNs}/${routeName}`}\n value={`${routeNs}/${routeName}`}\n >\n <Box>\n <Typography variant=\"body1\">{routeName}</Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n Associated PlanPolicy: {policyInfo}\n </Typography>\n </Box>\n </MenuItem>\n );\n })}\n </TextField>\n </Grid>\n </Grid>\n\n {/* HTTPRoute policies section */}\n {selectedHTTPRoute && (\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 selected 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 <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={creating}\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 (Draft = hidden from consumers)\"\n disabled={creating}\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={creating}>\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 </DialogContent>\n <DialogActions>\n <Button onClick={handleClose} disabled={creating}>Cancel</Button>\n <Button\n onClick={handleCreate}\n color=\"primary\"\n variant=\"contained\"\n disabled={creating || !name || !displayName || !description || !selectedHTTPRoute || hasValidationErrors}\n startIcon={creating ? <CircularProgress size={16} color=\"inherit\" /> : undefined}\n >\n {creating ? 'Creating...' : 'Create'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","import React, { useState, useMemo, useCallback } from \"react\";\nimport {\n Typography,\n Box,\n Chip,\n Button,\n IconButton,\n makeStyles,\n} from \"@material-ui/core\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport VpnKeyIcon from \"@material-ui/icons/VpnKey\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport { FilterPanel, FilterSection, FilterState } from \"../FilterPanel\";\nimport {\n Header,\n Page,\n Content,\n SupportButton,\n ResponseErrorPanel,\n Link,\n Table,\n TableColumn,\n} from \"@backstage/core-components\";\nimport useAsync from \"react-use/lib/useAsync\";\nimport {\n useApi,\n alertApiRef,\n identityApiRef,\n} from \"@backstage/core-plugin-api\";\nimport { catalogApiRef } from \"@backstage/plugin-catalog-react\";\nimport {kuadrantApiRef, KuadrantList} from \"../../api\";\nimport { PermissionGate } from \"../PermissionGate\";\nimport { CreateAPIProductDialog } from \"../CreateAPIProductDialog\";\nimport {\n kuadrantApiProductCreatePermission,\n kuadrantApiProductDeleteOwnPermission,\n kuadrantApiProductDeleteAllPermission,\n kuadrantApiProductUpdateOwnPermission,\n kuadrantApiProductUpdateAllPermission,\n kuadrantApiProductListPermission,\n kuadrantPlanPolicyListPermission,\n} from \"../../permissions\";\nimport { useKuadrantPermission } from \"../../utils/permissions\";\nimport { EditAPIProductDialog } from \"../EditAPIProductDialog\";\nimport { ConfirmDeleteDialog } from \"../ConfirmDeleteDialog\";\nimport { getLifecycleChipStyle } from \"../../utils/styles\";\nimport emptyStateIllustration from \"../../assets/empty-state-illustration.png\";\nimport {APIProduct, PlanPolicy} from \"../../types/api-management.ts\";\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n display: \"flex\",\n height: \"100%\",\n minHeight: 400,\n },\n tableContainer: {\n flex: 1,\n overflow: \"auto\",\n padding: 10,\n },\n emptyState: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: theme.spacing(6),\n minHeight: 400,\n },\n emptyStateContent: {\n display: \"flex\",\n alignItems: \"center\",\n gap: theme.spacing(6),\n maxWidth: 900,\n },\n emptyStateText: {\n flex: 1,\n },\n emptyStateTitle: {\n marginBottom: theme.spacing(2),\n },\n emptyStateDescription: {\n marginBottom: theme.spacing(3),\n color: theme.palette.text.secondary,\n },\n emptyStateImage: {\n maxWidth: 400,\n height: \"auto\",\n },\n}));\n\nconst ResourceList = () => {\n const classes = useStyles();\n const kuadrantApi = useApi(kuadrantApiRef);\n const alertApi = useApi(alertApiRef);\n const identityApi = useApi(identityApiRef);\n const catalogApi = useApi(catalogApiRef);\n const [userEntityRef, setUserEntityRef] = useState<string>(\"\");\n const [createDialogOpen, setCreateDialogOpen] = useState(false);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [refreshTrigger, setRefreshTrigger] = useState(0);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [apiProductToDelete, setApiProductToDelete] = useState<{\n namespace: string;\n name: string;\n } | null>(null);\n const [apiProductToEdit, setApiProductToEdit] = useState<{\n namespace: string;\n name: string;\n } | null>(null);\n const [deleting, setDeleting] = useState(false);\n const [deleteStats, setDeleteStats] = useState<{\n requests: number;\n secrets: number;\n } | null>(null);\n const [filters, setFilters] = useState<FilterState>({\n status: [],\n lifecycle: [],\n policy: [],\n route: [],\n namespace: [],\n tags: [],\n authentication: [],\n });\n\n const {\n allowed: canCreateApiProduct,\n loading: createPermissionLoading,\n error: createPermissionError,\n } = useKuadrantPermission(kuadrantApiProductCreatePermission);\n\n const {\n allowed: canDeleteOwnApiProduct,\n loading: deleteOwnPermissionLoading,\n } = useKuadrantPermission(kuadrantApiProductDeleteOwnPermission);\n\n const {\n allowed: canDeleteAllApiProducts,\n loading: deleteAllPermissionLoading,\n error: deletePermissionError,\n } = useKuadrantPermission(kuadrantApiProductDeleteAllPermission);\n\n const { allowed: canUpdateOwnApiProduct } = useKuadrantPermission(\n kuadrantApiProductUpdateOwnPermission,\n );\n\n const { allowed: canUpdateAllApiProducts } = useKuadrantPermission(\n kuadrantApiProductUpdateAllPermission,\n );\n\n const deletePermissionLoading =\n deleteOwnPermissionLoading || deleteAllPermissionLoading;\n\n const {\n allowed: canListPlanPolicies,\n loading: planPolicyPermissionLoading,\n error: planPolicyPermissionError,\n } = useKuadrantPermission(kuadrantPlanPolicyListPermission);\n\n useAsync(async () => {\n const identity = await identityApi.getBackstageIdentity();\n setUserEntityRef(identity.userEntityRef);\n }, [identityApi]);\n\n const {\n value: apiProducts,\n loading: apiProductsLoading,\n error: apiProductsError,\n } = useAsync(async (): Promise<KuadrantList<APIProduct>> => {\n return kuadrantApi.getApiProducts();\n }, [kuadrantApi, refreshTrigger]);\n\n const {\n value: planPolicies,\n loading: planPoliciesLoading,\n error: planPoliciesError,\n } = useAsync(async (): Promise<KuadrantList<PlanPolicy>> => {\n // skip fetch if user doesn't have permission\n if (!canListPlanPolicies) {\n return { items: [] };\n }\n return kuadrantApi.getPlanPolicies();\n }, [kuadrantApi, refreshTrigger, canListPlanPolicies]);\n\n // fetch catalog entities synced from apiproducts to get lifecycle\n const { value: catalogEntities } = useAsync(async () => {\n const response = await catalogApi.getEntities({\n filter: {\n kind: 'API',\n 'metadata.labels.kuadrant.io/synced': 'true',\n },\n fields: ['metadata.name', 'spec.lifecycle'],\n });\n return response.items;\n }, [catalogApi, refreshTrigger]);\n\n // build name -> lifecycle lookup from catalog entities\n const lifecycleByName = useMemo(() => {\n const map = new Map<string, string>();\n if (catalogEntities) {\n for (const entity of catalogEntities) {\n const lifecycle = (entity.spec as any)?.lifecycle;\n if (lifecycle) {\n map.set(entity.metadata.name, lifecycle);\n }\n }\n }\n return map;\n }, [catalogEntities]);\n\n const getLifecycle = useCallback((product: APIProduct): string | undefined => {\n return lifecycleByName.get(product.metadata.name);\n }, [lifecycleByName]);\n\n // helper to find policy for a given route\n const getPolicyForProduct = useCallback((product: APIProduct): string | null => {\n if (!planPolicies?.items) return null;\n const targetRef = product.spec?.targetRef;\n if (!targetRef) return null;\n\n const policy = planPolicies.items.find((pp: PlanPolicy) => {\n const ref = (pp as any).spec.targetRef;\n return (\n ref?.kind === \"HTTPRoute\" &&\n ref?.name === targetRef.name &&\n (!ref?.namespace || ref?.namespace === (targetRef.namespace || product.metadata.namespace))\n );\n });\n return policy?.metadata.name || null;\n }, [planPolicies]);\n\n // helper to get auth schemes for a product\n const getAuthSchemes = useCallback((product: APIProduct): string[] => {\n const authSchemes = product.status?.discoveredAuthScheme?.authentication || {};\n const schemeObjects = Object.values(authSchemes);\n const schemes: string[] = [];\n\n if (schemeObjects.some((scheme: any) => scheme.hasOwnProperty(\"apiKey\"))) {\n schemes.push(\"API Key\");\n }\n if (schemeObjects.some((scheme: any) => scheme.hasOwnProperty(\"jwt\"))) {\n schemes.push(\"OIDC\");\n }\n if (schemes.length === 0) {\n schemes.push(\"Unknown\");\n }\n return schemes;\n }, []);\n\n const loading =\n apiProductsLoading ||\n planPoliciesLoading ||\n createPermissionLoading ||\n deletePermissionLoading ||\n planPolicyPermissionLoading;\n const error = apiProductsError || planPoliciesError;\n const permissionError =\n createPermissionError || deletePermissionError || planPolicyPermissionError;\n\n const allProducts = useMemo(() => {\n const products = apiProducts?.items || [];\n\n // API consumers (users without create/update permissions) should only see Published products\n // API owners can see all products (Draft and Published)\n if (!canCreateApiProduct && !canUpdateOwnApiProduct && !canUpdateAllApiProducts) {\n return products.filter((p: APIProduct) => {\n const publishStatus = p.spec?.publishStatus || 'Draft';\n return publishStatus === 'Published';\n });\n }\n\n return products;\n }, [apiProducts, canCreateApiProduct, canUpdateOwnApiProduct, canUpdateAllApiProducts]);\n\n const filterSections: FilterSection[] = useMemo(() => {\n const statusCounts = { Draft: 0, Published: 0 };\n const lifecycleCounts = new Map<string, number>();\n const policyCounts = new Map<string, number>();\n const routeCounts = new Map<string, number>();\n const namespaceCounts = new Map<string, number>();\n const tagCounts = new Map<string, number>();\n const authCounts = new Map<string, number>();\n\n allProducts.forEach((p: APIProduct) => {\n const status = p.spec?.publishStatus || \"Draft\";\n statusCounts[status as keyof typeof statusCounts]++;\n\n const lifecycle = getLifecycle(p);\n if (lifecycle) {\n lifecycleCounts.set(lifecycle, (lifecycleCounts.get(lifecycle) || 0) + 1);\n }\n\n const policy = getPolicyForProduct(p) || \"N/A\";\n policyCounts.set(policy, (policyCounts.get(policy) || 0) + 1);\n\n const route = p.spec?.targetRef?.name || \"unknown\";\n routeCounts.set(route, (routeCounts.get(route) || 0) + 1);\n\n const ns = p.metadata.namespace;\n namespaceCounts.set(ns, (namespaceCounts.get(ns) || 0) + 1);\n\n const tags = p.spec?.tags || [];\n tags.forEach((tag: string) => {\n tagCounts.set(tag, (tagCounts.get(tag) || 0) + 1);\n });\n\n const authSchemes = getAuthSchemes(p);\n authSchemes.forEach((scheme: string) => {\n authCounts.set(scheme, (authCounts.get(scheme) || 0) + 1);\n });\n });\n\n const sections: FilterSection[] = [\n {\n id: \"status\",\n title: \"Publish Status\",\n options: [\n { value: \"Draft\", label: \"Draft\", count: statusCounts.Draft },\n { value: \"Published\", label: \"Published\", count: statusCounts.Published },\n ],\n },\n {\n id: \"lifecycle\",\n title: \"Lifecycle\",\n options: Array.from(lifecycleCounts.entries()).map(([state, count]) => ({\n value: state,\n label: state.charAt(0).toUpperCase() + state.slice(1),\n count,\n })),\n },\n {\n id: \"authentication\",\n title: \"Authentication\",\n options: Array.from(authCounts.entries()).map(([scheme, count]) => ({\n value: scheme,\n label: scheme,\n count,\n })),\n },\n {\n id: \"route\",\n title: \"Route\",\n options: Array.from(routeCounts.entries()).map(([name, count]) => ({\n value: name,\n label: name,\n count,\n })),\n collapsed: routeCounts.size > 5,\n },\n {\n id: \"namespace\",\n title: \"Namespace\",\n options: Array.from(namespaceCounts.entries()).map(([ns, count]) => ({\n value: ns,\n label: ns,\n count,\n })),\n collapsed: namespaceCounts.size > 5,\n },\n {\n id: \"tags\",\n title: \"Tags\",\n options: Array.from(tagCounts.entries()).map(([tag, count]) => ({\n value: tag,\n label: tag,\n count,\n })),\n collapsed: tagCounts.size > 5,\n },\n ];\n\n // only show policy filter if user can list planpolicies\n if (canListPlanPolicies) {\n sections.splice(2, 0, {\n id: \"policy\",\n title: \"Policy\",\n options: Array.from(policyCounts.entries()).map(([name, count]) => ({\n value: name,\n label: name,\n count,\n })),\n collapsed: policyCounts.size > 5,\n });\n }\n\n return sections;\n }, [allProducts, getPolicyForProduct, getAuthSchemes, getLifecycle, canListPlanPolicies]);\n\n const filteredProducts = useMemo(() => {\n return allProducts.filter((p: APIProduct) => {\n if (filters.status.length > 0) {\n const status = p.spec?.publishStatus || \"Draft\";\n if (!filters.status.includes(status)) return false;\n }\n\n if (filters.lifecycle && filters.lifecycle.length > 0) {\n const lifecycle = getLifecycle(p);\n if (!lifecycle || !filters.lifecycle.includes(lifecycle)) return false;\n }\n\n if (filters.authentication.length > 0) {\n const authSchemes = getAuthSchemes(p);\n if (!filters.authentication.some((a: string) => authSchemes.includes(a))) return false;\n }\n\n if (filters.policy.length > 0) {\n const policy = getPolicyForProduct(p) || \"N/A\";\n if (!filters.policy.includes(policy)) return false;\n }\n\n if (filters.route.length > 0) {\n const route = p.spec?.targetRef?.name || \"unknown\";\n if (!filters.route.includes(route)) return false;\n }\n\n if (filters.namespace.length > 0) {\n if (!filters.namespace.includes(p.metadata.namespace)) return false;\n }\n\n if (filters.tags.length > 0) {\n const tags = p.spec?.tags || [];\n if (!filters.tags.some((t: string) => tags.includes(t))) return false;\n }\n\n return true;\n });\n }, [allProducts, filters, getPolicyForProduct, getAuthSchemes, getLifecycle]);\n\n const handleCreateSuccess = (productInfo: { namespace: string; name: string; displayName: string }) => {\n setRefreshTrigger((prev) => prev + 1);\n alertApi.post({\n message: `\"${productInfo.displayName}\" created successfully`,\n severity: \"success\",\n display: \"transient\",\n });\n };\n\n const handleEditClick = (namespace: string, name: string) => {\n setApiProductToEdit({ namespace, name });\n setEditDialogOpen(true);\n };\n\n const handleEditSuccess = () => {\n setRefreshTrigger((prev) => prev + 1);\n const productName = apiProductToEdit?.name || \"API Product\";\n alertApi.post({\n message: `\"${productName}\" updated successfully`,\n severity: \"success\",\n display: \"transient\",\n });\n };\n\n const handleDeleteClick = async (namespace: string, name: string) => {\n setApiProductToDelete({ namespace, name });\n setDeleteStats(null);\n\n try {\n // fetch all keys for this product across all consumer namespaces (admin view)\n const data = await kuadrantApi.getAllRequestsByApiProduct(name, namespace);\n const related = data.items || [];\n const approved = related.filter(\n (r: any) => r.status?.phase === \"Approved\",\n ).length;\n setDeleteStats({ requests: related.length, secrets: approved });\n } catch (err) {\n const errorMessage =\n err instanceof Error ? err.message : \"unknown error occurred\";\n alertApi.post({\n message: `Failed to delete access request: ${errorMessage}`,\n severity: \"error\",\n display: \"transient\",\n });\n } finally {\n setDeleteDialogOpen(true);\n }\n\n };\n\n const handleDeleteConfirm = async () => {\n if (!apiProductToDelete) return;\n\n setDeleting(true);\n try {\n await kuadrantApi.deleteApiProduct(\n apiProductToDelete.namespace,\n apiProductToDelete.name,\n );\n\n const deletedName = apiProductToDelete?.name || \"API Product\";\n setRefreshTrigger((prev) => prev + 1);\n alertApi.post({\n message: `\"${deletedName}\" deleted successfully`,\n severity: \"success\",\n display: \"transient\",\n });\n } catch (err) {\n const errorMessage =\n 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 setDeleteDialogOpen(false);\n setApiProductToDelete(null);\n }\n };\n\n const handleDeleteCancel = () => {\n setDeleteDialogOpen(false);\n setApiProductToDelete(null);\n };\n\n const handlePublishToggle = async (row: any) => {\n const namespace = row.metadata.namespace;\n const name = row.metadata.name;\n const displayName = row.spec?.displayName || name;\n const currentStatus = row.spec?.publishStatus || \"Draft\";\n const newStatus = currentStatus === \"Published\" ? \"Draft\" : \"Published\";\n // prevent publishing retired APIs\n if (newStatus === \"Published\" && getLifecycle(row) === \"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 const productPatch: Partial<APIProduct> = {\n // @ts-ignore partial obj\n spec: {\n publishStatus: newStatus\n },\n }\n\n try {\n await kuadrantApi.updateApiProduct(namespace, name, productPatch);\n\n setRefreshTrigger((prev) => prev + 1);\n alertApi.post({\n message: `\"${displayName}\" ${newStatus === \"Published\" ? \"published\" : \"unpublished\"} successfully`,\n severity: \"success\",\n display: \"transient\",\n });\n } catch (err) {\n const errorMessage =\n 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 columns: TableColumn[] = [\n {\n title: \"Name\",\n field: \"spec.displayName\",\n render: (row: any) => {\n const displayName = row.spec?.displayName ?? row.metadata.name;\n return (\n <Link to={`/kuadrant/api-products/${row.metadata.namespace}/${row.metadata.name}`}>\n <strong>{displayName}</strong>\n </Link>\n );\n },\n customFilterAndSearch: (term, row: any) => {\n const displayName = row.spec?.displayName || row.metadata.name || \"\";\n return displayName.toLowerCase().includes(term.toLowerCase());\n },\n },\n {\n title: \"Version\",\n field: \"spec.version\",\n render: (row: any) => row.spec?.version || \"-\",\n },\n {\n title: \"Route\",\n field: \"spec.targetRef.name\",\n render: (row: any) => row.spec?.targetRef?.name || \"-\",\n },\n // only show policy column if user can list planpolicies\n ...(canListPlanPolicies\n ? [\n {\n title: \"Policy\",\n field: \"policy\",\n render: (row: any) => getPolicyForProduct(row) || \"N/A\",\n },\n ]\n : []),\n {\n title: \"Tags\",\n field: \"spec.tags\",\n render: (row: any) => {\n const tags = row.spec?.tags || [];\n if (tags.length === 0) return \"-\";\n return (\n <Box display=\"flex\" style={{ gap: 4, flexWrap: \"wrap\" }}>\n {tags.map((tag: string) => (\n <Chip key={tag} label={tag} size=\"small\" variant=\"outlined\" />\n ))}\n </Box>\n );\n },\n },\n {\n title: \"Status\",\n field: \"spec.publishStatus\",\n render: (row: any) => {\n const status = row.spec?.publishStatus || \"Draft\";\n return (\n <Chip\n label={status}\n size=\"small\"\n color={status === \"Published\" ? \"primary\" : \"default\"}\n />\n );\n },\n },\n {\n title: \"Lifecycle\",\n render: (row: any) => {\n const lifecycle = getLifecycle(row);\n if (!lifecycle) return \"-\";\n return (\n <Chip\n label={lifecycle.charAt(0).toUpperCase() + lifecycle.slice(1)}\n size=\"small\"\n style={getLifecycleChipStyle(lifecycle)}\n />\n );\n },\n },\n {\n title: \"Authentication\",\n field: \"status.discoveredAuthScheme\",\n render: (row: any) => {\n const authSchemes =\n row.status?.discoveredAuthScheme?.authentication || {};\n const schemeObjects = Object.values(authSchemes);\n\n const hasApiKey = schemeObjects.some((scheme: any) =>\n scheme.hasOwnProperty(\"apiKey\"),\n );\n const hasJwt = schemeObjects.some((scheme: any) =>\n scheme.hasOwnProperty(\"jwt\"),\n );\n\n if (!hasApiKey && !hasJwt) {\n return (\n <Typography variant=\"body2\" style={{ fontStyle: \"italic\" }}>\n unknown\n </Typography>\n );\n }\n\n return (\n <Box display=\"flex\" style={{ gap: 4 }}>\n {hasApiKey && (\n <Chip\n icon={<VpnKeyIcon />}\n label=\"API Key\"\n size=\"small\"\n color=\"primary\"\n />\n )}\n {hasJwt && (\n <Chip\n icon={<LockIcon />}\n label=\"OIDC\"\n size=\"small\"\n color=\"secondary\"\n />\n )}\n </Box>\n );\n },\n },\n {\n title: \"Namespace\",\n field: \"metadata.namespace\",\n },\n {\n title: \"Actions\",\n field: \"actions\",\n filtering: false,\n render: (row: any) => {\n const owner = row.metadata?.annotations?.[\"backstage.io/owner\"];\n const isOwner = owner === userEntityRef;\n const canEdit =\n canUpdateAllApiProducts || (canUpdateOwnApiProduct && isOwner);\n const canDelete =\n canDeleteAllApiProducts || (canDeleteOwnApiProduct && isOwner);\n const isPublished = row.spec?.publishStatus === \"Published\";\n\n return (\n <Box display=\"flex\" alignItems=\"center\" style={{ gap: 4 }}>\n {canEdit && (\n <Button\n size=\"small\"\n color=\"primary\"\n onClick={() => handlePublishToggle(row)}\n style={{ marginRight: 4, textTransform: \"none\" }}\n >\n {isPublished ? \"Unpublish\" : \"Publish\"}\n </Button>\n )}\n {canEdit && (\n <IconButton\n size=\"small\"\n onClick={() =>\n handleEditClick(row.metadata.namespace, row.metadata.name)\n }\n title=\"Edit API Product\"\n >\n <EditIcon fontSize=\"small\" />\n </IconButton>\n )}\n {canDelete && (\n <IconButton\n size=\"small\"\n onClick={() =>\n handleDeleteClick(row.metadata.namespace, row.metadata.name)\n }\n title=\"Delete API Product\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n );\n },\n },\n ];\n\n return (\n <Page themeId=\"tool\">\n <Header\n title=\"API Products\"\n subtitle=\"Manage API products for Kubernetes\"\n >\n <SupportButton>Manage API products and plan policies</SupportButton>\n </Header>\n <Content>\n {loading && (\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 )}\n {error && <ResponseErrorPanel error={error} />}\n {permissionError && (\n <Box p={2}>\n <Typography color=\"error\">\n unable to check permissions: {permissionError.message}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n permission:{\" \"}\n {createPermissionError\n ? \"kuadrant.apiproduct.create\"\n : deletePermissionError\n ? \"kuadrant.apiproduct.delete\"\n : planPolicyPermissionError\n ? \"kuadrant.planpolicy.list\"\n : \"unknown\"}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n please try again or contact your administrator\n </Typography>\n </Box>\n )}\n {!loading && !error && !permissionError && allProducts.length === 0 && (\n <Box className={classes.emptyState}>\n <Box className={classes.emptyStateContent}>\n <Box className={classes.emptyStateText}>\n <Typography variant=\"h4\" className={classes.emptyStateTitle}>\n API Product\n </Typography>\n <Typography\n variant=\"body1\"\n className={classes.emptyStateDescription}\n >\n Create API product by registering existing API, associate\n route and policy\n </Typography>\n {canCreateApiProduct && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n startIcon={<AddIcon />}\n onClick={() => setCreateDialogOpen(true)}\n >\n Create API Product\n </Button>\n )}\n </Box>\n <img\n src={emptyStateIllustration}\n alt=\"API Product illustration\"\n className={classes.emptyStateImage}\n />\n </Box>\n </Box>\n )}\n {!loading && !error && !permissionError && allProducts.length > 0 && (\n <Box className={classes.container}>\n <FilterPanel\n sections={filterSections}\n filters={filters}\n onChange={setFilters}\n />\n <Box className={classes.tableContainer}>\n <Box display=\"flex\" justifyContent=\"flex-end\" mb={2}>\n {canCreateApiProduct && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n startIcon={<AddIcon />}\n onClick={() => setCreateDialogOpen(true)}\n >\n Create API Product\n </Button>\n )}\n </Box>\n {filteredProducts.length === 0 ? (\n <Box p={4} textAlign=\"center\">\n <Typography variant=\"body1\" color=\"textSecondary\">\n No API products match the selected filters.\n </Typography>\n </Box>\n ) : (\n <Table\n options={{\n paging: filteredProducts.length > 10,\n pageSize: 20,\n search: true,\n filtering: false,\n debounceInterval: 300,\n toolbar: true,\n emptyRowsWhenPaging: false,\n }}\n columns={columns}\n data={filteredProducts}\n />\n )}\n </Box>\n </Box>\n )}\n <CreateAPIProductDialog\n open={createDialogOpen}\n onClose={() => setCreateDialogOpen(false)}\n onSuccess={handleCreateSuccess}\n />\n <EditAPIProductDialog\n open={editDialogOpen}\n onClose={() => setEditDialogOpen(false)}\n onSuccess={handleEditSuccess}\n namespace={apiProductToEdit?.namespace || \"\"}\n name={apiProductToEdit?.name || \"\"}\n />\n <ConfirmDeleteDialog\n open={deleteDialogOpen}\n title=\"Delete API Product\"\n description={\n deleteStats\n ? `Deleting \"${apiProductToDelete?.name}\" will also remove:\n\n• ${deleteStats.requests} API Key(s)\n• ${deleteStats.secrets} API Key Secret(s)\n\nThis action cannot be undone.`\n : `Deleting \"${apiProductToDelete?.name}\" will also remove all associated API Keys and Secrets.\nThis action cannot be undone.`\n }\n confirmText={apiProductToDelete?.name}\n severity=\"high\"\n deleting={deleting}\n onConfirm={handleDeleteConfirm}\n onCancel={handleDeleteCancel}\n />\n </Content>\n </Page>\n );\n};\n\nexport const ApiProductsPage = () => {\n return (\n <PermissionGate\n permission={kuadrantApiProductListPermission}\n errorMessage=\"you don't have permission to view the Kuadrant page\"\n >\n <ResourceList />\n </PermissionGate>\n );\n};\n","import React from 'react';\nimport { Typography, Box } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { Permission } from '@backstage/plugin-permission-common';\nimport { useKuadrantPermission } from '../../utils/permissions';\n\ninterface PermissionGateProps {\n children: React.ReactNode;\n permission: Permission;\n fallback?: React.ReactNode;\n errorMessage?: string;\n}\n\nexport const PermissionGate = ({ children, permission, fallback, errorMessage }: PermissionGateProps) => {\n const { allowed, loading, error } = useKuadrantPermission(permission);\n\n if (loading) {\n return (\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 );\n }\n\n if (error) {\n return (\n <Box p={4}>\n <Typography color=\"error\">\n Unable to check permissions: {error.message}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Please try again or contact your administrator\n </Typography>\n </Box>\n );\n }\n\n if (!allowed) {\n if (fallback) {\n return <>{fallback}</>;\n }\n return (\n <Box p={4}>\n <Typography color=\"textSecondary\">\n {errorMessage || 'You don\\'t have permission to view this page'}\n </Typography>\n <Box mt={1}>\n <Typography variant=\"caption\" color=\"textSecondary\">\n Required permission: {permission.name}\n </Typography>\n </Box>\n </Box>\n );\n }\n\n return <>{children}</>;\n};\n"],"names":["useStyles","makeStyles","theme","root","width","minWidth","padding","spacing","borderRight","palette","divider","backgroundColor","background","paper","height","overflowY","sectionTitle","fontWeight","fontSize","textTransform","letterSpacing","color","text","secondary","marginBottom","display","alignItems","justifyContent","cursor","userSelect","filterSection","checkbox","checkboxLabel","clearButton","marginTop","count","marginLeft","FilterPanel","sections","filters","onChange","onClear","classes","collapsedSections","setCollapsedSections","React","Set","filter","s","collapsed","map","id","hasActiveFilters","Object","values","some","length","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","Box","className","mb","jsx","Typography","variant","Button","size","onClick","clearedFilters","forEach","section","Divider","isCollapsed","has","selectedCount","mt","toggleSection","sectionId","prev","next","delete","add","span","title","ExpandMoreIcon","ExpandLessIcon","Collapse","in","FormGroup","options","option","FormControlLabel","control","Checkbox","checked","includes","value","currentValues","newValues","v","handleCheckboxChange","label","undefined","asterisk","sectionHeader","gap","infoIcon","tagChip","marginRight","CreateAPIProductDialog","open","onClose","onSuccess","selectedPlanPolicy","selectedAuthPolicy","selectedRateLimitPolicy","kuadrantApi","useApi","kuadrantApiRef","name","setName","useState","displayName","setDisplayName","description","setDescription","version","setVersion","approvalMode","setApprovalMode","publishStatus","setPublishStatus","lifecycle","setLifecycle","tags","setTags","tagInput","setTagInput","selectedHTTPRoute","setSelectedHTTPRoute","contactEmail","setContactEmail","contactTeam","setContactTeam","docsURL","setDocsURL","openAPISpec","setOpenAPISpec","error","setError","creating","setCreating","httpRoutesRetry","setHttpRoutesRetry","nameError","setNameError","openAPISpecError","setOpenAPISpecError","routeSearchTerm","setRouteSearchTerm","routeSearchField","setRouteSearchField","httpRoutes","loading","httpRoutesLoading","httpRoutesError","useAsync","async","getHttpRoutes","items","planPolicies","planPoliciesError","getPlanPolicies","authPolicies","authPoliciesError","getAuthPolicies","rateLimitPolicies","rateLimitPoliciesError","getRateLimitPolicies","getPlanPolicyForRoute","routeNamespace","routeName","getPolicyForRoute","selectedRouteInfo","split","planPolicyAcceptedCondition","status","conditions","find","c","type","authPolicyAcceptedCondition","getRateLimitPolicyForRoute","rateLimitPolicyAcceptedCondition","planPolicyProps","statusCondition","discoveredPlans","spec","plans","authPolicyProps","namespacedName","namespace","metadata","rateLimitPolicyProps","getPolicyInfoForRoute","policy","tiers","entries","plan","limit","limits","requests","period","join","formatTierInfo","useEffect","handleAddTag","trim","handleClose","hasValidationErrors","jsx_runtime","Dialog","maxWidth","fullWidth","DialogTitle","DialogContent","Alert","severity","style","strong","message","Grid","container","item","xs","TextField","e","match","autoName","toLowerCase","replace","Math","floor","random","toString","padStart","validateKubernetesName","handleDisplayNameChange","target","placeholder","helperText","margin","required","disabled","InputLabelProps","handleNameChange","onKeyPress","key","preventDefault","InputProps","endAdornment","InputAdornment","position","IconButton","AddIcon","flexWrap","tag","Chip","onDelete","handleDeleteTag","tagToDelete","multiline","rows","Tooltip","InfoOutlinedIcon","handleOpenAPISpecChange","validateURL","select","SelectProps","MenuProps","PaperProps","maxHeight","anchorOrigin","vertical","horizontal","transformOrigin","getContentAnchorEl","px","pt","pb","top","zIndex","onKeyDown","stopPropagation","MenuItem","route","routeNs","policyInfo","searchLower","Fragment","ApiProductPolicies","planPolicy","authPolicy","rateLimitPolicy","includeTopMargin","FormControl","component","RadioGroup","row","Radio","DialogActions","Error","selectedRouteNamespace","selectedRouteName","apiProduct","apiVersion","kind","labels","targetRef","group","contact","email","team","documentation","openAPISpecURL","createApiProduct","err","String","startIcon","CircularProgress","minHeight","tableContainer","flex","overflow","emptyState","emptyStateContent","emptyStateText","emptyStateTitle","emptyStateDescription","emptyStateImage","ResourceList","alertApi","alertApiRef","identityApi","identityApiRef","catalogApi","catalogApiRef","userEntityRef","setUserEntityRef","createDialogOpen","setCreateDialogOpen","editDialogOpen","setEditDialogOpen","refreshTrigger","setRefreshTrigger","deleteDialogOpen","setDeleteDialogOpen","apiProductToDelete","setApiProductToDelete","apiProductToEdit","setApiProductToEdit","deleting","setDeleting","deleteStats","setDeleteStats","setFilters","authentication","allowed","canCreateApiProduct","createPermissionLoading","createPermissionError","useKuadrantPermission","kuadrantApiProductCreatePermission","canDeleteOwnApiProduct","deleteOwnPermissionLoading","kuadrantApiProductDeleteOwnPermission","canDeleteAllApiProducts","deleteAllPermissionLoading","deletePermissionError","kuadrantApiProductDeleteAllPermission","canUpdateOwnApiProduct","kuadrantApiProductUpdateOwnPermission","canUpdateAllApiProducts","kuadrantApiProductUpdateAllPermission","deletePermissionLoading","canListPlanPolicies","planPolicyPermissionLoading","planPolicyPermissionError","kuadrantPlanPolicyListPermission","identity","getBackstageIdentity","apiProducts","apiProductsLoading","apiProductsError","getApiProducts","planPoliciesLoading","catalogEntities","getEntities","fields","lifecycleByName","useMemo","Map","entity","_entity_spec","set","getLifecycle","useCallback","product","get","getPolicyForProduct","pp","ref","getAuthSchemes","authSchemes","discoveredAuthScheme","schemeObjects","schemes","scheme","hasOwnProperty","push","permissionError","allProducts","products","p","filterSections","statusCounts","Draft","Published","lifecycleCounts","policyCounts","routeCounts","namespaceCounts","tagCounts","authCounts","ns","Array","from","state","charAt","toUpperCase","slice","splice","filteredProducts","a","t","columns","field","render","Link","to","customFilterAndSearch","term","getLifecycleChipStyle","hasApiKey","hasJwt","icon","VpnKeyIcon","LockIcon","fontStyle","filtering","isOwner","annotations","canEdit","canDelete","isPublished","newStatus","post","productPatch","updateApiProduct","errorMessage","handlePublishToggle","handleEditClick","EditIcon","related","getAllRequestsByApiProduct","approved","r","phase","secrets","handleDeleteClick","DeleteIcon","Page","themeId","Header","subtitle","SupportButton","Content","_","i","Skeleton","ResponseErrorPanel","img","src","emptyStateIllustration","alt","textAlign","Table","paging","pageSize","search","debounceInterval","toolbar","emptyRowsWhenPaging","data","productInfo","EditAPIProductDialog","productName","ConfirmDeleteDialog","confirmText","onConfirm","deleteApiProduct","deletedName","onCancel","ApiProductsPage","PermissionGate","permission","kuadrantApiProductListPermission","children","fallback"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend=self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend||[]).push([[2822],{12822:(e,t,n)=>{n.r(t),n.d(t,{createVersionedContext:()=>i,createVersionedContextForTesting:()=>d,createVersionedValueMap:()=>u,getOrCreateGlobalSingleton:()=>o,useVersionedContext:()=>c});const a="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:Function("return this")(),r=e=>`__@backstage/${e}__`;function o(e,t){const n=r(e);let o=a[n];return o||(o=t(),a[n]=o,o)}var s=n(95478);function u(e){Object.freeze(e);const t={atVersion:t=>e[t]};return Object.defineProperty(t,"$map",{configurable:!0,enumerable:!0,get:()=>e}),t}function i(e){return o(e,()=>(0,s.createContext)(void 0))}function c(e){return(0,s.useContext)(i(e))}function d(e){return{set(t){globalThis[`__@backstage/${e}__`]=(0,s.createContext)(u(t))},reset(){delete globalThis[`__@backstage/${e}__`]}}}}}]);
|
|
2
|
+
//# sourceMappingURL=2822.ce006976.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/2822.ce006976.chunk.js","mappings":"wVASA,MAAAA,EARA,oBAAAC,QAAAA,OAAAC,OAAAA,KACAD,OAEA,oBAAAE,MAAAA,KAAAD,OAAAA,KACAC,KAEAC,SAAA,cAAAA,GAGAC,EAAAC,GAAA,gBAAwCA,MACxC,SAAAC,EAAAD,EAAAE,GACA,MAAAC,EAAAJ,EAAAC,GACA,IAAAI,EAAAV,EAAAS,GACA,OAAAC,IAGAA,EAAAF,IACAR,EAAAS,GAAAC,EACAA,EACA,gBCpBA,SAAAC,EAAAC,GACAC,OAAAC,OAAAF,GACA,MAAAG,EAAA,CACAC,UAAAC,GACAL,EAAAK,IAUA,OAPAJ,OAAAK,eAAAH,EAAA,QACAI,cAAA,EACAC,YAAA,EACAC,IAAA,IACAT,IAGAG,CACA,CCXA,SAAAO,EAAAb,GACA,OAASF,EACTE,EACA,KAAU,EAAAc,EAAAC,oBAAa,GAEvB,CACA,SAAAC,EAAAhB,GACA,OAAS,EAAAc,EAAAG,YAAUJ,EAAAb,GACnB,CACA,SAAAkB,EAAAlB,GACA,OACA,GAAAmB,CAAAhB,GACAiB,WAAA,gBAAiCpB,QAAW,EAAAc,EAAAC,eACpCb,EAAuBC,GAE/B,EACA,KAAAkB,UACAD,WAAA,gBAAwCpB,MACxC,EAEA","sources":["webpack://kuadrant.kuadrant-backstage-plugin-frontend/./node_modules/@backstage/version-bridge/dist/lib/globalObject.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./node_modules/@backstage/version-bridge/dist/lib/VersionedValue.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/./node_modules/@backstage/version-bridge/dist/lib/VersionedContext.esm.js"],"sourcesContent":["function getGlobalObject() {\n if (typeof window !== \"undefined\" && window.Math === Math) {\n return window;\n }\n if (typeof self !== \"undefined\" && self.Math === Math) {\n return self;\n }\n return Function(\"return this\")();\n}\nconst globalObject = getGlobalObject();\nconst makeKey = (id) => `__@backstage/${id}__`;\nfunction getOrCreateGlobalSingleton(id, supplier) {\n const key = makeKey(id);\n let value = globalObject[key];\n if (value) {\n return value;\n }\n value = supplier();\n globalObject[key] = value;\n return value;\n}\n\nexport { getOrCreateGlobalSingleton };\n//# sourceMappingURL=globalObject.esm.js.map\n","function createVersionedValueMap(versions) {\n Object.freeze(versions);\n const versionedValue = {\n atVersion(version) {\n return versions[version];\n }\n };\n Object.defineProperty(versionedValue, \"$map\", {\n configurable: true,\n enumerable: true,\n get() {\n return versions;\n }\n });\n return versionedValue;\n}\n\nexport { createVersionedValueMap };\n//# sourceMappingURL=VersionedValue.esm.js.map\n","import { createContext, useContext } from 'react';\nimport { getOrCreateGlobalSingleton } from './globalObject.esm.js';\nimport { createVersionedValueMap } from './VersionedValue.esm.js';\n\nfunction createVersionedContext(key) {\n return getOrCreateGlobalSingleton(\n key,\n () => createContext(void 0)\n );\n}\nfunction useVersionedContext(key) {\n return useContext(createVersionedContext(key));\n}\nfunction createVersionedContextForTesting(key) {\n return {\n set(versions) {\n globalThis[`__@backstage/${key}__`] = createContext(\n createVersionedValueMap(versions)\n );\n },\n reset() {\n delete globalThis[`__@backstage/${key}__`];\n }\n };\n}\n\nexport { createVersionedContext, createVersionedContextForTesting, useVersionedContext };\n//# sourceMappingURL=VersionedContext.esm.js.map\n"],"names":["globalObject","window","Math","self","Function","makeKey","id","getOrCreateGlobalSingleton","supplier","key","value","createVersionedValueMap","versions","Object","freeze","versionedValue","atVersion","version","defineProperty","configurable","enumerable","get","createVersionedContext","index_js_","createContext","useVersionedContext","useContext","createVersionedContextForTesting","set","globalThis","reset"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend=self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend||[]).push([[2952],{34556:(e,t,r)=>{function n(e){var t=Object.create(null);return function(r){return void 0===t[r]&&(t[r]=e(r)),t[r]}}r.d(t,{A:()=>n})},85557:(e,t,r)=>{r.d(t,{J:()=>g});var n={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},a=r(34556),o=!1,i=/[A-Z]|^ms/g,s=/_EMO_([^_]+?)_([^]*?)_EMO_/g,l=function(e){return 45===e.charCodeAt(1)},c=function(e){return null!=e&&"boolean"!=typeof e},d=(0,a.A)(function(e){return l(e)?e:e.replace(i,"-$&").toLowerCase()}),u=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(s,function(e,t,r){return m={name:t,styles:r,next:m},t})}return 1===n[e]||l(e)||"number"!=typeof t||0===t?t:t+"px"},p="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function f(e,t,r){if(null==r)return"";var n=r;if(void 0!==n.__emotion_styles)return n;switch(typeof r){case"boolean":return"";case"object":var a=r;if(1===a.anim)return m={name:a.name,styles:a.styles,next:m},a.name;var i=r;if(void 0!==i.styles){var s=i.next;if(void 0!==s)for(;void 0!==s;)m={name:s.name,styles:s.styles,next:m},s=s.next;return i.styles+";"}return function(e,t,r){var n="";if(Array.isArray(r))for(var a=0;a<r.length;a++)n+=f(e,t,r[a])+";";else for(var i in r){var s=r[i];if("object"!=typeof s){var l=s;null!=t&&void 0!==t[l]?n+=i+"{"+t[l]+"}":c(l)&&(n+=d(i)+":"+u(i,l)+";")}else{if("NO_COMPONENT_SELECTOR"===i&&o)throw new Error(p);if(!Array.isArray(s)||"string"!=typeof s[0]||null!=t&&void 0!==t[s[0]]){var m=f(e,t,s);switch(i){case"animation":case"animationName":n+=d(i)+":"+m+";";break;default:n+=i+"{"+m+"}"}}else for(var h=0;h<s.length;h++)c(s[h])&&(n+=d(i)+":"+u(i,s[h])+";")}}return n}(e,t,r);case"function":if(void 0!==e){var l=m,h=r(e);return m=l,f(e,t,h)}}var g=r;if(null==t)return g;var y=t[g];return void 0!==y?y:g}var m,h=/label:\s*([^\s;{]+)\s*(;|$)/g;function g(e,t,r){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var n=!0,a="";m=void 0;var o=e[0];null==o||void 0===o.raw?(n=!1,a+=f(r,t,o)):a+=o[0];for(var i=1;i<e.length;i++)a+=f(r,t,e[i]),n&&(a+=o[i]);h.lastIndex=0;for(var s,l="";null!==(s=h.exec(a));)l+="-"+s[1];var c=function(e){for(var t,r=0,n=0,a=e.length;a>=4;++n,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(n)|(255&e.charCodeAt(++n))<<8|(255&e.charCodeAt(++n))<<16|(255&e.charCodeAt(++n))<<24))+(59797*(t>>>16)<<16),r=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&r)+(59797*(r>>>16)<<16);switch(a){case 3:r^=(255&e.charCodeAt(n+2))<<16;case 2:r^=(255&e.charCodeAt(n+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(n)))+(59797*(r>>>16)<<16)}return(((r=1540483477*(65535&(r^=r>>>13))+(59797*(r>>>16)<<16))^r>>>15)>>>0).toString(36)}(a)+l;return{name:c,styles:a,next:m}}},16558:(e,t,r)=>{r.d(t,{i:()=>i,s:()=>o});var n=r(95478),a=!!n.useInsertionEffect&&n.useInsertionEffect,o=a||function(e){return e()},i=a||n.useLayoutEffect},85780:(e,t,r)=>{function n(e,t,r){var n="";return r.split(" ").forEach(function(r){void 0!==e[r]?t.push(e[r]+";"):r&&(n+=r+" ")}),n}r.d(t,{Rk:()=>n,SF:()=>a,sk:()=>o});var a=function(e,t,r){var n=e.key+"-"+t.name;!1===r&&void 0===e.registered[n]&&(e.registered[n]=t.styles)},o=function(e,t,r){a(e,t,r);var n=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+n:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}}},92952:(e,t,r)=>{r.r(t),r.d(t,{GlobalStyles:()=>_,StyledEngineProvider:()=>x,ThemeContext:()=>a.ThemeContext,css:()=>a.css,default:()=>w,internal_processStyles:()=>C,internal_serializeStyles:()=>A,keyframes:()=>a.keyframes});var n=r(89575),a=r(5277),o=r(85557),i=r(16558),s=r(85780),l=r(95478),c=r(34556),d=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,u=(0,c.A)(function(e){return d.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}),p=function(e){return"theme"!==e},f=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?u:p},m=function(e,t,r){var n;if(t){var a=t.shouldForwardProp;n=e.__emotion_forwardProp&&a?function(t){return e.__emotion_forwardProp(t)&&a(t)}:a}return"function"!=typeof n&&r&&(n=e.__emotion_forwardProp),n},h=function(e){var t=e.cache,r=e.serialized,n=e.isStringTag;return(0,s.SF)(t,r,n),(0,i.s)(function(){return(0,s.sk)(t,r,n)}),null},g=function e(t,r){var i,c,d=t.__emotion_real===t,u=d&&t.__emotion_base||t;void 0!==r&&(i=r.label,c=r.target);var p=m(t,r,d),g=p||f(u),y=!g("as");return function(){var v=arguments,b=d&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==i&&b.push("label:"+i+";"),null==v[0]||void 0===v[0].raw)b.push.apply(b,v);else{var k=v[0];b.push(k[0]);for(var x=v.length,_=1;_<x;_++)b.push(v[_],k[_])}var w=(0,a.withEmotionCache)(function(e,t,r){var n=y&&e.as||u,i="",d=[],m=e;if(null==e.theme){for(var v in m={},e)m[v]=e[v];m.theme=l.useContext(a.ThemeContext)}"string"==typeof e.className?i=(0,s.Rk)(t.registered,d,e.className):null!=e.className&&(i=e.className+" ");var k=(0,o.J)(b.concat(d),t.registered,m);i+=t.key+"-"+k.name,void 0!==c&&(i+=" "+c);var x=y&&void 0===p?f(n):g,_={};for(var w in e)y&&"as"===w||x(w)&&(_[w]=e[w]);return _.className=i,r&&(_.ref=r),l.createElement(l.Fragment,null,l.createElement(h,{cache:t,serialized:k,isStringTag:"string"==typeof n}),l.createElement(n,_))});return w.displayName=void 0!==i?i:"Styled("+("string"==typeof u?u:u.displayName||u.name||"Component")+")",w.defaultProps=t.defaultProps,w.__emotion_real=w,w.__emotion_base=u,w.__emotion_styles=b,w.__emotion_forwardProp=p,Object.defineProperty(w,"toString",{value:function(){return"."+c}}),w.withComponent=function(t,a){return e(t,(0,n.A)({},r,a,{shouldForwardProp:m(w,a,!0)})).apply(void 0,b)},w}}.bind(null);["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach(function(e){g[e]=g(e)});var y=r(76322),v=r.n(y),b=r(31085);const k=new Map;function x(e){const{injectFirst:t,enableCssLayer:r,children:n}=e,o=l.useMemo(()=>{const e=`${t}-${r}`;if("object"==typeof document&&k.has(e))return k.get(e);const n=function(e,t){const r=v()({key:"css",prepend:e});if(t){const e=r.insert;r.insert=(...t)=>(t[1].styles.match(/^@layer\s+[^{]*$/)||(t[1].styles=`@layer mui {${t[1].styles}}`),e(...t))}return r}(t,r);return k.set(e,n),n},[t,r]);return t||r?(0,b.jsx)(a.CacheProvider,{value:o,children:n}):n}function _(e){const{styles:t,defaultTheme:r={}}=e,n="function"==typeof t?e=>{return t(null==(n=e)||0===Object.keys(n).length?r:e);var n}:t;return(0,b.jsx)(a.Global,{styles:n})}function w(e,t){return g(e,t)}const C=(e,t)=>{Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))},S=[];function A(e){return S[0]=e,(0,o.J)(S)}}}]);
|
|
2
|
+
//# sourceMappingURL=2952.60bab809.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/2952.60bab809.chunk.js","mappings":"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","sources":["webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","webpack://kuadrant.kuadrant-backstage-plugin-frontend/../node_modules/@mui/styled-engine/index.js"],"sourcesContent":["function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\n\nvar isDevelopment = false;\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n // eslint-disable-next-line prefer-spread\n styles.push.apply(styles, args);\n } else {\n var templateStringsArr = args[0];\n\n styles.push(templateStringsArr[0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], templateStringsArr[i]);\n }\n }\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n var newStyled = createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n }));\n return newStyled.apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/react';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\nimport '@emotion/utils';\nimport 'react';\nimport '@emotion/is-prop-valid';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// bind it to avoid mutating the original function\nvar styled = createStyled.bind(null);\ntags.forEach(function (tagName) {\n styled[tagName] = styled(tagName);\n});\n\nexport { styled as default };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the <head> so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getCache(injectFirst, enableCssLayer) {\n const emotionCache = createCache({\n key: 'css',\n prepend: injectFirst\n });\n if (enableCssLayer) {\n const prevInsert = emotionCache.insert;\n emotionCache.insert = (...args) => {\n if (!args[1].styles.match(/^@layer\\s+[^{]*$/)) {\n // avoid nested @layer\n args[1].styles = `@layer mui {${args[1].styles}}`;\n }\n return prevInsert(...args);\n };\n }\n return emotionCache;\n}\nconst cacheMap = new Map();\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n enableCssLayer,\n children\n } = props;\n const cache = React.useMemo(() => {\n const cacheKey = `${injectFirst}-${enableCssLayer}`;\n if (typeof document === 'object' && cacheMap.has(cacheKey)) {\n return cacheMap.get(cacheKey);\n }\n const fresh = getCache(injectFirst, enableCssLayer);\n cacheMap.set(cacheKey, fresh);\n return fresh;\n }, [injectFirst, enableCssLayer]);\n if (injectFirst || enableCssLayer) {\n return /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n });\n }\n return children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * If true, MUI styles are wrapped in CSS `@layer mui` rule.\n * It helps to override MUI styles when using CSS Modules, Tailwind CSS, plain CSS, or any other styling solution.\n */\n enableCssLayer: PropTypes.bool,\n /**\n * By default, the styles are injected last in the <head> element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.18.0\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nimport { serializeStyles as emSerializeStyles } from '@emotion/serialize';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\n\n// Emotion only accepts an array, but we want to avoid allocations\nconst wrapper = [];\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function internal_serializeStyles(styles) {\n wrapper[0] = styles;\n return emSerializeStyles(wrapper);\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';"],"names":["memoize","fn","cache","Object","create","arg","undefined","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","isDevelopment","hyphenateRegex","animationRegex","isCustomProperty","property","charCodeAt","isProcessableValue","value","processStyleName","emotion_memoize_esm","A","styleName","replace","toLowerCase","processStyleValue","key","match","p1","p2","cursor","name","styles","next","noComponentSelectorMessage","handleInterpolation","mergedProps","registered","interpolation","componentSelector","__emotion_styles","keyframes","anim","serializedStyles","obj","string","Array","isArray","i","length","asString","Error","interpolated","_i","createStringFromObject","previousCursor","result","cached","labelPattern","serializeStyles","args","stringMode","strings","raw","lastIndex","identifierName","exec","str","k","h","len","toString","murmur2","useInsertionEffect","react__WEBPACK_IMPORTED_MODULE_0__","useInsertionEffectAlwaysWithSyncFallback","useInsertionEffectWithLayoutFallback","useLayoutEffect","getRegisteredStyles","registeredStyles","classNames","rawClassName","split","forEach","className","push","registerStyles","serialized","isStringTag","insertStyles","inserted","current","insert","sheet","reactPropsRegex","testOmitPropsOnStringTag","prop","test","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","options","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","Insertion","_ref","emotion_utils_browser_esm","SF","emotion_use_insertion_effect_with_fallbacks_browser_esm","s","sk","styled","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","label","target","defaultShouldForwardProp","shouldUseAs","arguments","slice","apply","templateStringsArr","Styled","emotion_react_browser_esm_js_","withEmotionCache","props","ref","FinalTag","as","classInterpolations","theme","index_js_","useContext","ThemeContext","Rk","emotion_serialize_esm","J","concat","finalShouldForwardProp","newProps","_key","createElement","Fragment","displayName","defaultProps","defineProperty","withComponent","nextTag","nextOptions","esm_extends","bind","tagName","cacheMap","Map","StyledEngineProvider","injectFirst","enableCssLayer","children","useMemo","cacheKey","document","has","get","fresh","emotionCache","emotion_cache_browser_esm_js_default","prepend","prevInsert","getCache","set","jsx_runtime","jsx","CacheProvider","GlobalStyles","defaultTheme","globalStyles","themeInput","keys","Global","styled_engine_styled","internal_processStyles","processor","wrapper","internal_serializeStyles"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend=self.webpackChunkkuadrant_kuadrant_backstage_plugin_frontend||[]).push([[2967],{55735:(e,t,a)=>{var r=a(4293),s=a(78920);t.A=void 0;var i=s(a(95478)),n=(0,r(a(74044)).default)(i.createElement("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"}),"ArrowBack");t.A=n},52235:(e,t,a)=>{var r=a(4293),s=a(78920);t.A=void 0;var i=s(a(95478)),n=(0,r(a(74044)).default)(i.createElement("path",{d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"}),"ArrowForward");t.A=n},85121:(e,t,a)=>{var r=a(4293),s=a(78920);t.A=void 0;var i=s(a(95478)),n=(0,r(a(74044)).default)(i.createElement("path",{d:"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"}),"Email");t.A=n},32269:(e,t,a)=>{var r=a(4293),s=a(78920);t.A=void 0;var i=s(a(95478)),n=(0,r(a(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");t.A=n},61524:(e,t,a)=>{var r=a(4293),s=a(78920);t.A=void 0;var i=s(a(95478)),n=(0,r(a(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");t.A=n},35015:(e,t,a)=>{a.d(t,{A:()=>n});var r=a(95478),s=a(85608),i=a(71581);function n(e,t){void 0===t&&(t=[]);var a=function(e,t,a){void 0===t&&(t=[]),void 0===a&&(a={loading:!1});var n=(0,r.useRef)(0),o=(0,i.A)(),c=(0,r.useState)(a),l=c[0],d=c[1],u=(0,r.useCallback)(function(){for(var t=[],a=0;a<arguments.length;a++)t[a]=arguments[a];var r=++n.current;return l.loading||d(function(e){return(0,s.__assign)((0,s.__assign)({},e),{loading:!0})}),e.apply(void 0,t).then(function(e){return o()&&r===n.current&&d({value:e,loading:!1}),e},function(e){return o()&&r===n.current&&d({error:e,loading:!1}),e})},t);return[l,u]}(e,t,{loading:!0}),n=a[0],o=a[1];return(0,r.useEffect)(function(){o()},[o]),n}},70980:(e,t,a)=>{a.d(t,{y:()=>d,s:()=>l});var r=a(18990),s=a(22097),i=a(54209),n=a.n(i);async function o(e){const t=await e.json().catch(()=>({}));switch(e.status){case 400:return t.error||"Invalid request. Please check your input.";case 403:return"Permission denied. Contact your administrator.";case 404:return"Resource not found. It may have been deleted.";case 409:return"Resource already exists or conflicts with existing data.";case 500:return"Server error. Please try again or contact support.";default:return t.error||`Request failed (${e.status})`}}const c={retries:3,factor:2,minTimeout:300,maxTimeout:3e3,randomize:!0},l=(0,s.createApiRef)({id:"plugin.kuadrant.service"});class d{async getBaseUrl(){return await this.discoveryApi.getBaseUrl("")}async fetchWithRetry(e,t=""){return n()(async a=>{const r=await this.fetchApi.fetch(e);if(401===r.status||403===r.status){const e=await o(r);a(new Error(e))}else if(!r.ok){const e=await o(r);throw new Error(`${t} ${e}`)}return await r.json()},c)}async fetchWithoutRetry(e,t,a=""){const r=await this.fetchApi.fetch(e,{headers:{"Content-Type":"application/json"},...t});if(!r.ok){const e=await o(r);throw new Error(`${a} ${e}`)}if("DELETE"!==t.method)return await r.json()}async getRequests(){const e=await this.getBaseUrl();return this.fetchWithRetry(`${e}kuadrant/requests/my`,"Failed to fetch API Key requests.")}async getAllRequests(){const e=await this.getBaseUrl();return this.fetchWithRetry(`${e}kuadrant/requests`,"Failed to fetch API Key requests.")}async getRequestsByNamespace(e){const t=await this.getBaseUrl(),a=e?`${t}kuadrant/requests/my?namespace=${e}`:`${t}kuadrant/requests/my`;return this.fetchWithRetry(a,"Failed to fetch API Key requests by namespace.")}async getRequestsByApiProduct(e,t){const a=await this.getBaseUrl(),r=new URLSearchParams({apiProductName:e,apiProductNamespace:t});return this.fetchWithRetry(`${a}kuadrant/requests/my?${r.toString()}`,"Failed to fetch API Key requests by API product.")}async getAllRequestsByApiProduct(e,t){const a=await this.getBaseUrl(),r=new URLSearchParams({apiProductName:e,apiProductNamespace:t});return this.fetchWithRetry(`${a}kuadrant/requests?${r.toString()}`,"Failed to fetch all API Key requests by API product.")}async getRequest(e,t){const a=await this.getBaseUrl();return this.fetchWithRetry(`${a}kuadrant/requests/${e}/${t}`,"Failed to fetch API Key request.")}async createRequest(e){const t=await this.getBaseUrl();return this.fetchWithoutRetry(`${t}kuadrant/requests`,{method:"POST",body:JSON.stringify(e)},"Failed to create APIKey request.")}async updateRequest(e,t,a){const r=await this.getBaseUrl();return this.fetchWithoutRetry(`${r}kuadrant/requests/${e}/${t}`,{method:"PATCH",body:JSON.stringify(a)},"Failed to update APIKey request.")}async deleteRequest(e,t){const a=await this.getBaseUrl();return this.fetchWithoutRetry(`${a}kuadrant/requests/${e}/${t}`,{method:"DELETE"},"Failed to delete APIKey request.")}async approveRequest(e,t,a="system"){const r=await this.getBaseUrl();return this.fetchWithoutRetry(`${r}kuadrant/requests/${e}/${t}/approve`,{method:"POST",body:JSON.stringify({reviewedBy:a})},"Failed to approve APIKey request.")}async rejectRequest(e,t,a="system"){const r=await this.getBaseUrl();return this.fetchWithoutRetry(`${r}kuadrant/requests/${e}/${t}/reject`,{method:"POST",body:JSON.stringify({reviewedBy:a})},"Failed to reject APIKey request.")}async bulkApproveRequests(e,t){const a=await this.getBaseUrl();return(await this.fetchWithoutRetry(`${a}kuadrant/requests/bulk-approve`,{method:"POST",body:JSON.stringify({requests:e,reviewedBy:t})},"Failed to bulk approve APIKey requests.")).results}async bulkRejectRequests(e,t){const a=await this.getBaseUrl();return(await this.fetchWithoutRetry(`${a}kuadrant/requests/bulk-reject`,{method:"POST",body:JSON.stringify({requests:e,reviewedBy:t})},"Failed to bulk reject APIKey requests")).results}async getApiKey(e,t){const a=await this.getBaseUrl();return this.fetchWithRetry(`${a}kuadrant/apikeys/${e}/${t}`,"Failed to fetch API Key.")}async getApiKeySecret(e,t){const a=await this.getBaseUrl();return this.fetchWithRetry(`${a}kuadrant/apikeys/${e}/${t}/secret`,"Failed to fetch API Key Secret.")}async getApiProducts(){const e=await this.getBaseUrl();return this.fetchWithRetry(`${e}kuadrant/apiproducts`,"Failed to fetch API Products.")}async getApiProduct(e,t){const a=await this.getBaseUrl();return this.fetchWithRetry(`${a}kuadrant/apiproducts/${e}/${t}`,"Failed to fetch API Product.")}async createApiProduct(e){const t=await this.getBaseUrl();return this.fetchWithoutRetry(`${t}kuadrant/apiproducts`,{method:"POST",body:JSON.stringify(e)},"Failed to create API Product.")}async updateApiProduct(e,t,a){const r=await this.getBaseUrl();return this.fetchWithoutRetry(`${r}kuadrant/apiproducts/${e}/${t}`,{method:"PATCH",body:JSON.stringify(a)},"Failed to update API Product.")}async deleteApiProduct(e,t){const a=await this.getBaseUrl();return this.fetchWithoutRetry(`${a}kuadrant/apiproducts/${e}/${t}`,{method:"DELETE"},"Failed to delete API Product.")}async getHttpRoutes(){const e=await this.getBaseUrl();return this.fetchWithRetry(`${e}kuadrant/httproutes`,"Failed to fetch HTTPRoutes.")}async getHttpRoute(e,t){const a=await this.getBaseUrl();return this.fetchWithRetry(`${a}kuadrant/httproutes/${e}/${t}`,`Failed to fetc HTTPRoute ${e}/${t}.`)}async getPlanPolicies(){const e=await this.getBaseUrl();return this.fetchWithRetry(`${e}kuadrant/planpolicies`,"Failed to fetch PlanPolicies.")}async getAuthPolicies(){const e=await this.getBaseUrl();return this.fetchWithRetry(`${e}kuadrant/authpolicies`,"Failed to fetch AuthPolicies.")}async getRateLimitPolicies(){const e=await this.getBaseUrl();return this.fetchWithRetry(`${e}kuadrant/ratelimitpolicies`,"Failed to fetch RateLimitPolicies.")}async createSecret(e,t){const a=await this.getBaseUrl();return this.fetchWithoutRetry(`${a}kuadrant/secrets`,{method:"POST",body:JSON.stringify({name:e,apiKeyValue:t})},"Failed to create secret")}async deleteSecret(e){const t=await this.getBaseUrl();return this.fetchWithoutRetry(`${t}kuadrant/secrets/${e}`,{method:"DELETE"},"Failed to delete secret")}constructor(e){(0,r._)(this,"discoveryApi",void 0),(0,r._)(this,"fetchApi",void 0),this.discoveryApi=e.discoveryApi,this.fetchApi=e.fetchApi}}},72967:(e,t,a)=>{a.r(t),a.d(t,{ApiKeyDetailPage:()=>U});var r=a(31085),s=a(95478),i=a(49634),n=a(22097),o=a(70980),c=a(16325),l=a(35015),d=a(289),u=a(15831),h=a(46681),p=a(42367),y=a(37725),f=a(94641),m=a(96040),A=a(58837),g=a(10394),v=a(71677),x=a(29365),j=a(64947),k=a(72501),b=a(42899),P=a(67720),w=a(31653),R=a(38605),$=a(4387),B=a(32269),C=a(61524),S=a(99594),q=a(55735),I=a(39330),N=a(85121),T=a(46299);const W=(0,A.A)(e=>({label:{fontWeight:600,color:e.palette.text.secondary,marginBottom:e.spacing(.5)},value:{marginBottom:e.spacing(2)},codeBlock:{backgroundColor:e.palette.background.default,padding:e.spacing(2),borderRadius:e.shape.borderRadius,fontFamily:"monospace",fontSize:"0.875rem",overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"break-all"},apiKeyContainer:{display:"flex",alignItems:"center",gap:e.spacing(1),padding:e.spacing(1.5),backgroundColor:e.palette.background.default,borderRadius:e.shape.borderRadius,fontFamily:"monospace"},tabPanel:{marginTop:e.spacing(2)}})),F=({code:e,onCopy:t})=>{const a=W();return(0,r.jsxs)(g.A,{position:"relative",children:[(0,r.jsx)(g.A,{className:a.codeBlock,children:e}),(0,r.jsx)(v.Ay,{title:"Copy code",children:(0,r.jsx)(x.A,{size:"small",style:{position:"absolute",top:8,right:8},onClick:t,children:(0,r.jsx)(S.A,{fontSize:"small"})})})]})},U=()=>{var e,t,a,A,U,K,E,z,L;const _=W(),{namespace:D,name:O}=(0,i.useParams)(),H=(0,n.useApi)(o.s),J=(0,n.useApi)(n.alertApiRef),[M,V]=(0,s.useState)(0),[Y,G]=(0,s.useState)(!1),[Q,X]=(0,s.useState)(null),[Z,ee]=(0,s.useState)(!1),{value:te,loading:ae,error:re}=(0,l.A)(async()=>{const[e,t]=await Promise.all([H.getApiKey(D,O),H.getApiProducts()]),a=(t.items||[]).find(t=>{var a;return t.metadata.name===(null===(a=e.spec.apiProductRef)||void 0===a?void 0:a.name)&&t.metadata.namespace===e.metadata.namespace});return{apiKey:e,apiProduct:a}},[D,O,H]),se=null==te?void 0:te.apiKey,ie=null==te?void 0:te.apiProduct,ne=async e=>{await navigator.clipboard.writeText(e),J.post({message:"Copied to clipboard",severity:"success",display:"transient"})};if(ae)return(0,r.jsxs)(d.Y,{themeId:"tool",children:[(0,r.jsx)(u.Y,{title:"Loading..."}),(0,r.jsx)(h.U,{children:(0,r.jsx)(g.A,{p:2,children:[...Array(5)].map((e,t)=>(0,r.jsx)(g.A,{p:2,children:(0,r.jsx)($.A,{variant:"text",width:"100%"})},t))})})]});if(re||!se)return(0,r.jsx)(p._,{error:re||new Error("API key not found")});const oe=(0,c.v)((null===(e=se.status)||void 0===e?void 0:e.conditions)||[]),ce="Approved"===oe?"Active":oe,le=(null===(t=se.status)||void 0===t?void 0:t.apiHostname)||"api.example.com",de=Q||"<your-api-key>",ue=[{label:"cURL",code:`curl -H "Authorization: Bearer ${de}" \\\n https://${le}/`},{label:"Node.js",code:`const response = await fetch('https://${le}/', {\n headers: {\n 'Authorization': 'Bearer ${de}'\n }\n});\nconst data = await response.json();`},{label:"Python",code:`import requests\n\nresponse = requests.get(\n 'https://${le}/',\n headers={'Authorization': 'Bearer ${de}'}\n)\ndata = response.json()`},{label:"Go",code:`package main\n\nimport (\n "net/http"\n)\n\nfunc main() {\n client := &http.Client{}\n req, _ := http.NewRequest("GET", "https://${le}/", nil)\n req.Header.Set("Authorization", "Bearer ${de}")\n resp, _ := client.Do(req)\n defer resp.Body.Close()\n}`}];return(0,r.jsxs)(d.Y,{themeId:"tool",children:[(0,r.jsx)(u.Y,{title:se.metadata.name,subtitle:`API Key for ${(null===(a=se.spec.apiProductRef)||void 0===a?void 0:a.name)||"unknown"}`,children:(0,r.jsx)(y.N_,{to:"/kuadrant/my-api-keys",children:(0,r.jsx)(j.A,{startIcon:(0,r.jsx)(q.A,{}),children:"Back to API Keys"})})}),(0,r.jsxs)(h.U,{children:[(0,r.jsx)(g.A,{mb:2,children:(0,r.jsxs)(f.B,{"aria-label":"breadcrumb",children:[(0,r.jsx)(y.N_,{to:"/kuadrant/my-api-keys",children:"API keys"}),(0,r.jsx)(k.A,{children:se.metadata.name})]})}),(0,r.jsxs)(g.A,{mb:3,display:"flex",style:{gap:8},children:[(0,r.jsx)(y.N_,{to:`/catalog/default/api/${null===(A=se.spec.apiProductRef)||void 0===A?void 0:A.name}`,children:(0,r.jsx)(j.A,{variant:"outlined",startIcon:(0,r.jsx)(I.A,{}),"data-testid":"view-api-button",children:"View API"})}),(null==ie||null===(U=ie.spec)||void 0===U?void 0:U.contact)&&(ie.spec.contact.email||ie.spec.contact.url||ie.spec.contact.slack)&&(0,r.jsx)(j.A,{variant:"outlined",startIcon:(0,r.jsx)(N.A,{}),href:ie.spec.contact.email?`mailto:${ie.spec.contact.email}`:ie.spec.contact.slack?ie.spec.contact.slack:ie.spec.contact.url||"#",target:"_blank",rel:"noopener noreferrer",children:"Contact Owner"})]}),(0,r.jsxs)(b.A,{container:!0,spacing:3,children:[(0,r.jsx)(b.A,{item:!0,xs:12,md:6,children:(0,r.jsx)(m.n,{title:"API Key Details",children:(0,r.jsxs)(g.A,{children:[(0,r.jsx)(k.A,{variant:"caption",className:_.label,children:"Status"}),(0,r.jsx)(g.A,{className:_.value,children:(0,r.jsx)(P.A,{label:ce,size:"small",style:(0,T.uU)(oe),"data-testid":"api-key-status-chip"})}),(0,r.jsx)(k.A,{variant:"caption",className:_.label,children:"API Product"}),(0,r.jsx)(k.A,{variant:"body1",className:_.value,children:(0,r.jsx)(y.N_,{to:`/catalog/default/api/${null===(K=se.spec.apiProductRef)||void 0===K?void 0:K.name}/api-keys`,children:(null===(E=se.spec.apiProductRef)||void 0===E?void 0:E.name)||"unknown"})}),(0,r.jsx)(k.A,{variant:"caption",className:_.label,children:"Tier"}),(0,r.jsx)(g.A,{className:_.value,children:(0,r.jsx)(P.A,{label:se.spec.planTier,size:"small",variant:"outlined"})}),(0,r.jsx)(k.A,{variant:"caption",className:_.label,children:"Requester"}),(0,r.jsx)(k.A,{variant:"body1",className:_.value,children:null===(z=se.spec.requestedBy)||void 0===z?void 0:z.userId}),(0,r.jsx)(k.A,{variant:"caption",className:_.label,children:"Requested"}),(0,r.jsx)(k.A,{variant:"body1",className:_.value,children:se.metadata.creationTimestamp?new Date(se.metadata.creationTimestamp).toLocaleDateString():"-"}),(()=>{var e,t,a;const s=null===(a=se.status)||void 0===a||null===(t=a.conditions)||void 0===t||null===(e=t.find(e=>"Approved"===e.type&&"True"===e.status))||void 0===e?void 0:e.lastTransitionTime;return s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(k.A,{variant:"caption",className:_.label,children:"Approved On"}),(0,r.jsx)(k.A,{variant:"body1",className:_.value,children:new Date(s).toLocaleDateString()})]}):null})()]})})}),(0,r.jsxs)(b.A,{item:!0,xs:12,md:6,children:[(0,r.jsx)(m.n,{title:"Use Case",children:(0,r.jsx)(k.A,{variant:"body1",children:se.spec.useCase||"No use case provided"})}),"Approved"===oe&&(0,r.jsx)(g.A,{mt:2,children:(0,r.jsx)(m.n,{title:"API Key",children:(0,r.jsxs)(g.A,{className:_.apiKeyContainer,children:[(0,r.jsx)(k.A,{variant:"body2",style:{fontFamily:"monospace",flex:1},children:Z?"Loading...":Y&&Q?Q:"•".repeat(32)}),Y&&Q&&(0,r.jsx)(v.Ay,{title:"Copy to clipboard",children:(0,r.jsx)(x.A,{size:"small",onClick:()=>ne(Q),children:(0,r.jsx)(S.A,{fontSize:"small"})})}),(0,r.jsx)(v.Ay,{title:Y?"Hide API key":"Reveal API key",children:(0,r.jsx)("span",{children:(0,r.jsx)(x.A,{size:"small",onClick:()=>{Y?(G(!1),X(null)):(async()=>{ee(!0);try{const e=await H.getApiKeySecret(D,O);X(e.apiKey),G(!0)}catch(e){console.error("Failed to fetch API key:",e);const t=e instanceof Error?e.message:"unknown error occurred";J.post({message:`Failed to fetch APIKey. ${t}`,severity:"error",display:"transient"})}finally{ee(!1)}})()},disabled:Z,children:Y?(0,r.jsx)(C.A,{fontSize:"small"}):(0,r.jsx)(B.A,{fontSize:"small"})})})})]})})})]}),"Approved"===oe&&(0,r.jsx)(b.A,{item:!0,xs:12,children:(0,r.jsx)(m.n,{title:"Code Examples",children:(0,r.jsxs)(g.A,{children:[(0,r.jsx)(w.A,{value:M,onChange:(e,t)=>V(t),indicatorColor:"primary",textColor:"primary",children:ue.map(e=>(0,r.jsx)(R.A,{label:e.label},e.label))}),(0,r.jsx)(g.A,{className:_.tabPanel,children:(0,r.jsx)(F,{code:ue[M].code,onCopy:()=>ne(ue[M].code)})})]})})}),(null===(L=se.status)||void 0===L?void 0:L.limits)&&(0,r.jsx)(b.A,{item:!0,xs:12,children:(0,r.jsx)(m.n,{title:"Rate Limits",children:(0,r.jsxs)(b.A,{container:!0,spacing:2,children:[se.status.limits.daily&&(0,r.jsxs)(b.A,{item:!0,children:[(0,r.jsx)(k.A,{variant:"caption",className:_.label,children:"Daily"}),(0,r.jsx)(k.A,{variant:"h6",children:se.status.limits.daily.toLocaleString()})]}),se.status.limits.weekly&&(0,r.jsxs)(b.A,{item:!0,children:[(0,r.jsx)(k.A,{variant:"caption",className:_.label,children:"Weekly"}),(0,r.jsx)(k.A,{variant:"h6",children:se.status.limits.weekly.toLocaleString()})]}),se.status.limits.monthly&&(0,r.jsxs)(b.A,{item:!0,children:[(0,r.jsx)(k.A,{variant:"caption",className:_.label,children:"Monthly"}),(0,r.jsx)(k.A,{variant:"h6",children:se.status.limits.monthly.toLocaleString()})]})]})})})]})]})]})}},16325:(e,t,a)=>{function r(e){return e&&0!==e.length?e.find(e=>"Approved"===e.type&&"True"===e.status)?"Approved":e.find(e=>"Denied"===e.type&&"True"===e.status)?"Denied":e.find(e=>"Failed"===e.type&&"True"===e.status)?"Failed":"Pending":"Pending"}a.d(t,{v:()=>r})},46299:(e,t,a)=>{a.d(t,{ee:()=>i,g9:()=>r,uU:()=>s});const r=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{}}}},96040:(e,t,a)=>{a.d(t,{n:()=>S});var r=a(31085),s=a(40703),i=a(59469),n=a(48653),o=a(45685),c=a(37197),l=a(37976),d=a(53373),u=a.n(d),h=a(10394),p=a(72501),y=a(52235),f=a(37725);const m=(0,l.makeStyles)(e=>({root:{maxWidth:"fit-content",padding:e.spacing(2,2,2,2.5)},boxTitle:{margin:0,color:e.palette.textSubtle},arrow:{color:e.palette.textSubtle}}),{name:"BackstageBottomLink"});function A(e){const{link:t,title:a,onClick:s}=e,i=m();return(0,r.jsxs)(h.A,{children:[(0,r.jsx)(c.A,{}),(0,r.jsx)(f.N_,{to:t,onClick:s,underline:"none",children:(0,r.jsxs)(h.A,{display:"flex",alignItems:"center",className:i.root,children:[(0,r.jsx)(h.A,{className:i.boxTitle,fontWeight:"fontWeightBold",m:1,children:(0,r.jsx)(p.A,{children:(0,r.jsx)("strong",{children:a})})}),(0,r.jsx)(y.A,{className:i.arrow})]})})]})}var g=a(95478),v=a(64947);const x=(0,g.forwardRef)((e,t)=>(0,r.jsx)(f.N_,{ref:t,...e,color:"initial"})),j=(0,g.forwardRef)((e,t)=>(0,r.jsx)(v.A,{ref:t,component:x,...e}));var k=a(34169),b=a(21006),P=a(67550);const w=e=>{const{slackChannel:t}=e,{t:a}=(0,P.i)(b.O);return t?"string"==typeof t?(0,r.jsx)(p.A,{children:a("errorBoundary.title",{slackChannel:t})}):t.href?(0,r.jsx)(j,{to:t.href,variant:"contained",children:t.name}):(0,r.jsx)(p.A,{children:a("errorBoundary.title",{slackChannel:t.name})}):null},R=class extends g.Component{constructor(e){super(e),this.state={error:void 0,errorInfo:void 0}}componentDidCatch(e,t){console.error(`ErrorBoundary, error: ${e}`,{error:e,errorInfo:t}),this.setState({error:e,errorInfo:t})}render(){const{slackChannel:e,children:t}=this.props,{error:a}=this.state;return a?(0,r.jsx)(k.b,{title:"Something Went Wrong",error:a,children:(0,r.jsx)(w,{slackChannel:e})}):t}},$=(0,l.makeStyles)(e=>({noPadding:{padding:0,"&:last-child":{paddingBottom:0}},contentAlignBottom:{display:"flex",alignItems:"self-end"},header:{padding:e.spacing(2,2,2,2.5)},headerTitle:{fontWeight:e.typography.fontWeightBold},headerSubheader:{paddingTop:e.spacing(1)},headerAvatar:{},headerAction:{},headerContent:{},subheader:{display:"flex"}}),{name:"BackstageInfoCard"}),B=(0,l.withStyles)(e=>({root:{display:"inline-block",padding:e.spacing(8,8,0,0),float:"right"}}),{name:"BackstageInfoCardCardActionsTopRight"})(i.A),C={card:{flex:{display:"flex",flexDirection:"column"},fullHeight:{display:"flex",flexDirection:"column",height:"100%"},gridItem:{display:"flex",flexDirection:"column",height:"calc(100% - 10px)",marginBottom:"10px",breakInside:"avoid-page","@media print":{height:"auto"}}},cardContent:{fullHeight:{flex:1},gridItem:{flex:1}}};function S(e){const{title:t,subheader:a,divider:l=!0,deepLink:d,slackChannel:h,errorBoundaryProps:p,variant:y,alignContent:f="normal",children:m,headerStyle:g,headerProps:v,icon:x,action:j,actionsClassName:k,actions:b,cardClassName:P,actionsTopRight:w,className:S,noPadding:q,titleTypographyProps:I,subheaderTypographyProps:N}=e,T=$();let W={},F={};y&&y.split(/[\s]+/g).forEach(e=>{W={...W,...C.card[e]},F={...F,...C.cardContent[e]}});const U=p||(h?{slackChannel:h}:{});return(0,r.jsx)(s.A,{style:W,className:S,children:(0,r.jsxs)(R,{...U,children:[t&&(0,r.jsx)(o.A,{classes:{root:u()(T.header),title:T.headerTitle,subheader:T.headerSubheader,avatar:T.headerAvatar,action:T.headerAction,content:T.headerContent},title:t,subheader:a||x?(0,r.jsxs)("div",{"data-testid":"info-card-subheader",children:[a&&(0,r.jsx)("div",{className:T.subheader,children:a}),x]}):null,action:j,style:{...g},titleTypographyProps:I,subheaderTypographyProps:N,...v}),w&&(0,r.jsx)(B,{children:w}),l&&(0,r.jsx)(c.A,{}),(0,r.jsx)(n.A,{className:u()(P,{[T.noPadding]:q,[T.contentAlignBottom]:"bottom"===f}),style:F,children:m}),b&&(0,r.jsx)(i.A,{className:k,children:b}),d&&(0,r.jsx)(A,{...d})]})})}}}]);
|
|
2
|
+
//# sourceMappingURL=2967.06a5593b.chunk.js.map
|