@techdocs/cli 0.8.12-next.0 → 0.8.13
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/CHANGELOG.md +40 -5
- package/README.md +6 -6
- package/dist/cjs/serve-be4ef843.cjs.js +144 -0
- package/dist/cjs/serve-be4ef843.cjs.js.map +1 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/.config-schema.json +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/android-chrome-192x192.png +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/apple-touch-icon.png +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/favicon-16x16.png +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/favicon-32x32.png +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/favicon.ico +0 -0
- package/dist/embedded-app/index.html +1 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/manifest.json +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/robots.txt +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/safari-pinned-tab.svg +0 -0
- package/dist/embedded-app/static/1553.c8a7e908.chunk.js +3 -0
- package/dist/embedded-app/static/1553.c8a7e908.chunk.js.map +1 -0
- package/dist/embedded-app/static/1959.678b5ec1.chunk.js +8 -0
- package/dist/embedded-app/static/1959.678b5ec1.chunk.js.map +1 -0
- package/dist/embedded-app/static/2426.b8ec43e8.chunk.js +3 -0
- package/dist/embedded-app/static/2426.b8ec43e8.chunk.js.map +1 -0
- package/dist/embedded-app/static/3825.2314f84b.chunk.js +3 -0
- package/dist/embedded-app/static/3825.2314f84b.chunk.js.map +1 -0
- package/dist/embedded-app/static/390.c90551db.chunk.js +3 -0
- package/dist/embedded-app/static/390.c90551db.chunk.js.map +1 -0
- package/dist/embedded-app/static/4022.a09e0bb5.chunk.js +3 -0
- package/dist/embedded-app/static/4022.a09e0bb5.chunk.js.map +1 -0
- package/dist/embedded-app/static/4960.1d2a23bf.chunk.js +3 -0
- package/dist/embedded-app/static/4960.1d2a23bf.chunk.js.map +1 -0
- package/dist/embedded-app/static/6105.1f3a3239.chunk.js +3 -0
- package/dist/embedded-app/static/6105.1f3a3239.chunk.js.map +1 -0
- package/dist/embedded-app/static/6235.4d357650.chunk.js +3 -0
- package/dist/embedded-app/static/6235.4d357650.chunk.js.map +1 -0
- package/dist/embedded-app/static/6650.6b716e7d.chunk.js +3 -0
- package/dist/embedded-app/static/6650.6b716e7d.chunk.js.map +1 -0
- package/dist/embedded-app/static/804.c2c0104e.chunk.js +3 -0
- package/dist/embedded-app/static/804.c2c0104e.chunk.js.map +1 -0
- package/dist/embedded-app/static/8061.3c956038.chunk.js +3 -0
- package/dist/embedded-app/static/8061.3c956038.chunk.js.map +1 -0
- package/dist/embedded-app/static/8718.d8f22f92.chunk.js +4 -0
- package/dist/embedded-app/static/8718.d8f22f92.chunk.js.map +1 -0
- package/dist/embedded-app/static/8792.0280b731.chunk.js +3 -0
- package/dist/embedded-app/static/8792.0280b731.chunk.js.map +1 -0
- package/dist/embedded-app/static/9028.81742021.chunk.js +3 -0
- package/dist/embedded-app/static/9028.81742021.chunk.js.map +1 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/static/createComponent.975d1e1e..svg +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/static/illo.7884c54f..svg +0 -0
- package/dist/embedded-app/static/main.137ccf21.js +152 -0
- package/dist/embedded-app/static/main.137ccf21.js.map +1 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/static/mic-drop.fe3ef4d0..svg +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/static/missingAnnotation.67f79e98..svg +0 -0
- package/dist/embedded-app/static/module-ajv.ed51f4b8.js +10 -0
- package/dist/embedded-app/static/module-ajv.ed51f4b8.js.map +1 -0
- package/dist/embedded-app/static/module-date-fns.a08d117e.js +3 -0
- package/dist/embedded-app/static/module-date-fns.a08d117e.js.map +1 -0
- package/dist/embedded-app/static/module-lodash.41f5159c.js +29 -0
- package/dist/embedded-app/static/module-lodash.41f5159c.js.map +1 -0
- package/dist/embedded-app/static/module-material-table.a73fb7f5.js +3 -0
- package/dist/embedded-app/static/module-material-table.a73fb7f5.js.map +1 -0
- package/dist/embedded-app/static/module-material-ui.c5231eb9.js +51 -0
- package/dist/embedded-app/static/module-material-ui.c5231eb9.js.map +1 -0
- package/dist/embedded-app/static/module-react-beautiful-dnd.bcb66a0c.js +67 -0
- package/dist/embedded-app/static/module-react-beautiful-dnd.bcb66a0c.js.map +1 -0
- package/dist/embedded-app/static/module-react-dom.a4f98d7b.js +25 -0
- package/dist/embedded-app/static/module-react-dom.a4f98d7b.js.map +1 -0
- package/dist/embedded-app/static/module-yaml.57b26e04.js +151 -0
- package/dist/embedded-app/static/module-yaml.57b26e04.js.map +1 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/static/noBuild.1715fa71..svg +0 -0
- package/dist/{techdocs-preview-bundle → embedded-app}/static/noInformation.4b426325..svg +0 -0
- package/dist/embedded-app/static/react-syntax-highlighter/lowlight-import.051a03b1.chunk.js +6 -0
- package/dist/embedded-app/static/react-syntax-highlighter/lowlight-import.051a03b1.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_abnf.e6a0eba8.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_abnf.e6a0eba8.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_accesslog.4beaa91a.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_accesslog.4beaa91a.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_actionscript.292b574b.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_actionscript.292b574b.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ada.17b0c1e9.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ada.17b0c1e9.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_angelscript.2fa22084.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_angelscript.2fa22084.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_apache.a966b924.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_apache.a966b924.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_applescript.398efb2d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_applescript.398efb2d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_arcade.efd9310b.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_arcade.efd9310b.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_arduino.f5b09530.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_arduino.f5b09530.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_armasm.07c7365e.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_armasm.07c7365e.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_asciidoc.e71b2b97.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_asciidoc.e71b2b97.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_aspectj.d4578a11.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_aspectj.d4578a11.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_autohotkey.fbaa0237.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_autohotkey.fbaa0237.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_autoit.6d4c5214.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_autoit.6d4c5214.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_avrasm.18f58e18.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_avrasm.18f58e18.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_awk.c27dd539.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_awk.c27dd539.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_axapta.590ecb33.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_axapta.590ecb33.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_bash.6dadcb4e.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_bash.6dadcb4e.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_basic.6316c507.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_basic.6316c507.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_bnf.3c2aef44.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_bnf.3c2aef44.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_brainfuck.5c72cafc.chunk.js +5 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_brainfuck.5c72cafc.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_c.e9772f0f.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_c.e9772f0f.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cLike.df1dc03b.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cLike.df1dc03b.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cal.ab9f187a.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cal.ab9f187a.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_capnproto.a5523056.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_capnproto.a5523056.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ceylon.3365c59e.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ceylon.3365c59e.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_clean.41d80232.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_clean.41d80232.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_clojure.1f816fc6.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_clojure.1f816fc6.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_clojureRepl.df5f7b77.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_clojureRepl.df5f7b77.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cmake.1d3ebd62.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cmake.1d3ebd62.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_coffeescript.7d35d62c.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_coffeescript.7d35d62c.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_coq.18dba36b.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_coq.18dba36b.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cos.2a2085d6.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cos.2a2085d6.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cpp.bd92fb21.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_cpp.bd92fb21.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_crmsh.f9f13b4d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_crmsh.f9f13b4d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_crystal.92c08c0a.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_crystal.92c08c0a.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_csharp.8b48e8b8.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_csharp.8b48e8b8.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_csp.a08eda06.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_csp.a08eda06.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_css.04989873.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_css.04989873.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_d.daf9e0eb.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_d.daf9e0eb.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dart.2047310e.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dart.2047310e.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_delphi.2e20b712.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_delphi.2e20b712.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_diff.b50d2d6c.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_diff.b50d2d6c.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_django.d53e0f58.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_django.d53e0f58.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dns.8313f2da.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dns.8313f2da.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dockerfile.4059e474.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dockerfile.4059e474.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dos.6e4bdd05.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dos.6e4bdd05.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dsconfig.cbf005ae.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dsconfig.cbf005ae.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dts.25d6bc4a.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dts.25d6bc4a.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dust.9a1225a3.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_dust.9a1225a3.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ebnf.14f00049.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ebnf.14f00049.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_elixir.f723f0f4.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_elixir.f723f0f4.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_elm.b6871fdc.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_elm.b6871fdc.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_erb.f0b33cfd.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_erb.f0b33cfd.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_erlang.269e6936.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_erlang.269e6936.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_erlangRepl.5b8fbb4b.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_erlangRepl.5b8fbb4b.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_excel.76415c4c.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_excel.76415c4c.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_fix.f3d3d961.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_fix.f3d3d961.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_flix.4bab53eb.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_flix.4bab53eb.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_fortran.4d94061b.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_fortran.4d94061b.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_fsharp.38ba8914.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_fsharp.38ba8914.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gams.e8178c8d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gams.e8178c8d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gauss.d8121ec2.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gauss.d8121ec2.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gcode.683bb963.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gcode.683bb963.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gherkin.a89ed74e.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gherkin.a89ed74e.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_glsl.ad325f79.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_glsl.ad325f79.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gml.8b729794.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gml.8b729794.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_go.86cc8880.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_go.86cc8880.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_golo.df21ae57.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_golo.df21ae57.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gradle.ccdf8a11.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_gradle.ccdf8a11.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_groovy.2f3d05a7.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_groovy.2f3d05a7.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_haml.3282d98e.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_haml.3282d98e.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_handlebars.d75a2b1d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_handlebars.d75a2b1d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_haskell.fe9946b0.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_haskell.fe9946b0.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_haxe.de3c0102.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_haxe.de3c0102.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_hsp.79b4f6a1.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_hsp.79b4f6a1.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_htmlbars.f3762ac8.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_htmlbars.f3762ac8.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_http.3471f585.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_http.3471f585.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_hy.90970bfa.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_hy.90970bfa.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_inform7.3a00f6f3.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_inform7.3a00f6f3.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ini.41e881fe.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ini.41e881fe.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_irpf90.f7dcd64c.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_irpf90.f7dcd64c.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_isbl.0ef17f5f.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_isbl.0ef17f5f.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_java.28b8c66f.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_java.28b8c66f.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_javascript.6b1cd365.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_javascript.6b1cd365.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_jbossCli.3e9aa8ff.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_jbossCli.3e9aa8ff.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_json.64a72c69.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_json.64a72c69.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_julia.7beb73b2.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_julia.7beb73b2.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_juliaRepl.3b16b540.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_juliaRepl.3b16b540.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_kotlin.72e6c744.chunk.js +4 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_kotlin.72e6c744.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_lasso.206ae0f8.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_lasso.206ae0f8.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_latex.c8014dd5.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_latex.c8014dd5.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ldif.a987362a.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ldif.a987362a.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_leaf.24aff4d8.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_leaf.24aff4d8.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_less.fde51777.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_less.fde51777.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_lisp.3b0bfd87.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_lisp.3b0bfd87.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_livecodeserver.28bd16e8.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_livecodeserver.28bd16e8.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_livescript.dfedba67.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_livescript.dfedba67.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_llvm.359b16e6.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_llvm.359b16e6.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_lsl.f12ea89d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_lsl.f12ea89d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_lua.d5869324.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_lua.d5869324.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_makefile.6b78bb75.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_makefile.6b78bb75.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_markdown.4f56f83c.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_markdown.4f56f83c.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mathematica.d2775785.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mathematica.d2775785.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_matlab.14a1484d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_matlab.14a1484d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_maxima.d0446e84.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_maxima.d0446e84.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mel.02270ff9.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mel.02270ff9.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mercury.6f3d5a69.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mercury.6f3d5a69.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mipsasm.aab1a206.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mipsasm.aab1a206.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mizar.568906a3.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mizar.568906a3.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mojolicious.c84fcc34.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_mojolicious.c84fcc34.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_monkey.feab688a.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_monkey.feab688a.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_moonscript.19af75b8.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_moonscript.19af75b8.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_n1ql.b2ee87fb.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_n1ql.b2ee87fb.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nginx.4a16400b.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nginx.4a16400b.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nim.9fcf8db5.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nim.9fcf8db5.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nix.1f574423.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nix.1f574423.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nodeRepl.f2587359.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nodeRepl.f2587359.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nsis.3077a1bf.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_nsis.3077a1bf.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_objectivec.9d926142.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_objectivec.9d926142.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ocaml.04b343a0.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ocaml.04b343a0.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_oneC.37768899.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_oneC.37768899.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_openscad.8491cf45.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_openscad.8491cf45.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_oxygene.643eb07c.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_oxygene.643eb07c.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_parser3.75ed358d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_parser3.75ed358d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_perl.2efba989.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_perl.2efba989.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_pf.2186e4a7.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_pf.2186e4a7.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_pgsql.843ed847.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_pgsql.843ed847.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_php.7ea88954.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_php.7ea88954.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_phpTemplate.fd6719b2.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_phpTemplate.fd6719b2.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_plaintext.f1d2959a.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_plaintext.f1d2959a.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_pony.f0b88195.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_pony.f0b88195.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_powershell.dce833ca.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_powershell.dce833ca.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_processing.36916075.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_processing.36916075.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_profile.db33af61.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_profile.db33af61.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_prolog.2a05e187.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_prolog.2a05e187.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_properties.0df57f0a.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_properties.0df57f0a.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_protobuf.3e3b4e57.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_protobuf.3e3b4e57.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_puppet.2fb0bb40.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_puppet.2fb0bb40.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_purebasic.a63201c1.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_purebasic.a63201c1.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_python.770df37e.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_python.770df37e.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_pythonRepl.3ca17ff5.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_pythonRepl.3ca17ff5.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_q.d9b193e3.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_q.d9b193e3.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_qml.616441e2.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_qml.616441e2.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_r.07dc3712.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_r.07dc3712.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_reasonml.85183415.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_reasonml.85183415.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_rib.2ea1e5aa.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_rib.2ea1e5aa.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_roboconf.5075ae03.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_roboconf.5075ae03.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_routeros.d33242ea.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_routeros.d33242ea.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_rsl.9c1785fc.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_rsl.9c1785fc.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ruby.b7a2f7ab.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ruby.b7a2f7ab.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ruleslanguage.011d4ccd.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_ruleslanguage.011d4ccd.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_rust.a6f6a618.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_rust.a6f6a618.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_sas.110925b5.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_sas.110925b5.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_scala.0dddfa51.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_scala.0dddfa51.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_scheme.38da3457.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_scheme.38da3457.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_scilab.4554b692.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_scilab.4554b692.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_scss.a291bfd5.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_scss.a291bfd5.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_shell.c8637fd3.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_shell.c8637fd3.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_smali.095fbc33.chunk.js +4 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_smali.095fbc33.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_smalltalk.82bb2ca1.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_smalltalk.82bb2ca1.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_sml.db637ab9.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_sml.db637ab9.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_sqf.c168c06c.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_sqf.c168c06c.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_sql.ace85109.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_sql.ace85109.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_stan.a5cae90b.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_stan.a5cae90b.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_stata.ded20240.chunk.js +5 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_stata.ded20240.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_step21.42386ad1.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_step21.42386ad1.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_stylus.28930f5e.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_stylus.28930f5e.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_subunit.09d14bb0.chunk.js +5 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_subunit.09d14bb0.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_swift.0bfd8f65.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_swift.0bfd8f65.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_taggerscript.08018f04.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_taggerscript.08018f04.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_tap.38941f9b.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_tap.38941f9b.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_tcl.5c4648da.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_tcl.5c4648da.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_thrift.65eb278d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_thrift.65eb278d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_tp.ebc107f2.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_tp.ebc107f2.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_twig.f2a0927f.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_twig.f2a0927f.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_typescript.6c5bb667.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_typescript.6c5bb667.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vala.1d0d5f49.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vala.1d0d5f49.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vbnet.26dbf652.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vbnet.26dbf652.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vbscript.918c902a.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vbscript.918c902a.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.0448aba7.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.0448aba7.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_verilog.90bb7652.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_verilog.90bb7652.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vhdl.1cfbc65e.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vhdl.1cfbc65e.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vim.044bbd92.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_vim.044bbd92.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_x86asm.e453b717.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_x86asm.e453b717.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_xl.be21301d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_xl.be21301d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_xml.1ff2db9d.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_xml.1ff2db9d.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_xquery.6691a2a9.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_xquery.6691a2a9.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_yaml.ecaddbf6.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_yaml.ecaddbf6.chunk.js.map +1 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_zephir.6f6db474.chunk.js +3 -0
- package/dist/embedded-app/static/react-syntax-highlighter_languages_highlight_zephir.6f6db474.chunk.js.map +1 -0
- package/dist/embedded-app/static/runtime.137ccf21.js +4 -0
- package/dist/embedded-app/static/runtime.137ccf21.js.map +1 -0
- package/dist/embedded-app/static/vendor.137ccf21.js +142 -0
- package/dist/embedded-app/static/vendor.137ccf21.js.map +1 -0
- package/dist/index.cjs.js +2 -2
- package/package.json +10 -8
- package/dist/cjs/serve-639872a5.cjs.js +0 -131
- package/dist/cjs/serve-639872a5.cjs.js.map +0 -1
- package/dist/techdocs-preview-bundle/index.html +0 -1
- package/dist/techdocs-preview-bundle/static/1110.fad0cc94.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/1110.fad0cc94.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/1553.f92909dc.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/1553.f92909dc.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/1959.fede02a2.chunk.js +0 -8
- package/dist/techdocs-preview-bundle/static/1959.fede02a2.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/2426.0f5944f2.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/2426.0f5944f2.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/3825.ba0db915.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/3825.ba0db915.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/390.8fb9f8b1.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/390.8fb9f8b1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/4022.1520ac4e.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/4022.1520ac4e.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/4960.fe6ea5ff.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/4960.fe6ea5ff.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/6105.bceb17a5.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/6105.bceb17a5.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/6235.6f25344f.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/6235.6f25344f.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/6650.b1541be0.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/6650.b1541be0.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/8061.568a31ea.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/8061.568a31ea.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/8718.94a54656.chunk.js +0 -4
- package/dist/techdocs-preview-bundle/static/8718.94a54656.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/8792.e69fee35.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/8792.e69fee35.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/9028.878909ed.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/9028.878909ed.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/main.5fb2da57.js +0 -152
- package/dist/techdocs-preview-bundle/static/main.5fb2da57.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/module-ajv.b4b6f74e.js +0 -10
- package/dist/techdocs-preview-bundle/static/module-ajv.b4b6f74e.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/module-date-fns.5ead8da9.js +0 -3
- package/dist/techdocs-preview-bundle/static/module-date-fns.5ead8da9.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/module-lodash.a7aa0a73.js +0 -29
- package/dist/techdocs-preview-bundle/static/module-lodash.a7aa0a73.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/module-material-table.4d12af73.js +0 -3
- package/dist/techdocs-preview-bundle/static/module-material-table.4d12af73.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/module-material-ui.785c2072.js +0 -51
- package/dist/techdocs-preview-bundle/static/module-material-ui.785c2072.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/module-react-beautiful-dnd.bb1e9fcd.js +0 -67
- package/dist/techdocs-preview-bundle/static/module-react-beautiful-dnd.bb1e9fcd.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/module-react-dom.e63a44de.js +0 -25
- package/dist/techdocs-preview-bundle/static/module-react-dom.e63a44de.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter/lowlight-import.f36a62b1.chunk.js +0 -6
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter/lowlight-import.f36a62b1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_abnf.44180bf6.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_abnf.44180bf6.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_accesslog.16f76635.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_accesslog.16f76635.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_actionscript.d1324e25.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_actionscript.d1324e25.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ada.f3716916.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ada.f3716916.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_angelscript.dad71b89.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_angelscript.dad71b89.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_apache.f5ff04ee.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_apache.f5ff04ee.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_applescript.4e91aea1.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_applescript.4e91aea1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_arcade.7895c4e9.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_arcade.7895c4e9.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_arduino.a19a43af.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_arduino.a19a43af.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_armasm.8c7ecdf5.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_armasm.8c7ecdf5.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_asciidoc.65fb9806.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_asciidoc.65fb9806.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_aspectj.904afe4e.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_aspectj.904afe4e.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_autohotkey.6c58b49d.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_autohotkey.6c58b49d.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_autoit.38d1e81b.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_autoit.38d1e81b.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_avrasm.c15fbc7f.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_avrasm.c15fbc7f.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_awk.f98852e2.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_awk.f98852e2.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_axapta.a87c16c7.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_axapta.a87c16c7.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_bash.97a6732d.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_bash.97a6732d.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_basic.5a8a2b0e.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_basic.5a8a2b0e.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_bnf.fd1cf84c.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_bnf.fd1cf84c.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_brainfuck.6a972fec.chunk.js +0 -5
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_brainfuck.6a972fec.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_c.90e5b758.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_c.90e5b758.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cLike.e0b22dc1.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cLike.e0b22dc1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cal.5371a489.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cal.5371a489.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_capnproto.22c82c14.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_capnproto.22c82c14.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ceylon.0e24759a.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ceylon.0e24759a.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_clean.9d7c4d80.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_clean.9d7c4d80.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_clojure.7fe686e1.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_clojure.7fe686e1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_clojureRepl.780991a1.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_clojureRepl.780991a1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cmake.47ab507c.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cmake.47ab507c.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_coffeescript.f5f72654.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_coffeescript.f5f72654.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_coq.13e3fdf1.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_coq.13e3fdf1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cos.fde0a56d.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cos.fde0a56d.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cpp.c265ceb9.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_cpp.c265ceb9.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_crmsh.6ea91d25.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_crmsh.6ea91d25.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_crystal.958e7cd8.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_crystal.958e7cd8.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_csharp.024a5882.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_csharp.024a5882.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_csp.a1f40901.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_csp.a1f40901.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_css.a6be3ec1.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_css.a6be3ec1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_d.b5fbcc3b.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_d.b5fbcc3b.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dart.237b4a4d.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dart.237b4a4d.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_delphi.c6543d99.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_delphi.c6543d99.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_diff.b44d0d39.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_diff.b44d0d39.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_django.17fe3508.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_django.17fe3508.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dns.121f99a8.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dns.121f99a8.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dockerfile.4bc76caa.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dockerfile.4bc76caa.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dos.8fe7ec9c.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dos.8fe7ec9c.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dsconfig.2b3149cf.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dsconfig.2b3149cf.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dts.f7624110.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dts.f7624110.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dust.82c7c10a.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_dust.82c7c10a.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ebnf.a17ea6c9.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ebnf.a17ea6c9.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_elixir.b80bc1a9.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_elixir.b80bc1a9.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_elm.72e1cc75.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_elm.72e1cc75.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_erb.14a2c715.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_erb.14a2c715.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_erlang.c8065304.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_erlang.c8065304.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_erlangRepl.fe68db2d.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_erlangRepl.fe68db2d.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_excel.958f6c8c.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_excel.958f6c8c.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_fix.6dd35d09.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_fix.6dd35d09.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_flix.36a9cb77.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_flix.36a9cb77.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_fortran.8c0ab1fe.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_fortran.8c0ab1fe.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_fsharp.ed1f65da.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_fsharp.ed1f65da.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gams.68b972c5.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gams.68b972c5.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gauss.ebf37b1b.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gauss.ebf37b1b.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gcode.2b01345a.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gcode.2b01345a.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gherkin.7bf1539a.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gherkin.7bf1539a.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_glsl.4799d894.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_glsl.4799d894.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gml.4e60f232.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gml.4e60f232.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_go.37fadd1d.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_go.37fadd1d.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_golo.7bb3cf46.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_golo.7bb3cf46.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gradle.3cbdd1bd.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_gradle.3cbdd1bd.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_groovy.2e62c130.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_groovy.2e62c130.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_haml.edb37c53.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_haml.edb37c53.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_handlebars.b664c46b.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_handlebars.b664c46b.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_haskell.1cef1b61.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_haskell.1cef1b61.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_haxe.26cdb0ea.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_haxe.26cdb0ea.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_hsp.ba20053a.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_hsp.ba20053a.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_htmlbars.95d73e0d.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_htmlbars.95d73e0d.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_http.a0d144bd.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_http.a0d144bd.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_hy.3ac5599e.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_hy.3ac5599e.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_inform7.ead5c5d1.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_inform7.ead5c5d1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ini.fdff89f2.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ini.fdff89f2.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_irpf90.c0eca5dd.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_irpf90.c0eca5dd.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_isbl.563560b4.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_isbl.563560b4.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_java.2d847185.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_java.2d847185.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_javascript.32f28256.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_javascript.32f28256.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_jbossCli.b5dee132.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_jbossCli.b5dee132.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_json.56f67ac3.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_json.56f67ac3.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_julia.8da0d423.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_julia.8da0d423.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_juliaRepl.a9e4de93.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_juliaRepl.a9e4de93.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_kotlin.73f7b652.chunk.js +0 -4
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_kotlin.73f7b652.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_lasso.a1ac2129.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_lasso.a1ac2129.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_latex.c2641e0b.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_latex.c2641e0b.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ldif.64aa82a0.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ldif.64aa82a0.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_leaf.546938bd.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_leaf.546938bd.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_less.7e6677bd.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_less.7e6677bd.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_lisp.9074eb13.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_lisp.9074eb13.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_livecodeserver.7fdedcc3.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_livecodeserver.7fdedcc3.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_livescript.da3828b0.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_livescript.da3828b0.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_llvm.4c383ff9.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_llvm.4c383ff9.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_lsl.b1aa17e6.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_lsl.b1aa17e6.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_lua.c4e557bf.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_lua.c4e557bf.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_makefile.c494622b.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_makefile.c494622b.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_markdown.0a3d0f33.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_markdown.0a3d0f33.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mathematica.df8b4680.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mathematica.df8b4680.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_matlab.bd34736e.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_matlab.bd34736e.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_maxima.f315d0f9.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_maxima.f315d0f9.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mel.2bf58530.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mel.2bf58530.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mercury.737e7fad.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mercury.737e7fad.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mipsasm.aff7b417.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mipsasm.aff7b417.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mizar.55abb80f.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mizar.55abb80f.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mojolicious.2fef7889.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_mojolicious.2fef7889.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_monkey.7cf01528.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_monkey.7cf01528.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_moonscript.fec6d855.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_moonscript.fec6d855.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_n1ql.ba9f23b6.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_n1ql.ba9f23b6.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nginx.f28e68e0.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nginx.f28e68e0.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nim.1da03ea0.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nim.1da03ea0.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nix.0e558e4f.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nix.0e558e4f.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nodeRepl.57d8e51c.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nodeRepl.57d8e51c.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nsis.9a904d67.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_nsis.9a904d67.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_objectivec.db4c69d6.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_objectivec.db4c69d6.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ocaml.9c661b3f.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ocaml.9c661b3f.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_oneC.acdc66c6.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_oneC.acdc66c6.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_openscad.d20d1d04.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_openscad.d20d1d04.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_oxygene.e8434002.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_oxygene.e8434002.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_parser3.2c98c3aa.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_parser3.2c98c3aa.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_perl.10b0e035.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_perl.10b0e035.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_pf.ac3abab7.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_pf.ac3abab7.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_pgsql.ceac2a60.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_pgsql.ceac2a60.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_php.50b1ab1d.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_php.50b1ab1d.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_phpTemplate.9ec9887a.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_phpTemplate.9ec9887a.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_plaintext.77e11cdb.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_plaintext.77e11cdb.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_pony.d0338388.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_pony.d0338388.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_powershell.418902dc.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_powershell.418902dc.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_processing.6c2d3369.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_processing.6c2d3369.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_profile.69449bf7.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_profile.69449bf7.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_prolog.e34648ea.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_prolog.e34648ea.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_properties.47f3f865.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_properties.47f3f865.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_protobuf.763cdb4e.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_protobuf.763cdb4e.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_puppet.88196135.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_puppet.88196135.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_purebasic.419824e0.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_purebasic.419824e0.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_python.9744b6f8.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_python.9744b6f8.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_pythonRepl.1b9472f3.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_pythonRepl.1b9472f3.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_q.bfc365de.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_q.bfc365de.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_qml.c7e950a0.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_qml.c7e950a0.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_r.7651d544.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_r.7651d544.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_reasonml.3584fcd1.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_reasonml.3584fcd1.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_rib.233d9368.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_rib.233d9368.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_roboconf.438626a9.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_roboconf.438626a9.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_routeros.d3f48421.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_routeros.d3f48421.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_rsl.f17424f7.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_rsl.f17424f7.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ruby.27af1817.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ruby.27af1817.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ruleslanguage.bcf19c08.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_ruleslanguage.bcf19c08.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_rust.94f69df4.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_rust.94f69df4.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_sas.20007f93.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_sas.20007f93.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_scala.761ea769.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_scala.761ea769.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_scheme.ef3654e0.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_scheme.ef3654e0.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_scilab.0248cff3.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_scilab.0248cff3.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_scss.0c85d2e9.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_scss.0c85d2e9.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_shell.4d8d4789.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_shell.4d8d4789.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_smali.87d2b24f.chunk.js +0 -4
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_smali.87d2b24f.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_smalltalk.33a24317.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_smalltalk.33a24317.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_sml.8c092018.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_sml.8c092018.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_sqf.9f31463b.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_sqf.9f31463b.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_sql.70ed7c81.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_sql.70ed7c81.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_stan.bfa01ef6.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_stan.bfa01ef6.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_stata.f4643ff4.chunk.js +0 -5
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_stata.f4643ff4.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_step21.645e7061.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_step21.645e7061.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_stylus.9a7b42db.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_stylus.9a7b42db.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_subunit.a0d8dd23.chunk.js +0 -5
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_subunit.a0d8dd23.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_swift.48cf46ec.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_swift.48cf46ec.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_taggerscript.58eb604f.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_taggerscript.58eb604f.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_tap.22b00786.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_tap.22b00786.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_tcl.7b87582b.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_tcl.7b87582b.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_thrift.0e91a8da.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_thrift.0e91a8da.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_tp.5209a7db.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_tp.5209a7db.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_twig.3960e9fb.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_twig.3960e9fb.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_typescript.754aaa00.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_typescript.754aaa00.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vala.6810e476.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vala.6810e476.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vbnet.f3f57718.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vbnet.f3f57718.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vbscript.6f5a7e18.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vbscript.6f5a7e18.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.ae890787.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vbscriptHtml.ae890787.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_verilog.40403139.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_verilog.40403139.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vhdl.c856f6f8.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vhdl.c856f6f8.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vim.dea95e13.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_vim.dea95e13.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_x86asm.6d17e6b7.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_x86asm.6d17e6b7.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_xl.7e0544e6.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_xl.7e0544e6.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_xml.defcd651.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_xml.defcd651.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_xquery.40659368.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_xquery.40659368.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_yaml.9a196f21.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_yaml.9a196f21.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_zephir.409e0095.chunk.js +0 -3
- package/dist/techdocs-preview-bundle/static/react-syntax-highlighter_languages_highlight_zephir.409e0095.chunk.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/runtime.5fb2da57.js +0 -4
- package/dist/techdocs-preview-bundle/static/runtime.5fb2da57.js.map +0 -1
- package/dist/techdocs-preview-bundle/static/vendor.5fb2da57.js +0 -129
- package/dist/techdocs-preview-bundle/static/vendor.5fb2da57.js.map +0 -1
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
(()=>{var Ki=Object.defineProperty;var Ji=(ee,s,e)=>s in ee?Ki(ee,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):ee[s]=e;var ae=(ee,s,e)=>(Ji(ee,typeof s!="symbol"?s+"":s,e),e),Eo=(ee,s,e)=>{if(!s.has(ee))throw TypeError("Cannot "+e)};var Xe=(ee,s,e)=>(Eo(ee,s,"read from private field"),e?e.call(ee):s.get(ee)),on=(ee,s,e)=>{if(s.has(ee))throw TypeError("Cannot add the same private member more than once");s instanceof WeakSet?s.add(ee):s.set(ee,e)},mn=(ee,s,e,r)=>(Eo(ee,s,"write to private field"),r?r.call(ee,e):s.set(ee,e),e);(self.webpackChunktechdocs_cli_embedded_app=self.webpackChunktechdocs_cli_embedded_app||[]).push([[179],{30001:function(ee,s,e){"use strict";e.d(s,{n3:function(){return v},MS:function(){return i}});var r=e(52890),t=e(10179),l=e(96279),d=e.n(l);const v=Symbol("CATALOG_FILTER_EXISTS");class i{constructor(g){ae(this,"discoveryApi");ae(this,"fetchApi");this.discoveryApi=g.discoveryApi,this.fetchApi=g.fetchApi||{fetch:d()}}async getEntityAncestors(g,h){const{kind:c,namespace:E,name:o}=(0,r.of)(g.entityRef);return await this.requestRequired("GET",`/entities/by-name/${encodeURIComponent(c)}/${encodeURIComponent(E)}/${encodeURIComponent(o)}/ancestry`,h)}async getLocationById(g,h){return await this.requestOptional("GET",`/locations/${encodeURIComponent(g)}`,h)}async getEntities(g,h){const{filter:c=[],fields:E=[],offset:o,limit:S,after:M}=g!=null?g:{},x=[c].flat(),j=[];for(const B of x){const V=[];for(const[ne,de]of Object.entries(B))for(const ve of[de].flat())ve===v?V.push(encodeURIComponent(ne)):typeof ve=="string"&&V.push(`${encodeURIComponent(ne)}=${encodeURIComponent(ve)}`);V.length&&j.push(`filter=${V.join(",")}`)}E.length&&j.push(`fields=${E.map(encodeURIComponent).join(",")}`),o!==void 0&&j.push(`offset=${o}`),S!==void 0&&j.push(`limit=${S}`),M!==void 0&&j.push(`after=${encodeURIComponent(M)}`);const Z=j.length?`?${j.join("&")}`:"",O=await this.requestRequired("GET",`/entities${Z}`,h),F=(B,V)=>{var ve,be;if(((ve=B.metadata)==null?void 0:ve.name)===void 0||B.kind===void 0||((be=V.metadata)==null?void 0:be.name)===void 0||V.kind===void 0)return 0;const ne=(0,r.eE)(B),de=(0,r.eE)(V);return ne<de?-1:ne>de?1:0};return{items:O.sort(F)}}async getEntityByName(g,h){const{kind:c,namespace:E="default",name:o}=g;return this.requestOptional("GET",`/entities/by-name/${encodeURIComponent(c)}/${encodeURIComponent(E)}/${encodeURIComponent(o)}`,h)}async refreshEntity(g,h){const c=await this.fetchApi.fetch(`${await this.discoveryApi.getBaseUrl("catalog")}/refresh`,{headers:{"Content-Type":"application/json",...(h==null?void 0:h.token)&&{Authorization:`Bearer ${h==null?void 0:h.token}`}},method:"POST",body:JSON.stringify({entityRef:g})});if(c.status!==200)throw new Error(await c.text())}async addLocation({type:g="url",target:h,dryRun:c,presence:E},o){const S=await this.fetchApi.fetch(`${await this.discoveryApi.getBaseUrl("catalog")}/locations${c?"?dryRun=true":""}`,{headers:{"Content-Type":"application/json",...(o==null?void 0:o.token)&&{Authorization:`Bearer ${o==null?void 0:o.token}`}},method:"POST",body:JSON.stringify({type:g,target:h,presence:E})});if(S.status!==201)throw new Error(await S.text());const{location:M,entities:x,exists:j}=await S.json();if(!M)throw new Error(`Location wasn't added: ${h}`);return{location:M,entities:x,exists:j}}async getOriginLocationByEntity(g,h){var o;const c=(o=g.metadata.annotations)==null?void 0:o[r.lb];return c?(await this.requestRequired("GET","/locations",h)).map(S=>S.data).find(S=>c===(0,r.Bt)(S)):void 0}async getLocationByEntity(g,h){var o;const c=(o=g.metadata.annotations)==null?void 0:o[r.Jl];return c?(await this.requestRequired("GET","/locations",h)).map(S=>S.data).find(S=>c===(0,r.Bt)(S)):void 0}async removeLocationById(g,h){await this.requestIgnored("DELETE",`/locations/${encodeURIComponent(g)}`,h)}async removeEntityByUid(g,h){await this.requestIgnored("DELETE",`/entities/by-uid/${encodeURIComponent(g)}`,h)}async requestIgnored(g,h,c){const E=`${await this.discoveryApi.getBaseUrl("catalog")}${h}`,o=(c==null?void 0:c.token)?{Authorization:`Bearer ${c.token}`}:{},S=await this.fetchApi.fetch(E,{method:g,headers:o});if(!S.ok)throw await t.VL.fromResponse(S)}async requestRequired(g,h,c){const E=`${await this.discoveryApi.getBaseUrl("catalog")}${h}`,o=(c==null?void 0:c.token)?{Authorization:`Bearer ${c.token}`}:{},S=await this.fetchApi.fetch(E,{method:g,headers:o});if(!S.ok)throw await t.VL.fromResponse(S);return await S.json()}async requestOptional(g,h,c){const E=`${await this.discoveryApi.getBaseUrl("catalog")}${h}`,o=(c==null?void 0:c.token)?{Authorization:`Bearer ${c.token}`}:{},S=await this.fetchApi.fetch(E,{method:g,headers:o});if(!S.ok){if(S.status===404)return;throw await t.VL.fromResponse(S)}return await S.json()}}},52890:function(ee,s,e){"use strict";e.d(s,{J1:function(){return d},sk:function(){return r},Jl:function(){return A},lb:function(){return D},w$:function(){return Ue},nP:function(){return Se},aS:function(){return ct},hr:function(){return Ae},S4:function(){return L},cz:function(){return yt},M_:function(){return fe},wX:function(){return z},wh:function(){return l},C_:function(){return Qe},of:function(){return ke},Me:function(){return re},TH:function(){return ht},eE:function(){return _e},Bt:function(){return Fe}});const r="default",t=null,l="backstage.io/view-url",d="backstage.io/edit-url";var v=e(76635),i=e.n(v);class p{constructor(W=ENTITY_DEFAULT_NAMESPACE){ae(this,"namespace");this.namespace=W}async enforce(W){return W.metadata.namespace?W:lodash.merge({metadata:{namespace:this.namespace}},W)}}class g{static isValidPrefixAndOrSuffix(W,te,ye,Ve){if(typeof W!="string")return!1;const Ke=W.split(te);return Ke.length===1?Ve(Ke[0]):Ke.length===2?ye(Ke[0])&&Ve(Ke[1]):!1}static isJsonSafe(W){try{return i().isEqual(W,JSON.parse(JSON.stringify(W)))}catch{return!1}}static isValidDnsSubdomain(W){return typeof W=="string"&&W.length>=1&&W.length<=253&&W.split(".").every(g.isValidDnsLabel)}static isValidDnsLabel(W){return typeof W=="string"&&W.length>=1&&W.length<=63&&/^[a-z0-9]+(\-[a-z0-9]+)*$/.test(W)}static isValidTag(W){return typeof W=="string"&&W.length>=1&&W.length<=63&&/^[a-z0-9+#]+(\-[a-z0-9+#]+)*$/.test(W)}static isValidUrl(W){if(typeof W!="string")return!1;try{return new URL(W),!0}catch{return!1}}static isValidString(W){var te;return typeof W=="string"&&((te=W==null?void 0:W.trim())==null?void 0:te.length)>=1}}var h=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","$id":"EntityEnvelope","description":"The envelope skeleton parts of an entity - whatever is necessary to be able to give it a ref and pass to further validation / policy checking.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"Component","metadata":{"name":"LoremService"}}],"type":"object","required":["apiVersion","kind","metadata"],"additionalProperties":true,"properties":{"apiVersion":{"type":"string","description":"The version of specification format for this particular entity that this is written against.","minLength":1,"examples":["backstage.io/v1alpha1","my-company.net/v1","1.0"]},"kind":{"type":"string","description":"The high level entity type being described.","minLength":1,"examples":["API","Component","Domain","Group","Location","Resource","System","Template","User"]},"metadata":{"type":"object","required":["name"],"additionalProperties":true,"properties":{"name":{"type":"string","description":"The name of the entity. Must be unique within the catalog at any given point in time, for any given namespace + kind pair.","examples":["metadata-proxy"],"minLength":1},"namespace":{"type":"string","description":"The namespace that the entity belongs to.","default":"default","examples":["default","admin"],"minLength":1}}}}}'),c=e(48231),E=JSON.parse(`{"$schema":"http://json-schema.org/draft-07/schema","$id":"Entity","description":"The parts of the format that's common to all versions/kinds of entity.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"Component","metadata":{"name":"LoremService","description":"Creates Lorems like a pro.","labels":{"product_name":"Random value Generator"},"annotations":{"docs":"https://github.com/..../tree/develop/doc"}},"spec":{"type":"service","lifecycle":"production","owner":"tools"}}],"type":"object","required":["apiVersion","kind","metadata"],"additionalProperties":false,"properties":{"apiVersion":{"type":"string","description":"The version of specification format for this particular entity that this is written against.","minLength":1,"examples":["backstage.io/v1alpha1","my-company.net/v1","1.0"]},"kind":{"type":"string","description":"The high level entity type being described.","minLength":1,"examples":["API","Component","Domain","Group","Location","Resource","System","Template","User"]},"metadata":{"$ref":"EntityMeta"},"spec":{"type":"object","description":"The specification data describing the entity itself."},"relations":{"type":"array","description":"The relations that this entity has with other entities.","items":{"$ref":"common#relation"}},"status":{"$ref":"common#status"}}}`),o=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","$id":"EntityMeta","description":"Metadata fields common to all versions/kinds of entity.","examples":[{"uid":"e01199ab-08cc-44c2-8e19-5c29ded82521","etag":"lsndfkjsndfkjnsdfkjnsd==","generation":13,"name":"my-component-yay","namespace":"the-namespace","labels":{"backstage.io/custom":"ValueStuff"},"annotations":{"example.com/bindings":"are-secret"},"tags":["java","data"]}],"type":"object","required":["name"],"additionalProperties":true,"properties":{"uid":{"type":"string","description":"A globally unique ID for the entity. This field can not be set by the user at creation time, and the server will reject an attempt to do so. The field will be populated in read operations. The field can (optionally) be specified when performing update or delete operations, but the server is free to reject requests that do so in such a way that it breaks semantics.","examples":["e01199ab-08cc-44c2-8e19-5c29ded82521"],"minLength":1},"etag":{"type":"string","description":"An opaque string that changes for each update operation to any part of the entity, including metadata. This field can not be set by the user at creation time, and the server will reject an attempt to do so. The field will be populated in read operations. The field can (optionally) be specified when performing update or delete operations, and the server will then reject the operation if it does not match the current stored value.","examples":["lsndfkjsndfkjnsdfkjnsd=="],"minLength":1},"generation":{"type":"integer","description":"A positive nonzero number that indicates the current generation of data for this entity; the value is incremented each time the spec changes. This field can not be set by the user at creation time, and the server will reject an attempt to do so. The field will be populated in read operations.","examples":[1],"minimum":1},"name":{"type":"string","description":"The name of the entity. Must be unique within the catalog at any given point in time, for any given namespace + kind pair.","examples":["metadata-proxy"],"minLength":1},"namespace":{"type":"string","description":"The namespace that the entity belongs to.","default":"default","examples":["default","admin"],"minLength":1},"title":{"type":"string","description":"A display name of the entity, to be presented in user interfaces instead of the name property, when available.","examples":["React SSR Template"],"minLength":1},"description":{"type":"string","description":"A short (typically relatively few words, on one line) description of the entity."},"labels":{"type":"object","description":"Key/value pairs of identifying information attached to the entity.","additionalProperties":true,"patternProperties":{"^.+$":{"type":"string"}}},"annotations":{"type":"object","description":"Key/value pairs of non-identifying auxiliary information attached to the entity.","additionalProperties":true,"patternProperties":{"^.+$":{"type":"string"}}},"tags":{"type":"array","description":"A list of single-valued strings, to for example classify catalog entities in various ways.","items":{"type":"string","minLength":1}},"links":{"type":"array","description":"A list of external hyperlinks related to the entity. Links can provide additional contextual information that may be located outside of Backstage itself. For example, an admin dashboard or external CMS page.","items":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"A url in a standard uri format.","examples":["https://admin.example-org.com"],"minLength":1},"title":{"type":"string","description":"A user friendly display name for the link.","examples":["Admin Dashboard"],"minLength":1},"icon":{"type":"string","description":"A key representing a visual icon to be displayed in the UI.","examples":["dashboard"],"minLength":1}}}}}}'),S=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","$id":"common","type":"object","description":"Common definitions to import from other schemas","definitions":{"reference":{"$id":"#reference","type":"object","description":"A reference by name to another entity.","required":["kind","namespace","name"],"additionalProperties":false,"properties":{"kind":{"type":"string","description":"The kind field of the entity.","minLength":1},"namespace":{"type":"string","description":"The metadata.namespace field of the entity.","minLength":1},"name":{"type":"string","description":"The metadata.name field of the entity.","minLength":1}}},"relation":{"$id":"#relation","type":"object","description":"A directed relation from one entity to another.","required":["type","target"],"additionalProperties":false,"properties":{"type":{"type":"string","minLength":1,"pattern":"^\\\\w+$","description":"The type of relation."},"target":{"$ref":"#reference"}}},"status":{"$id":"#status","type":"object","description":"The current status of the entity, as claimed by various sources.","required":[],"additionalProperties":true,"properties":{"items":{"type":"array","items":{"$ref":"#statusItem"}}}},"statusItem":{"$id":"#statusItem","type":"object","description":"A specific status item on a well known format.","required":["type","level","message"],"additionalProperties":true,"properties":{"type":{"type":"string","minLength":1},"level":{"$ref":"#statusLevel","description":"The status level / severity of the status item."},"message":{"type":"string","description":"A brief message describing the status, intended for human consumption."},"error":{"$ref":"#error","description":"An optional serialized error object related to the status."}}},"statusLevel":{"$id":"#statusLevel","type":"string","description":"A status level / severity.","enum":["info","warning","error"]},"error":{"$id":"#error","type":"object","description":"A serialized error object.","required":["name","message"],"additionalProperties":true,"properties":{"name":{"type":"string","examples":["Error","InputError"],"description":"The type name of the error","minLength":1},"message":{"type":"string","description":"The message of the error"},"code":{"type":"string","description":"An error code associated with the error"},"stack":{"type":"string","description":"An error stack trace"}}}}}');const M=new Map,x=[h,E,o,S];function j(ce){if(!(ce==null?void 0:ce.length))throw new TypeError("Unknown error");const W=ce[0];throw new TypeError(`${W.dataPath||"<root>"} ${W.message}${W.params?` - ${Object.entries(W.params).map(([te,ye])=>`${te}: ${ye}`).join(", ")}`:""}`)}function Z(ce,W={}){var Rt;const te=(Rt=W==null?void 0:W.disableCache)!=null?Rt:!1,ye=te?"":JSON.stringify(ce);if(!te){const Kt=M.get(ye);if(Kt)return Kt}const Ve=O(ce),Ke=new c.ZP({allowUnionTypes:!0,allErrors:!0,validateSchema:!0});Ve.length&&Ke.addSchema(Ve,void 0,void 0,!0);const ot=Ke.compile(ce);return te||M.set(ye,ot),ot}function O(ce){if(typeof ce!="object")return[];const W=new Set;ce.$id&&W.add(ce.$id);const te=new Array,ye=[ce];for(;ye.length;){const Ve=ye.pop();for(const Ke of F(Ve))if(!W.has(Ke)){W.add(Ke);const ot=x.find(Rt=>Rt.$id===Ke);ot&&(te.push(ot),ye.push(ot))}}return te}function*F(ce){const W=[ce];for(;W.length;){const te=W.pop();if(typeof te=="object"&&te)for(const[ye,Ve]of Object.entries(te))ye==="$ref"&&typeof Ve=="string"?yield Ve.split("#")[0]:W.push(Ve)}}function B(ce){const W=compileAjvSchema(ce||entityEnvelopeSchema);return te=>{if(W(te)===!0)return te;throw throwAjvError(W.errors)}}function V(ce){const W=Z(ce);return te=>{var Ke;if(W(te)===!0)return te;const Ve=(Ke=W.errors)==null?void 0:Ke.filter(ot=>["/kind","/apiVersion"].includes(ot.dataPath));if((Ve==null?void 0:Ve.length)&&Ve.every(ot=>ot.keyword==="enum"))return!1;throw j(W.errors)}}function ne(ce){const W=compileAjvSchema(ce||entitySchema);return te=>{if(W(te)===!0)return te;throw throwAjvError(W.errors)}}class de{static isValidApiVersion(W){return g.isValidPrefixAndOrSuffix(W,"/",g.isValidDnsSubdomain,te=>te.length>=1&&te.length<=63&&/^[a-z0-9A-Z]+$/.test(te))}static isValidKind(W){return typeof W=="string"&&W.length>=1&&W.length<=63&&/^[a-zA-Z][a-z0-9A-Z]*$/.test(W)}static isValidObjectName(W){return typeof W=="string"&&W.length>=1&&W.length<=63&&/^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$/.test(W)}static isValidNamespace(W){return g.isValidDnsLabel(W)}static isValidLabelKey(W){return g.isValidPrefixAndOrSuffix(W,"/",g.isValidDnsSubdomain,de.isValidObjectName)}static isValidLabelValue(W){return W===""||de.isValidObjectName(W)}static isValidAnnotationKey(W){return g.isValidPrefixAndOrSuffix(W,"/",g.isValidDnsSubdomain,de.isValidObjectName)}static isValidAnnotationValue(W){return typeof W=="string"}}const ve={isValidApiVersion:de.isValidApiVersion,isValidKind:de.isValidKind,isValidEntityName:de.isValidObjectName,isValidNamespace:de.isValidNamespace,isValidLabelKey:de.isValidLabelKey,isValidLabelValue:de.isValidLabelValue,isValidAnnotationKey:de.isValidAnnotationKey,isValidAnnotationValue:de.isValidAnnotationValue,isValidTag:g.isValidTag};function be(ce={}){return{...ve,...ce}}class pe{constructor(W=makeValidator()){ae(this,"validators");this.validators=W}async enforce(W){var ot,Rt,Kt,en,Jn,hn,gn;function te(ft,wt,sn){if(wt==null)throw new Error(`${ft} must have a value`);let Rn;try{Rn=sn(wt)}catch(Wt){throw new Error(`${ft} could not be validated, ${Wt}`)}if(!Rn){let Wt;switch(sn.name){case"isValidLabelValue":case"isValidObjectName":Wt="a string that is sequences of [a-zA-Z0-9] separated by any of [-_.], at most 63 characters in total";break;case"isValidLabelKey":case"isValidApiVersion":case"isValidAnnotationKey":Wt="a valid prefix and/or suffix";break;case"isValidNamespace":case"isValidDnsLabel":Wt="a string that is sequences of [a-z0-9] separated by [-], at most 63 characters in total";break;case"isValidTag":Wt="a string that is sequences of [a-z0-9+#] separated by [-], at most 63 characters in total";break;case"isValidAnnotationValue":Wt="a string";break;case"isValidKind":Wt="a string that is a sequence of [a-zA-Z][a-z0-9A-Z], at most 63 characters in total";break;case"isValidUrl":Wt="a string that is a valid url";break;case"isValidString":Wt="a non empty string";break;default:Wt=void 0;break}const Pn=Wt?` expected ${Wt} but found "${wt}".`:"";throw new Error(`"${ft}" is not valid;${Pn} To learn more about catalog file format, visit: https://github.com/backstage/backstage/blob/master/docs/architecture-decisions/adr002-default-catalog-file-format.md`)}}function ye(ft,wt,sn){return wt===void 0||te(ft,wt,sn)}te("apiVersion",W.apiVersion,this.validators.isValidApiVersion),te("kind",W.kind,this.validators.isValidKind),te("metadata.name",W.metadata.name,this.validators.isValidEntityName),ye("metadata.namespace",W.metadata.namespace,this.validators.isValidNamespace);for(const[ft,wt]of Object.entries((ot=W.metadata.labels)!=null?ot:[]))te(`labels.${ft}`,ft,this.validators.isValidLabelKey),te(`labels.${ft}`,wt,this.validators.isValidLabelValue);for(const[ft,wt]of Object.entries((Rt=W.metadata.annotations)!=null?Rt:[]))te(`annotations.${ft}`,ft,this.validators.isValidAnnotationKey),te(`annotations.${ft}`,wt,this.validators.isValidAnnotationValue);const Ve=(Kt=W.metadata.tags)!=null?Kt:[];for(let ft=0;ft<Ve.length;++ft)te(`tags.${ft}`,Ve[ft],this.validators.isValidTag);const Ke=(en=W.metadata.links)!=null?en:[];for(let ft=0;ft<Ke.length;++ft)te(`links.${ft}.url`,(Jn=Ke[ft])==null?void 0:Jn.url,CommonValidatorFunctions.isValidUrl),ye(`links.${ft}.title`,(hn=Ke[ft])==null?void 0:hn.title,CommonValidatorFunctions.isValidString),ye(`links.${ft}.icon`,(gn=Ke[ft])==null?void 0:gn.icon,KubernetesValidatorFunctions.isValidObjectName);return W}}class je{constructor(){ae(this,"validate")}async enforce(W){if(!this.validate){const Ve=new Ajv({allowUnionTypes:!0});this.validate=Ve.addSchema([commonSchema,entityMetaSchema],void 0,void 0,!0).compile(entitySchema)}if(this.validate(W)===!0)return W;const[ye]=this.validate.errors||[];throw ye?new Error(`Malformed envelope, ${ye.dataPath||"<root>"} ${ye.message}`):new Error("Malformed envelope, Unknown error")}}function xe(ce){var te,ye;const W=/^([^:/]+:)?([^:/]+\/)?([^:/]+)$/.exec(ce.trim());if(!W)throw new TypeError(`Entity reference "${ce}" was not on the form [<kind>:][<namespace>/]<name>`);return{kind:(te=W[1])==null?void 0:te.slice(0,-1),namespace:(ye=W[2])==null?void 0:ye.slice(0,-1),name:W[3]}}function Qe(ce){return{kind:ce.kind,namespace:ce.metadata.namespace||r,name:ce.metadata.name}}function st(ce,W={}){const{kind:te,namespace:ye,name:Ve}=ke(ce,{defaultNamespace:ENTITY_DEFAULT_NAMESPACE,...W});if(!te)throw new Error(`Entity reference ${ye}/${Ve} did not contain a kind`);return{kind:te,namespace:ye,name:Ve}}function ke(ce,W={}){var Ke,ot;if(!ce)throw new Error("Entity reference must not be empty");if(typeof ce=="string"){const Rt=xe(ce);return{kind:(Ke=Rt.kind)!=null?Ke:W.defaultKind,namespace:(ot=Rt.namespace)!=null?ot:W.defaultNamespace,name:Rt.name}}const{kind:te,namespace:ye,name:Ve}=ce;if(te==="")throw new Error("Entity reference kinds must not be empty");if(ye==="")throw new Error("Entity reference namespaces must not be empty");if(!Ve)throw new Error("Entity references must contain a name");return{kind:te!=null?te:W.defaultKind,namespace:ye!=null?ye:W.defaultNamespace,name:Ve}}function ht(ce){let W,te,ye;return"metadata"in ce?(W=ce.kind,te=ce.metadata.namespace,ye=ce.metadata.name):(W=ce.kind,te=ce.namespace,ye=ce.name),(W==null?void 0:W.includes(":"))||(W==null?void 0:W.includes("/"))||(te==null?void 0:te.includes(":"))||(te==null?void 0:te.includes("/"))||ye.includes(":")||ye.includes("/")?{kind:W,namespace:te,name:ye}:`${W?`${W}:`:""}${te?`${te}/`:""}${ye}`}function _e(ce){var Ve,Ke;let W,te,ye;return"metadata"in ce?(W=ce.kind,te=(Ve=ce.metadata.namespace)!=null?Ve:r,ye=ce.metadata.name):(W=ce.kind,te=(Ke=ce.namespace)!=null?Ke:r,ye=ce.name),`${W.toLocaleLowerCase("en-US")}:${te.toLocaleLowerCase("en-US")}/${ye.toLocaleLowerCase("en-US")}`}function at(ce,W,te){const ye=ce.kind,Ve=ce.metadata.namespace||ENTITY_DEFAULT_NAMESPACE,Ke=ce.metadata.name;let ot,Rt,Kt;if(typeof W=="string"){const en=xe(W);ot=en.kind||(te==null?void 0:te.defaultKind),Rt=en.namespace||(te==null?void 0:te.defaultNamespace)||ENTITY_DEFAULT_NAMESPACE,Kt=en.name}else ot=W.kind||(te==null?void 0:te.defaultKind),Rt=W.namespace||(te==null?void 0:te.defaultNamespace)||ENTITY_DEFAULT_NAMESPACE,Kt=W.name;if(!ot||!Rt)throw new Error("Entity reference or context did not contain kind and namespace");return ye.toLocaleLowerCase("en-US")===ot.toLocaleLowerCase("en-US")&&Ve.toLocaleLowerCase("en-US")===Rt.toLocaleLowerCase("en-US")&&Ke.toLocaleLowerCase("en-US")===Kt.toLocaleLowerCase("en-US")}var pt=e(48834).Buffer;function Nt(){return uuidv4()}function It(){return pt.from(uuidv4(),"utf8").toString("base64").replace(/[^\w]/g,"")}function gt(ce,W){const te=lodash.cloneDeep(ce),ye=lodash.cloneDeep(W);return te.metadata.labels||(te.metadata.labels={}),ye.metadata.labels||(ye.metadata.labels={}),te.metadata.annotations||(te.metadata.annotations={}),ye.metadata.annotations||(ye.metadata.annotations={}),te.metadata.tags||(te.metadata.tags=[]),ye.metadata.tags||(ye.metadata.tags=[]),delete te.metadata.uid,delete te.metadata.etag,delete te.metadata.generation,delete ye.metadata.uid,delete ye.metadata.etag,delete ye.metadata.generation,delete te.relations,delete te.status,delete ye.relations,delete ye.status,!lodash.isEqual(te,ye)}function tt(ce,W){const{uid:te,etag:ye,generation:Ve}=ce.metadata;if(!te||!ye||!Ve)throw new Error("Previous entity must have uid, etag and generation");const Ke=lodash.cloneDeep(W),ot=gt(ce,Ke),Rt=!lodash.isEqual(ce.spec,Ke.spec);return Ke.metadata.uid=te,Ke.metadata.etag=ot?It():ye,Ke.metadata.generation=Rt?Ve+1:Ve,Ke}class St{constructor(W){this.policies=W}async enforce(W){let te=W;for(const ye of this.policies){const Ve=await ye.enforce(te);if(!Ve)throw new Error(`Policy ${ye.constructor.name} did not return a result`);te=Ve}return te}}class Ct{constructor(W){this.policies=W}async enforce(W){for(const te of this.policies){const ye=await te.enforce(W);if(ye)return ye}throw new Error("The entity did not match any known policy")}}const Ot={allOf(ce){return new St(ce)},oneOf(ce){return new Ct(ce)}};var Ft=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","$id":"ApiV1alpha1","description":"An API describes an interface that can be exposed by a component. The API can be defined in different formats, like OpenAPI, AsyncAPI, GraphQL, gRPC, or other formats.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"API","metadata":{"name":"artist-api","description":"Retrieve artist details","labels":{"product_name":"Random value Generator"},"annotations":{"docs":"https://github.com/..../tree/develop/doc"}},"spec":{"type":"openapi","lifecycle":"production","owner":"artist-relations-team","system":"artist-engagement-portal","definition":"openapi: \\"3.0.0\\"\\ninfo:..."}}],"allOf":[{"$ref":"Entity"},{"type":"object","required":["spec"],"properties":{"apiVersion":{"enum":["backstage.io/v1alpha1","backstage.io/v1beta1"]},"kind":{"enum":["API"]},"spec":{"type":"object","required":["type","lifecycle","owner","definition"],"properties":{"type":{"type":"string","description":"The type of the API definition.","examples":["openapi","asyncapi","graphql","grpc"],"minLength":1},"lifecycle":{"type":"string","description":"The lifecycle state of the API.","examples":["experimental","production","deprecated"],"minLength":1},"owner":{"type":"string","description":"An entity reference to the owner of the API.","examples":["artist-relations-team","user:john.johnson"],"minLength":1},"system":{"type":"string","description":"An entity reference to the system that the API belongs to.","minLength":1},"definition":{"type":"string","description":"The definition of the API, based on the format defined by the type.","minLength":1}}}}}]}');function dt(ce){const W=V(ce);return{async check(te){return W(te)===te}}}const Tt=dt(Ft);var Bt=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","$id":"ComponentV1alpha1","description":"A Component describes a software component. It is typically intimately linked to the source code that constitutes the component, and should be what a developer may regard a \\"unit of software\\", usually with a distinct deployable or linkable artifact.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"Component","metadata":{"name":"LoremService","description":"Creates Lorems like a pro.","labels":{"product_name":"Random value Generator"},"annotations":{"docs":"https://github.com/..../tree/develop/doc"}},"spec":{"type":"service","lifecycle":"production","owner":"tools"}}],"allOf":[{"$ref":"Entity"},{"type":"object","required":["spec"],"properties":{"apiVersion":{"enum":["backstage.io/v1alpha1","backstage.io/v1beta1"]},"kind":{"enum":["Component"]},"spec":{"type":"object","required":["type","lifecycle","owner"],"properties":{"type":{"type":"string","description":"The type of component.","examples":["service","website","library"],"minLength":1},"lifecycle":{"type":"string","description":"The lifecycle state of the component.","examples":["experimental","production","deprecated"],"minLength":1},"owner":{"type":"string","description":"An entity reference to the owner of the component.","examples":["artist-relations-team","user:john.johnson"],"minLength":1},"system":{"type":"string","description":"An entity reference to the system that the component belongs to.","minLength":1},"subcomponentOf":{"type":"string","description":"An entity reference to another component of which the component is a part.","minLength":1},"providesApis":{"type":"array","description":"An array of entity references to the APIs that are provided by the component.","items":{"type":"string","minLength":1}},"consumesApis":{"type":"array","description":"An array of entity references to the APIs that are consumed by the component.","items":{"type":"string","minLength":1}},"dependsOn":{"type":"array","description":"An array of references to other entities that the component depends on to function.","items":{"type":"string","minLength":1}}}}}}]}');const Ne=dt(Bt);var nt=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","$id":"DomainV1alpha1","description":"A Domain groups a collection of systems that share terminology, domain models, business purpose, or documentation, i.e. form a bounded context.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"Domain","metadata":{"name":"artists","description":"Everything about artists"},"spec":{"owner":"artist-relations-team"}}],"allOf":[{"$ref":"Entity"},{"type":"object","required":["spec"],"properties":{"apiVersion":{"enum":["backstage.io/v1alpha1","backstage.io/v1beta1"]},"kind":{"enum":["Domain"]},"spec":{"type":"object","required":["owner"],"properties":{"owner":{"type":"string","description":"An entity reference to the owner of the component.","examples":["artist-relations-team","user:john.johnson"],"minLength":1}}}}}]}');const Ye=dt(nt);var At=JSON.parse(`{"$schema":"http://json-schema.org/draft-07/schema","$id":"GroupV1alpha1","description":"A group describes an organizational entity, such as for example a team, a business unit, or a loose collection of people in an interest group. Members of these groups are modeled in the catalog as kind User.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"Group","metadata":{"name":"infrastructure","description":"The infra business unit"},"spec":{"type":"business-unit","profile":{"displayName":"Infrastructure","email":"infrastructure@example.com","picture":"https://example.com/groups/bu-infrastructure.jpeg"},"parent":"ops","children":["backstage","other"]}}],"allOf":[{"$ref":"Entity"},{"type":"object","required":["spec"],"properties":{"apiVersion":{"enum":["backstage.io/v1alpha1","backstage.io/v1beta1"]},"kind":{"enum":["Group"]},"spec":{"type":"object","required":["type","children"],"properties":{"type":{"type":"string","description":"The type of group. There is currently no enforced set of values for this field, so it is left up to the adopting organization to choose a nomenclature that matches their org hierarchy.","examples":["team","business-unit","product-area","root"],"minLength":1},"profile":{"type":"object","description":"Optional profile information about the group, mainly for display purposes. All fields of this structure are also optional. The email would be a group email of some form, that the group may wish to be used for contacting them. The picture is expected to be a URL pointing to an image that's representative of the group, and that a browser could fetch and render on a group page or similar.","properties":{"displayName":{"type":"string","description":"A simple display name to present to users.","examples":["Infrastructure"],"minLength":1},"email":{"type":"string","description":"An email where this entity can be reached.","examples":["infrastructure@example.com"],"minLength":1},"picture":{"type":"string","description":"The URL of an image that represents this entity.","examples":["https://example.com/groups/bu-infrastructure.jpeg"],"minLength":1}}},"parent":{"type":"string","description":"The immediate parent group in the hierarchy, if any. Not all groups must have a parent; the catalog supports multi-root hierarchies. Groups may however not have more than one parent. This field is an entity reference.","examples":["ops"],"minLength":1},"children":{"type":"array","description":"The immediate child groups of this group in the hierarchy (whose parent field points to this group). The list must be present, but may be empty if there are no child groups. The items are not guaranteed to be ordered in any particular way. The entries of this array are entity references.","items":{"type":"string","examples":["backstage","other"],"minLength":1}},"members":{"type":"array","description":"The users that are members of this group. The entries of this array are entity references.","items":{"type":"string","examples":["jdoe"],"minLength":1}}}}}}]}`);const le=dt(At);var oe=JSON.parse(`{"$schema":"http://json-schema.org/draft-07/schema","$id":"LocationV1alpha1","description":"A location is a marker that references other places to look for catalog data.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"Location","metadata":{"name":"org-data"},"spec":{"type":"url","targets":["http://github.com/myorg/myproject/org-data-dump/catalog-info-staff.yaml","http://github.com/myorg/myproject/org-data-dump/catalog-info-consultants.yaml"]}}],"allOf":[{"$ref":"Entity"},{"type":"object","required":["spec"],"properties":{"apiVersion":{"enum":["backstage.io/v1alpha1","backstage.io/v1beta1"]},"kind":{"enum":["Location"]},"spec":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"The single location type, that's common to the targets specified in the spec. If it is left out, it is inherited from the location type that originally read the entity data.","examples":["url"],"minLength":1},"target":{"type":"string","description":"A single target as a string. Can be either an absolute path/URL (depending on the type), or a relative path such as ./details/catalog-info.yaml which is resolved relative to the location of this Location entity itself.","examples":["./details/catalog-info.yaml"],"minLength":1},"targets":{"type":"array","description":"A list of targets as strings. They can all be either absolute paths/URLs (depending on the type), or relative paths such as ./details/catalog-info.yaml which are resolved relative to the location of this Location entity itself.","items":{"type":"string","examples":["./details/catalog-info.yaml","http://github.com/myorg/myproject/org-data-dump/catalog-info-staff.yaml"],"minLength":1}},"presence":{"type":"string","description":"Whether the presence of the location target is required and it should be considered an error if it can not be found","default":"required","examples":["required"],"enum":["required","optional"]}}}}}]}`);const P=dt(oe),L="ownedBy",$="ownerOf",Y="consumesApi",_="apiConsumedBy",fe="providesApi",Te="apiProvidedBy",Se="dependsOn",Ue="dependencyOf",De="parentOf",Pe="childOf",Ae="memberOf",Ze="hasMember",yt="partOf",ct="hasPart";var Ge=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","$id":"ResourceV1alpha1","description":"A resource describes the infrastructure a system needs to operate, like BigTable databases, Pub/Sub topics, S3 buckets or CDNs. Modelling them together with components and systems allows to visualize resource footprint, and create tooling around them.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"Resource","metadata":{"name":"artists-db","description":"Stores artist details"},"spec":{"type":"database","owner":"artist-relations-team","system":"artist-engagement-portal"}}],"allOf":[{"$ref":"Entity"},{"type":"object","required":["spec"],"properties":{"apiVersion":{"enum":["backstage.io/v1alpha1","backstage.io/v1beta1"]},"kind":{"enum":["Resource"]},"spec":{"type":"object","required":["type","owner"],"properties":{"type":{"type":"string","description":"The type of resource.","examples":["database","s3-bucket","cluster"],"minLength":1},"owner":{"type":"string","description":"An entity reference to the owner of the resource.","examples":["artist-relations-team","user:john.johnson"],"minLength":1},"dependsOn":{"type":"array","description":"An array of references to other entities that the resource depends on to function.","items":{"type":"string","minLength":1}},"system":{"type":"string","description":"An entity reference to the system that the resource belongs to.","minLength":1}}}}}]}');const ue=dt(Ge);var $e=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","$id":"SystemV1alpha1","description":"A system is a collection of resources and components. The system may expose or consume one or several APIs. It is viewed as abstraction level that provides potential consumers insights into exposed features without needing a too detailed view into the details of all components. This also gives the owning team the possibility to decide about published artifacts and APIs.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"System","metadata":{"name":"artist-engagement-portal","description":"Handy tools to keep artists in the loop"},"spec":{"owner":"artist-relations-team","domain":"artists"}}],"allOf":[{"$ref":"Entity"},{"type":"object","required":["spec"],"properties":{"apiVersion":{"enum":["backstage.io/v1alpha1","backstage.io/v1beta1"]},"kind":{"enum":["System"]},"spec":{"type":"object","required":["owner"],"properties":{"owner":{"type":"string","description":"An entity reference to the owner of the component.","examples":["artist-relations-team","user:john.johnson"],"minLength":1},"domain":{"type":"string","description":"An entity reference to the domain that the system belongs to.","examples":["artists"],"minLength":1}}}}}]}');const qe=dt($e);var we=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","$id":"TemplateV1beta2","description":"A Template describes a scaffolding task for use with the Scaffolder. It describes the required parameters as well as a series of steps that will be taken to execute the scaffolding task.","examples":[{"apiVersion":"backstage.io/v1beta2","kind":"Template","metadata":{"name":"react-ssr-template","title":"React SSR Template","description":"Next.js application skeleton for creating isomorphic web applications.","tags":["recommended","react"]},"spec":{"owner":"artist-relations-team","type":"website","parameters":{"required":["name","description"],"properties":{"name":{"title":"Name","type":"string","description":"Unique name of the component"},"description":{"title":"Description","type":"string","description":"Description of the component"}}},"steps":[{"id":"fetch","name":"Fetch","action":"fetch:plain","parameters":{"url":"./template"}},{"id":"publish","name":"Publish to GitHub","action":"publish:github","parameters":{"repoUrl":"{{ parameters.repoUrl }}"},"if":"{{ parameters.repoUrl }}"}],"output":{"catalogInfoUrl":"{{ steps.publish.output.catalogInfoUrl }}"}}}],"allOf":[{"$ref":"Entity"},{"type":"object","required":["spec"],"properties":{"apiVersion":{"enum":["backstage.io/v1beta2"]},"kind":{"enum":["Template"]},"spec":{"type":"object","required":["type","steps"],"properties":{"type":{"type":"string","description":"The type of component created by the template. The software catalog accepts any type value, but an organization should take great care to establish a proper taxonomy for these. Tools including Backstage itself may read this field and behave differently depending on its value. For example, a website type component may present tooling in the Backstage interface that is specific to just websites.","examples":["service","website","library"],"minLength":1},"parameters":{"oneOf":[{"type":"object","description":"The JSONSchema describing the inputs for the template."},{"type":"array","description":"A list of separate forms to collect parameters.","items":{"type":"object","description":"The JSONSchema describing the inputs for the template."}}]},"steps":{"type":"array","description":"A list of steps to execute.","items":{"type":"object","description":"A description of the step to execute.","required":["action"],"properties":{"id":{"type":"string","description":"The ID of the step, which can be used to refer to its outputs."},"name":{"type":"string","description":"The name of the step, which will be displayed in the UI during the scaffolding process."},"action":{"type":"string","description":"The name of the action to execute."},"input":{"type":"object","description":"A templated object describing the inputs to the action."},"if":{"type":["string","boolean"],"description":"A templated condition that skips the step when evaluated to false. If the condition is true or not defined, the step is executed. The condition is true, if the input is not `false`, `undefined`, `null`, `\\"\\"`, `0`, or `[]`."}}}},"output":{"type":"object","description":"A templated object describing the outputs of the scaffolding task.","properties":{"links":{"type":"array","description":"A list of external hyperlinks, typically pointing to resources created or updated by the template","items":{"type":"object","required":[],"properties":{"url":{"type":"string","description":"A url in a standard uri format.","examples":["https://github.com/my-org/my-new-repo"],"minLength":1},"entityRef":{"type":"string","description":"An entity reference to an entity in the catalog.","examples":["Component:default/my-app"],"minLength":1},"title":{"type":"string","description":"A user friendly display name for the link.","examples":["View new repo"],"minLength":1},"icon":{"type":"string","description":"A key representing a visual icon to be displayed in the UI.","examples":["dashboard"],"minLength":1}}}}},"additionalProperties":{"type":"string"}},"owner":{"type":"string","description":"The user (or group) owner of the template","minLength":1}}}}}]}');const We=dt(we);var Je=JSON.parse(`{"$schema":"http://json-schema.org/draft-07/schema","$id":"UserV1alpha1","description":"A user describes a person, such as an employee, a contractor, or similar. Users belong to Group entities in the catalog. These catalog user entries are connected to the way that authentication within the Backstage ecosystem works. See the auth section of the docs for a discussion of these concepts.","examples":[{"apiVersion":"backstage.io/v1alpha1","kind":"User","metadata":{"name":"jdoe"},"spec":{"profile":{"displayName":"Jenny Doe","email":"jenny-doe@example.com","picture":"https://example.com/staff/jenny-with-party-hat.jpeg"},"memberOf":["team-b","employees"]}}],"allOf":[{"$ref":"Entity"},{"type":"object","required":["spec"],"properties":{"apiVersion":{"enum":["backstage.io/v1alpha1","backstage.io/v1beta1"]},"kind":{"enum":["User"]},"spec":{"type":"object","required":["memberOf"],"properties":{"profile":{"type":"object","description":"Optional profile information about the user, mainly for display purposes. All fields of this structure are also optional. The email would be a primary email of some form, that the user may wish to be used for contacting them. The picture is expected to be a URL pointing to an image that's representative of the user, and that a browser could fetch and render on a profile page or similar.","properties":{"displayName":{"type":"string","description":"A simple display name to present to users.","examples":["Jenny Doe"],"minLength":1},"email":{"type":"string","description":"An email where this user can be reached.","examples":["jenny-doe@example.com"],"minLength":1},"picture":{"type":"string","description":"The URL of an image that represents this user.","examples":["https://example.com/staff/jenny-with-party-hat.jpeg"],"minLength":1}}},"memberOf":{"type":"array","description":"The list of groups that the user is a direct member of (i.e., no transitive memberships are listed here). The list must be present, but may be empty if the user is not member of any groups. The items are not guaranteed to be ordered in any particular way. The entries of this array are entity references.","items":{"type":"string","examples":["team-b","employees"],"minLength":1}}}}}}]}`);const J=dt(Je),A="backstage.io/managed-by-location",D="backstage.io/managed-by-origin-location",z="backstage.io/source-location";function re(ce){if(typeof ce!="string")throw new TypeError(`Unable to parse location reference '${ce}', unexpected argument ${typeof ce}`);const W=ce.indexOf(":");if(W<0)throw new TypeError(`Unable to parse location reference '${ce}', expected '<type>:<target>', e.g. 'url:https://host/path'`);const te=ce.substr(0,W).trim(),ye=ce.substr(W+1).trim();if(!te||!ye)throw new TypeError(`Unable to parse location reference '${ce}', expected '<type>:<target>', e.g. 'url:https://host/path'`);if(te==="http"||te==="https")throw new TypeError(`Invalid location reference '${ce}', please prefix it with 'url:', e.g. 'url:${ce}'`);return{type:te,target:ye}}function Fe(ce){const{type:W,target:te}=ce;if(W){if(!te)throw new TypeError("Unable to stringify location reference, empty target")}else throw new TypeError("Unable to stringify location reference, empty type");return`${W}:${te}`}function Ee(ce){var te,ye,Ve,Ke,ot;const W=(ot=(ye=(te=ce.metadata)==null?void 0:te.annotations)==null?void 0:ye[SOURCE_LOCATION_ANNOTATION])!=null?ot:(Ke=(Ve=ce.metadata)==null?void 0:Ve.annotations)==null?void 0:Ke[LOCATION_ANNOTATION];if(!W)throw new Error(`Entity '${stringifyEntityRef(ce)}' is missing location`);return re(W)}var Ie=e(9699);const Me=Ie.Ry({type:Ie.Z_().required(),target:Ie.Z_().required(),presence:Ie.nK().oneOf(["required","optional"])}).noUnknown().required(),He=Ie.Ry({id:Ie.Z_().required(),type:Ie.Z_().required(),target:Ie.Z_().required(),presence:Ie.nK().oneOf(["required","optional"])}).noUnknown().required(),Et=Ie.Ry({location:Me}).noUnknown().required()},23235:function(ee,s,e){"use strict";e.d(s,{C:function(){return t}});var r=e(98005);class t{constructor(){ae(this,"subject",new r.J)}post(d){this.subject.next(d)}alert$(){return this.subject}}},47150:function(ee,s,e){"use strict";e.d(s,{g:function(){return r}});class r{captureEvent(l){}}},58652:function(ee,s,e){"use strict";e.d(s,{C:function(){return l}});var r=e(98005);const t="theme";class l{constructor(v){ae(this,"activeThemeId");ae(this,"subject",new r.X(void 0));this.themes=v}static createWithStorage(v){var g;const i=new l(v);if(!window.localStorage)return i;const p=(g=window.localStorage.getItem(t))!=null?g:void 0;return i.setActiveThemeId(p),i.activeThemeId$().subscribe(h=>{h?window.localStorage.setItem(t,h):window.localStorage.removeItem(t)}),window.addEventListener("storage",h=>{var c;if(h.key===t){const E=(c=localStorage.getItem(t))!=null?c:void 0;i.setActiveThemeId(E)}}),i}getInstalledThemes(){return this.themes.slice()}activeThemeId$(){return this.subject}getActiveThemeId(){return this.activeThemeId}setActiveThemeId(v){this.activeThemeId=v,this.subject.next(v)}}},14721:function(ee,s,e){"use strict";e.d(s,{m:function(){return h}});var r=e(9850),t=e.n(r),l=e(12782),d=e.n(l);const v=/^[a-z][a-z0-9]*(?:[-_][a-z][a-z0-9]*)*$/i;function i(c){return typeof c=="object"&&c!==null&&!Array.isArray(c)}function p(c){if(c===null)return"null";if(Array.isArray(c))return"array";const E=typeof c;return E==="number"&&isNaN(c)?"nan":E==="string"&&c===""?"empty-string":E}const g={type(c,E,o,S){return`Invalid type in config for key '${c}' in '${E}', got ${o}, wanted ${S}`},missing(c){return`Missing required config value at '${c}'`},convert(c,E,o){return`Unable to convert config value for key '${c}' in '${E}' to a ${o}`}};class h{constructor(E,o="mock-config",S,M=""){ae(this,"filteredKeys");ae(this,"notifiedFilteredKeys",new Set);this.data=E,this.context=o,this.fallback=S,this.prefix=M}static fromConfigs(E){return E.length===0?new h(void 0):E.reduce((o,{data:S,context:M,filteredKeys:x,deprecatedKeys:j})=>{const Z=new h(S,M,o);if(Z.filteredKeys=x,j)for(const{key:O,description:F}of j)console.warn(`The configuration key '${O}' of ${M} is deprecated and may be removed soon. ${F||""}`);return Z},void 0)}has(E){var S,M;return this.readValue(E)!==void 0?!0:(M=(S=this.fallback)==null?void 0:S.has(E))!=null?M:!1}keys(){var S,M;const E=this.data?Object.keys(this.data):[],o=(M=(S=this.fallback)==null?void 0:S.keys())!=null?M:[];return[...new Set([...E,...o])]}get(E){const o=this.getOptional(E);if(o===void 0)throw new Error(g.missing(this.fullKey(E!=null?E:"")));return o}getOptional(E){var M;const o=t()(this.readValue(E)),S=(M=this.fallback)==null?void 0:M.getOptional(E);return o===void 0?S:S===void 0?o:d()({},{value:S},{value:o},(x,j)=>!i(j)||!i(x)?j:void 0).value}getConfig(E){const o=this.getOptionalConfig(E);if(o===void 0)throw new Error(g.missing(this.fullKey(E)));return o}getOptionalConfig(E){var M;const o=this.readValue(E),S=(M=this.fallback)==null?void 0:M.getOptionalConfig(E);if(i(o))return this.copy(o,E,S);if(o!==void 0)throw new TypeError(g.type(this.fullKey(E),this.context,p(o),"object"));return S}getConfigArray(E){const o=this.getOptionalConfigArray(E);if(o===void 0)throw new Error(g.missing(this.fullKey(E)));return o}getOptionalConfigArray(E){const o=this.readConfigValue(E,S=>{if(!Array.isArray(S))return{expected:"object-array"};for(const[M,x]of S.entries())if(!i(x))return{expected:"object-array",value:x,key:`${E}[${M}]`};return!0});if(!!o)return o.map((S,M)=>this.copy(S,`${E}[${M}]`))}getNumber(E){const o=this.getOptionalNumber(E);if(o===void 0)throw new Error(g.missing(this.fullKey(E)));return o}getOptionalNumber(E){const o=this.readConfigValue(E,M=>typeof M=="number"||typeof M=="string"||{expected:"number"});if(typeof o=="number"||o===void 0)return o;const S=Number(o);if(!Number.isFinite(S))throw new Error(g.convert(this.fullKey(E),this.context,"number"));return S}getBoolean(E){const o=this.getOptionalBoolean(E);if(o===void 0)throw new Error(g.missing(this.fullKey(E)));return o}getOptionalBoolean(E){return this.readConfigValue(E,o=>typeof o=="boolean"||{expected:"boolean"})}getString(E){const o=this.getOptionalString(E);if(o===void 0)throw new Error(g.missing(this.fullKey(E)));return o}getOptionalString(E){return this.readConfigValue(E,o=>typeof o=="string"&&o!==""||{expected:"string"})}getStringArray(E){const o=this.getOptionalStringArray(E);if(o===void 0)throw new Error(g.missing(this.fullKey(E)));return o}getOptionalStringArray(E){return this.readConfigValue(E,o=>{if(!Array.isArray(o))return{expected:"string-array"};for(const[S,M]of o.entries())if(typeof M!="string"||M==="")return{expected:"string-array",value:M,key:`${E}[${S}]`};return!0})}fullKey(E){return`${this.prefix}${this.prefix?".":""}${E}`}copy(E,o,S){const M=new h(E,this.context,S,this.fullKey(o));return M.filteredKeys=this.filteredKeys,M}readConfigValue(E,o){var x;const S=this.readValue(E);if(S===void 0)return(x=this.fallback)==null?void 0:x.readConfigValue(E,o);const M=o(S);if(M!==!0){const{key:j=E,value:Z=S,expected:O}=M;throw new TypeError(g.type(this.fullKey(j),this.context,p(Z),O))}return S}readValue(E){const o=E?E.split("."):[];for(const M of o)if(!v.test(M))throw new TypeError(`Invalid config key '${E}'`);if(this.data===void 0)return;let S=this.data;for(const[M,x]of o.entries())if(i(S))S=S[x];else if(S!==void 0){const j=this.fullKey(o.slice(0,M).join("."));throw new TypeError(g.type(j,this.context,p(S),"object"))}return S}}},4333:function(ee,s,e){"use strict";e.d(s,{p:function(){return t}});const r="Invalid discovery URL pattern,";class t{static compile(d){const v=d.split(/\{\{\s*pluginId\s*\}\}/),i=v.join("pluginId");let p;try{p=new URL(i)}catch{throw new Error(`${r} URL '${i}' is invalid`)}if(p.hash)throw new Error(`${r} URL must not have a hash`);if(p.search)throw new Error(`${r} URL must not have a query`);if(i.endsWith("/"))throw new Error(`${r} URL must not end with a slash`);return new t(v)}constructor(d){this.parts=d}async getBaseUrl(d){return this.parts.join(d)}}},89536:function(ee,s,e){"use strict";e.d(s,{KN:function(){return r},gr:function(){return l},Jv:function(){return d}});class r{constructor(i,p){this.alertApi=i,this.errorApi=p}post(i,p){return(p==null?void 0:p.hidden)||this.alertApi.post({message:i.message,severity:"error"}),this.errorApi.post(i,p)}error$(){return this.errorApi.error$()}}var t=e(98005);class l{constructor(){ae(this,"subject",new t.J)}post(i,p){this.subject.next({error:i,context:p})}error$(){return this.subject}}class d{static forward(i,p){window.addEventListener("unhandledrejection",g=>{i.post(g.reason,p)})}}},14884:function(ee,s,e){"use strict";e.d(s,{b:function(){return l}});var r=e(36964);function t(d){if(d.length<3)throw new Error(`The '${d}' feature flag must have a minimum length of three characters.`);if(d.length>150)throw new Error(`The '${d}' feature flag must not exceed 150 characters.`);if(!d.match(/^[a-z]+[a-z0-9-]+$/))throw new Error(`The '${d}' feature flag must start with a lowercase letter and only contain lowercase letters, numbers and hyphens. Examples: feature-flag-one, alpha, release-2020`)}class l{constructor(){ae(this,"registeredFeatureFlags",[]);ae(this,"flags")}registerFlag(v){t(v.name),this.registeredFeatureFlags.push(v)}getRegisteredFlags(){return this.registeredFeatureFlags.slice()}isActive(v){return this.flags||(this.flags=this.load()),this.flags.get(v)===r.FeatureFlagState.Active}save(v){this.flags||(this.flags=this.load()),v.merge||this.flags.clear();for(const[p,g]of Object.entries(v.states))this.flags.set(p,g);const i=Array.from(this.flags.entries()).filter(([,p])=>p===r.FeatureFlagState.Active);window.localStorage.setItem("featureFlags",JSON.stringify(Object.fromEntries(i)))}load(){try{const v=window.localStorage.getItem("featureFlags");if(!v)return new Map;const i=JSON.parse(v);if(typeof i!="object"||i===null||Array.isArray(i))return new Map;const p=Object.entries(i).filter(([g,h])=>(t(g),h===r.FeatureFlagState.Active));return new Map(p)}catch{return new Map}}}},50160:function(ee,s,e){"use strict";e.d(s,{I:function(){return p},j:function(){return r}});function r(g){var E;let h=g.baseImplementation||e.g.fetch;const c=[(E=g.middleware)!=null?E:[]].flat().reverse();for(const o of c)h=o.apply(h);return{fetch:h}}class t{static create(h){var S,M;const c=l(h),E=((S=h.header)==null?void 0:S.name)||"authorization",o=((M=h.header)==null?void 0:M.value)||(x=>`Bearer ${x}`);return new t(h.identityApi,c,E,o)}constructor(h,c,E,o){this.identityApi=h,this.allowUrl=c,this.headerName=E,this.headerValue=o}apply(h){return async(c,E)=>{const o=new Request(c,E),{token:S}=await this.identityApi.getCredentials();return o.headers.get(this.headerName)||typeof S!="string"||!S||!this.allowUrl(o.url)?h(c,E):(o.headers.set(this.headerName,this.headerValue(S)),h(o))}}}function l(g){return g.allowUrl?g.allowUrl:g.urlPrefixAllowlist?d(g.urlPrefixAllowlist):g.config?d([g.config.getString("backend.baseUrl")]):()=>!1}function d(g){const h=g.map(c=>c.replace(/\/$/,""));return c=>h.some(E=>c===E||c.startsWith(`${E}/`))}function v(g,h){return!h||h==="/"?g:`${g.replace(/\/$/,"")}/${h.replace(/^\//,"")}`}class i{constructor(h){this.discoveryApi=h}apply(h){return async(c,E)=>{const o=new Request(c,E),S="plugin://";if(!o.url.startsWith(S))return h(c,E);const{hostname:M,pathname:x,search:j,hash:Z,username:O,password:F}=new URL(`http://${o.url.substring(S.length)}`);let B=await this.discoveryApi.getBaseUrl(M);if(O||F){const ne=new URL(B),de=`${O}${F?`:${F}`:""}@`;B=`${ne.protocol}//${de}${ne.host}${ne.pathname}`}const V=`${v(B,x)}${j}${Z}`;return h(V,o)}}}class p{static resolvePluginProtocol(h){return new i(h.discoveryApi)}static injectIdentityAuth(h){return t.create(h)}constructor(){}}},11358:function(ee,s,e){"use strict";e.d(s,{Y:function(){return v}});var r=e(98005);function t(i,p){for(const g of p)if(!i.has(g))return!1;return!0}function l(i,...p){const g=new Set(i);for(const h of p)for(const c of h)g.add(c);return g}class d{constructor(){ae(this,"requests",[]);ae(this,"subject",new r.X(this.getCurrentPending()))}request(p){return new Promise((g,h)=>{this.requests.push({scopes:p,resolve:g,reject:h}),this.subject.next(this.getCurrentPending())})}resolve(p,g){this.requests=this.requests.filter(h=>t(p,h.scopes)?(h.resolve(g),!1):!0),this.subject.next(this.getCurrentPending())}reject(p){this.requests.forEach(g=>g.reject(p)),this.requests=[],this.subject.next(this.getCurrentPending())}pending(){return this.subject}getCurrentPending(){const p=this.requests.length===0?void 0:this.requests.slice(1).reduce((g,h)=>l(g,h.scopes),this.requests[0].scopes);return{scopes:p,resolve:g=>{p&&this.resolve(p,g)},reject:g=>{p&&this.reject(g)}}}}class v{constructor(){ae(this,"subject",new r.X([]));ae(this,"currentRequests",[]);ae(this,"handlerCount",0)}createAuthRequester(p){p.provider.id||console.warn("DEPRECATION WARNING: Not passing a provider id to createAuthRequester is deprecated, it will be required in the future");const g=new d,h=this.handlerCount;return this.handlerCount++,g.pending().subscribe({next:c=>{const E=this.currentRequests.slice(),o=this.makeAuthRequest(c,p);o?E[h]=o:delete E[h],this.currentRequests=E,this.subject.next(E.filter(Boolean))}}),c=>g.request(c)}makeAuthRequest(p,g){const{scopes:h}=p;if(!!h)return{provider:g.provider,trigger:async()=>{const c=await g.onAuthRequest(h);p.resolve(c)},reject:()=>{const c=new Error("Login failed, rejected by user");c.name="RejectedError",p.reject(c)}}}authRequest$(){return this.subject}}},56054:function(ee,s,e){"use strict";e.d(s,{C:function(){return d}});var r=e(82394),t=e.n(r);const l=new Map;class d{constructor(i,p){ae(this,"subscribers",new Set);ae(this,"observable",new(t())(i=>(this.subscribers.add(i),()=>{this.subscribers.delete(i)})));this.namespace=i,this.errorApi=p}static create(i){var p;return new d((p=i.namespace)!=null?p:"",i.errorApi)}get(i){return this.snapshot(i).value}snapshot(i){let p,g="absent";try{const h=localStorage.getItem(this.getKeyName(i));h&&(p=JSON.parse(h,(c,E)=>(typeof E=="object"&&E!==null&&Object.freeze(E),E)),g="present")}catch{this.errorApi.post(new Error(`Error when parsing JSON config from storage for: ${i}`))}return{key:i,value:p,newValue:p,presence:g}}forBucket(i){const p=`${this.namespace}/${i}`;return l.has(p)||l.set(p,new d(p,this.errorApi)),l.get(p)}async set(i,p){localStorage.setItem(this.getKeyName(i),JSON.stringify(p)),this.notifyChanges(i)}async remove(i){localStorage.removeItem(this.getKeyName(i)),this.notifyChanges(i)}observe$(i){return this.observable.filter(({key:p})=>p===i)}getKeyName(i){return`${this.namespace}/${encodeURIComponent(i)}`}notifyChanges(i){const p=this.snapshot(i);for(const g of this.subscribers)g.next(p)}}},59589:function(ee,s,e){"use strict";e.d(s,{u:function(){return l}});var r=e(91205);const t={id:"atlassian",title:"Atlassian",icon:()=>null};class l{static create(v){const{discoveryApi:i,environment:p="development",provider:g=t,oauthRequestApi:h}=v;return r.L.create({discoveryApi:i,oauthRequestApi:h,provider:g,environment:p})}}},92293:function(ee,s,e){"use strict";e.d(s,{Z:function(){return l}});var r=e(91205);const t={id:"auth0",title:"Auth0",icon:()=>null};class l{static create(v){const{discoveryApi:i,environment:p="development",provider:g=t,oauthRequestApi:h,defaultScopes:c=["openid","email","profile"]}=v;return r.L.create({discoveryApi:i,oauthRequestApi:h,provider:g,environment:p,defaultScopes:c})}}},6098:function(ee,s,e){"use strict";e.d(s,{Z:function(){return l}});var r=e(91205);const t={id:"bitbucket",title:"Bitbucket",icon:()=>null};class l{static create(v){const{discoveryApi:i,environment:p="development",provider:g=t,oauthRequestApi:h,defaultScopes:c=["team"]}=v;return r.L.create({discoveryApi:i,oauthRequestApi:h,provider:g,environment:p,defaultScopes:c})}}},44431:function(ee,s,e){"use strict";e.d(s,{x:function(){return l.Z}});var r=e(19347),t=e.n(r);e.o(r,"AlertApiForwarder")&&e.d(s,{AlertApiForwarder:function(){return r.AlertApiForwarder}}),e.o(r,"AppThemeSelector")&&e.d(s,{AppThemeSelector:function(){return r.AppThemeSelector}}),e.o(r,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return r.AtlassianAuth}}),e.o(r,"ConfigReader")&&e.d(s,{ConfigReader:function(){return r.ConfigReader}}),e.o(r,"ErrorAlerter")&&e.d(s,{ErrorAlerter:function(){return r.ErrorAlerter}}),e.o(r,"ErrorApiForwarder")&&e.d(s,{ErrorApiForwarder:function(){return r.ErrorApiForwarder}}),e.o(r,"FetchMiddlewares")&&e.d(s,{FetchMiddlewares:function(){return r.FetchMiddlewares}}),e.o(r,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return r.FlatRoutes}}),e.o(r,"LocalStorageFeatureFlags")&&e.d(s,{LocalStorageFeatureFlags:function(){return r.LocalStorageFeatureFlags}}),e.o(r,"NoOpAnalyticsApi")&&e.d(s,{NoOpAnalyticsApi:function(){return r.NoOpAnalyticsApi}}),e.o(r,"OAuthRequestManager")&&e.d(s,{OAuthRequestManager:function(){return r.OAuthRequestManager}}),e.o(r,"UnhandledErrorForwarder")&&e.d(s,{UnhandledErrorForwarder:function(){return r.UnhandledErrorForwarder}}),e.o(r,"UrlPatternDiscovery")&&e.d(s,{UrlPatternDiscovery:function(){return r.UrlPatternDiscovery}}),e.o(r,"WebStorage")&&e.d(s,{WebStorage:function(){return r.WebStorage}}),e.o(r,"createFetchApi")&&e.d(s,{createFetchApi:function(){return r.createFetchApi}}),e.o(r,"createSpecializedApp")&&e.d(s,{createSpecializedApp:function(){return r.createSpecializedApp}}),e.o(r,"defaultConfigLoader")&&e.d(s,{defaultConfigLoader:function(){return r.defaultConfigLoader}});var l=e(6098)},19347:function(){},44474:function(ee,s,e){"use strict";e.d(s,{T:function(){return l}});var r=e(91205);const t={id:"github",title:"GitHub",icon:()=>null};class l{static create(v){const{discoveryApi:i,environment:p="development",provider:g=t,oauthRequestApi:h,defaultScopes:c=["read:user"]}=v;return r.L.create({discoveryApi:i,oauthRequestApi:h,provider:g,environment:p,defaultScopes:c})}static normalizeScope(v){if(!v)return new Set;const i=Array.isArray(v)?v:v.split(/[\s|,]/).filter(Boolean);return new Set(i)}}},2922:function(ee,s,e){"use strict";e.d(s,{a:function(){return l}});var r=e(91205);const t={id:"gitlab",title:"GitLab",icon:()=>null};class l{static create(v){const{discoveryApi:i,environment:p="development",provider:g=t,oauthRequestApi:h,defaultScopes:c=["read_user"]}=v;return r.L.create({discoveryApi:i,oauthRequestApi:h,provider:g,environment:p,defaultScopes:c})}}},59938:function(ee,s,e){"use strict";e.d(s,{e:function(){return d}});var r=e(91205);const t={id:"google",title:"Google",icon:()=>null},l="https://www.googleapis.com/auth/";class d{static create(i){const{discoveryApi:p,oauthRequestApi:g,environment:h="development",provider:c=t,defaultScopes:E=["openid",`${l}userinfo.email`,`${l}userinfo.profile`]}=i;return r.L.create({discoveryApi:p,oauthRequestApi:g,provider:c,environment:h,defaultScopes:E,scopeTransform(o){return o.map(S=>S==="openid"?S:S==="profile"||S==="email"?`${l}userinfo.${S}`:S.startsWith(l)?S:`${l}${S}`)}})}}},91668:function(ee,s,e){"use strict";e.d(s,{Td:function(){return r.T},aq:function(){return t.a},eE:function(){return l.e},OAuth2:function(){return d.L},OktaAuth:function(){return v.s},SamlAuth:function(){return i.n},Auth0Auth:function(){return p.Z},MicrosoftAuth:function(){return g._},OneLoginAuth:function(){return h.$},BitbucketAuth:function(){return c.x},AtlassianAuth:function(){return E.u}});var r=e(44474),t=e(2922),l=e(59938),d=e(91205);e.o(d,"AlertApiForwarder")&&e.d(s,{AlertApiForwarder:function(){return d.AlertApiForwarder}}),e.o(d,"AppThemeSelector")&&e.d(s,{AppThemeSelector:function(){return d.AppThemeSelector}}),e.o(d,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return d.AtlassianAuth}}),e.o(d,"Auth0Auth")&&e.d(s,{Auth0Auth:function(){return d.Auth0Auth}}),e.o(d,"BitbucketAuth")&&e.d(s,{BitbucketAuth:function(){return d.BitbucketAuth}}),e.o(d,"ConfigReader")&&e.d(s,{ConfigReader:function(){return d.ConfigReader}}),e.o(d,"ErrorAlerter")&&e.d(s,{ErrorAlerter:function(){return d.ErrorAlerter}}),e.o(d,"ErrorApiForwarder")&&e.d(s,{ErrorApiForwarder:function(){return d.ErrorApiForwarder}}),e.o(d,"FetchMiddlewares")&&e.d(s,{FetchMiddlewares:function(){return d.FetchMiddlewares}}),e.o(d,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return d.FlatRoutes}}),e.o(d,"LocalStorageFeatureFlags")&&e.d(s,{LocalStorageFeatureFlags:function(){return d.LocalStorageFeatureFlags}}),e.o(d,"MicrosoftAuth")&&e.d(s,{MicrosoftAuth:function(){return d.MicrosoftAuth}}),e.o(d,"NoOpAnalyticsApi")&&e.d(s,{NoOpAnalyticsApi:function(){return d.NoOpAnalyticsApi}}),e.o(d,"OAuthRequestManager")&&e.d(s,{OAuthRequestManager:function(){return d.OAuthRequestManager}}),e.o(d,"OktaAuth")&&e.d(s,{OktaAuth:function(){return d.OktaAuth}}),e.o(d,"OneLoginAuth")&&e.d(s,{OneLoginAuth:function(){return d.OneLoginAuth}}),e.o(d,"SamlAuth")&&e.d(s,{SamlAuth:function(){return d.SamlAuth}}),e.o(d,"UnhandledErrorForwarder")&&e.d(s,{UnhandledErrorForwarder:function(){return d.UnhandledErrorForwarder}}),e.o(d,"UrlPatternDiscovery")&&e.d(s,{UrlPatternDiscovery:function(){return d.UrlPatternDiscovery}}),e.o(d,"WebStorage")&&e.d(s,{WebStorage:function(){return d.WebStorage}}),e.o(d,"createFetchApi")&&e.d(s,{createFetchApi:function(){return d.createFetchApi}}),e.o(d,"createSpecializedApp")&&e.d(s,{createSpecializedApp:function(){return d.createSpecializedApp}}),e.o(d,"defaultConfigLoader")&&e.d(s,{defaultConfigLoader:function(){return d.defaultConfigLoader}});var v=e(26079),i=e(67578),p=e(92293),g=e(38482),h=e(58381),c=e(44431);e.o(c,"AlertApiForwarder")&&e.d(s,{AlertApiForwarder:function(){return c.AlertApiForwarder}}),e.o(c,"AppThemeSelector")&&e.d(s,{AppThemeSelector:function(){return c.AppThemeSelector}}),e.o(c,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return c.AtlassianAuth}}),e.o(c,"ConfigReader")&&e.d(s,{ConfigReader:function(){return c.ConfigReader}}),e.o(c,"ErrorAlerter")&&e.d(s,{ErrorAlerter:function(){return c.ErrorAlerter}}),e.o(c,"ErrorApiForwarder")&&e.d(s,{ErrorApiForwarder:function(){return c.ErrorApiForwarder}}),e.o(c,"FetchMiddlewares")&&e.d(s,{FetchMiddlewares:function(){return c.FetchMiddlewares}}),e.o(c,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return c.FlatRoutes}}),e.o(c,"LocalStorageFeatureFlags")&&e.d(s,{LocalStorageFeatureFlags:function(){return c.LocalStorageFeatureFlags}}),e.o(c,"NoOpAnalyticsApi")&&e.d(s,{NoOpAnalyticsApi:function(){return c.NoOpAnalyticsApi}}),e.o(c,"OAuthRequestManager")&&e.d(s,{OAuthRequestManager:function(){return c.OAuthRequestManager}}),e.o(c,"UnhandledErrorForwarder")&&e.d(s,{UnhandledErrorForwarder:function(){return c.UnhandledErrorForwarder}}),e.o(c,"UrlPatternDiscovery")&&e.d(s,{UrlPatternDiscovery:function(){return c.UrlPatternDiscovery}}),e.o(c,"WebStorage")&&e.d(s,{WebStorage:function(){return c.WebStorage}}),e.o(c,"createFetchApi")&&e.d(s,{createFetchApi:function(){return c.createFetchApi}}),e.o(c,"createSpecializedApp")&&e.d(s,{createSpecializedApp:function(){return c.createSpecializedApp}}),e.o(c,"defaultConfigLoader")&&e.d(s,{defaultConfigLoader:function(){return c.defaultConfigLoader}});var E=e(59589)},38482:function(ee,s,e){"use strict";e.d(s,{_:function(){return l}});var r=e(91205);const t={id:"microsoft",title:"Microsoft",icon:()=>null};class l{static create(v){const{environment:i="development",provider:p=t,oauthRequestApi:g,discoveryApi:h,defaultScopes:c=["openid","offline_access","profile","email","User.Read"]}=v;return r.L.create({discoveryApi:h,oauthRequestApi:g,provider:p,environment:i,defaultScopes:c})}}},15104:function(ee,s,e){"use strict";e.d(s,{Z:function(){return i}});var r=e(17678);function t(p){return[...p].join(" ")}class l{constructor(g){ae(this,"discoveryApi");ae(this,"environment");ae(this,"provider");ae(this,"joinScopesFunc");ae(this,"authRequester");ae(this,"sessionTransform");const{discoveryApi:h,environment:c,provider:E,joinScopes:o=t,oauthRequestApi:S,sessionTransform:M=x=>x}=g;this.authRequester=S.createAuthRequester({provider:E,onAuthRequest:x=>this.showPopup(x)}),this.discoveryApi=h,this.environment=c,this.provider=E,this.joinScopesFunc=o,this.sessionTransform=M}async createSession(g){return g.instantPopup?this.showPopup(g.scopes):this.authRequester(g.scopes)}async refreshSession(){const g=await fetch(await this.buildUrl("/refresh",{optional:!0}),{headers:{"x-requested-with":"XMLHttpRequest"},credentials:"include"}).catch(c=>{throw new Error(`Auth refresh request failed, ${c}`)});if(!g.ok){const c=new Error(`Auth refresh request failed, ${g.statusText}`);throw c.status=g.status,c}const h=await g.json();if(h.error){const c=new Error(h.error.message);throw h.error.name&&(c.name=h.error.name),c}return await this.sessionTransform(h)}async removeSession(){const g=await fetch(await this.buildUrl("/logout"),{method:"POST",headers:{"x-requested-with":"XMLHttpRequest"},credentials:"include"}).catch(h=>{throw new Error(`Logout request failed, ${h}`)});if(!g.ok){const h=new Error(`Logout request failed, ${g.statusText}`);throw h.status=g.status,h}}async showPopup(g){const h=this.joinScopesFunc(g),c=await this.buildUrl("/start",{scope:h,origin:location.origin}),E=await(0,r.d)({url:c,name:`${this.provider.title} Login`,origin:new URL(c).origin,width:450,height:730});return await this.sessionTransform(E)}async buildUrl(g,h){const c=await this.discoveryApi.getBaseUrl("auth"),E=this.buildQueryString({...h,env:this.environment});return`${c}/${this.provider.id}${g}${E}`}buildQueryString(g){if(!g)return"";const h=Object.entries(g).map(([c,E])=>{if(typeof E=="string")return`${encodeURIComponent(c)}=${encodeURIComponent(E)}`;if(E)return encodeURIComponent(c)}).filter(Boolean).join("&");return h?`?${h}`:""}}var d=e(55274);const v={id:"oauth2",title:"Your Identity Provider",icon:()=>null};class i{constructor(g){ae(this,"sessionManager");ae(this,"scopeTransform");this.sessionManager=g.sessionManager,this.scopeTransform=g.scopeTransform}static create(g){const{discoveryApi:h,environment:c="development",provider:E=v,oauthRequestApi:o,defaultScopes:S=[],scopeTransform:M=Z=>Z}=g,x=new l({discoveryApi:h,environment:c,provider:E,oauthRequestApi:o,sessionTransform(Z){return{...Z,providerInfo:{idToken:Z.providerInfo.idToken,accessToken:Z.providerInfo.accessToken,scopes:i.normalizeScopes(M,Z.providerInfo.scope),expiresAt:new Date(Date.now()+Z.providerInfo.expiresInSeconds*1e3)}}}}),j=new d.q2({connector:x,defaultScopes:new Set(S),sessionScopes:Z=>Z.providerInfo.scopes,sessionShouldRefresh:Z=>(Z.providerInfo.expiresAt.getTime()-Date.now())/1e3<60*5});return new i({sessionManager:j,scopeTransform:M})}async signIn(){await this.getAccessToken()}async signOut(){await this.sessionManager.removeSession()}sessionState$(){return this.sessionManager.sessionState$()}async getAccessToken(g,h){var o;const c=i.normalizeScopes(this.scopeTransform,g),E=await this.sessionManager.getSession({...h,scopes:c});return(o=E==null?void 0:E.providerInfo.accessToken)!=null?o:""}async getIdToken(g={}){var c;const h=await this.sessionManager.getSession(g);return(c=h==null?void 0:h.providerInfo.idToken)!=null?c:""}async getBackstageIdentity(g={}){const h=await this.sessionManager.getSession(g);return h==null?void 0:h.backstageIdentity}async getProfile(g={}){const h=await this.sessionManager.getSession(g);return h==null?void 0:h.profile}static normalizeScopes(g,h){if(!h)return new Set;const c=Array.isArray(h)?h:h.split(/[\s|,]/).filter(Boolean);return new Set(g(c))}}},91205:function(ee,s,e){"use strict";e.d(s,{L:function(){return r.Z}});var r=e(15104),t=e(5973),l=e.n(t);e.o(t,"AlertApiForwarder")&&e.d(s,{AlertApiForwarder:function(){return t.AlertApiForwarder}}),e.o(t,"AppThemeSelector")&&e.d(s,{AppThemeSelector:function(){return t.AppThemeSelector}}),e.o(t,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return t.AtlassianAuth}}),e.o(t,"Auth0Auth")&&e.d(s,{Auth0Auth:function(){return t.Auth0Auth}}),e.o(t,"BitbucketAuth")&&e.d(s,{BitbucketAuth:function(){return t.BitbucketAuth}}),e.o(t,"ConfigReader")&&e.d(s,{ConfigReader:function(){return t.ConfigReader}}),e.o(t,"ErrorAlerter")&&e.d(s,{ErrorAlerter:function(){return t.ErrorAlerter}}),e.o(t,"ErrorApiForwarder")&&e.d(s,{ErrorApiForwarder:function(){return t.ErrorApiForwarder}}),e.o(t,"FetchMiddlewares")&&e.d(s,{FetchMiddlewares:function(){return t.FetchMiddlewares}}),e.o(t,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return t.FlatRoutes}}),e.o(t,"LocalStorageFeatureFlags")&&e.d(s,{LocalStorageFeatureFlags:function(){return t.LocalStorageFeatureFlags}}),e.o(t,"MicrosoftAuth")&&e.d(s,{MicrosoftAuth:function(){return t.MicrosoftAuth}}),e.o(t,"NoOpAnalyticsApi")&&e.d(s,{NoOpAnalyticsApi:function(){return t.NoOpAnalyticsApi}}),e.o(t,"OAuthRequestManager")&&e.d(s,{OAuthRequestManager:function(){return t.OAuthRequestManager}}),e.o(t,"OktaAuth")&&e.d(s,{OktaAuth:function(){return t.OktaAuth}}),e.o(t,"OneLoginAuth")&&e.d(s,{OneLoginAuth:function(){return t.OneLoginAuth}}),e.o(t,"SamlAuth")&&e.d(s,{SamlAuth:function(){return t.SamlAuth}}),e.o(t,"UnhandledErrorForwarder")&&e.d(s,{UnhandledErrorForwarder:function(){return t.UnhandledErrorForwarder}}),e.o(t,"UrlPatternDiscovery")&&e.d(s,{UrlPatternDiscovery:function(){return t.UrlPatternDiscovery}}),e.o(t,"WebStorage")&&e.d(s,{WebStorage:function(){return t.WebStorage}}),e.o(t,"createFetchApi")&&e.d(s,{createFetchApi:function(){return t.createFetchApi}}),e.o(t,"createSpecializedApp")&&e.d(s,{createSpecializedApp:function(){return t.createSpecializedApp}}),e.o(t,"defaultConfigLoader")&&e.d(s,{defaultConfigLoader:function(){return t.defaultConfigLoader}})},5973:function(){},26079:function(ee,s,e){"use strict";e.d(s,{s:function(){return v}});var r=e(91205);const t={id:"okta",title:"Okta",icon:()=>null},l=new Set(["openid","profile","email","phone","address","groups","offline_access"]),d="okta.";class v{static create(p){const{discoveryApi:g,environment:h="development",provider:c=t,oauthRequestApi:E,defaultScopes:o=["openid","email","profile","offline_access"]}=p;return r.L.create({discoveryApi:g,oauthRequestApi:E,provider:c,environment:h,defaultScopes:o,scopeTransform(S){return S.map(M=>l.has(M)||M.startsWith(d)?M:`${d}${M}`)}})}}},58381:function(ee,s,e){"use strict";e.d(s,{$:function(){return v}});var r=e(91205);const t={id:"onelogin",title:"onelogin",icon:()=>null},l=new Set(["openid","profile","email","phone","address","groups","offline_access"]),d="onelogin.";class v{static create(p){const{discoveryApi:g,environment:h="development",provider:c=t,oauthRequestApi:E}=p;return r.L.create({discoveryApi:g,oauthRequestApi:E,provider:c,environment:h,defaultScopes:["openid","email","profile","offline_access"],scopeTransform(o){return o.map(S=>l.has(S)||S.startsWith(d)?S:`${d}${S}`)}})}}},67578:function(ee,s,e){"use strict";e.d(s,{n:function(){return p}});var r=e(17678);class t{constructor(h){ae(this,"discoveryApi");ae(this,"environment");ae(this,"provider");const{discoveryApi:c,environment:E,provider:o}=h;this.discoveryApi=c,this.environment=E,this.provider=o}async createSession(){const h=await this.buildUrl("/start"),c=await(0,r.d)({url:h,name:`${this.provider.title} Login`,origin:new URL(h).origin,width:450,height:730});return{...c,id:c.profile.email}}async refreshSession(){}async removeSession(){const h=await fetch(await this.buildUrl("/logout"),{method:"POST",headers:{"x-requested-with":"XMLHttpRequest"},credentials:"include"}).catch(c=>{throw new Error(`Logout request failed, ${c}`)});if(!h.ok){const c=new Error(`Logout request failed, ${h.statusText}`);throw c.status=h.status,c}}async buildUrl(h){return`${await this.discoveryApi.getBaseUrl("auth")}/${this.provider.id}${h}?env=${this.environment}`}}var l=e(55274),d=e(30195);const v=d.z.object({profile:d.z.object({email:d.z.string().optional(),displayName:d.z.string().optional(),picture:d.z.string().optional()}),backstageIdentity:d.z.object({id:d.z.string(),token:d.z.string(),identity:d.z.object({type:d.z.literal("user"),userEntityRef:d.z.string(),ownershipEntityRefs:d.z.array(d.z.string())})})}),i={id:"saml",title:"SAML",icon:()=>null};class p{static create(h){const{discoveryApi:c,environment:E="development",provider:o=i}=h,S=new t({discoveryApi:c,environment:E,provider:o}),M=new l.k1({connector:S}),x=new l.Hc({manager:M,storageKey:`${o.id}Session`,schema:v});return new p(x)}sessionState$(){return this.sessionManager.sessionState$()}constructor(h){this.sessionManager=h}async signIn(){await this.getBackstageIdentity({})}async signOut(){await this.sessionManager.removeSession()}async getBackstageIdentity(h={}){const c=await this.sessionManager.getSession(h);return c==null?void 0:c.backstageIdentity}async getProfile(h={}){const c=await this.sessionManager.getSession(h);return c==null?void 0:c.profile}}},91631:function(ee,s,e){"use strict";e.d(s,{AtlassianAuth:function(){return r.AtlassianAuth},Auth0Auth:function(){return r.Auth0Auth},GithubAuth:function(){return r.Td},GitlabAuth:function(){return r.aq},GoogleAuth:function(){return r.eE},MicrosoftAuth:function(){return r.MicrosoftAuth},OktaAuth:function(){return r.OktaAuth},OneLoginAuth:function(){return r.OneLoginAuth},SamlAuth:function(){return r.SamlAuth},AlertApiForwarder:function(){return t.C},NoOpAnalyticsApi:function(){return l.g},AppThemeSelector:function(){return d.C},ConfigReader:function(){return v.m},UrlPatternDiscovery:function(){return i.p},ErrorAlerter:function(){return p.KN},ErrorApiForwarder:function(){return p.gr},UnhandledErrorForwarder:function(){return p.Jv},LocalStorageFeatureFlags:function(){return g.b},FetchMiddlewares:function(){return h.I},createFetchApi:function(){return h.j},OAuthRequestManager:function(){return c.Y},WebStorage:function(){return E.C}});var r=e(91668);e.o(r,"AlertApiForwarder")&&e.d(s,{AlertApiForwarder:function(){return r.AlertApiForwarder}}),e.o(r,"AppThemeSelector")&&e.d(s,{AppThemeSelector:function(){return r.AppThemeSelector}}),e.o(r,"BitbucketAuth")&&e.d(s,{BitbucketAuth:function(){return r.BitbucketAuth}}),e.o(r,"ConfigReader")&&e.d(s,{ConfigReader:function(){return r.ConfigReader}}),e.o(r,"ErrorAlerter")&&e.d(s,{ErrorAlerter:function(){return r.ErrorAlerter}}),e.o(r,"ErrorApiForwarder")&&e.d(s,{ErrorApiForwarder:function(){return r.ErrorApiForwarder}}),e.o(r,"FetchMiddlewares")&&e.d(s,{FetchMiddlewares:function(){return r.FetchMiddlewares}}),e.o(r,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return r.FlatRoutes}}),e.o(r,"LocalStorageFeatureFlags")&&e.d(s,{LocalStorageFeatureFlags:function(){return r.LocalStorageFeatureFlags}}),e.o(r,"NoOpAnalyticsApi")&&e.d(s,{NoOpAnalyticsApi:function(){return r.NoOpAnalyticsApi}}),e.o(r,"OAuth2")&&e.d(s,{OAuth2:function(){return r.OAuth2}}),e.o(r,"OAuthRequestManager")&&e.d(s,{OAuthRequestManager:function(){return r.OAuthRequestManager}}),e.o(r,"UnhandledErrorForwarder")&&e.d(s,{UnhandledErrorForwarder:function(){return r.UnhandledErrorForwarder}}),e.o(r,"UrlPatternDiscovery")&&e.d(s,{UrlPatternDiscovery:function(){return r.UrlPatternDiscovery}}),e.o(r,"WebStorage")&&e.d(s,{WebStorage:function(){return r.WebStorage}}),e.o(r,"createFetchApi")&&e.d(s,{createFetchApi:function(){return r.createFetchApi}}),e.o(r,"createSpecializedApp")&&e.d(s,{createSpecializedApp:function(){return r.createSpecializedApp}}),e.o(r,"defaultConfigLoader")&&e.d(s,{defaultConfigLoader:function(){return r.defaultConfigLoader}});var t=e(23235),l=e(47150),d=e(58652),v=e(14721),i=e(4333),p=e(89536),g=e(14884),h=e(50160),c=e(11358),E=e(56054)},56494:function(ee,s,e){"use strict";e.d(s,{ApiProvider:function(){return r.gs},AlertApiForwarder:function(){return t.AlertApiForwarder},AppThemeSelector:function(){return t.AppThemeSelector},ConfigReader:function(){return t.ConfigReader},ErrorAlerter:function(){return t.ErrorAlerter},ErrorApiForwarder:function(){return t.ErrorApiForwarder},FetchMiddlewares:function(){return t.FetchMiddlewares},LocalStorageFeatureFlags:function(){return t.LocalStorageFeatureFlags},NoOpAnalyticsApi:function(){return t.NoOpAnalyticsApi},OAuthRequestManager:function(){return t.OAuthRequestManager},UnhandledErrorForwarder:function(){return t.UnhandledErrorForwarder},UrlPatternDiscovery:function(){return t.UrlPatternDiscovery},WebStorage:function(){return t.WebStorage},createFetchApi:function(){return t.createFetchApi}});var r=e(76105);e.o(r,"AlertApiForwarder")&&e.d(s,{AlertApiForwarder:function(){return r.AlertApiForwarder}}),e.o(r,"AppThemeSelector")&&e.d(s,{AppThemeSelector:function(){return r.AppThemeSelector}}),e.o(r,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return r.AtlassianAuth}}),e.o(r,"Auth0Auth")&&e.d(s,{Auth0Auth:function(){return r.Auth0Auth}}),e.o(r,"BitbucketAuth")&&e.d(s,{BitbucketAuth:function(){return r.BitbucketAuth}}),e.o(r,"ConfigReader")&&e.d(s,{ConfigReader:function(){return r.ConfigReader}}),e.o(r,"ErrorAlerter")&&e.d(s,{ErrorAlerter:function(){return r.ErrorAlerter}}),e.o(r,"ErrorApiForwarder")&&e.d(s,{ErrorApiForwarder:function(){return r.ErrorApiForwarder}}),e.o(r,"FetchMiddlewares")&&e.d(s,{FetchMiddlewares:function(){return r.FetchMiddlewares}}),e.o(r,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return r.FlatRoutes}}),e.o(r,"GithubAuth")&&e.d(s,{GithubAuth:function(){return r.GithubAuth}}),e.o(r,"GitlabAuth")&&e.d(s,{GitlabAuth:function(){return r.GitlabAuth}}),e.o(r,"GoogleAuth")&&e.d(s,{GoogleAuth:function(){return r.GoogleAuth}}),e.o(r,"LocalStorageFeatureFlags")&&e.d(s,{LocalStorageFeatureFlags:function(){return r.LocalStorageFeatureFlags}}),e.o(r,"MicrosoftAuth")&&e.d(s,{MicrosoftAuth:function(){return r.MicrosoftAuth}}),e.o(r,"NoOpAnalyticsApi")&&e.d(s,{NoOpAnalyticsApi:function(){return r.NoOpAnalyticsApi}}),e.o(r,"OAuth2")&&e.d(s,{OAuth2:function(){return r.OAuth2}}),e.o(r,"OAuthRequestManager")&&e.d(s,{OAuthRequestManager:function(){return r.OAuthRequestManager}}),e.o(r,"OktaAuth")&&e.d(s,{OktaAuth:function(){return r.OktaAuth}}),e.o(r,"OneLoginAuth")&&e.d(s,{OneLoginAuth:function(){return r.OneLoginAuth}}),e.o(r,"SamlAuth")&&e.d(s,{SamlAuth:function(){return r.SamlAuth}}),e.o(r,"UnhandledErrorForwarder")&&e.d(s,{UnhandledErrorForwarder:function(){return r.UnhandledErrorForwarder}}),e.o(r,"UrlPatternDiscovery")&&e.d(s,{UrlPatternDiscovery:function(){return r.UrlPatternDiscovery}}),e.o(r,"WebStorage")&&e.d(s,{WebStorage:function(){return r.WebStorage}}),e.o(r,"createFetchApi")&&e.d(s,{createFetchApi:function(){return r.createFetchApi}}),e.o(r,"createSpecializedApp")&&e.d(s,{createSpecializedApp:function(){return r.createSpecializedApp}}),e.o(r,"defaultConfigLoader")&&e.d(s,{defaultConfigLoader:function(){return r.defaultConfigLoader}});var t=e(91631);e.o(t,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return t.AtlassianAuth}}),e.o(t,"Auth0Auth")&&e.d(s,{Auth0Auth:function(){return t.Auth0Auth}}),e.o(t,"BitbucketAuth")&&e.d(s,{BitbucketAuth:function(){return t.BitbucketAuth}}),e.o(t,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return t.FlatRoutes}}),e.o(t,"GithubAuth")&&e.d(s,{GithubAuth:function(){return t.GithubAuth}}),e.o(t,"GitlabAuth")&&e.d(s,{GitlabAuth:function(){return t.GitlabAuth}}),e.o(t,"GoogleAuth")&&e.d(s,{GoogleAuth:function(){return t.GoogleAuth}}),e.o(t,"MicrosoftAuth")&&e.d(s,{MicrosoftAuth:function(){return t.MicrosoftAuth}}),e.o(t,"OAuth2")&&e.d(s,{OAuth2:function(){return t.OAuth2}}),e.o(t,"OktaAuth")&&e.d(s,{OktaAuth:function(){return t.OktaAuth}}),e.o(t,"OneLoginAuth")&&e.d(s,{OneLoginAuth:function(){return t.OneLoginAuth}}),e.o(t,"SamlAuth")&&e.d(s,{SamlAuth:function(){return t.SamlAuth}}),e.o(t,"createSpecializedApp")&&e.d(s,{createSpecializedApp:function(){return t.createSpecializedApp}}),e.o(t,"defaultConfigLoader")&&e.d(s,{defaultConfigLoader:function(){return t.defaultConfigLoader}})},80396:function(ee,s,e){"use strict";e.d(s,{p:function(){return t}});var r;(function(l){l[l.default=10]="default";const d=50;l[l.app=d]="app",l[l.static=100]="static"})(r||(r={}));class t{constructor(){ae(this,"factories",new Map)}register(d,v){const i=r[d],p=this.factories.get(v.api.id);return p&&p.priority>=i?!1:(this.factories.set(v.api.id,{priority:i,factory:v}),!0)}get(d){const v=this.factories.get(d.id);if(!!v)return v.factory}getAllApis(){const d=new Set;for(const{factory:v}of this.factories.values())d.add(v.api);return d}}},14406:function(ee,s,e){"use strict";e.d(s,{g:function(){return p}});var r=e(2784),t=e(13980),l=e.n(t);class d{constructor(...h){ae(this,"holders");this.holders=h}get(h){for(const c of this.holders){const E=c.get(h);if(E)return E}}}var v=e(76241);const i=(0,v.CT)("api-context"),p=g=>{var S;const{apis:h,children:c}=g,E=(S=(0,r.useContext)(i))==null?void 0:S.atVersion(1),o=E?new d(h,E):h;return r.createElement(i.Provider,{value:(0,v.EI)({1:o}),children:c})};p.propTypes={apis:l().shape({get:l().func.isRequired}).isRequired,children:l().node}},12132:function(ee,s,e){"use strict";e.d(s,{M:function(){return r}});class r{constructor(l){ae(this,"apis",new Map);this.factories=l}static validateFactories(l,d){for(const v of d){const i=[v],p=new Set;for(;i.length;){const g=i.shift(),h=l.get(g);if(!!h)for(const c of Object.values(h.deps)){if(c.id===v.id)throw new Error(`Circular dependency of api factory for ${v}`);p.has(c)||(p.add(c),i.push(c))}}}}get(l){return this.load(l)}load(l,d=[]){const v=this.apis.get(l.id);if(v)return v;const i=this.factories.get(l);if(!i)return;if(d.includes(i.api))throw new Error(`Circular dependency of api factory for ${i.api}`);const p=this.loadDeps(l,i.deps,[...d,i.api]),g=i.factory(p);return this.apis.set(l.id,g),g}loadDeps(l,d,v){const i={};for(const p in d)if(d.hasOwnProperty(p)){const g=d[p],h=this.load(g,v);if(!h)throw new Error(`No API factory available for dependency ${g} of dependent ${l}`);i[p]=h}return i}}},76105:function(ee,s,e){"use strict";e.d(s,{gs:function(){return r.g},MM:function(){return t.M},pv:function(){return l.p}});var r=e(14406),t=e(12132),l=e(80396),d=e(82488),v=e.n(d);e.o(d,"AlertApiForwarder")&&e.d(s,{AlertApiForwarder:function(){return d.AlertApiForwarder}}),e.o(d,"AppThemeSelector")&&e.d(s,{AppThemeSelector:function(){return d.AppThemeSelector}}),e.o(d,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return d.AtlassianAuth}}),e.o(d,"Auth0Auth")&&e.d(s,{Auth0Auth:function(){return d.Auth0Auth}}),e.o(d,"BitbucketAuth")&&e.d(s,{BitbucketAuth:function(){return d.BitbucketAuth}}),e.o(d,"ConfigReader")&&e.d(s,{ConfigReader:function(){return d.ConfigReader}}),e.o(d,"ErrorAlerter")&&e.d(s,{ErrorAlerter:function(){return d.ErrorAlerter}}),e.o(d,"ErrorApiForwarder")&&e.d(s,{ErrorApiForwarder:function(){return d.ErrorApiForwarder}}),e.o(d,"FetchMiddlewares")&&e.d(s,{FetchMiddlewares:function(){return d.FetchMiddlewares}}),e.o(d,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return d.FlatRoutes}}),e.o(d,"GithubAuth")&&e.d(s,{GithubAuth:function(){return d.GithubAuth}}),e.o(d,"GitlabAuth")&&e.d(s,{GitlabAuth:function(){return d.GitlabAuth}}),e.o(d,"GoogleAuth")&&e.d(s,{GoogleAuth:function(){return d.GoogleAuth}}),e.o(d,"LocalStorageFeatureFlags")&&e.d(s,{LocalStorageFeatureFlags:function(){return d.LocalStorageFeatureFlags}}),e.o(d,"MicrosoftAuth")&&e.d(s,{MicrosoftAuth:function(){return d.MicrosoftAuth}}),e.o(d,"NoOpAnalyticsApi")&&e.d(s,{NoOpAnalyticsApi:function(){return d.NoOpAnalyticsApi}}),e.o(d,"OAuth2")&&e.d(s,{OAuth2:function(){return d.OAuth2}}),e.o(d,"OAuthRequestManager")&&e.d(s,{OAuthRequestManager:function(){return d.OAuthRequestManager}}),e.o(d,"OktaAuth")&&e.d(s,{OktaAuth:function(){return d.OktaAuth}}),e.o(d,"OneLoginAuth")&&e.d(s,{OneLoginAuth:function(){return d.OneLoginAuth}}),e.o(d,"SamlAuth")&&e.d(s,{SamlAuth:function(){return d.SamlAuth}}),e.o(d,"UnhandledErrorForwarder")&&e.d(s,{UnhandledErrorForwarder:function(){return d.UnhandledErrorForwarder}}),e.o(d,"UrlPatternDiscovery")&&e.d(s,{UrlPatternDiscovery:function(){return d.UrlPatternDiscovery}}),e.o(d,"WebStorage")&&e.d(s,{WebStorage:function(){return d.WebStorage}}),e.o(d,"createFetchApi")&&e.d(s,{createFetchApi:function(){return d.createFetchApi}}),e.o(d,"createSpecializedApp")&&e.d(s,{createSpecializedApp:function(){return d.createSpecializedApp}}),e.o(d,"defaultConfigLoader")&&e.d(s,{defaultConfigLoader:function(){return d.defaultConfigLoader}})},82488:function(){},82370:function(ee,s,e){"use strict";e.d(s,{b:function(){return oe}});var r=e(2784),t=e(10289),l=e(64279),d=e(56494),v=e(36964),i=e(76105);function p(P){const L={};for(const Y in P.collectors)P.collectors.hasOwnProperty(Y)&&(L[Y]=P.collectors[Y]());const $=[{node:r.Children.toArray(P.root),parent:void 0,contexts:{}}];for(;$.length!==0;){const{node:Y,parent:_,contexts:fe}=$.shift();r.Children.forEach(Y,Te=>{if(!(0,r.isValidElement)(Te))return;const Se={};for(const Ue in L)if(L.hasOwnProperty(Ue)){const De=L[Ue];Se[Ue]=De.visit(De.accumulator,Te,_,fe[Ue])}for(const Ue of P.discoverers){const De=Ue(Te);De&&$.push({node:De,parent:Te,contexts:Se})}})}return Object.fromEntries(Object.entries(L).map(([Y,_])=>[Y,_.accumulator]))}function g(P,L){return()=>({accumulator:P(),visit:L})}function h(P){var L;return(L=P.props)==null?void 0:L.children}function c(P){var L,$,Y;if(((L=P.props)==null?void 0:L.path)&&(($=P.props)==null?void 0:$.element))return(Y=P.props)==null?void 0:Y.element}const E=g(()=>new Set,(P,L)=>{const $=(0,v.getComponentData)(L,"core.plugin");$&&P.add($)});var o=e(88934);function S(P){var Y;const L=(Y=P.props)==null?void 0:Y.element;let $=(0,v.getComponentData)(P,"core.mountPoint");return!$&&(0,r.isValidElement)(L)&&($=(0,v.getComponentData)(L,"core.mountPoint")),$}const M=g(()=>new Map,(P,L,$,Y)=>{var Te,Se;let _=Y;if(($==null?void 0:$.props.element)===L)return _;if((0,v.getComponentData)(L,"core.gatherMountPoints")){const Ue=(Te=L.props)==null?void 0:Te.path;if(!Ue)throw new Error("Mount point gatherer must have a path");_=Ue}const fe=S(L);if(fe){let Ue=(Se=L.props)==null?void 0:Se.path;if(_&&(Ue?_=void 0:Ue=_),!Ue)throw new Error("Mounted routable extension must have a path");P.set(fe,Ue)}return _}),x=g(()=>new Map,(P,L,$,Y)=>{var Te;if(($==null?void 0:$.props.element)===L)return Y;let _=Y;const fe=S(L);return fe&&(Y&&"sticky"in Y?(P.set(fe,Y.sticky),((Te=L.props)==null?void 0:Te.path)?_=fe:_=Y):(P.set(fe,Y),_=fe)),(0,v.getComponentData)(L,"core.gatherMountPoints")?{sticky:_}:_}),j={caseSensitive:!1,path:"/*",element:"match-all",routeRefs:new Set},Z=g(()=>Array(),(P,L,$,Y)=>{var De,Pe,Ae;const _=(De=Y==null?void 0:Y.children)!=null?De:P;if(($==null?void 0:$.props.element)===L)return Y;const fe=(Pe=L.props)==null?void 0:Pe.path,Te=Boolean((Ae=L.props)==null?void 0:Ae.caseSensitive),Se=S(L);if(Se){if(fe){const Ze={caseSensitive:Te,path:fe,element:"mounted",routeRefs:new Set([Se]),children:[j],plugin:(0,v.getComponentData)(L.props.element,"core.plugin")};return _.push(Ze),Ze}Y==null||Y.routeRefs.add(Se)}if((0,v.getComponentData)(L,"core.gatherMountPoints")){if(!fe)throw new Error("Mount point gatherer must have a path");const Ze={caseSensitive:Te,path:fe,element:"gathered",routeRefs:new Set,children:[j],plugin:Y==null?void 0:Y.plugin};return _.push(Ze),Ze}return Y}),O=g(()=>new Set,(P,L)=>{if(L.type===o.L){const $=L.props;P.add("with"in $?$.with:$.without)}});var F=e(76241);const B=(0,F.uW)("route-ref-type",()=>Symbol("route-ref-type"));function V(P){return P[B]==="absolute"}function ne(P){return P[B]==="sub"}function de(P){return P[B]==="external"}function ve(...P){const L=P.join("/").replace(/\/\/+/g,"/");return L!=="/"&&L.endsWith("/")?L.slice(0,-1):L}function be(P,L,$){let Y,_="";if(V(P))Y=P;else if(ne(P))Y=P.parent,_=P.path;else if(de(P)){const Se=$.get(P);if(!Se)return[void 0,""];if(V(Se))Y=Se;else if(ne(Se))Y=Se.parent,_=Se.path;else throw new Error(`ExternalRouteRef was bound to invalid target, ${Se}`)}else throw P[B]?new Error(`Unknown or invalid route ref type, ${P[B]}`):new Error(`Unknown object passed to useRouteRef, got ${P}`);if(!Y)return[void 0,""];const fe=L.get(Y);if(!fe)return[void 0,""];const Te=ve(fe,_);return[Y,Te]}function pe(P,L,$,Y,_){var Pe;const fe=(Pe=(0,t.fp)(_,L))!=null?Pe:[],Te=Array();let Se=-1;for(let Ae=P;Ae&&(Se=fe.findIndex(Ze=>Ze.route.routeRefs.has(Ae)),Se===-1);Ae=Y.get(Ae))Te.unshift(Ae);Te.length===0&&(Se-=1);const Ue=Se===-1?"":fe[Se].pathname,De=ve(...Te.slice(0,-1).map(Ae=>{const Ze=$.get(Ae);if(!Ze)throw new Error(`No path for ${Ae}`);if(Ze.includes(":"))throw new Error(`Cannot route to ${P} with parent ${Ae} as it has parameters`);return Ze}));return Ue+De}class je{constructor(L,$,Y,_,fe){this.routePaths=L,this.routeParents=$,this.routeObjects=Y,this.routeBindings=_,this.appBasePath=fe}resolve(L,$){const[Y,_]=be(L,this.routePaths,this.routeBindings);if(!Y)return;let fe;typeof $=="string"?fe=this.trimPath($):$.pathname?fe={...$,pathname:this.trimPath($.pathname)}:fe=$;const Te=this.appBasePath+pe(Y,fe,this.routePaths,this.routeParents,this.routeObjects);return(...[Ue])=>Te+(0,t.Gn)(_,Ue)}trimPath(L){return L&&(L.startsWith(this.appBasePath)?L.slice(this.appBasePath.length):L)}}const xe=(0,F.CT)("routing-context"),Qe=({routePaths:P,routeParents:L,routeObjects:$,routeBindings:Y,basePath:_="",children:fe})=>{const Te=new je(P,L,$,Y,_),Se=(0,F.EI)({1:Te});return r.createElement(xe.Provider,{value:Se},fe)},st=(P,L)=>{var $,Y;try{const _=(0,t.fp)(L,{pathname:P}),fe=($=_==null?void 0:_.filter(Se=>{var Ue;return((Ue=Se==null?void 0:Se.route.routeRefs)==null?void 0:Ue.size)>0}).pop())==null?void 0:$.route;if(!fe)return{};let Te;return fe.routeRefs.size===1&&(Te=fe.routeRefs.values().next().value),{extension:"App",pluginId:((Y=fe.plugin)==null?void 0:Y.getId())||"root",...Te?{routeRef:Te.id}:{}}}catch{return{}}},ke=({pathname:P,search:L,hash:$})=>{const Y=(0,v.useAnalytics)();return(0,r.useEffect)(()=>{Y.captureEvent("navigate",`${P}${L}${$}`)},[Y,P,L,$]),null},ht=({tree:P})=>{const{pathname:L,search:$,hash:Y}=(0,t.TH)(),{routeObjects:_}=(0,r.useMemo)(()=>p({root:P,discoverers:[h,c],collectors:{routeObjects:Z}}),[P]);return r.createElement(v.AnalyticsContext,{attributes:st(L,_)},r.createElement(ke,{pathname:L,search:$,hash:Y}))};function _e(P,L){const $=new Set(L.values());$.delete(void 0);for(const Y of L.keys()){if($.has(Y))continue;let _=Y,fe="";for(;_;){const Se=P.get(_);if(!Se)throw new Error(`No path for ${_}`);fe=`${Se}${fe}`,_=L.get(_)}const Te=fe.match(/:(\w+)/g);if(Te){for(let Se=0;Se<Te.length;Se++)for(let Ue=Se+1;Ue<Te.length;Ue++)if(Te[Ue]===Te[Se])throw new Error(`Parameter ${Te[Ue]} is duplicated in path ${fe}`)}}}function at(P,L){for(const $ of L)if(!!$.externalRoutes){for(const[Y,_]of Object.entries($.externalRoutes))if(!_.optional&&!P.has(_))throw new Error(`External route '${Y}' of the '${$.getId()}' plugin must be bound to a target route. See https://backstage.io/link?bind-routes for details.`)}}const pt=(0,F.CT)("app-context"),Nt=({appContext:P,children:L})=>{const $=(0,F.EI)({1:P});return r.createElement(pt.Provider,{value:$,children:L})};function It(P){return new Error(`Tried to access IdentityApi ${P} before app was loaded`)}function gt(P){console.warn(`WARNING: Call to ${P} is deprecated and will break in the future`)}class tt{constructor(){ae(this,"target");ae(this,"waitForTarget");ae(this,"resolveTarget",()=>{});this.waitForTarget=new Promise(L=>{this.resolveTarget=L})}setTarget(L){this.target=L,this.resolveTarget(L)}getUserId(){if(!this.target)throw It("getUserId");if(!this.target.getUserId)throw new Error("IdentityApi does not implement getUserId");return gt("getUserId"),this.target.getUserId()}getProfile(){if(!this.target)throw It("getProfile");if(!this.target.getProfile)throw new Error("IdentityApi does not implement getProfile");return gt("getProfile"),this.target.getProfile()}async getProfileInfo(){return this.waitForTarget.then(L=>L.getProfileInfo())}async getBackstageIdentity(){const L=await this.waitForTarget.then($=>$.getBackstageIdentity());return L.userEntityRef.match(/^.*:.*\/.*$/)||console.warn(`WARNING: The App IdentityApi provided an invalid userEntityRef, '${L.userEntityRef}'. It must be a full Entity Reference of the form '<kind>:<namespace>/<name>'.`),L}async getCredentials(){return this.waitForTarget.then(L=>L.getCredentials())}async getIdToken(){return this.waitForTarget.then(L=>{if(!L.getIdToken)throw new Error("IdentityApi does not implement getIdToken");return gt("getIdToken"),L.getIdToken()})}async signOut(){await this.waitForTarget.then(L=>L.signOut()),location.reload()}}var St=e(72164);function Ct(P,L,$){if(P!==void 0){const _=$.find(fe=>fe.id===P);if(_)return _}if(L){const _=$.find(fe=>fe.variant==="dark");if(_)return _}const Y=$.find(_=>_.variant==="light");return Y||$[0]}const Ot=()=>{const P=(0,r.useMemo)(()=>window.matchMedia("(prefers-color-scheme: dark)"),[]),[L,$]=(0,r.useState)(P.matches);return(0,r.useEffect)(()=>{const Y=_=>{$(_.matches)};return P.addListener(Y),()=>{P.removeListener(Y)}},[P]),L};function Ft({children:P}){const L=(0,v.useApi)(v.appThemeApiRef),$=(0,St.Z)(L.activeThemeId$(),L.getActiveThemeId()),Y=Boolean(window.matchMedia)?Ot():!1,_=Ct($,Y,L.getInstalledThemes());if(!_)throw new Error("App has no themes");return r.createElement(_.Provider,{children:P})}var dt=e(46611);class Tt{constructor(){ae(this,"apis",[])}add(L,$){return this.apis.push([L.id,$]),$}build(){return new Bt(new Map(this.apis))}}class Bt{static builder(){return new Tt}static from(L){return new Bt(new Map(L.map(([$,Y])=>[$.id,Y])))}static with(L,$){return new Bt(new Map([[L.id,$]]))}constructor(L){this.apis=L}with(L,$){return new Bt(new Map([...this.apis,[L.id,$]]))}get(L){return this.apis.get(L.id)}}function Ne(P){const L=new Map;return P&&P({bind:(Y,_)=>{for(const[fe,Te]of Object.entries(_)){const Se=Y[fe];if(!Se)throw new Error(`Key ${fe} is not an existing external route`);if(!Te&&!Se.optional)throw new Error(`External route ${fe} is required but was undefined`);Te&&L.set(Se,Te)}}}),L}function nt(P){var $;let{pathname:L}=new URL(($=P.getOptionalString("app.baseUrl"))!=null?$:"/","http://dummy.dev");return L=L.replace(/\/*$/,""),L}function Ye(P,L,$){var Ue;const Y=Boolean(P),_=(0,l.default)(P||(()=>Promise.resolve([])));let fe;if(Y&&_.loading){const{Progress:De}=L;fe=r.createElement(De,null)}else if(_.error){const{BootErrorPage:De}=L;fe=r.createElement(De,{step:"load-config",error:_.error})}const{ThemeProvider:Te=Ft}=L;return fe?{node:r.createElement(d.ApiProvider,{apis:Bt.with(v.appThemeApiRef,$)},r.createElement(Te,null,fe))}:{api:d.ConfigReader.fromConfigs((Ue=_.value)!=null?Ue:[])}}class At{constructor(L){this.app=L}getPlugins(){return this.app.getPlugins()}getSystemIcon(L){return this.app.getSystemIcon(L)}getComponents(){return this.app.getComponents()}}class le{constructor(L){ae(this,"apiHolder");ae(this,"configApi");ae(this,"apis");ae(this,"icons");ae(this,"plugins");ae(this,"components");ae(this,"themes");ae(this,"configLoader");ae(this,"defaultApis");ae(this,"bindRoutes");ae(this,"appIdentityProxy",new tt);ae(this,"apiFactoryRegistry");var $,Y,_,fe;this.apis=($=L.apis)!=null?$:[],this.icons=L.icons,this.plugins=new Set((Y=L.plugins)!=null?Y:[]),this.components=L.components,this.themes=L.themes,this.configLoader=(_=L.configLoader)!=null?_:dt.t,this.defaultApis=(fe=L.defaultApis)!=null?fe:[],this.bindRoutes=L.bindRoutes,this.apiFactoryRegistry=new i.pv}getPlugins(){return Array.from(this.plugins)}getSystemIcon(L){return this.icons[L]}getComponents(){return this.components}getProvider(){const L=new At(this);let $=!1;return({children:_})=>{const fe=(0,r.useMemo)(()=>d.AppThemeSelector.createWithStorage(this.themes),[]),{routePaths:Te,routeParents:Se,routeObjects:Ue,featureFlags:De,routeBindings:Pe}=(0,r.useMemo)(()=>{const ct=p({root:_,discoverers:[h,c],collectors:{routePaths:M,routeParents:x,routeObjects:Z,collectedPlugins:E,featureFlags:O}});return ct.collectedPlugins.forEach(Ge=>this.plugins.add(Ge)),this.verifyPlugins(this.plugins),this.getApiHolder(),{...ct,routeBindings:Ne(this.bindRoutes)}},[_]);$||($=!0,_e(Te,Se),at(Pe,this.plugins));const Ae=Ye(this.configLoader,this.components,fe),Ze="api"in Ae;if(Ze){const{api:ct}=Ae;this.configApi=ct}if((0,r.useEffect)(()=>{if(Ze){const ct=this.getApiHolder().get(v.featureFlagsApiRef);for(const Ge of this.plugins.values())if("getFeatureFlags"in Ge)for(const ue of Ge.getFeatureFlags())ct.registerFlag({name:ue.name,pluginId:Ge.getId()});else for(const ue of Ge.output())ue.type==="feature-flag"&&ct.registerFlag({name:ue.name,pluginId:Ge.getId()});for(const Ge of De)ct.registerFlag({name:Ge,pluginId:""})}},[Ze,Ae,De]),"node"in Ae)return Ae.node;const{ThemeProvider:yt=Ft}=this.components;return r.createElement(d.ApiProvider,{apis:this.getApiHolder()},r.createElement(Nt,{appContext:L},r.createElement(yt,null,r.createElement(Qe,{routePaths:Te,routeParents:Se,routeObjects:Ue,routeBindings:Pe,basePath:nt(Ae.api)},_))))}}getRouter(){const{Router:L,SignInPage:$}=this.components,Y=({component:fe,children:Te})=>{const[Se,Ue]=(0,r.useState)();return Se?(this.appIdentityProxy.setTarget(Se),Te):r.createElement(fe,{onSignInSuccess:Ue})};return({children:fe})=>{const Te=(0,v.useApi)(v.configApiRef),Se=`${nt(Te)}/*`;return $?r.createElement(L,null,r.createElement(ht,{tree:fe}),r.createElement(Y,{component:$},r.createElement(t.Z5,null,r.createElement(t.AW,{path:Se,element:r.createElement(r.Fragment,null,fe)})))):(this.appIdentityProxy.setTarget({getUserId:()=>"guest",getIdToken:async()=>{},getProfile:()=>({email:"guest@example.com",displayName:"Guest"}),getProfileInfo:async()=>({email:"guest@example.com",displayName:"Guest"}),getBackstageIdentity:async()=>({type:"user",userEntityRef:"user:default/guest",ownershipEntityRefs:["user:default/guest"]}),getCredentials:async()=>({}),signOut:async()=>{}}),r.createElement(L,null,r.createElement(ht,{tree:fe}),r.createElement(t.Z5,null,r.createElement(t.AW,{path:Se,element:r.createElement(r.Fragment,null,fe)}))))}}getApiHolder(){if(this.apiHolder){for(const L of this.plugins)for(const $ of L.getApis())this.apiFactoryRegistry.get($.api)||this.apiFactoryRegistry.register("default",$);return i.MM.validateFactories(this.apiFactoryRegistry,this.apiFactoryRegistry.getAllApis()),this.apiHolder}this.apiFactoryRegistry.register("static",{api:v.appThemeApiRef,deps:{},factory:()=>d.AppThemeSelector.createWithStorage(this.themes)}),this.apiFactoryRegistry.register("static",{api:v.configApiRef,deps:{},factory:()=>{if(!this.configApi)throw new Error("Tried to access config API before config was loaded");return this.configApi}}),this.apiFactoryRegistry.register("static",{api:v.identityApiRef,deps:{},factory:()=>this.appIdentityProxy}),this.apiFactoryRegistry.register("default",{api:v.featureFlagsApiRef,deps:{},factory:()=>new d.LocalStorageFeatureFlags});for(const L of this.defaultApis)this.apiFactoryRegistry.register("default",L);for(const L of this.plugins)for(const $ of L.getApis())if(!this.apiFactoryRegistry.register("default",$))throw new Error(`Plugin ${L.getId()} tried to register duplicate or forbidden API factory for ${$.api}`);for(const L of this.apis)if(!this.apiFactoryRegistry.register("app",L))throw new Error(`Duplicate or forbidden API factory for ${L.api} in app`);return i.MM.validateFactories(this.apiFactoryRegistry,this.apiFactoryRegistry.getAllApis()),this.apiHolder=new i.MM(this.apiFactoryRegistry),this.apiHolder}verifyPlugins(L){const $=new Set;for(const Y of L){const _=Y.getId();if($.has(_))throw new Error(`Duplicate plugin found '${_}'`);$.add(_)}}}function oe(P){return new le(P)}},46611:function(ee,s,e){"use strict";e.d(s,{t:function(){return r}});const r=async(t="__APP_INJECTED_RUNTIME_CONFIG__")=>{const l=[{context:"app-config.yaml",data:{app:{title:"Techdocs Preview App",baseUrl:"http://localhost:3000"},backend:{baseUrl:"http://localhost:3000"},techdocs:{builder:"external",requestUrl:"http://localhost:3000/api"}}}];if(!l)throw new Error("No static configuration provided");if(!Array.isArray(l))throw new Error("Static configuration has invalid format");const d=l.slice();if(t!=="__app_injected_runtime_config__".toLocaleUpperCase("en-US"))try{const i=JSON.parse(t);Array.isArray(i)?d.push(...i):d.push({data:i,context:"env"})}catch(i){throw new Error(`Failed to load runtime configuration, ${i}`)}const v=window.__APP_CONFIG__;return v&&d.push({context:"window",data:v}),d}},44056:function(ee,s,e){"use strict";e.d(s,{b:function(){return r.b},t:function(){return t.t}});var r=e(82370),t=e(46611),l=e(73495),d=e.n(l);e.o(l,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return l.AtlassianAuth}}),e.o(l,"Auth0Auth")&&e.d(s,{Auth0Auth:function(){return l.Auth0Auth}}),e.o(l,"BitbucketAuth")&&e.d(s,{BitbucketAuth:function(){return l.BitbucketAuth}}),e.o(l,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return l.FlatRoutes}}),e.o(l,"GithubAuth")&&e.d(s,{GithubAuth:function(){return l.GithubAuth}}),e.o(l,"GitlabAuth")&&e.d(s,{GitlabAuth:function(){return l.GitlabAuth}}),e.o(l,"GoogleAuth")&&e.d(s,{GoogleAuth:function(){return l.GoogleAuth}}),e.o(l,"MicrosoftAuth")&&e.d(s,{MicrosoftAuth:function(){return l.MicrosoftAuth}}),e.o(l,"OAuth2")&&e.d(s,{OAuth2:function(){return l.OAuth2}}),e.o(l,"OktaAuth")&&e.d(s,{OktaAuth:function(){return l.OktaAuth}}),e.o(l,"OneLoginAuth")&&e.d(s,{OneLoginAuth:function(){return l.OneLoginAuth}}),e.o(l,"SamlAuth")&&e.d(s,{SamlAuth:function(){return l.SamlAuth}})},73495:function(){},49208:function(ee,s,e){"use strict";e.d(s,{AlertApiForwarder:function(){return r.AlertApiForwarder},ErrorAlerter:function(){return r.ErrorAlerter},ErrorApiForwarder:function(){return r.ErrorApiForwarder},FetchMiddlewares:function(){return r.FetchMiddlewares},NoOpAnalyticsApi:function(){return r.NoOpAnalyticsApi},OAuthRequestManager:function(){return r.OAuthRequestManager},UnhandledErrorForwarder:function(){return r.UnhandledErrorForwarder},UrlPatternDiscovery:function(){return r.UrlPatternDiscovery},WebStorage:function(){return r.WebStorage},createFetchApi:function(){return r.createFetchApi},createSpecializedApp:function(){return t.b},defaultConfigLoader:function(){return t.t},FlatRoutes:function(){return l.w}});var r=e(56494);e.o(r,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return r.AtlassianAuth}}),e.o(r,"Auth0Auth")&&e.d(s,{Auth0Auth:function(){return r.Auth0Auth}}),e.o(r,"BitbucketAuth")&&e.d(s,{BitbucketAuth:function(){return r.BitbucketAuth}}),e.o(r,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return r.FlatRoutes}}),e.o(r,"GithubAuth")&&e.d(s,{GithubAuth:function(){return r.GithubAuth}}),e.o(r,"GitlabAuth")&&e.d(s,{GitlabAuth:function(){return r.GitlabAuth}}),e.o(r,"GoogleAuth")&&e.d(s,{GoogleAuth:function(){return r.GoogleAuth}}),e.o(r,"MicrosoftAuth")&&e.d(s,{MicrosoftAuth:function(){return r.MicrosoftAuth}}),e.o(r,"OAuth2")&&e.d(s,{OAuth2:function(){return r.OAuth2}}),e.o(r,"OktaAuth")&&e.d(s,{OktaAuth:function(){return r.OktaAuth}}),e.o(r,"OneLoginAuth")&&e.d(s,{OneLoginAuth:function(){return r.OneLoginAuth}}),e.o(r,"SamlAuth")&&e.d(s,{SamlAuth:function(){return r.SamlAuth}}),e.o(r,"createSpecializedApp")&&e.d(s,{createSpecializedApp:function(){return r.createSpecializedApp}}),e.o(r,"defaultConfigLoader")&&e.d(s,{defaultConfigLoader:function(){return r.defaultConfigLoader}});var t=e(44056);e.o(t,"AtlassianAuth")&&e.d(s,{AtlassianAuth:function(){return t.AtlassianAuth}}),e.o(t,"Auth0Auth")&&e.d(s,{Auth0Auth:function(){return t.Auth0Auth}}),e.o(t,"BitbucketAuth")&&e.d(s,{BitbucketAuth:function(){return t.BitbucketAuth}}),e.o(t,"FlatRoutes")&&e.d(s,{FlatRoutes:function(){return t.FlatRoutes}}),e.o(t,"GithubAuth")&&e.d(s,{GithubAuth:function(){return t.GithubAuth}}),e.o(t,"GitlabAuth")&&e.d(s,{GitlabAuth:function(){return t.GitlabAuth}}),e.o(t,"GoogleAuth")&&e.d(s,{GoogleAuth:function(){return t.GoogleAuth}}),e.o(t,"MicrosoftAuth")&&e.d(s,{MicrosoftAuth:function(){return t.MicrosoftAuth}}),e.o(t,"OAuth2")&&e.d(s,{OAuth2:function(){return t.OAuth2}}),e.o(t,"OktaAuth")&&e.d(s,{OktaAuth:function(){return t.OktaAuth}}),e.o(t,"OneLoginAuth")&&e.d(s,{OneLoginAuth:function(){return t.OneLoginAuth}}),e.o(t,"SamlAuth")&&e.d(s,{SamlAuth:function(){return t.SamlAuth}});var l=e(63938)},55274:function(ee,s,e){"use strict";e.d(s,{Hc:function(){return g},q2:function(){return i},k1:function(){return p}});function r(h,c){for(const E of c)if(!h.has(E))return!1;return!0}class t{constructor(c){this.options=c}sessionExistsAndHasScope(c,E){if(!c)return!1;if(!E||this.options.sessionScopes===void 0)return!0;const o=this.options.sessionScopes(c);return r(o,E)}getExtendedScope(c,E){const o=new Set(this.options.defaultScopes);if(c&&this.options.sessionScopes!==void 0){const S=this.options.sessionScopes(c);for(const M of S)o.add(M)}if(E)for(const S of E)o.add(S);return o}}var l=e(98005),d=e(36964);class v{constructor(){ae(this,"subject",new l.X(d.SessionState.SignedOut));ae(this,"signedIn",!1)}setIsSignedIn(c){this.signedIn!==c&&(this.signedIn=c,this.subject.next(this.signedIn?d.SessionState.SignedIn:d.SessionState.SignedOut))}sessionState$(){return this.subject}}class i{constructor(c){ae(this,"connector");ae(this,"helper");ae(this,"sessionScopesFunc");ae(this,"sessionShouldRefreshFunc");ae(this,"stateTracker",new v);ae(this,"refreshPromise");ae(this,"currentSession");const{connector:E,defaultScopes:o=new Set,sessionScopes:S,sessionShouldRefresh:M}=c;this.connector=E,this.sessionScopesFunc=S,this.sessionShouldRefreshFunc=M,this.helper=new t({sessionScopes:S,defaultScopes:o})}async getSession(c){if(this.helper.sessionExistsAndHasScope(this.currentSession,c.scopes)){if(!this.sessionShouldRefreshFunc(this.currentSession))return this.currentSession;try{const o=await this.collapsedSessionRefresh(),S=this.sessionScopesFunc(this.currentSession),M=this.sessionScopesFunc(o);return r(M,S)&&(this.currentSession=o),o}catch(o){if(c.optional)return;throw o}}if(!this.currentSession&&!c.instantPopup)try{const E=await this.collapsedSessionRefresh();return this.currentSession=E,this.getSession(c)}catch{}if(!c.optional)return this.currentSession=await this.connector.createSession({...c,scopes:this.helper.getExtendedScope(this.currentSession,c.scopes)}),this.stateTracker.setIsSignedIn(!0),this.currentSession}async removeSession(){this.currentSession=void 0,await this.connector.removeSession(),this.stateTracker.setIsSignedIn(!1)}sessionState$(){return this.stateTracker.sessionState$()}async collapsedSessionRefresh(){if(this.refreshPromise)return this.refreshPromise;this.refreshPromise=this.connector.refreshSession();try{const c=await this.refreshPromise;return this.stateTracker.setIsSignedIn(!0),c}finally{delete this.refreshPromise}}}class p{constructor(c){ae(this,"connector");ae(this,"helper");ae(this,"stateTracker",new v);ae(this,"currentSession");const{connector:E,defaultScopes:o=new Set,sessionScopes:S}=c;this.connector=E,this.helper=new t({sessionScopes:S,defaultScopes:o})}setSession(c){this.currentSession=c,this.stateTracker.setIsSignedIn(Boolean(c))}async getSession(c){if(this.helper.sessionExistsAndHasScope(this.currentSession,c.scopes))return this.currentSession;if(!c.optional)return this.currentSession=await this.connector.createSession({...c,scopes:this.helper.getExtendedScope(this.currentSession,c.scopes)}),this.stateTracker.setIsSignedIn(!0),this.currentSession}async removeSession(){this.currentSession=void 0,this.stateTracker.setIsSignedIn(!1)}sessionState$(){return this.stateTracker.sessionState$()}}class g{constructor(c){ae(this,"manager");ae(this,"storageKey");ae(this,"schema");ae(this,"sessionShouldRefreshFunc");ae(this,"helper");const{manager:E,storageKey:o,schema:S,sessionScopes:M,sessionShouldRefresh:x=()=>!1}=c;this.manager=E,this.storageKey=o,this.schema=S,this.sessionShouldRefreshFunc=x,this.helper=new t({sessionScopes:M,defaultScopes:new Set})}setSession(c){this.manager.setSession(c),this.saveSession(c)}async getSession(c){const{scopes:E}=c,o=this.loadSession();if(this.helper.sessionExistsAndHasScope(o,E)&&!this.sessionShouldRefreshFunc(o))return this.manager.setSession(o),o;const S=await this.manager.getSession(c);return this.saveSession(S),S}async removeSession(){localStorage.removeItem(this.storageKey),await this.manager.removeSession()}sessionState$(){return this.manager.sessionState$()}loadSession(){try{const c=localStorage.getItem(this.storageKey);if(c){const E=JSON.parse(c,(o,S)=>(S==null?void 0:S.__type)==="Set"?new Set(S.__value):S);try{return this.schema.parse(E)}catch(o){throw console.log(`Failed to load session from local storage because it did not conform to the expected schema, ${o}`),o}}return}catch{localStorage.removeItem(this.storageKey);return}}saveSession(c){if(c===void 0){localStorage.removeItem(this.storageKey);return}try{this.schema.parse(c)}catch(E){console.warn(`Failed to save session to local storage because it did not conform to the expected schema, ${E}`);return}localStorage.setItem(this.storageKey,JSON.stringify(c,(E,o)=>o instanceof Set?{__type:"Set",__value:Array.from(o)}:o))}}},17678:function(ee,s,e){"use strict";e.d(s,{d:function(){return r}});function r(t){return new Promise((l,d)=>{const v=t.width||500,i=t.height||700,p=window.screen.width/2-v/2,g=window.screen.height/2-i/2,h=window.open(t.url,t.name,`menubar=no,location=no,resizable=no,scrollbars=no,status=no,width=${v},height=${i},top=${g},left=${p}`);let c="";if(!h||typeof h.closed=="undefined"||h.closed){const M=new Error("Failed to open auth popup.");M.name="PopupRejectedError",d(M);return}const E=M=>{if(M.source!==h||M.origin!==t.origin)return;const{data:x}=M;if(x.type==="config_info"){c=x.targetOrigin;return}if(x.type!=="authorization_response")return;const j=x;if("error"in j){const Z=new Error(j.error.message);Z.name=j.error.name,d(Z)}else l(j.response);S()},o=setInterval(()=>{if(h.closed){const M=`Login failed, ${c&&c!==window.location.origin?`Incorrect app origin, expected ${c}`:"popup was closed"}`,x=new Error(M);x.name="PopupClosedError",d(x),S()}},100);function S(){window.removeEventListener("message",E),clearInterval(o)}window.addEventListener("message",E)})}},98005:function(ee,s,e){"use strict";e.d(s,{J:function(){return l},X:function(){return d}});var r=e(82394),t=e.n(r);class l{constructor(){ae(this,"isClosed",!1);ae(this,"terminatingError");ae(this,"observable",new(t())(i=>this.isClosed?(this.terminatingError?i.error(this.terminatingError):i.complete(),()=>{}):(this.subscribers.add(i),()=>{this.subscribers.delete(i)})));ae(this,"subscribers",new Set)}[Symbol.observable](){return this}get closed(){return this.isClosed}next(i){if(this.isClosed)throw new Error("PublishSubject is closed");this.subscribers.forEach(p=>p.next(i))}error(i){if(this.isClosed)throw new Error("PublishSubject is closed");this.isClosed=!0,this.terminatingError=i,this.subscribers.forEach(p=>p.error(i))}complete(){if(this.isClosed)throw new Error("PublishSubject is closed");this.isClosed=!0,this.subscribers.forEach(i=>i.complete())}subscribe(i,p,g){const h=typeof i=="function"?{next:i,error:p,complete:g}:i;return this.observable.subscribe(h)}}class d{constructor(i){ae(this,"isClosed");ae(this,"currentValue");ae(this,"terminatingError");ae(this,"observable");ae(this,"subscribers",new Set);this.isClosed=!1,this.currentValue=i,this.terminatingError=void 0,this.observable=new(t())(p=>this.isClosed?(this.terminatingError?p.error(this.terminatingError):p.complete(),()=>{}):(p.next(this.currentValue),this.subscribers.add(p),()=>{this.subscribers.delete(p)}))}[Symbol.observable](){return this}get closed(){return this.isClosed}next(i){if(this.isClosed)throw new Error("BehaviorSubject is closed");this.currentValue=i,this.subscribers.forEach(p=>p.next(i))}error(i){if(this.isClosed)throw new Error("BehaviorSubject is closed");this.isClosed=!0,this.terminatingError=i,this.subscribers.forEach(p=>p.error(i))}complete(){if(this.isClosed)throw new Error("BehaviorSubject is closed");this.isClosed=!0,this.subscribers.forEach(i=>i.complete())}subscribe(i,p,g){const h=typeof i=="function"?{next:i,error:p,complete:g}:i;return this.observable.subscribe(h)}}},88934:function(ee,s,e){"use strict";e.d(s,{L:function(){return l}});var r=e(36964),t=e(2784);const l=d=>{const{children:v}=d,i=(0,r.useApi)(r.featureFlagsApiRef),p="with"in d?i.isActive(d.with):!i.isActive(d.without);return t.createElement(t.Fragment,null,p?v:null)};(0,r.attachComponentData)(l,"core.featureFlagged",!0)},63938:function(ee,s,e){"use strict";e.d(s,{w:function(){return d}});var r=e(2784),t=e(10289),l=e(36964);const d=i=>{const p=(0,l.useApp)(),{NotFoundErrorPage:g}=p.getComponents(),h=(0,l.useElementFilter)(i.children,c=>c.getElements().flatMap(E=>{var S;let o=E.props.path;return o===""?[]:(o=(S=o==null?void 0:o.replace(/\/\*$/,""))!=null?S:"/",[{path:o,element:E,children:E.props.children?[{path:o==="/"?"/":"/*",element:E.props.children}]:void 0}])}).sort((E,o)=>o.path.localeCompare(E.path)).map(E=>(E.path=E.path==="/"?"/":`${E.path}/*`,E)));return h.push({element:r.createElement(g,null),path:"/*"}),(0,t.V$)(h)};var v=e(88934)},9118:function(ee,s,e){"use strict";e.d(s,{Button:function(){return Z},CodeSnippet:function(){return je},Content:function(){return qa},ContentHeader:function(){return ri},CreateButton:function(){return st},DependencyGraph:function(){return Pe},DependencyGraphTypes:function(){return r},EmptyState:function(){return D},ErrorPage:function(){return li},ErrorPanel:function(){return wt},Header:function(){return io},HeaderIconLinkRow:function(){return Ar},HeaderLabel:function(){return Ei},HeaderTabs:function(){return _a},InfoCard:function(){return zn},ItemCardGrid:function(){return Pi},ItemCardHeader:function(){return Si},Link:function(){return x},LogViewer:function(){return pn},MissingAnnotationEmptyState:function(){return Fe},OverflowTooltip:function(){return nr},Page:function(){return co},PageWithHeader:function(){return Oi},Progress:function(){return $n},ResponseErrorPanel:function(){return Wt},RoutedTabs:function(){return eo},Select:function(){return lr},Sidebar:function(){return qo},SidebarContext:function(){return wr},SidebarDivider:function(){return ms},SidebarItem:function(){return Xa},SidebarPage:function(){return wo},SidebarPinStateContext:function(){return fr},SubvalueCell:function(){return Ls},SupportButton:function(){return Uo},Table:function(){return Js},WarningPanel:function(){return hn},sidebarConfig:function(){return Ht},useContent:function(){return Ta},useQueryParamState:function(){return bo}});var r={};e.r(r),e.d(r,{Nm:function(){return ke},ht:function(){return at},LJ:function(){return _e}});var t=e(2784),l=e(36964),d=e(19928);function v(n){const[a,u]=useState([]),f=useApi(alertApiRef);if(useEffect(()=>{const b=f.alert$().subscribe(w=>u(X=>X.concat(w)));return()=>{b.unsubscribe()}},[f]),a.length===0)return null;const[y]=a,R=()=>{u(b=>b.filter(w=>w!==y))};return React.createElement(Snackbar,{open:!0,anchorOrigin:{vertical:"top",horizontal:"center"}},React.createElement(Alert,{action:React.createElement(IconButton,{color:"inherit",size:"small",onClick:R,"data-testid":"error-button-close"},React.createElement(CloseIcon,null)),severity:y.severity},React.createElement("span",null,y.message.toString(),a.length>1&&React.createElement("em",null,` (${a.length-1} older ${pluralize("message",a.length-1)})`))))}var i=e(79692),p=e(12420);const g=(0,i.Z)(n=>(0,p.Z)({avatar:{width:"4rem",height:"4rem",color:"#fff",fontWeight:n.typography.fontWeightBold,letterSpacing:"1px",textTransform:"uppercase"}}),{name:"BackstageAvatar"});function h(n){const{displayName:a,picture:u,customStyles:f}=n,y=g();return React.createElement(MaterialAvatar,{alt:a,src:u,className:y.avatar,style:{backgroundColor:stringToColor(a||u||""),...f}},a&&extractInitials(a))}var c=e(77277),E=e(86689),o=e(62833);const S=n=>/^([a-z+.-]+):/.test(n),M=n=>{var a;return n instanceof Array?n.map(M).join(" ").trim():typeof n=="object"&&n?M((a=n==null?void 0:n.props)==null?void 0:a.children):["string","number"].includes(typeof n)?String(n):""},x=t.forwardRef(({onClick:n,noTrack:a,...u},f)=>{const y=(0,l.useAnalytics)(),R=String(u.to),b=M(u.children)||R,w=S(R),X=w&&!!/^https?:/.exec(R),H=ie=>{n==null||n(ie),a||y.captureEvent("click",b,{attributes:{to:R}})};return w?t.createElement(E.Z,{ref:f,href:R,onClick:H,...X?{target:"_blank",rel:"noopener"}:{},...u}):t.createElement(E.Z,{ref:f,component:o.rU,onClick:H,...u})}),j=t.forwardRef((n,a)=>t.createElement(x,{ref:a,...n,color:"initial"})),Z=t.forwardRef((n,a)=>t.createElement(c.Z,{ref:a,component:j,...n}));var O=e(60364),F=e(61837),B=e(80030),V=e(19353),ne=e(95074);function de(n){const{text:a,tooltipDelay:u=1e3,tooltipText:f="Text copied to clipboard"}=n,y=(0,l.useApi)(l.errorApiRef),[R,b]=(0,t.useState)(!1),[{error:w},X]=(0,ne.Z)();(0,t.useEffect)(()=>{w&&y.post(w)},[w,y]);const H=ie=>{ie.stopPropagation(),b(!0),X(a)};return t.createElement(t.Fragment,null,t.createElement(B.ZP,{id:"copy-test-tooltip",title:f,placement:"top",leaveDelay:u,onClose:()=>b(!1),open:R},t.createElement(F.Z,{onClick:H},t.createElement(V.Z,null))))}var ve=e(70813),be=e(26639),pe=e(39595);function je(n){const{text:a,language:u,showLineNumbers:f=!1,highlightedNumbers:y,customStyle:R,showCopyCodeButton:b=!1}=n,w=(0,O.Z)(),X=w.palette.type==="dark"?be.Z:pe.Z,H=w.palette.type==="dark"?"#256bf3":"#e6ffed";return t.createElement("div",{style:{position:"relative"}},t.createElement(ve.Z,{customStyle:R,language:u,style:X,showLineNumbers:f,wrapLines:!0,lineNumberStyle:{color:w.palette.textVerySubtle},lineProps:ie=>(y==null?void 0:y.includes(ie))?{style:{backgroundColor:H}}:{}},a),b&&t.createElement("div",{style:{position:"absolute",top:0,right:0}},t.createElement(de,{text:a})))}var xe=e(41156),Qe=e(88188);function st(n){const{title:a,to:u}=n,f=(0,xe.Z)(y=>y.breakpoints.down("xs"));return u?f?t.createElement(F.Z,{component:o.rU,color:"primary",title:a,size:"small",to:u},t.createElement(Qe.Z,null)):t.createElement(c.Z,{component:o.rU,variant:"contained",color:"primary",to:u},a):null}var ke;(function(n){const a="TB";n.TOP_BOTTOM=a;const u="BT";n.BOTTOM_TOP=u;const f="LR";n.LEFT_RIGHT=f;const y="RL";n.RIGHT_LEFT=y})(ke||(ke={}));var ht;(function(n){const a="UL";n.UP_LEFT=a;const u="UR";n.UP_RIGHT=u;const f="DL";n.DOWN_LEFT=f;const y="DR";n.DOWN_RIGHT=y})(ht||(ht={}));var _e;(function(n){const a="network-simplex";n.NETWORK_SIMPLEX=a;const u="tight-tree";n.TIGHT_TREE=u;const f="longest-path";n.LONGEST_PATH=f})(_e||(_e={}));var at;(function(n){const a="l";n.LEFT=a;const u="r";n.RIGHT=u;const f="c";n.CENTER=f})(at||(at={}));var pt=e(13387),Nt=e(11105),It=e(97963),gt=e(46506),tt=e.n(gt),St=e(54073),Ct=e.n(St),Ot=e(10368);const Ft=(0,i.Z)(n=>({node:{fill:n.palette.primary.light,stroke:n.palette.primary.light},text:{fill:n.palette.primary.contrastText}}),{name:"BackstageDependencyGraphDefaultNode"});function dt({node:{id:n}}){const a=Ft(),[u,f]=t.useState(0),[y,R]=t.useState(0),b=t.useRef(null);t.useLayoutEffect(()=>{if(b.current){let{height:ie,width:me}=b.current.getBBox();ie=Math.round(ie),me=Math.round(me),(ie!==y||me!==u)&&(f(me),R(ie))}},[u,y]);const w=10,X=u+w*2,H=y+w*2;return t.createElement("g",null,t.createElement("rect",{className:a.node,width:X,height:H,rx:10}),t.createElement("text",{ref:b,className:a.text,y:H/2,x:X/2,textAnchor:"middle",alignmentBaseline:"middle"},n))}const Tt="arrow-marker",Bt="node",Ne="edge",nt="label",Ye=(0,Ot.Z)(n=>({node:{transition:`${n.transitions.duration.shortest}ms`}}),{name:"BackstageDependencyGraphNode"}),At=n=>t.createElement(dt,{...n});function le({render:n=At,setNode:a,node:u}){const{width:f,height:y,x:R=0,y:b=0}=u,w=u,X=Ye(),H=t.useRef(null);return t.useLayoutEffect(()=>{if(H.current){let{height:ie,width:me}=H.current.getBBox();ie=Math.round(ie),me=Math.round(me),(ie!==y||me!==f)&&a(u.id,{...u,height:ie,width:me})}},[u,f,y,a]),t.createElement("g",{ref:H,"data-testid":Bt,className:X.node,transform:`translate(${R-f/2},${b-y/2})`},n({node:w}))}var oe=e(40408),P=e(49810),L=e(19574),$=e.n(L);const Y=(0,Ot.Z)(n=>({text:{fill:n.palette.textContrast}}),{name:"BackstageDependencyGraphDefaultLabel"});function _({edge:{label:n}}){const a=Y();return t.createElement("text",{className:a.text,textAnchor:"middle"},n)}const fe=(0,Ot.Z)(n=>({path:{strokeWidth:2,stroke:n.palette.textSubtle,fill:"none",transition:`${n.transitions.duration.shortest}ms`},label:{transition:`${n.transitions.duration.shortest}ms`}}),{name:"BackstageDependencyGraphEdge"}),Te=n=>t.createElement(_,{...n}),Se=oe.Z().x(n=>n.x).y(n=>n.y).curve(P.Z);function Ue({render:n=Te,setEdge:a,id:u,edge:f}){const{x:y=0,y:R=0,width:b,height:w,points:X}=f,H=f,ie=fe(),me=t.useRef(null);t.useLayoutEffect(()=>{if(me.current){let{height:Le,width:Oe}=me.current.getBBox();Le=Math.round(Le),Oe=Math.round(Oe),(Le!==w||Oe!==b)&&a(u,{...f,height:Le,width:Oe})}},[f,w,b,a,u]);let Ce="";if(X){const Le=X.filter(Oe=>$()(Oe.x)&&$()(Oe.y));Ce=Se(Le)||""}return t.createElement(t.Fragment,null,Ce&&t.createElement("path",{"data-testid":Ne,className:ie.path,markerEnd:`url(#${Tt})`,d:Ce}),H.label?t.createElement("g",{ref:me,"data-testid":nt,className:ie.label,transform:`translate(${y},${R})`},n({edge:H})):null)}const De="workspace";function Pe(n){var hr,yo;const{edges:a,nodes:u,renderNode:f,direction:y=ke.TOP_BOTTOM,align:R,nodeMargin:b=50,edgeMargin:w=10,rankMargin:X=50,paddingX:H=0,paddingY:ie=0,acyclicer:me,ranker:Ce=_e.NETWORK_SIMPLEX,labelPosition:Le=at.RIGHT,labelOffset:Oe=10,edgeRanks:ut=1,edgeWeight:bt=1,renderLabel:Yt,defs:Vt,zoom:lt="enabled",...xt}=n,Dt=(0,It.Z)(),[Qt,Bn]=t.useState(100),[dn,zr]=t.useState(100),Lt=t.useRef(new(tt()).graphlib.Graph),[Mn,Da]=t.useState(((hr=Lt.current.graph())==null?void 0:hr.width)||0),[jn,Fa]=t.useState(((yo=Lt.current.graph())==null?void 0:yo.height)||0),[fa,ma]=t.useState([]),[Ba,kt]=t.useState([]),an=Math.max(Mn,Qt),fn=Math.max(jn,dn),Gn=t.useMemo(()=>Ct()(zt=>{if(!zt)return;const qt=Nt.Z(zt),$t=Nt.Z(zt.getElementById(De));function vn(){qt.call(pt.sP().scaleExtent([1,10]).on("zoom",bn=>{bn.transform.x=Math.min(0,Math.max(bn.transform.x,an-an*bn.transform.k)),bn.transform.y=Math.min(0,Math.max(bn.transform.y,fn-fn*bn.transform.k)),$t.attr("transform",bn.transform)}))}lt==="enabled"?vn():lt==="enable-on-click"&&qt.on("click",()=>vn());const{width:An,height:ha}=zt.getBoundingClientRect();Qt!==An&&Bn(An),dn!==ha&&zr(ha)},100),[dn,Qt,an,fn,lt]),jt=t.useCallback(()=>{const zt=Lt.current.nodes(),qt=Lt.current.edges();zt.forEach($t=>{u.some(An=>An.id===$t)||Lt.current.removeNode($t)}),qt.forEach($t=>{a.some(An=>An.from===$t.v&&An.to===$t.w)||Lt.current.removeEdge($t.v,$t.w)}),u.forEach($t=>{const vn=Lt.current.nodes().find(An=>$t.id===An);if(vn&&Lt.current.node(vn)){const{width:An,height:ha,x:bn,y:Gi}=Lt.current.node(vn);Lt.current.setNode(vn,{...$t,width:An,height:ha,x:bn,y:Gi})}else Lt.current.setNode($t.id,{...$t,width:0,height:0})}),a.forEach($t=>{Lt.current.setEdge($t.from,$t.to,{...$t,label:$t.label,width:0,height:0,labelpos:Le,labeloffset:Oe,weight:bt,minlen:ut})})},[a,u,Le,Oe,bt,ut]),Gt=t.useMemo(()=>Ct()(()=>{tt().layout(Lt.current);const{height:zt,width:qt}=Lt.current.graph(),$t=Math.max(0,zt||0),vn=Math.max(0,qt||0);Da(vn),Fa($t),ma(Lt.current.nodes()),kt(Lt.current.edges())},250,{leading:!0}),[]);t.useEffect(()=>(Lt.current.setGraph({rankdir:y,align:R,nodesep:b,edgesep:w,ranksep:X,marginx:H,marginy:ie,acyclicer:me,ranker:Ce}),jt(),Gt(),Gt.cancel),[me,R,y,w,H,ie,b,X,Ce,jt,Gt]);function mr(zt,qt){return Lt.current.setNode(zt,qt),Gt(),Lt.current}function Kn(zt,qt){return Lt.current.setEdge(zt,qt),Gt(),Lt.current}return t.createElement("svg",{ref:Gn,...xt,width:"100%",height:fn,viewBox:`0 0 ${an} ${fn}`},t.createElement("defs",null,t.createElement("marker",{id:Tt,viewBox:"0 0 24 24",markerWidth:"14",markerHeight:"14",refX:"16",refY:"12",orient:"auto",markerUnits:"strokeWidth"},t.createElement("path",{fill:Dt.palette.textSubtle,d:"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"})),Vt),t.createElement("g",{id:De},t.createElement("svg",{width:Mn,height:jn,y:fn/2-jn/2,x:an/2-Mn/2,viewBox:`0 0 ${Mn} ${jn}`},Ba.map(zt=>{const qt=Lt.current.edge(zt);return qt?t.createElement(Ue,{key:`${zt.v}-${zt.w}`,id:zt,setEdge:Kn,render:Yt,edge:qt}):null}),fa.map(zt=>{const qt=Lt.current.node(zt);return qt?t.createElement(le,{key:zt,setNode:mr,render:f,node:qt}):null}))))}var Ae=e(72779),Ze=e.n(Ae);const yt=(0,i.Z)(n=>{var a;return{root:{padding:n.spacing(0),marginBottom:n.spacing(0),marginTop:n.spacing(0),display:"flex",flexFlow:"row nowrap"},topPosition:{position:"relative",marginBottom:n.spacing(6),marginTop:-n.spacing(3),zIndex:"unset"},icon:{fontSize:20},content:{width:"100%",maxWidth:"inherit",flexWrap:"nowrap"},message:{display:"flex",alignItems:"center",color:n.palette.banner.text,"& a":{color:n.palette.banner.link}},info:{backgroundColor:n.palette.banner.info},error:{backgroundColor:n.palette.banner.error},warning:{backgroundColor:(a=n.palette.banner.warning)!=null?a:n.palette.banner.error}}},{name:"BackstageDismissableBanner"}),ct=n=>{var Le;const{variant:a,message:u,id:f,fixed:y=!1}=n,R=yt(),w=useApi(storageApiRef).forBucket("notifications"),X=(Le=w.get("dismissedBanners"))!=null?Le:[],[H,ie]=useState(new Set(X)),me=useObservable(w.observe$("dismissedBanners"));useEffect(()=>{var Oe;if(me==null?void 0:me.newValue){const ut=(Oe=me==null?void 0:me.newValue)!=null?Oe:[];ie(new Set(ut))}},[me==null?void 0:me.newValue]);const Ce=()=>{w.set("dismissedBanners",[...H,f])};return React.createElement(Snackbar,{anchorOrigin:y?{vertical:"bottom",horizontal:"center"}:{vertical:"top",horizontal:"center"},open:!H.has(f),classes:{root:classNames(R.root,!y&&R.topPosition)}},React.createElement(SnackbarContent,{classes:{root:classNames(R.content,R[a]),message:R.message},message:u,action:[React.createElement(IconButton,{key:"dismiss",title:"Permanently dismiss this message",color:"inherit",onClick:Ce},React.createElement(Close,{className:R.icon}))]}))};var Ge=e(60905),ue=e(90436),$e=e(86284),qe=e(96465),we=e(19133),We=e(3871);const Je=(0,i.Z)({generalImg:{width:"95%",zIndex:2,position:"relative",left:"50%",top:"50%",transform:"translate(-50%, 15%)"}},{name:"BackstageEmptyStateImage"}),J=({missing:n})=>{const a=Je();switch(n){case"field":return t.createElement("img",{src:$e,className:a.generalImg,alt:"annotation is missing"});case"info":return t.createElement("img",{src:qe,alt:"no Information",className:a.generalImg});case"content":return t.createElement("img",{src:we,alt:"create Component",className:a.generalImg});case"data":return t.createElement("img",{src:We,alt:"no Build",className:a.generalImg});default:return null}},A=(0,i.Z)(n=>({root:{backgroundColor:n.palette.background.default,padding:n.spacing(2,0,0,0)},action:{marginTop:n.spacing(2)},imageContainer:{position:"relative"}}),{name:"BackstageEmptyState"});function D(n){const{title:a,description:u,missing:f,action:y}=n,R=A();return t.createElement(Ge.Z,{container:!0,direction:"row",justifyContent:"space-around",alignItems:"flex-start",className:R.root,spacing:2},t.createElement(Ge.Z,{item:!0,xs:12,md:6},t.createElement(Ge.Z,{container:!0,direction:"column"},t.createElement(Ge.Z,{item:!0,xs:!0},t.createElement(ue.Z,{variant:"h5"},a)),t.createElement(Ge.Z,{item:!0,xs:!0},t.createElement(ue.Z,{variant:"body1"},u)),t.createElement(Ge.Z,{item:!0,xs:!0,className:R.action},y))),t.createElement(Ge.Z,{item:!0,xs:12,md:6,className:R.imageContainer},t.createElement(J,{missing:f})))}const z=`apiVersion: backstage.io/v1alpha1
|
|
2
|
+
kind: Component
|
|
3
|
+
metadata:
|
|
4
|
+
name: example
|
|
5
|
+
description: example.com
|
|
6
|
+
annotations:
|
|
7
|
+
ANNOTATION: value
|
|
8
|
+
spec:
|
|
9
|
+
type: website
|
|
10
|
+
lifecycle: production
|
|
11
|
+
owner: user:guest`,re=(0,i.Z)(n=>({code:{borderRadius:6,margin:`${n.spacing(2)}px 0px`,background:n.palette.type==="dark"?"#444":"#fff"}}),{name:"BackstageMissingAnnotationEmptyState"});function Fe(n){const{annotation:a}=n,u=re(),f=t.createElement(t.Fragment,null,"The ",t.createElement("code",null,a)," annotation is missing. You need to add the annotation to your component if you want to enable this tool.");return t.createElement(D,{missing:"field",title:"Missing Annotation",description:f,action:t.createElement(t.Fragment,null,t.createElement(ue.Z,{variant:"body1"},"Add the annotation to your component YAML as shown in the highlighted example below:"),t.createElement("div",{className:u.code},t.createElement(je,{text:z.replace("ANNOTATION",a),language:"yaml",showLineNumbers:!0,highlightedNumbers:[6,7],customStyle:{background:"inherit",fontSize:"115%"}})),t.createElement(c.Z,{color:"primary",component:x,to:"https://backstage.io/docs/features/software-catalog/well-known-annotations"},"Read more"))})}var Ee=e(11776),Ie=e(38402),Me=e(49378),He=e(41128),Et=e(27616),ce=e(8284),W=e(70660),te=e(91750),ye=e(38016);const Ve=(n,a)=>(a.palette.type==="light"?He._j:He.$n)(a.palette[n].light,.6),Ke=(n,a)=>(a.palette.type==="light"?He.$n:He._j)(a.palette[n].light,.9),ot=(0,i.Z)(n=>({root:{marginRight:n.spacing(1),fill:({severity:a})=>Ve(a,n)}})),Rt=({severity:n})=>{const a=ot({severity:n});return t.createElement(te.Z,{classes:a})},Kt=({severity:n})=>{const a=ot({severity:n});return t.createElement(ye.Z,{classes:a})},en=(0,i.Z)(n=>({panel:{backgroundColor:({severity:a})=>Ke(a,n),color:({severity:a})=>Ve(a,n),verticalAlign:"middle"},summary:{display:"flex",flexDirection:"row"},summaryText:{color:({severity:a})=>Ve(a,n),fontWeight:"bold"},message:{width:"100%",display:"block",color:({severity:a})=>Ve(a,n),backgroundColor:({severity:a})=>Ke(a,n)},details:{width:"100%",display:"block",color:n.palette.textContrast,backgroundColor:n.palette.background.default,border:`1px solid ${n.palette.border}`,padding:n.spacing(2),fontFamily:"sans-serif"}}),{name:"BackstageWarningPanel"}),Jn=n=>n.charAt(0).toLocaleUpperCase("en-US")+n.slice(1);function hn(n){const{severity:a="warning",title:u,message:f,children:y,defaultExpanded:R}=n,b=en({severity:a}),w=Jn(a)+(u?`: ${u}`:"");return t.createElement(Et.Z,{defaultExpanded:R!=null?R:!1,className:b.panel,role:"alert"},t.createElement(ce.Z,{expandIcon:t.createElement(Kt,{severity:a}),className:b.summary},t.createElement(Rt,{severity:a}),t.createElement(ue.Z,{className:b.summaryText,variant:"subtitle1"},w)),(f||y)&&t.createElement(W.Z,null,t.createElement(Ge.Z,{container:!0},f&&t.createElement(Ge.Z,{item:!0,xs:12},t.createElement(ue.Z,{className:b.message,variant:"body1"},f)),y&&t.createElement(Ge.Z,{item:!0,xs:12,className:b.details},y))))}const gn=(0,i.Z)(n=>({text:{fontFamily:"monospace",whiteSpace:"pre",overflowX:"auto",marginRight:n.spacing(2)},divider:{margin:n.spacing(2)}}),{name:"BackstageErrorPanel"}),ft=({error:n,message:a,stack:u,children:f})=>{const y=gn();return t.createElement(Ee.Z,{dense:!0},t.createElement(Ie.Z,{alignItems:"flex-start"},t.createElement(Me.Z,{classes:{secondary:y.text},primary:"Error",secondary:n}),t.createElement(de,{text:n})),t.createElement(Ie.Z,{alignItems:"flex-start"},t.createElement(Me.Z,{classes:{secondary:y.text},primary:"Message",secondary:a}),t.createElement(de,{text:a})),u&&t.createElement(Ie.Z,{alignItems:"flex-start"},t.createElement(Me.Z,{classes:{secondary:y.text},primary:"Stack Trace",secondary:u}),t.createElement(de,{text:u})),f)};function wt(n){const{title:a,error:u,defaultExpanded:f,children:y}=n;return t.createElement(hn,{severity:"error",title:a!=null?a:u.message,defaultExpanded:f},t.createElement(ft,{error:u.name,message:u.message,stack:u.stack,children:y}))}var sn=e(85256);const Rn=(0,i.Z)(n=>({text:{fontFamily:"monospace",whiteSpace:"pre",overflowX:"auto",marginRight:n.spacing(2)},divider:{margin:n.spacing(2)}}),{name:"BackstageResponseErrorPanel"});function Wt(n){var Oe;const{title:a,error:u,defaultExpanded:f}=n,y=Rn();if(u.name!=="ResponseError")return t.createElement(wt,{title:a!=null?a:u.message,defaultExpanded:f,error:u});const{body:R,cause:b}=u,{request:w,response:X}=R,H=`${X.statusCode}: ${b.name}`,ie=w&&`${w.method} ${w.url}`,me=b.message.replace(/\\n/g,`
|
|
12
|
+
`),Ce=(Oe=b.stack)==null?void 0:Oe.replace(/\\n/g,`
|
|
13
|
+
`),Le=JSON.stringify(R,void 0,2);return t.createElement(wt,{title:a!=null?a:u.message,defaultExpanded:f,error:{name:H,message:me,stack:Ce}},ie&&t.createElement(Ie.Z,{alignItems:"flex-start"},t.createElement(Me.Z,{classes:{secondary:y.text},primary:"Request",secondary:w?`${ie}`:void 0}),t.createElement(de,{text:ie})),t.createElement(t.Fragment,null,t.createElement(sn.Z,{component:"li",className:y.divider}),t.createElement(Ie.Z,{alignItems:"flex-start"},t.createElement(Me.Z,{classes:{secondary:y.text},primary:"Full Error as JSON"})),t.createElement(je,{language:"json",text:Le,showCopyCodeButton:!0})))}var Pn=e(28316);function gr(n){const a=document.createElement("div");return a.setAttribute("id",n),a}function pr(n){document.body.insertBefore(n,document.body.lastElementChild.nextElementSibling)}function Hr(n){const a=useRef(null);useEffect(function(){const y=document.querySelector(`#${n}`),R=y||gr(n);return y||pr(R),R.appendChild(a.current),function(){a.current.remove(),R.childNodes.length===-1&&R.remove()}},[n]);function u(){return a.current||(a.current=document.createElement("div")),a.current}return u()}var Nn=null;const Zn="core.calloutSeen";function Yn(){const[n,a]=useState(()=>{const f=localStorage.getItem(Zn);return f?JSON.parse(f):{}}),u=useCallback((f,y)=>{const R=localStorage.getItem(Zn),w={...R?JSON.parse(R):{},[f]:y};a(w),localStorage.setItem(Zn,JSON.stringify(w))},[]);return{states:n,setState:u}}function Qn(n){const{states:a,setState:u}=Yn(),f=useCallback(()=>{u(n,!0)},[u,n]);return{seen:a[n]===!0,markSeen:f}}function Vr(n){const{seen:a,markSeen:u}=Qn(n);return{show:a===!1,hide:u}}const yr=(0,i.Z)({"@keyframes pulsateSlightly":{"0%":{transform:"scale(1.0)"},"100%":{transform:"scale(1.1)"}},"@keyframes pulsateAndFade":{"0%":{transform:"scale(1.0)",opacity:.9},"100%":{transform:"scale(1.5)",opacity:0}},featureWrapper:{position:"relative"},backdrop:{zIndex:2e3,position:"fixed",overflow:"hidden",left:0,right:0,top:0,bottom:0},dot:{position:"absolute",backgroundColor:"transparent",borderRadius:"100%",border:"1px solid rgba(103, 146, 180, 0.98)",boxShadow:"0px 0px 0px 20000px rgba(0, 0, 0, 0.5)",zIndex:2001,transformOrigin:"center center",animation:"$pulsateSlightly 1744ms 1.2s cubic-bezier(0.4, 0, 0.2, 1) alternate infinite"},pulseCircle:{width:"100%",height:"100%",backgroundColor:"transparent",borderRadius:"100%",border:"2px solid white",zIndex:2001,transformOrigin:"center center",animation:"$pulsateAndFade 872ms 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite"},text:{position:"absolute",color:"white",zIndex:2003}},{name:"BackstageFeatureCalloutCircular"});function Xn(n){const{featureId:a,title:u,description:f,children:y}=n,{show:R,hide:b}=useShowCallout(a),w=usePortal("core.callout"),X=useRef(null),[H,ie]=useState(),me=yr(),Ce=useCallback(()=>{if(X.current){const Le=X.current.getBoundingClientRect(),Oe=Math.max(Le.width,Le.height),ut=800,bt=Le.x-(Oe-Le.width)/2-ut,Yt=Le.y-(Oe-Le.height)/2-ut,Vt=Oe+2*ut,lt=450,xt=Le.x+Le.width/2-lt,Dt=Le.y-(Oe-Le.height)/2+Oe+20;ie({dotLeft:bt,dotTop:Yt,dotSize:Vt,borderWidth:ut,textTop:Dt,textLeft:xt,textWidth:lt})}},[]);return useEffect(()=>(window.addEventListener("resize",Ce),window.addEventListener("scroll",Ce),()=>{window.removeEventListener("resize",Ce),window.removeEventListener("scroll",Ce)}),[Ce]),useLayoutEffect(Ce,[X.current,Ce]),R?React.createElement(React.Fragment,null,React.createElement("div",{className:me.featureWrapper,ref:X},y),createPortal(React.createElement("div",{className:me.backdrop},React.createElement(ClickAwayListener,{onClickAway:b},React.createElement(React.Fragment,null,React.createElement("div",{className:me.dot,"data-testid":"dot",style:{left:H==null?void 0:H.dotLeft,top:H==null?void 0:H.dotTop,width:H==null?void 0:H.dotSize,height:H==null?void 0:H.dotSize,borderWidth:H==null?void 0:H.borderWidth},onClick:b,onKeyDown:b,role:"button",tabIndex:0},React.createElement("div",{className:me.pulseCircle})),React.createElement("div",{className:me.text,"data-testid":"text",style:{left:H==null?void 0:H.textLeft,top:H==null?void 0:H.textTop,width:H==null?void 0:H.textWidth}},React.createElement(Typography,{variant:"h2",paragraph:!0},u),React.createElement(Typography,null,f))))),w)):React.createElement(React.Fragment,null,y)}var jr=e(35292);const Gr=(0,i.Z)(n=>({link:{display:"grid",justifyItems:"center",gridGap:4,textAlign:"center"},disabled:{color:"gray",cursor:"default"},primary:{color:n.palette.primary.main},secondary:{color:n.palette.secondary.main},label:{fontSize:"0.7rem",textTransform:"uppercase",fontWeight:600,letterSpacing:1.2}}),{name:"BackstageIconLinkVertical"});function Er({color:n="primary",disabled:a=!1,href:u="#",icon:f=t.createElement(jr.Z,null),label:y,onClick:R,title:b}){const w=Gr();return a?t.createElement(E.Z,{title:b,className:Ze()(w.link,w.disabled),underline:"none"},f,t.createElement("span",{className:w.label},y)):t.createElement(E.Z,{title:b,className:Ze()(w.link,w[n]),to:u,component:x,onClick:R},f,t.createElement("span",{className:w.label},y))}const vr=(0,i.Z)(n=>({links:{margin:n.spacing(2,0),display:"grid",gridAutoFlow:"column",gridAutoColumns:"min-content",gridGap:n.spacing(3)}}),{name:"BackstageHeaderIconLinkRow"});function Ar(n){const{links:a}=n,u=vr();return t.createElement("nav",{className:u.links},a.map((f,y)=>t.createElement(Er,{key:y+1,...f})))}const Rr=n=>{const a=n==="dark"?"16%":"97%";return`
|
|
14
|
+
hsl(0, 0%, ${a}) 0%,
|
|
15
|
+
hsla(0, 0%, ${a}, 0.987) 8.1%,
|
|
16
|
+
hsla(0, 0%, ${a}, 0.951) 15.5%,
|
|
17
|
+
hsla(0, 0%, ${a}, 0.896) 22.5%,
|
|
18
|
+
hsla(0, 0%, ${a}, 0.825) 29%,
|
|
19
|
+
hsla(0, 0%, ${a}, 0.741) 35.3%,
|
|
20
|
+
hsla(0, 0%, ${a}, 0.648) 41.2%,
|
|
21
|
+
hsla(0, 0%, ${a}, 0.55) 47.1%,
|
|
22
|
+
hsla(0, 0%, ${a}, 0.45) 52.9%,
|
|
23
|
+
hsla(0, 0%, ${a}, 0.352) 58.8%,
|
|
24
|
+
hsla(0, 0%, ${a}, 0.259) 64.7%,
|
|
25
|
+
hsla(0, 0%, ${a}, 0.175) 71%,
|
|
26
|
+
hsla(0, 0%, ${a}, 0.104) 77.5%,
|
|
27
|
+
hsla(0, 0%, ${a}, 0.049) 84.5%,
|
|
28
|
+
hsla(0, 0%, ${a}, 0.013) 91.9%,
|
|
29
|
+
hsla(0, 0%, ${a}, 0) 100%
|
|
30
|
+
`},kn=100,Dn=10,Sr=(0,i.Z)(n=>({root:{position:"relative",display:"flex",flexFlow:"row nowrap",alignItems:"center"},container:{overflow:"auto",scrollbarWidth:0,"&::-webkit-scrollbar":{display:"none"}},fade:{position:"absolute",width:kn,height:`calc(100% + ${Dn}px)`,transition:"opacity 300ms",pointerEvents:"none"},fadeLeft:{left:-Dn,background:`linear-gradient(90deg, ${Rr(n.palette.type)})`},fadeRight:{right:-Dn,background:`linear-gradient(270deg, ${Rr(n.palette.type)})`},fadeHidden:{opacity:0},button:{position:"absolute"},buttonLeft:{left:-n.spacing(2)},buttonRight:{right:-n.spacing(2)}}),{name:"BackstageHorizontalScrollGrid"});function qn(n){const[[a,u],f]=React.useState([0,0]);return React.useLayoutEffect(()=>{const y=n.current;if(!y){f([0,0]);return}const R=()=>{const b=y.scrollLeft,w=y.scrollWidth-y.offsetWidth-y.scrollLeft;f([b,w])};return R(),y.addEventListener("scroll",R),window.addEventListener("resize",R),()=>{y.removeEventListener("scroll",R),window.removeEventListener("resize",R)}},[n]),[a,u]}function Cr(n,a,u){const[f,y]=React.useState(0);return React.useLayoutEffect(()=>{if(f===0)return;const R=performance.now(),b=requestAnimationFrame(w=>{if(!n.current)return;const X=w-R,H=Math.abs(f)*X/a,me=Math.max(u,H)*Math.sign(f);n.current.scrollBy({left:me});const Ce=f-me;Math.sign(f)!==Math.sign(Ce)?y(0):y(Ce)});return()=>cancelAnimationFrame(b)},[n,f,a,u]),y}function _n(n){const{scrollStep:a=100,scrollSpeed:u=50,minScrollDistance:f=5,children:y,...R}=n,b=Sr(n),w=React.useRef(),[X,H]=qn(w),ie=Cr(w,u,f),me=Ce=>{!w.current||ie(Ce?a:-a)};return React.createElement("div",{...R,className:b.root},React.createElement(Grid,{container:!0,direction:"row",wrap:"nowrap",className:b.container,ref:w},y),React.createElement("div",{className:classNames(b.fade,b.fadeLeft,{[b.fadeHidden]:X===0})}),React.createElement("div",{className:classNames(b.fade,b.fadeRight,{[b.fadeHidden]:H===0})}),X>0&&React.createElement(IconButton,{title:"Scroll Left",onClick:()=>me(!1),className:classNames(b.button,b.buttonLeft,{})},React.createElement(ChevronLeftIcon,null)),H>0&&React.createElement(IconButton,{title:"Scroll Right",onClick:()=>me(!0),className:classNames(b.button,b.buttonRight,{})},React.createElement(ChevronRightIcon,null)))}const Jt=(0,i.Z)({alpha:{color:"#ffffff",fontFamily:"serif",fontWeight:"normal",fontStyle:"italic"},beta:{color:"#4d65cc",fontFamily:"serif",fontWeight:"normal",fontStyle:"italic"}},{name:"BackstageLifecycle"});function Un(n){const a=Jt(n),{shorthand:u,alpha:f}=n;return u?React.createElement("span",{className:a[f?"alpha":"beta"],style:{fontSize:"120%"}},f?React.createElement(React.Fragment,null,"\u03B1"):React.createElement(React.Fragment,null,"\u03B2")):React.createElement("span",{className:a[f?"alpha":"beta"]},f?"Alpha":"Beta")}const er=(0,t.lazy)(()=>Promise.all([e.e(804),e.e(8718)]).then(e.bind(e,98718)).then(n=>({default:n.RealLogViewer})));function pn(n){const{Progress:a}=(0,l.useApp)().getComponents();return t.createElement(t.Suspense,{fallback:t.createElement(a,null)},t.createElement(er,{...n}))}const Zt=(0,i.Z)(n=>({markdown:{"& table":{borderCollapse:"collapse",border:`1px solid ${n.palette.border}`},"& th, & td":{border:`1px solid ${n.palette.border}`,padding:n.spacing(1)},"& td":{wordBreak:"break-word",overflow:"hidden",verticalAlign:"middle",lineHeight:"1",margin:0,padding:n.spacing(3,2,3,2.5),borderBottom:0},"& th":{backgroundColor:n.palette.background.paper},"& tr":{backgroundColor:n.palette.background.paper},"& tr:nth-child(odd)":{backgroundColor:n.palette.background.default},"& a":{color:n.palette.link},"& img":{maxWidth:"100%"}}}),{name:"BackstageMarkdownContent"}),Kr={code:({inline:n,className:a,children:u,...f})=>{const y=String(u).replace(/\n+$/,""),R=/language-(\w+)/.exec(a||"");return!n&&R?t.createElement(je,{language:R[1],text:y}):t.createElement("code",{className:a,...f},u)}};function Tr(n){const{content:a,dialect:u="gfm",linkTarget:f}=n,y=Zt();return React.createElement(ReactMarkdown,{remarkPlugins:u==="gfm"?[gfm]:[],className:y.markdown,children:a,components:Kr,linkTarget:f})}var Jr=e(10179);const tr=(0,i.Z)(n=>({root:{paddingLeft:n.spacing(3)}}),{name:"BackstageLoginRequestListItem"}),ga=({request:n,busy:a,setBusy:u})=>{const f=tr(),[y,R]=useState(),b=async()=>{u(!0);try{await n.trigger()}catch(X){R(isError(X)?X.message:"An unspecified error occurred")}finally{u(!1)}},w=n.provider.icon;return React.createElement(ListItem,{button:!0,disabled:a,classes:{root:f.root}},React.createElement(ListItemAvatar,null,React.createElement(w,{fontSize:"large"})),React.createElement(ListItemText,{primary:n.provider.title,secondary:y&&React.createElement(Typography,{color:"error"},y)}),React.createElement(Button,{color:"primary",variant:"contained",onClick:b},"Log in"))};var pa=null;const Yr=(0,i.Z)(n=>({dialog:{paddingTop:n.spacing(1)},title:{minWidth:0},contentList:{padding:0},actionButtons:{padding:n.spacing(2,0)}}),{name:"OAuthRequestDialog"});function ya(n){const a=Yr(),[u,f]=useState(!1),y=useApi(oauthRequestApiRef),R=useObservable(useMemo(()=>y.authRequest$(),[y]),[]),b=()=>{R.forEach(w=>w.reject())};return React.createElement(Dialog,{open:Boolean(R.length),fullWidth:!0,maxWidth:"xs",classes:{paper:a.dialog}},React.createElement(DialogTitle,{classes:{root:a.title}},"Login Required"),React.createElement(DialogContent,{dividers:!0,classes:{root:a.contentList}},React.createElement(List,null,R.map(w=>React.createElement(LoginRequestListItem,{key:w.provider.title,request:w,busy:u,setBusy:f})))),React.createElement(DialogActions,{classes:{root:a.actionButtons}},React.createElement(Button,{onClick:b},"Reject All")))}var Sn=e(15277),Xt=e.n(Sn),Ln=e(90736);const Fn=(0,i.Z)({container:{overflow:"visible !important"}},{name:"BackstageOverflowTooltip"});function nr(n){var b;const[a,u]=(0,t.useState)(!1),f=(0,Ln.default)(),y=Fn(),R=w=>{f()&&u(w)};return t.createElement(B.ZP,{title:(b=n.title)!=null?b:n.text||"",placement:n.placement,disableHoverListener:!a},t.createElement(Xt(),{text:n.text,line:n.line,onToggled:R,containerClassName:y.container}))}var Qr=e(67358);function $n(n){const[a,u]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{const f=setTimeout(()=>u(!0),250);return()=>clearTimeout(f)},[]),a?t.createElement(Qr.Z,{...n,"data-testid":"progress"}):t.createElement("div",{style:{display:"none"}})}var Pr=e(94339),rr=e(14503),In=e(24579),tn=e(32552),Ut=e(15459),_t=e(95544),wn=e(27597);const Wn=(0,i.Z)(n=>({root:{maxWidth:"fit-content",padding:n.spacing(2,2,2,2.5)},boxTitle:{margin:0,color:n.palette.textSubtle},arrow:{color:n.palette.textSubtle}}),{name:"BackstageBottomLink"});function Lr(n){const{link:a,title:u,onClick:f}=n,y=Wn();return t.createElement("div",null,t.createElement(sn.Z,null),t.createElement(x,{to:a,onClick:f,underline:"none"},t.createElement(_t.Z,{display:"flex",alignItems:"center",className:y.root},t.createElement(_t.Z,{className:y.boxTitle,fontWeight:"fontWeightBold",m:1},t.createElement(ue.Z,null,t.createElement("strong",null,u))),t.createElement(wn.Z,{className:y.arrow}))))}const Xr=n=>{const{slackChannel:a}=n;if(a){if(typeof a=="string")return t.createElement(t.Fragment,null,"Please contact ",a," for help.");if(!a.href)return t.createElement(t.Fragment,null,"Please contact ",a.name," for help.")}else return null;return t.createElement(Z,{to:a.href,variant:"contained"},a.name)},ar=class extends t.Component{constructor(a){super(a);this.state={error:void 0,errorInfo:void 0}}componentDidCatch(a,u){console.error(`ErrorBoundary, error: ${a}, info: ${u}`),this.setState({error:a,errorInfo:u})}render(){const{slackChannel:a,children:u}=this.props,{error:f}=this.state;return f?t.createElement(wt,{title:"Something Went Wrong",error:f},t.createElement(Xr,{slackChannel:a})):u}},ln=(0,i.Z)(n=>({noPadding:{padding:0,"&:last-child":{paddingBottom:0}},header:{padding:n.spacing(2,2,2,2.5)},headerTitle:{fontWeight:700},headerSubheader:{paddingTop:n.spacing(1)},headerAvatar:{},headerAction:{},headerContent:{},subheader:{display:"flex"}}),{name:"BackstageInfoCard"}),cn=(0,Ut.Z)(n=>({root:{display:"inline-block",padding:n.spacing(8,8,0,0),float:"right"}}),{name:"BackstageInfoCardCardActionsTopRight"})(rr.Z),or={card:{flex:{display:"flex",flexDirection:"column"},fullHeight:{display:"flex",flexDirection:"column",height:"100%"},gridItem:{display:"flex",flexDirection:"column",height:"calc(100% - 10px)",marginBottom:"10px"}},cardContent:{fullHeight:{flex:1},gridItem:{flex:1}}};function zn(n){const{title:a,subheader:u,divider:f=!0,deepLink:y,slackChannel:R,errorBoundaryProps:b,variant:w,children:X,headerStyle:H,headerProps:ie,icon:me,action:Ce,actionsClassName:Le,actions:Oe,cardClassName:ut,actionsTopRight:bt,className:Yt,noPadding:Vt,titleTypographyProps:lt}=n,xt=ln();let Dt={},Qt={};w&&w.split(/[\s]+/g).forEach(Lt=>{Dt={...Dt,...or.card[Lt]},Qt={...Qt,...or.cardContent[Lt]}});const Bn=()=>t.createElement("div",{className:xt.headerSubheader},u&&t.createElement("div",{className:xt.subheader},u),me),dn=b||(R?{slackChannel:R}:{});return t.createElement(Pr.Z,{style:Dt,className:Yt},t.createElement(ar,{...dn},a&&t.createElement(tn.Z,{classes:{root:xt.header,title:xt.headerTitle,subheader:xt.headerSubheader,avatar:xt.headerAvatar,action:xt.headerAction,content:xt.headerContent},title:a,subheader:Bn(),action:Ce,style:{...H},titleTypographyProps:lt,...ie}),bt&&t.createElement(cn,null,bt),f&&t.createElement(sn.Z,null),t.createElement(In.Z,{className:Ze()(ut,{[xt.noPadding]:Vt}),style:Qt},X),Oe&&t.createElement(rr.Z,{className:Le},Oe),y&&t.createElement(Lr,{...y})))}var Ea=e(39307);const kr=(0,i.Z)(n=>({root:{position:"relative",lineHeight:0},overlay:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -60%)",fontSize:45,fontWeight:"bold",color:n.palette.textContrast},description:{fontSize:"100%",top:"50%",left:"50%",transform:"translate(-50%, -50%)",position:"absolute",wordBreak:"break-all",display:"inline-block"},circle:{width:"80%",transform:"translate(10%, 0)"},colorUnknown:{}}),{name:"BackstageGauge"}),Ir={fractional:!0,inverse:!1,unit:"%",max:100},Or=({palette:n,value:a,inverse:u,max:f})=>{if(isNaN(a))return"#ddd";const y=f||Ir.max,R=u?y-a:a;return R<y/3?n.status.error:R<y*(2/3)?n.status.warning:n.status.ok};function qr(n){const[a,u]=useState(null),{getColor:f=Or}=n,y=kr(n),{palette:R}=useTheme(),{value:b,fractional:w,inverse:X,unit:H,max:ie,description:me}={...Ir,...n},Ce=w?Math.round(b*ie):b,Le=ie!==100?Math.round(b):Ce,[Oe,ut]=useState(!1);return useEffect(()=>{const bt=a,Yt=()=>ut(!0),Vt=()=>ut(!1);return bt&&me?(bt.addEventListener("mouseenter",Yt),bt.addEventListener("mouseleave",Vt),()=>{bt.removeEventListener("mouseenter",Yt),bt.removeEventListener("mouseleave",Vt)}):()=>{ut(!1)}},[me,a]),React.createElement("div",{ref:u,className:y.root},React.createElement(Circle,{strokeLinecap:"butt",percent:Ce,strokeWidth:12,trailWidth:12,strokeColor:f({palette:R,value:Le,inverse:X,max:ie}),className:y.circle}),me&&Oe?React.createElement("div",{className:y.description},me):React.createElement("div",{className:y.overlay},isNaN(b)?"N/A":`${Le}${H}`))}const Hn=(0,i.Z)({root:{height:"100%",width:250}},{name:"BackstageGaugeCard"});function va(n){const a=Hn(n),{title:u,subheader:f,progress:y,inverse:R,deepLink:b,description:w,icon:X,variant:H,getColor:ie}=n,me={inverse:R,description:w,getColor:ie,value:y};return React.createElement("div",{className:a.root},React.createElement(InfoCard,{title:u,subheader:f,deepLink:b,variant:H,icon:X},React.createElement(Gauge,{...me})))}function xr(n){const{value:a,getColor:u=getProgressColor}=n,{palette:f}=useTheme();if(isNaN(a))return null;let y=Math.round(a*100*100)/100;y>100&&(y=100);const R=u({palette:f,value:y,inverse:!1,max:100});return React.createElement(Tooltip,{title:`${y}%`},React.createElement("span",null,React.createElement(Line,{percent:y,strokeWidth:4,trailWidth:4,strokeColor:R})))}var br=e(21324),sr=e(7089),On=e(1292),yn=e(42494),Dr=e(74603),ir=e(12231),_r=e(73698),Vn=e(72379);const Fr=(0,i.Z)(()=>(0,p.Z)({icon:{position:"absolute",right:"4px",pointerEvents:"none"}}),{name:"BackstageClosedDropdown"});var Br=()=>{const n=Fr();return t.createElement(Vn.Z,{className:n.icon,fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.createElement("path",{d:"M7.5 8L6 9.5L12.0703 15.5703L18.1406 9.5L16.6406 8L12.0703 12.5703L7.5 8Z",fill:"#616161"}))};const Mr=(0,i.Z)(()=>(0,p.Z)({icon:{position:"absolute",right:"4px",pointerEvents:"none"}}),{name:"BackstageOpenedDropdown"});var Nr=()=>{const n=Mr();return t.createElement(Vn.Z,{className:n.icon,fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.createElement("path",{d:"M16.5 16L18 14.5L11.9297 8.42969L5.85938 14.5L7.35938 16L11.9297 11.4297L16.5 16Z",fill:"#616161"}))};const Zr=(0,Ut.Z)(n=>(0,p.Z)({root:{"label + &":{marginTop:n.spacing(3)}},input:{borderRadius:4,position:"relative",backgroundColor:n.palette.background.paper,border:"1px solid #ced4da",fontSize:16,padding:"10px 26px 10px 12px",transition:n.transitions.create(["border-color","box-shadow"]),fontFamily:"Helvetica Neue","&:focus":{background:n.palette.background.paper,borderRadius:4}}}),{name:"BackstageSelectInputBase"})(Dr.Z),Ur=(0,i.Z)(n=>(0,p.Z)({formControl:{margin:`${n.spacing(1)} 0px`,maxWidth:300},label:{transform:"initial",fontWeight:"bold",fontSize:14,fontFamily:n.typography.fontFamily,color:n.palette.text.primary,"&.Mui-focused":{color:n.palette.text.primary}},chips:{display:"flex",flexWrap:"wrap"},chip:{margin:2},checkbox:{},root:{display:"flex",flexDirection:"column"}}),{name:"BackstageSelect"});function lr(n){const{multiple:a,items:u,label:f,placeholder:y,selected:R,onChange:b,triggerReset:w,native:X=!1,disabled:H=!1}=n,ie=Ur(),[me,Ce]=(0,t.useState)(R||(a?[]:"")),[Le,Oe]=(0,t.useState)(!1);(0,t.useEffect)(()=>{Ce(a?[]:"")},[w,a]),(0,t.useEffect)(()=>{R!==void 0&&Ce(R)},[R]);const ut=lt=>{Ce(lt.target.value),b(lt.target.value)},bt=lt=>{if(H){lt.preventDefault();return}Oe(xt=>a&&!(lt.target instanceof HTMLElement)?!0:!xt)},Yt=()=>{Oe(!1)},Vt=lt=>()=>{const xt=me.filter(Dt=>Dt!==lt);Ce(xt),b(xt)};return t.createElement("div",{className:ie.root},t.createElement(ue.Z,{variant:"button"},f),t.createElement(On.Z,{onClickAway:Yt},t.createElement(yn.Z,{className:ie.formControl},t.createElement(_r.Z,{value:me,native:X,disabled:H,"data-testid":"select",displayEmpty:!0,multiple:a,onChange:ut,onClick:bt,open:Le,input:t.createElement(Zr,null),renderValue:lt=>{var xt;return a&&me.length!==0?t.createElement("div",{className:ie.chips},lt.map(Dt=>{var Qt,Bn;return t.createElement(sr.Z,{key:(Qt=u.find(dn=>dn.value===Dt))==null?void 0:Qt.value,label:(Bn=u.find(dn=>dn.value===Dt))==null?void 0:Bn.label,clickable:!0,onDelete:Vt(Dt),className:ie.chip})})):t.createElement(ue.Z,null,me.length===0?y||"":(xt=u.find(Dt=>Dt.value===lt))==null?void 0:xt.label)},IconComponent:()=>Le?t.createElement(Nr,null):t.createElement(Br,null),MenuProps:{anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},getContentAnchorEl:null}},y&&!a&&t.createElement(ir.Z,{value:[]},y),X?u&&u.map(lt=>t.createElement("option",{value:lt.value,key:lt.value},lt.label)):u&&u.map(lt=>t.createElement(ir.Z,{key:lt.value,value:lt.value},a&&t.createElement(br.Z,{color:"primary",checked:me.includes(lt.value)||!1,className:ie.checkbox}),lt.label))))))}const cr=()=>{},ta=t.createContext({stepperLength:0,stepIndex:0,setStepIndex:cr,stepHistory:[],setStepHistory:cr,onStepChange:cr});function T(n){const{children:a,elevated:u,onStepChange:f,activeStep:y=0}=n,[R,b]=useState(y),[w,X]=useState([0]);useEffect(()=>{b(y)},[y]);const H=[];let ie;return Children.forEach(a,me=>{isValidElement(me)&&(me.props.end?ie=me:H.push(me))}),React.createElement(React.Fragment,null,React.createElement(ta.Provider,{value:{stepIndex:R,setStepIndex:b,stepHistory:w,setStepHistory:X,onStepChange:f,stepperLength:Children.count(a)}},React.createElement(MuiStepper,{activeStep:R,orientation:"vertical",elevation:u?2:0},H)),R>=Children.count(a)-1&&ie)}const I=(0,i.Z)(n=>({root:{marginTop:n.spacing(3),"& button":{marginRight:n.spacing(1)}}}),{name:"BackstageSimpleStepperFooter"}),U=({text:n,handleClick:a})=>React.createElement(Button,{onClick:a},n||"Reset"),K=({text:n,handleClick:a,disabled:u,last:f,stepIndex:y})=>React.createElement(Button,{variant:"contained",color:"primary",disabled:u,"data-testid":`nextButton-${y}`,onClick:a},n||(f?"Finish":"Next")),k=({text:n,handleClick:a,disabled:u,stepIndex:f})=>React.createElement(Button,{onClick:a,"data-testid":`backButton-${f}`,disabled:u},n||"Back"),Q=({actions:n={},children:a})=>{const u=I(),{stepperLength:f,stepIndex:y,setStepIndex:R,stepHistory:b,setStepHistory:w,onStepChange:X}=useContext(VerticalStepperContext),H=(Le,Oe)=>{Oe&&Oe(),X&&X(y,Le),R(Le)},ie=()=>{const Le=n.nextStep?n.nextStep(y,f-1):y+1;H(Le,n.onNext),w([...b,Le])},me=()=>{b.pop(),H(b[b.length-1],n.onBack),w([...b])},Ce=()=>{H(0,n.onRestart),w([0])};return React.createElement("div",{className:u.root},[void 0,!0].includes(n.showBack)&&y!==0&&React.createElement(k,{text:n.backText,handleClick:me,disabled:y===0,stepIndex:y}),[void 0,!0].includes(n.showNext)&&React.createElement(K,{text:n.nextText,handleClick:ie,disabled:!!f&&y>=f||!!n.canNext&&!n.canNext(),stepIndex:y}),n.showRestart&&y!==0&&React.createElement(U,{text:n.restartText,handleClick:Ce,stepIndex:y}),a)},se=(0,i.Z)(n=>({end:{padding:n.spacing(3)}}),{name:"SimpleStepperStep"});function m(n){const{title:a,children:u,end:f,actions:y,...R}=n,b=se();return f?React.createElement("div",{className:b.end},React.createElement(Typography,{variant:"h6"},a),u,React.createElement(SimpleStepperFooter,{actions:{...y||{},showNext:!1}})):React.createElement(MuiStep,{...R},React.createElement(StepLabel,null,React.createElement(Typography,{variant:"h6"},a)),React.createElement(StepContent,null,u,React.createElement(SimpleStepperFooter,{actions:y})))}const C=(0,i.Z)(n=>({status:{fontWeight:500,"&::before":{width:"0.7em",height:"0.7em",display:"inline-block",marginRight:8,borderRadius:"50%",content:'""'}},ok:{"&::before":{backgroundColor:n.palette.status.ok}},warning:{"&::before":{backgroundColor:n.palette.status.warning}},error:{"&::before":{backgroundColor:n.palette.status.error}},pending:{"&::before":{backgroundColor:n.palette.status.pending}},running:{"&::before":{backgroundColor:n.palette.status.running}},aborted:{"&::before":{backgroundColor:n.palette.status.aborted}}}),{name:"BackstageStatus"});function N(n){const a=C(n);return React.createElement("span",{className:classNames(a.status,a.ok),"aria-label":"Status ok","aria-hidden":"true",...n})}function G(n){const a=C(n);return React.createElement("span",{className:classNames(a.status,a.warning),"aria-label":"Status warning","aria-hidden":"true",...n})}function q(n){const a=C(n);return React.createElement("span",{className:classNames(a.status,a.error),"aria-label":"Status error","aria-hidden":"true",...n})}function he(n){const a=C(n);return React.createElement("span",{className:classNames(a.status,a.pending),"aria-label":"Status pending","aria-hidden":"true",...n})}function ge(n){const a=C(n);return React.createElement("span",{className:classNames(a.status,a.running),"aria-label":"Status running","aria-hidden":"true",...n})}function Re(n){const a=C(n);return React.createElement("span",{className:classNames(a.status,a.aborted),"aria-label":"Status aborted","aria-hidden":"true",...n})}var ze=e(74600),Be=e(15584);const et=n=>(0,p.Z)({root:{fontWeight:"bolder",whiteSpace:"nowrap",paddingRight:n.spacing(4),border:"0",verticalAlign:"top"}}),mt={root:{border:"0",verticalAlign:"top"}},it=n=>(0,p.Z)({root:{listStyle:"none",margin:n.spacing(0,0,-1,0),padding:"0"}}),rt=n=>(0,p.Z)({root:{padding:n.spacing(0,0,1,0)},random:{}}),Pt=(0,Ut.Z)(et,{name:"BackstageMetadataTableTitleCell"})(Be.Z),vt=(0,Ut.Z)(mt,{name:"BackstageMetadataTableCell"})(Be.Z),Mt=({dense:n,children:a})=>React.createElement(Table,{size:n?"small":"medium"},React.createElement(TableBody,null,a)),Cn=({title:n,children:a,...u})=>React.createElement(TableRow,null,n&&React.createElement(Pt,null,n),React.createElement(vt,{colSpan:n?1:2,...u},a)),Tn=(0,Ut.Z)(it,{name:"BackstageMetadataTableList"})(({classes:n,children:a})=>t.createElement("ul",{className:n.root},a)),ur=(0,Ut.Z)(rt,{name:"BackstageMetadataTableListItem"})(({classes:n,children:a})=>t.createElement("li",{className:n.root},a)),$r=(0,p.Z)({root:{margin:"0 0",listStyleType:"none"}}),na=n=>(0,p.Z)({root:{...$r.root,paddingLeft:n.spacing(1)}}),ra=(0,Ut.Z)($r,{name:"BackstageStructuredMetadataTableList"})(({classes:n,children:a})=>t.createElement(Tn,{classes:n},a)),xn=(0,Ut.Z)(na,{name:"BackstageStructuredMetadataTableNestedList"})(({classes:n,children:a})=>t.createElement(Tn,{classes:n},a));function vo(n,a){const u=n.map((f,y)=>React.createElement(MetadataListItem,{key:y},Ra(f)));return a?React.createElement(xn,null,u):React.createElement(ra,null,u)}function Ao(n,a,u){const f=Object.keys(n).map(y=>{const R=Ra(n[y],!0),b=u&&u.titleFormat?u.titleFormat(y):startCase(y);return React.createElement(MetadataListItem,{key:y},`${b}: `,R)});return a?React.createElement(xn,null,f):React.createElement(ra,null,f)}function Ra(n,a,u){return React.isValidElement(n)?React.createElement(Fragment,null,n):typeof n=="object"&&!Array.isArray(n)?Ao(n,a,u):Array.isArray(n)?vo(n,u):typeof n=="boolean"?React.createElement(Fragment,null,n?"\u2705":"\u274C"):React.createElement(Fragment,null,n)}const Ro=({value:n,options:a})=>React.createElement(Fragment,null,Ra(n,a)),So=({title:n,value:a,options:u})=>React.createElement(MetadataTableItem,{title:u&&u.titleFormat?u.titleFormat(n):startCase(n)},React.createElement(Ro,{value:a,options:u}));function Co(n,a){return Object.keys(n).map(u=>React.createElement(So,{key:u,title:u,value:n[u],options:a}))}function Yi(n){const{metadata:a,dense:u=!0,options:f}=n,y=Co(a,f||{});return React.createElement(MetadataTable,{dense:u},y)}var To=e(49429),Po=e(86136),Ma=e(79784),dr=e(76635),Lo=e(19126),aa=e.n(Lo),Io=e(48760);function Oo(n){return aa().stringify(n,{strictNullHandling:!0})}function Na(n){return aa().parse(n,{ignoreQueryPrefix:!0,strictNullHandling:!0})}function Za(n,a){return Na(n)[a]}function xo(n,a,u){const f={...Na(n),[a]:u};return Oo(f)}function bo(n,a=250){const[u,f]=(0,o.lr)(),y=u.toString(),[R,b]=(0,t.useState)(Za(y,n));return(0,t.useEffect)(()=>{const w=Za(y,n);b(X=>(0,dr.isEqual)(w,X)?X:w)},[y,b,n]),(0,Io.Z)(()=>{const w=xo(y,n,R);y!==w&&f(w,{replace:!0})},a,[f,R,y,n]),[R,b]}const Do={url:"https://github.com/backstage/backstage/issues",items:[{title:"Support Not Configured",icon:"warning",links:[{title:"Add `app.support` config key",url:"https://github.com/andrewthauer/backstage/blob/master/app-config.yaml"}]}]};function Ua(){const a=(0,l.useApiHolder)().get(l.configApiRef),u=a==null?void 0:a.getOptionalConfig("app.support");return u?{url:u.getString("url"),items:u.getConfigArray("items").flatMap(f=>{var y;return{title:f.getString("title"),icon:f.getOptionalString("icon"),links:((y=f.getOptionalConfigArray("links"))!=null?y:[]).flatMap(R=>({url:R.getString("url"),title:R.getString("title")}))}})}:Do}var Fo=e(80079);function En(n,a){const f=(0,l.useApp)().getSystemIcon(n);return f?t.createElement(f,{...a}):t.createElement(Fo.Z,{...a})}function Qi(n){return En("brokenImage",n)}function Xi(n){return En("catalog",n)}function ki(n){return En("chat",n)}function qi(n){return En("dashboard",n)}function _i(n){return En("docs",n)}function el(n){return En("email",n)}function tl(n){return En("github",n)}function nl(n){return En("group",n)}function oa(n){return En("help",n)}function rl(n){return En("user",n)}function al(n){return En("warning",n)}const Bo=(0,i.Z)({popoverList:{minWidth:260,maxWidth:400}},{name:"BackstageSupportButton"}),Mo=({icon:n})=>{var f;const a=(0,l.useApp)(),u=n&&(f=a.getSystemIcon(n))!=null?f:oa;return t.createElement(u,null)},No=({link:n})=>{var a;return t.createElement(x,{to:n.url},(a=n.title)!=null?a:n.url)},Zo=({item:n})=>{var a;return t.createElement(Ie.Z,null,t.createElement(Po.Z,null,t.createElement(Mo,{icon:n.icon})),t.createElement(Me.Z,{primary:n.title,secondary:(a=n.links)==null?void 0:a.reduce((u,f,y)=>[...u,y>0&&t.createElement("br",{key:y}),t.createElement(No,{link:f,key:f.url})],[])}))};function Uo(n){const{title:a,children:u}=n,{items:f}=Ua(),[y,R]=(0,t.useState)(!1),[b,w]=(0,t.useState)(null),X=Bo(),H=(0,xe.Z)(Ce=>Ce.breakpoints.down("sm")),ie=Ce=>{w(Ce.currentTarget),R(!0)},me=()=>{R(!1)};return t.createElement(t.Fragment,null,t.createElement(_t.Z,{display:"flex",ml:1},H?t.createElement(F.Z,{color:"primary",size:"small",onClick:ie,"data-testid":"support-button"},t.createElement(oa,null)):t.createElement(c.Z,{"data-testid":"support-button",color:"primary",onClick:ie,startIcon:t.createElement(oa,null)},"Support")),t.createElement(Ma.ZP,{"data-testid":"support-button-popover",open:y,anchorEl:b,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},onClose:me},t.createElement(Ee.Z,{className:X.popoverList},a&&t.createElement(Ie.Z,{alignItems:"flex-start"},t.createElement(ue.Z,{variant:"subtitle1"},a)),t.Children.map(u,(Ce,Le)=>t.createElement(Ie.Z,{alignItems:"flex-start",key:`child-${Le}`},Ce)),f&&f.map((Ce,Le)=>t.createElement(Zo,{item:Ce,key:`item-${Le}`}))),t.createElement(To.Z,null,t.createElement(c.Z,{color:"primary",onClick:me},"Close"))))}var Sa=e(18671),un=e(10289);const sa=72,$a=24,wa=18,Ht={drawerWidthClosed:sa,drawerWidthOpen:224,defaultOpenDelayMs:100,defaultCloseDelayMs:0,defaultFadeDuration:200,logoHeight:32,iconContainerWidth:sa,iconSize:sa-$a*2,iconPadding:$a,selectedIndicatorWidth:3,userBadgePadding:wa,userBadgeDiameter:sa-wa*2,mobileSidebarHeight:56},Ca={drawerWidthClosed:0,drawerWidthOpen:202,defaultOpenDelayMs:Ht.defaultOpenDelayMs+200},ol="@backstage/core/sidebar-intro-dismissed",wr=(0,t.createContext)({isOpen:!1,setOpen:()=>{}}),Wa=(0,t.createContext)({isHoveredOn:!1,setIsHoveredOn:()=>{}});var ia;(function(n){const a="sidebarPinState";n.SIDEBAR_PIN_STATE=a})(ia||(ia={}));const za={getSidebarPinState(){let n;try{n=JSON.parse(window.localStorage.getItem(ia.SIDEBAR_PIN_STATE)||"true")}catch{return!0}return!!n},setSidebarPinState(n){return window.localStorage.setItem(ia.SIDEBAR_PIN_STATE,JSON.stringify(n))}},$o=(0,i.Z)(n=>({root:{width:"100%",transition:"padding-left 0.1s ease-out",isolation:"isolate",[n.breakpoints.up("sm")]:{paddingLeft:({isPinned:a})=>a?Ht.drawerWidthOpen:Ht.drawerWidthClosed},[n.breakpoints.down("xs")]:{paddingBottom:Ht.mobileSidebarHeight}},content:{zIndex:0,isolation:"isolate","&:focus":{outline:0}}}),{name:"BackstageSidebarPage"}),fr=(0,t.createContext)({isPinned:!0,toggleSidebarPinState:()=>{},isMobile:!1}),Ha=(0,t.createContext)({content:{contentRef:void 0}});function wo(n){const[a,u]=(0,t.useState)(()=>za.getSidebarPinState()),f=(0,t.useRef)(null),y=(0,t.useMemo)(()=>({content:{contentRef:f}}),[f]);(0,t.useEffect)(()=>{za.setSidebarPinState(a)},[a]);const R=(0,xe.Z)(X=>X.breakpoints.down("xs"),{noSsr:!0}),b=()=>u(!a),w=$o({isPinned:a});return t.createElement(fr.Provider,{value:{isPinned:a,toggleSidebarPinState:b,isMobile:R}},t.createElement(Ha.Provider,{value:y},t.createElement("div",{className:w.root},n.children)))}function Ta(){const{content:n}=(0,t.useContext)(Ha);return{focusContent:(0,t.useCallback)(()=>{var u,f;(f=(u=n==null?void 0:n.contentRef)==null?void 0:u.current)==null||f.focus()},[n]),contentRef:n==null?void 0:n.contentRef}}var Wo=e(50023),zo=e(4190),Ho=e(87685),Vo=e(44882),jo=e(57998);const Go=(0,i.Z)(n=>({root:{flexGrow:0,margin:n.spacing(0,2),color:n.palette.navigation.color},selected:{color:`${n.palette.navigation.selectedColor}!important`,borderTop:`solid ${Ht.selectedIndicatorWidth}px ${n.palette.navigation.indicator}`,marginTop:"-1px"},label:{display:"none"}})),Ko=n=>{const{to:a,label:u,icon:f,value:y}=n,R=Go(),b=(0,un.TH)(),{selectedMenuItemIndex:w,setSelectedMenuItemIndex:X}=(0,t.useContext)(Ga),H=(me,Ce)=>{X(Ce===w?-1:Ce)},ie=y===w&&w>=0||y!==w&&!(w>=0)&&a===b.pathname;return t.createElement(jo.Z,{label:u,icon:f,component:x,to:a||b.pathname,onChange:H,value:y,selected:ie,classes:R})},Va=n=>{const{children:a,to:u,label:f,icon:y,value:R}=n,{isMobile:b}=(0,t.useContext)(fr);return b?t.createElement(Ko,{to:u,label:f,icon:y,value:R}):t.createElement(t.Fragment,null,a)},ja=(0,i.Z)(n=>({root:{position:"fixed",backgroundColor:n.palette.navigation.background,color:n.palette.navigation.color,bottom:0,left:0,right:0,zIndex:n.zIndex.snackbar,borderTop:"1px solid #383838"},overlay:{background:n.palette.navigation.background,width:"100%",bottom:`${Ht.mobileSidebarHeight}px`,height:`calc(100% - ${Ht.mobileSidebarHeight}px)`,flex:"0 1 auto",overflow:"auto"},overlayHeader:{display:"flex",color:n.palette.bursts.fontColor,alignItems:"center",justifyContent:"space-between",padding:n.spacing(2,3)},overlayHeaderClose:{color:n.palette.bursts.fontColor},marginMobileSidebar:{marginBottom:`${Ht.mobileSidebarHeight}px`}})),Jo=n=>(0,dr.orderBy)(n,({props:{priority:a}})=>Number.isInteger(a)?a:-1,"desc"),Yo=t.createElement(Va).type,Qo=({children:n,label:a="Menu",open:u,onClose:f})=>{const y=ja();return t.createElement(zo.ZP,{anchor:"bottom",open:u,onClose:f,ModalProps:{BackdropProps:{classes:{root:y.marginMobileSidebar}}},classes:{root:y.marginMobileSidebar,paperAnchorBottom:y.overlay}},t.createElement(_t.Z,{className:y.overlayHeader},t.createElement(ue.Z,{variant:"h3"},a),t.createElement(F.Z,{onClick:f,classes:{root:y.overlayHeaderClose}},t.createElement(Ho.Z,null))),t.createElement(_t.Z,null,n))},Ga=(0,t.createContext)({selectedMenuItemIndex:-1,setSelectedMenuItemIndex:()=>{}}),Xo=n=>{const{children:a}=n,u=ja(),f=(0,un.TH)(),[y,R]=(0,t.useState)(-1);(0,t.useEffect)(()=>{R(-1)},[f.pathname]);let b=(0,l.useElementFilter)(a,X=>X.getElements().filter(H=>H.type===Yo));if(a)b.length?b=Jo(b):b.push(t.createElement(Va,{key:"default_menu",icon:t.createElement(Vo.Z,null)},a));else return null;const w=y>=0&&!b[y].props.to;return t.createElement(wr.Provider,{value:{isOpen:!0,setOpen:()=>{}}},t.createElement(Ga.Provider,{value:{selectedMenuItemIndex:y,setSelectedMenuItemIndex:R}},t.createElement(Qo,{label:b[y]&&b[y].props.label,open:w,onClose:()=>R(-1)},b[y]&&b[y].props.children),t.createElement(Wo.Z,{className:u.root,"data-testid":"mobile-sidebar-root"},b)))},Ka=(0,i.Z)(n=>({drawer:{display:"flex",flexFlow:"column nowrap",alignItems:"flex-start",position:"fixed",left:0,top:0,bottom:0,zIndex:n.zIndex.appBar,background:n.palette.navigation.background,overflowX:"hidden",msOverflowStyle:"none",scrollbarWidth:"none",width:Ht.drawerWidthClosed,transition:n.transitions.create("width",{easing:n.transitions.easing.sharp,duration:n.transitions.duration.shortest}),"& > *":{flexShrink:0},"&::-webkit-scrollbar":{display:"none"}},drawerOpen:{width:Ht.drawerWidthOpen,transition:n.transitions.create("width",{easing:n.transitions.easing.sharp,duration:n.transitions.duration.shorter})},visuallyHidden:{top:0,position:"absolute",zIndex:1e3,transform:"translateY(-200%)","&:focus":{transform:"translateY(5px)"}}}),{name:"BackstageSidebar"});var rn;(function(n){n[n.Closed=0]="Closed";const u=0+1;n[n.Idle=u]="Idle";const f=u+1;n[n.Open=f]="Open"})(rn||(rn={}));const ko=n=>{const{openDelayMs:a=Ht.defaultOpenDelayMs,closeDelayMs:u=Ht.defaultCloseDelayMs,disableExpandOnHover:f,children:y}=n,R=Ka(),b=(0,xe.Z)(bt=>bt.breakpoints.down("md"),{noSsr:!0}),[w,X]=(0,t.useState)(rn.Closed),H=(0,t.useRef)(),{isPinned:ie,toggleSidebarPinState:me}=(0,t.useContext)(fr),Ce=()=>{ie||f||(H.current&&(clearTimeout(H.current),H.current=void 0),w!==rn.Open&&!b&&(H.current=window.setTimeout(()=>{H.current=void 0,X(rn.Open)},a),X(rn.Idle)))},Le=()=>{ie||f||(H.current&&(clearTimeout(H.current),H.current=void 0),w===rn.Idle?X(rn.Closed):w===rn.Open&&(H.current=window.setTimeout(()=>{H.current=void 0,X(rn.Closed)},u)))},Oe=w===rn.Open&&!b||ie,ut=bt=>{bt?(X(rn.Open),me()):(X(rn.Closed),me())};return t.createElement("div",{style:{}},t.createElement(_o,null),t.createElement(wr.Provider,{value:{isOpen:Oe,setOpen:ut}},t.createElement("div",{className:R.root,"data-testid":"sidebar-root",onMouseEnter:f?()=>{}:Ce,onFocus:f?()=>{}:Ce,onMouseLeave:f?()=>{}:Le,onBlur:f?()=>{}:Le},t.createElement("div",{className:Ze()(R.drawer,{[R.drawerOpen]:Oe})},y))))},qo=n=>{const{children:a,openDelayMs:u,closeDelayMs:f,disableExpandOnHover:y}=n,{isMobile:R}=(0,t.useContext)(fr);return R?t.createElement(Xo,null,a):t.createElement(ko,{openDelayMs:u,closeDelayMs:f,disableExpandOnHover:y},a)};function _o(){const{focusContent:n,contentRef:a}=Ta(),u=Ka();return(a==null?void 0:a.current)?t.createElement(c.Z,{onClick:n,variant:"contained",className:Ze()(u.visuallyHidden)},"Skip to content"):null}function Ja(n,a){const u=new URLSearchParams(a.search).toString(),f=aa().parse(u),y=new URLSearchParams(n.search).toString(),R=aa().parse(y);return(0,dr.isEqual)(a.pathname,n.pathname)&&(0,dr.isMatch)(R,f)}const es=(0,i.Z)(n=>({item:{height:48,width:"100%","&:hover":{background:"#6f6f6f",color:n.palette.navigation.selectedColor},display:"flex",alignItems:"center",color:n.palette.navigation.color,padding:20,cursor:"pointer",position:"relative",background:"none",border:"none"},itemContainer:{width:"100%"},selected:{background:"#6f6f6f",color:"#FFF"},label:{margin:14,marginLeft:7,fontSize:14},dropdownArrow:{position:"absolute",right:21},dropdown:{display:"flex",flexDirection:"column",alignItems:"end"},dropdownItem:{width:"100%",padding:"10px 0 10px 0"},textContent:{color:n.palette.navigation.color,display:"flex",justifyContent:"center",[n.breakpoints.down("xs")]:{display:"block",paddingLeft:n.spacing(4)},fontSize:"14px"}})),sl=n=>{const{title:a,to:u,icon:f,dropdownItems:y}=n,R=es(),{setIsHoveredOn:b}=useContext(SidebarItemWithSubmenuContext),w=()=>{b(!1)},X=useResolvedPath(u),H=useLocation();let ie=isLocationMatch(H,X);const[me,Ce]=useState(!1),Le=()=>{Ce(!me)};return y!==void 0?(y.some(Oe=>{const ut=resolvePath(Oe.to);return ie=isLocationMatch(H,ut),ie}),React.createElement("div",{className:R.itemContainer},React.createElement("button",{onClick:Le,onTouchStart:Oe=>Oe.stopPropagation(),className:classnames(R.item,ie?R.selected:void 0)},React.createElement(f,{fontSize:"small"}),React.createElement(Typography,{variant:"subtitle1",className:R.label},a),me?React.createElement(ArrowDropUpIcon,{className:R.dropdownArrow}):React.createElement(ArrowDropDownIcon,{className:R.dropdownArrow})),y&&me&&React.createElement("div",{className:R.dropdown},y.map((Oe,ut)=>React.createElement(Link,{component:NavLink,to:Oe.to,underline:"none",className:R.dropdownItem,onClick:w,onTouchStart:bt=>bt.stopPropagation(),key:ut},React.createElement(Typography,{className:R.textContent},Oe.title)))))):React.createElement("div",{className:R.itemContainer},React.createElement(Link,{component:NavLink,to:u,underline:"none",className:classnames(R.item,ie?R.selected:void 0),onClick:w,onTouchStart:Oe=>Oe.stopPropagation()},React.createElement(f,{fontSize:"small"}),React.createElement(Typography,{variant:"subtitle1",className:R.label},a)))},ts=n=>(0,i.Z)(a=>{var u,f;return{root:{zIndex:1e3,position:"relative",overflow:"visible",width:a.spacing(7)+1},drawer:{display:"flex",flexFlow:"column nowrap",alignItems:"flex-start",position:"fixed",[a.breakpoints.up("sm")]:{marginLeft:n.left,transition:a.transitions.create("margin-left",{easing:a.transitions.easing.sharp,duration:a.transitions.duration.shortest})},top:0,bottom:0,padding:0,background:(f=(u=a.palette.navigation.submenu)==null?void 0:u.background)!=null?f:"#404040",overflowX:"hidden",msOverflowStyle:"none",scrollbarWidth:"none",cursor:"default",width:Ca.drawerWidthClosed,transitionDelay:`${Ca.defaultOpenDelayMs}ms`,"& > *":{flexShrink:0},"&::-webkit-scrollbar":{display:"none"}},drawerOpen:{width:Ca.drawerWidthOpen,[a.breakpoints.down("xs")]:{width:"100%",position:"relative",paddingLeft:a.spacing(3),left:0,top:0}},title:{fontSize:24,fontWeight:500,color:"#FFF",padding:20,[a.breakpoints.down("xs")]:{display:"none"}}}}),ns=n=>{const{isOpen:a}=(0,t.useContext)(wr),u=a?Ht.drawerWidthOpen:Ht.drawerWidthClosed,f=ts({left:u})(),{isHoveredOn:y}=(0,t.useContext)(Wa),[R,b]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{b(y)},[y]),t.createElement("div",{className:Ze()(f.drawer,{[f.drawerOpen]:R})},t.createElement(ue.Z,{variant:"h5",className:f.title},n.title),n.children)};var la=e(76600),rs=e(26739),as=e(98989),os=e(59797),ss=e(83543);const is=(0,i.Z)({iconContainer:{display:"flex",position:"relative",width:"100%"},arrow1:{right:"6px",position:"absolute"}}),il=()=>{const n=is();return React.createElement("div",{className:n.iconContainer},React.createElement("div",{className:n.arrow1},React.createElement(ArrowBackIosIcon,{style:{fontSize:"12px"}})),React.createElement("div",null,React.createElement(ArrowBackIosIcon,{style:{fontSize:"12px"}})))};var ll=null;const ls=(0,i.Z)({iconContainer:{display:"flex",position:"relative",width:"100%"},arrow1:{right:"6px",position:"absolute"}}),cl=()=>{const n=ls();return React.createElement("div",{className:n.iconContainer},React.createElement("div",{className:n.arrow1},React.createElement(ArrowForwardIosIcon,{style:{fontSize:"12px"}})),React.createElement("div",null,React.createElement(ArrowForwardIosIcon,{style:{fontSize:"12px"}})))};var ul=null;const ca=(0,i.Z)(n=>{var R,b,w,X;const{selectedIndicatorWidth:a,drawerWidthClosed:u,drawerWidthOpen:f,iconContainerWidth:y}=Ht;return{root:{color:n.palette.navigation.color,display:"flex",flexFlow:"row nowrap",alignItems:"center",height:48,cursor:"pointer"},buttonItem:{background:"none",border:"none",width:"100%",margin:0,padding:0,textAlign:"inherit",font:"inherit"},closed:{width:u,justifyContent:"center"},open:{[n.breakpoints.up("sm")]:{width:f}},highlightable:{"&:hover":{background:(b=(R=n.palette.navigation.navItem)==null?void 0:R.hoverBackground)!=null?b:"#404040"}},highlighted:{background:(X=(w=n.palette.navigation.navItem)==null?void 0:w.hoverBackground)!=null?X:"#404040"},label:{fontWeight:"bold",whiteSpace:"nowrap",lineHeight:"auto",flex:"3 1 auto",width:"110px",overflow:"hidden","text-overflow":"ellipsis"},iconContainer:{boxSizing:"border-box",height:"100%",width:y,marginRight:-n.spacing(2),display:"flex",alignItems:"center",justifyContent:"center"},searchRoot:{marginBottom:12},searchField:{color:"#b5b5b5",fontWeight:"bold",fontSize:n.typography.fontSize},searchFieldHTMLInput:{padding:n.spacing(2,0,2)},searchContainer:{width:f-y},secondaryAction:{width:n.spacing(6),textAlign:"center",marginRight:n.spacing(1)},closedItemIcon:{width:"100%",justifyContent:"center"},submenuArrow:{display:"flex"},expandButton:{background:"none",border:"none",color:n.palette.navigation.color,width:"100%",cursor:"pointer",position:"relative",height:48},arrows:{position:"absolute",right:10},selected:{"&$root":{borderLeft:`solid ${a}px ${n.palette.navigation.indicator}`,color:n.palette.navigation.selectedColor},"&$closed":{width:u},"& $closedItemIcon":{paddingRight:a},"& $iconContainer":{marginLeft:-a}}}},{name:"BackstageSidebarItem"}),cs=(n,a)=>(0,l.useElementFilter)(n.props.children,u=>{let f=!1;return u.getElements().forEach(({props:{to:y,dropdownItems:R}})=>{if(!f){if(R==null?void 0:R.length){R.forEach(({to:b})=>f=f||Ja(a,(0,un.i3)(b)));return}y&&(f=Ja(a,(0,un.i3)(y)))}}),f},[a.pathname]);function Ya(n){return n.to===void 0}const us=t.createElement(ns).type,ds=t.forwardRef(function({to:a,end:u,style:f,className:y,activeStyle:R,caseSensitive:b,activeClassName:w="active","aria-current":X="page",...H},ie){let{pathname:me}=(0,un.TH)(),{pathname:Ce}=(0,un.WU)(a);b||(me=me.toLocaleLowerCase("en-US"),Ce=Ce.toLocaleLowerCase("en-US"));let Le=me===Ce;!Le&&!u&&(Le=me.startsWith(`${Ce}/`));const Oe=Le?X:void 0;return t.createElement(o.rU,{...H,to:a,ref:ie,"aria-current":Oe,style:{...f,...Le?R:void 0},className:Ze()([y,Le?w:void 0])})}),Qa=(0,t.forwardRef)((n,a)=>{const{icon:u,text:f,hasNotifications:y=!1,disableHighlight:R=!1,onClick:b,children:w,className:X,...H}=n,ie=ca(),{isOpen:me}=(0,t.useContext)(wr),Ce=t.createElement(rs.Z,{color:"secondary",variant:"dot",overlap:"circular",invisible:!y,className:Ze()({[ie.closedItemIcon]:!me})},t.createElement(u,{fontSize:"small"})),Le=t.createElement(t.Fragment,null,t.createElement("div",{"data-testid":"login-button",className:ie.iconContainer},Ce),f&&t.createElement(ue.Z,{variant:"subtitle2",className:ie.label},f),t.createElement("div",{className:ie.secondaryAction},w)),Oe=me?Le:Ce,ut={onClick:b,className:Ze()(X,ie.root,me?ie.open:ie.closed,Ya(n)&&ie.buttonItem,{[ie.highlightable]:!R})};return Ya(n)?t.createElement("button",{"aria-label":f,...ut,ref:a},Oe):t.createElement(ds,{...ut,activeClassName:ie.selected,to:n.to?n.to:"",ref:a,"aria-label":f||n.to,...H},Oe)}),fs=({children:n,...a})=>{const u=ca(),[f,y]=(0,t.useState)(!1),R=(0,un.TH)(),b=cs(n,R),w=(0,xe.Z)(me=>me.breakpoints.down("sm")),X=()=>{y(!0)},H=()=>{y(!1)},ie=()=>w?f?t.createElement(os.Z,{fontSize:"small",className:u.submenuArrow}):t.createElement(ss.Z,{fontSize:"small",className:u.submenuArrow}):!f&&t.createElement(as.Z,{fontSize:"small",className:u.submenuArrow});return t.createElement(Wa.Provider,{value:{isHoveredOn:f,setIsHoveredOn:y}},t.createElement("div",{"data-testid":"item-with-submenu",onMouseLeave:H,onTouchStart:f?H:X,onMouseEnter:X,className:Ze()(f&&u.highlighted)},t.createElement(Qa,{className:b?u.selected:"",...a},ie()),f&&n))},Xa=(0,t.forwardRef)((n,a)=>{const[u]=(0,l.useElementFilter)(n.children,f=>f.getElements().filter(y=>y.type===us));return u?t.createElement(fs,{...n},u):t.createElement(Qa,{...n,ref:a})});function dl(n){const[a,u]=useState(""),f=ca(),y=n.icon?n.icon:SearchIcon,R=()=>{n.onSearch(a),u("")},b=ie=>{ie.key==="Enter"&&(ie.preventDefault(),R())},w=ie=>{u(ie.target.value)},X=ie=>{ie.preventDefault(),ie.stopPropagation()},H=ie=>{R(),ie.preventDefault()};return React.createElement("div",{className:f.searchRoot},React.createElement(Xa,{icon:y,to:n.to,onClick:H,disableHighlight:!0},React.createElement(TextField,{placeholder:"Search",value:a,onClick:X,onChange:w,onKeyDown:b,className:f.searchContainer,InputProps:{disableUnderline:!0,className:f.searchField},inputProps:{className:f.searchFieldHTMLInput}})))}const fl=(0,la.Z)("div")({flex:1},{name:"BackstageSidebarSpace"}),ml=(0,la.Z)("div")({height:8},{name:"BackstageSidebarSpacer"}),ms=(0,la.Z)("hr")({height:1,width:"100%",background:"#383838",border:"none",margin:"12px 0px"},{name:"BackstageSidebarDivider"}),hs=n=>({overflowY:"auto","&::-webkit-scrollbar":{backgroundColor:n.palette.background.default,width:"5px",borderRadius:"5px"},"&::-webkit-scrollbar-thumb":{backgroundColor:n.palette.text.hint,borderRadius:"5px"}}),hl=(0,la.Z)("div")(({theme:n})=>{const a=hs(n);return{flex:"0 1 auto",overflowX:"hidden",width:"calc(100% - 5px)",minHeight:"48px",overflowY:"hidden","@media (hover: none)":a,"&:hover":a}}),gl=()=>{const n=ca(),{isOpen:a,setOpen:u}=useContext(SidebarContext);if(useMediaQuery(R=>R.breakpoints.down("md"),{noSsr:!0}))return null;const y=()=>{u(!a)};return React.createElement("button",{onClick:y,className:n.expandButton,"aria-label":"Expand Sidebar","data-testid":"sidebar-expand-button"},React.createElement("div",{className:n.arrows},a?React.createElement(DoubleArrowLeft,null):React.createElement(DoubleArrowRight,null)))},gs=(0,i.Z)(n=>({introCard:{color:"#b5b5b5",fontSize:12,width:Ht.drawerWidthOpen,marginTop:18,marginBottom:12,paddingLeft:Ht.iconPadding,paddingRight:Ht.iconPadding},introDismiss:{display:"flex",justifyContent:"flex-end",alignItems:"center",marginTop:12},introDismissLink:{color:"#dddddd",display:"flex",alignItems:"center",marginBottom:4,"&:hover":{color:n.palette.linkHover,transition:n.transitions.create("color",{easing:n.transitions.easing.sharp,duration:n.transitions.duration.shortest})}},introDismissText:{fontSize:"0.7rem",fontWeight:"bold",textTransform:"uppercase",letterSpacing:1},introDismissIcon:{width:18,height:18,marginRight:12}}),{name:"BackstageSidebarIntro"});function ps(n){const a=gs(),{text:u,onClose:f}=n,y=()=>f();return React.createElement("div",{className:a.introCard},React.createElement(Typography,{variant:"subtitle2"},u),React.createElement("div",{className:a.introDismiss},React.createElement(Link,{component:"button",onClick:y,underline:"none",className:a.introDismissLink},React.createElement(CloseIcon,{className:a.introDismissIcon}),React.createElement(Typography,{component:"span",className:a.introDismissText},"Dismiss"))))}const ka=n=>{const{text:a,onDismiss:u}=n,[f,y]=useState(!1),R=()=>{y(!0)};return React.createElement(Collapse,{in:!f,onExited:u},React.createElement(ps,{text:a,onClose:R}))},ys=null,Es="And your recently viewed plugins will pop up here!";function pl(n){const{isOpen:a}=useContext(SidebarContext),u={starredItemsDismissed:!1,recentlyViewedItemsDismissed:!1},[f,y]=useLocalStorage(SIDEBAR_INTRO_LOCAL_STORAGE),{starredItemsDismissed:R,recentlyViewedItemsDismissed:b}=f!=null?f:{},w=()=>{y(H=>({...u,...H,starredItemsDismissed:!0}))},X=()=>{y(H=>({...u,...H,recentlyViewedItemsDismissed:!0}))};return a?React.createElement(React.Fragment,null,!R&&React.createElement(React.Fragment,null,React.createElement(ka,{text:ys,onDismiss:w}),React.createElement(SidebarDivider,null)),!b&&React.createElement(ka,{text:Es,onDismiss:X})):null}const vs=(0,i.Z)(n=>({root:{gridArea:"pageContent",minWidth:0,paddingTop:n.spacing(3),paddingBottom:n.spacing(3),paddingLeft:n.spacing(2),paddingRight:n.spacing(2),[n.breakpoints.up("sm")]:{paddingLeft:n.spacing(3),paddingRight:n.spacing(3)}},stretch:{display:"flex",flexDirection:"column",flexGrow:1},noPadding:{padding:0}}),{name:"BackstageContent"});function qa(n){const{className:a,stretch:u,noPadding:f,children:y,...R}=n,{contentRef:b}=Ta(),w=vs();return t.createElement("article",{ref:b,tabIndex:-1,...R,className:Ze()(w.root,a,{[w.stretch]:u,[w.noPadding]:f})},y)}var As=e(6487),Rs=e(99152);const Ss=(0,i.Z)(n=>({tabsWrapper:{gridArea:"pageSubheader",backgroundColor:n.palette.background.paper,paddingLeft:n.spacing(3)},defaultTab:{padding:n.spacing(3,3),...n.typography.caption,textTransform:"uppercase",fontWeight:"bold",color:n.palette.text.secondary},selected:{color:n.palette.text.primary},tabRoot:{"&:hover":{backgroundColor:n.palette.background.default,color:n.palette.text.primary}}}),{name:"BackstageHeaderTabs"});function _a(n){const{tabs:a,onChange:u,selectedIndex:f}=n,[y,R]=(0,t.useState)(f!=null?f:0),b=Ss(),w=(X,H)=>{f===void 0&&R(H),u&&u(H)};return(0,t.useEffect)(()=>{f!==void 0&&R(f)},[f]),t.createElement("div",{className:b.tabsWrapper},t.createElement(Rs.Z,{selectionFollowsFocus:!0,indicatorColor:"primary",textColor:"inherit",variant:"scrollable",scrollButtons:"auto","aria-label":"scrollable auto tabs example",onChange:w,value:y},a.map((X,H)=>t.createElement(As.Z,{...X.tabProps,"data-testid":`header-tab-${H}`,label:X.label,key:X.id,value:H,className:b.defaultTab,classes:{selected:b.selected,root:b.tabRoot}}))))}function Cs(n){var w,X,H;const a=(0,un.UO)(),f=n.map(({path:ie,children:me})=>({caseSensitive:!1,path:`${ie}/*`,element:me})).sort((ie,me)=>me.path.replace(/\/\*$/,"").localeCompare(ie.path.replace(/\/\*$/,""))),y=(w=(0,un.V$)(f))!=null?w:n[0].children,[R]=(X=(0,un.fp)(f,`/${a["*"]}`))!=null?X:[],b=R?n.findIndex(ie=>`${ie.path}/*`===R.route.path):0;return{index:b===-1?0:b,element:y,route:(H=n[b])!=null?H:n[0]}}function eo(n){const{routes:a}=n,u=(0,un.s0)(),{index:f,route:y,element:R}=Cs(a),b=(0,t.useMemo)(()=>a.map(X=>({id:X.path,label:X.title,tabProps:X.tabProps})),[a]),w=X=>u(a[X].path.replace(/\/\*$/,"").replace(/^\//,""));return t.createElement(t.Fragment,null,t.createElement(_a,{tabs:b,selectedIndex:f,onChange:w}),t.createElement(qa,null,t.createElement(Sa.q,{title:y.title}),R))}const Pa=()=>null;(0,l.attachComponentData)(Pa,"core.gatherMountPoints",!0);function to(n){const a=t.createElement(Pa,{path:"",title:""},t.createElement("div",null)).type;return t.Children.toArray(n).flatMap(u=>{if(!(0,t.isValidElement)(u))return[];if(u.type===t.Fragment)return to(u.props.children);if(u.type!==a)throw new Error("Child of TabbedLayout must be an TabbedLayout.Route");const{path:f,title:y,children:R,tabProps:b}=u.props;return[{path:f,title:y,children:R,tabProps:b}]})}function Ts(n){const a=to(n.children);return t.createElement(eo,{routes:a})}Ts.Route=Pa;const Ps=(0,i.Z)(n=>({value:{marginBottom:"6px"},subvalue:{color:n.palette.textSubtle,fontWeight:"normal"}}),{name:"BackstageSubvalueCell"});function Ls(n){const{value:a,subvalue:u}=n,f=Ps();return t.createElement(t.Fragment,null,t.createElement("div",{className:f.value},a),t.createElement("div",{className:f.subvalue},u))}var Is=e(21070),Os=e(90324),xs=e(98281),bs=e(48049),no=e(51209),ro=e(33375),Ds=e(44233),Fs=e(27604),La=e(36444),Bs=e(37971),Ms=e(59709),Ns=e(17373),Zs=e(3702),Us=e(93111),ua=e(67222);const $s=(0,i.Z)(n=>({root:{height:"100%",width:"315px",display:"flex",flexDirection:"column",marginRight:n.spacing(3)},value:{fontWeight:"bold",fontSize:18},header:{display:"flex",alignItems:"center",height:"60px",justifyContent:"space-between",borderBottom:`1px solid ${n.palette.grey[500]}`},filters:{display:"flex",flexDirection:"column","& > *":{marginTop:n.spacing(2)}}}),{name:"BackstageTableFilters"}),ws=n=>{var X;const a=$s(),{onChangeFilters:u}=n,[f,y]=(0,t.useState)({...n.selectedFilters}),[R,b]=(0,t.useState)(!1),w=()=>{y({}),b(H=>!H)};return(0,t.useEffect)(()=>{u(f)},[f,u]),t.createElement("div",{className:a.root},t.createElement("div",{className:a.header},t.createElement("div",{className:a.value},"Filters"),t.createElement(c.Z,{color:"primary",onClick:w},"Clear all")),t.createElement("div",{className:a.filters},((X=n.filters)==null?void 0:X.length)&&n.filters.map(H=>t.createElement(lr,{triggerReset:R,key:H.element.label,...H.element,selected:f[H.element.label],onChange:ie=>y({...f,[H.element.label]:ie})}))))},Ws={Add:(0,t.forwardRef)((n,a)=>t.createElement(Is.Z,{...n,ref:a})),Check:(0,t.forwardRef)((n,a)=>t.createElement(xs.Z,{...n,ref:a})),Clear:(0,t.forwardRef)((n,a)=>t.createElement(ro.Z,{...n,ref:a})),Delete:(0,t.forwardRef)((n,a)=>t.createElement(Ds.Z,{...n,ref:a})),DetailPanel:(0,t.forwardRef)((n,a)=>t.createElement(no.Z,{...n,ref:a})),Edit:(0,t.forwardRef)((n,a)=>t.createElement(Fs.Z,{...n,ref:a})),Export:(0,t.forwardRef)((n,a)=>t.createElement(Zs.Z,{...n,ref:a})),Filter:(0,t.forwardRef)((n,a)=>t.createElement(La.Z,{...n,ref:a})),FirstPage:(0,t.forwardRef)((n,a)=>t.createElement(Bs.Z,{...n,ref:a})),LastPage:(0,t.forwardRef)((n,a)=>t.createElement(Ms.Z,{...n,ref:a})),NextPage:(0,t.forwardRef)((n,a)=>t.createElement(no.Z,{...n,ref:a})),PreviousPage:(0,t.forwardRef)((n,a)=>t.createElement(bs.Z,{...n,ref:a})),ResetSearch:(0,t.forwardRef)((n,a)=>t.createElement(ro.Z,{...n,ref:a})),Search:(0,t.forwardRef)((n,a)=>t.createElement(La.Z,{...n,ref:a})),SortArrow:(0,t.forwardRef)((n,a)=>t.createElement(Os.Z,{...n,ref:a})),ThirdStateCheck:(0,t.forwardRef)((n,a)=>t.createElement(Ns.Z,{...n,ref:a})),ViewColumn:(0,t.forwardRef)((n,a)=>t.createElement(Us.Z,{...n,ref:a}))};function ao(n,a){const u=a.split(".");let f=n[u[0]];for(let y=1;y<u.length;++y){if(f===void 0)return f;const R=u[y];f=f[R]}return f}const zs=(0,Ut.Z)(n=>({header:{padding:n.spacing(1,2,1,2.5),borderTop:`1px solid ${n.palette.grey.A100}`,borderBottom:`1px solid ${n.palette.grey.A100}`,color:n.palette.textSubtle,fontWeight:n.typography.fontWeightBold,position:"static",wordBreak:"normal"}}),{name:"BackstageTableHeader"})(ua.W$),oo=(0,Ut.Z)(n=>({root:{padding:n.spacing(3,0,2.5,2.5)},title:{"& > h6":{fontWeight:"bold"}},searchField:{paddingRight:n.spacing(2)}}),{name:"BackstageTableToolbar"})(ua.UW),Hs=(0,i.Z)(()=>({root:{display:"flex",alignItems:"center",justifyContent:"space-between"},title:{fontWeight:"bold",fontSize:18,whiteSpace:"nowrap"}}),{name:"BackstageTableFiltersContainer"}),Vs=(0,i.Z)(()=>({root:{display:"flex",alignItems:"start"}}),{name:"BackstageTable"});function js(n,a){return n.map(u=>{const f={};let y=u.cellStyle||{};if(u.highlight)if(f.color=a.palette.textContrast,typeof y=="object")y.fontWeight=a.typography.fontWeightBold;else{const R=y;y=(b,w,X)=>({...R(b,w,X),fontWeight:a.typography.fontWeightBold})}return{...u,headerStyle:f,cellStyle:y}})}function Gs(n,a){return(0,dr.transform)(n,(u,f,y)=>{(0,dr.isEqual)(f,a[y])||(u[y]=f)})}const so={search:"",filtersOpen:!1,filters:{}};function Ks(n){const{toolbarRef:a,setSearch:u,hasFilters:f,selectedFiltersLength:y,toggleFilters:R}=n,b=Hs(),w=(0,t.useCallback)(X=>{n.onSearchChanged(X),u(X)},[n,u]);return f?t.createElement("div",{className:b.root},t.createElement("div",{className:b.root},t.createElement(F.Z,{onClick:R,"aria-label":"filter list"},t.createElement(La.Z,null)),t.createElement(ue.Z,{className:b.title},"Filters (",y,")")),t.createElement(oo,{...n,ref:a,onSearchChanged:w})):t.createElement(oo,{...n,ref:a,onSearchChanged:w})}function Js(n){const{data:a,columns:u,options:f,title:y,subtitle:R,filters:b,initialState:w,emptyContent:X,onStateChange:H,...ie}=n,me=Vs(),Ce=(0,O.Z)(),Le={...so,...w},[Oe,ut]=(0,t.useState)(Le.filtersOpen),bt=(0,t.useCallback)(()=>ut(kt=>!kt),[ut]),[Yt,Vt]=(0,t.useState)(0),[lt,xt]=(0,t.useState)(a),[Dt,Qt]=(0,t.useState)(Le.filters),Bn=js(u,Ce),[dn,zr]=(0,t.useState)(Le.search);(0,t.useEffect)(()=>{if(H){const kt=Gs({search:dn,filtersOpen:Oe,filters:Dt},so);H(kt)}},[dn,Oe,Dt,H]);const Lt={headerStyle:{textTransform:"uppercase"}},Mn=(0,t.useCallback)(kt=>{var an;return(an=u.find(fn=>fn.title===kt))==null?void 0:an.field},[u]);(0,t.useEffect)(()=>{if(typeof a=="function")return;if(!Dt){xt(a);return}const kt=Object.values(Dt);if(a&&kt.flat().length){const an=a.filter(fn=>!!Object.entries(Dt).filter(([,Gn])=>!!Gn.length).every(([Gn,jt])=>{const Gt=ao(fn,Mn(Gn));return Array.isArray(Gt)&&Array.isArray(jt)?Gt.some(mr=>jt.includes(mr)):Array.isArray(Gt)?Gt.includes(jt):Array.isArray(jt)?jt.includes(Gt):Gt===jt}));xt(an)}else xt(a);Vt(kt.flat().length)},[a,Dt,Mn]);const Da=(kt,an)=>{const fn=jt=>{const Gt=new Set,mr=Kn=>{Kn!=null&&Gt.add(Kn)};return an&&an.forEach(Kn=>{const hr=ao(Kn,Mn(jt));Array.isArray(hr)?hr.forEach(mr):mr(hr)}),Gt},Gn=jt=>({placeholder:"All results",label:jt.column,multiple:jt.type==="multiple-select",items:[...fn(jt.column)].sort().map(Gt=>({label:Gt,value:Gt}))});return kt.map(jt=>({type:jt.type,element:Gn(jt)}))},jn=!!(b==null?void 0:b.length),Fa=(0,t.useCallback)(kt=>t.createElement(Ks,{setSearch:zr,hasFilters:jn,selectedFiltersLength:Yt,toggleFilters:bt,...kt}),[bt,jn,Yt,zr]),fa=typeof a!="function"&&a.length===0,ma=u.length,Ba=(0,t.useCallback)(kt=>X&&fa?t.createElement("tbody",null,t.createElement("tr",null,t.createElement("td",{colSpan:ma},X))):t.createElement(ua.os,{...kt}),[fa,X,ma]);return t.createElement("div",{className:me.root},Oe&&a&&typeof a!="function"&&(b==null?void 0:b.length)&&t.createElement(ws,{filters:Da(b,a),selectedFilters:Dt,onChangeFilters:Qt}),t.createElement(ua.ZP,{components:{Header:zs,Toolbar:Fa,Body:Ba},options:{...Lt,...f},columns:Bn,icons:Ws,title:t.createElement(t.Fragment,null,t.createElement(ue.Z,{variant:"h5",component:"h3"},y),R&&t.createElement(ue.Z,{color:"textSecondary",variant:"body1"},R)),data:typeof a=="function"?a:lt,style:{width:"100%"},localization:{toolbar:{searchPlaceholder:"Filter"}},...ie}))}const yl=n=>{const{children:a,value:u,index:f,...y}=n;return React.createElement("div",{role:"tabpanel",hidden:u!==f,"aria-labelledby":`scrollable-auto-tab-${f}`,...y},u===f&&React.createElement(Box,{p:3},a))},Ys=(0,i.Z)(()=>({root:{color:"#6E6E6E",overflow:"visible",fontSize:"1.5rem",textAlign:"center",borderRadius:"50%",backgroundColor:"#E6E6E6",marginLeft:n=>n.isNext?"auto":"0",marginRight:n=>n.isNext?"0":"10px","&:hover":{backgroundColor:"#E6E6E6",opacity:"1"}}}),{name:"BackstageTabIcon"}),El=n=>{const a=Ys(n),{ariaLabel:u,onClick:f}=n;return React.createElement(IconButton,{onClick:f,className:a.root,size:"small",disableRipple:!0,disableFocusRipple:!0,"aria-label":u},n.children)},Qs=(n,a)=>a?n?"20px":"0":"40px",Xs=(0,i.Z)(n=>({root:{textTransform:"none",height:"64px",fontWeight:n.typography.fontWeightBold,fontSize:n.typography.pxToRem(13),color:n.palette.textSubtle,marginLeft:a=>Qs(a.isFirstNav,a.isFirstIndex),width:"130px",minWidth:"130px","&:hover":{outline:"none",backgroundColor:"transparent",color:n.palette.textSubtle}}})),vl=n=>{const a=Xs(n),{isFirstNav:u,isFirstIndex:f,...y}=n;return React.createElement(Tab,{className:a.root,disableRipple:!0,...y})},ks=(0,i.Z)(n=>({indicator:{display:"flex",justifyContent:"center",backgroundColor:n.palette.tabbar.indicator,height:"4px"},flexContainer:{alignItems:"center"},root:{"&:last-child":{marginLeft:"auto"}}}),{name:"BackstageTabBar"}),Al=n=>{const a=ks(n);return React.createElement(Tabs,{classes:a,...n,TabIndicatorProps:{children:React.createElement("span",null)}})},_s=(0,i.Z)(n=>({root:{flexGrow:1,width:"100%"},styledTabs:{backgroundColor:n.palette.background.paper},appbar:{boxShadow:"none",backgroundColor:n.palette.background.paper,paddingLeft:"10px",paddingRight:"10px"}}),{name:"BackstageTabs"});function Rl(n){const{tabs:a}=n,u=_s(),[f,y]=useState([0,0]),[R,b]=useState(0),[w,X]=useState(0),[H,ie]=useState([[]]),me=useRef(),{width:Ce}=useWindowSize(),Le=(Vt,lt)=>{y([R,lt])},Oe=()=>{b(R-1)},ut=()=>{b(R+1)},bt=()=>R+1<H.length;useEffect(()=>{const lt=R===0?1:2,xt=me.current.offsetWidth-20-lt*30,Dt=f[0]*w+f[1],Qt=Math.floor(xt/170);X(Qt),ie(chunkArray(a,Qt)),y([Math.floor(Dt/Qt),Dt%Qt])},[Ce,a]);const Yt=R===f[0]?f[1]:!1;return React.createElement("div",{className:u.root},React.createElement(AppBar,{ref:me,className:u.appbar,position:"static"},React.createElement("div",null,React.createElement(StyledTabs,{value:Yt,onChange:Le,selectionFollowsFocus:!0},R!==0&&React.createElement(StyledIcon,{onClick:Oe,ariaLabel:"navigate-before"},React.createElement(NavigateBeforeIcon,null)),H[R].map((Vt,lt)=>React.createElement(StyledTab,{value:lt,isFirstIndex:lt===0,isFirstNav:R===0,key:lt,icon:Vt.icon||void 0,label:Vt.label||void 0})),bt()&&React.createElement(StyledIcon,{isNext:!0,onClick:ut,ariaLabel:"navigate-next"},React.createElement(NavigateNextIcon,null))))),Yt!==!1?H[R].map((Vt,lt)=>React.createElement(TabPanel,{key:lt,value:lt,index:Yt},Vt.content)):React.createElement(TabPanel,{key:"panel_outside_chunked_array",value:f[1],index:f[1]},H[f[0]][f[1]].content))}var Sl=e(44311);function ei(n,a){const u=n[n.length-1];if(!!u)return u>=.9?a.palette.status.ok:u>=.5?a.palette.status.warning:a.palette.status.error}function Cl(n){var u;const a=useTheme();return n.data?React.createElement(Sparklines,{width:120,height:30,min:0,max:1,...n},n.title&&React.createElement("title",null,n.title),React.createElement(SparklinesLine,{color:(u=n.color)!=null?u:ei(n.data,a)})):null}const ti=n=>(0,i.Z)(a=>({container:{width:"100%",display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"flex-end",alignItems:"center",marginBottom:a.spacing(2),textAlign:n.textAlign},leftItemsBox:{flex:"1 1 auto",minWidth:0,overflow:"visible"},rightItemsBox:{flex:"0 1 auto",display:"flex",flexDirection:"row",flexWrap:"wrap",alignItems:"center",marginLeft:a.spacing(1),minWidth:0,overflow:"visible"},description:{},title:{display:"inline-flex",marginBottom:0}}),{name:"BackstageContentHeader"}),ni=({title:n="Unknown page",className:a})=>t.createElement(ue.Z,{variant:"h4",component:"h2",className:a,"data-testid":"header-title"},n);function ri(n){const{description:a,title:u,titleComponent:f=void 0,children:y,textAlign:R="left"}=n,b=ti({textAlign:R})(),w=f||t.createElement(ni,{title:u,className:b.title});return t.createElement(t.Fragment,null,t.createElement(Sa.q,{title:u}),t.createElement("div",{className:b.container},t.createElement("div",{className:b.leftItemsBox},w,a&&t.createElement(ue.Z,{className:b.description,variant:"body2"},a)),t.createElement("div",{className:b.rightItemsBox},y)))}var ai=e(29788);const oi=(0,i.Z)(n=>({micDrop:{maxWidth:"60%",position:"absolute",bottom:n.spacing(2),right:n.spacing(2),[n.breakpoints.down("xs")]:{maxWidth:"96%",position:"relative",bottom:"unset",right:"unset",margin:`${n.spacing(10)}px auto ${n.spacing(4)}px`}}}),{name:"BackstageErrorPageMicDrop"}),si=()=>{const n=oi();return t.createElement("img",{src:ai,className:n.micDrop,alt:"Girl dropping mic from her hands"})},ii=(0,i.Z)(n=>({container:{padding:n.spacing(8),[n.breakpoints.down("xs")]:{padding:n.spacing(2)}},title:{paddingBottom:n.spacing(5),[n.breakpoints.down("xs")]:{paddingBottom:n.spacing(4),fontSize:32}},subtitle:{color:n.palette.textSubtle}}),{name:"BackstageErrorPage"});function li(n){const{status:a,statusMessage:u,additionalInfo:f,supportUrl:y}=n,R=ii(),b=(0,un.s0)(),w=Ua();return t.createElement(Ge.Z,{container:!0,spacing:0,className:R.container},t.createElement(si,null),t.createElement(Ge.Z,{item:!0,xs:12,sm:8,md:4},t.createElement(ue.Z,{"data-testid":"error",variant:"body1",className:R.subtitle},"ERROR ",a,": ",u),t.createElement(ue.Z,{variant:"body1",className:R.subtitle},f),t.createElement(ue.Z,{variant:"h2",className:R.title},"Looks like someone dropped the mic!"),t.createElement(ue.Z,{variant:"h6"},t.createElement(x,{to:"#","data-testid":"go-back-link",onClick:()=>b(-1)},"Go back"),"... or please"," ",t.createElement(x,{to:y||w.url},"contact support")," if you think this is a bug.")))}var ci=e(16173);const ui=(0,Ut.Z)({root:{textDecoration:"underline",cursor:"pointer"}},{name:"BackstageBreadcrumbsClickableText"})(ue.Z),Ia=(0,Ut.Z)({root:{textDecoration:"underline",color:"inherit"}},{name:"BackstageBreadcrumbsStyledBox"})(_t.Z);function di(n){const{children:a,...u}=n,[f,y]=t.useState(null),R=t.Children.toArray(a),[b,w,...X]=R,H=X.length?X.pop():R[R.length-1],ie=R.length>3,me=Oe=>{y(Oe.currentTarget)},Ce=()=>{y(null)},Le=Boolean(f);return t.createElement(t.Fragment,null,t.createElement(ci.Z,{"aria-label":"breadcrumb",...u},R.length>1&&t.createElement(Ia,{clone:!0},b),R.length>2&&t.createElement(Ia,{clone:!0},w),ie&&t.createElement(ui,{onClick:me},"..."),t.createElement(_t.Z,{style:{fontStyle:"italic"}},H)),t.createElement(Ma.ZP,{open:Le,anchorEl:f,onClose:Ce,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"}},t.createElement(Ee.Z,null,X.map((Oe,ut)=>t.createElement(Ie.Z,{key:ut,button:!0},t.createElement(Ia,{clone:!0},Oe))))))}const fi=(0,i.Z)(n=>({header:{gridArea:"pageHeader",padding:n.spacing(3),width:"100%",boxShadow:n.shadows[4],position:"relative",zIndex:100,display:"flex",flexDirection:"row",alignItems:"center",backgroundImage:n.page.backgroundImage,backgroundPosition:"center",backgroundSize:"cover",[n.breakpoints.down("sm")]:{flexWrap:"wrap"}},leftItemsBox:{maxWidth:"100%",flexGrow:1},rightItemsBox:{width:"auto"},title:{color:n.palette.bursts.fontColor,wordBreak:"break-all",fontSize:n.typography.h3.fontSize,marginBottom:0},subtitle:{color:n.palette.bursts.fontColor,opacity:.8,display:"inline-block",marginTop:n.spacing(1),maxWidth:"75ch"},type:{textTransform:"uppercase",fontSize:11,opacity:.8,marginBottom:n.spacing(1),color:n.palette.bursts.fontColor},breadcrumb:{color:n.palette.bursts.fontColor},breadcrumbType:{fontSize:"inherit",opacity:.7,marginRight:-n.spacing(.3),marginBottom:n.spacing(.3)},breadcrumbTitle:{fontSize:"inherit",marginLeft:-n.spacing(.3),marginBottom:n.spacing(.3)}}),{name:"BackstageHeader"}),mi=({type:n,typeLink:a,classes:u,pageTitle:f})=>n?a?t.createElement(di,{className:u.breadcrumb},t.createElement(x,{to:a},n),t.createElement(ue.Z,null,f)):t.createElement(ue.Z,{className:u.type},n):null,hi=({pageTitle:n,classes:a,tooltip:u})=>{const f=t.createElement(ue.Z,{className:a.title,variant:"h1"},n);return u?t.createElement(B.ZP,{title:u,placement:"top-start"},f):f},gi=({classes:n,subtitle:a})=>a?typeof a!="string"?t.createElement(t.Fragment,null,a):t.createElement(ue.Z,{className:n.subtitle,variant:"subtitle2",component:"span"},a):null;function io(n){const{children:a,pageTitleOverride:u,style:f,subtitle:y,title:R,tooltip:b,type:w,typeLink:X}=n,H=fi(),me=(0,l.useApi)(l.configApiRef).getOptionalString("app.title")||"Backstage",Ce=u||R,Le=R||u,Oe=`${Ce} | %s | ${me}`,ut=`${Ce} | ${me}`;return t.createElement(t.Fragment,null,t.createElement(Sa.q,{titleTemplate:Oe,defaultTitle:ut}),t.createElement("header",{style:f,className:H.header},t.createElement(_t.Z,{className:H.leftItemsBox},t.createElement(mi,{classes:H,type:w,typeLink:X,pageTitle:Le}),t.createElement(hi,{classes:H,pageTitle:Le,tooltip:b}),t.createElement(gi,{classes:H,subtitle:y})),t.createElement(Ge.Z,{container:!0,className:H.rightItemsBox,spacing:4},a)))}const pi=(0,i.Z)(n=>({root:{textAlign:"left"},label:{color:n.palette.common.white,fontWeight:"bold",letterSpacing:0,fontSize:n.typography.fontSize,marginBottom:n.spacing(1)/2,lineHeight:1},value:{color:"rgba(255, 255, 255, 0.8)",fontSize:n.typography.fontSize,lineHeight:1}}),{name:"BackstageHeaderLabel"}),yi=({value:n,className:a})=>t.createElement(ue.Z,{className:a},n);function Ei(n){const{label:a,value:u,url:f}=n,y=pi(),R=t.createElement(yi,{className:y.value,value:u||"<Unknown>"});return t.createElement(Ge.Z,{item:!0},t.createElement("span",{className:y.root},t.createElement(ue.Z,{className:y.label},a),f?t.createElement(x,{to:f},R):R))}const vi={hour:"2-digit",minute:"2-digit"};function lo(n){const a=new Date,u=window.navigator.language,f=[];if(!n.has("homepage.clocks"))return f;const y=n.getConfigArray("homepage.clocks");for(const R of y)if(R.has("label")&&R.has("timezone")){let b=R.getString("label");const w={timeZone:R.getString("timezone"),...vi};try{new Date().toLocaleString(u,w)}catch{console.warn(`The timezone ${w.timeZone} is invalid. Defaulting to GMT`),w.timeZone="GMT",b="GMT"}const X=a.toLocaleTimeString(u,w);f.push({time:X,label:b})}return f}function Tl(n){const a=useApi(configApiRef),u=[],[f,y]=React.useState(u);return React.useEffect(()=>{y(lo(a));const R=setInterval(()=>{y(lo(a))},1e3);return()=>{clearInterval(R)}},[a]),f.length!==0?React.createElement(React.Fragment,null,f.map(R=>React.createElement(HeaderLabel,{label:R.label,value:R.time,key:R.label}))):null}const Ai=n=>(0,p.Z)({root:{color:n.palette.common.white,padding:n.spacing(2,2,3),backgroundImage:n.palette.bursts.gradient.linear,backgroundPosition:0,backgroundSize:"inherit"}}),Ri=(0,i.Z)(Ai,{name:"BackstageItemCardHeader"});function Si(n){const{title:a,subtitle:u,children:f}=n,y=Ri(n);return t.createElement("div",{className:y.root},u&&t.createElement(ue.Z,{variant:"subtitle2",component:"h3"},u),a&&t.createElement(ue.Z,{variant:"h6",component:"h4"},a),f)}function Pl(n){const{description:a,tags:u,title:f,type:y,subtitle:R,label:b,onClick:w,href:X}=n;return React.createElement(Card,null,React.createElement(CardMedia,null,React.createElement(ItemCardHeader,{title:f,subtitle:R||y})),React.createElement(CardContent,null,(u==null?void 0:u.length)?React.createElement(Box,null,u.map((H,ie)=>React.createElement(Chip,{size:"small",label:H,key:ie}))):null,a),React.createElement(CardActions,null,!X&&React.createElement(Button,{to:"#",onClick:w,color:"primary"},b),X&&React.createElement(Button,{to:X,color:"primary"},b)))}const Ci=n=>(0,p.Z)({root:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(22em, 1fr))",gridAutoRows:"1fr",gridGap:n.spacing(2)}}),Ti=(0,i.Z)(Ci,{name:"BackstageItemCardGrid"});function Pi(n){const{children:a,...u}=n,f=Ti(u);return t.createElement("div",{className:f.root,...u},a)}var Li=e(41547);const Ii=(0,i.Z)(()=>({root:({isMobile:n})=>({display:"grid",gridTemplateAreas:"'pageHeader pageHeader pageHeader' 'pageSubheader pageSubheader pageSubheader' 'pageNav pageContent pageSidebar'",gridTemplateRows:"max-content auto 1fr",gridTemplateColumns:"auto 1fr auto",height:n?"100%":"100vh",overflowY:"auto"})}),{name:"BackstagePage"});function co(n){const{themeId:a,children:u}=n,{isMobile:f}=(0,t.useContext)(fr),y=Ii({isMobile:f});return t.createElement(Li.Z,{theme:R=>({...R,page:R.getPageTheme({themeId:a})})},t.createElement("div",{className:y.root},u))}function Oi(n){const{themeId:a,children:u,...f}=n;return t.createElement(co,{themeId:a},t.createElement(io,{...f}),u)}var nn=e(30195);const Ll=nn.z.object({providerInfo:nn.z.object({}).catchall(nn.z.unknown()).optional(),profile:nn.z.object({email:nn.z.string().optional(),displayName:nn.z.string().optional(),picture:nn.z.string().optional()}),backstageIdentity:nn.z.object({token:nn.z.string(),identity:nn.z.object({type:nn.z.literal("user"),userEntityRef:nn.z.string(),ownershipEntityRefs:nn.z.array(nn.z.string())})})}),uo={defaultTokenExpiryMillis:5*60*1e3,tokenExpiryMarginMillis:5*60*1e3};function xi(n){const a=new Date(Date.now()+uo.defaultTokenExpiryMillis);if(!n)return a;const[u,f,y]=n.split("."),R=JSON.parse(atob(f));return typeof R.exp!="number"?a:new Date(R.exp*1e3-uo.tokenExpiryMarginMillis)}class Il{constructor(a){ae(this,"options");ae(this,"abortController");ae(this,"state");this.options=a,this.abortController=new AbortController,this.state={type:"empty"}}async start(){await this.getSessionAsync()}getUserId(){const{backstageIdentity:a}=this.getSessionSync(),u=a.identity.userEntityRef,f=/^([^:/]+:)?([^:/]+\/)?([^:/]+)$/.exec(u);if(!f)throw new TypeError(`Invalid user entity reference "${u}"`);return f[3]}async getIdToken(){return(await this.getSessionAsync()).backstageIdentity.token}getProfile(){return this.getSessionSync().profile}async getProfileInfo(){return(await this.getSessionAsync()).profile}async getBackstageIdentity(){return(await this.getSessionAsync()).backstageIdentity.identity}async getCredentials(){return{token:(await this.getSessionAsync()).backstageIdentity.token}}async signOut(){this.abortController.abort()}getSessionSync(){if(this.state.type==="active")return this.state.session;if(this.state.type==="fetching"&&this.state.previous)return this.state.previous;throw new Error("No session available. Try reloading your browser page.")}async getSessionAsync(){if(this.state.type==="fetching")return this.state.promise;if(this.state.type==="active"&&new Date<this.state.expiresAt)return this.state.session;const a=this.state.type==="active"?this.state.session:void 0,u=this.fetchSession().then(f=>(this.state={type:"active",session:f,expiresAt:xi(f.backstageIdentity.token)},f),f=>{throw this.state={type:"failed",error:f},f});return this.state={type:"fetching",promise:u,previous:a},u}async fetchSession(){const a=await this.options.discoveryApi.getBaseUrl("auth"),u=await fetch(`${a}/${this.options.provider}/refresh`,{signal:this.abortController.signal,headers:{"x-requested-with":"XMLHttpRequest"},credentials:"include"});if(!u.ok)throw await ResponseError.fromResponse(u);return proxiedSessionSchema.parse(await u.json())}}const Ol=n=>{const a=useApi(discoveryApiRef),{loading:u,error:f}=useAsync(async()=>{const y=new ProxiedSignInIdentity({provider:n.provider,discoveryApi:a});await y.start(),n.onSignInSuccess(y)},[]);return u?React.createElement(Progress,null):f?React.createElement(ErrorPanel,{title:"You do not appear to be signed in. Please try reloading the browser page.",error:f}):null},bi=(0,i.Z)({container:{padding:0,listStyle:"none"},item:{display:"flex",flexDirection:"column",width:"100%",maxWidth:"400px",margin:0,padding:0}},{name:"BackstageSignInPage"}),Oa=({children:n})=>{const a=bi();return t.createElement(Ge.Z,{component:"li",item:!0,classes:a},n)};class xa{getUserId(){return"guest"}async getIdToken(){}getProfile(){return{email:"guest@example.com",displayName:"Guest"}}async getProfileInfo(){return{email:"guest@example.com",displayName:"Guest"}}async getBackstageIdentity(){const a="user:default/guest";return{type:"user",userEntityRef:a,ownershipEntityRefs:[a]}}async getCredentials(){return{}}async signOut(){}}function Di(n){const[a,u,f]=n.split(".");return JSON.parse(atob(u))}class ba{constructor(a){this.result=a}getUserId(){return this.result.userId}static fromResult(a){return new ba(a)}async getIdToken(){var a,u;return(u=(a=this.result).getIdToken)==null?void 0:u.call(a)}getProfile(){return this.result.profile}async getProfileInfo(){return this.result.profile}async getBackstageIdentity(){const a=await this.getIdToken();if(!a){const y=`user:default/${this.getUserId()}`;return{type:"user",userEntityRef:y,ownershipEntityRefs:[y]}}const{sub:u,ent:f}=Di(a);return{type:"user",userEntityRef:u,ownershipEntityRefs:f!=null?f:[]}}async getCredentials(){var u,f;return{token:await((f=(u=this.result).getIdToken)==null?void 0:f.call(u))}}async signOut(){var a,u;return(u=(a=this.result).signOut)==null?void 0:u.call(a)}}class Wr{constructor(a,u,f){ae(this,"profilePromise");this.identity=a,this.authApi=u,this.profile=f}static createGuest(){return new xa}static fromLegacy(a){return ba.fromResult(a)}static create(a){return new Wr(a.identity,a.authApi,a.profile)}getUserId(){const a=this.identity.userEntityRef,u=/^([^:/]+:)?([^:/]+\/)?([^:/]+)$/.exec(a);if(!u)throw new TypeError(`Invalid user entity reference "${a}"`);return u[3]}async getIdToken(){return(await this.authApi.getBackstageIdentity()).token}getProfile(){if(!this.profile)throw new Error("The identity API does not implement synchronous profile fetching, use getProfileInfo() instead");return this.profile}async getProfileInfo(){if(this.profilePromise)return await this.profilePromise;try{return this.profilePromise=this.authApi.getProfile(),await this.profilePromise}catch(a){throw this.profilePromise=void 0,a}}async getBackstageIdentity(){return this.identity}async getCredentials(){return{token:(await this.authApi.getBackstageIdentity()).token}}async signOut(){return this.authApi.signOut()}}const Fi={Component:({config:n,onSignInSuccess:a})=>{const{apiRef:u,title:f,message:y}=n,R=(0,l.useApi)(u),b=(0,l.useApi)(l.errorApiRef),w=async()=>{try{const X=await R.getBackstageIdentity({instantPopup:!0});if(!X)throw new Error(`The ${f} provider is not configured to support sign-in`);const H=await R.getProfile();a(Wr.create({identity:X.identity,profile:H,authApi:R}))}catch(X){b.post(new Jr.SP("Login failed",X))}};return t.createElement(Oa,null,t.createElement(zn,{variant:"fullHeight",title:f,actions:t.createElement(c.Z,{color:"primary",variant:"outlined",onClick:w},"Sign In")},t.createElement(ue.Z,{variant:"body1"},y)))},loader:async(n,a)=>{const u=n.get(a),f=await u.getBackstageIdentity({optional:!0});if(!f)return;const y=await u.getProfile();return Wr.create({identity:f.identity,profile:y,authApi:u})}},Bi={Component:({onSignInSuccess:n})=>t.createElement(Oa,null,t.createElement(zn,{title:"Guest",variant:"fullHeight",actions:t.createElement(c.Z,{color:"primary",variant:"outlined",onClick:()=>n(new xa)},"Enter")},t.createElement(ue.Z,{variant:"body1"},"Enter as a Guest User.",t.createElement("br",null),"You will not have a verified identity,",t.createElement("br",null),"meaning some features might be unavailable."))),loader:async()=>new xa};var Mi=e(94106),fo=e(86619),mo=e(74828),Ni=e(45455),Zi=e.n(Ni);const Ui=/^[a-z0-9_\-]+\.[a-z0-9_\-]+\.[a-z0-9_\-]+$/i,$i=(0,i.Z)(n=>({form:{display:"flex",flexFlow:"column nowrap"},button:{alignSelf:"center",marginTop:n.spacing(2)}}),{name:"BackstageCustomProvider"}),ho=n=>{const{ref:a,...u}=n;return{inputRef:a,...u}},wi={Component:({onSignInSuccess:n})=>{const a=$i(),{register:u,handleSubmit:f,formState:y}=(0,Mi.cI)({mode:"onChange"}),{errors:R}=y,b=({userId:w})=>{n(Wr.fromLegacy({userId:w,profile:{email:`${w}@example.com`}}))};return t.createElement(Oa,null,t.createElement(zn,{title:"Custom User",variant:"fullHeight"},t.createElement(ue.Z,{variant:"body1"},"Enter your own User ID and credentials.",t.createElement("br",null),"This selection will not be stored."),t.createElement("form",{className:a.form,onSubmit:f(b)},t.createElement(yn.Z,null,t.createElement(fo.Z,{...ho(u("userId",{required:!0})),label:"User ID",margin:"normal",error:Boolean(R.userId)}),R.userId&&t.createElement(mo.Z,{error:!0},R.userId.message)),t.createElement(yn.Z,null,t.createElement(fo.Z,{...ho(u("idToken",{required:!1,validate:w=>!w||Ui.test(w)||"Token is not a valid OpenID Connect JWT Token"})),label:"ID Token (optional)",margin:"normal",autoComplete:"off",error:Boolean(R.idToken)}),R.idToken&&t.createElement(mo.Z,{error:!0},R.idToken.message)),t.createElement(c.Z,{type:"submit",color:"primary",variant:"outlined",className:a.button,disabled:!(y==null?void 0:y.isDirty)||!Zi()(R)},"Continue"))))},loader:async()=>{}},da="@backstage/core:SignInPage:provider",go={guest:Bi,custom:wi,common:Fi};function po(n,a){if(n in a)throw new Error(`"${n}" ID is duplicated. IDs of identity providers have to be unique.`)}function Nl(n){return n.reduce((u,f)=>{if(typeof f=="string")return po(f,u),u[f]={components:go[f],id:f},u;const{id:y}=f;return po(y,u),u[y]={components:go.common,id:y,config:f},u},{})}const Zl=(n,a)=>{const u=useApi(errorApiRef),f=useApiHolder(),[y,R]=useState(!0),b=useCallback(X=>{a(IdentityApiSignOutProxy.from({identityApi:X,signOut:async()=>{var H;localStorage.removeItem(da),await((H=X.signOut)==null?void 0:H.call(X))}}))},[a]);useLayoutEffect(()=>{var me;if(!y)return;const X=localStorage.getItem(da);if(X===null){R(!1);return}const H=n[X];if(!H){R(!1);return}let ie=!1;return H.components.loader(f,(me=H.config)==null?void 0:me.apiRef).then(Ce=>{ie||(Ce?b(Ce):R(!1))}).catch(Ce=>{ie||(localStorage.removeItem(da),u.post(Ce),R(!1))}),()=>{ie=!0}},[y,u,a,f,n,b]);const w=useMemo(()=>Object.keys(n).map(X=>{const H=n[X],{Component:ie}=H.components,me=Ce=>{localStorage.setItem(da,H.id),b(Ce)};return React.createElement(ie,{key:H.id,config:H.config,onSignInSuccess:me})}),[n,b]);return[y,w]},Wi=({onSignInSuccess:n,providers:a=[],title:u,align:f="left"})=>{const y=useApi(configApiRef),R=useStyles(),b=getSignInProviders(a),[w,X]=useSignInProviders(b,n);return w?React.createElement(Progress,null):React.createElement(Page,{themeId:"home"},React.createElement(Header,{title:y.getString("app.title")}),React.createElement(Content,null,u&&React.createElement(ContentHeader,{title:u,textAlign:f}),React.createElement(Grid,{container:!0,justifyContent:f==="center"?f:"flex-start",spacing:2,component:"ul",classes:R},X)))},zi=({provider:n,auto:a,onSignInSuccess:u})=>{const f=useStyles(),y=useApi(n.apiRef),R=useApi(configApiRef),[b,w]=useState(),[X,H]=useState(!1),ie=async({checkExisting:me,showPopup:Ce})=>{try{let Le;if(me&&(Le=await y.getBackstageIdentity({optional:!0})),!Le&&(Ce||a)&&(H(!0),Le=await y.getBackstageIdentity({instantPopup:!0}),!Le))throw new Error(`The ${n.title} provider is not configured to support sign-in`);if(!Le){H(!0);return}const Oe=await y.getProfile();u(UserIdentity.create({identity:Le.identity,authApi:y,profile:Oe}))}catch(Le){w(Le),H(!0)}};return useMount(()=>ie({checkExisting:!0})),X?React.createElement(Page,{themeId:"home"},React.createElement(Header,{title:R.getString("app.title")}),React.createElement(Content,null,React.createElement(Grid,{container:!0,justifyContent:"center",spacing:2,component:"ul",classes:f},React.createElement(GridItem,null,React.createElement(InfoCard,{variant:"fullHeight",title:n.title,actions:React.createElement(Button,{color:"primary",variant:"outlined",onClick:()=>{ie({showPopup:!0})}},"Sign In")},React.createElement(Typography,{variant:"body1"},n.message),b&&b.name!=="PopupRejectedError"&&React.createElement(Typography,{variant:"body1",color:"error"},b.message)))))):React.createElement(Progress,null)};function Ul(n){return"provider"in n?React.createElement(zi,{...n}):React.createElement(Wi,{...n})}const Hi=(0,i.Z)(n=>({root:{padding:n.spacing(0,2,0,2.5),minHeight:n.spacing(3)},indicator:{backgroundColor:n.palette.info.main,height:n.spacing(.3)}}),{name:"BackstageTabbedCard"}),Vi=(0,Ut.Z)(n=>({root:{padding:n.spacing(2,2,2,2.5),display:"inline-block"},title:{fontWeight:700},subheader:{paddingTop:n.spacing(1)}}),{name:"BackstageTabbedCardBoldHeader"})(tn.Z);function $l(n){const{slackChannel:a,errorBoundaryProps:u,children:f,title:y,deepLink:R,value:b,onChange:w}=n,X=Hi(),[H,ie]=useState(0),me=w||((Oe,ut)=>ie(ut));let Ce;b?React.Children.map(f,Oe=>{React.isValidElement(Oe)&&(Oe==null?void 0:Oe.props.value)===b&&(Ce=Oe==null?void 0:Oe.props.children)}):React.Children.map(f,(Oe,ut)=>{React.isValidElement(Oe)&&ut===H&&(Ce=Oe==null?void 0:Oe.props.children)});const Le=u||(a?{slackChannel:a}:{});return React.createElement(Card,null,React.createElement(ErrorBoundary,{...Le},y&&React.createElement(Vi,{title:y}),React.createElement(Tabs,{selectionFollowsFocus:!0,classes:X,value:b||H,onChange:me},f),React.createElement(Divider,null),React.createElement(CardContent,null,Ce),R&&React.createElement(BottomLink,{...R})))}const ji=(0,i.Z)(n=>({root:{minWidth:n.spacing(6),minHeight:n.spacing(3),margin:n.spacing(0,2,0,0),padding:n.spacing(.5,0,.5,0),textTransform:"none","&:hover":{opacity:1,backgroundColor:"transparent",color:n.palette.text.primary}},selected:{fontWeight:"bold"}}),{name:"BackstageCardTab"});function wl(n){const{children:a,...u}=n,f=ji();return React.createElement(Tab,{disableRipple:!0,classes:f,...u})}},88609:function(ee,s,e){"use strict";e.d(s,{Os:function(){return d},fC:function(){return v}});var r=e(76241),t=e(2784);const l=(0,r.CT)("analytics-context"),d=()=>{const p=(0,t.useContext)(l);if(p===void 0)return{routeRef:"unknown",pluginId:"root",extension:"App"};const g=p.atVersion(1);if(g===void 0)throw new Error("No context found for version 1.");return g},v=p=>{const{attributes:g,children:h}=p,E={...d(),...g},o=(0,r.EI)({1:E});return t.createElement(l.Provider,{value:o},h)};function i(p,g){const h=c=>React.createElement(v,{attributes:g},React.createElement(p,{...c}));return h.displayName=`WithAnalyticsContext(${p.displayName||p.name||"Component"})`,h}},28461:function(ee,s,e){"use strict";e.d(s,{f:function(){return r.fC},z:function(){return i}});var r=e(88609),t=e(27399),l=e(2784);class d{constructor(g,h={routeRef:"unknown",pluginId:"root",extension:"App"}){this.analyticsApi=g,this.context=h}setContext(g){this.context=g}captureEvent(g,h,{value:c,attributes:E}={}){try{this.analyticsApi.captureEvent({action:g,subject:h,value:c,attributes:E,context:this.context})}catch(o){console.warn("Error during analytics event capture. %o",o)}}}function v(){try{return(0,t.useApi)(t.analyticsApiRef)}catch{return{captureEvent:()=>{}}}}function i(){const p=(0,l.useRef)(null),g=(0,r.Os)(),h=v();function c(){return p.current===null&&(p.current=new d(h)),p.current}const E=c();return E.setContext(g),E}},39135:function(ee,s,e){"use strict";e.d(s,{CL:function(){return V},sM:function(){return t},$v:function(){return x},v_:function(){return j},hg:function(){return Z},uB:function(){return M},iW:function(){return p},bq:function(){return S},Ds:function(){return O},NW:function(){return F},VE:function(){return B},W0:function(){return ne},gP:function(){return de},F4:function(){return d},ux:function(){return i},Kp:function(){return l},$4:function(){return ve},p_:function(){return g},br:function(){return h},ZM:function(){return be},eC:function(){return c},D:function(){return v},gW:function(){return o},Yp:function(){return E},E6:function(){return pe}});var r=e(86833),t;(function(je){const xe="SignedIn";je.SignedIn=xe;const Qe="SignedOut";je.SignedOut=Qe})(t||(t={}));const l=(0,r.T0)({id:"core.auth.google"}),d=(0,r.T0)({id:"core.auth.github"}),v=(0,r.T0)({id:"core.auth.okta"}),i=(0,r.T0)({id:"core.auth.gitlab"}),p=(0,r.T0)({id:"core.auth.auth0"}),g=(0,r.T0)({id:"core.auth.microsoft"}),h=(0,r.T0)({id:"core.auth.oauth2"}),c=(0,r.T0)({id:"core.auth.oidc"}),E=(0,r.T0)({id:"core.auth.saml"}),o=(0,r.T0)({id:"core.auth.onelogin"}),S=(0,r.T0)({id:"core.auth.bitbucket"}),M=(0,r.T0)({id:"core.auth.atlassian"}),x=(0,r.T0)({id:"core.alert"}),j=(0,r.T0)({id:"core.analytics"}),Z=(0,r.T0)({id:"core.apptheme"}),O=(0,r.T0)({id:"core.config"}),F=(0,r.T0)({id:"core.discovery"}),B=(0,r.T0)({id:"core.error"});var V;(function(je){je[je.None=0]="None";const Qe=1;je[je.Active=Qe]="Active"})(V||(V={}));const ne=(0,r.T0)({id:"core.featureflags"}),de=(0,r.T0)({id:"core.fetch"}),ve=(0,r.T0)({id:"core.identity"}),be=(0,r.T0)({id:"core.oauthrequest"}),pe=(0,r.T0)({id:"core.storage"})},27399:function(ee,s,e){"use strict";e.d(s,{createApiFactory:function(){return r.createApiFactory},createApiRef:function(){return r.T0},useApi:function(){return r.h_},useApiHolder:function(){return r.I_},FeatureFlagState:function(){return t.CL},SessionState:function(){return t.sM},alertApiRef:function(){return t.$v},analyticsApiRef:function(){return t.v_},appThemeApiRef:function(){return t.hg},atlassianAuthApiRef:function(){return t.uB},auth0AuthApiRef:function(){return t.iW},bitbucketAuthApiRef:function(){return t.bq},configApiRef:function(){return t.Ds},discoveryApiRef:function(){return t.NW},errorApiRef:function(){return t.VE},featureFlagsApiRef:function(){return t.W0},fetchApiRef:function(){return t.gP},githubAuthApiRef:function(){return t.F4},gitlabAuthApiRef:function(){return t.ux},googleAuthApiRef:function(){return t.Kp},identityApiRef:function(){return t.$4},microsoftAuthApiRef:function(){return t.p_},oauth2ApiRef:function(){return t.br},oauthRequestApiRef:function(){return t.ZM},oidcAuthApiRef:function(){return t.eC},oktaAuthApiRef:function(){return t.D},oneloginAuthApiRef:function(){return t.gW},samlAuthApiRef:function(){return t.Yp},storageApiRef:function(){return t.E6}});var r=e(86833);e.o(r,"FeatureFlagState")&&e.d(s,{FeatureFlagState:function(){return r.FeatureFlagState}}),e.o(r,"SessionState")&&e.d(s,{SessionState:function(){return r.SessionState}}),e.o(r,"alertApiRef")&&e.d(s,{alertApiRef:function(){return r.alertApiRef}}),e.o(r,"analyticsApiRef")&&e.d(s,{analyticsApiRef:function(){return r.analyticsApiRef}}),e.o(r,"appThemeApiRef")&&e.d(s,{appThemeApiRef:function(){return r.appThemeApiRef}}),e.o(r,"atlassianAuthApiRef")&&e.d(s,{atlassianAuthApiRef:function(){return r.atlassianAuthApiRef}}),e.o(r,"attachComponentData")&&e.d(s,{attachComponentData:function(){return r.attachComponentData}}),e.o(r,"auth0AuthApiRef")&&e.d(s,{auth0AuthApiRef:function(){return r.auth0AuthApiRef}}),e.o(r,"bitbucketAuthApiRef")&&e.d(s,{bitbucketAuthApiRef:function(){return r.bitbucketAuthApiRef}}),e.o(r,"configApiRef")&&e.d(s,{configApiRef:function(){return r.configApiRef}}),e.o(r,"createComponentExtension")&&e.d(s,{createComponentExtension:function(){return r.createComponentExtension}}),e.o(r,"createExternalRouteRef")&&e.d(s,{createExternalRouteRef:function(){return r.createExternalRouteRef}}),e.o(r,"createPlugin")&&e.d(s,{createPlugin:function(){return r.createPlugin}}),e.o(r,"createRoutableExtension")&&e.d(s,{createRoutableExtension:function(){return r.createRoutableExtension}}),e.o(r,"createRouteRef")&&e.d(s,{createRouteRef:function(){return r.createRouteRef}}),e.o(r,"discoveryApiRef")&&e.d(s,{discoveryApiRef:function(){return r.discoveryApiRef}}),e.o(r,"errorApiRef")&&e.d(s,{errorApiRef:function(){return r.errorApiRef}}),e.o(r,"featureFlagsApiRef")&&e.d(s,{featureFlagsApiRef:function(){return r.featureFlagsApiRef}}),e.o(r,"fetchApiRef")&&e.d(s,{fetchApiRef:function(){return r.fetchApiRef}}),e.o(r,"getComponentData")&&e.d(s,{getComponentData:function(){return r.getComponentData}}),e.o(r,"githubAuthApiRef")&&e.d(s,{githubAuthApiRef:function(){return r.githubAuthApiRef}}),e.o(r,"gitlabAuthApiRef")&&e.d(s,{gitlabAuthApiRef:function(){return r.gitlabAuthApiRef}}),e.o(r,"googleAuthApiRef")&&e.d(s,{googleAuthApiRef:function(){return r.googleAuthApiRef}}),e.o(r,"identityApiRef")&&e.d(s,{identityApiRef:function(){return r.identityApiRef}}),e.o(r,"microsoftAuthApiRef")&&e.d(s,{microsoftAuthApiRef:function(){return r.microsoftAuthApiRef}}),e.o(r,"oauth2ApiRef")&&e.d(s,{oauth2ApiRef:function(){return r.oauth2ApiRef}}),e.o(r,"oauthRequestApiRef")&&e.d(s,{oauthRequestApiRef:function(){return r.oauthRequestApiRef}}),e.o(r,"oidcAuthApiRef")&&e.d(s,{oidcAuthApiRef:function(){return r.oidcAuthApiRef}}),e.o(r,"oktaAuthApiRef")&&e.d(s,{oktaAuthApiRef:function(){return r.oktaAuthApiRef}}),e.o(r,"oneloginAuthApiRef")&&e.d(s,{oneloginAuthApiRef:function(){return r.oneloginAuthApiRef}}),e.o(r,"samlAuthApiRef")&&e.d(s,{samlAuthApiRef:function(){return r.samlAuthApiRef}}),e.o(r,"storageApiRef")&&e.d(s,{storageApiRef:function(){return r.storageApiRef}}),e.o(r,"useApp")&&e.d(s,{useApp:function(){return r.useApp}}),e.o(r,"useElementFilter")&&e.d(s,{useElementFilter:function(){return r.useElementFilter}}),e.o(r,"useRouteRef")&&e.d(s,{useRouteRef:function(){return r.useRouteRef}}),e.o(r,"useRouteRefParams")&&e.d(s,{useRouteRefParams:function(){return r.useRouteRefParams}});var t=e(39135)},90515:function(ee,s,e){"use strict";e.d(s,{T:function(){return t}});class r{constructor(d){if(this.config=d,!d.id.split(".").flatMap(i=>i.split("-")).every(i=>i.match(/^[a-z][a-z0-9]*$/)))throw new Error(`API id must only contain period separated lowercase alphanum tokens with dashes, got '${d.id}'`)}get id(){return this.config.id}get T(){throw new Error(`tried to read ApiRef.T of ${this}`)}toString(){return`apiRef{${this.config.id}}`}}function t(l){return new r(l)}},25182:function(ee,s,e){"use strict";e.d(s,{n:function(){return r}});function r(t,l){return"id"in t?{api:t,deps:{},factory:()=>l}:t}},86833:function(ee,s,e){"use strict";e.d(s,{h_:function(){return r.h_},I_:function(){return r.I_},T0:function(){return t.T},createApiFactory:function(){return v.n}});var r=e(5761),t=e(90515),l=e(16362),d=e.n(l);e.o(l,"FeatureFlagState")&&e.d(s,{FeatureFlagState:function(){return l.FeatureFlagState}}),e.o(l,"SessionState")&&e.d(s,{SessionState:function(){return l.SessionState}}),e.o(l,"alertApiRef")&&e.d(s,{alertApiRef:function(){return l.alertApiRef}}),e.o(l,"analyticsApiRef")&&e.d(s,{analyticsApiRef:function(){return l.analyticsApiRef}}),e.o(l,"appThemeApiRef")&&e.d(s,{appThemeApiRef:function(){return l.appThemeApiRef}}),e.o(l,"atlassianAuthApiRef")&&e.d(s,{atlassianAuthApiRef:function(){return l.atlassianAuthApiRef}}),e.o(l,"attachComponentData")&&e.d(s,{attachComponentData:function(){return l.attachComponentData}}),e.o(l,"auth0AuthApiRef")&&e.d(s,{auth0AuthApiRef:function(){return l.auth0AuthApiRef}}),e.o(l,"bitbucketAuthApiRef")&&e.d(s,{bitbucketAuthApiRef:function(){return l.bitbucketAuthApiRef}}),e.o(l,"configApiRef")&&e.d(s,{configApiRef:function(){return l.configApiRef}}),e.o(l,"createApiFactory")&&e.d(s,{createApiFactory:function(){return l.createApiFactory}}),e.o(l,"createComponentExtension")&&e.d(s,{createComponentExtension:function(){return l.createComponentExtension}}),e.o(l,"createExternalRouteRef")&&e.d(s,{createExternalRouteRef:function(){return l.createExternalRouteRef}}),e.o(l,"createPlugin")&&e.d(s,{createPlugin:function(){return l.createPlugin}}),e.o(l,"createRoutableExtension")&&e.d(s,{createRoutableExtension:function(){return l.createRoutableExtension}}),e.o(l,"createRouteRef")&&e.d(s,{createRouteRef:function(){return l.createRouteRef}}),e.o(l,"discoveryApiRef")&&e.d(s,{discoveryApiRef:function(){return l.discoveryApiRef}}),e.o(l,"errorApiRef")&&e.d(s,{errorApiRef:function(){return l.errorApiRef}}),e.o(l,"featureFlagsApiRef")&&e.d(s,{featureFlagsApiRef:function(){return l.featureFlagsApiRef}}),e.o(l,"fetchApiRef")&&e.d(s,{fetchApiRef:function(){return l.fetchApiRef}}),e.o(l,"getComponentData")&&e.d(s,{getComponentData:function(){return l.getComponentData}}),e.o(l,"githubAuthApiRef")&&e.d(s,{githubAuthApiRef:function(){return l.githubAuthApiRef}}),e.o(l,"gitlabAuthApiRef")&&e.d(s,{gitlabAuthApiRef:function(){return l.gitlabAuthApiRef}}),e.o(l,"googleAuthApiRef")&&e.d(s,{googleAuthApiRef:function(){return l.googleAuthApiRef}}),e.o(l,"identityApiRef")&&e.d(s,{identityApiRef:function(){return l.identityApiRef}}),e.o(l,"microsoftAuthApiRef")&&e.d(s,{microsoftAuthApiRef:function(){return l.microsoftAuthApiRef}}),e.o(l,"oauth2ApiRef")&&e.d(s,{oauth2ApiRef:function(){return l.oauth2ApiRef}}),e.o(l,"oauthRequestApiRef")&&e.d(s,{oauthRequestApiRef:function(){return l.oauthRequestApiRef}}),e.o(l,"oidcAuthApiRef")&&e.d(s,{oidcAuthApiRef:function(){return l.oidcAuthApiRef}}),e.o(l,"oktaAuthApiRef")&&e.d(s,{oktaAuthApiRef:function(){return l.oktaAuthApiRef}}),e.o(l,"oneloginAuthApiRef")&&e.d(s,{oneloginAuthApiRef:function(){return l.oneloginAuthApiRef}}),e.o(l,"samlAuthApiRef")&&e.d(s,{samlAuthApiRef:function(){return l.samlAuthApiRef}}),e.o(l,"storageApiRef")&&e.d(s,{storageApiRef:function(){return l.storageApiRef}}),e.o(l,"useApp")&&e.d(s,{useApp:function(){return l.useApp}}),e.o(l,"useElementFilter")&&e.d(s,{useElementFilter:function(){return l.useElementFilter}}),e.o(l,"useRouteRef")&&e.d(s,{useRouteRef:function(){return l.useRouteRef}}),e.o(l,"useRouteRefParams")&&e.d(s,{useRouteRefParams:function(){return l.useRouteRefParams}});var v=e(25182)},16362:function(){},5761:function(ee,s,e){"use strict";e.d(s,{I_:function(){return l},h_:function(){return d}});var r=e(2784),t=e(76241);function l(){const i=(0,t.Vt)("api-context");if(!i)throw new Error("API context is not available");const p=i.atVersion(1);if(!p)throw new Error("ApiContext v1 not available");return p}function d(i){const g=l().get(i);if(!g)throw new Error(`No implementation available for ${i}`);return g}function v(i){return function(g){const h=E=>{const o=l(),S={};for(const M in i)if(i.hasOwnProperty(M)){const x=i[M],j=o.get(x);if(!j)throw new Error(`No implementation available for ${x}`);S[M]=j}return React.createElement(g,{...E,...S})},c=g.displayName||g.name||"Component";return h.displayName=`withApis(${c})`,h}}},31311:function(ee,s,e){"use strict";e.d(s,{q:function(){return r.q}});var r=e(32483),t=e(67229),l=e.n(t);e.o(t,"attachComponentData")&&e.d(s,{attachComponentData:function(){return t.attachComponentData}}),e.o(t,"createApiFactory")&&e.d(s,{createApiFactory:function(){return t.createApiFactory}}),e.o(t,"createApiRef")&&e.d(s,{createApiRef:function(){return t.createApiRef}}),e.o(t,"createComponentExtension")&&e.d(s,{createComponentExtension:function(){return t.createComponentExtension}}),e.o(t,"createExternalRouteRef")&&e.d(s,{createExternalRouteRef:function(){return t.createExternalRouteRef}}),e.o(t,"createPlugin")&&e.d(s,{createPlugin:function(){return t.createPlugin}}),e.o(t,"createRoutableExtension")&&e.d(s,{createRoutableExtension:function(){return t.createRoutableExtension}}),e.o(t,"createRouteRef")&&e.d(s,{createRouteRef:function(){return t.createRouteRef}}),e.o(t,"getComponentData")&&e.d(s,{getComponentData:function(){return t.getComponentData}}),e.o(t,"useApi")&&e.d(s,{useApi:function(){return t.useApi}}),e.o(t,"useApiHolder")&&e.d(s,{useApiHolder:function(){return t.useApiHolder}}),e.o(t,"useElementFilter")&&e.d(s,{useElementFilter:function(){return t.useElementFilter}}),e.o(t,"useRouteRef")&&e.d(s,{useRouteRef:function(){return t.useRouteRef}}),e.o(t,"useRouteRefParams")&&e.d(s,{useRouteRefParams:function(){return t.useRouteRefParams}})},67229:function(){},32483:function(ee,s,e){"use strict";e.d(s,{q:function(){return t}});var r=e(76241);const t=()=>{const l=(0,r.Vt)("app-context");if(!l)throw new Error("App context is not available");const d=l.atVersion(1);if(!d)throw new Error("AppContext v1 not available");return d}},74181:function(ee,s,e){"use strict";e.d(s,{R5:function(){return d},CO:function(){return o},P4:function(){return E},IY:function(){return v},vJ:function(){return Z}});var r=e(76241);const t=(0,r.uW)("component-data-store",()=>new WeakMap),l="__backstage_data";function d(O,F,B){var de;const V=O;let ne=(de=V[l])!=null?de:t.get(O);if(ne||(ne={map:new Map},Object.defineProperty(V,l,{enumerable:!1,configurable:!0,writable:!1,value:ne}),t.set(O,ne)),ne.map.has(F)){const ve=O.displayName||O.name;throw new Error(`Attempted to attach duplicate data "${F}" to component "${ve}"`)}ne.map.set(F,B)}function v(O,F){var ne;if(!O)return;const B=O.type;if(!B)return;const V=(ne=B[l])!=null?ne:t.get(B);if(!!V)return V.map.get(F)}var i=e(2784),p=e(88609),g=e(31311),h=e(82772);class c extends i.Component{constructor(){super(...arguments);ae(this,"state",{error:void 0});ae(this,"handleErrorReset",()=>{this.setState({error:void 0})})}static getDerivedStateFromError(F){return{error:F}}render(){const{error:F}=this.state,{app:B,plugin:V}=this.props,{ErrorBoundaryFallback:ne}=B.getComponents();return F?i.createElement(ne,{error:F,resetError:this.handleErrorReset,plugin:V}):this.props.children}}function E(O){const{component:F,mountPoint:B,name:V}=O;return S({component:{lazy:()=>F().then(ne=>{const de=be=>{try{(0,h.tg)(B)}catch(pe){if(typeof pe=="object"&&pe!==null){const{message:je}=pe;if(typeof je=="string"&&je.startsWith("No path for "))throw new Error(`Routable extension component with mount point ${B} was not discovered in the app element tree. Routable extension components may not be rendered by other components and must be directly available as an element within the App provider component.`)}throw pe}return i.createElement(ne,{...be})},ve=V||ne.displayName||ne.name||"LazyComponent";return de.displayName=`RoutableExtension(${ve})`,de},ne=>ve=>{const be=(0,g.q)(),{BootErrorPage:pe}=be.getComponents();return i.createElement(pe,{step:"load-chunk",error:ne})})},data:{"core.mountPoint":B},name:V})}function o(O){const{component:F,name:B}=O;return S({component:F,name:B})}function S(O){const{data:F={},name:B}=O;B||console.warn("Declaring extensions without name is DEPRECATED. Make sure that all usages of createReactExtension, createComponentExtension and createRoutableExtension provide a name.");let V;if("lazy"in O.component){const de=O.component.lazy;V=(0,i.lazy)(()=>de().then(ve=>({default:ve})))}else V=O.component.sync;const ne=B||V.displayName||V.name||"Component";return{expose(de){const ve=be=>{const pe=(0,g.q)(),{Progress:je}=pe.getComponents(),xe=F==null?void 0:F["core.mountPoint"];return i.createElement(i.Suspense,{fallback:i.createElement(je,null)},i.createElement(c,{app:pe,plugin:de},i.createElement(p.fC,{attributes:{pluginId:de.getId(),...B&&{extension:B},...xe&&{routeRef:xe.id}}},i.createElement(V,{...be}))))};d(ve,"core.plugin",de);for(const[be,pe]of Object.entries(F))d(ve,be,pe);return ve.displayName=`Extension(${ne})`,ve}}}var M=e(27399);function x(O,F,B,V){return i.Children.toArray(O).flatMap(ne=>{if(!(0,i.isValidElement)(ne))return[];if(ne.type===i.Fragment)return x(ne.props.children,F,B,V);if(v(ne,"core.featureFlagged")){const de=ne.props;return("with"in de?F.isActive(de.with):!F.isActive(de.without))?x(ne.props.children,F,B,V):[]}if(B===void 0||B(ne))return[ne];if(V)throw new Error(V);return x(ne.props.children,F,B,V)})}class j{constructor(F,B){this.node=F,this.featureFlagsApi=B}selectByComponentData(F){const B=x(this.node,this.featureFlagsApi,V=>v(V,F.key)!==void 0,F.withStrictError);return new j(B,this.featureFlagsApi)}findComponentData(F){return x(this.node,this.featureFlagsApi,V=>v(V,F.key)!==void 0).map(V=>v(V,F.key)).filter(V=>V!==void 0)}getElements(){return x(this.node,this.featureFlagsApi)}}function Z(O,F,B=[]){const V=(0,M.useApi)(M.featureFlagsApiRef),ne=new j(O,V);return(0,i.useMemo)(()=>F(ne),[O,...B])}},80274:function(){},36964:function(ee,s,e){"use strict";e.d(s,{AnalyticsContext:function(){return r.f},useAnalytics:function(){return r.z},FeatureFlagState:function(){return t.FeatureFlagState},SessionState:function(){return t.SessionState},alertApiRef:function(){return t.alertApiRef},analyticsApiRef:function(){return t.analyticsApiRef},appThemeApiRef:function(){return t.appThemeApiRef},atlassianAuthApiRef:function(){return t.atlassianAuthApiRef},auth0AuthApiRef:function(){return t.auth0AuthApiRef},bitbucketAuthApiRef:function(){return t.bitbucketAuthApiRef},configApiRef:function(){return t.configApiRef},discoveryApiRef:function(){return t.discoveryApiRef},errorApiRef:function(){return t.errorApiRef},featureFlagsApiRef:function(){return t.featureFlagsApiRef},fetchApiRef:function(){return t.fetchApiRef},githubAuthApiRef:function(){return t.githubAuthApiRef},gitlabAuthApiRef:function(){return t.gitlabAuthApiRef},googleAuthApiRef:function(){return t.googleAuthApiRef},identityApiRef:function(){return t.identityApiRef},microsoftAuthApiRef:function(){return t.microsoftAuthApiRef},oauth2ApiRef:function(){return t.oauth2ApiRef},oauthRequestApiRef:function(){return t.oauthRequestApiRef},oidcAuthApiRef:function(){return t.oidcAuthApiRef},oktaAuthApiRef:function(){return t.oktaAuthApiRef},oneloginAuthApiRef:function(){return t.oneloginAuthApiRef},samlAuthApiRef:function(){return t.samlAuthApiRef},storageApiRef:function(){return t.storageApiRef},useApp:function(){return l.q},attachComponentData:function(){return d.R5},createComponentExtension:function(){return d.CO},createRoutableExtension:function(){return d.P4},getComponentData:function(){return d.IY},useElementFilter:function(){return d.vJ},createPlugin:function(){return p.r},createExternalRouteRef:function(){return g.x8},createRouteRef:function(){return g.NT},useRouteRef:function(){return g.tg},useRouteRefParams:function(){return g.Oi}});var r=e(28461),t=e(27399);e.o(t,"attachComponentData")&&e.d(s,{attachComponentData:function(){return t.attachComponentData}}),e.o(t,"createApiFactory")&&e.d(s,{createApiFactory:function(){return t.createApiFactory}}),e.o(t,"createApiRef")&&e.d(s,{createApiRef:function(){return t.createApiRef}}),e.o(t,"createComponentExtension")&&e.d(s,{createComponentExtension:function(){return t.createComponentExtension}}),e.o(t,"createExternalRouteRef")&&e.d(s,{createExternalRouteRef:function(){return t.createExternalRouteRef}}),e.o(t,"createPlugin")&&e.d(s,{createPlugin:function(){return t.createPlugin}}),e.o(t,"createRoutableExtension")&&e.d(s,{createRoutableExtension:function(){return t.createRoutableExtension}}),e.o(t,"createRouteRef")&&e.d(s,{createRouteRef:function(){return t.createRouteRef}}),e.o(t,"getComponentData")&&e.d(s,{getComponentData:function(){return t.getComponentData}}),e.o(t,"useApi")&&e.d(s,{useApi:function(){return t.useApi}}),e.o(t,"useApiHolder")&&e.d(s,{useApiHolder:function(){return t.useApiHolder}}),e.o(t,"useApp")&&e.d(s,{useApp:function(){return t.useApp}}),e.o(t,"useElementFilter")&&e.d(s,{useElementFilter:function(){return t.useElementFilter}}),e.o(t,"useRouteRef")&&e.d(s,{useRouteRef:function(){return t.useRouteRef}}),e.o(t,"useRouteRefParams")&&e.d(s,{useRouteRefParams:function(){return t.useRouteRefParams}});var l=e(31311);e.o(l,"attachComponentData")&&e.d(s,{attachComponentData:function(){return l.attachComponentData}}),e.o(l,"createApiFactory")&&e.d(s,{createApiFactory:function(){return l.createApiFactory}}),e.o(l,"createApiRef")&&e.d(s,{createApiRef:function(){return l.createApiRef}}),e.o(l,"createComponentExtension")&&e.d(s,{createComponentExtension:function(){return l.createComponentExtension}}),e.o(l,"createExternalRouteRef")&&e.d(s,{createExternalRouteRef:function(){return l.createExternalRouteRef}}),e.o(l,"createPlugin")&&e.d(s,{createPlugin:function(){return l.createPlugin}}),e.o(l,"createRoutableExtension")&&e.d(s,{createRoutableExtension:function(){return l.createRoutableExtension}}),e.o(l,"createRouteRef")&&e.d(s,{createRouteRef:function(){return l.createRouteRef}}),e.o(l,"getComponentData")&&e.d(s,{getComponentData:function(){return l.getComponentData}}),e.o(l,"useApi")&&e.d(s,{useApi:function(){return l.useApi}}),e.o(l,"useApiHolder")&&e.d(s,{useApiHolder:function(){return l.useApiHolder}}),e.o(l,"useElementFilter")&&e.d(s,{useElementFilter:function(){return l.useElementFilter}}),e.o(l,"useRouteRef")&&e.d(s,{useRouteRef:function(){return l.useRouteRef}}),e.o(l,"useRouteRefParams")&&e.d(s,{useRouteRefParams:function(){return l.useRouteRefParams}});var d=e(74181),v=e(80274),i=e.n(v);e.o(v,"createApiFactory")&&e.d(s,{createApiFactory:function(){return v.createApiFactory}}),e.o(v,"createApiRef")&&e.d(s,{createApiRef:function(){return v.createApiRef}}),e.o(v,"createExternalRouteRef")&&e.d(s,{createExternalRouteRef:function(){return v.createExternalRouteRef}}),e.o(v,"createPlugin")&&e.d(s,{createPlugin:function(){return v.createPlugin}}),e.o(v,"createRouteRef")&&e.d(s,{createRouteRef:function(){return v.createRouteRef}}),e.o(v,"useApi")&&e.d(s,{useApi:function(){return v.useApi}}),e.o(v,"useApiHolder")&&e.d(s,{useApiHolder:function(){return v.useApiHolder}}),e.o(v,"useRouteRef")&&e.d(s,{useRouteRef:function(){return v.useRouteRef}}),e.o(v,"useRouteRefParams")&&e.d(s,{useRouteRefParams:function(){return v.useRouteRefParams}});var p=e(96896),g=e(82772)},96896:function(ee,s,e){"use strict";e.d(s,{r:function(){return t}});class r{constructor(d){this.config=d}getId(){return this.config.id}getApis(){var d;return(d=this.config.apis)!=null?d:[]}getFeatureFlags(){var d,v;return(v=(d=this.config.featureFlags)==null?void 0:d.slice())!=null?v:[]}get routes(){var d;return(d=this.config.routes)!=null?d:{}}get externalRoutes(){var d;return(d=this.config.externalRoutes)!=null?d:{}}provide(d){return d.expose(this)}toString(){return`plugin{${this.config.id}}`}}function t(l){return new r(l)}},82772:function(ee,s,e){var M,x,j;"use strict";e.d(s,{x8:function(){return h},NT:function(){return d},tg:function(){return o},Oi:function(){return S}});var r=e(76241);const t=(0,r.uW)("route-ref-type",()=>Symbol("route-ref-type"));class l{constructor(O,F){ae(this,M,"absolute");this.id=O,this.params=F}get title(){return this.id}toString(){return`routeRef{type=absolute,id=${this.id}}`}}M=t;function d(Z){var O;return new l(Z.id,(O=Z.params)!=null?O:[])}const v=/^\w+$/;class i{constructor(O,F,B,V){ae(this,x,"sub");this.id=O,this.path=F,this.parent=B,this.params=V}toString(){return`routeRef{type=sub,id=${this.id}}`}}x=t;function p(Z){const{id:O,path:F,parent:B}=Z,V=F.split("/").filter(ve=>ve.startsWith(":")).map(ve=>ve.substring(1)),ne=[...B.params,...V];if(B.params.some(ve=>V.includes(ve)))throw new Error("SubRouteRef may not have params that overlap with its parent");if(!F.startsWith("/"))throw new Error(`SubRouteRef path must start with '/', got '${F}'`);if(F.endsWith("/"))throw new Error(`SubRouteRef path must not end with '/', got '${F}'`);for(const ve of V)if(!v.test(ve))throw new Error(`SubRouteRef path has invalid param, got '${ve}'`);return new i(O,F,B,ne)}class g{constructor(O,F,B){ae(this,j,"external");this.id=O,this.params=F,this.optional=B}toString(){return`routeRef{type=external,id=${this.id}}`}}j=t;function h(Z){var O;return new g(Z.id,(O=Z.params)!=null?O:[],Boolean(Z.optional))}var c=e(2784),E=e(10289);function o(Z){const O=(0,E.TH)(),F=(0,r.Vt)("routing-context");if(!F)throw new Error("Routing context is not available");const B=F.atVersion(1),V=(0,c.useMemo)(()=>B&&B.resolve(Z,O),[B,Z,O]);if(!F)throw new Error("useRouteRef used outside of routing context");if(!B)throw new Error("RoutingContext v1 not available");const ne="optional"in Z&&Z.optional;if(!V&&!ne)throw new Error(`No path for ${Z}`);return V}function S(Z){return(0,E.UO)()}},10179:function(ee,s,e){"use strict";e.d(s,{SP:function(){return M},dR:function(){return E},VL:function(){return j},BD:function(){return t}});function r(Z){if(typeof Z!="object"||Z===null||Array.isArray(Z))return!1;const O=Z;return!(typeof O.name!="string"||O.name===""||typeof O.message!="string")}function t(Z){if(typeof Z!="object"||Z===null||Array.isArray(Z))throw new Error(`Encountered invalid error, not an object, got '${Z}'`);const O=Z;if(typeof O.name!="string"||O.name==="")throw new Error(`Encountered error object without a name, got '${Z}'`);if(typeof O.message!="string")throw new Error(`Encountered error object without a message, got '${Z}'`)}var l=e(24852);function d(Z,O){const F=serializeErrorInternal(Z),B={name:"Unknown",message:"<no reason given>",...F};return(O==null?void 0:O.includeStack)||delete B.stack,B}function v(Z){const O=(0,l.deserializeError)(Z);return Z.stack||(O.stack=void 0),O}function i(Z){if(r(Z)){const O=String(Z);return O!=="[object Object]"?O:`${Z.name}: ${Z.message}`}return`unknown error '${Z}'`}class p extends Error{constructor(O,F){var V;let B=O;if(F!==void 0){const ne=i(F);B?B+=`; caused by ${ne}`:B=`caused by ${ne}`}super(B);ae(this,"cause");(V=Error.captureStackTrace)==null||V.call(Error,this,this.constructor),this.name=this.constructor.name,this.cause=r(F)?F:void 0}}class g extends null{}class h extends null{}class c extends null{}class E extends p{}class o extends null{}class S extends null{}class M extends p{constructor(O,F){super(O,F);this.name=r(F)?F.name:"Error"}}async function x(Z){var O;try{const F=await Z.text();if(F){if((O=Z.headers.get("content-type"))==null?void 0:O.startsWith("application/json"))try{const B=JSON.parse(F);if(B.error&&B.response)return B}catch{}return{error:{name:"Error",message:`Request failed with status ${Z.status} ${Z.statusText}, ${F}`},response:{statusCode:Z.status}}}}catch{}return{error:{name:"Error",message:`Request failed with status ${Z.status} ${Z.statusText}`},response:{statusCode:Z.status}}}class j extends Error{constructor(O){super(O.message);ae(this,"response");ae(this,"body");ae(this,"cause");this.name="ResponseError",this.response=O.response,this.body=O.data,this.cause=O.cause}static async fromResponse(O){const F=await x(O),B=F.response.statusCode||O.status,V=F.error.name||O.statusText,ne=`Request failed with ${B} ${V}`,de=v(F.error);return new j({message:ne,response:O,data:F,cause:de})}}},36356:function(ee,s,e){var E,o,S,M,x;"use strict";e.d(s,{nW:function(){return c},ae:function(){return i},q3:function(){return p}});var r=e(36964);const t=(0,r.createApiRef)({id:"core.scmauth"});class l{constructor(O){on(this,E,void 0);mn(this,E,O)}async getCredentials(O){const F=new URL(O.url),B=Xe(this,E).find(V=>V.isUrlSupported(F));if(!B)throw new Error(`No authentication provider available for access to '${O.url}'`);return B.getCredentials(O)}}E=new WeakMap;const j=class{constructor(O,F,B,V){on(this,o,void 0);on(this,S,void 0);on(this,M,void 0);on(this,x,void 0);mn(this,o,F),mn(this,S,B),mn(this,M,V),mn(this,x,O)}static createDefaultApiFactory(){return createApiFactory({api:scmAuthApiRef,deps:{github:githubAuthApiRef,gitlab:gitlabAuthApiRef,azure:microsoftAuthApiRef,bitbucket:bitbucketAuthApiRef},factory:({github:O,gitlab:F,azure:B,bitbucket:V})=>j.merge(j.forGithub(O),j.forGitlab(F),j.forAzure(B),j.forBitbucket(V))})}static forAuthApi(O,F){return new j("generic",O,F.host,F.scopeMapping)}static forGithub(O,F){var V;const B=(V=F==null?void 0:F.host)!=null?V:"github.com";return new j("github",O,B,{default:["repo","read:org","read:user"],repoWrite:["gist"]})}static forGitlab(O,F){var V;const B=(V=F==null?void 0:F.host)!=null?V:"gitlab.com";return new j("gitlab",O,B,{default:["read_user","read_api","read_repository"],repoWrite:["write_repository","api"]})}static forAzure(O,F){var V;const B=(V=F==null?void 0:F.host)!=null?V:"dev.azure.com";return new j("azure",O,B,{default:["vso.build","vso.code","vso.graph","vso.project","vso.profile"],repoWrite:["vso.code_manage"]})}static forBitbucket(O,F){var V;const B=(V=F==null?void 0:F.host)!=null?V:"bitbucket.org";return new j("bitbucket",O,B,{default:["account","team","pullrequest","snippet","issue"],repoWrite:["pullrequest:write","snippet:write","issue:write"]})}static merge(...O){return new l(O)}isUrlSupported(O){return O.host===Xe(this,S)}getAdditionalScopesForProvider(O){var F,B;return!(O==null?void 0:O.customScopes)||Xe(this,x)==="generic"?[]:(B=(F=O.customScopes)==null?void 0:F[Xe(this,x)])!=null?B:[]}async getCredentials(O){const{url:F,additionalScope:B,...V}=O,ne=Xe(this,M).default.slice();(B==null?void 0:B.repoWrite)&&ne.push(...Xe(this,M).repoWrite);const de=this.getAdditionalScopesForProvider(B);de.length&&ne.push(...de);const ve=[...new Set(ne)],be=await Xe(this,o).getAccessToken(ve,V);return{token:be,headers:{Authorization:`Bearer ${be}`}}}};let d=j;o=new WeakMap,S=new WeakMap,M=new WeakMap,x=new WeakMap;var v=e(63925);class i{static fromConfig(O){return v.Lx.fromConfig(O)}}const p=(0,r.createApiRef)({id:"integration.scmintegrations"});var g=e(73250),h=e(2784);const c=Z=>{var ne;const{type:O}=Z,F=(0,r.useApp)(),B=g.Z,V=O&&(ne=F.getSystemIcon(O))!=null?ne:B;return h.createElement(V,null)}},63925:function(ee,s,e){var De,Pe,Ae,Ze,yt,ct,Ge;"use strict";e.d(s,{Lx:function(){return Ue},Pb:function(){return Tt}});var r=e(82717),t=e.n(r),l=e(76635);function d(J){const A=new URL("http://example.com");return A.host=J,A.host===J}function v(J){try{return new URL(J),!0}catch{return!1}}function i(J,A){return{list(){return J},byUrl(D){try{const z=typeof D=="string"?new URL(D):D;return J.find(re=>A(re)===z.host)}catch{return}},byHost(D){return J.find(z=>A(z)===D)}}}function p(J){const{url:A,base:D,lineNumber:z}=J;try{return new URL(A),A}catch{}let re;if(A.startsWith("/")){const{filepath:Fe}=t()(D);re=new URL(D);const Ee=(0,l.trimEnd)(re.pathname.substring(0,re.pathname.length-Fe.length),"/");re.pathname=`${Ee}${A}`}else re=new URL(A,D);return re.search=new URL(D).search,z&&(re.hash=`L${z}`),re.toString()}const g="GB",ue=class{constructor(A,D,z,re,Fe,Ee){on(this,De,void 0);on(this,Pe,void 0);on(this,Ae,void 0);on(this,Ze,void 0);on(this,yt,void 0);on(this,ct,void 0);on(this,Ge,(...A)=>{const D=new URL(Xe(this,De));return D.pathname=A.map(z=>encodeURIComponent(z)).join("/"),D});mn(this,De,A),mn(this,Pe,D),mn(this,Ae,z),mn(this,Ze,re),mn(this,yt,Fe),mn(this,ct,Ee)}static fromRepoUrl(A){var Et;const D=new URL(A);let z,re,Fe;const Ee=D.pathname.split("/").map(ce=>decodeURIComponent(ce));if(Ee[2]==="_git"?(z=Ee[1],re=Fe=Ee[3]):Ee[3]==="_git"&&(z=Ee[1],re=Ee[2],Fe=Ee[4]),!z||!re||!Fe)throw new Error("Azure URL must point to a git repository");const Ie=(Et=D.searchParams.get("path"))!=null?Et:void 0;let Me;const He=D.searchParams.get("version");if(He){if(He.slice(0,2)!=="GB")throw new Error("Azure URL version must point to a git branch");Me=He.slice(2)}return new ue(D.origin,z,re,Fe,Ie,Me)}toRepoUrl(){let A;return Xe(this,Ae)===Xe(this,Ze)?A=Xe(this,Ge).call(this,Xe(this,Pe),"_git",Xe(this,Ze)):A=Xe(this,Ge).call(this,Xe(this,Pe),Xe(this,Ae),"_git",Xe(this,Ze)),Xe(this,yt)&&A.searchParams.set("path",Xe(this,yt)),Xe(this,ct)&&A.searchParams.set("version",g+Xe(this,ct)),A.toString()}toFileUrl(){if(!Xe(this,yt))throw new Error("Azure URL must point to a specific path to be able to download a file");const A=Xe(this,Ge).call(this,Xe(this,Pe),Xe(this,Ae),"_apis","git","repositories",Xe(this,Ze),"items");return A.searchParams.set("api-version","6.0"),A.searchParams.set("path",Xe(this,yt)),Xe(this,ct)&&A.searchParams.set("version",Xe(this,ct)),A.toString()}toArchiveUrl(){const A=Xe(this,Ge).call(this,Xe(this,Pe),Xe(this,Ae),"_apis","git","repositories",Xe(this,Ze),"items");return A.searchParams.set("recursionLevel","full"),A.searchParams.set("download","true"),A.searchParams.set("api-version","6.0"),Xe(this,yt)&&A.searchParams.set("scopePath",Xe(this,yt)),Xe(this,ct)&&A.searchParams.set("version",Xe(this,ct)),A.toString()}toCommitsUrl(){const A=Xe(this,Ge).call(this,Xe(this,Pe),Xe(this,Ae),"_apis","git","repositories",Xe(this,Ze),"commits");return A.searchParams.set("api-version","6.0"),Xe(this,ct)&&A.searchParams.set("searchCriteria.itemVersion.version",Xe(this,ct)),A.toString()}getOwner(){return Xe(this,Pe)}getProject(){return Xe(this,Ae)}getRepo(){return Xe(this,Ze)}getPath(){return Xe(this,yt)}getRef(){return Xe(this,ct)}};let h=ue;De=new WeakMap,Pe=new WeakMap,Ae=new WeakMap,Ze=new WeakMap,yt=new WeakMap,ct=new WeakMap,Ge=new WeakMap;const c="dev.azure.com";function E(J){var z;const A=(z=J.getOptionalString("host"))!=null?z:c,D=J.getOptionalString("token");if(!d(A))throw new Error(`Invalid Azure integration config, '${A}' is not a valid host`);return{host:A,token:D}}function o(J){const A=J.map(E);return A.some(D=>D.host===c)||A.push({host:c}),A}const $e=class{constructor(A){this.integrationConfig=A}get type(){return"azure"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(A){var re;const{url:D,base:z}=A;if(v(D))return D;try{const Fe=h.fromRepoUrl(z),Ee=new URL(z),Ie=new URL(`https://a.com${(re=Fe.getPath())!=null?re:""}`),Me=new URL(D,Ie).pathname;return Ee.searchParams.set("path",Me),A.lineNumber&&(Ee.searchParams.set("line",String(A.lineNumber)),Ee.searchParams.set("lineEnd",String(A.lineNumber+1)),Ee.searchParams.set("lineStartColumn","1"),Ee.searchParams.set("lineEndColumn","1")),Ee.toString()}catch{return new URL(D,z).toString()}}resolveEditUrl(A){return A}};let S=$e;ae(S,"factory",({config:A})=>{var z;const D=o((z=A.getOptionalConfigArray("integrations.azure"))!=null?z:[]);return i(D.map(re=>new $e(re)),re=>re.config.host)});var M=e(48834).Buffer;function x(J){return AzureUrl.fromRepoUrl(J).toFileUrl()}function j(J){return AzureUrl.fromRepoUrl(J).toArchiveUrl()}function Z(J){return AzureUrl.fromRepoUrl(J).toCommitsUrl()}function O(J,A){const D=A?{...A}:{};if(J.token){const z=M.from(`:${J.token}`,"utf8");D.Authorization=`Basic ${z.toString("base64")}`}return{headers:D}}const F="bitbucket.org",B="https://api.bitbucket.org/2.0";function V(J){var Ee;const A=(Ee=J.getOptionalString("host"))!=null?Ee:F;let D=J.getOptionalString("apiBaseUrl");const z=J.getOptionalString("token"),re=J.getOptionalString("username"),Fe=J.getOptionalString("appPassword");if(!d(A))throw new Error(`Invalid Bitbucket integration config, '${A}' is not a valid host`);return D?D=(0,l.trimEnd)(D,"/"):A===F&&(D=B),{host:A,apiBaseUrl:D,token:z,username:re,appPassword:Fe}}function ne(J){const A=J.map(V);return A.some(D=>D.host===F)||A.push({host:F,apiBaseUrl:B}),A}const qe=class{constructor(A){this.integrationConfig=A}get type(){return"bitbucket"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(A){const D=p(A);if(A.lineNumber){const z=new URL(D),re=z.pathname.split("/").slice(-1)[0];return z.hash=`${re}-${A.lineNumber}`,z.toString()}return D}resolveEditUrl(A){const D=t()(A),z=new URL(A);return z.searchParams.set("mode","edit"),z.searchParams.set("spa","0"),z.searchParams.set("at",D.ref),z.toString()}};let de=qe;ae(de,"factory",({config:A})=>{var z;const D=ne((z=A.getOptionalConfigArray("integrations.bitbucket"))!=null?z:[]);return i(D.map(re=>new qe(re)),re=>re.config.host)});var ve=e(96279),be=e(48834).Buffer;async function pe(J,A){const{name:D,owner:z,resource:re}=parseGitUrl(J),Fe=re==="bitbucket.org";let Ee=Fe?`${A.apiBaseUrl}/repositories/${z}/${D}`:`${A.apiBaseUrl}/projects/${z}/repos/${D}/default-branch`,Ie=await fetch(Ee,Qe(A));if(Ie.status===404&&!Fe&&(Ee=`${A.apiBaseUrl}/projects/${z}/repos/${D}/branches/default`,Ie=await fetch(Ee,Qe(A))),!Ie.ok){const He=`Failed to retrieve default branch from ${Ee}, ${Ie.status} ${Ie.statusText}`;throw new Error(He)}let Me;if(Fe)Me=(await Ie.json()).mainbranch.name;else{const{displayId:He}=await Ie.json();Me=He}if(!Me)throw new Error(`Failed to read default branch from ${Ee}. Response ${Ie.status} ${Ie.json()}`);return Me}async function je(J,A){const{name:D,owner:z,ref:re,protocol:Fe,resource:Ee,filepath:Ie}=parseGitUrl(J),Me=Ee==="bitbucket.org";let He=re;He||(He=await pe(J,A));const Et=Ie?`&path=${encodeURIComponent(Ie)}`:"";return Me?`${Fe}://${Ee}/${z}/${D}/get/${He}.tar.gz`:`${A.apiBaseUrl}/projects/${z}/repos/${D}/archive?format=tgz&at=${He}&prefix=${z}-${D}${Et}`}function xe(J,A){try{const{owner:D,name:z,ref:re,filepathtype:Fe,filepath:Ee}=parseGitUrl(J);if(!D||!z||Fe!=="browse"&&Fe!=="raw"&&Fe!=="src")throw new Error("Invalid Bitbucket URL or file path");const Ie=Ee.replace(/^\//,"");if(A.host==="bitbucket.org"){if(!re)throw new Error("Invalid Bitbucket URL or file path");return`${A.apiBaseUrl}/repositories/${D}/${z}/src/${re}/${Ie}`}return`${A.apiBaseUrl}/projects/${D}/repos/${z}/raw/${Ie}?at=${re}`}catch(D){throw new Error(`Incorrect URL: ${J}, ${D}`)}}function Qe(J){const A={};if(J.token)A.Authorization=`Bearer ${J.token}`;else if(J.username&&J.appPassword){const D=be.from(`${J.username}:${J.appPassword}`,"utf8");A.Authorization=`Basic ${D.toString("base64")}`}return{headers:A}}const st="github.com",ke="https://api.github.com",ht="https://raw.githubusercontent.com";function _e(J){var Ee,Ie;const A=(Ee=J.getOptionalString("host"))!=null?Ee:st;let D=J.getOptionalString("apiBaseUrl"),z=J.getOptionalString("rawBaseUrl");const re=J.getOptionalString("token"),Fe=(Ie=J.getOptionalConfigArray("apps"))==null?void 0:Ie.map(Me=>({appId:Me.getNumber("appId"),clientId:Me.getString("clientId"),clientSecret:Me.getString("clientSecret"),webhookSecret:Me.getString("webhookSecret"),privateKey:Me.getString("privateKey"),allowedInstallationOwners:Me.getOptionalStringArray("allowedInstallationOwners")}));if(!d(A))throw new Error(`Invalid GitHub integration config, '${A}' is not a valid host`);return D?D=(0,l.trimEnd)(D,"/"):A===st&&(D=ke),z?z=(0,l.trimEnd)(z,"/"):A===st&&(z=ht),{host:A,apiBaseUrl:D,rawBaseUrl:z,token:re,apps:Fe}}function at(J){const A=J.map(_e);return A.some(D=>D.host===st)||A.push({host:st,apiBaseUrl:ke,rawBaseUrl:ht}),A}function pt(J,A,D){try{const{owner:z,name:re,ref:Fe,filepathtype:Ee,filepath:Ie}=parseGitUrl(J);if(!z||!re||!Fe||Ee!=="blob"&&Ee!=="raw"&&Ee!=="tree")throw new Error("Invalid GitHub URL or file path");const Me=Ie.replace(/^\//,"");return It(A,D)==="api"?`${A.apiBaseUrl}/repos/${z}/${re}/contents/${Me}?ref=${Fe}`:`${A.rawBaseUrl}/${z}/${re}/${Fe}/${Me}`}catch(z){throw new Error(`Incorrect URL: ${J}, ${z}`)}}function Nt(J,A){const D={};return It(J,A)==="api"&&(D.Accept="application/vnd.github.v3.raw"),A.token&&(D.Authorization=`token ${A.token}`),{headers:D}}function It(J,A){return J.apiBaseUrl&&(A.token||!J.rawBaseUrl)?"api":"raw"}class gt{constructor(){ae(this,"tokenCache",new Map);ae(this,"isNotExpired",A=>A.diff(DateTime.local(),"minutes").minutes>50)}async getOrCreateToken(A,D){const z=this.tokenCache.get(A);if(z&&this.isNotExpired(z.expiresAt))return{accessToken:z.token};const re=await D();return this.tokenCache.set(A,re),{accessToken:re.token}}}const tt={Accept:"application/vnd.github.machine-man-preview+json"};class St{constructor(A,D){ae(this,"appClient");ae(this,"baseUrl");ae(this,"baseAuthConfig");ae(this,"cache",new gt);ae(this,"allowedInstallationOwners");this.allowedInstallationOwners=A.allowedInstallationOwners,this.baseUrl=D,this.baseAuthConfig={appId:A.appId,privateKey:A.privateKey.replace(/\\n/gm,`
|
|
31
|
+
`)},this.appClient=new Octokit({baseUrl:D,headers:tt,authStrategy:createAppAuth,auth:this.baseAuthConfig})}async getInstallationCredentials(A,D){var Ee;const{installationId:z,suspended:re}=await this.getInstallationData(A);if(this.allowedInstallationOwners&&!((Ee=this.allowedInstallationOwners)==null?void 0:Ee.includes(A)))return{accessToken:void 0};if(re)throw new Error(`The GitHub application for ${A} is suspended`);const Fe=D?`${A}/${D}`:A;return this.cache.getOrCreateToken(Fe,async()=>{const Ie=await this.appClient.apps.createInstallationAccessToken({installation_id:z,headers:tt});if(D&&Ie.data.repository_selection==="selected"){const Me=new Octokit({baseUrl:this.baseUrl,auth:Ie.data.token});if(!(await Me.paginate(Me.apps.listReposAccessibleToInstallation)).some(ce=>ce.name===D))throw new Error(`The Backstage GitHub application used in the ${A} organization does not have access to a repository with the name ${D}`)}return{token:Ie.data.token,expiresAt:DateTime.fromISO(Ie.data.expires_at)}})}getInstallations(){return this.appClient.paginate(this.appClient.apps.listInstallations)}async getInstallationData(A){const z=(await this.getInstallations()).find(Fe=>{var Ee,Ie;return((Ie=(Ee=Fe.account)==null?void 0:Ee.login)==null?void 0:Ie.toLocaleLowerCase("en-US"))===A.toLocaleLowerCase("en-US")});if(z)return{installationId:z.id,suspended:Boolean(z.suspended_by)};const re=new Error(`No app installation found for ${A} in ${this.baseAuthConfig.appId}`);throw re.name="NotFoundError",re}}class Ct{constructor(A){ae(this,"apps");var D,z;this.apps=(z=(D=A.apps)==null?void 0:D.map(re=>new St(re,A.apiBaseUrl)))!=null?z:[]}async getAllInstallations(){return this.apps.length?(await Promise.all(this.apps.map(D=>D.getInstallations()))).flat():[]}async getAppToken(A,D){if(this.apps.length===0)return;const z=await Promise.all(this.apps.map(Ie=>Ie.getInstallationCredentials(A,D).then(Me=>({credentials:Me,error:void 0}),Me=>({credentials:void 0,error:Me})))),re=z.find(Ie=>Ie.credentials);if(re)return re.credentials.accessToken;const Ee=z.map(Ie=>Ie.error).find(Ie=>Ie.name!=="NotFoundError");if(Ee)throw Ee}}class Ot{constructor(A,D){this.githubAppCredentialsMux=A,this.token=D}async getCredentials(A){const D=parseGitUrl(A.url),z=D.owner||D.name,re=D.owner?D.name:void 0;let Fe="app",Ee=await this.githubAppCredentialsMux.getAppToken(z,re);return Ee||(Fe="token",Ee=this.token),{headers:Ee?{Authorization:`Bearer ${Ee}`}:void 0,token:Ee,type:Fe}}}ae(Ot,"create",null);class Ft{static fromIntegrations(A){const D=new Map;return A.github.list().forEach(z=>{const re=SingleInstanceGithubCredentialsProvider.create(z.config);D.set(z.config.host,re)}),new Ft(D)}constructor(A){this.providers=A}async getCredentials(A){const D=new URL(A.url),z=this.providers.get(D.host);if(!z)throw new Error(`There is no GitHub integration that matches ${A.url}. Please add a configuration for an integration.`);return z.getCredentials(A)}}const we=class{constructor(A){this.integrationConfig=A}get type(){return"github"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(A){return Tt(p(A),"tree")}resolveEditUrl(A){return Tt(A,"edit")}};let dt=we;ae(dt,"factory",({config:A})=>{var z;const D=at((z=A.getOptionalConfigArray("integrations.github"))!=null?z:[]);return i(D.map(re=>new we(re)),re=>re.config.host)});function Tt(J,A){return J.replace(/\/\/([^/]+)\/([^/]+)\/([^/]+)\/(blob|tree|edit)\//,(D,z,re,Fe)=>`//${z}/${re}/${Fe}/${A}/`)}const Bt="gitlab.com",Ne="https://gitlab.com/api/v4";function nt(J){const A=J.getString("host");let D=J.getOptionalString("apiBaseUrl");const z=J.getOptionalString("token");let re=J.getOptionalString("baseUrl");if(D?D=(0,l.trimEnd)(D,"/"):A===Bt&&(D=Ne),re?re=(0,l.trimEnd)(re,"/"):re=`https://${A}`,A.includes(":"))throw new Error(`Invalid GitLab integration config, host '${A}' should just be the host name (e.g. "github.com"), not a URL`);if(d(A)){if(!D||!v(D))throw new Error(`Invalid GitLab integration config, '${D}' is not a valid apiBaseUrl`);if(!v(re))throw new Error(`Invalid GitLab integration config, '${re}' is not a valid baseUrl`)}else throw new Error(`Invalid GitLab integration config, '${A}' is not a valid host`);return{host:A,token:z,apiBaseUrl:D,baseUrl:re}}function Ye(J){const A=J.map(nt);return A.some(D=>D.host===Bt)||A.push({host:Bt,apiBaseUrl:Ne,baseUrl:`https://${Bt}`}),A}async function At(J,A){if(J.includes("/-/blob/")){const D=await L(J,A);return P(J,D).toString()}return oe(J).toString()}function le(J){const{token:A=""}=J;return{headers:{"PRIVATE-TOKEN":A}}}function oe(J){try{const A=new URL(J),[D,z,re,Fe,...Ee]=A.pathname.split("/");if(D!==""||z===""||re===""||Fe!=="blob"||!Ee.join("/").match(/\.(yaml|yml)$/))throw new Error("Wrong GitLab URL");return A.pathname=[D,z,re,"raw",...Ee].join("/"),A}catch(A){throw new Error(`Incorrect url: ${J}, ${A}`)}}function P(J,A){try{const D=new URL(J),z=D.pathname.split("/-/blob/")[1],[re,...Fe]=z.split("/");return D.pathname=["/api/v4/projects",A,"repository/files",encodeURIComponent(decodeURIComponent(Fe.join("/"))),"raw"].join("/"),D.search=`?ref=${re}`,D}catch(D){throw new Error(`Incorrect url: ${J}, ${D}`)}}async function L(J,A){const D=new URL(J);if(!D.pathname.includes("/-/blob/"))throw new Error("Please provide full path to yaml file from GitLab");try{const z=D.pathname.split("/-/blob/")[0],re=new URL(`${D.protocol+D.hostname}/api/v4/projects/${encodeURIComponent(z.replace(/^\//,""))}`),Fe=await fetch(re.toString(),le(A)),Ee=await Fe.json();if(!Fe.ok)throw new Error(`GitLab Error '${Ee.error}', ${Ee.error_description}`);return Number(Ee.id)}catch(z){throw new Error(`Could not get GitLab project ID for: ${J}, ${z}`)}}const We=class{constructor(A){this.integrationConfig=A}get type(){return"gitlab"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(A){return p(A)}resolveEditUrl(A){return Y(A,"edit")}};let $=We;ae($,"factory",({config:A})=>{var z;const D=Ye((z=A.getOptionalConfigArray("integrations.gitlab"))!=null?z:[]);return i(D.map(re=>new We(re)),re=>re.config.host)});function Y(J,A){return J.replace(/\/\-\/(blob|tree|edit)\//,`/-/${A}/`)}const _="amazonaws.com";function fe(J){var Me;const A=J.getOptionalString("endpoint"),D=(Me=J.getOptionalBoolean("s3ForcePathStyle"))!=null?Me:!1;let z,re;if(A){try{const He=new URL(A);z=He.host,re=He.pathname}catch{throw new Error(`invalid awsS3 integration config, endpoint '${A}' is not a valid URL`)}if(re!=="/")throw new Error(`invalid awsS3 integration config, endpoints cannot contain path, got '${A}'`)}else z=_;const Fe=J.getOptionalString("accessKeyId"),Ee=J.getOptionalString("secretAccessKey"),Ie=J.getOptionalString("roleArn");return{host:z,endpoint:A,s3ForcePathStyle:D,accessKeyId:Fe,secretAccessKey:Ee,roleArn:Ie}}function Te(J){const A=J.map(fe);return A.some(D=>D.host===_)||A.push({host:_}),A}const Je=class{get type(){return"awsS3"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}constructor(A){this.integrationConfig=A}resolveUrl(A){return p(A)}resolveEditUrl(A){return A}};let Se=Je;ae(Se,"factory",({config:A})=>{var z;const D=Te((z=A.getOptionalConfigArray("integrations.awsS3"))!=null?z:[]);return i(D.map(re=>new Je(re)),re=>re.config.host)});class Ue{constructor(A){ae(this,"byType");this.byType=A}static fromConfig(A){return new Ue({awsS3:Se.factory({config:A}),azure:S.factory({config:A}),bitbucket:de.factory({config:A}),github:dt.factory({config:A}),gitlab:$.factory({config:A})})}get awsS3(){return this.byType.awsS3}get azure(){return this.byType.azure}get bitbucket(){return this.byType.bitbucket}get github(){return this.byType.github}get gitlab(){return this.byType.gitlab}list(){return Object.values(this.byType).flatMap(A=>A.list())}byUrl(A){return Object.values(this.byType).map(D=>D.byUrl(A)).find(Boolean)}byHost(A){return Object.values(this.byType).map(D=>D.byHost(A)).find(Boolean)}resolveUrl(A){const D=this.byUrl(A.base);return D?D.resolveUrl(A):p(A)}resolveEditUrl(A){const D=this.byUrl(A);return D?D.resolveEditUrl(A):A}}},71380:function(ee,s,e){"use strict";var r={};e.r(r),e.d(r,{TechDocsPlugin:function(){return cn}});var t=e(2784),l=e(28316),d=e(10289),v=e(49208),i=e(36964),p=e(20221);const g=[(0,i.createApiFactory)({api:i.discoveryApiRef,deps:{configApi:i.configApiRef},factory:({configApi:m})=>v.UrlPatternDiscovery.compile(`${m.getString("backend.baseUrl")}/api/{{ pluginId }}`)}),(0,i.createApiFactory)({api:i.alertApiRef,deps:{},factory:()=>new v.AlertApiForwarder}),(0,i.createApiFactory)({api:i.analyticsApiRef,deps:{},factory:()=>new v.NoOpAnalyticsApi}),(0,i.createApiFactory)({api:i.errorApiRef,deps:{alertApi:i.alertApiRef},factory:({alertApi:m})=>{const C=new v.ErrorAlerter(m,new v.ErrorApiForwarder);return v.UnhandledErrorForwarder.forward(C,{hidden:!1}),C}}),(0,i.createApiFactory)({api:i.storageApiRef,deps:{errorApi:i.errorApiRef},factory:({errorApi:m})=>v.WebStorage.create({errorApi:m})}),(0,i.createApiFactory)({api:i.fetchApiRef,deps:{configApi:i.configApiRef,identityApi:i.identityApiRef,discoveryApi:i.discoveryApiRef},factory:({configApi:m,identityApi:C,discoveryApi:N})=>(0,v.createFetchApi)({middleware:[v.FetchMiddlewares.resolvePluginProtocol({discoveryApi:N}),v.FetchMiddlewares.injectIdentityAuth({identityApi:C,config:m})]})}),(0,i.createApiFactory)({api:i.oauthRequestApiRef,deps:{},factory:()=>new v.OAuthRequestManager}),(0,i.createApiFactory)({api:i.googleAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.GoogleAuth.create({discoveryApi:m,oauthRequestApi:C,environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.microsoftAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.MicrosoftAuth.create({discoveryApi:m,oauthRequestApi:C,environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.githubAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.GithubAuth.create({discoveryApi:m,oauthRequestApi:C,defaultScopes:["read:user"],environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.oktaAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.OktaAuth.create({discoveryApi:m,oauthRequestApi:C,environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.gitlabAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.GitlabAuth.create({discoveryApi:m,oauthRequestApi:C,environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.auth0AuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.Auth0Auth.create({discoveryApi:m,oauthRequestApi:C,environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.oauth2ApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.OAuth2.create({discoveryApi:m,oauthRequestApi:C,environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.samlAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,configApi:C})=>v.SamlAuth.create({discoveryApi:m,environment:C.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.oneloginAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.OneLoginAuth.create({discoveryApi:m,oauthRequestApi:C,environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.oidcAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.OAuth2.create({discoveryApi:m,oauthRequestApi:C,provider:{id:"oidc",title:"Your Identity Provider",icon:()=>null},environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.bitbucketAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.BitbucketAuth.create({discoveryApi:m,oauthRequestApi:C,defaultScopes:["team"],environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:i.atlassianAuthApiRef,deps:{discoveryApi:i.discoveryApiRef,oauthRequestApi:i.oauthRequestApiRef,configApi:i.configApiRef},factory:({discoveryApi:m,oauthRequestApi:C,configApi:N})=>v.AtlassianAuth.create({discoveryApi:m,oauthRequestApi:C,environment:N.getOptionalString("auth.environment")})}),(0,i.createApiFactory)({api:p.RV,deps:{discovery:i.discoveryApiRef,identity:i.identityApiRef,config:i.configApiRef},factory:({config:m,discovery:C,identity:N})=>p.iM.create({config:m,discovery:C,identity:N})})];var h=e(77277),c=e(9118),E=e(62833);function o({children:m}){return(0,d.GV)()?t.createElement(t.Fragment,null,m):t.createElement(d.VA,null,m)}const S=()=>t.createElement(c.ErrorPage,{status:"404",statusMessage:"PAGE NOT FOUND"}),M=({step:m,error:C})=>{let N="";return m==="load-config"?N=`The configuration failed to load, someone should have a look at this error: ${C.message}`:m==="load-chunk"&&(N=`Lazy loaded chunk failed to load, try to reload the page: ${C.message}`),t.createElement(o,null,t.createElement(c.ErrorPage,{status:"501",statusMessage:N}))},x=({error:m,resetError:C,plugin:N})=>t.createElement(c.ErrorPanel,{title:`Error in ${N==null?void 0:N.getId()}`,defaultExpanded:!0,error:m},t.createElement(h.Z,{variant:"outlined",onClick:C},"Retry")),j={Progress:c.Progress,Router:E.VK,NotFoundErrorPage:S,BootErrorPage:M,ErrorBoundaryFallback:x};var Z=e(43642),O=e(80079),F=e(90941),B=e(32915),V=e(40562),ne=e(21853),de=e(60744),ve=e(66569),be=e(30254),pe=e(13384),je=e(15933),xe=e(58838),Qe=e(86737),st=e(4989),ke=e(44407),ht=e(18628),_e=e(84219),at=e(98685),pt=e(39781);const Nt={brokenImage:O.Z,catalog:ht.Z,scaffolder:B.Z,techdocs:V.Z,search:ne.Z,chat:de.Z,dashboard:ve.Z,docs:be.Z,email:pe.Z,github:xe.Z,group:_e.Z,help:Qe.Z,"kind:api":je.Z,"kind:component":ke.Z,"kind:domain":Z.Z,"kind:group":_e.Z,"kind:location":st.Z,"kind:system":F.Z,"kind:user":at.Z,user:at.Z,warning:pt.Z};var It=e(73689),gt=e(48032);const tt={wave:`url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='1368' height='401' x='0' y='0' maskUnits='userSpaceOnUse'%3e%3cpath fill='url(%23paint0_linear)' d='M437 116C223 116 112 0 112 0h1256v400c-82 0-225-21-282-109-112-175-436-175-649-175z'/%3e%3cpath fill='url(%23paint1_linear)' d='M1368 400V282C891-29 788 40 711 161 608 324 121 372 0 361v39h1368z'/%3e%3cpath fill='url(%23paint2_linear)' d='M1368 244v156H0V94c92-24 198-46 375 0l135 41c176 51 195 109 858 109z'/%3e%3cpath fill='url(%23paint3_linear)' d='M1252 400h116c-14-7-35-14-116-16-663-14-837-128-1013-258l-85-61C98 28 46 8 0 0v400h1252z'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M-172-98h1671v601H-172z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='602' x2='1093.5' y1='-960.5' y2='272' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='482' x2='480' y1='1058.5' y2='70.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='424' x2='446.1' y1='-587.5' y2='274.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint3_linear' x1='587' x2='349' y1='-1120.5' y2='341' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`,wave2:`url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='1764' height='479' x='-229' y='-6' maskUnits='userSpaceOnUse'%3e%3cpath fill='url(%23paint0_linear)' d='M0 400h1350C1321 336 525 33 179-2c-345-34-395 236-408 402H0z'/%3e%3cpath fill='url(%23paint1_linear)' d='M1378 177v223H0V217s219 75 327 52C436 246 717-35 965 45s254 144 413 132z'/%3e%3cpath fill='url(%23paint2_linear)' d='M26 400l-78-16c-170 205-44-6-137-30l-4-1 4 1 137 30c37-45 89-110 159-201 399-514-45 238 1176-50 275-65 354-39 91 267H26z'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M0 0h1368v400H0z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='431' x2='397.3' y1='-599' y2='372.8' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='236.5' x2='446.6' y1='-586' y2='381.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='851.8' x2='640.4' y1='-867.2' y2='363.7' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`,round:`url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='2269' height='1408' x='-610' y='-509' maskUnits='userSpaceOnUse'%3e%3ccircle cx='1212.8' cy='74.8' r='317.5' fill='url(%23paint0_linear)' transform='rotate(-52 1213 75)'/%3e%3ccircle cx='737.8' cy='445.8' r='317.5' fill='url(%23paint1_linear)' transform='rotate(-116 738 446)'/%3e%3ccircle cx='601.8' cy='52.8' r='418.6' fill='url(%23paint2_linear)' transform='rotate(-117 602 53)'/%3e%3ccircle cx='999.8' cy='364' r='389.1' fill='url(%23paint3_linear)' transform='rotate(31 1000 364)'/%3e%3cellipse cx='-109.2' cy='263.5' fill='url(%23paint4_linear)' rx='429.2' ry='465.8' transform='rotate(-85 -109 264)'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M0 0h1368v400H0z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='1301.2' x2='161.4' y1='-1879.7' y2='-969.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='826.2' x2='-313.6' y1='-1508.7' y2='-598.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='718.4' x2='-784.3' y1='-2524' y2='-1324.2' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint3_linear' x1='1108.2' x2='-288.6' y1='-2031.1' y2='-915.9' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint4_linear' x1='10.4' x2='-1626.5' y1='-2603.8' y2='-1399.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`},St={darkGrey:["#171717","#383838"],marineBlue:["#006D8F","#0049A1"],veryBlue:["#0027AF","#270094"],rubyRed:["#98002B","#8D1134"],toastyOrange:["#BE2200","#A41D00"],purpleSky:["#8912CA","#3E00EA"],eveningSea:["#00FFF2","#035355"],teal:["#005B4B"],pinkSea:["#C8077A","#C2297D"]};function Ct(m,C){const G=`linear-gradient(90deg, ${(m.length===1?[m[0],m[0]]:m).join(", ")})`,q=`${C}, ${G}`;return{colors:m,shape:C,backgroundImage:q}}const Ot={home:Ct(St.teal,tt.wave),documentation:Ct(St.pinkSea,tt.wave2),tool:Ct(St.purpleSky,tt.round),service:Ct(St.marineBlue,tt.wave),website:Ct(St.veryBlue,tt.wave),library:Ct(St.rubyRed,tt.wave),other:Ct(St.darkGrey,tt.wave),app:Ct(St.toastyOrange,tt.wave),apis:Ct(St.teal,tt.wave2)},Ft='"Helvetica Neue", Helvetica, Roboto, Arial, sans-serif';function dt(m){const{palette:C,fontFamily:N=Ft,defaultPageTheme:G,pageTheme:q=Ot}=m;if(!q[G])throw new Error(`${G} is not defined in pageTheme.`);return{palette:C,props:{MuiGrid:{spacing:2},MuiSwitch:{color:"primary"}},typography:{fontFamily:N,h5:{fontWeight:700},h4:{fontWeight:700,fontSize:28,marginBottom:6},h3:{fontSize:32,fontWeight:700,marginBottom:6},h2:{fontSize:40,fontWeight:700,marginBottom:8},h1:{fontSize:54,fontWeight:700,marginBottom:10}},page:q[G],getPageTheme:({themeId:he})=>{var ge;return(ge=q[he])!=null?ge:q[G]}}}function Tt(m){return{MuiCssBaseline:{"@global":{html:{height:"100%",fontFamily:m.typography.fontFamily},body:{height:"100%",fontFamily:m.typography.fontFamily,"overscroll-behavior-y":"none"},a:{color:"inherit",textDecoration:"none"}}},MuiTableRow:{root:{"&:nth-of-type(odd)":{backgroundColor:m.palette.background.default}},hover:{"&:hover":{cursor:"pointer"}},head:{"&:nth-of-type(odd)":{backgroundColor:m.palette.background.paper}}},MuiTableCell:{root:{wordBreak:"break-word",overflow:"hidden",verticalAlign:"middle",lineHeight:"1",margin:0,padding:m.spacing(3,2,3,2.5),borderBottom:0},sizeSmall:{padding:m.spacing(1.5,2,1.5,2.5)},head:{wordBreak:"break-word",overflow:"hidden",color:"rgb(179, 179, 179)",fontWeight:"normal",lineHeight:"1"}},MuiTabs:{root:{minHeight:24}},MuiTab:{root:{color:m.palette.link,minHeight:24,textTransform:"initial",letterSpacing:"0.07em","&:hover":{color:(0,gt.darken)(m.palette.link,.3),background:(0,gt.lighten)(m.palette.link,.95)},[m.breakpoints.up("md")]:{minWidth:120,fontSize:m.typography.pxToRem(14),fontWeight:500}},textColorPrimary:{color:m.palette.link}},MuiTableSortLabel:{root:{color:"inherit","&:hover":{color:"inherit"},"&:focus":{color:"inherit"}},active:{fontWeight:"bold",color:"inherit"}},MuiListItemText:{dense:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},MuiButton:{text:{padding:void 0}},MuiChip:{root:{backgroundColor:"#D9D9D9",marginRight:m.spacing(1),marginBottom:m.spacing(1),color:m.palette.grey[900]},outlined:{color:m.palette.text.primary},label:{lineHeight:`${m.spacing(2.5)}px`,fontWeight:m.typography.fontWeightMedium,fontSize:`${m.spacing(1.75)}px`},labelSmall:{fontSize:`${m.spacing(1.5)}px`},deleteIcon:{color:m.palette.grey[500],width:`${m.spacing(3)}px`,height:`${m.spacing(3)}px`,margin:`0 ${m.spacing(.75)}px 0 -${m.spacing(.75)}px`},deleteIconSmall:{width:`${m.spacing(2)}px`,height:`${m.spacing(2)}px`,margin:`0 ${m.spacing(.5)}px 0 -${m.spacing(.5)}px`}},MuiCard:{root:{display:"flex",flexDirection:"column"}},MuiCardHeader:{root:{paddingBottom:0}},MuiCardContent:{root:{flexGrow:1,"&:last-child":{paddingBottom:void 0}}},MuiCardActions:{root:{justifyContent:"flex-end"}}}}function Bt(m){const C=dt(m),N=(0,It.Z)(C),G=Tt(N);return{...N,overrides:G}}var Ne=e(34505);const nt=Bt({palette:{type:"light",background:{default:"#F8F8F8"},status:{ok:"#1DB954",warning:"#FF9800",error:"#E22134",running:"#2E77D0",pending:"#FFED51",aborted:"#757575"},bursts:{fontColor:"#FEFEFE",slackChannelText:"#ddd",backgroundColor:{default:"#7C3699"},gradient:{linear:"linear-gradient(-137deg, #4BB8A5 0%, #187656 100%)"}},primary:{main:"#2E77D0"},banner:{info:"#2E77D0",error:"#E22134",text:"#FFFFFF",link:"#000000",warning:"#FF9800"},border:"#E6E6E6",textContrast:"#000000",textVerySubtle:"#DDD",textSubtle:"#6E6E6E",highlight:"#FFFBCC",errorBackground:"#FFEBEE",warningBackground:"#F59B23",infoBackground:"#ebf5ff",errorText:"#CA001B",infoText:"#004e8a",warningText:"#000000",linkHover:"#2196F3",link:"#0A6EBE",gold:Ne.Z.A700,navigation:{background:"#171717",indicator:"#9BF0E1",color:"#b5b5b5",selectedColor:"#FFF",navItem:{hoverBackground:"#404040"},submenu:{background:"#404040"}},pinSidebarButton:{icon:"#181818",background:"#BDBDBD"},tabbar:{indicator:"#9BF0E1"}},defaultPageTheme:"home",pageTheme:Ot}),Ye=Bt({palette:{type:"dark",background:{default:"#333333"},status:{ok:"#71CF88",warning:"#FFB84D",error:"#F84C55",running:"#3488E3",pending:"#FEF071",aborted:"#9E9E9E"},bursts:{fontColor:"#FEFEFE",slackChannelText:"#ddd",backgroundColor:{default:"#7C3699"},gradient:{linear:"linear-gradient(-137deg, #4BB8A5 0%, #187656 100%)"}},primary:{main:"#9CC9FF",dark:"#82BAFD"},secondary:{main:"#FF88B2"},banner:{info:"#2E77D0",error:"#E22134",text:"#FFFFFF",link:"#000000",warning:"#FF9800"},border:"#E6E6E6",textContrast:"#FFFFFF",textVerySubtle:"#727272",textSubtle:"#CCCCCC",highlight:"#FFFBCC",errorBackground:"#FFEBEE",warningBackground:"#F59B23",infoBackground:"#ebf5ff",errorText:"#CA001B",infoText:"#004e8a",warningText:"#000000",linkHover:"#82BAFD",link:"#9CC9FF",gold:Ne.Z.A700,navigation:{background:"#424242",indicator:"#9BF0E1",color:"#b5b5b5",selectedColor:"#FFF",navItem:{hoverBackground:"#404040"},submenu:{background:"#404040"}},pinSidebarButton:{icon:"#404040",background:"#BDBDBD"},tabbar:{indicator:"#9BF0E1"}},defaultPageTheme:"home",pageTheme:Ot});var At=e(98192),le=e(15222),oe=e(41547),P=e(87561);const L=[{id:"light",title:"Light Theme",variant:"light",icon:t.createElement(le.Z,null),Provider:({children:m})=>t.createElement(oe.Z,{theme:nt},t.createElement(P.ZP,null,m))},{id:"dark",title:"Dark Theme",variant:"dark",icon:t.createElement(At.Z,null),Provider:({children:m})=>t.createElement(oe.Z,{theme:Ye},t.createElement(P.ZP,null,m))}];function $(m){var C,N,G;return(0,v.createSpecializedApp)({...m,apis:(C=m==null?void 0:m.apis)!=null?C:[],bindRoutes:m==null?void 0:m.bindRoutes,components:{...j,...m==null?void 0:m.components},configLoader:m==null?void 0:m.configLoader,defaultApis:g,icons:{...Nt,...m==null?void 0:m.icons},plugins:(N=m==null?void 0:m.plugins)!=null?N:[],themes:(G=m==null?void 0:m.themes)!=null?G:L})}var Y=e(39398),_=e(49782),fe=e(79692);const Te=(0,fe.Z)({flexContainer:{flexWrap:"wrap"},itemText:{width:"100%",wordBreak:"break-all",marginBottom:"1rem"}}),Se=({result:m})=>{const C=Te();return React.createElement(Link,{to:m.location},React.createElement(ListItem,{alignItems:"flex-start",className:C.flexContainer},React.createElement(ListItemText,{className:C.itemText,primaryTypographyProps:{variant:"h6"},primary:m.title,secondary:m.text}),React.createElement(Box,null,m.kind&&React.createElement(Chip,{label:`Kind: ${m.kind}`,size:"small"}),m.lifecycle&&React.createElement(Chip,{label:`Lifecycle: ${m.lifecycle}`,size:"small"}))),React.createElement(Divider,{component:"li"}))};var Ue=e(91730),De=e(17499),Pe=e(52890),Ae=e(31423),Ze=e(95544),yt=e(99688),ct=e(12231),Ge=e(86136),ue=e(49378),$e=e(85256),qe=e(61837),we=e(79784),We=e(50758),Je=e(49166),J=e(31654),A=e(43054);const D="catalog-entity",z={name:"catalog.entity.read",attributes:{action:"read"},resourceType:D},re={name:"catalog.entity.create",attributes:{action:"create"},resourceType:D},Fe={name:"catalog.entity.delete",attributes:{action:"delete"},resourceType:D},Ee={name:"catalog.entity.refresh",attributes:{action:"update"},resourceType:D},Ie={name:"catalog.location.read",attributes:{action:"read"}},Me={name:"catalog.location.create",attributes:{action:"create"}},He={name:"catalog.location.delete",attributes:{action:"delete"}},Et=(0,fe.Z)({button:{color:"white"}}),ce=({UNSTABLE_extraContextMenuItems:m,UNSTABLE_contextMenuOptions:C,onUnregisterEntity:N,onInspectEntity:G})=>{var it;const[q,he]=(0,t.useState)(),ge=Et(),Re=(0,Ae.useEntityPermission)(Fe),ze=rt=>{he(rt.currentTarget)},Be=()=>{he(void 0)},et=m&&[...m.map(rt=>t.createElement(ct.Z,{key:rt.title,onClick:()=>{Be(),rt.onClick()}},t.createElement(Ge.Z,null,t.createElement(rt.Icon,{fontSize:"small"})),t.createElement(ue.Z,{primary:rt.title}))),t.createElement($e.Z,{key:"the divider is here!"})],mt=(it=!Re.allowed||(C==null?void 0:C.disableUnregister))!=null?it:!1;return t.createElement(t.Fragment,null,t.createElement(qe.Z,{"aria-label":"more","aria-controls":"long-menu","aria-haspopup":"true",onClick:ze,"data-testid":"menu-button",className:ge.button},t.createElement(A.Z,null)),t.createElement(we.ZP,{open:Boolean(q),onClose:Be,anchorEl:q,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},t.createElement(We.Z,null,et,t.createElement(ct.Z,{onClick:()=>{Be(),N()},disabled:mt},t.createElement(Ge.Z,null,t.createElement(Je.Z,{fontSize:"small"})),t.createElement(ue.Z,{primary:"Unregister entity"})),t.createElement(ct.Z,{onClick:()=>{Be(),G()}},t.createElement(Ge.Z,null,t.createElement(J.Z,{fontSize:"small"})),t.createElement(ue.Z,{primary:"Inspect entity"})))))},W="plugin.catalog.entityLayoutRoute",te=()=>null;(0,i.attachComponentData)(te,W,!0),(0,i.attachComponentData)(te,"core.gatherMountPoints",!0);const ye=({entity:m,title:C})=>t.createElement(Ze.Z,{display:"inline-flex",alignItems:"center",height:"1em",maxWidth:"100%"},t.createElement(Ze.Z,{component:"span",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},C),m&&t.createElement(Ae.FavoriteEntity,{entity:m})),Ve=(m,C,N,G)=>{var Re,ze,Be,et,mt;const q=(Re=m!=null?m:G==null?void 0:G.kind)!=null?Re:"",he=(ze=C!=null?C:G==null?void 0:G.metadata.namespace)!=null?ze:"";return{headerTitle:`${(mt=(et=(Be=G==null?void 0:G.metadata.title)!=null?Be:N)!=null?et:G==null?void 0:G.metadata.name)!=null?mt:""}${he&&he!==Pe.sk?` in ${he}`:""}`,headerType:(()=>{let it=q.toLocaleLowerCase("en-US");return G&&G.spec&&"type"in G.spec&&(it+=" \u2014 ",it+=G.spec.type.toLocaleLowerCase("en-US")),it})()}},Ke=({entity:m})=>{var N;const C=(0,Ae.getEntityRelations)(m,Pe.S4);return t.createElement(t.Fragment,null,C.length>0&&t.createElement(c.HeaderLabel,{label:"Owner",value:t.createElement(Ae.EntityRefLinks,{entityRefs:C,defaultKind:"Group",color:"inherit"})}),((N=m.spec)==null?void 0:N.lifecycle)&&t.createElement(c.HeaderLabel,{label:"Lifecycle",value:m.spec.lifecycle}))},ot=({UNSTABLE_extraContextMenuItems:m,UNSTABLE_contextMenuOptions:C,children:N})=>{var ur,$r,na;const{kind:G,namespace:q,name:he}=(0,Ae.useEntityCompoundName)(),{entity:ge,loading:Re,error:ze}=(0,t.useContext)(Ae.EntityContext),Be=(0,d.TH)(),et=(0,i.useElementFilter)(N,ra=>ra.selectByComponentData({key:W,withStrictError:"Child of EntityLayout must be an EntityLayout.Route"}).getElements().flatMap(({props:xn})=>xn.if&&ge&&!xn.if(ge)?[]:[{path:xn.path,title:xn.title,children:xn.children,tabProps:xn.tabProps}]),[ge]),{headerTitle:mt,headerType:it}=Ve(G,q,he,ge),[rt,Pt]=(0,t.useState)(!1),[vt,Mt]=(0,t.useState)(!1),Cn=(0,d.s0)(),Tn=async()=>{Pt(!1),Mt(!1),Cn("/")};return(0,t.useEffect)(()=>{Pt(!1),Mt(!1)},[Be.pathname]),t.createElement(c.Page,{themeId:(na=($r=(ur=ge==null?void 0:ge.spec)==null?void 0:ur.type)==null?void 0:$r.toString())!=null?na:"home"},t.createElement(c.Header,{title:t.createElement(ye,{title:mt,entity:ge}),pageTitleOverride:mt,type:it},ge&&t.createElement(t.Fragment,null,t.createElement(Ke,{entity:ge}),t.createElement(ce,{UNSTABLE_extraContextMenuItems:m,UNSTABLE_contextMenuOptions:C,onUnregisterEntity:()=>Pt(!0),onInspectEntity:()=>Mt(!0)}))),Re&&t.createElement(c.Progress,null),ge&&t.createElement(c.RoutedTabs,{routes:et}),ze&&t.createElement(c.Content,null,t.createElement(yt.Z,{severity:"error"},ze.toString())),!Re&&!ze&&!ge&&t.createElement(c.Content,null,t.createElement(c.WarningPanel,{title:"Entity not found"},"There is no ",G," with the requested"," ",t.createElement(c.Link,{to:"https://backstage.io/docs/features/software-catalog/references"},"kind, namespace, and name"),".")),t.createElement(Ae.UnregisterEntityDialog,{open:rt,entity:ge,onConfirm:Tn,onClose:()=>Pt(!1)}),t.createElement(Ae.InspectEntityDialog,{open:vt,entity:ge,onClose:()=>Mt(!1)}))};ot.Route=te;var Rt=e(10179);const Kt=({open:m,onClose:C,onConfirm:N,entity:G})=>{const[q,he]=useState(!1),ge=useApi(catalogApiRef),Re=useApi(alertApiRef),ze=async()=>{he(!0);try{const Be=G.metadata.uid;await ge.removeEntityByUid(Be),N()}catch(Be){assertError(Be),Re.post({message:Be.message})}finally{he(!1)}};return React.createElement(Dialog,{open:m,onClose:C},React.createElement(DialogTitle,{id:"responsive-dialog-title"},"Are you sure you want to delete this entity?"),React.createElement(DialogActions,null,React.createElement(Button,{variant:"contained",color:"secondary",disabled:q,onClick:ze},"Delete"),React.createElement(Button,{onClick:C,color:"primary"},"Cancel")))},en=m=>{var C,N;return((N=(C=m==null?void 0:m.metadata)==null?void 0:C.annotations)==null?void 0:N["backstage.io/orphan"])==="true"},Jn=()=>{const m=useNavigate(),C=useRouteRef(catalogRouteRef),[N,G]=useState(!1),{entity:q}=useEntity(),he=async()=>{G(!1),m(C())};return React.createElement(React.Fragment,null,React.createElement(Alert,{severity:"warning",onClick:()=>G(!0)},"This entity is not referenced by any location and is therefore not receiving updates. Click here to delete."),React.createElement(DeleteEntityDialog,{open:N,entity:q,onConfirm:he,onClose:()=>G(!1)}))};var hn=e(30001);const gn=m=>m.error&&m.level==="error"&&m.type===ENTITY_STATUS_CATALOG_PROCESSING_TYPE;async function ft(m,C){return{items:(await C.getEntityAncestors({entityRef:m})).items.map(q=>{var Re,ze;return{errors:((ze=(Re=q.entity.status)==null?void 0:Re.items)!=null?ze:[]).filter(gn).map(Be=>Be.error).filter(Be=>Boolean(Be)),entity:q.entity}}).filter(q=>q.errors.length>0)}}const wt=async(m,C)=>{const N=C.apis.get(catalogApiRef);if(!N)throw new Error(`No implementation available for ${catalogApiRef}`);return(await ft(stringifyEntityRef(m),N)).items.length>0},sn=()=>{const{entity:m}=useEntity(),C=stringifyEntityRef(m),N=useApi(catalogApiRef),{loading:G,error:q,value:he}=useAsync(async()=>ft(C,N),[C,N]);return q?React.createElement(Box,{mb:1},React.createElement(ResponseErrorPanel,{error:q})):G||!he?null:React.createElement(React.Fragment,null,he.items.map((ge,Re)=>React.createElement(Box,{key:Re,mb:1},!compareEntityToRef(m,stringifyEntityRef(ge.entity))&&React.createElement(Box,{p:1},"The error below originates from"," ",React.createElement(EntityRefLink,{entityRef:ge.entity})),ge.errors.map((ze,Be)=>React.createElement(ResponseErrorPanel,{key:Be,error:ze})))))};var Rn=e(18671);const Wt=(m,C,N=0)=>{if(!m)return N;const G=C.findIndex(q=>q.id===m.route.path);return~G?G:N},Pn={Layout:({children:m})=>{var mt,it,rt;const C=[],N=[],G=(0,d.UO)(),q=(0,d.s0)();t.Children.forEach(m,Pt=>{if(!t.isValidElement(Pt))return;if(Pt.type!==Pn.Content)throw new Error("This component only accepts Content elements as direct children. Check the code of the EntityPage.");const vt=Pt.props.path;N.push({id:vt,label:Pt.props.title}),C.push({path:vt,element:Pt.props.element})}),((it=(mt=C==null?void 0:C[0])==null?void 0:mt.path)!=null?it:"")!==""&&C.push({path:"/*",element:t.createElement(d.Fg,{to:C[0].path})});const[he]=(rt=(0,d.fp)(C,`/${G["*"]}`))!=null?rt:[],ge=Wt(he,N),Re=N[ge],ze=Re==null?void 0:Re.label,Be=Pt=>q(N[Pt].id.replace(/\/\*$/,"").replace(/^\//,"")),et=(0,d.V$)(C);return Re?t.createElement(t.Fragment,null,t.createElement(c.HeaderTabs,{tabs:N,selectedIndex:ge,onChange:Be}),t.createElement(c.Content,null,t.createElement(Rn.q,{title:ze}),et)):null},Content:m=>null},gr=({entity:m,title:C})=>t.createElement(Ze.Z,{display:"inline-flex",alignItems:"center",height:"1em"},C,m&&t.createElement(Ae.FavoriteEntity,{entity:m})),pr=({entity:m})=>{var N;const C=(0,Ae.getEntityRelations)(m,Pe.S4);return t.createElement(t.Fragment,null,C.length>0&&t.createElement(c.HeaderLabel,{label:"Owner",value:t.createElement(Ae.EntityRefLinks,{entityRefs:C,defaultKind:"Group",color:"inherit"})}),((N=m.spec)==null?void 0:N.lifecycle)&&t.createElement(c.HeaderLabel,{label:"Lifecycle",value:m.spec.lifecycle}))},Hr=(m,C,N,G)=>({headerTitle:`${N}${C&&C!==Pe.sk?` in ${C}`:""}`,headerType:(()=>{let q=m.toLocaleLowerCase("en-US");return G&&G.spec&&"type"in G.spec&&(q+=" \u2014 ",q+=G.spec.type.toLocaleLowerCase("en-US")),q})()}),Nn=({children:m,UNSTABLE_extraContextMenuItems:C,UNSTABLE_contextMenuOptions:N})=>{var Cn,Tn,ur;const{kind:G,namespace:q,name:he}=(0,Ae.useEntityCompoundName)(),{entity:ge,loading:Re,error:ze}=(0,t.useContext)(Ae.EntityContext),{headerTitle:Be,headerType:et}=Hr(G,q,he,ge),[mt,it]=(0,t.useState)(!1),[rt,Pt]=(0,t.useState)(!1),vt=(0,d.s0)(),Mt=async()=>{it(!1),vt("/")};return t.createElement(c.Page,{themeId:(ur=(Tn=(Cn=ge==null?void 0:ge.spec)==null?void 0:Cn.type)==null?void 0:Tn.toString())!=null?ur:"home"},t.createElement(c.Header,{title:t.createElement(gr,{title:Be,entity:ge}),pageTitleOverride:Be,type:et},ge&&t.createElement(t.Fragment,null,t.createElement(pr,{entity:ge}),t.createElement(ce,{UNSTABLE_extraContextMenuItems:C,UNSTABLE_contextMenuOptions:N,onUnregisterEntity:()=>it(!0),onInspectEntity:()=>Pt(!0)}))),Re&&t.createElement(c.Content,null,t.createElement(c.Progress,null)),ge&&t.createElement(Pn.Layout,null,m),ze&&t.createElement(c.Content,null,t.createElement(c.ResponseErrorPanel,{error:ze})),!Re&&!ze&&!ge&&t.createElement(c.Content,null,t.createElement(c.WarningPanel,{title:"Entity not found"},"There is no ",G," with the requested"," ",t.createElement(c.Link,{to:"https://backstage.io/docs/features/software-catalog/references"},"kind, namespace, and name"),".")),t.createElement(Ae.UnregisterEntityDialog,{open:mt,entity:ge,onConfirm:Mt,onClose:()=>it(!1)}),t.createElement(Ae.InspectEntityDialog,{open:rt,entity:ge,onClose:()=>Pt(!1)}))};Nn.Content=Pn.Content;var Zn=e(64279);const Yn="core.backstage.entitySwitch",Qn=m=>null;(0,i.attachComponentData)(Qn,Yn,!0);const Vr=({children:m})=>{var he,ge;const{entity:C}=(0,Ae.useEntity)(),N=(0,i.useApiHolder)(),G=(0,i.useElementFilter)(m,Re=>Re.selectByComponentData({key:Yn,withStrictError:"Child of EntitySwitch is not an EntitySwitch.Case"}).getElements().flatMap(ze=>{var mt;const{if:Be,children:et}=ze.props;return[{if:(mt=Be==null?void 0:Be(C,{apis:N}))!=null?mt:!0,children:et}]}),[N,C]);return G.some(Re=>typeof Re.if=="object"&&"then"in Re.if)?t.createElement(yr,{results:G}):(ge=(he=G.find(Re=>Re.if))==null?void 0:he.children)!=null?ge:null};function yr({results:m}){const{loading:C,value:N}=(0,Zn.default)(async()=>{var q;const G=m.map(async({if:he,children:ge})=>{try{if(await he)return ge}catch{}return null});return(q=(await Promise.all(G)).find(Boolean))!=null?q:null},[m]);return C||!N?null:N}Vr.Case=Qn;var Xn=e(26997),jr=e(7758),Gr=e(219);const Er=(0,fe.Z)(m=>({illo:{maxWidth:"60%",top:100,right:20,position:"absolute",[m.breakpoints.down("xs")]:{maxWidth:"96%",position:"relative",top:"unset",right:"unset",margin:`${m.spacing(10)}px auto ${m.spacing(4)}px`}}})),vr=()=>{const m=Er();return React.createElement("img",{src:IlloSvgUrl,className:m.illo,alt:"Illustration on entity not found page"})},Ar=(0,fe.Z)(m=>({container:{paddingTop:m.spacing(24),paddingLeft:m.spacing(8),[m.breakpoints.down("xs")]:{padding:m.spacing(2)}},title:{paddingBottom:m.spacing(2),[m.breakpoints.down("xs")]:{fontSize:32}},body:{paddingBottom:m.spacing(6),[m.breakpoints.down("xs")]:{paddingBottom:m.spacing(5)}}})),Rr=()=>{const m=Ar();return React.createElement(Grid,{container:!0,spacing:0,className:m.container},React.createElement(Illo,null),React.createElement(Grid,{item:!0,xs:12,sm:6},React.createElement(Typography,{variant:"h2",className:m.title},"Entity was not found"),React.createElement(Typography,{variant:"body1",className:m.body},"Want to help us build this? Check out our Getting Started documentation."),React.createElement(Button,{variant:"contained",color:"primary",href:"https://backstage.io/docs"},"DOCS")))},kn=()=>React.createElement(EntityPageLayout,null,React.createElement(EntityPageLayout.Content,{path:"/",title:"Overview",element:React.createElement(Content,null,React.createElement(Typography,{variant:"h2"},"This is the default entity page."),React.createElement(Typography,{variant:"body1"},"To override this component with your custom implementation, read docs on"," ",React.createElement(Link,{to:"https://backstage.io/docs"},"backstage.io/docs")))})),Dn=({EntityPage:m})=>{const{entity:C,loading:N,error:G}=useEntity();return N?React.createElement(EntityPageLayout,null):G||!C?React.createElement(EntityNotFound,null):React.createElement(m,null)},Sr=()=>{var ge;const{optionalNamespaceAndName:m,"*":C}=useParams(),[N,G]=m.split(":").reverse(),q=(ge=G==null?void 0:G.toLocaleLowerCase("en-US"))!=null?ge:ENTITY_DEFAULT_NAMESPACE,he=C?`/${C}`:"";return React.createElement(Navigate,{to:`../../${q}/component/${N}${he}`})},qn=m=>React.createElement(AsyncEntityProvider,{...useEntityFromUrl(),...m}),Cr=({EntityPage:m=kn})=>React.createElement(Routes,null,React.createElement(Route,{path:"/",element:React.createElement(CatalogPage,null)}),React.createElement(Route,{path:"/:namespace/:kind/:name",element:React.createElement(qn,null,React.createElement(Dn,{EntityPage:m}))}),React.createElement(Route,{path:"Component/:optionalNamespaceAndName/*",element:React.createElement(Sr,null)}));var _n=e(47851);const Jt=(0,i.createPlugin)({id:"catalog",apis:[(0,i.createApiFactory)({api:Ae.Ah,deps:{discoveryApi:i.discoveryApiRef,fetchApi:i.fetchApiRef},factory:({discoveryApi:m,fetchApi:C})=>new hn.MS({discoveryApi:m,fetchApi:C})}),(0,i.createApiFactory)({api:Ae.starredEntitiesApiRef,deps:{storageApi:i.storageApiRef},factory:({storageApi:m})=>new Ae.DefaultStarredEntitiesApi({storageApi:m})})],routes:{catalogIndex:Ae.M4,catalogEntity:Ae.wi},externalRoutes:{createComponent:_n.y,viewTechDoc:_n.j}}),Un=Jt.provide((0,i.createRoutableExtension)({name:"CatalogIndexPage",component:()=>Promise.resolve().then(e.bind(e,7758)).then(m=>m.CatalogPage),mountPoint:Ae.M4})),er=Jt.provide((0,i.createRoutableExtension)({name:"CatalogEntityPage",component:()=>e.e(6650).then(e.bind(e,76650)).then(m=>m.CatalogEntityPage),mountPoint:Ae.wi})),pn=Jt.provide((0,i.createComponentExtension)({name:"EntityAboutCard",component:{lazy:()=>Promise.resolve().then(e.bind(e,39398)).then(m=>m.AboutCard)}})),Zt=Jt.provide((0,i.createComponentExtension)({name:"EntityLinksCard",component:{lazy:()=>e.e(1959).then(e.bind(e,81959)).then(m=>m.EntityLinksCard)}})),Kr=Jt.provide((0,i.createComponentExtension)({name:"EntityHasSystemsCard",component:{lazy:()=>e.e(390).then(e.bind(e,60390)).then(m=>m.HasSystemsCard)}})),Tr=Jt.provide((0,i.createComponentExtension)({name:"EntityHasComponentsCard",component:{lazy:()=>e.e(4022).then(e.bind(e,4022)).then(m=>m.HasComponentsCard)}})),Jr=Jt.provide((0,i.createComponentExtension)({name:"EntityHasSubcomponentsCard",component:{lazy:()=>e.e(8792).then(e.bind(e,38792)).then(m=>m.HasSubcomponentsCard)}})),tr=Jt.provide((0,i.createComponentExtension)({name:"EntityHasResourcesCard",component:{lazy:()=>e.e(1553).then(e.bind(e,11553)).then(m=>m.HasResourcesCard)}})),ga=Jt.provide((0,i.createComponentExtension)({name:"EntityDependsOnComponentsCard",component:{lazy:()=>e.e(8061).then(e.bind(e,48061)).then(m=>m.DependsOnComponentsCard)}})),pa=Jt.provide((0,i.createComponentExtension)({name:"EntityDependencyOfComponentsCard",component:{lazy:()=>e.e(6235).then(e.bind(e,56235)).then(m=>m.DependencyOfComponentsCard)}})),Yr=Jt.provide((0,i.createComponentExtension)({name:"EntityDependsOnResourcesCard",component:{lazy:()=>e.e(9028).then(e.bind(e,59028)).then(m=>m.DependsOnResourcesCard)}})),ya=Jt.provide((0,i.createComponentExtension)({name:"EntitySystemDiagramCard",component:{lazy:()=>e.e(4960).then(e.bind(e,14960)).then(m=>m.SystemDiagramCard)}})),Sn=Jt.provide((0,i.createComponentExtension)({name:"RelatedEntitiesCard",component:{lazy:()=>e.e(2426).then(e.bind(e,62426)).then(m=>m.RelatedEntitiesCard)}}));var Xt=e(3337),Ln=e(76372);class Fn{constructor(C){ae(this,"configApi");ae(this,"discoveryApi");ae(this,"fetchApi");this.configApi=C.configApi,this.discoveryApi=C.discoveryApi,this.fetchApi=C.fetchApi}async getApiOrigin(){var C;return(C=this.configApi.getOptionalString("techdocs.requestUrl"))!=null?C:await this.discoveryApi.getBaseUrl("techdocs")}async getTechDocsMetadata(C){const{kind:N,namespace:G,name:q}=C,ge=`${await this.getApiOrigin()}/metadata/techdocs/${G}/${N}/${q}`,Re=await this.fetchApi.fetch(`${ge}`);if(!Re.ok)throw await Rt.VL.fromResponse(Re);return await Re.json()}async getEntityMetadata(C){const{kind:N,namespace:G,name:q}=C,ge=`${await this.getApiOrigin()}/metadata/entity/${G}/${N}/${q}`,Re=await this.fetchApi.fetch(`${ge}`);if(!Re.ok)throw await Rt.VL.fromResponse(Re);return await Re.json()}}class nr{constructor(C){ae(this,"configApi");ae(this,"discoveryApi");ae(this,"identityApi");ae(this,"fetchApi");this.configApi=C.configApi,this.discoveryApi=C.discoveryApi,this.identityApi=C.identityApi,this.fetchApi=C.fetchApi}async getApiOrigin(){var C;return(C=this.configApi.getOptionalString("techdocs.requestUrl"))!=null?C:await this.discoveryApi.getBaseUrl("techdocs")}async getStorageUrl(){var C;return(C=this.configApi.getOptionalString("techdocs.storageUrl"))!=null?C:`${await this.discoveryApi.getBaseUrl("techdocs")}/static/docs`}async getBuilder(){return this.configApi.getString("techdocs.builder")}async getEntityDocs(C,N){const{kind:G,namespace:q,name:he}=C,Re=`${await this.getStorageUrl()}/${q}/${G}/${he}/${N}`,ze=await this.fetchApi.fetch(`${Re.endsWith("/")?Re:`${Re}/`}index.html`);let Be="";switch(ze.status){case 404:throw Be="Page not found. ",N||(Be+="This could be because there is no index.md file in the root of the docs directory of this repository."),new Rt.dR(Be);case 500:throw Be="Could not generate documentation or an error in the TechDocs backend. ",new Error(Be);default:break}return ze.text()}async syncEntityDocs(C,N=()=>{}){const{kind:G,namespace:q,name:he}=C,Re=`${await this.getApiOrigin()}/sync/${q}/${G}/${he}`,{token:ze}=await this.identityApi.getCredentials();return new Promise((Be,et)=>{const mt=new Ln.EventSourcePolyfill(Re,{withCredentials:!0,headers:ze?{Authorization:`Bearer ${ze}`}:{}});mt.addEventListener("log",it=>{it.data&&N(JSON.parse(it.data))}),mt.addEventListener("finish",it=>{let rt=!1;it.data&&({updated:rt}=JSON.parse(it.data)),Be(rt?"updated":"cached")}),mt.onerror=it=>{switch(mt.close(),it.status){case 404:et(new Rt.dR(it.message));return;default:et(new Error(it.data));return}}})}async getBaseUrl(C,N,G){const{kind:q,namespace:he,name:ge}=N,ze=`${await this.getApiOrigin()}/static/docs/${he}/${q}/${ge}/${G}`;return new URL(C,ze.endsWith("/")?ze:`${ze}/`).toString()}}var Qr=e(71226),$n=e(95074),Pr=e(76635),rr=e(83201),In=e(50294),tn=e(67430);const Ut=({columns:m,actions:C})=>{var mt,it;const{loading:N,error:G,entities:q,filters:he}=(0,Ae.useEntityListProvider)(),{isStarredEntity:ge,toggleStarredEntity:Re}=(0,Ae.useStarredEntities)(),[,ze]=(0,$n.Z)(),Be=(0,Pr.capitalize)((it=(mt=he.user)==null?void 0:mt.value)!=null?it:"all"),et=[In.createCopyDocsUrlAction(ze),In.createStarEntityAction(ge,Re)];return G?t.createElement(c.WarningPanel,{severity:"error",title:"Could not load available documentation."},t.createElement(c.CodeSnippet,{language:"text",text:G.toString()})):t.createElement(rr.DocsTable,{title:Be,entities:q,loading:N,actions:C||et,columns:m})};Ut.columns=tn,Ut.actions=In;var _t=e(1114);class wn{getCatalogFilters(){return{"metadata.annotations.backstage.io/techdocs-ref":Ae.n3}}}const Wn=()=>{const{updateFilters:m}=(0,Ae.useEntityListProvider)();return(0,t.useEffect)(()=>{m({techdocs:new wn})},[m]),null},Lr=({initialFilter:m="all",columns:C,actions:N})=>t.createElement(_t.j,null,t.createElement(c.Content,null,t.createElement(c.ContentHeader,{title:""},t.createElement(c.SupportButton,null,"Discover documentation in your ecosystem.")),t.createElement(Ae.EntityListProvider,null,t.createElement(Xn.q7,null,t.createElement(Xn.Gh,null,t.createElement(Wn,null),t.createElement(Ae.UserListPicker,{initialFilter:m}),t.createElement(Ae.EntityOwnerPicker,null),t.createElement(Ae.EntityTagPicker,null)),t.createElement(Xn.Nz,null,t.createElement(Ut,{actions:N,columns:C}))))));var Xr=e(10187);const ar=()=>{const{loading:m,error:C,entities:N}=useEntityListProvider();return C?React.createElement(WarningPanel,{severity:"error",title:"Could not load available documentation."},React.createElement(CodeSnippet,{language:"text",text:C.toString()})):m||!N?React.createElement(Progress,null):(N.sort((G,q)=>{var he,ge;return((he=G.metadata.title)!=null?he:G.metadata.name).localeCompare((ge=q.metadata.title)!=null?ge:q.metadata.name)}),React.createElement(DocsCardGrid,{entities:N}))};var ln=e(68725);const cn=(0,i.createPlugin)({id:"techdocs",apis:[(0,i.createApiFactory)({api:Xt.D,deps:{configApi:i.configApiRef,discoveryApi:i.discoveryApiRef,identityApi:i.identityApiRef,fetchApi:i.fetchApiRef},factory:({configApi:m,discoveryApi:C,identityApi:N,fetchApi:G})=>new nr({configApi:m,discoveryApi:C,identityApi:N,fetchApi:G})}),(0,i.createApiFactory)({api:Xt.g,deps:{configApi:i.configApiRef,discoveryApi:i.discoveryApiRef,fetchApi:i.fetchApiRef},factory:({configApi:m,discoveryApi:C,fetchApi:N})=>new Fn({configApi:m,discoveryApi:C,fetchApi:N})})],routes:{root:ln._Z,docRoot:ln.Fw,entityContent:ln.pd}}),or=cn.provide((0,i.createRoutableExtension)({name:"TechdocsPage",component:()=>Promise.resolve().then(e.bind(e,94067)).then(m=>m.Router),mountPoint:ln._Z})),zn=cn.provide((0,i.createRoutableExtension)({name:"EntityTechdocsContent",component:()=>Promise.resolve().then(e.bind(e,94067)).then(m=>m.EmbeddedDocsRouter),mountPoint:ln.pd})),Ea=cn.provide((0,i.createComponentExtension)({name:"DocsCardGrid",component:{lazy:()=>Promise.resolve().then(e.bind(e,10187)).then(m=>m.DocsCardGrid)}})),kr=cn.provide((0,i.createComponentExtension)({name:"DocsTable",component:{lazy:()=>Promise.resolve().then(e.bind(e,83201)).then(m=>m.DocsTable)}})),Ir=cn.provide((0,i.createRoutableExtension)({name:"TechDocsCustomHome",component:()=>Promise.resolve().then(e.bind(e,57110)).then(m=>m.TechDocsCustomHome),mountPoint:ln._Z})),Or=cn.provide((0,i.createRoutableExtension)({name:"TechDocsIndexPage",component:()=>Promise.resolve().then(e.bind(e,41481)).then(m=>m.TechDocsIndexPage),mountPoint:ln._Z})),qr=cn.provide((0,i.createRoutableExtension)({name:"TechDocsReaderPage",component:()=>Promise.resolve().then(e.bind(e,31752)).then(m=>m.TechDocsPage),mountPoint:ln.Fw}));var Hn=e(73873),va=e(94067),xr=e(36356);class br{constructor({configApi:C,discoveryApi:N,identityApi:G}){ae(this,"configApi");ae(this,"discoveryApi");ae(this,"identityApi");this.configApi=C,this.discoveryApi=N,this.identityApi=G}async getApiOrigin(){var C;return(C=this.configApi.getOptionalString("techdocs.requestUrl"))!=null?C:await this.discoveryApi.getBaseUrl("techdocs")}async getStorageUrl(){var C;return(C=this.configApi.getOptionalString("techdocs.storageUrl"))!=null?C:`${await this.discoveryApi.getBaseUrl("techdocs")}/static/docs`}async getBuilder(){return this.configApi.getString("techdocs.builder")}async getEntityDocs(C,N){const q=`${await this.getApiOrigin()}/${N}`,he=await fetch(`${q.endsWith("/")?q:`${q}/`}index.html`);if(he.status===404)throw new Error("Page not found");return he.text()}async syncEntityDocs(C){return"cached"}async getBaseUrl(C,N,G){const q=await this.getApiOrigin();return new URL(C,`${q}/${G}`).toString()}}class sr{constructor({configApi:C,discoveryApi:N,identityApi:G}){ae(this,"configApi");ae(this,"discoveryApi");ae(this,"identityApi");this.configApi=C,this.discoveryApi=N,this.identityApi=G}async getApiOrigin(){var C;return(C=this.configApi.getOptionalString("techdocs.requestUrl"))!=null?C:await this.discoveryApi.getBaseUrl("techdocs")}async getEntityMetadata(C){return{apiVersion:"backstage.io/v1alpha1",kind:"Component",metadata:{name:"local"},spec:{owner:"test",lifecycle:"experimental"}}}async getTechDocsMetadata(C){return{site_name:"Live preview environment",site_description:""}}}const On=[(0,i.createApiFactory)({api:Xt.D,deps:{configApi:i.configApiRef,discoveryApi:i.discoveryApiRef,identityApi:i.identityApiRef},factory:({configApi:m,discoveryApi:C,identityApi:N})=>new br({configApi:m,discoveryApi:C,identityApi:N})}),(0,i.createApiFactory)({api:Xt.g,deps:{configApi:i.configApiRef,discoveryApi:i.discoveryApiRef,identityApi:i.identityApiRef},factory:({configApi:m,discoveryApi:C,identityApi:N})=>new sr({configApi:m,discoveryApi:C,identityApi:N})}),(0,i.createApiFactory)({api:xr.q3,deps:{configApi:i.configApiRef},factory:({configApi:m})=>xr.ae.fromConfig(m)})];var yn=e(86689),Dr=e(58845);const ir=(0,fe.Z)({svg:{width:"auto",height:30},path:{fill:"#7df3e1"}});var Vn=()=>{const m=ir();return t.createElement("svg",{className:m.svg,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 2079.95 456.05"},t.createElement("path",{className:m.path,d:"M302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Zm241-88.84q7.94,0,17.09.17t18.12,1a139.3,139.3,0,0,1,16.74,2.57,42.78,42.78,0,0,1,13.3,5.14,64.27,64.27,0,0,1,20.54,19.89Q662,168,662,186.54q0,19.54-9.49,33.78t-27.1,21.09v.68q22.78,4.82,34.87,20.58t12.08,38.4a72.62,72.62,0,0,1-4.83,26.06,65.29,65.29,0,0,1-14.33,22.46,71.57,71.57,0,0,1-23.47,15.78q-14,6-32.28,6H478.38V126.54Zm9,105.27q28,0,40.21-9.78t12.26-29.31q0-13-4.14-20.58a29.47,29.47,0,0,0-11.4-11.66A45,45,0,0,0,597,155.17a161.2,161.2,0,0,0-20.19-1.2h-65.6v77.84Zm16.57,112.13q21.74,0,34-11.66T639.59,300q0-12-4.48-19.88a34.85,34.85,0,0,0-11.91-12.52,50.14,50.14,0,0,0-17.09-6.52,105,105,0,0,0-20-1.88H511.17v84.7Zm274.79,26.74q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58A41.19,41.19,0,0,1,705,348.56q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.08-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7T736.6,249.29H707.26q.69-16.46,6.9-27.77a52.21,52.21,0,0,1,16.57-18.35,70,70,0,0,1,23.65-10.11A125.51,125.51,0,0,1,782.86,190a168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7A41.23,41.23,0,0,1,844,213.59q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-18,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.5,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14ZM1002.07,225q-11.05-9.25-29.69-9.26-15.89,0-26.58,5.83A47.29,47.29,0,0,0,928.71,237a64.66,64.66,0,0,0-9.15,22.12A119.83,119.83,0,0,0,916.8,285a98.22,98.22,0,0,0,2.93,24,64.18,64.18,0,0,0,9.15,20.74,46.2,46.2,0,0,0,16.23,14.58q10,5.49,23.82,5.48,21.75,0,34-11.31t15-31.89h30q-4.83,32.91-24.68,50.75t-54,17.83q-20.37,0-36.07-6.52A69.86,69.86,0,0,1,907,350.11a79.92,79.92,0,0,1-15.88-28.63A118.64,118.64,0,0,1,885.73,285a129.41,129.41,0,0,1,5.18-37.21,85.63,85.63,0,0,1,15.71-30.17A73.46,73.46,0,0,1,933,197.35Q948.91,190,970,190a108.54,108.54,0,0,1,28.48,3.6,69.59,69.59,0,0,1,23.48,11.15,61,61,0,0,1,16.74,19q6.55,11.49,8.29,27.26h-30.38Q1013.11,234.21,1002.07,225Zm109.77-98.41v145l81.47-77.49h39.36l-70.77,64.46,75.95,112.82h-37.29l-61.1-92.59-27.62,25.38v67.21H1082.5V126.54Zm170.54,205.22a31.07,31.07,0,0,0,10.87,10.63,49,49,0,0,0,15.19,5.66,87.06,87.06,0,0,0,17.44,1.71,109.18,109.18,0,0,0,14.5-1,53.22,53.22,0,0,0,14-3.78,26.27,26.27,0,0,0,10.53-8q4.14-5.32,4.14-13.55,0-11.31-8.63-17.14a73.69,73.69,0,0,0-21.58-9.43q-12.94-3.6-28.13-6.52a146,146,0,0,1-28.14-8.23A58.16,58.16,0,0,1,1261,267.13q-8.64-9.6-8.63-26.75,0-13.38,6-23a49.26,49.26,0,0,1,15.53-15.61,71.76,71.76,0,0,1,21.4-8.91A99.41,99.41,0,0,1,1319,190a141.31,141.31,0,0,1,28,2.58,64.85,64.85,0,0,1,22.62,8.91,46.16,46.16,0,0,1,15.7,17.15q5.87,10.8,6.91,26.91h-29.35q-.69-8.57-4.48-14.23a29.36,29.36,0,0,0-9.67-9.08,44.16,44.16,0,0,0-12.94-5,67.68,67.68,0,0,0-14.33-1.54,87.29,87.29,0,0,0-13.29,1,45.28,45.28,0,0,0-12.26,3.6,24.49,24.49,0,0,0-9,6.86q-3.46,4.29-3.46,11.14a16.32,16.32,0,0,0,5.36,12.52,42.75,42.75,0,0,0,13.63,8.23,120,120,0,0,0,18.64,5.48q10.37,2.24,20.72,4.63,11,2.4,21.57,5.83A70.74,70.74,0,0,1,1382,284.1a44.55,44.55,0,0,1,13.12,14.23q5,8.58,5,21.26,0,16.13-6.73,26.75a52.5,52.5,0,0,1-17.61,17.14,73.89,73.89,0,0,1-24.51,9.09,146.3,146.3,0,0,1-27.1,2.57,126.24,126.24,0,0,1-28.31-3.09A69.56,69.56,0,0,1,1272,361.94a51.74,51.74,0,0,1-16.57-18.52q-6.21-11.49-6.9-27.95h29.34A32.65,32.65,0,0,0,1282.38,331.76Zm226.46-137.67v25.72h-35.56V329.88a31.37,31.37,0,0,0,.87,8.23,8.42,8.42,0,0,0,3.28,4.8,14.61,14.61,0,0,0,6.73,2.23,99.19,99.19,0,0,0,11.22.51h13.46v25.72H1486.4a105.8,105.8,0,0,1-19.5-1.55,28.65,28.65,0,0,1-13.12-5.65,24.09,24.09,0,0,1-7.42-11.66q-2.43-7.54-2.42-19.89V219.81h-30.38V194.09h30.38V140.94h29.34v53.15ZM1699.4,370.68q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58,41.19,41.19,0,0,1-12.6-15.26q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.07-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7t-13.46,26.57h-29.34q.67-16.46,6.9-27.77A52.21,52.21,0,0,1,1562,203.17a70,70,0,0,1,23.65-10.11,125.51,125.51,0,0,1,28.48-3.09,168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7,41.23,41.23,0,0,1,15.53,14.89q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-17.95,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.51,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14Zm208.85,141.62q-20,21.6-62.83,21.6a122.11,122.11,0,0,1-25.37-2.74,78,78,0,0,1-23.48-8.92,54.41,54.41,0,0,1-17.43-16.11q-6.91-10-7.6-24.35h29.35a21.47,21.47,0,0,0,5,13.38,36.67,36.67,0,0,0,11.4,8.91,55.52,55.52,0,0,0,14.67,5,79.51,79.51,0,0,0,15.19,1.55q14.49,0,24.51-5A46,46,0,0,0,1840.59,401a56.53,56.53,0,0,0,9.49-21.09,117.46,117.46,0,0,0,2.94-27.09V341.19h-.7q-7.59,16.46-23,24.18a71.8,71.8,0,0,1-32.63,7.71q-20,0-34.86-7.2A72.88,72.88,0,0,1,1737,346.51a82.13,82.13,0,0,1-15-28.46,116.62,116.62,0,0,1-5-34.47,133.92,133.92,0,0,1,4.14-32.4A88.17,88.17,0,0,1,1735,221a75.49,75.49,0,0,1,25.55-22.29q15.87-8.75,39-8.75a66.21,66.21,0,0,1,31.07,7.38,52.13,52.13,0,0,1,22.09,22.11h.35V194.09h27.61V356.28Q1880.63,399.83,1860.61,421.43Zm-37.46-79.72a47.94,47.94,0,0,0,16.4-15.78,71.89,71.89,0,0,0,9.15-22.11,106.77,106.77,0,0,0,2.93-24.69,96.71,96.71,0,0,0-2.76-23,64,64,0,0,0-8.8-20.4,45.76,45.76,0,0,0-15.71-14.57q-9.66-5.49-23.47-5.49-14.16,0-24.17,5.32a46.77,46.77,0,0,0-16.4,14.23,60.14,60.14,0,0,0-9.32,20.57,99.69,99.69,0,0,0-2.93,24.35,120.63,120.63,0,0,0,2.42,24,67.5,67.5,0,0,0,8.28,21.77,46.37,46.37,0,0,0,15.54,15.78q9.66,6,24.16,6T1823.15,341.71Zm228,18.34q-20,15.09-50.41,15.09-21.4,0-37.11-6.86a73.16,73.16,0,0,1-26.41-19.2,81.52,81.52,0,0,1-16-29.49,141.12,141.12,0,0,1-6-37.38,106.1,106.1,0,0,1,6.21-37A88.56,88.56,0,0,1,1938.8,216a79.09,79.09,0,0,1,26.58-19.2A81.66,81.66,0,0,1,1999,190q23.82,0,39.53,9.78a78,78,0,0,1,25.2,24.86,98.18,98.18,0,0,1,13.12,32.91,140.6,140.6,0,0,1,2.93,34h-133.6a70,70,0,0,0,2.76,22.12,49.9,49.9,0,0,0,10,18.51A49.1,49.1,0,0,0,1976.6,345q10.7,4.82,25.2,4.8,18.65,0,30.55-8.57t15.71-26.06h29Q2071.18,345,2051.17,360.05Zm-7.08-113.84a50,50,0,0,0-10.7-16,53.1,53.1,0,0,0-56.62-10.63,47.48,47.48,0,0,0-15.71,10.81,51.69,51.69,0,0,0-10.35,15.94,60.18,60.18,0,0,0-4.49,19.37h102.53A59.47,59.47,0,0,0,2044.09,246.21ZM302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Z"}))};const Fr=(0,fe.Z)({svg:{width:"auto",height:28},path:{fill:"#7df3e1"}});var Br=()=>{const m=Fr();return t.createElement("svg",{className:m.svg,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 337.46 428.5"},t.createElement("path",{className:m.path,d:"M303,166.05a80.69,80.69,0,0,0,13.45-10.37c.79-.77,1.55-1.53,2.3-2.3a83.12,83.12,0,0,0,7.93-9.38A63.69,63.69,0,0,0,333,133.23a48.58,48.58,0,0,0,4.35-16.4c1.49-19.39-10-38.67-35.62-54.22L198.56,0,78.3,115.23,0,190.25l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.22,49.22,0,0,0-6.8-8.87A89.17,89.17,0,0,0,259,178.29h.15a85.08,85.08,0,0,0,31-5.79A80.88,80.88,0,0,0,303,166.05ZM202.45,225.86c-19.32,18.51-50.4,21.23-75.7,5.9L51.61,186.15l67.45-64.64,76.41,46.38C223,184.58,221.49,207.61,202.45,225.86Zm8.93-82.22-70.65-42.89L205.14,39,274.51,81.1c25.94,15.72,29.31,37,10.55,55A60.69,60.69,0,0,1,211.38,143.64Zm29.86,190c-19.57,18.75-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,282.52v24.67L108.6,373.1a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.27,87.27,0,0,1,241.24,333.68Zm0-39c-19.57,18.75-46.17,29.08-74.88,29.08a123.81,123.81,0,0,1-64.1-18.19L0,243.53v24.68l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.5v-1.78A87.27,87.27,0,0,1,241.24,294.7Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.81,123.81,0,0,1-64.1-18.19L0,204.55v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.82A86.09,86.09,0,0,1,241.24,255.71Zm83.7,25.74a94.15,94.15,0,0,1-60.2,25.86h0V334a81.6,81.6,0,0,0,51.74-22.37c14-13.38,21.14-28.11,21-42.64v-2.19A94.92,94.92,0,0,1,324.94,281.45Zm-83.7,91.21c-19.57,18.76-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,321.5v24.68l108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A86.29,86.29,0,0,1,241.24,372.66ZM327,162.45c-.68.69-1.35,1.38-2.05,2.06a94.37,94.37,0,0,1-10.64,8.65,91.35,91.35,0,0,1-11.6,7,94.53,94.53,0,0,1-26.24,8.71,97.69,97.69,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a53.27,53.27,0,0,1,1.14,12V217h.05a84.41,84.41,0,0,0,25.35-5.55,81,81,0,0,0,26.39-16.82c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,172.17a48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7V150q-1.08,1.54-2.25,3.09A96.73,96.73,0,0,1,327,162.45Zm0,77.92c-.69.7-1.31,1.41-2,2.1a94.2,94.2,0,0,1-60.2,25.86h0l0,26.67h0a81.6,81.6,0,0,0,51.74-22.37A73.51,73.51,0,0,0,333,250.13a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.47.19-3.71v-2.19c-.74,1.07-1.46,2.15-2.27,3.21A95.68,95.68,0,0,1,327,240.37Zm0-39c-.69.7-1.31,1.41-2,2.1a93.18,93.18,0,0,1-10.63,8.65,91.63,91.63,0,0,1-11.63,7,95.47,95.47,0,0,1-37.94,10.18h0V256h0a81.65,81.65,0,0,0,51.74-22.37c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,211.15a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.46,2.16-2.27,3.22A95.68,95.68,0,0,1,327,201.39Z"}))};const Mr=(0,fe.Z)({root:{width:c.sidebarConfig.drawerWidthClosed,height:3*c.sidebarConfig.logoHeight,display:"flex",flexFlow:"row nowrap",alignItems:"center",marginBottom:-14},link:{width:c.sidebarConfig.drawerWidthClosed,marginLeft:24}}),ea=()=>{const m=Mr(),{isOpen:C}=(0,t.useContext)(c.SidebarContext);return t.createElement("div",{className:m.root},t.createElement(yn.Z,{component:E.OL,to:"/docs/default/component/local/",underline:"none",className:m.link},C?t.createElement(Vn,null):t.createElement(Br,null)))},Nr=({children:m})=>t.createElement(c.SidebarPage,null,t.createElement(c.Sidebar,null,t.createElement(ea,null),t.createElement(c.SidebarDivider,null),t.createElement(c.SidebarItem,{icon:Dr.Z,to:"docs/default/component/local/",text:"Docs Preview"})),m),Zr=()=>{const m={site_name:"Live preview environment",site_description:""};return t.createElement(Hn.EV,null,({entityRef:C,onReady:N})=>t.createElement(t.Fragment,null,t.createElement(Hn.nN,{techDocsMetadata:m,entityRef:C}),t.createElement(c.Content,{"data-testid":"techdocs-content"},t.createElement(Hn.Ej,{onReady:N,entityRef:C,withSearch:!1}))))},Ur=t.createElement(Zr,null),lr={backend:{baseUrl:"http://localhost:3000"},techdocs:{builder:"external",requestUrl:"http://localhost:3000/api"}},cr={backend:{baseUrl:"http://localhost:7007"},techdocs:{builder:"external",requestUrl:"http://localhost:7007/api"}};async function ta(){const m=await fetch("/.detect");return m.ok?(await m.text()).trim()==="techdocs-cli-server":!1}async function T(){const m=await(0,v.defaultConfigLoader)(),C=await ta();return[...m,{context:"detected",data:C?lr:cr}]}const I=$({apis:On,configLoader:T,plugins:Object.values(r)}),U=I.getProvider(),K=I.getRouter(),k=t.createElement(v.FlatRoutes,null,t.createElement(d.Fg,{key:"/",to:"/docs/default/component/local/"}),t.createElement(d.AW,{path:"/catalog/:namespace/:kind/:name",element:t.createElement(er,null)}),t.createElement(d.AW,{path:"/docs",element:t.createElement(Or,null)},t.createElement(Lr,null)),t.createElement(d.AW,{path:"/docs/:namespace/:kind/:name/*",element:t.createElement(qr,null)},Ur));var se=()=>t.createElement(U,null,t.createElement(K,null,t.createElement(Nr,null,k)));l.render(t.createElement(se,null),document.getElementById("root"))},76241:function(ee,s,e){"use strict";e.d(s,{CT:function(){return i},EI:function(){return h},uW:function(){return d},Vt:function(){return p}});function r(){return typeof window!="undefined"&&window.Math===Math?window:typeof self!="undefined"&&self.Math===Math?self:Function("return this")()}const t=r(),l=c=>`__@backstage/${c}__`;function d(c,E){const o=l(c);let S=t[o];return S||(S=E(),t[o]=S,S)}var v=e(2784);function i(c){return d(c,()=>(0,v.createContext)(void 0))}function p(c){return(0,v.useContext)(i(c))}function g(c){return{set(E){globalThis[`__@backstage/${c}__`]=createContext(createVersionedValueMap(E))},reset(){delete globalThis[`__@backstage/${c}__`]}}}function h(c){return Object.freeze(c),{atVersion(E){return c[E]}}}},31423:function(ee,s,e){"use strict";e.d(s,{AsyncEntityProvider:function(){return be},n3:function(){return t.n3},DefaultStarredEntitiesApi:function(){return c},EntityContext:function(){return ne},EntityKindFilter:function(){return P},EntityLifecyclePicker:function(){return Ve},EntityListProvider:function(){return Ft},EntityOwnerPicker:function(){return Kt},EntityRefLink:function(){return le},EntityRefLinks:function(){return oe},EntityTable:function(){return Nn},EntityTagPicker:function(){return Vr},EntityTypePicker:function(){return jr},FavoriteEntity:function(){return Sr},InspectEntityDialog:function(){return Dr},UnregisterEntityDialog:function(){return Br},UserListPicker:function(){return lr},Ah:function(){return d},M4:function(){return Z},wi:function(){return O},favoriteEntityIcon:function(){return Dn},favoriteEntityTooltip:function(){return kn},formatEntityRefTitle:function(){return nt},getEntityMetadataEditUrl:function(){return gt},getEntityMetadataViewUrl:function(){return It},getEntityRelations:function(){return tt},getEntitySourceLocation:function(){return St},isOwnerOf:function(){return Ct},starredEntitiesApiRef:function(){return E},useEntity:function(){return Qe},useEntityCompoundName:function(){return V},useEntityFromUrl:function(){return xe},useEntityKinds:function(){return Ue},useEntityListProvider:function(){return dt},useEntityPermission:function(){return J},useOwnUser:function(){return De},useRelatedEntities:function(){return Ae},useStarredEntities:function(){return ct}});var r={};e.r(r),e.d(r,{createDomainColumn:function(){return wt},createEntityRefColumn:function(){return hn},createEntityRelationColumn:function(){return gn},createMetadataDescriptionColumn:function(){return Rn},createOwnerColumn:function(){return ft},createSpecLifecycleColumn:function(){return Wt},createSpecTypeColumn:function(){return Pn},createSystemColumn:function(){return sn}});var t=e(30001),l=e(36964);const d=(0,l.createApiRef)({id:"plugin.catalog.service"});var v=e(82394),i=e.n(v),p=e(52890),g=e(76635);async function h({storageApi:T}){var Q;const I=T.forBucket("settings"),U=T.forBucket("starredEntities"),K=I.get("starredEntities");if(!(0,g.isArray)(K))return;const k=new Set((Q=U.get("entityRefs"))!=null?Q:[]);K.filter(g.isString).map(se=>se.split(":")).filter(se=>se.length===4&&se[0]==="entity").map(([se,m,C,N])=>(0,p.eE)({kind:m,namespace:C,name:N})).forEach(se=>k.add(se)),await U.set("entityRefs",Array.from(k)),await I.remove("starredEntities")}class c{constructor(I){ae(this,"settingsStore");ae(this,"starredEntities");ae(this,"subscribers",new Set);ae(this,"observable",new(i())(I=>(I.next(this.starredEntities),this.subscribers.add(I),()=>{this.subscribers.delete(I)})));var U;h(I).then(),this.settingsStore=I.storageApi.forBucket("starredEntities"),this.starredEntities=new Set((U=this.settingsStore.get("entityRefs"))!=null?U:[]),this.settingsStore.observe$("entityRefs").subscribe({next:K=>{var k;this.starredEntities=new Set((k=K.newValue)!=null?k:[]),this.notifyChanges()}})}async toggleStarred(I){this.starredEntities.has(I)?this.starredEntities.delete(I):this.starredEntities.add(I),await this.settingsStore.set("entityRefs",Array.from(this.starredEntities))}starredEntitie$(){return this.observable}isStarred(I){return this.starredEntities.has(I)}notifyChanges(){for(const I of this.subscribers)I.next(this.starredEntities)}}const E=(0,l.createApiRef)({id:"catalog-react.starred-entities"});var o=e(2784),S=e(76241),M=e(10289),x=e(77446);const Z=(0,l.createRouteRef)({id:"catalog"}),O=(0,S.uW)("catalog:entity-route-ref",()=>(0,l.createRouteRef)({id:"catalog:entity",params:["namespace","kind","name"]})),F=null;function B(T){var I,U;return{kind:T.kind.toLocaleLowerCase("en-US"),namespace:(U=(I=T.metadata.namespace)==null?void 0:I.toLocaleLowerCase("en-US"))!=null?U:ENTITY_DEFAULT_NAMESPACE,name:T.metadata.name}}const V=()=>{const{kind:T,namespace:I,name:U}=(0,l.useRouteRefParams)(O);return{kind:T,namespace:I,name:U}},ne=(0,o.createContext)({entity:void 0,loading:!0,error:void 0,refresh:()=>{}}),de=ne.Provider,ve=(0,S.CT)("entity-context"),be=({children:T,entity:I,loading:U,error:K,refresh:k})=>{const Q={entity:I,loading:U,error:K,refresh:k};return o.createElement(de,{value:Q},o.createElement(ve.Provider,{value:(0,S.EI)({1:Q})},T))},pe=({entity:T,children:I})=>React.createElement(be,{entity:T,loading:!Boolean(T),error:void 0,refresh:void 0,children:I}),je=({value:T,children:I})=>o.createElement(be,{...T,children:I});ne.Provider=je;const xe=()=>{const{kind:T,namespace:I,name:U}=V(),K=(0,M.s0)(),k=(0,l.useApi)(l.errorApiRef),Q=(0,l.useApi)(d),{value:se,error:m,loading:C,retry:N}=(0,x.Z)(()=>Q.getEntityByName({kind:T,namespace:I,name:U}),[Q,T,I,U]);return(0,o.useEffect)(()=>{U||(k.post(new Error("No name provided!")),K("/"))},[k,K,m,C,se,U]),{entity:se,loading:C,error:m,refresh:N}};function Qe(){const T=(0,S.Vt)("entity-context");if(!T)return{entity:void 0,loading:!0,error:void 0,refresh:()=>{}};const I=T.atVersion(1);if(!I)throw new Error("EntityContext v1 not available");const{entity:U,loading:K,error:k,refresh:Q}=I;return{entity:U,loading:K,error:k,refresh:Q}}var st=e(19126),ke=e.n(st),ht=e(69294),_e=e(48760),at=e(90736);function pt(T){return T.reduce((I,U)=>({...I,...U.getCatalogFilters?U.getCatalogFilters():{}}),{})}function Nt(T){return I=>T.every(U=>!U.filterEntity||U.filterEntity(I))}function It(T){var I;return(I=T.metadata.annotations)==null?void 0:I[p.wh]}function gt(T){var I;return(I=T.metadata.annotations)==null?void 0:I[p.J1]}function tt(T,I,U){var k,Q;let K=((Q=(k=T==null?void 0:T.relations)==null?void 0:k.filter(se=>se.type===I))==null?void 0:Q.map(se=>se.target))||[];return(U==null?void 0:U.kind)&&(K=K==null?void 0:K.filter(se=>se.kind.toLocaleLowerCase("en-US")===U.kind.toLocaleLowerCase("en-US"))),K}function St(T,I){var K;const U=(K=T.metadata.annotations)==null?void 0:K[p.wX];if(!!U)try{const k=(0,p.Me)(U),Q=I.byUrl(k.target);return{locationTargetUrl:k.target,integrationType:Q==null?void 0:Q.type}}catch{return}}function Ct(T,I){const U=new Set([...tt(T,p.hr,{kind:"group"}),...T?[(0,p.C_)(T)]:[]].map(p.eE)),K=tt(I,p.S4).map(p.eE);for(const k of K)if(U.has(k))return!0;return!1}const Ot=(0,o.createContext)(void 0),Ft=({children:T})=>{const I=(0,at.default)(),U=(0,l.useApi)(d),[K,k]=(0,o.useState)({}),Q=(0,M.TH)(),se=(0,o.useMemo)(()=>{var Re;return(Re=ke().parse(Q.search,{ignoreQueryPrefix:!0}).filters)!=null?Re:{}},[Q]),[m,C]=(0,o.useState)(()=>({appliedFilters:{},entities:[],backendEntities:[]})),[{loading:N,error:G},q]=(0,ht.default)(async()=>{var it;const Re=(0,g.compact)(Object.values(K)),ze=Nt(Re),Be=pt(Re),et=pt((0,g.compact)(Object.values(m.appliedFilters))),mt=Object.keys(K).reduce((rt,Pt)=>{const vt=K[Pt];return(vt==null?void 0:vt.toQueryValue)&&(rt[Pt]=vt.toQueryValue()),rt},{});if((0,g.isEqual)(et,Be))C({appliedFilters:K,backendEntities:m.backendEntities,entities:m.backendEntities.filter(ze)});else{const rt=await U.getEntities({filter:Be});C({appliedFilters:K,backendEntities:rt.items,entities:rt.items.filter(ze)})}if(I()){const rt=ke().parse(Q.search,{ignoreQueryPrefix:!0}),Pt=ke().stringify({...rt,filters:mt},{addQueryPrefix:!0}),vt=`${window.location.pathname}${Pt}`;(it=window.history)==null||it.replaceState(null,document.title,vt)}},[U,se,K,m],{loading:!0});(0,_e.Z)(q,10,[K]);const he=(0,o.useCallback)(Re=>{k(ze=>{const Be=typeof Re=="function"?Re(ze):Re;return{...ze,...Be}})},[]),ge=(0,o.useMemo)(()=>({filters:m.appliedFilters,entities:m.entities,backendEntities:m.backendEntities,updateFilters:he,queryParameters:se,loading:N,error:G}),[m,he,se,N,G]);return o.createElement(Ot.Provider,{value:ge},T)};function dt(){const T=(0,o.useContext)(Ot);if(!T)throw new Error("useEntityListProvider must be used within EntityListProvider");return T}var Tt=e(64279),Bt=e(18149),Ne=e.n(Bt);function nt(T,I){const U=I==null?void 0:I.defaultKind;let K,k,Q;return"metadata"in T?(K=T.kind,k=T.metadata.namespace,Q=T.metadata.name):(K=T.kind,k=T.namespace,Q=T.name),k===p.sk&&(k=void 0),K=K.toLocaleLowerCase("en-US"),`${(0,p.TH)({kind:U&&U.toLocaleLowerCase("en-US")===K?void 0:K,name:Q,namespace:k})}`}var Ye=e(9118),At=e(80030);const le=(0,o.forwardRef)((T,I)=>{var Re;const{entityRef:U,defaultKind:K,title:k,children:Q,...se}=T,m=(0,l.useRouteRef)(O);let C,N,G;"metadata"in U?(C=U.kind,N=U.metadata.namespace,G=U.metadata.name):(C=U.kind,N=U.namespace,G=U.name),C=C.toLocaleLowerCase("en-US");const q={kind:C,namespace:(Re=N==null?void 0:N.toLocaleLowerCase("en-US"))!=null?Re:p.sk,name:G},he=nt(U,{defaultKind:K}),ge=o.createElement(Ye.Link,{...se,ref:I,to:m(q)},Q,!Q&&(k!=null?k:he));return k?o.createElement(At.ZP,{title:he},ge):ge}),oe=({entityRefs:T,defaultKind:I,...U})=>o.createElement(o.Fragment,null,T.map((K,k)=>o.createElement(o.Fragment,{key:k},k>0&&", ",o.createElement(le,{...U,entityRef:K,defaultKind:I}))));class P{constructor(I){this.value=I}getCatalogFilters(){return{kind:this.value}}toQueryValue(){return this.value}}class L{constructor(I){this.value=I}getTypes(){return Array.isArray(this.value)?this.value:[this.value]}getCatalogFilters(){return{"spec.type":this.getTypes()}}toQueryValue(){return this.getTypes()}}class ${constructor(I){this.values=I}filterEntity(I){return this.values.every(U=>{var K;return((K=I.metadata.tags)!=null?K:[]).includes(U)})}toQueryValue(){return this.values}}class Y{constructor(I){this.value=I}filterEntity(I){var K;const U=this.value.toLocaleUpperCase("en-US");return I.metadata.name.toLocaleUpperCase("en-US").includes(U)||`${I.metadata.title}`.toLocaleUpperCase("en-US").includes(U)||((K=I.metadata.tags)==null?void 0:K.join("").toLocaleUpperCase("en-US").indexOf(U))!==-1}}class _{constructor(I){this.values=I}filterEntity(I){return this.values.some(U=>tt(I,p.S4).some(K=>nt(K,{defaultKind:"group"})===U))}toQueryValue(){return this.values}}class fe{constructor(I){this.values=I}filterEntity(I){return this.values.some(U=>{var K;return((K=I.spec)==null?void 0:K.lifecycle)===U})}toQueryValue(){return this.values}}class Te{constructor(I,U,K){this.value=I,this.isOwnedEntity=U,this.isStarredEntity=K}filterEntity(I){switch(this.value){case"owned":return this.isOwnedEntity(I);case"starred":return this.isStarredEntity(I);default:return!0}}toQueryValue(){return this.value}}function Se(){var ze;const T=(0,l.useApi)(d),{filters:{kind:I,type:U},queryParameters:K,updateFilters:k}=dt(),Q=(0,o.useMemo)(()=>[K.type].flat().filter(Boolean),[K]),[se,m]=(0,o.useState)(Q.length?Q:(ze=U==null?void 0:U.getTypes())!=null?ze:[]);(0,o.useEffect)(()=>{Q.length&&m(Q)},[Q]);const[C,N]=(0,o.useState)([]),G=(0,o.useMemo)(()=>I==null?void 0:I.value,[I]),{error:q,loading:he,value:ge}=(0,Tt.default)(async()=>G?await T.getEntities({filter:{kind:G},fields:["spec.type"]}).then(et=>et.items):[],[G,T]),Re=(0,o.useRef)(ge);return(0,o.useEffect)(()=>{const Be=Re.current;if(Re.current=ge,he||!G||Be===ge||!ge)return;const et=ge.reduce((rt,Pt)=>{var Mt;if(typeof((Mt=Pt.spec)==null?void 0:Mt.type)!="string")return rt;const vt=Pt.spec.type.toLocaleLowerCase("en-US");return rt[vt]||(rt[vt]=0),rt[vt]+=1,rt},{}),mt=Object.entries(et).sort(([,rt],[,Pt])=>Pt-rt).map(([rt])=>rt);N(mt);const it=se.filter(rt=>mt.includes(rt));Ne()(se,it)||m(it)},[he,G,se,m,ge]),(0,o.useEffect)(()=>{k({type:se.length?new L(se):void 0})},[se,k]),{loading:he,error:q,availableTypes:C,selectedTypes:se,setSelectedTypes:m}}function Ue(){const T=(0,l.useApi)(d),{error:I,loading:U,value:K}=(0,Tt.default)(async()=>{const k=await T.getEntities({fields:["kind"]}).then(Q=>Q.items);return[...new Set(k.map(Q=>Q.kind))].sort()});return{error:I,loading:U,kinds:K}}function De(){const T=(0,l.useApi)(d),I=(0,l.useApi)(l.identityApiRef);return(0,Tt.default)(async()=>{const U=await I.getBackstageIdentity();return T.getEntityByName((0,p.of)(U.userEntityRef,{defaultKind:"User",defaultNamespace:p.sk}))},[T,I])}const Pe=20;function Ae(T,{type:I,kind:U}){const K=(0,l.useApi)(d),{loading:k,value:Q,error:se}=(0,Tt.default)(async()=>{const m=T.relations&&T.relations.filter(q=>(!I||q.type.toLocaleLowerCase("en-US")===I.toLocaleLowerCase("en-US"))&&(!U||q.target.kind.toLocaleLowerCase("en-US")===U.toLocaleLowerCase("en-US")));if(!m)return[];const C=Object.values((0,g.groupBy)(m,({target:q})=>`${q.kind}:${q.namespace}`.toLocaleLowerCase("en-US"))),N=[];for(const q of C)N.push({kind:q[0].target.kind,namespace:q[0].target.namespace,nameBatches:(0,g.chunk)(q.map(he=>he.target.name),Pe)});return(await Promise.all(N.flatMap(q=>q.nameBatches.map(he=>K.getEntities({filter:{kind:q.kind,"metadata.namespace":q.namespace,"metadata.name":he}}))))).flatMap(q=>q.items)},[T,I]);return{entities:Q,loading:k,error:se}}var Ze=e(72164);function yt(T){return typeof T=="string"?T:(0,p.eE)(T)}function ct(){const T=(0,l.useApi)(E),I=(0,Ze.Z)(T.starredEntitie$(),new Set),U=(0,o.useCallback)(k=>I.has(yt(k)),[I]),K=(0,o.useCallback)(k=>T.toggleStarred(yt(k)).then(),[T]);return{starredEntities:I,toggleStarredEntity:K,isStarredEntity:U}}function Ge(T){return typeof T=="string"?T:(0,p.eE)(T)}function ue(T){const I=(0,l.useApi)(E),[U,K]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{const Q=I.starredEntitie$().subscribe({next(se){K(se.has(Ge(T)))}});return()=>{Q.unsubscribe()}},[T,I]),{toggleStarredEntity:(0,o.useCallback)(()=>I.toggleStarred(Ge(T)).then(),[T,I]),isStarredEntity:U}}async function $e(T){return(await T.getBackstageIdentity()).ownershipEntityRefs}async function qe(T,I){const U=new Array,K=I.find(k=>k.startsWith("user:"));if(K){const k=await T.getEntityByName((0,p.of)(K));if(k){const Q=tt(k,p.hr,{kind:"Group"});for(const se of Q)U.push((0,p.eE)(se))}}return U}function we(){const T=(0,l.useApi)(l.identityApiRef),I=(0,l.useApi)(d),{loading:U,value:K}=(0,Tt.default)(async()=>{const{ownershipEntityRefs:Q}=await T.getBackstageIdentity(),se=await qe(I,Q);return new Set([...Q,...se])},[]),k=(0,o.useMemo)(()=>{const Q=new Set(K!=null?K:[]);return se=>{const m=("metadata"in se?tt(se,p.S4):[se]).map(p.eE);for(const C of m)if(Q.has(C))return!0;return!1}},[K]);return(0,o.useMemo)(()=>({loading:U,isOwnedEntity:k}),[U,k])}function We(T){const I=useApi(identityApiRef),U=useApi(catalogApiRef),{loading:K,value:k}=useAsync(async()=>{const se=await loadIdentityOwnerRefs(I),m=await loadCatalogOwnerRefs(U,se);return await U.getEntities(T?{filter:{kind:T,[`relations.${RELATION_OWNED_BY}`]:[...se,...m]}}:{filter:{[`relations.${RELATION_OWNED_BY}`]:[...se,...m]}})},[]),Q=useMemo(()=>k,[k]);return useMemo(()=>({loading:K,ownedEntities:Q}),[K,Q])}var Je=e(20221);function J(T){const{entity:I,loading:U,error:K}=Qe(),{allowed:k,loading:Q,error:se}=(0,Je.gI)(T,I?(0,p.eE)(I):void 0);return U||Q?{loading:!0,allowed:!1}:K?{loading:!1,allowed:!1,error:K}:{loading:!1,allowed:k,error:se}}const A=T=>{var se;const{initialFilter:I,hidden:U}=T,{updateFilters:K,queryParameters:k}=useEntityListProvider(),[Q]=useState((se=[k.kind].flat()[0])!=null?se:I);return useEffect(()=>{K({kind:Q?new EntityKindFilter(Q):void 0})},[Q,K]),U?null:React.createElement(Alert,{severity:"warning"},"Kind filter not yet available")};var D=e(79692),z=e(95544),re=e(90436),Fe=e(5806),Ee=e(21324),Ie=e(86619),Me=e(19996),He=e(25505),Et=e(38016),ce=e(88013);const W=(0,D.Z)({input:{}},{name:"CatalogReactEntityLifecyclePicker"}),te=o.createElement(He.Z,{fontSize:"small"}),ye=o.createElement(Me.Z,{fontSize:"small"}),Ve=()=>{var N,G;const T=W(),{updateFilters:I,backendEntities:U,filters:K,queryParameters:k}=dt(),Q=(0,o.useMemo)(()=>[k.lifecycles].flat().filter(Boolean),[k]),[se,m]=(0,o.useState)(Q.length?Q:(G=(N=K.lifecycles)==null?void 0:N.values)!=null?G:[]);(0,o.useEffect)(()=>{Q.length&&m(Q)},[Q]),(0,o.useEffect)(()=>{I({lifecycles:se.length?new fe(se):void 0})},[se,I]);const C=(0,o.useMemo)(()=>[...new Set(U.map(q=>{var he;return(he=q.spec)==null?void 0:he.lifecycle}).filter(Boolean))].sort(),[U]);return C.length?o.createElement(z.Z,{pb:1,pt:1},o.createElement(re.Z,{variant:"button"},"Lifecycle"),o.createElement(ce.ZP,{"aria-label":"Lifecycle",multiple:!0,options:C,value:se,onChange:(q,he)=>m(he),renderOption:(q,{selected:he})=>o.createElement(Fe.Z,{control:o.createElement(Ee.Z,{icon:te,checkedIcon:ye,checked:he}),label:q}),size:"small",popupIcon:o.createElement(Et.Z,{"data-testid":"lifecycle-picker-expand"}),renderInput:q=>o.createElement(Ie.Z,{...q,className:T.input,variant:"outlined"})})):null},Ke=(0,D.Z)({input:{}},{name:"CatalogReactEntityOwnerPicker"}),ot=o.createElement(He.Z,{fontSize:"small"}),Rt=o.createElement(Me.Z,{fontSize:"small"}),Kt=()=>{var N,G;const T=Ke(),{updateFilters:I,backendEntities:U,filters:K,queryParameters:k}=dt(),Q=(0,o.useMemo)(()=>[k.owners].flat().filter(Boolean),[k]),[se,m]=(0,o.useState)(Q.length?Q:(G=(N=K.owners)==null?void 0:N.values)!=null?G:[]);(0,o.useEffect)(()=>{Q.length&&m(Q)},[Q]),(0,o.useEffect)(()=>{I({owners:se.length?new _(se):void 0})},[se,I]);const C=(0,o.useMemo)(()=>[...new Set(U.flatMap(q=>tt(q,p.S4).map(he=>nt(he,{defaultKind:"group"}))).filter(Boolean))].sort(),[U]);return C.length?o.createElement(z.Z,{pb:1,pt:1},o.createElement(re.Z,{variant:"button"},"Owner"),o.createElement(ce.ZP,{multiple:!0,"aria-label":"Owner",options:C,value:se,onChange:(q,he)=>m(he),renderOption:(q,{selected:he})=>o.createElement(Fe.Z,{control:o.createElement(Ee.Z,{icon:ot,checkedIcon:Rt,checked:he}),label:q}),size:"small",popupIcon:o.createElement(Et.Z,{"data-testid":"owner-picker-expand"}),renderInput:q=>o.createElement(Ie.Z,{...q,className:T.input,variant:"outlined"})})):null},en=(0,D.Z)(T=>({searchToolbar:{paddingLeft:0,paddingRight:0},input:{}}),{name:"CatalogReactEntitySearchBar"}),Jn=()=>{var Q,se;const T=en(),{filters:I,updateFilters:U}=useEntityListProvider(),[K,k]=useState((se=(Q=I.text)==null?void 0:Q.value)!=null?se:"");return useDebounce(()=>{U({text:K.length?new EntityTextFilter(K):void 0})},250,[K,U]),React.createElement(Toolbar,{className:T.searchToolbar},React.createElement(FormControl,null,React.createElement(Input,{id:"input-with-icon-adornment",className:T.input,placeholder:"Search",autoComplete:"off",onChange:m=>k(m.target.value),value:K,startAdornment:React.createElement(InputAdornment,{position:"start"},React.createElement(Search,null)),endAdornment:React.createElement(InputAdornment,{position:"end"},React.createElement(IconButton,{"aria-label":"clear search",onClick:()=>k(""),edge:"end",disabled:K.length===0},React.createElement(Clear,null)))})))};function hn(T){const{defaultKind:I}=T;function U(K){var k;return((k=K.metadata)==null?void 0:k.title)||nt(K,{defaultKind:I})}return{title:"Name",highlight:!0,customFilterAndSearch(K,k){return U(k).includes(K)},customSort(K,k){return U(K).localeCompare(U(k))},render:K=>{var k;return o.createElement(le,{entityRef:K,defaultKind:I,title:(k=K.metadata)==null?void 0:k.title})}}}function gn({title:T,relation:I,defaultKind:U,filter:K}){function k(se){return tt(se,I,K)}function Q(se){return k(se).map(m=>nt(m,{defaultKind:U})).join(", ")}return{title:T,customFilterAndSearch(se,m){return Q(m).includes(se)},customSort(se,m){return Q(se).localeCompare(Q(m))},render:se=>o.createElement(oe,{entityRefs:k(se),defaultKind:U})}}function ft(){return gn({title:"Owner",relation:p.S4,defaultKind:"group"})}function wt(){return gn({title:"Domain",relation:p.cz,defaultKind:"domain",filter:{kind:"domain"}})}function sn(){return gn({title:"System",relation:p.cz,defaultKind:"system",filter:{kind:"system"}})}function Rn(){return{title:"Description",field:"metadata.description",render:T=>o.createElement(Ye.OverflowTooltip,{text:T.metadata.description,placement:"bottom-start",line:2}),width:"auto"}}function Wt(){return{title:"Lifecycle",field:"spec.lifecycle"}}function Pn(){return{title:"Type",field:"spec.type"}}const gr=[hn({defaultKind:"system"}),wt(),ft(),Rn()],pr=[hn({defaultKind:"component"}),sn(),ft(),Pn(),Wt(),Rn()],Hr=(0,D.Z)(T=>({empty:{padding:T.spacing(2),display:"flex",justifyContent:"center"}}));function Nn(T){const{entities:I,title:U,emptyContent:K,variant:k="gridItem",columns:Q}=T,se=Hr(),m={minWidth:"0",width:"100%"};return k==="gridItem"&&(m.height="calc(100% - 10px)"),o.createElement(Ye.Table,{columns:Q,title:U,style:m,emptyContent:K&&o.createElement("div",{className:se.empty},K),options:{search:!1,paging:!1,actionsColumnIndex:-1,padding:"dense"},data:I})}Nn.columns=r,Nn.systemEntityColumns=gr,Nn.componentEntityColumns=pr;const Zn=(0,D.Z)({input:{}},{name:"CatalogReactEntityTagPicker"}),Yn=o.createElement(He.Z,{fontSize:"small"}),Qn=o.createElement(Me.Z,{fontSize:"small"}),Vr=()=>{var N,G;const T=Zn(),{updateFilters:I,backendEntities:U,filters:K,queryParameters:k}=dt(),Q=(0,o.useMemo)(()=>[k.tags].flat().filter(Boolean),[k]),[se,m]=(0,o.useState)(Q.length?Q:(G=(N=K.tags)==null?void 0:N.values)!=null?G:[]);(0,o.useEffect)(()=>{Q.length&&m(Q)},[Q]),(0,o.useEffect)(()=>{I({tags:se.length?new $(se):void 0})},[se,I]);const C=(0,o.useMemo)(()=>[...new Set(U.flatMap(q=>q.metadata.tags).filter(Boolean))].sort(),[U]);return C.length?o.createElement(z.Z,{pb:1,pt:1},o.createElement(re.Z,{variant:"button"},"Tags"),o.createElement(ce.ZP,{multiple:!0,"aria-label":"Tags",options:C,value:se,onChange:(q,he)=>m(he),renderOption:(q,{selected:he})=>o.createElement(Fe.Z,{control:o.createElement(Ee.Z,{icon:Yn,checkedIcon:Qn,checked:he}),label:q}),size:"small",popupIcon:o.createElement(Et.Z,{"data-testid":"tag-picker-expand"}),renderInput:q=>o.createElement(Ie.Z,{...q,className:T.input,variant:"outlined"})})):null};var yr=e(82108),Xn=e.n(yr);const jr=T=>{var N;const{hidden:I,initialFilter:U}=T,K=(0,l.useApi)(l.alertApiRef),{error:k,availableTypes:Q,selectedTypes:se,setSelectedTypes:m}=Se();if((0,o.useEffect)(()=>{k&&K.post({message:"Failed to load entity types",severity:"error"}),U&&m([U])},[k,K,U,m]),Q.length===0||k)return null;const C=[{value:"all",label:"All"},...Q.map(G=>({value:G,label:Xn()(G)}))];return I?null:o.createElement(z.Z,{pb:1,pt:1},o.createElement(Ye.Select,{label:"Type",items:C,selected:(N=C.length>1?se[0]:void 0)!=null?N:"all",onChange:G=>m(G==="all"?[]:[String(G)])}))};var Gr=e(15459),Er=e(61837),vr=e(11640),Ar=e(28347);const Rr=(0,Gr.Z)({root:{color:"#f3ba37"}})(vr.Z),kn=T=>T?"Remove from favorites":"Add to favorites",Dn=T=>T?o.createElement(Rr,null):o.createElement(Ar.Z,null),Sr=T=>{const{toggleStarredEntity:I,isStarredEntity:U}=ue(T.entity);return o.createElement(Er.Z,{color:"inherit",...T,onClick:()=>I()},o.createElement(At.ZP,{title:kn(U)},Dn(U)))};var qn=e(8629),Cr=e(79249),_n=e(38724),Jt=e(99152),Un=e(6487),er=e(49429),pn=e(77277),Zt=e(55999),Kr=e(72779),Tr=e.n(Kr),Jr=e(39412);function tr(T){var Q;const I=(0,l.useApp)(),{kind:U,...K}=T,k=(Q=I.getSystemIcon(`kind:${U.toLocaleLowerCase("en-US")}`))!=null?Q:Jr.Z;return o.createElement(k,{...K})}const ga=(0,D.Z)(T=>({node:{fill:T.palette.grey[300],stroke:T.palette.grey[300],"&.primary":{fill:T.palette.primary.light,stroke:T.palette.primary.light},"&.secondary":{fill:T.palette.secondary.light,stroke:T.palette.secondary.light}},text:{fill:T.palette.getContrastText(T.palette.grey[300]),"&.primary":{fill:T.palette.primary.contrastText},"&.secondary":{fill:T.palette.secondary.contrastText},"&.focused":{fontWeight:"bold"}},clickable:{cursor:"pointer"}}));function pa(T){const I=(0,l.useApi)(d),U=(0,p.eE)(T),{loading:K,error:k,value:Q}=(0,Tt.default)(async()=>{const se=await I.getEntityAncestors({entityRef:U}),m=new Array,C=new Array;for(const N of se.items){const G=(0,p.eE)(N.entity),q=G===se.rootEntityRef;m.push({id:G,root:q,...N.entity});for(const he of N.parentEntityRefs)C.push({from:G,to:he})}return{nodes:m,edges:C}},[U]);return{loading:K,error:k,nodes:(Q==null?void 0:Q.nodes)||[],edges:(Q==null?void 0:Q.edges)||[]}}function Yr({node:T}){const I=ga(),U=(0,M.s0)(),K=(0,l.useRouteRef)(O),[k,Q]=(0,o.useState)(0),[se,m]=(0,o.useState)(0),C=(0,o.useRef)(null);(0,o.useLayoutEffect)(()=>{if(C.current){let{height:Be,width:et}=C.current.getBBox();Be=Math.round(Be),et=Math.round(et),(Be!==se||et!==k)&&(Q(et),m(Be))}},[k,se]);const N=10,G=se,q=G+N,he=q+k+N*2,ge=se+N*2,Re=T.metadata.title||(T.kind&&T.metadata.name&&T.metadata.namespace?nt({kind:T.kind,name:T.metadata.name,namespace:T.metadata.namespace||""}):T.id),ze=()=>{U(K({kind:T.kind,namespace:T.metadata.namespace||p.sk,name:T.metadata.name}))};return o.createElement("g",{onClick:ze,className:I.clickable},o.createElement("rect",{className:Tr()(I.node,T.root?"secondary":"primary"),width:he,height:ge,rx:10}),o.createElement(tr,{kind:T.kind,y:N,x:N,width:G,height:G,className:Tr()(I.text,T.root?"secondary":"primary")}),o.createElement("text",{ref:C,className:Tr()(I.text,T.root?"secondary":"primary"),y:ge/2,x:q+(k+N*2)/2,textAnchor:"middle",alignmentBaseline:"middle"},Re))}function ya(T){const{loading:I,error:U,nodes:K,edges:k}=pa(T.entity);return I?o.createElement(Ye.Progress,null):U?o.createElement(Ye.ResponseErrorPanel,{error:U}):o.createElement(o.Fragment,null,o.createElement(Zt.Z,{variant:"h2"},"Ancestry"),o.createElement(Zt.Z,{gutterBottom:!0},"This is the ancestry of entities above the current one - as in, the chain(s) of entities down to the current one, where"," ",o.createElement(Ye.Link,{to:"https://backstage.io/docs/features/software-catalog/life-of-an-entity"},"processors emitted")," ","child entities that ultimately led to the current one existing. Note that this is a completely different mechanism from relations."),o.createElement(z.Z,{mt:4},o.createElement(Ye.DependencyGraph,{nodes:K,edges:k,renderNode:Yr,direction:Ye.DependencyGraphTypes.Nm.BOTTOM_TOP,zoom:"enable-on-click"})))}var Sn=e(11776),Xt=e(38402),Ln=e(86136),Fn=e(99688),nr=e(49378),Qr=e(54506),$n=e(94339),Pr=e(24579),rr=e(27685);const In=(0,D.Z)(T=>({root:{display:"flex",flexDirection:"column"},marginTop:{marginTop:T.spacing(2)},helpIcon:{marginLeft:T.spacing(1),color:T.palette.text.disabled},monospace:{fontFamily:"monospace"}}));function tn(T){const I=In();return o.createElement(nr.Z,{...T,primaryTypographyProps:{className:I.monospace},secondaryTypographyProps:{className:I.monospace}})}function Ut(T){const I=In();return o.createElement(Qr.Z,{className:I.monospace},T.children)}function _t(T){return o.createElement(z.Z,{mt:2},o.createElement($n.Z,{variant:"outlined"},o.createElement(Pr.Z,null,o.createElement(re.Z,{variant:"h6",gutterBottom:!0},T.title,T.helpLink&&o.createElement(Wn,{to:T.helpLink})),T.children)))}function wn(T){const[I,U]=T.entry;return o.createElement(Xt.Z,null,T.indent&&o.createElement(Ln.Z,null),o.createElement(tn,{primary:I,secondary:U.match(/^url:https?:\/\//)?o.createElement(o.Fragment,null,U.substring(0,4),o.createElement(Ye.Link,{to:U.substring(4)},U.substring(4))):U}))}function Wn(T){const I=In();return o.createElement(Ye.Link,{to:T.to,className:I.helpIcon},o.createElement(rr.Z,{fontSize:"inherit"}))}const Lr=(0,D.Z)({root:{display:"flex",flexDirection:"column"}});function Xr(T){var C,N;const I=(0,l.useApi)(d),U=(0,p.eE)(T),K=(C=T.metadata.annotations)==null?void 0:C[p.Jl],k=(N=T.metadata.annotations)==null?void 0:N[p.lb],{loading:Q,error:se,value:m}=(0,Tt.default)(async()=>!K&&!k?[]:(await I.getEntities({filter:[...K?[{[`metadata.annotations.${p.Jl}`]:K}]:[],...k?[{[`metadata.annotations.${p.lb}`]:k}]:[]]})).items,[K,k]);return{loading:Q,error:se,location:K,originLocation:k,colocatedEntities:m==null?void 0:m.filter(G=>(0,p.eE)(G)!==U)}}function ar(T){return o.createElement(Sn.Z,{dense:!0},T.header&&o.createElement(wn,{key:"header",entry:T.header}),T.entities.map(I=>o.createElement(Xt.Z,{key:(0,p.eE)(I)},o.createElement(Ln.Z,null,o.createElement(tr,{kind:I.kind})),o.createElement(tn,{primary:o.createElement(le,{entityRef:I})}))))}function ln(T){const{entity:I}=T,{loading:U,error:K,location:k,originLocation:Q,colocatedEntities:se}=Xr(I);if(U)return o.createElement(Ye.Progress,null);if(K)return o.createElement(Ye.ResponseErrorPanel,{error:K});if(!k&&!Q)return o.createElement(Fn.Z,{severity:"warning"},"Entity had no location information.");if(!(se==null?void 0:se.length))return o.createElement(Fn.Z,{severity:"info"},"There were no other entities on this location.");if(k===Q)return o.createElement(ar,{entities:se});const m=se.filter(N=>{var G;return((G=N.metadata.annotations)==null?void 0:G[p.Jl])===k}),C=se.filter(N=>{var G;return((G=N.metadata.annotations)==null?void 0:G[p.lb])===Q});return o.createElement(o.Fragment,null,m.length>0&&o.createElement(ar,{entities:m,header:["At the same location",k]}),C.length>0&&o.createElement(ar,{entities:C,header:["At the same origin",Q]}))}function cn(T){const I=Lr();return o.createElement(o.Fragment,null,o.createElement(Zt.Z,{variant:"h2"},"Colocated"),o.createElement(Zt.Z,null,"These are the entities that are colocated with this entity - as in, they originated from the same data source (e.g. came from the same YAML file), or from the same origin (e.g. the originally registered URL)."),o.createElement("div",{className:I.root},o.createElement(ln,{entity:T.entity})))}function or(T){return Object.fromEntries([...Object.entries(T)].sort((I,U)=>I[0]<U[0]?-1:1))}function zn(T){return o.createElement(o.Fragment,null,o.createElement(Zt.Z,{variant:"h2"},"Entity as JSON"),o.createElement(Zt.Z,null,"This is the raw entity data as received from the catalog, on JSON form."),o.createElement(Zt.Z,null,o.createElement("div",{style:{fontSize:"75%"},"data-testid":"code-snippet"},o.createElement(Ye.CodeSnippet,{text:JSON.stringify(or(T.entity),void 0,2),language:"json",showCopyCodeButton:!0}))))}var Ea=e(3440),kr=e.n(Ea),Ir=e(829),Or=e.n(Ir);const qr=(0,D.Z)({root:{display:"flex",flexDirection:"column"}});function Hn(T){var N,G;const I=qr(),{apiVersion:U,kind:K,metadata:k,spec:Q,relations:se=[],status:m={}}=T.entity,C=kr()(Or()(se,q=>(0,p.eE)(q.target)),"type");return o.createElement(o.Fragment,null,o.createElement(Zt.Z,{variant:"h2"},"Overview"),o.createElement("div",{className:I.root},o.createElement(_t,{title:"Identity"},o.createElement(Sn.Z,{dense:!0},o.createElement(Xt.Z,null,o.createElement(tn,{primary:"apiVersion",secondary:U})),o.createElement(Xt.Z,null,o.createElement(tn,{primary:"kind",secondary:K})),(Q==null?void 0:Q.type)&&o.createElement(Xt.Z,null,o.createElement(tn,{primary:"spec.type",secondary:Q.type})),k.uid&&o.createElement(Xt.Z,null,o.createElement(tn,{primary:"uid",secondary:k.uid})),k.etag&&o.createElement(Xt.Z,null,o.createElement(tn,{primary:"etag",secondary:k.etag})))),o.createElement(_t,{title:"Metadata"},!!Object.keys(k.annotations||{}).length&&o.createElement(Sn.Z,{dense:!0,subheader:o.createElement(Ut,null,"Annotations",o.createElement(Wn,{to:"https://backstage.io/docs/features/software-catalog/well-known-annotations"}))},Object.entries(k.annotations).map(q=>o.createElement(wn,{key:q[0],indent:!0,entry:q}))),!!Object.keys(k.labels||{}).length&&o.createElement(Sn.Z,{dense:!0,subheader:o.createElement(Ut,null,"Labels",o.createElement(Wn,{to:"https://backstage.io/docs/features/software-catalog/well-known-labels"}))},Object.entries(k.labels).map(q=>o.createElement(wn,{key:q[0],indent:!0,entry:q}))),!!((N=k.tags)==null?void 0:N.length)&&o.createElement(Sn.Z,{dense:!0,subheader:o.createElement(Ut,null,"Tags")},k.tags.map((q,he)=>o.createElement(Xt.Z,{key:`${q}-${he}`},o.createElement(Ln.Z,null),o.createElement(tn,{primary:q}))))),!!se.length&&o.createElement(_t,{title:"Relations",helpLink:"https://backstage.io/docs/features/software-catalog/well-known-relations"},Object.entries(C).map(([q,he],ge)=>o.createElement("div",{key:ge},o.createElement(Sn.Z,{dense:!0,subheader:o.createElement(Ut,null,q)},he.map(Re=>o.createElement(Xt.Z,{key:(0,p.eE)(Re.target)},o.createElement(Ln.Z,null,o.createElement(tr,{kind:Re.target.kind})),o.createElement(tn,{primary:o.createElement(le,{entityRef:Re.target})}))))))),!!((G=m.items)==null?void 0:G.length)&&o.createElement(_t,{title:"Status",helpLink:"https://backstage.io/docs/features/software-catalog/well-known-statuses"},m.items.map((q,he)=>o.createElement("div",{key:he},o.createElement(re.Z,null,q.level,": ",q.type),o.createElement(z.Z,{ml:2},q.message))))))}var va=e(60155),xr=e.n(va);function br(T){return o.createElement(o.Fragment,null,o.createElement(Zt.Z,{variant:"h2"},"Entity as YAML"),o.createElement(Zt.Z,null,"This is the raw entity data as received from the catalog, on YAML form."),o.createElement(Zt.Z,null,o.createElement("div",{style:{fontSize:"75%"},"data-testid":"code-snippet"},o.createElement(Ye.CodeSnippet,{text:xr().stringify(or(T.entity)),language:"yaml",showCopyCodeButton:!0}))))}const sr=(0,D.Z)(T=>({fullHeightDialog:{height:"calc(100% - 64px)"},root:{display:"flex",flexGrow:1,width:"100%",backgroundColor:T.palette.background.paper},tabs:{borderRight:`1px solid ${T.palette.divider}`,flexShrink:0},tabContents:{flexGrow:1,overflowX:"auto"}}));function On(T){const{children:I,value:U,index:K,...k}=T,Q=sr();return o.createElement("div",{role:"tabpanel",hidden:U!==K,id:`vertical-tabpanel-${K}`,"aria-labelledby":`vertical-tab-${K}`,className:Q.tabContents,...k},U===K&&o.createElement(z.Z,{pl:3,pr:3},I))}function yn(T){return{id:`vertical-tab-${T}`,"aria-controls":`vertical-tabpanel-${T}`}}function Dr(T){const I=sr(),[U,K]=o.useState(0);return(0,o.useEffect)(()=>{K(0)},[T.open]),T.entity?o.createElement(qn.Z,{fullWidth:!0,maxWidth:"xl",open:T.open,onClose:T.onClose,"aria-labelledby":"entity-inspector-dialog-title",PaperProps:{className:I.fullHeightDialog}},o.createElement(Cr.Z,{id:"entity-inspector-dialog-title"},"Entity Inspector"),o.createElement(_n.Z,{dividers:!0},o.createElement("div",{className:I.root},o.createElement(Jt.Z,{orientation:"vertical",variant:"scrollable",value:U,onChange:(k,Q)=>K(Q),"aria-label":"Inspector options",className:I.tabs},o.createElement(Un.Z,{label:"Overview",...yn(0)}),o.createElement(Un.Z,{label:"Ancestry",...yn(1)}),o.createElement(Un.Z,{label:"Colocated",...yn(2)}),o.createElement(Un.Z,{label:"Raw JSON",...yn(3)}),o.createElement(Un.Z,{label:"Raw YAML",...yn(4)})),o.createElement(On,{value:U,index:0},o.createElement(Hn,{entity:T.entity})),o.createElement(On,{value:U,index:1},o.createElement(ya,{entity:T.entity})),o.createElement(On,{value:U,index:2},o.createElement(cn,{entity:T.entity})),o.createElement(On,{value:U,index:3},o.createElement(zn,{entity:T.entity})),o.createElement(On,{value:U,index:4},o.createElement(br,{entity:T.entity})))),o.createElement(er.Z,null,o.createElement(pn.Z,{onClick:T.onClose,color:"primary"},"Close"))):null}var ir=e(85256);function _r(T){var ge;const I=(0,l.useApi)(d),U=(ge=T.metadata.annotations)==null?void 0:ge[p.lb],K=T.metadata.uid,k=U==="bootstrap:bootstrap",Q=(0,Tt.default)(async()=>{const Re=I.getOriginLocationByEntity(T);let ze;if(!U)ze=Promise.resolve([]);else{const Be=`metadata.annotations.${p.lb}`;ze=I.getEntities({filter:{[Be]:U},fields:["kind","metadata.uid","metadata.name","metadata.namespace"]}).then(et=>et.items)}return Promise.all([Re,ze]).then(([Be,et])=>({location:Be,colocatedEntities:et}))},[I,T]),se=(0,o.useCallback)(async function(){const{location:ze,colocatedEntities:Be}=Q.value;await I.removeLocationById(ze.id),await Promise.allSettled(Be.map(et=>I.removeEntityByUid(et.metadata.uid)))},[I,Q]),m=(0,o.useCallback)(async function(){await I.removeEntityByUid(K)},[I,K]);if(k)return{type:"bootstrap",location:U,deleteEntity:m};const{loading:C,error:N,value:G}=Q;if(C)return{type:"loading"};if(N)return{type:"error",error:N};const{location:q,colocatedEntities:he}=G;return q?{type:"unregister",location:U,colocatedEntities:he.map(p.C_),unregisterLocation:se,deleteEntity:m}:{type:"only-delete",deleteEntity:m}}var Vn=e(10179);const Fr=(0,D.Z)({advancedButton:{fontSize:"0.7em"}}),Aa=({entity:T,onConfirm:I})=>{var ge;const U=(0,l.useApi)(l.alertApiRef),K=(0,l.useApi)(l.configApiRef),k=Fr(),Q=_r(T),[se,m]=(0,o.useState)(!1),[C,N]=(0,o.useState)(!1),G=(ge=K.getOptionalString("app.title"))!=null?ge:"Backstage",q=(0,o.useCallback)(async function(){if("unregisterLocation"in Q){N(!0);try{await Q.unregisterLocation(),I()}catch(ze){(0,Vn.BD)(ze),U.post({message:ze.message})}finally{N(!1)}}},[U,I,Q]),he=(0,o.useCallback)(async function(){if("deleteEntity"in Q){N(!0);try{await Q.deleteEntity(),I()}catch(ze){(0,Vn.BD)(ze),U.post({message:ze.message})}finally{N(!1)}}},[U,I,Q]);return Q.type==="loading"?o.createElement(Ye.Progress,null):Q.type==="error"?o.createElement(Ye.ResponseErrorPanel,{error:Q.error}):Q.type==="bootstrap"?o.createElement(o.Fragment,null,o.createElement(Fn.Z,{severity:"info"},'You cannot unregister this entity, since it originates from a protected Backstage configuration (location "',Q.location,'"). If you believe this is in error, please contact the ',G," ","integrator."),o.createElement(z.Z,{marginTop:2},!se&&o.createElement(pn.Z,{variant:"text",size:"small",color:"primary",className:k.advancedButton,onClick:()=>m(!0)},"Advanced Options"),se&&o.createElement(o.Fragment,null,o.createElement(Zt.Z,null,"You have the option to delete the entity itself from the catalog. Note that this should only be done if you know that the catalog file has been deleted at, or moved from, its origin location. If that is not the case, the entity will reappear shortly as the next refresh round is performed by the catalog."),o.createElement(pn.Z,{variant:"contained",color:"secondary",disabled:C,onClick:he},"Delete Entity")))):Q.type==="only-delete"?o.createElement(o.Fragment,null,o.createElement(Zt.Z,null,"This entity does not seem to originate from a registered location. You therefore only have the option to delete it outright from the catalog."),o.createElement(pn.Z,{variant:"contained",color:"secondary",disabled:C,onClick:he},"Delete Entity")):Q.type==="unregister"?o.createElement(o.Fragment,null,o.createElement(Zt.Z,null,"This action will unregister the following entities:"),o.createElement(Zt.Z,{component:"ul"},Q.colocatedEntities.map(Re=>o.createElement("li",{key:`${Re.kind}:${Re.namespace}/${Re.name}`},o.createElement(le,{entityRef:Re})))),o.createElement(Zt.Z,null,"Located at the following location:"),o.createElement(Zt.Z,{component:"ul"},o.createElement("li",null,Q.location)),o.createElement(Zt.Z,null,"To undo, just re-register the entity in ",G,"."),o.createElement(z.Z,{marginTop:2},o.createElement(pn.Z,{variant:"contained",color:"secondary",disabled:C,onClick:q},"Unregister Location"),!se&&o.createElement(z.Z,{component:"span",marginLeft:2},o.createElement(pn.Z,{variant:"text",size:"small",color:"primary",className:k.advancedButton,onClick:()=>m(!0)},"Advanced Options"))),se&&o.createElement(o.Fragment,null,o.createElement(z.Z,{paddingTop:4,paddingBottom:4},o.createElement(ir.Z,null)),o.createElement(Zt.Z,null,"You also have the option to delete the entity itself from the catalog. Note that this should only be done if you know that the catalog file has been deleted at, or moved from, its origin location. If that is not the case, the entity will reappear shortly as the next refresh round is performed by the catalog."),o.createElement(pn.Z,{variant:"contained",color:"secondary",disabled:C,onClick:he},"Delete Entity"))):o.createElement(Fn.Z,{severity:"error"},"Internal error: Unknown state")},Br=({open:T,onConfirm:I,onClose:U,entity:K})=>o.createElement(qn.Z,{open:T,onClose:U},o.createElement(Cr.Z,{id:"responsive-dialog-title"},"Are you sure you want to unregister this entity?"),o.createElement(_n.Z,null,o.createElement(Aa,{entity:K,onConfirm:I})),o.createElement(er.Z,null,o.createElement(pn.Z,{onClick:U,color:"primary"},"Cancel")));var Mr=e(12231),ea=e(9520),Nr=e(47603);const Zr=(0,D.Z)(T=>({root:{backgroundColor:"rgba(0, 0, 0, .11)",boxShadow:"none",margin:T.spacing(1,0,1,0)},title:{margin:T.spacing(1,0,0,1),textTransform:"uppercase",fontSize:12,fontWeight:"bold"},listIcon:{minWidth:30,color:T.palette.text.primary},menuItem:{minHeight:T.spacing(6)},groupWrapper:{margin:T.spacing(1,1,2,1)}}),{name:"CatalogReactUserListPicker"});function Ur(T){return[{name:"Personal",items:[{id:"owned",label:"Owned",icon:Nr.Z},{id:"starred",label:"Starred",icon:vr.Z}]},{name:T!=null?T:"Company",items:[{id:"all",label:"All"}]}]}const lr=({initialFilter:T,availableFilters:I})=>{var Pt;const U=Zr(),k=(Pt=(0,l.useApi)(l.configApiRef).getOptionalString("organization.name"))!=null?Pt:"Company",{filters:Q,updateFilters:se,backendEntities:m,queryParameters:C,loading:N}=dt(),G=["starred","all"],q=Ur(k).map(vt=>({...vt,items:vt.items.filter(({id:Mt})=>["group","user"].some(Cn=>Cn===C.kind)?G.includes(Mt):!I||I.includes(Mt))})).filter(({items:vt})=>!!vt.length),{isStarredEntity:he}=ct(),{isOwnedEntity:ge}=we(),Re=(0,o.useMemo)(()=>new Te("owned",ge,he),[ge,he]),ze=(0,o.useMemo)(()=>new Te("starred",ge,he),[ge,he]),Be=(0,o.useMemo)(()=>[C.user].flat()[0],[C]),[et,mt]=(0,o.useState)(Be!=null?Be:T),it=(0,o.useMemo)(()=>m.filter(Nt((0,g.compact)(Object.values({...Q,user:void 0})))),[Q,m]),rt=(0,o.useMemo)(()=>({all:it.length,starred:it.filter(vt=>ze.filterEntity(vt)).length,owned:it.filter(vt=>Re.filterEntity(vt)).length}),[it,ze,Re]);return(0,o.useEffect)(()=>{Be&&mt(Be)},[Be]),(0,o.useEffect)(()=>{!N&&!!et&&et!=="all"&&rt[et]===0&&mt("all")},[N,rt,et,mt]),(0,o.useEffect)(()=>{se({user:et?new Te(et,ge,he):void 0})},[et,ge,he,se]),o.createElement($n.Z,{className:U.root},q.map(vt=>o.createElement(o.Fragment,{key:vt.name},o.createElement(re.Z,{variant:"subtitle2",className:U.title},vt.name),o.createElement($n.Z,{className:U.groupWrapper},o.createElement(Sn.Z,{disablePadding:!0,dense:!0},vt.items.map(Mt=>{var Cn,Tn;return o.createElement(Mr.Z,{key:Mt.id,button:!0,divider:!0,onClick:()=>mt(Mt.id),selected:Mt.id===((Cn=Q.user)==null?void 0:Cn.value),className:U.menuItem,disabled:rt[Mt.id]===0,"data-testid":`user-picker-${Mt.id}`},Mt.icon&&o.createElement(Ln.Z,{className:U.listIcon},o.createElement(Mt.icon,{fontSize:"small"})),o.createElement(nr.Z,null,o.createElement(re.Z,{variant:"body1"},Mt.label)),o.createElement(ea.Z,null,(Tn=rt[Mt.id])!=null?Tn:"-"))}))))))},cr=({children:T,value:I})=>{var m;const[U,K]=useState((m=I==null?void 0:I.filters)!=null?m:{}),k=useCallback(C=>{K(N=>{const G=typeof C=="function"?C(N):C;return{...N,...G}})},[]),Q=useMemo(()=>({entities:[],backendEntities:[],queryParameters:{}}),[]),se=useMemo(()=>{var C,N,G,q,he;return{entities:(C=I==null?void 0:I.entities)!=null?C:Q.entities,backendEntities:(N=I==null?void 0:I.backendEntities)!=null?N:Q.backendEntities,updateFilters:(G=I==null?void 0:I.updateFilters)!=null?G:k,filters:U,loading:(q=I==null?void 0:I.loading)!=null?q:!1,queryParameters:(he=I==null?void 0:I.queryParameters)!=null?he:Q.queryParameters,error:I==null?void 0:I.error}},[I,Q,U,k]);return React.createElement(EntityListContext.Provider,{value:se},T)};var ta=e(92787)},92787:function(){},39398:function(ee,s,e){"use strict";e.r(s),e.d(s,{AboutCard:function(){return be},AboutContent:function(){return de},AboutField:function(){return V}});var r=e(52890),t=e(9118),l=e(36964),d=e(36356),v=e(31423),i=e(79692),p=e(94339),g=e(32552),h=e(61837),c=e(85256),E=e(24579),o=e(52866),S=e(30254),M=e(27604),x=e(2784),j=e(47851),Z=e(60905),O=e(90436),F=e(7089);const B=(0,i.Z)(pe=>({value:{fontWeight:"bold",overflow:"hidden",lineHeight:"24px",wordBreak:"break-word"},label:{color:pe.palette.text.secondary,textTransform:"uppercase",fontSize:"10px",fontWeight:"bold",letterSpacing:.5,overflow:"hidden",whiteSpace:"nowrap"}})),V=({label:pe,value:je,gridSizes:xe,children:Qe})=>{const st=B(),ke=(0,l.useElementFilter)(Qe,_e=>_e.getElements()),ht=ke.length>0?ke:x.createElement(O.Z,{variant:"body2",className:st.value},je||"unknown");return x.createElement(Z.Z,{item:!0,...xe},x.createElement(O.Z,{variant:"subtitle2",className:st.label},pe),ht)},ne=(0,i.Z)({description:{wordBreak:"break-word"}}),de=({entity:pe})=>{var tt,St,Ct,Ot,Ft,dt;const je=ne(),xe=pe.kind.toLocaleLowerCase("en-US")==="system",Qe=pe.kind.toLocaleLowerCase("en-US")==="resource",st=pe.kind.toLocaleLowerCase("en-US")==="component",ke=pe.kind.toLocaleLowerCase("en-US")==="api",ht=pe.kind.toLocaleLowerCase("en-US")==="template",_e=pe.kind.toLocaleLowerCase("en-US")==="location",at=pe.kind.toLocaleLowerCase("en-US")==="group",pt=(0,v.getEntityRelations)(pe,r.cz,{kind:"system"}),Nt=(0,v.getEntityRelations)(pe,r.cz,{kind:"component"}),It=(0,v.getEntityRelations)(pe,r.cz,{kind:"domain"}),gt=(0,v.getEntityRelations)(pe,r.S4);return x.createElement(Z.Z,{container:!0},x.createElement(V,{label:"Description",gridSizes:{xs:12}},x.createElement(O.Z,{variant:"body2",paragraph:!0,className:je.description},((tt=pe==null?void 0:pe.metadata)==null?void 0:tt.description)||"No description")),x.createElement(V,{label:"Owner",value:"No Owner",gridSizes:{xs:12,sm:6,lg:4}},gt.length>0&&x.createElement(v.EntityRefLinks,{entityRefs:gt,defaultKind:"group"})),(xe||It.length>0)&&x.createElement(V,{label:"Domain",value:"No Domain",gridSizes:{xs:12,sm:6,lg:4}},It.length>0&&x.createElement(v.EntityRefLinks,{entityRefs:It,defaultKind:"domain"})),(ke||st||Qe||pt.length>0)&&x.createElement(V,{label:"System",value:"No System",gridSizes:{xs:12,sm:6,lg:4}},pt.length>0&&x.createElement(v.EntityRefLinks,{entityRefs:pt,defaultKind:"system"})),st&&Nt.length>0&&x.createElement(V,{label:"Parent Component",value:"No Parent Component",gridSizes:{xs:12,sm:6,lg:4}},x.createElement(v.EntityRefLinks,{entityRefs:Nt,defaultKind:"component"})),(ke||st||Qe||ht||at||_e||typeof((St=pe==null?void 0:pe.spec)==null?void 0:St.type)=="string")&&x.createElement(V,{label:"Type",value:(Ct=pe==null?void 0:pe.spec)==null?void 0:Ct.type,gridSizes:{xs:12,sm:6,lg:4}}),(ke||st||typeof((Ot=pe==null?void 0:pe.spec)==null?void 0:Ot.lifecycle)=="string")&&x.createElement(V,{label:"Lifecycle",value:(Ft=pe==null?void 0:pe.spec)==null?void 0:Ft.lifecycle,gridSizes:{xs:12,sm:6,lg:4}}),x.createElement(V,{label:"Tags",value:"No Tags",gridSizes:{xs:12,sm:6,lg:4}},(((dt=pe==null?void 0:pe.metadata)==null?void 0:dt.tags)||[]).map(Tt=>x.createElement(F.Z,{key:Tt,size:"small",label:Tt}))))},ve=(0,i.Z)({gridItemCard:{display:"flex",flexDirection:"column",height:"calc(100% - 10px)",marginBottom:"10px"},fullHeightCard:{display:"flex",flexDirection:"column",height:"100%"},gridItemCardContent:{flex:1},fullHeightCardContent:{flex:1}});function be({variant:pe}){var Ot,Ft;const je=ve(),{entity:xe}=(0,v.useEntity)(),Qe=(0,l.useApi)(d.q3),st=(0,l.useApi)(v.Ah),ke=(0,l.useApi)(l.alertApiRef),ht=(0,l.useRouteRef)(j.j),_e=(0,v.getEntitySourceLocation)(xe,Qe),at=(0,v.getEntityMetadataEditUrl)(xe),pt={label:"View Source",disabled:!_e,icon:x.createElement(d.nW,{type:_e==null?void 0:_e.integrationType}),href:_e==null?void 0:_e.locationTargetUrl},Nt={label:"View TechDocs",disabled:!((Ot=xe.metadata.annotations)==null?void 0:Ot["backstage.io/techdocs-ref"])||!ht,icon:x.createElement(S.Z,null),href:ht&&ht({namespace:xe.metadata.namespace||r.sk,kind:xe.kind,name:xe.metadata.name})};let It="";pe==="gridItem"?It=je.gridItemCard:pe==="fullHeight"&&(It=je.fullHeightCard);let gt="";pe==="gridItem"?gt=je.gridItemCardContent:pe==="fullHeight"&&(gt=je.fullHeightCardContent);const tt=(Ft=xe.metadata.annotations)==null?void 0:Ft[r.Jl],St=(tt==null?void 0:tt.startsWith("url:"))||(tt==null?void 0:tt.startsWith("file:")),Ct=(0,x.useCallback)(async()=>{await st.refreshEntity((0,r.eE)(xe)),ke.post({message:"Refresh scheduled",severity:"info"})},[st,ke,xe]);return x.createElement(p.Z,{className:It},x.createElement(g.Z,{title:"About",action:x.createElement(x.Fragment,null,St&&x.createElement(h.Z,{"aria-label":"Refresh",title:"Schedule entity refresh",onClick:Ct},x.createElement(o.Z,null)),x.createElement(h.Z,{component:t.Link,"aria-label":"Edit",disabled:!at,title:"Edit Metadata",to:at!=null?at:"#"},x.createElement(M.Z,null))),subheader:x.createElement(t.HeaderIconLinkRow,{links:[pt,Nt]})}),x.createElement(c.Z,null),x.createElement(E.Z,{className:gt},x.createElement(de,{entity:xe})))}},49782:function(ee,s,e){"use strict";e.d(s,{K:function(){return c}});var r=e(2784),t=e(79692),l=e(12420),d=e(97580),v=e(73698),i=e(74603),p=e(12231),g=e(31423);const h=(0,t.Z)(E=>(0,l.Z)({root:{...E.typography.h4}})),c=({initialFilter:E="component"})=>{var F;const o=h(),{kinds:S=[]}=(0,g.useEntityKinds)(),{updateFilters:M,queryParameters:x}=(0,g.useEntityListProvider)(),[j,Z]=(0,r.useState)(((F=[x.kind].flat()[0])!=null?F:E).toLocaleLowerCase("en-US"));(0,r.useEffect)(()=>{M({kind:j?new g.EntityKindFilter(j):void 0})},[j,M]);const O=[(0,d.Z)(j)].concat(S).sort().reduce((B,V)=>(B[V.toLocaleLowerCase("en-US")]=V,B),{});return r.createElement(v.Z,{input:r.createElement(i.Z,{value:j}),value:j,onChange:B=>Z(B.target.value),classes:o},Object.keys(O).map(B=>r.createElement(p.Z,{value:B,key:B},`${O[B]}s`)))}},7758:function(ee,s,e){"use strict";e.r(s),e.d(s,{CatalogPage:function(){return E},DefaultCatalogPage:function(){return c}});var r=e(2784),t=e(10289),l=e(9118),d=e(36964),v=e(31423),i=e(47851),p=e(91730),g=e(26997),h=e(49782);const c=({columns:o,actions:S,initiallySelectedFilter:M="owned"})=>{var Z;const x=(Z=(0,d.useApi)(d.configApiRef).getOptionalString("organization.name"))!=null?Z:"Backstage",j=(0,d.useRouteRef)(i.y);return r.createElement(l.PageWithHeader,{title:`${x} Catalog`,themeId:"home"},r.createElement(v.EntityListProvider,null,r.createElement(l.Content,null,r.createElement(l.ContentHeader,{titleComponent:r.createElement(h.K,null)},r.createElement(l.CreateButton,{title:"Create Component",to:j&&j()}),r.createElement(l.SupportButton,null,"All your software catalog entities")),r.createElement(g.q7,null,r.createElement(g.Gh,null,r.createElement(v.EntityTypePicker,null),r.createElement(v.UserListPicker,{initialFilter:M}),r.createElement(v.EntityOwnerPicker,null),r.createElement(v.EntityLifecyclePicker,null),r.createElement(v.EntityTagPicker,null)),r.createElement(g.Nz,null,r.createElement(p.E,{columns:o,actions:S}))))))},E=o=>(0,t.pC)()||r.createElement(c,{...o})},17499:function(ee,s,e){"use strict";e.r(s),e.d(s,{createNameColumn:function(){return v},createSystemColumn:function(){return i},createOwnerColumn:function(){return p},createSpecTypeColumn:function(){return g},createSpecLifecycleColumn:function(){return h},createMetadataDescriptionColumn:function(){return c},createTagsColumn:function(){return E}});var r=e(2784),t=e(31423),l=e(7089),d=e(9118);function v(o){function S(M){var x;return((x=M.metadata)==null?void 0:x.title)||(0,t.formatEntityRefTitle)(M,{defaultKind:o==null?void 0:o.defaultKind})}return{title:"Name",field:"resolved.name",highlight:!0,customSort({entity:M},{entity:x}){return S(M).localeCompare(S(x))},render:({entity:M})=>{var x;return r.createElement(t.EntityRefLink,{entityRef:M,defaultKind:(o==null?void 0:o.defaultKind)||"Component",title:(x=M.metadata)==null?void 0:x.title})}}}function i(){return{title:"System",field:"resolved.partOfSystemRelationTitle",render:({resolved:o})=>r.createElement(t.EntityRefLinks,{entityRefs:o.partOfSystemRelations,defaultKind:"system"})}}function p(){return{title:"Owner",field:"resolved.ownedByRelationsTitle",render:({resolved:o})=>r.createElement(t.EntityRefLinks,{entityRefs:o.ownedByRelations,defaultKind:"group"})}}function g(){return{title:"Type",field:"entity.spec.type",hidden:!0}}function h(){return{title:"Lifecycle",field:"entity.spec.lifecycle"}}function c(){return{title:"Description",field:"entity.metadata.description",render:({entity:o})=>r.createElement(d.OverflowTooltip,{text:o.metadata.description,placement:"bottom-start"}),width:"auto"}}function E(){return{title:"Tags",field:"entity.metadata.tags",cellStyle:{padding:"0px 16px 0px 20px"},render:({entity:o})=>r.createElement(r.Fragment,null,o.metadata.tags&&o.metadata.tags.map(S=>r.createElement(l.Z,{key:S,label:S,size:"small",variant:"outlined",style:{marginBottom:"0px"}})))}}},91730:function(ee,s,e){"use strict";e.d(s,{E:function(){return h}});var r=e(52890),t=e(31423),l=e(27604),d=e(2997),v=e(76635),i=e(2784),p=e(17499),g=e(9118);const h=({columns:c,actions:E})=>{var be,pe,je;const{isStarredEntity:o,toggleStarredEntity:S}=(0,t.useStarredEntities)(),{loading:M,error:x,entities:j,filters:Z}=(0,t.useEntityListProvider)(),O=(0,i.useMemo)(()=>{var xe;return[p.createNameColumn({defaultKind:(xe=Z.kind)==null?void 0:xe.value}),p.createSystemColumn(),p.createOwnerColumn(),p.createSpecTypeColumn(),p.createSpecLifecycleColumn(),p.createMetadataDescriptionColumn(),p.createTagsColumn()]},[(be=Z.kind)==null?void 0:be.value]),F=Z.type===void 0,B=(0,v.capitalize)((je=(pe=Z.user)==null?void 0:pe.value)!=null?je:"all");if(x)return i.createElement("div",null,i.createElement(g.WarningPanel,{severity:"error",title:"Could not fetch catalog entities."},i.createElement(g.CodeSnippet,{language:"text",text:x.toString()})));const V=[({entity:xe})=>{const Qe=(0,t.getEntityMetadataViewUrl)(xe);return{icon:()=>i.createElement(d.Z,{"aria-label":"View",fontSize:"small"}),tooltip:"View",disabled:!Qe,onClick:()=>{!Qe||window.open(Qe,"_blank")}}},({entity:xe})=>{const Qe=(0,t.getEntityMetadataEditUrl)(xe);return{icon:()=>i.createElement(l.Z,{"aria-label":"Edit",fontSize:"small"}),tooltip:"Edit",disabled:!Qe,onClick:()=>{!Qe||window.open(Qe,"_blank")}}},({entity:xe})=>{const Qe=o(xe);return{cellStyle:{paddingLeft:"1em"},icon:()=>(0,t.favoriteEntityIcon)(Qe),tooltip:(0,t.favoriteEntityTooltip)(Qe),onClick:()=>S(xe)}}],ne=j.map(xe=>{const Qe=(0,t.getEntityRelations)(xe,r.cz,{kind:"system"}),st=(0,t.getEntityRelations)(xe,r.S4);return{entity:xe,resolved:{name:(0,t.formatEntityRefTitle)(xe,{defaultKind:"Component"}),ownedByRelationsTitle:st.map(ke=>(0,t.formatEntityRefTitle)(ke,{defaultKind:"group"})).join(", "),ownedByRelations:st,partOfSystemRelationTitle:Qe.map(ke=>(0,t.formatEntityRefTitle)(ke,{defaultKind:"system"})).join(", "),partOfSystemRelations:Qe}}}),de=(c||O).find(xe=>xe.title==="Type");de&&(de.hidden=!F);const ve=ne.length>20;return i.createElement(g.Table,{isLoading:M,columns:c||O,options:{paging:ve,pageSize:20,actionsColumnIndex:-1,loadingType:"linear",showEmptyDataSourceMessage:!M,padding:"dense",pageSizeOptions:[20,50,100]},title:`${B} (${j.length})`,data:ne,actions:E||V})};h.columns=p},26997:function(ee,s,e){"use strict";e.d(s,{Nz:function(){return o},Gh:function(){return E},q7:function(){return l}});var r=e(60905),t=e(2784);const l=({children:S})=>t.createElement(r.Z,{container:!0,style:{position:"relative"}},S);var d=e(41156),v=e(60364),i=e(77277),p=e(4190),g=e(95544),h=e(90436),c=e(36444);const E=({children:S})=>{const M=(0,d.Z)(O=>O.breakpoints.down("md")),x=(0,v.Z)(),[j,Z]=(0,t.useState)(!1);return M?t.createElement(t.Fragment,null,t.createElement(i.Z,{style:{marginTop:x.spacing(1),marginLeft:x.spacing(1)},onClick:()=>Z(!0),startIcon:t.createElement(c.Z,null)},"Filters"),t.createElement(p.ZP,{open:j,onClose:()=>Z(!1),anchor:"left",disableAutoFocus:!0,keepMounted:!0,variant:"temporary"},t.createElement(g.Z,{m:2},t.createElement(h.Z,{variant:"h6",component:"h2",style:{marginBottom:x.spacing(1)}},"Filters"),S))):t.createElement(r.Z,{item:!0,lg:2},S)},o=({children:S})=>t.createElement(r.Z,{item:!0,xs:12,lg:10},S)},47851:function(ee,s,e){"use strict";e.d(s,{y:function(){return t},j:function(){return l}});var r=e(36964);const t=(0,r.createExternalRouteRef)({id:"create-component",optional:!0}),l=(0,r.createExternalRouteRef)({id:"view-techdoc",optional:!0,params:["namespace","kind","name"]})},20221:function(ee,s,e){"use strict";e.d(s,{iM:function(){return S},RV:function(){return l},gI:function(){return x}});var r=e(2784),t=e(36964);const l=(0,t.createApiRef)({id:"plugin.permission.api"});var d;(function(Z){const O="DENY";Z.DENY=O;const F="ALLOW";Z.ALLOW=F;const B="CONDITIONAL";Z.CONDITIONAL=B})(d||(d={}));var v=e(10179),i=e(96279),p=e.n(i),g=e(9571),h=e(30195);const c=h.z.lazy(()=>h.z.object({rule:h.z.string(),params:h.z.array(h.z.unknown())}).or(h.z.object({anyOf:h.z.array(c)})).or(h.z.object({allOf:h.z.array(c)})).or(h.z.object({not:c}))),E=h.z.object({items:h.z.array(h.z.object({id:h.z.string(),result:h.z.literal(d.ALLOW).or(h.z.literal(d.DENY))}).or(h.z.object({id:h.z.string(),result:h.z.literal(d.CONDITIONAL),conditions:c})))});class o{constructor(O){ae(this,"enabled");ae(this,"discovery");var F;this.discovery=O.discovery,this.enabled=(F=O.config.getOptionalBoolean("permission.enabled"))!=null?F:!1}async authorize(O,F){if(!this.enabled)return O.map(be=>({result:d.ALLOW}));const B={items:O.map(be=>({id:g.Z(),...be}))},V=await this.discovery.getBaseUrl("permission"),ne=await p()(`${V}/authorize`,{method:"POST",body:JSON.stringify(B),headers:{...this.getAuthorizationHeader(F==null?void 0:F.token),"content-type":"application/json"}});if(!ne.ok)throw await v.VL.fromResponse(ne);const de=await ne.json();this.assertValidResponse(B,de);const ve=de.items.reduce((be,pe)=>(be[pe.id]=pe,be),{});return B.items.map(be=>ve[be.id])}getAuthorizationHeader(O){return O?{Authorization:`Bearer ${O}`}:{}}assertValidResponse(O,F){const V=E.parse(F).items.map(de=>de.id);if(!O.items.every(de=>V.includes(de.id)))throw new Error("Unexpected authorization response from permission-backend")}}class S{constructor(O,F){this.permissionClient=O,this.identityApi=F}static create(O){const{config:F,discovery:B,identity:V}=O,ne=new o({discovery:B,config:F});return new S(ne,V)}async authorize(O){return(await this.permissionClient.authorize([O],await this.identityApi.getCredentials()))[0]}}var M=e(85482);const x=(Z,O)=>{const F=(0,t.useApi)(l),{data:B,error:V}=(0,M.ZP)({permission:Z,resourceRef:O},async ne=>{const{result:de}=await F.authorize(ne);return de});return V?{error:V,loading:!1,allowed:!1}:B===void 0?{loading:!0,allowed:!1}:{loading:!1,allowed:B===d.ALLOW}},j=Z=>{const{permission:O,resourceRef:F,errorComponent:B,...V}=Z,ne=usePermission(O,F),de=useApp(),{NotFoundErrorPage:ve}=de.getComponents();let be=B===void 0?React.createElement(ve,null):B;return ne.loading?be=null:ne.allowed&&(be=Z.element),React.createElement(Route,{...V,element:be})}},91512:function(ee,s,e){"use strict";e.d(s,{g:function(){return v},w:function(){return i}});var r=e(36964),t=e(10179),l=e(19126),d=e.n(l);const v=(0,r.createApiRef)({id:"plugin.search.queryservice"});class i{constructor(g){ae(this,"discoveryApi");ae(this,"identityApi");this.discoveryApi=g.discoveryApi,this.identityApi=g.identityApi}async query(g){const{token:h}=await this.identityApi.getCredentials(),c=d().stringify(g),E=`${await this.discoveryApi.getBaseUrl("search/query")}?${c}`,o=await fetch(E,{headers:h?{Authorization:`Bearer ${h}`}:{}});if(!o.ok)throw await t.VL.fromResponse(o);return o.json()}}},19941:function(ee,s,e){"use strict";e.r(s),e.d(s,{DefaultResultListItem:function(){return c}});var r=e(2784),t=e(38402),l=e(86136),d=e(49378),v=e(95544),i=e(85256),p=e(9118),g=e(15277),h=e.n(g);const c=({result:E,icon:o,secondaryAction:S,lineClamp:M=5})=>r.createElement(p.Link,{to:E.location},r.createElement(t.Z,{alignItems:"center"},o&&r.createElement(l.Z,null,o),r.createElement(d.Z,{primaryTypographyProps:{variant:"h6"},primary:E.title,secondary:r.createElement(h(),{line:M,truncateText:"\u2026",text:E.text,element:"span"})}),S&&r.createElement(v.Z,{alignItems:"flex-end"},S)),r.createElement(i.Z,null))},1795:function(ee,s,e){"use strict";e.r(s),e.d(s,{SearchBar:function(){return S},SearchBarBase:function(){return o}});var r=e(2784),t=e(48760),l=e(36964),d=e(50581),v=e(61837),i=e(74603),p=e(21853),g=e(33375),h=e(22313);const c=({children:M})=>{const x=(0,l.useAnalytics)(),{term:j}=(0,h.Rx)();return(0,r.useEffect)(()=>{j&&x.captureEvent("search",j)},[x,j]),r.createElement(r.Fragment,null,M)},E=()=>(0,r.useContext)(h.ci)!==void 0,o=({onChange:M,onKeyDown:x,onSubmit:j,debounceTime:Z=200,clearButton:O=!0,fullWidth:F=!0,value:B,inputProps:V={},endAdornment:ne,...de})=>{const ve=(0,l.useApi)(l.configApiRef),[be,pe]=(0,r.useState)(B),je=E();(0,r.useEffect)(()=>{pe(pt=>pt!==B?B:pt)},[B]),(0,t.Z)(()=>M(be),Z,[be]);const xe=(0,r.useCallback)(pt=>{pe(pt.target.value)},[pe]),Qe=(0,r.useCallback)(pt=>{x&&x(pt),j&&pt.key==="Enter"&&j()},[x,j]),st=(0,r.useCallback)(()=>{M("")},[M]),ke=`Search in ${ve.getOptionalString("app.title")||"Backstage"}`,ht=r.createElement(d.Z,{position:"start"},r.createElement(v.Z,{"aria-label":"Query",disabled:!0},r.createElement(p.Z,null))),_e=r.createElement(d.Z,{position:"end"},r.createElement(v.Z,{"aria-label":"Clear",onClick:st},r.createElement(g.Z,null))),at=r.createElement(c,null,r.createElement(i.Z,{"data-testid":"search-bar-next",value:be,placeholder:ke,startAdornment:ht,endAdornment:O?_e:ne,inputProps:{"aria-label":"Search",...V},fullWidth:F,onChange:xe,onKeyDown:Qe,...de}));return je?at:r.createElement(h.Nd,null,at)},S=({onChange:M,...x})=>{const{term:j,setTerm:Z}=(0,h.Rx)(),O=F=>{M?M(F):Z(F)};return r.createElement(o,{value:j,onChange:O,...x})}},22313:function(ee,s,e){"use strict";e.d(s,{ci:function(){return i},Nd:function(){return p},Rx:function(){return g}});var r=e(36964),t=e(2784),l=e(64279),d=e(1849),v=e(91512);const i=(0,t.createContext)(void 0),p=({initialState:h={term:"",pageCursor:void 0,filters:{},types:[]},children:c})=>{var st,ke,ht,_e;const E=(0,r.useApi)(v.g),[o,S]=(0,t.useState)(h.pageCursor),[M,x]=(0,t.useState)(h.filters),[j,Z]=(0,t.useState)(h.term),[O,F]=(0,t.useState)(h.types),[B,V]=(0,t.useState)(!1),ne=(0,t.useCallback)(()=>V(at=>!at),[]),de=(0,d.Z)(j),ve=(0,l.default)(()=>E.query({term:j,filters:M,pageCursor:o,types:O}),[j,M,O,o]),be=!ve.loading&&!ve.error&&((st=ve.value)==null?void 0:st.nextPageCursor),pe=!ve.loading&&!ve.error&&((ke=ve.value)==null?void 0:ke.previousPageCursor),je=(0,t.useCallback)(()=>{var at;S((at=ve.value)==null?void 0:at.nextPageCursor)},[(ht=ve.value)==null?void 0:ht.nextPageCursor]),xe=(0,t.useCallback)(()=>{var at;S((at=ve.value)==null?void 0:at.previousPageCursor)},[(_e=ve.value)==null?void 0:_e.previousPageCursor]);(0,t.useEffect)(()=>{j&&de&&j!==de&&S(void 0)},[j,de,h.pageCursor]);const Qe={result:ve,filters:M,setFilters:x,open:B,toggleModal:ne,term:j,setTerm:Z,types:O,setTypes:F,pageCursor:o,setPageCursor:S,fetchNextPage:be?je:void 0,fetchPreviousPage:pe?xe:void 0};return t.createElement(r.AnalyticsContext,{attributes:{searchTypes:O.sort().join(",")}},t.createElement(i.Provider,{value:Qe,children:c}))},g=()=>{const h=(0,t.useContext)(i);if(h===void 0)throw new Error("useSearch must be used within a SearchContextProvider");return h}},65678:function(ee,s,e){"use strict";e.d(s,{s:function(){return de}});var r=e(2784),t=e(60364),l=e(8629),d=e(79249),v=e(27556),i=e(38724),p=e(60905),g=e(85256),h=e(11776),c=e(49429),E=e(69001),o=e(79692),S=e(1795),M=e(19941),x=e(39332),j=e(22313),Z=e(8542),O=e(36964),F=e(9118),B=e(20863);const V=(0,o.Z)(ve=>({container:{borderRadius:30,display:"flex",height:"2.4em"},input:{flex:1},paperFullWidth:{height:"calc(100% - 128px)"},dialogActionsContainer:{padding:ve.spacing(1,3)},viewResultsLink:{verticalAlign:"0.5em"}})),ne=({open:ve=!0,toggleModal:be})=>{const pe=(0,O.useRouteRef)(B._Z),je=V(),{term:xe}=(0,j.Rx)(),{focusContent:Qe}=(0,F.useContent)(),{transitions:st}=(0,t.Z)(),ke=()=>{be(),setTimeout(Qe,st.duration.leavingScreen)},ht=()=>{ke()};return r.createElement(l.Z,{classes:{paperFullWidth:je.paperFullWidth},onClose:be,"aria-labelledby":"search-modal-title",open:ve,fullWidth:!0,maxWidth:"lg"},r.createElement(d.Z,null,r.createElement(v.Z,{className:je.container},r.createElement(S.SearchBar,{className:je.input}))),r.createElement(i.Z,null,r.createElement(p.Z,{container:!0,direction:"row-reverse",justifyContent:"flex-start",alignItems:"center"},r.createElement(p.Z,{item:!0},r.createElement(F.Link,{onClick:()=>{be(),setTimeout(Qe,st.duration.leavingScreen)},to:`${pe()}?query=${xe}`},r.createElement("span",{className:je.viewResultsLink},"View Full Results"),r.createElement(E.Z,{color:"primary"})))),r.createElement(g.Z,null),r.createElement(x.SearchResult,null,({results:_e})=>r.createElement(h.Z,null,_e.map(({document:at})=>r.createElement("div",{role:"button",tabIndex:0,key:`${at.location}-btn`,onClick:ke,onKeyPress:ht},r.createElement(M.DefaultResultListItem,{key:at.location,result:at})))))),r.createElement(c.Z,{className:je.dialogActionsContainer},r.createElement(p.Z,{container:!0,direction:"row"},r.createElement(p.Z,{item:!0,xs:12},r.createElement(Z.G,null)))))},de=({open:ve=!0,toggleModal:be})=>r.createElement(j.Nd,null,r.createElement(ne,{open:ve,toggleModal:be}))},3992:function(ee,s,e){"use strict";e.r(s),e.d(s,{SearchPage:function(){return Bt}});var r=e(2784),t=e(1849),l=e(19126),d=e.n(l),v=e(10289),i=e(22313),p=e(60905),g=e(48760),h=e(79692),c=e(27556),E=e(74603),o=e(61837),S=e(21853),M=e(33375);const x=(0,h.Z)(()=>({root:{display:"flex",alignItems:"center"},input:{flex:1}})),j=({searchQuery:Ne,handleSearch:nt,handleClearSearchBar:Ye})=>{const At=x();return r.createElement(c.Z,{component:"form",onSubmit:le=>nt(le),className:At.root},r.createElement(o.Z,{disabled:!0,type:"submit","aria-label":"search"},r.createElement(S.Z,null)),r.createElement(E.Z,{className:At.input,placeholder:"Search in Backstage",value:Ne,onChange:le=>nt(le),inputProps:{"aria-label":"search backstage"}}),r.createElement(o.Z,{"aria-label":"search",onClick:()=>Ye()},r.createElement(M.Z,null)))};var Z=e(85256),O=e(90436),F=e(99688),B=e(64279),V=e(31423),ne=e(36444);const de=(0,h.Z)(Ne=>({filters:{width:"250px",display:"flex"},icon:{margin:Ne.spacing(-1,0,0,0)}})),ve=({numberOfSelectedFilters:Ne,handleToggleFilters:nt})=>{const Ye=de();return r.createElement("div",{className:Ye.filters},r.createElement(o.Z,{className:Ye.icon,"aria-label":"settings",onClick:nt},r.createElement(ne.Z,null)),r.createElement(O.Z,{variant:"h6"},"Filters (",Ne||0,")"))};var be=e(94339),pe=e(32552),je=e(77277),xe=e(24579),Qe=e(73698),st=e(12231),ke=e(11776),ht=e(38402),_e=e(21324),at=e(49378);const pt=(0,h.Z)(Ne=>({filters:{background:"transparent",boxShadow:"0px 0px 0px 0px"},checkbox:{padding:Ne.spacing(0,1,0,1)},dropdown:{width:"100%"}})),Nt=({filters:Ne,filterOptions:nt,resetFilters:Ye,updateSelected:At,updateChecked:le})=>{const oe=pt();return r.createElement(be.Z,{className:oe.filters},r.createElement(pe.Z,{title:r.createElement(O.Z,{variant:"h6"},"Filters"),action:r.createElement(je.Z,{color:"primary",onClick:()=>Ye()},"CLEAR ALL")}),r.createElement(Z.Z,null),nt.kind.length===0&&nt.lifecycle.length===0&&r.createElement(xe.Z,null,r.createElement(O.Z,{variant:"subtitle2"},"Filters cannot be applied to available results")),nt.kind.length>0&&r.createElement(xe.Z,null,r.createElement(O.Z,{variant:"subtitle2"},"Kind"),r.createElement(Qe.Z,{id:"outlined-select",onChange:P=>{var L;return At((L=P==null?void 0:P.target)==null?void 0:L.value)},variant:"outlined",className:oe.dropdown,value:Ne.selected},nt.kind.map(P=>r.createElement(st.Z,{selected:P==="",dense:!0,key:P,value:P},P)))),nt.lifecycle.length>0&&r.createElement(xe.Z,null,r.createElement(O.Z,{variant:"subtitle2"},"Lifecycle"),r.createElement(ke.Z,{disablePadding:!0,dense:!0},nt.lifecycle.map(P=>r.createElement(ht.Z,{key:P,dense:!0,button:!0,onClick:()=>le(P)},r.createElement(_e.Z,{edge:"start",disableRipple:!0,className:oe.checkbox,color:"primary",checked:Ne.checked.includes(P),tabIndex:-1,value:P,name:P}),r.createElement(at.Z,{id:P,primary:P}))))))};var It=e(52890),gt=e(9118),tt=e(36964);const St=(0,h.Z)(Ne=>({searchQuery:{color:Ne.palette.text.primary,background:Ne.palette.background.default,borderRadius:"10%"},tableHeader:{margin:Ne.spacing(1,0,0,0),display:"flex"},divider:{width:"1px",margin:Ne.spacing(0,2),padding:Ne.spacing(2,0)}})),Ct=[{title:"Name",field:"name",highlight:!0,render:Ne=>r.createElement(gt.Link,{to:Ne.url||""},Ne.name)},{title:"Description",field:"description"},{title:"Owner",field:"owner"},{title:"Kind",field:"kind"},{title:"LifeCycle",field:"lifecycle"}],Ot=({searchQuery:Ne,numberOfSelectedFilters:nt,numberOfResults:Ye,handleToggleFilters:At})=>{const le=St();return r.createElement("div",{className:le.tableHeader},r.createElement(ve,{numberOfSelectedFilters:nt,handleToggleFilters:At}),r.createElement(Z.Z,{className:le.divider,orientation:"vertical"}),r.createElement(p.Z,{item:!0,xs:12},Ne?r.createElement(O.Z,{variant:"h6"},`${Ye} `,Ye>1?"results for ":"result for ",r.createElement("span",{className:le.searchQuery},'"',Ne,'"')," "):r.createElement(O.Z,{variant:"h6"},`${Ye} results`)))},Ft=({searchQuery:Ne})=>{const nt=(0,tt.useApi)(V.Ah),[Ye,At]=(0,r.useState)(!1),[le,oe]=(0,r.useState)({selected:"",checked:[]}),[P,L]=(0,r.useState)([]),{loading:$,error:Y,value:_}=(0,B.default)(async()=>(await nt.getEntities()).items.map(Pe=>{var Ae,Ze,yt,ct,Ge;return{name:Pe.metadata.name,description:Pe.metadata.description,owner:typeof((Ae=Pe.spec)==null?void 0:Ae.owner)=="string"?(Ze=Pe.spec)==null?void 0:Ze.owner:void 0,kind:Pe.kind,lifecycle:typeof((yt=Pe.spec)==null?void 0:yt.lifecycle)=="string"?(ct=Pe.spec)==null?void 0:ct.lifecycle:void 0,url:`/catalog/${((Ge=Pe.metadata.namespace)==null?void 0:Ge.toLocaleLowerCase("en-US"))||It.sk}/${Pe.kind.toLocaleLowerCase("en-US")}/${Pe.metadata.name}`}}),[]);if((0,r.useEffect)(()=>{if(_){let De=_;le.selected!==""&&(De=_.filter(Pe=>le.selected.includes(Pe.kind))),le.checked.length>0&&(De=De.filter(Pe=>Pe.lifecycle&&le.checked.includes(Pe.lifecycle))),Ne&&(De=De.filter(Pe=>{var Ae,Ze,yt;return((Ae=Pe.name)==null?void 0:Ae.toLocaleLowerCase("en-US").includes(Ne))||((Ze=Pe.name)==null?void 0:Ze.toLocaleLowerCase("en-US").includes(Ne.split(" ").join("-")))||((yt=Pe.description)==null?void 0:yt.toLocaleLowerCase("en-US").includes(Ne))})),L(De)}},[le,Ne,_]),$)return r.createElement(gt.Progress,null);if(Y)return r.createElement(F.Z,{severity:"error"},"Error encountered while fetching search results. ",Y.toString());if(!_||_.length===0)return r.createElement(gt.EmptyState,{missing:"data",title:"Sorry, no results were found"});const fe=()=>{oe({selected:"",checked:[]})},Te=De=>{oe(Pe=>({...Pe,selected:De}))},Se=De=>{if(le.checked.includes(De)){oe(Pe=>({...Pe,checked:Pe.checked.filter(Ae=>Ae!==De)}));return}oe(Pe=>({...Pe,checked:[...Pe.checked,De]}))},Ue=_.reduce((De,Pe)=>(Pe.kind&&De.kind.indexOf(Pe.kind)<0&&De.kind.push(Pe.kind),Pe.lifecycle&&De.lifecycle.indexOf(Pe.lifecycle)<0&&De.lifecycle.push(Pe.lifecycle),De),{kind:[],lifecycle:[]});return r.createElement(r.Fragment,null,r.createElement(p.Z,{container:!0},Ye&&r.createElement(p.Z,{item:!0,xs:3},r.createElement(Nt,{filters:le,filterOptions:Ue,resetFilters:fe,updateSelected:Te,updateChecked:Se})),r.createElement(p.Z,{item:!0,xs:Ye?9:12},r.createElement(gt.Table,{options:{paging:!0,pageSize:20,search:!1},data:P,columns:Ct,title:r.createElement(Ot,{searchQuery:Ne,numberOfResults:P.length,numberOfSelectedFilters:(le.selected!==""?1:0)+le.checked.length,handleToggleFilters:()=>At(!Ye)})}))))},dt=()=>{const[Ne,nt]=(0,gt.useQueryParamState)("query"),[Ye,At]=(0,r.useState)(Ne!=null?Ne:""),le=P=>{P.preventDefault(),At(P.target.value)};(0,r.useEffect)(()=>At(Ne!=null?Ne:""),[Ne]),(0,g.Z)(()=>{nt(Ye)},200,[Ye]);const oe=()=>{At("")};return r.createElement(gt.Page,{themeId:"home"},r.createElement(gt.Header,{title:"Search"}),r.createElement(gt.Content,null,r.createElement(p.Z,{container:!0,direction:"row"},r.createElement(p.Z,{item:!0,xs:12},r.createElement(j,{handleSearch:le,handleClearSearchBar:oe,searchQuery:Ye})),r.createElement(p.Z,{item:!0,xs:12},r.createElement(Ft,{searchQuery:(Ne!=null?Ne:"").toLocaleLowerCase("en-US")})))))},Tt=()=>{const Ne=(0,v.TH)(),{term:nt,setTerm:Ye,types:At,setTypes:le,pageCursor:oe,setPageCursor:P,filters:L,setFilters:$}=(0,i.Rx)(),Y=(0,t.Z)(Ne.search);return(0,r.useEffect)(()=>{if(Ne.search===Y)return;const _=d().parse(Ne.search.substring(1),{arrayLimit:0})||{};_.filters&&$(_.filters),_.query&&Ye(_.query),_.pageCursor&&P(_.pageCursor),_.types&&le(_.types)},[Y,Ne,Ye,le,P,$]),(0,r.useEffect)(()=>{const _=d().stringify({query:nt,types:At,pageCursor:oe,filters:L},{arrayFormat:"brackets"}),fe=`${window.location.pathname}?${_}`;window.history.replaceState(null,document.title,fe)},[nt,At,oe,L]),null},Bt=()=>{const Ne=(0,v.pC)();return r.createElement(i.Nd,null,r.createElement(Tt,null),Ne||r.createElement(dt,null))}},39332:function(ee,s,e){"use strict";e.r(s),e.d(s,{SearchResult:function(){return d}});var r=e(9118),t=e(2784),l=e(22313);const d=({children:v})=>{const{result:{loading:i,error:p,value:g}}=(0,l.Rx)();return i?t.createElement(r.Progress,null):p?t.createElement(r.ResponseErrorPanel,{title:"Error encountered while fetching search results",error:p}):(g==null?void 0:g.results.length)?t.createElement(t.Fragment,null,v({results:g.results})):t.createElement(r.EmptyState,{missing:"data",title:"Sorry, no results were found"})}},8542:function(ee,s,e){"use strict";e.d(s,{G:function(){return g}});var r=e(79692),t=e(77277),l=e(35352),d=e(27742),v=e(2784),i=e(22313);const p=(0,r.Z)(h=>({root:{display:"flex",justifyContent:"space-between",gap:h.spacing(2),margin:h.spacing(2,0)}})),g=()=>{const{fetchNextPage:h,fetchPreviousPage:c}=(0,i.Rx)(),E=p();return!h&&!c?v.createElement(v.Fragment,null):v.createElement("nav",{"arial-label":"pagination navigation",className:E.root},v.createElement(t.Z,{"aria-label":"previous page",disabled:!c,onClick:c,startIcon:v.createElement(l.Z,null)},"Previous"),v.createElement(t.Z,{"aria-label":"next page",disabled:!h,onClick:h,endIcon:v.createElement(d.Z,null)},"Next"))}},20863:function(ee,s,e){"use strict";e.d(s,{_Z:function(){return l}});var r=e(91512),t=e(36964);const l=(0,t.createRouteRef)({id:"search"}),d=(0,t.createRouteRef)({id:"search:next"}),v=(0,t.createPlugin)({id:"search",apis:[(0,t.createApiFactory)({api:r.g,deps:{discoveryApi:t.discoveryApiRef,identityApi:t.identityApiRef},factory:({discoveryApi:x,identityApi:j})=>new r.w({discoveryApi:x,identityApi:j})})],routes:{root:l,nextRoot:d}}),i=v.provide((0,t.createRoutableExtension)({name:"SearchPage",component:()=>Promise.resolve().then(e.bind(e,3992)).then(x=>x.SearchPage),mountPoint:l})),p=v.provide((0,t.createRoutableExtension)({name:"SearchPageNext",component:()=>Promise.resolve().then(e.bind(e,3992)).then(x=>x.SearchPage),mountPoint:d})),g=v.provide((0,t.createComponentExtension)({name:"SearchBar",component:{lazy:()=>Promise.resolve().then(e.bind(e,1795)).then(x=>x.SearchBar)}})),h=v.provide((0,t.createComponentExtension)({name:"SearchBarNext",component:{lazy:()=>Promise.resolve().then(e.bind(e,1795)).then(x=>x.SearchBar)}})),c=v.provide((0,t.createComponentExtension)({name:"SearchResult",component:{lazy:()=>Promise.resolve().then(e.bind(e,39332)).then(x=>x.SearchResult)}})),E=v.provide((0,t.createComponentExtension)({name:"SearchResultNext",component:{lazy:()=>Promise.resolve().then(e.bind(e,39332)).then(x=>x.SearchResult)}})),o=v.provide((0,t.createComponentExtension)({name:"SidebarSearchModal",component:{lazy:()=>e.e(3825).then(e.bind(e,43825)).then(x=>x.SidebarSearchModal)}})),S=v.provide((0,t.createComponentExtension)({name:"DefaultResultListItem",component:{lazy:()=>Promise.resolve().then(e.bind(e,19941)).then(x=>x.DefaultResultListItem)}})),M=v.provide((0,t.createComponentExtension)({name:"HomePageSearchBar",component:{lazy:()=>e.e(6105).then(e.bind(e,46105)).then(x=>x.HomePageSearchBar)}}))},94067:function(ee,s,e){"use strict";e.r(s),e.d(s,{EmbeddedDocsRouter:function(){return M},Router:function(){return S},isTechDocsAvailable:function(){return o}});var r=e(2784),t=e(31423),l=e(10289),d=e(41481),v=e(31752),i=e(73873),p=e(97589),g=e(36964);const h=({entity:x})=>{var Z;const j=(0,g.useApi)(g.configApiRef);return r.createElement(i.Ej,{withSearch:!1,entityRef:{namespace:(0,p.D)((Z=x.metadata.namespace)!=null?Z:"default",j),kind:(0,p.D)(x.kind,j),name:(0,p.D)(x.metadata.name,j)}})};var c=e(9118);const E="backstage.io/techdocs-ref",o=x=>{var j,Z;return Boolean((Z=(j=x==null?void 0:x.metadata)==null?void 0:j.annotations)==null?void 0:Z[E])},S=()=>r.createElement(l.Z5,null,r.createElement(l.AW,{path:"/",element:r.createElement(d.TechDocsIndexPage,null)}),r.createElement(l.AW,{path:"/:namespace/:kind/:name/*",element:r.createElement(v.TechDocsPage,null)})),M=x=>{var O;const{entity:j}=(0,t.useEntity)();return((O=j.metadata.annotations)==null?void 0:O[E])?r.createElement(l.Z5,null,r.createElement(l.AW,{path:"/*",element:r.createElement(h,{entity:j})})):r.createElement(c.MissingAnnotationEmptyState,{annotation:E})}},3337:function(ee,s,e){"use strict";e.d(s,{D:function(){return t},g:function(){return l}});var r=e(36964);const t=(0,r.createApiRef)({id:"plugin.techdocs.storageservice"}),l=(0,r.createApiRef)({id:"plugin.techdocs.service"})},71226:function(ee,s,e){"use strict";e.d(s,{O:function(){return c}});var r=e(2784),t=e(79692),l=e(49378),d=e(38402),v=e(85256),i=e(9118),p=e(15277),g=e.n(p);const h=(0,t.Z)({flexContainer:{flexWrap:"wrap"},itemText:{width:"100%",marginBottom:"1rem"}}),c=({result:E,lineClamp:o=5,asListItem:S=!0,asLink:M=!0,title:x})=>{const j=h(),Z=()=>{var B;return r.createElement(l.Z,{className:j.itemText,primaryTypographyProps:{variant:"h6"},primary:x||`${E.title} | ${(B=E.entityTitle)!=null?B:E.name} docs`,secondary:r.createElement(g(),{line:o,truncateText:"\u2026",text:E.text,element:"span"})})},O=({children:B})=>M?r.createElement(i.Link,{to:E.location},B):r.createElement(r.Fragment,null,B),F=({children:B})=>S?r.createElement(r.Fragment,null,r.createElement(d.Z,{alignItems:"flex-start",className:j.flexContainer},B),r.createElement(v.Z,{component:"li"})):r.createElement(r.Fragment,null,B);return r.createElement(O,null,r.createElement(F,null,r.createElement(Z,null)))}},97589:function(ee,s,e){"use strict";e.d(s,{D:function(){return r}});function r(t,l){return l.getOptionalBoolean("techdocs.legacyUseCaseSensitiveTripletPaths")?t:t.toLocaleLowerCase("en-US")}},10187:function(ee,s,e){"use strict";e.r(s),e.d(s,{DocsCardGrid:function(){return c}});var r=e(2784),t=e(36964),l=e(94339),d=e(16111),v=e(24579),i=e(14503),p=e(68725),g=e(9118),h=e(97589);const c=({entities:E})=>{const o=(0,t.useRouteRef)(p.Fw),S=(0,t.useApi)(t.configApiRef);return E?r.createElement(g.ItemCardGrid,{"data-testid":"docs-explore"},(E==null?void 0:E.length)?E.map((M,x)=>{var j,Z;return r.createElement(l.Z,{key:x},r.createElement(d.Z,null,r.createElement(g.ItemCardHeader,{title:(j=M.metadata.title)!=null?j:M.metadata.name})),r.createElement(v.Z,null,M.metadata.description),r.createElement(i.Z,null,r.createElement(g.Button,{to:o({namespace:(0,h.D)((Z=M.metadata.namespace)!=null?Z:"default",S),kind:(0,h.D)(M.kind,S),name:(0,h.D)(M.metadata.name,S)}),color:"primary","data-testid":"read_docs"},"Read Docs")))}):null):null}},83201:function(ee,s,e){"use strict";e.r(s),e.d(s,{DocsTable:function(){return E}});var r=e(2784),t=e(95074),l=e(36964),d=e(52890),v=e(31423),i=e(68725),p=e(9118),g=e(50294),h=e(67430),c=e(97589);const E=({entities:o,title:S,loading:M,columns:x,actions:j})=>{const[,Z]=(0,t.Z)(),O=(0,l.useRouteRef)(i.Fw),F=(0,l.useApi)(l.configApiRef);if(!o)return null;const B=o.map(de=>{var be;const ve=(0,v.getEntityRelations)(de,d.S4);return{entity:de,resolved:{docsUrl:O({namespace:(0,c.D)((be=de.metadata.namespace)!=null?be:"default",F),kind:(0,c.D)(de.kind,F),name:(0,c.D)(de.metadata.name,F)}),ownedByRelations:ve,ownedByRelationsTitle:ve.map(pe=>(0,v.formatEntityRefTitle)(pe,{defaultKind:"group"})).join(", ")}}}),V=[h.createNameColumn(),h.createOwnerColumn(),h.createTypeColumn()],ne=[g.createCopyDocsUrlAction(Z)];return r.createElement(r.Fragment,null,M||B&&B.length>0?r.createElement(p.Table,{isLoading:M,options:{paging:!0,pageSize:20,search:!0,actionsColumnIndex:-1},data:B,columns:x||V,actions:j||ne,title:S?`${S} (${B.length})`:`All (${B.length})`}):r.createElement(p.EmptyState,{missing:"data",title:"No documents to show",description:"Create your own document. Check out our Getting Started Information",action:r.createElement(p.Button,{color:"primary",to:"https://backstage.io/docs/features/techdocs/getting-started",variant:"contained"},"DOCS")}))}},57110:function(ee,s,e){"use strict";e.r(s),e.d(s,{TechDocsCustomHome:function(){return o}});var r=e(2784),t=e(64279),l=e(79692),d=e(31423),v=e(83201),i=e(10187),p=e(1114),g=e(9118),h=e(36964);const c={DocsTable:v.DocsTable,DocsCardGrid:i.DocsCardGrid},E=({config:S,entities:M,index:x})=>{const Z=(0,l.Z)({panelContainer:{marginBottom:"2rem",...S.panelCSS?S.panelCSS:{}}})(),{value:O}=(0,d.useOwnUser)(),F=c[S.panelType],B=M.filter(V=>S.filterPredicate==="ownedByUser"?O?(0,d.isOwnerOf)(O,V):!1:typeof S.filterPredicate=="function"&&S.filterPredicate(V));return r.createElement(r.Fragment,null,r.createElement(g.ContentHeader,{title:S.title,description:S.description},x===0?r.createElement(g.SupportButton,null,"Discover documentation in your ecosystem."):null),r.createElement("div",{className:Z.panelContainer},r.createElement(F,{"data-testid":"techdocs-custom-panel",entities:B})))},o=({tabsConfig:S})=>{const[M,x]=(0,r.useState)(0),j=(0,h.useApi)(d.Ah),{value:Z,loading:O,error:F}=(0,t.default)(async()=>(await j.getEntities({filter:{"metadata.annotations.backstage.io/techdocs-ref":d.n3},fields:["apiVersion","kind","metadata","relations","spec.owner","spec.type"]})).items.filter(ne=>{var de;return!!((de=ne.metadata.annotations)==null?void 0:de["backstage.io/techdocs-ref"])})),B=S[M];return O?r.createElement(p.j,null,r.createElement(g.Content,null,r.createElement(g.Progress,null))):F?r.createElement(p.j,null,r.createElement(g.Content,null,r.createElement(g.WarningPanel,{severity:"error",title:"Could not load available documentation."},r.createElement(g.CodeSnippet,{language:"text",text:F.toString()})))):r.createElement(p.j,null,r.createElement(g.HeaderTabs,{selectedIndex:M,onChange:V=>x(V),tabs:S.map(({label:V},ne)=>({id:ne.toString(),label:V}))}),r.createElement(g.Content,{"data-testid":"techdocs-content"},B.panels.map((V,ne)=>r.createElement(E,{key:ne,config:V,entities:Z||[],index:ne}))))}},41481:function(ee,s,e){"use strict";e.r(s),e.d(s,{TechDocsIndexPage:function(){return v}});var r=e(2784),t=e(10289),l=e(57110);const d=()=>{const i=[{label:"Overview",panels:[{title:"Overview",description:"Explore your internal technical ecosystem through documentation.",panelType:"DocsCardGrid",filterPredicate:()=>!0}]},{label:"Owned Documents",panels:[{title:"Owned documents",description:"Access your documentation.",panelType:"DocsTable",filterPredicate:"ownedByUser"}]}];return r.createElement(l.TechDocsCustomHome,{tabsConfig:i})},v=()=>(0,t.pC)()||r.createElement(d,null)},1114:function(ee,s,e){"use strict";e.d(s,{j:function(){return d}});var r=e(2784),t=e(9118),l=e(36964);const d=({children:v})=>{var g;const p=`Documentation available in ${(g=(0,l.useApi)(l.configApiRef).getOptionalString("organization.name"))!=null?g:"Backstage"}`;return r.createElement(t.PageWithHeader,{title:"Documentation",subtitle:p,themeId:"documentation"},v)}},50294:function(ee,s,e){"use strict";e.r(s),e.d(s,{createCopyDocsUrlAction:function(){return d},createStarEntityAction:function(){return v}});var r=e(2784),t=e(39981),l=e(31423);function d(i){return p=>({icon:()=>r.createElement(t.Z,{fontSize:"small"}),tooltip:"Click to copy documentation link to clipboard",onClick:()=>i(`${window.location.origin}${p.resolved.docsUrl}`)})}function v(i,p){return({entity:g})=>{const h=i(g);return{cellStyle:{paddingLeft:"1em"},icon:()=>(0,l.favoriteEntityIcon)(h),tooltip:(0,l.favoriteEntityTooltip)(h),onClick:()=>p(g)}}}},67430:function(ee,s,e){"use strict";e.r(s),e.d(s,{createNameColumn:function(){return v},createOwnerColumn:function(){return i},createTypeColumn:function(){return p}});var r=e(2784),t=e(9118),l=e(31423);function d(g){return g.metadata.title||g.metadata.name}function v(){return{title:"Document",field:"entity.metadata.name",highlight:!0,render:g=>r.createElement(t.SubvalueCell,{value:r.createElement(t.Link,{to:g.resolved.docsUrl},d(g.entity)),subvalue:g.entity.metadata.description})}}function i(){return{title:"Owner",field:"resolved.ownedByRelationsTitle",render:({resolved:g})=>r.createElement(l.EntityRefLinks,{entityRefs:g.ownedByRelations,defaultKind:"group"})}}function p(){return{title:"Type",field:"entity.spec.type"}}},80547:function(ee,s,e){"use strict";e.d(s,{Ej:function(){return At},DK:function(){return Ne}});var r=e(2784),t=e(10289),l=e(79692),d=e(60364),v=e(60905),i=e(36964),p=e(36356),g=e(9118),h=e(3337);const c=(le,oe,P)=>{const L=le==="src"&&oe.endsWith(".svg"),$=!oe.match(/^([a-z]*:)?\/\//i),Y=oe.startsWith(P);return L&&($||Y)},E=({techdocsStorageApi:le,entityId:oe,path:P})=>async L=>{const $=await le.getApiOrigin(),Y=async(_,fe)=>{for(const Te of _)if(Te.hasAttribute(fe)){const Se=Te.getAttribute(fe);if(!Se)return;const Ue=await le.getBaseUrl(Se,oe,P);if(c(fe,Se,$))try{const Pe=await(await fetch(Ue,{credentials:"include"})).text();Te.setAttribute(fe,`data:image/svg+xml;base64,${btoa(Pe)}`)}catch{Te.setAttribute("alt",`Error: ${Se}`)}else Te.setAttribute(fe,Ue)}};return await Promise.all([Y(L.querySelectorAll("img"),"src"),Y(L.querySelectorAll("script"),"src"),Y(L.querySelectorAll("source"),"src"),Y(L.querySelectorAll("link"),"href"),Y(L.querySelectorAll("a[download]"),"href")]),L};var o=e(63925),S=e(67097),M=e(28316),x=e(82717),j=e.n(x);const Z=le=>oe=>{const P=oe.querySelector('[title="Edit this page"]');if(!P||!P.href)return oe;const L=new URL(P.href),$=le.byUrl(L);if(($==null?void 0:$.type)!=="github"&&($==null?void 0:$.type)!=="gitlab")return oe;const Y=oe.querySelector("article>h1").childNodes[0].textContent,_=encodeURIComponent(`Documentation Feedback: ${Y}`),fe=encodeURIComponent(`Page source:
|
|
32
|
+
${P.href}
|
|
33
|
+
|
|
34
|
+
Feedback:`),Te=($==null?void 0:$.type)==="github"?(0,o.Pb)(L.href,"blob"):L.href,Se=j()(Te),Ue=`/${Se.organization}/${Se.name}`,De=P.cloneNode();switch($==null?void 0:$.type){case"gitlab":De.href=`${L.origin}${Ue}/issues/new?issue[title]=${_}&issue[description]=${fe}`;break;case"github":De.href=`${L.origin}${Ue}/issues/new?title=${_}&body=${fe}`;break;default:return oe}return M.render(r.createElement(S.Z),De),De.style.paddingLeft="5px",De.title="Leave feedback for this page",De.id="git-feedback-link",P==null||P.insertAdjacentElement("beforebegin",De),oe},O=()=>le=>(((P,L)=>{Array.from(P).filter($=>$.hasAttribute(L)).forEach($=>{const Y=$.getAttribute(L);if(Y){Y.match(/^https?:\/\//i)&&$.setAttribute("target","_blank");try{const _=F(window.location.href);$.setAttribute(L,new URL(Y,_).toString())}catch{$.replaceWith($.textContent||Y)}}})})(Array.from(le.getElementsByTagName("a")),"href"),le);function F(le){const oe=new URL(le);return!oe.pathname.endsWith("/")&&!oe.pathname.endsWith(".html")&&(oe.pathname+="/"),oe.toString()}const B=({baseUrl:le,onClick:oe})=>P=>(Array.from(P.getElementsByTagName("a")).forEach(L=>{L.addEventListener("click",$=>{const _=L.getAttribute("href");!_||_.startsWith(le)&&!L.hasAttribute("download")&&($.preventDefault(),oe($,_))})}),P),V=()=>le=>(Array.from(le.querySelectorAll("pre > code")).forEach(oe=>{var $;const P=document.createElement("button"),L=oe.textContent||"";P.className="md-clipboard md-icon",P.title="Copy to clipboard",P.innerHTML='<svg viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg>',P.addEventListener("click",()=>navigator.clipboard.writeText(L)),($=oe==null?void 0:oe.parentElement)==null||$.prepend(P)}),le),ne=()=>le=>{var oe;return(oe=le.querySelector(".md-header"))==null||oe.remove(),le},de=()=>le=>{var oe;return(oe=le.querySelector(".md-footer-copyright"))==null||oe.remove(),le},ve=({docStorageUrl:le,onLoading:oe,onLoaded:P})=>L=>{const $=Array.from(L.querySelectorAll('head > link[rel="stylesheet"]')).filter(_=>{var fe;return(fe=_.getAttribute("href"))==null?void 0:fe.startsWith(le)});let Y=$.length;return Y>0&&oe(L),$.forEach(_=>_.addEventListener("load",()=>{Y-=1,Y===0&&P(L)})),L};var be=e(35368),pe=e.n(be);const je=/main\.[A-Fa-f0-9]{8}\.min\.css$/,xe=/^https:\/\/fonts\.googleapis\.com/,Qe=/^https:\/\/fonts\.gstatic\.com/,st=le=>{if(le.nodeName&&le.nodeName==="LINK"){const oe=le.getAttribute("href")||"";oe.match(je)&&le.setAttribute("rel","stylesheet"),oe.match(xe)&&le.setAttribute("rel","stylesheet"),oe.match(Qe)&&le.setAttribute("rel","preconnect")}return le},ke=le=>oe=>{if(oe.nodeName==="IFRAME"){const P=oe.getAttribute("src");if(!P)return oe.remove(),oe;try{const L=new URL(P);le.some(Y=>L.host===Y)||oe.remove()}catch(L){console.warn(`Invalid iframe src, ${L}`),oe.remove()}}return oe},ht=le=>{const oe=(le==null?void 0:le.getOptionalStringArray("allowedIframeHosts"))||[];return P=>{pe().addHook("afterSanitizeAttributes",st);const L=["link"];return oe.length>0&&(pe().addHook("beforeSanitizeElements",ke(oe)),L.push("iframe")),pe().sanitize(P.innerHTML,{ADD_TAGS:L,FORBID_TAGS:["style"],WHOLE_DOCUMENT:!0,RETURN_DOM:!0})}},_e=({css:le})=>oe=>(oe.getElementsByTagName("head")[0].insertAdjacentHTML("beforeend",`<style>${le}</style>`),oe),at=()=>le=>(setTimeout(()=>{var oe;if(window.location.hash){const P=window.location.hash.slice(1);(oe=le==null?void 0:le.querySelector(`#${P}`))==null||oe.scrollIntoView()}},200),le),pt=async(le,oe)=>{let P;if(typeof le=="string")P=new DOMParser().parseFromString(le,"text/html").documentElement;else if(le instanceof Element)P=le;else throw new Error("dom is not a recognized type");for(const L of oe)P=await L(P);return P};var Nt=e(82957),It=e(25921),gt=e(64279),tt=e(77446);function St({contentLoading:le,content:oe,activeSyncState:P}){return le||P==="BUILD_READY_RELOAD"||!oe&&P==="CHECKING"?"CHECKING":!oe&&P==="BUILDING"?"INITIAL_BUILD":oe?P==="BUILDING"?"CONTENT_STALE_REFRESHING":P==="BUILD_READY"?"CONTENT_STALE_READY":P==="ERROR"?"CONTENT_STALE_ERROR":"CONTENT_FRESH":"CONTENT_NOT_FOUND"}function Ct(le,oe){const P={...le};switch(oe.type){case"sync":oe.state==="CHECKING"&&(P.buildLog=[]),P.activeSyncState=oe.state,P.syncError=oe.syncError;break;case"contentLoading":P.contentLoading=!0,P.contentError=void 0;break;case"content":typeof oe.path=="string"&&(P.path=oe.path),P.contentLoading=!1,P.content=oe.content,P.contentError=oe.contentError;break;case"buildLog":P.buildLog=P.buildLog.concat(oe.log);break;default:throw new Error}return["BUILD_READY","BUILD_READY_RELOAD"].includes(P.activeSyncState)&&["contentLoading","content"].includes(oe.type)&&(P.activeSyncState="UP_TO_DATE",P.buildLog=[]),P}function Ot(le,oe,P,L){var Ue,De;const[$,Y]=(0,r.useReducer)(Ct,{activeSyncState:"CHECKING",path:L,contentLoading:!0,buildLog:[]}),_=(0,i.useApi)(h.D),{retry:fe}=(0,tt.Z)(async()=>{Y({type:"contentLoading"});try{const Pe=await _.getEntityDocs({kind:le,namespace:oe,name:P},L);return Y({type:"content",content:Pe,path:L}),Pe}catch(Pe){Y({type:"content",contentError:Pe,path:L})}},[_,le,oe,P,L]),Te=(0,r.useRef)({content:void 0,reload:()=>{}});return Te.current={content:$.content,reload:fe},(0,gt.default)(async()=>{Y({type:"sync",state:"CHECKING"});const Pe=setTimeout(()=>{Y({type:"sync",state:"BUILDING"})},1e3);try{switch(await _.syncEntityDocs({kind:le,namespace:oe,name:P},Ze=>{Y({type:"buildLog",log:Ze})})){case"updated":Te.current.content?Y({type:"sync",state:"BUILD_READY"}):(Te.current.reload(),Y({type:"sync",state:"BUILD_READY_RELOAD"}));break;case"cached":Y({type:"sync",state:"UP_TO_DATE"});break;default:Y({type:"sync",state:"ERROR",syncError:new Error("Unexpected return state")});break}}catch(Ae){Y({type:"sync",state:"ERROR",syncError:Ae})}finally{clearTimeout(Pe)}},[le,P,oe,_,Y,Te]),{state:(0,r.useMemo)(()=>St({activeSyncState:$.activeSyncState,contentLoading:$.contentLoading,content:$.content}),[$.activeSyncState,$.content,$.contentLoading]),contentReload:fe,path:$.path,content:$.content,contentErrorMessage:(Ue=$.contentError)==null?void 0:Ue.toString(),syncErrorMessage:(De=$.syncError)==null?void 0:De.toString(),buildLog:$.buildLog}}const Ft=(0,l.Z)(le=>({searchBar:{marginLeft:"20rem",maxWidth:"calc(100% - 20rem * 2 - 3rem)",marginTop:le.spacing(1),"@media screen and (max-width: 76.1875em)":{marginLeft:"10rem",maxWidth:"calc(100% - 10rem)"}}})),dt=(0,r.createContext)({}),Tt=({children:le,entityRef:oe})=>{const{"*":P}=(0,t.UO)(),{kind:L,namespace:$,name:Y}=oe,_=Ot(L,$,Y,P);return r.createElement(dt.Provider,{value:_},le)},Bt=(le,oe)=>P=>React.createElement(Tt,{entityRef:oe},React.createElement(le,{...P})),Ne=()=>(0,r.useContext)(dt),nt=le=>{const oe=(0,t.s0)(),P=(0,d.Z)(),L=(0,i.useApi)(h.D),$=(0,i.useApi)(p.q3),Y=(0,i.useApi)(i.configApiRef),{namespace:_="",kind:fe="",name:Te=""}=le,{state:Se,path:Ue,content:De}=Ne(),[Pe,Ae]=(0,r.useState)(),[Ze,yt]=(0,r.useState)(null),{isPinned:ct}=(0,r.useContext)(g.SidebarPinStateContext),Ge=(0,r.useCallback)(()=>{if(!Ze||!Pe)return;const we=Ze.querySelector(".md-container > .md-tabs");Pe.forEach(We=>{const Je=Math.max(Ze.getBoundingClientRect().top,0);We.style.top=we?`${Je+we.getBoundingClientRect().height}px`:`${Je}px`})},[Ze,Pe]);(0,r.useEffect)(()=>(Ge(),window.addEventListener("scroll",Ge,!0),window.addEventListener("resize",Ge),()=>{window.removeEventListener("scroll",Ge,!0),window.removeEventListener("resize",Ge)}),[Ge,Se]);const ue=(0,r.useCallback)(()=>{if(!Ze)return;const we=Ze.querySelector(".md-footer");we&&(we.style.width=`${Ze.getBoundingClientRect().width}px`)},[Ze]);(0,r.useEffect)(()=>(ue(),window.addEventListener("resize",ue),()=>{window.removeEventListener("resize",ue)}));const $e=(0,r.useCallback)((we,We)=>pt(we,[ht(Y.getOptionalConfig("techdocs.sanitizer")),E({techdocsStorageApi:L,entityId:{kind:fe,name:Te,namespace:_},path:We}),O(),ne(),de(),Z($),_e({css:`
|
|
35
|
+
body {
|
|
36
|
+
font-family: ${P.typography.fontFamily};
|
|
37
|
+
--md-text-color: ${P.palette.text.primary};
|
|
38
|
+
--md-text-link-color: ${P.palette.primary.main};
|
|
39
|
+
|
|
40
|
+
--md-code-fg-color: ${P.palette.text.primary};
|
|
41
|
+
--md-code-bg-color: ${P.palette.background.paper};
|
|
42
|
+
--md-accent-fg-color: ${P.palette.primary.main};
|
|
43
|
+
--md-default-fg-color--lightest: ${P.palette.textVerySubtle};
|
|
44
|
+
}
|
|
45
|
+
.md-main__inner { margin-top: 0; }
|
|
46
|
+
.md-sidebar { position: fixed; bottom: 100px; width: 20rem; }
|
|
47
|
+
.md-sidebar--secondary { right: 2rem; }
|
|
48
|
+
.md-content { margin-bottom: 50px }
|
|
49
|
+
.md-footer { position: fixed; bottom: 0px; }
|
|
50
|
+
.md-footer-nav__link { width: 20rem;}
|
|
51
|
+
.md-content { margin-left: 20rem; max-width: calc(100% - 20rem * 2 - 3rem); }
|
|
52
|
+
.md-typeset { font-size: 1rem; }
|
|
53
|
+
.md-typeset h1, .md-typeset h2, .md-typeset h3 { font-weight: bold; }
|
|
54
|
+
.md-nav { font-size: 1rem; }
|
|
55
|
+
.md-grid { max-width: 90vw; margin: 0 }
|
|
56
|
+
.md-typeset blockquote {
|
|
57
|
+
color: ${P.palette.textSubtle};
|
|
58
|
+
border-left: 0.2rem solid ${P.palette.textVerySubtle};
|
|
59
|
+
}
|
|
60
|
+
.md-typeset hr {
|
|
61
|
+
border-bottom: 0.05rem dotted ${P.palette.textVerySubtle};
|
|
62
|
+
}
|
|
63
|
+
.md-typeset table:not([class]) {
|
|
64
|
+
font-size: 1rem;
|
|
65
|
+
border: 1px solid ${P.palette.text.primary};
|
|
66
|
+
border-bottom: none;
|
|
67
|
+
border-collapse: collapse;
|
|
68
|
+
}
|
|
69
|
+
.md-typeset table:not([class]) td, .md-typeset table:not([class]) th {
|
|
70
|
+
border-bottom: 1px solid ${P.palette.text.primary};
|
|
71
|
+
}
|
|
72
|
+
.md-typeset table:not([class]) th { font-weight: bold; }
|
|
73
|
+
.md-typeset .admonition, .md-typeset details {
|
|
74
|
+
font-size: 1rem;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* style the checkmarks of the task list */
|
|
78
|
+
.md-typeset .task-list-control .task-list-indicator::before {
|
|
79
|
+
background-color: ${P.palette.action.disabledBackground};
|
|
80
|
+
}
|
|
81
|
+
.md-typeset .task-list-control [type="checkbox"]:checked + .task-list-indicator:before {
|
|
82
|
+
background-color: ${P.palette.success.main};
|
|
83
|
+
}
|
|
84
|
+
/**/
|
|
85
|
+
|
|
86
|
+
@media screen and (max-width: 76.1875em) {
|
|
87
|
+
.md-nav {
|
|
88
|
+
background-color: ${P.palette.background.default};
|
|
89
|
+
transition: none !important
|
|
90
|
+
}
|
|
91
|
+
.md-sidebar--secondary { display: none; }
|
|
92
|
+
.md-sidebar--primary { left: ${ct?"242px":"72px"}; width: 10rem }
|
|
93
|
+
.md-content { margin-left: 10rem; max-width: calc(100% - 10rem); }
|
|
94
|
+
.md-content__inner { font-size: 0.9rem }
|
|
95
|
+
.md-footer {
|
|
96
|
+
position: static;
|
|
97
|
+
padding-left: 10rem;
|
|
98
|
+
}
|
|
99
|
+
.md-footer-nav__link {
|
|
100
|
+
/* footer links begin to overlap at small sizes without setting width */
|
|
101
|
+
width: 50%;
|
|
102
|
+
}
|
|
103
|
+
.md-nav--primary .md-nav__title {
|
|
104
|
+
white-space: normal;
|
|
105
|
+
height: auto;
|
|
106
|
+
line-height: 1rem;
|
|
107
|
+
cursor: auto;
|
|
108
|
+
}
|
|
109
|
+
.md-nav--primary > .md-nav__title [for="none"] {
|
|
110
|
+
padding-top: 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
`}),_e({css:`
|
|
114
|
+
.md-nav__link, .md-typeset a, .md-typeset a::before, .md-typeset .headerlink {
|
|
115
|
+
transition: none;
|
|
116
|
+
}
|
|
117
|
+
`}),_e({css:`
|
|
118
|
+
.md-typeset pre > code::-webkit-scrollbar-thumb {
|
|
119
|
+
background-color: hsla(0, 0%, 0%, 0.32);
|
|
120
|
+
}
|
|
121
|
+
.md-typeset pre > code::-webkit-scrollbar-thumb:hover {
|
|
122
|
+
background-color: hsla(0, 0%, 0%, 0.87);
|
|
123
|
+
}
|
|
124
|
+
`}),_e({css:`
|
|
125
|
+
:host {
|
|
126
|
+
--md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg>');
|
|
127
|
+
--md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 5h16v2H4V5m0 4h16v2H4V9m0 4h16v2H4v-2m0 4h10v2H4v-2z"/></svg>');
|
|
128
|
+
--md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 002 12a10 10 0 0010 10 10 10 0 0010-10A10 10 0 0012 2z"/></svg>');
|
|
129
|
+
--md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.55 11.2c-.23-.3-.5-.56-.76-.82-.65-.6-1.4-1.03-2.03-1.66C13.3 7.26 13 4.85 13.91 3c-.91.23-1.75.75-2.45 1.32-2.54 2.08-3.54 5.75-2.34 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.22.1-.46.04-.64-.12a.83.83 0 01-.15-.17c-1.1-1.43-1.28-3.48-.53-5.12C5.89 10 5 12.3 5.14 14.47c.04.5.1 1 .27 1.5.14.6.4 1.2.72 1.73 1.04 1.73 2.87 2.97 4.84 3.22 2.1.27 4.35-.12 5.96-1.6 1.8-1.66 2.45-4.32 1.5-6.6l-.13-.26c-.2-.46-.47-.87-.8-1.25l.05-.01m-3.1 6.3c-.28.24-.73.5-1.08.6-1.1.4-2.2-.16-2.87-.82 1.19-.28 1.89-1.16 2.09-2.05.17-.8-.14-1.46-.27-2.23-.12-.74-.1-1.37.18-2.06.17.38.37.76.6 1.06.76 1 1.95 1.44 2.2 2.8.04.14.06.28.06.43.03.82-.32 1.72-.92 2.27h.01z"/></svg>');
|
|
130
|
+
--md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2m-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>');
|
|
131
|
+
--md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.07 11.25l-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 00-2-2 2 2 0 00-2 2H8a4 4 0 014-4 4 4 0 014 4 3.2 3.2 0 01-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 002 12a10 10 0 0010 10 10 10 0 0010-10c0-5.53-4.5-10-10-10z"/></svg>');
|
|
132
|
+
--md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 14h-2v-4h2m0 8h-2v-2h2M1 21h22L12 2 1 21z"/></svg>');
|
|
133
|
+
--md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2c5.53 0 10 4.47 10 10s-4.47 10-10 10S2 17.53 2 12 6.47 2 12 2m3.59 5L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41 15.59 7z"/></svg>');
|
|
134
|
+
--md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.5 20l4.86-9.73H13V4l-5 9.73h3.5V20M12 2c2.75 0 5.1 1 7.05 2.95C21 6.9 22 9.25 22 12s-1 5.1-2.95 7.05C17.1 21 14.75 22 12 22s-5.1-1-7.05-2.95C3 17.1 2 14.75 2 12s1-5.1 2.95-7.05C6.9 3 9.25 2 12 2z"/></svg>');
|
|
135
|
+
--md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 12h-4v-2h4m0 6h-4v-2h4m6-6h-2.81a5.985 5.985 0 00-1.82-1.96L17 4.41 15.59 3l-2.17 2.17a6.002 6.002 0 00-2.83 0L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8z"/></svg>');
|
|
136
|
+
--md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 13v-2h14v2H7m0 6v-2h14v2H7M7 7V5h14v2H7M3 8V5H2V4h2v4H3m-1 9v-1h3v4H2v-1h2v-.5H3v-1h1V17H2m2.25-7a.75.75 0 01.75.75c0 .2-.08.39-.21.52L3.12 13H5v1H2v-.92L4 11H2v-1h2.25z"/></svg>');
|
|
137
|
+
--md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3l-2 4z"/></svg>');
|
|
138
|
+
}
|
|
139
|
+
:host {
|
|
140
|
+
--md-footnotes-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.42L5.83 13H21V7h-2z"/></svg>');
|
|
141
|
+
}
|
|
142
|
+
:host {
|
|
143
|
+
--md-details-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg>');
|
|
144
|
+
}
|
|
145
|
+
:host {
|
|
146
|
+
--md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>');
|
|
147
|
+
--md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>');
|
|
148
|
+
}
|
|
149
|
+
`})]),[fe,Te,_,$,L,Y,P.palette.action.disabledBackground,P.palette.background.default,P.palette.background.paper,P.palette.primary.main,P.palette.success.main,P.palette.text.primary,P.palette.textSubtle,P.palette.textVerySubtle,P.typography.fontFamily,ct]),qe=(0,r.useCallback)(async we=>pt(we,[at(),V(),B({baseUrl:window.location.origin,onClick:(We,Je)=>{var D,z;const J=We.ctrlKey||We.metaKey,A=new URL(Je);A.hash?J?window.open(`${A.pathname}${A.hash}`,"_blank"):(oe(`${A.pathname}${A.hash}`),(D=we==null?void 0:we.querySelector(`#${A.hash.slice(1)}`))==null||D.scrollIntoView()):J?window.open(A.pathname,"_blank"):(oe(A.pathname),(z=we==null?void 0:we.querySelector(".md-content__inner"))==null||z.scrollIntoView())}}),ve({docStorageUrl:await L.getApiOrigin(),onLoading:We=>{We.style.setProperty("opacity","0")},onLoaded:We=>{var Je;We.style.removeProperty("opacity"),(Je=We.querySelector(".md-nav__title"))==null||Je.removeAttribute("for"),Ae(Array.from(We.querySelectorAll(".md-sidebar")))}})]),[oe,L]);return(0,r.useEffect)(()=>{if(!De)return()=>{};let we=!0;return $e(De,Ue).then(async We=>{if(!(We==null?void 0:We.innerHTML)||!we)return;window.scroll({top:0});const Je=await qe(We);yt(Je)}),()=>{we=!1}},[De,Ue,$e,qe]),Ze},Ye=({entityRef:le,onReady:oe=()=>{},withSearch:P=!0})=>{var fe,Te;const L=Ft(),$=nt(le),Y=(0,r.useRef)(null),_=(0,r.useRef)(oe);return(0,r.useEffect)(()=>{_.current=oe},[oe]),(0,r.useEffect)(()=>{if(!$||!Y.current)return;const Se=Y.current,Ue=Se.shadowRoot||Se.attachShadow({mode:"open"});Array.from(Ue.children).forEach(De=>Ue.removeChild(De)),Ue.appendChild($),_.current()},[$]),r.createElement(r.Fragment,null,r.createElement(It.N,null),P&&((Te=(fe=Y==null?void 0:Y.current)==null?void 0:fe.shadowRoot)==null?void 0:Te.innerHTML)&&r.createElement(v.Z,{container:!0,className:L.searchBar},r.createElement(Nt.S,{entityId:le})),r.createElement("div",{"data-testid":"techdocs-content-shadowroot",ref:Y}))},At=({entityRef:le,onReady:oe=()=>{},withSearch:P=!0})=>r.createElement(Tt,{entityRef:le},r.createElement(Ye,{entityRef:le,onReady:oe,withSearch:P}))},94252:function(ee,s,e){"use strict";e.d(s,{T:function(){return d}});var r=e(2784),t=e(36964),l=e(9118);const d=({errorMessage:v})=>{const i=(0,t.useApi)(t.configApiRef).getOptionalString("techdocs.builder");let p="";return i!=="local"&&(p="Note that techdocs.builder is not set to 'local' in your config, which means this Backstage app will not generate docs if they are not found. Make sure the project's docs are generated and published by some external process (e.g. CI/CD pipeline). Or change techdocs.builder to 'local' to generate docs from this Backstage instance."),r.createElement(l.ErrorPage,{status:"404",statusMessage:v||"Documentation not found",additionalInfo:p})}},31752:function(ee,s,e){"use strict";e.r(s),e.d(s,{TechDocsPage:function(){return E}});var r=e(2784),t=e(10289),l=e(64279),d=e(3337),v=e(94252),i=e(36964),p=e(9118),g=e(80547),h=e(46025);const c=()=>{const[o,S]=(0,r.useState)(!1),{namespace:M,kind:x,name:j}=(0,t.UO)(),Z=(0,i.useApi)(d.g),{value:O}=(0,l.default)(()=>o?Z.getTechDocsMetadata({kind:x,namespace:M,name:j}):Promise.resolve(void 0),[x,M,j,Z,o]),{value:F,error:B}=(0,l.default)(()=>Z.getEntityMetadata({kind:x,namespace:M,name:j}),[x,M,j,Z]),V=(0,r.useCallback)(()=>{S(!0)},[S]);return B?r.createElement(v.T,{errorMessage:B.message}):r.createElement(p.Page,{themeId:"documentation"},r.createElement(h.n,{techDocsMetadata:O,entityMetadata:F,entityRef:{kind:x,namespace:M,name:j}}),r.createElement(p.Content,{"data-testid":"techdocs-content"},r.createElement(g.Ej,{onReady:V,entityRef:{kind:x,namespace:M,name:j}})))},E=({children:o})=>{const S=(0,t.pC)(),[M,x]=(0,r.useState)(!1),{namespace:j,kind:Z,name:O}=(0,t.UO)(),F=(0,i.useApi)(d.g),{value:B}=(0,l.default)(()=>M?F.getTechDocsMetadata({kind:Z,namespace:j,name:O}):Promise.resolve(void 0),[Z,j,O,F,M]),{value:V,error:ne}=(0,l.default)(()=>F.getEntityMetadata({kind:Z,namespace:j,name:O}),[Z,j,O,F]),de=(0,r.useCallback)(()=>{x(!0)},[x]);return ne?r.createElement(v.T,{errorMessage:ne.message}):o?r.createElement(p.Page,{themeId:"documentation"},o instanceof Function?o({techdocsMetadataValue:B,entityMetadataValue:V,entityRef:{kind:Z,namespace:j,name:O},onReady:de}):o):S||r.createElement(c,null)}},46025:function(ee,s,e){"use strict";e.d(s,{n:function(){return g}});var r=e(52890),t=e(9118),l=e(36964),d=e(31423),v=e(73250),i=e(2784),p=e(68725);const g=({entityRef:h,entityMetadata:c,techDocsMetadata:E})=>{const{name:o}=h,{site_name:S,site_description:M}=E||{},{locationMetadata:x,spec:j}=c||{},Z=j==null?void 0:j.lifecycle,O=c?(0,d.getEntityRelations)(c,r.S4):[],F=(0,l.useRouteRef)(p._Z)(),B=i.createElement(i.Fragment,null,i.createElement(t.HeaderLabel,{label:"Component",value:i.createElement(d.EntityRefLink,{color:"inherit",entityRef:h,defaultKind:"Component"})}),O.length>0&&i.createElement(t.HeaderLabel,{label:"Owner",value:i.createElement(d.EntityRefLinks,{color:"inherit",entityRefs:O,defaultKind:"group"})}),Z?i.createElement(t.HeaderLabel,{label:"Lifecycle",value:Z}):null,x&&x.type!=="dir"&&x.type!=="file"?i.createElement(t.HeaderLabel,{label:"",value:i.createElement("a",{href:x.target,target:"_blank",rel:"noopener noreferrer"},i.createElement(v.Z,{style:{marginTop:"-25px",fill:"#fff"}}))}):null);return i.createElement(t.Header,{title:S||".",pageTitleOverride:S||o,subtitle:M&&M!=="None"?M:"",type:"Docs",typeLink:F},B)}},82957:function(ee,s,e){"use strict";e.d(s,{S:function(){return Ge}});var r=e(91512),t=e(2784),l=e(79692);const d=(0,l.Z)(ue=>({filters:{width:"250px",display:"flex"},icon:{margin:ue.spacing(-1,0,0,0)}})),v=({numberOfSelectedFilters:ue,handleToggleFilters:$e})=>{const qe=d();return React.createElement("div",{className:qe.filters},React.createElement(IconButton,{className:qe.icon,"aria-label":"settings",onClick:$e},React.createElement(FilterListIcon,null)),React.createElement(Typography,{variant:"h6"},"Filters (",ue||0,")"))},i=(0,l.Z)(ue=>({filters:{background:"transparent",boxShadow:"0px 0px 0px 0px"},checkbox:{padding:ue.spacing(0,1,0,1)},dropdown:{width:"100%"}})),p=({filters:ue,filterOptions:$e,resetFilters:qe,updateSelected:we,updateChecked:We})=>{const Je=i();return React.createElement(Card,{className:Je.filters},React.createElement(CardHeader,{title:React.createElement(Typography,{variant:"h6"},"Filters"),action:React.createElement(Button,{color:"primary",onClick:()=>qe()},"CLEAR ALL")}),React.createElement(Divider,null),$e.kind.length===0&&$e.lifecycle.length===0&&React.createElement(CardContent,null,React.createElement(Typography,{variant:"subtitle2"},"Filters cannot be applied to available results")),$e.kind.length>0&&React.createElement(CardContent,null,React.createElement(Typography,{variant:"subtitle2"},"Kind"),React.createElement(Select,{id:"outlined-select",onChange:J=>{var A;return we((A=J==null?void 0:J.target)==null?void 0:A.value)},variant:"outlined",className:Je.dropdown,value:ue.selected},$e.kind.map(J=>React.createElement(MenuItem,{selected:J==="",dense:!0,key:J,value:J},J)))),$e.lifecycle.length>0&&React.createElement(CardContent,null,React.createElement(Typography,{variant:"subtitle2"},"Lifecycle"),React.createElement(List,{disablePadding:!0,dense:!0},$e.lifecycle.map(J=>React.createElement(ListItem,{key:J,dense:!0,button:!0,onClick:()=>We(J)},React.createElement(Checkbox,{edge:"start",disableRipple:!0,className:Je.checkbox,color:"primary",checked:ue.checked.includes(J),tabIndex:-1,value:J,name:J}),React.createElement(ListItemText,{id:J,primary:J}))))))};var g=e(1795),h=e(22313),c=e(42494),E=e(84899),o=e(5806),S=e(21324),M=e(56939),x=e(73698),j=e(12231),Z=e(86619),O=e(7089),F=e(88013),B=e(69294),V=e(48760);const ne=(ue,$e,qe=[],we=250)=>{const We=(0,t.useRef)({}),Je=ue||(()=>Promise.resolve([])),[J,A]=(0,B.default)(Je,[$e],{loading:!0});if((0,V.Z)(()=>{We.current[$e]===void 0&&(We.current[$e]=A($e).then(z=>(We.current[$e]=z,z)))},we,[A,$e]),qe.length)return{loading:!1,value:qe};const D=We.current[$e];return Array.isArray(D)?{loading:!1,value:D}:J},de=(ue,$e)=>{const{setFilters:qe}=(0,h.Rx)();(0,t.useEffect)(()=>{$e&&[$e].flat().length>0&&qe(we=>({...we,[ue]:$e}))},[])},ve=ue=>{const{className:$e,defaultValue:qe,name:we,values:We,valuesDebounceMs:Je,label:J,filterSelectedOptions:A,limitTags:D,multiple:z}=ue,[re,Fe]=(0,t.useState)("");de(we,qe);const Ee=typeof We=="function"?We:void 0,Ie=typeof We=="function"?void 0:We,{value:Me,loading:He}=ne(Ee,re,Ie,Je),{filters:Et,setFilters:ce}=(0,h.Rx)(),W=Et[we]||(z?[]:null),te=(Ke,ot)=>{ce(Rt=>{const{[we]:Kt,...en}=Rt;return ot?{...en,[we]:ot}:{...en}})},ye=Ke=>t.createElement(Z.Z,{...Ke,name:"search",variant:"outlined",label:J,fullWidth:!0}),Ve=(Ke,ot)=>Ke.map((Rt,Kt)=>t.createElement(O.Z,{label:Rt,color:"primary",...ot({index:Kt})}));return t.createElement(F.ZP,{filterSelectedOptions:A,limitTags:D,multiple:z,className:$e,id:`${z?"multi-":""}select-filter-${we}--select`,options:Me||[],loading:He,value:W,onChange:te,onInputChange:(Ke,ot)=>Fe(ot),renderInput:ye,renderTags:Ve})},be=(0,l.Z)({label:{textTransform:"capitalize"}}),pe=ue=>{const{className:$e,defaultValue:qe,label:we,name:We,values:Je=[],valuesDebounceMs:J}=ue,A=be(),{filters:D,setFilters:z}=(0,h.Rx)();de(We,qe);const re=typeof Je=="function"?Je:void 0,Fe=typeof Je=="function"?void 0:Je,{value:Ee=[],loading:Ie}=ne(re,"",Fe,J),Me=He=>{const{target:{value:Et,checked:ce}}=He;z(W=>{const{[We]:te,...ye}=W,Ve=(te||[]).filter(ot=>ot!==Et),Ke=ce?[...Ve,Et]:Ve;return Ke.length?{...ye,[We]:Ke}:ye})};return t.createElement(c.Z,{className:$e,disabled:Ie,fullWidth:!0,"data-testid":"search-checkboxfilter-next"},we?t.createElement(E.Z,{className:A.label},we):null,Ee.map(He=>{var Et;return t.createElement(o.Z,{key:He,control:t.createElement(S.Z,{color:"primary",tabIndex:-1,inputProps:{"aria-labelledby":He},value:He,name:He,onChange:Me,checked:((Et=D[We])!=null?Et:[]).includes(He)}),label:He})}))},je=ue=>{const{className:$e,defaultValue:qe,label:we,name:We,values:Je,valuesDebounceMs:J}=ue,A=be();de(We,qe);const D=typeof Je=="function"?Je:void 0,z=typeof Je=="function"?void 0:Je,{value:re=[],loading:Fe}=ne(D,"",z,J),{filters:Ee,setFilters:Ie}=(0,h.Rx)(),Me=He=>{const{target:{value:Et}}=He;Ie(ce=>{const{[We]:W,...te}=ce;return Et?{...te,[We]:Et}:te})};return t.createElement(c.Z,{disabled:Fe,className:$e,variant:"filled",fullWidth:!0,"data-testid":"search-selectfilter-next"},we?t.createElement(M.Z,{className:A.label,margin:"dense"},we):null,t.createElement(x.Z,{variant:"outlined",value:Ee[We]||"",onChange:Me},t.createElement(j.Z,{value:""},t.createElement("em",null,"All")),re.map(He=>t.createElement(j.Z,{key:He,value:He},He))))},xe=({component:ue,...$e})=>t.createElement(ue,{...$e});xe.Checkbox=ue=>t.createElement(xe,{...ue,component:pe}),xe.Select=ue=>t.createElement(xe,{...ue,component:je}),xe.Autocomplete=ue=>t.createElement(xe,{...ue,component:ve});const Qe=null;var st=e(65678),ke=e(3992),ht=e(8542),_e=e(49378),at=e(62155),pt=e(94339),Nt=e(32552),It=e(24579),gt=e(27616),tt=e(8284),St=e(70660),Ct=e(11776),Ot=e(85256),Ft=e(38402),dt=e(86136),Tt=e(38016),Bt=e(56881);const Ne=(0,l.Z)(ue=>({card:{backgroundColor:"rgba(0, 0, 0, .11)"},cardContent:{paddingTop:ue.spacing(1)},icon:{color:ue.palette.common.black},list:{width:"100%"},listItemIcon:{width:"24px",height:"24px"},accordion:{backgroundColor:ue.palette.background.paper},accordionSummary:{minHeight:"auto","&.Mui-expanded":{minHeight:"auto"}},accordionSummaryContent:{margin:ue.spacing(2,0),"&.Mui-expanded":{margin:ue.spacing(2,0)}},accordionDetails:{padding:ue.spacing(0,0,1)}})),nt=ue=>{const $e=Ne(),{setPageCursor:qe,setTypes:we,types:We}=(0,h.Rx)(),[Je,J]=(0,t.useState)(!0),{defaultValue:A,name:D,types:z}=ue,re=()=>J(Me=>!Me),Fe=Me=>()=>{we(Me!==""?[Me]:[]),qe(void 0),J(!1)};(0,t.useEffect)(()=>{A&&we([A])},[]);const Ee=[{value:"",name:"All",icon:t.createElement(Bt.Z,null)},...z],Ie=We[0]||"";return t.createElement(pt.Z,{className:$e.card},t.createElement(Nt.Z,{title:D,titleTypographyProps:{variant:"overline"}}),t.createElement(It.Z,{className:$e.cardContent},t.createElement(gt.Z,{className:$e.accordion,expanded:Je,onChange:re},t.createElement(tt.Z,{classes:{root:$e.accordionSummary,content:$e.accordionSummaryContent},expandIcon:t.createElement(Tt.Z,{className:$e.icon}),IconButtonProps:{size:"small"}},Je?"Collapse":Ee.filter(Me=>Me.value===Ie)[0].name),t.createElement(St.Z,{classes:{root:$e.accordionDetails}},t.createElement(Ct.Z,{className:$e.list,component:"nav","aria-label":"filter by type",disablePadding:!0,dense:!0},Ee.map(Me=>t.createElement(t.Fragment,{key:Me.value},t.createElement(Ot.Z,null),t.createElement(Ft.Z,{selected:We[0]===Me.value||We.length===0&&Me.value==="",onClick:Fe(Me.value),button:!0},t.createElement(dt.Z,null,(0,t.cloneElement)(Me.icon,{className:$e.listItemIcon})),t.createElement(_e.Z,{primary:Me.name})))))))))};var Ye=e(99152),At=e(6487);const le=(0,l.Z)(ue=>({tabs:{borderBottom:`1px solid ${ue.palette.textVerySubtle}`,padding:ue.spacing(0,4)},tab:{height:"50px",fontWeight:ue.typography.fontWeightBold,fontSize:ue.typography.pxToRem(13),color:ue.palette.textSubtle,minWidth:"130px"}})),oe=ue=>{const $e=le(),{setPageCursor:qe,setTypes:we,types:We}=(0,h.Rx)(),{defaultValue:Je,types:J}=ue,A=(z,re)=>{we(re!==""?[re]:[]),qe(void 0)};(0,t.useEffect)(()=>{Je&&we([Je])},[]);const D=[{value:"",name:"All"},...J];return t.createElement(Ye.Z,{className:$e.tabs,indicatorColor:"primary",value:We.length===0?"":We[0],onChange:A},D.map(z=>t.createElement(At.Z,{className:$e.tab,disableRipple:!0,label:z.name,value:z.value})))},P=(0,l.Z)(ue=>({label:{textTransform:"capitalize"},chips:{display:"flex",flexWrap:"wrap",marginTop:ue.spacing(1)},chip:{margin:2}})),L=ue=>{const{className:$e,defaultValue:qe,name:we,values:We=[]}=ue,Je=P(),{types:J,setTypes:A}=(0,h.Rx)();(0,at.Z)(()=>{J.length||(qe&&Array.isArray(qe)?A(qe):qe&&A([qe]))});const D=z=>{const re=z.target.value;A(re)};return t.createElement(c.Z,{className:$e,variant:"filled",fullWidth:!0,"data-testid":"search-typefilter-next"},t.createElement(M.Z,{className:Je.label,margin:"dense"},we),t.createElement(x.Z,{multiple:!0,variant:"outlined",value:J,onChange:D,placeholder:"All Results",renderValue:z=>t.createElement("div",{className:Je.chips},z.map(re=>t.createElement(O.Z,{key:re,label:re,className:Je.chip,size:"small"})))},We.map(z=>t.createElement(j.Z,{key:z,value:z},t.createElement(S.Z,{checked:J.indexOf(z)>-1}),t.createElement(_e.Z,{primary:z})))))};L.Accordion=ue=>t.createElement(nt,{...ue}),L.Tabs=ue=>t.createElement(oe,{...ue});var $=e(19126),Y=e(20863),_=e(36964),fe=e(9118);const Te=ue=>{const $e=useRouteRef(rootRouteRef),{focusContent:qe}=useContent(),we=useNavigate(),We=useCallback(Je=>{const J=qs.stringify({query:Je},{addQueryPrefix:!0});qe(),we(`${$e()}${J}`)},[qe,we,$e]);return React.createElement(SidebarSearchField,{icon:ue.icon,onSearch:We,to:"/search"})};var Se=e(60905),Ue=e(50581),De=e(61837),Pe=e(4614),Ae=e(21853),Ze=e(10289),yt=e(71226);const ct=({entityId:ue,debounceTime:$e=150})=>{const[qe,we]=(0,t.useState)(!1),We=(0,Ze.s0)(),{term:Je,setTerm:J,result:{loading:A,value:D}}=(0,h.Rx)(),[z,re]=(0,t.useState)([]);(0,t.useEffect)(()=>{let He=!0;if(He&&D){const Et=D.results.slice(0,10);re(Et)}return()=>{He=!1}},[A,D]);const[Fe,Ee]=(0,t.useState)(Je);(0,V.Z)(()=>J(Fe),$e,[Fe]);const Ie=He=>{qe||we(!0),Ee(He.target.value)},Me=(He,Et)=>{if(Et==null?void 0:Et.document){const{location:ce}=Et.document;We(ce)}};return t.createElement(Se.Z,{item:!0,xs:12},t.createElement(F.ZP,{"data-testid":"techdocs-search-bar",size:"small",open:qe,getOptionLabel:()=>"",filterOptions:He=>He,onClose:()=>{we(!1)},onFocus:()=>{we(!0)},onChange:Me,blurOnSelect:!0,noOptionsText:"No results found",value:null,options:z,renderOption:({document:He})=>t.createElement(yt.O,{result:He,lineClamp:3,asListItem:!1,asLink:!1,title:He.title}),loading:A,renderInput:He=>t.createElement(Z.Z,{...He,"data-testid":"techdocs-search-bar-input",variant:"outlined",fullWidth:!0,placeholder:`Search ${ue.name} docs`,value:Fe,onChange:Ie,InputProps:{...He.InputProps,startAdornment:t.createElement(Ue.Z,{position:"start"},t.createElement(De.Z,{"aria-label":"Query",disabled:!0},t.createElement(Ae.Z,null))),endAdornment:t.createElement(t.Fragment,null,A?t.createElement(Pe.Z,{color:"inherit",size:20}):null,He.InputProps.endAdornment)}})}))},Ge=ue=>{const $e={term:"",types:["techdocs"],pageCursor:"",filters:ue.entityId};return t.createElement(h.Nd,{initialState:$e},t.createElement(ct,{...ue}))}},25921:function(ee,s,e){"use strict";e.d(s,{N:function(){return F}});var r=e(2784),t=e(9118),l=e(79692),d=e(4614),v=e(77277),i=e(99688),p=e(12420),g=e(60905),h=e(90436),c=e(61837),E=e(4190),o=e(87685);const S=(0,l.Z)(B=>(0,p.Z)({paper:{width:"100%",[B.breakpoints.up("sm")]:{width:"75%"},[B.breakpoints.up("md")]:{width:"50%"},padding:B.spacing(2.5)},root:{height:"100%",overflow:"hidden"},logs:{background:B.palette.background.default}})),M=({buildLog:B,onClose:V})=>{const ne=S(),de=B.length===0?"Waiting for logs...":B.join(`
|
|
150
|
+
`);return r.createElement(g.Z,{container:!0,direction:"column",className:ne.root,spacing:0,wrap:"nowrap"},r.createElement(g.Z,{item:!0,container:!0,justifyContent:"space-between",alignItems:"center",spacing:0,wrap:"nowrap"},r.createElement(h.Z,{variant:"h5"},"Build Details"),r.createElement(c.Z,{key:"dismiss",title:"Close the drawer",onClick:V,color:"inherit"},r.createElement(o.Z,null))),r.createElement(t.LogViewer,{text:de,classes:{root:ne.logs}}))},x=({buildLog:B})=>{const V=S(),[ne,de]=(0,r.useState)(!1);return r.createElement(r.Fragment,null,r.createElement(v.Z,{color:"inherit",onClick:()=>de(!0)},"Show Build Logs"),r.createElement(E.ZP,{classes:{paper:V.paper},anchor:"right",open:ne,onClose:()=>de(!1)},r.createElement(M,{buildLog:B,onClose:()=>de(!1)})))};var j=e(94252),Z=e(80547);const O=(0,l.Z)(()=>({message:{wordBreak:"break-word",overflowWrap:"anywhere"}})),F=()=>{let B=null;const V=O(),{state:ne,contentReload:de,contentErrorMessage:ve,syncErrorMessage:be,buildLog:pe}=(0,Z.DK)(),je=ne==="CHECKING"?r.createElement(t.Progress,null):null;return ne==="INITIAL_BUILD"&&(B=r.createElement(i.Z,{variant:"outlined",severity:"info",icon:r.createElement(d.Z,{size:"24px"}),action:r.createElement(x,{buildLog:pe})},"Documentation is accessed for the first time and is being prepared. The subsequent loads are much faster.")),ne==="CONTENT_STALE_REFRESHING"&&(B=r.createElement(i.Z,{variant:"outlined",severity:"info",icon:r.createElement(d.Z,{size:"24px"}),action:r.createElement(x,{buildLog:pe})},"A newer version of this documentation is being prepared and will be available shortly.")),ne==="CONTENT_STALE_READY"&&(B=r.createElement(i.Z,{variant:"outlined",severity:"success",action:r.createElement(v.Z,{color:"inherit",onClick:()=>de()},"Refresh")},"A newer version of this documentation is now available, please refresh to view.")),ne==="CONTENT_STALE_ERROR"&&(B=r.createElement(i.Z,{variant:"outlined",severity:"error",action:r.createElement(x,{buildLog:pe}),classes:{message:V.message}},"Building a newer version of this documentation failed."," ",be)),ne==="CONTENT_NOT_FOUND"&&(B=r.createElement(r.Fragment,null,be&&r.createElement(i.Z,{variant:"outlined",severity:"error",action:r.createElement(x,{buildLog:pe}),classes:{message:V.message}},"Building a newer version of this documentation failed."," ",be),r.createElement(j.T,{errorMessage:ve}))),r.createElement(r.Fragment,null,je,B)}},73873:function(ee,s,e){"use strict";e.d(s,{Ej:function(){return r.Ej},EV:function(){return t.TechDocsPage},nN:function(){return l.n}});var r=e(80547),t=e(31752),l=e(46025),d=e(25921),v=e(82957)},68725:function(ee,s,e){"use strict";e.d(s,{_Z:function(){return t},Fw:function(){return l},pd:function(){return d}});var r=e(36964);const t=(0,r.createRouteRef)({id:"techdocs:index-page"}),l=(0,r.createRouteRef)({id:"techdocs:reader-page",params:["namespace","kind","name"]}),d=(0,r.createRouteRef)({id:"techdocs:catalog-reader-view"})},19133:function(ee,s,e){"use strict";ee.exports=e.p+"static/createComponent.975d1e1e..svg"},86284:function(ee,s,e){"use strict";ee.exports=e.p+"static/missingAnnotation.67f79e98..svg"},3871:function(ee,s,e){"use strict";ee.exports=e.p+"static/noBuild.1715fa71..svg"},96465:function(ee,s,e){"use strict";ee.exports=e.p+"static/noInformation.4b426325..svg"},29788:function(ee,s,e){"use strict";ee.exports=e.p+"static/mic-drop.fe3ef4d0..svg"},219:function(ee,s,e){"use strict";ee.exports=e.p+"static/illo.7884c54f..svg"},53260:function(){}},function(ee){var s=function(r){return ee(ee.s=r)};ee.O(0,[2370,6202,9284,2126,7012,9035,427,5218,4736],function(){return s(88649),s(71380)});var e=ee.O()}]);})();
|
|
151
|
+
|
|
152
|
+
//# sourceMappingURL=main.137ccf21.js.map
|