@kuadrant/kuadrant-backstage-plugin-frontend 0.0.2-dev-cd184fc → 0.0.2-dev-d2ba42b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/components/ApiAccessCard/ApiAccessCard.esm.js +2 -1
  2. package/dist/components/ApiAccessCard/ApiAccessCard.esm.js.map +1 -1
  3. package/dist/components/ApiKeyApprovalPage/ApiKeyApprovalPage.esm.js +10 -0
  4. package/dist/components/ApiKeyApprovalPage/ApiKeyApprovalPage.esm.js.map +1 -0
  5. package/dist/components/ApiKeyApprovalPage/index.esm.js +2 -0
  6. package/dist/components/ApiKeyDetailPage/ApiKeyDetailPage.esm.js +4 -4
  7. package/dist/components/ApiKeyDetailPage/ApiKeyDetailPage.esm.js.map +1 -1
  8. package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js +28 -2
  9. package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js.map +1 -1
  10. package/dist/components/ApiProductDetails/ApiProductDetails.esm.js +13 -3
  11. package/dist/components/ApiProductDetails/ApiProductDetails.esm.js.map +1 -1
  12. package/dist/components/ApprovalQueueTable/ApprovalQueueTable.esm.js +2 -2
  13. package/dist/components/ApprovalQueueTable/ApprovalQueueTable.esm.js.map +1 -1
  14. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +117 -10
  15. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
  16. package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js +48 -24
  17. package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js.map +1 -1
  18. package/dist/components/EntityApiApprovalTab/EntityApiApprovalTab.esm.js +2 -2
  19. package/dist/components/EntityApiApprovalTab/EntityApiApprovalTab.esm.js.map +1 -1
  20. package/dist/components/KuadrantPage/ApiProductsPage.esm.js +53 -3
  21. package/dist/components/KuadrantPage/ApiProductsPage.esm.js.map +1 -1
  22. package/dist/components/MyApiKeysPage/MyApiKeysPage.esm.js +10 -0
  23. package/dist/components/MyApiKeysPage/MyApiKeysPage.esm.js.map +1 -0
  24. package/dist/components/MyApiKeysPage/index.esm.js +2 -0
  25. package/dist/components/MyApiKeysPage/index.esm.js.map +1 -0
  26. package/dist/components/MyApiKeysTable/MyApiKeysTable.esm.js +26 -5
  27. package/dist/components/MyApiKeysTable/MyApiKeysTable.esm.js.map +1 -1
  28. package/dist/components/PlanPolicyDetailsCard/PlanPolicyDetails.esm.js +4 -4
  29. package/dist/components/PlanPolicyDetailsCard/PlanPolicyDetails.esm.js.map +1 -1
  30. package/dist/components/SimpleRequestAccessDialog/SimpleRequestAccessDialog.esm.js +206 -0
  31. package/dist/components/SimpleRequestAccessDialog/SimpleRequestAccessDialog.esm.js.map +1 -0
  32. package/dist/index.d.ts +3 -2
  33. package/dist/index.esm.js +1 -1
  34. package/dist/plugin.esm.js +11 -4
  35. package/dist/plugin.esm.js.map +1 -1
  36. package/dist/utils/styles.esm.js +44 -5
  37. package/dist/utils/styles.esm.js.map +1 -1
  38. package/dist-scalprum/internal.plugin-kuadrant.eacc31ca4d6c1340f8a8.js +2 -0
  39. package/dist-scalprum/{internal.plugin-kuadrant.c830fc2d56f9e96a055e.js.map → internal.plugin-kuadrant.eacc31ca4d6c1340f8a8.js.map} +1 -1
  40. package/dist-scalprum/plugin-manifest.json +3 -3
  41. package/dist-scalprum/static/2118.82433765.chunk.js +2 -0
  42. package/dist-scalprum/static/2118.82433765.chunk.js.map +1 -0
  43. package/dist-scalprum/static/2967.5bade048.chunk.js +2 -0
  44. package/dist-scalprum/static/2967.5bade048.chunk.js.map +1 -0
  45. package/dist-scalprum/static/3650.89dfc64c.chunk.js +2 -0
  46. package/dist-scalprum/static/3650.89dfc64c.chunk.js.map +1 -0
  47. package/dist-scalprum/static/369.2374941c.chunk.js +2 -0
  48. package/dist-scalprum/static/369.2374941c.chunk.js.map +1 -0
  49. package/dist-scalprum/static/3947.ff1c25cf.chunk.js +2 -0
  50. package/dist-scalprum/static/3947.ff1c25cf.chunk.js.map +1 -0
  51. package/dist-scalprum/static/3976.4cf18515.chunk.js +2 -0
  52. package/dist-scalprum/static/3976.4cf18515.chunk.js.map +1 -0
  53. package/dist-scalprum/static/4447.adbf663f.chunk.js +2 -0
  54. package/dist-scalprum/static/4447.adbf663f.chunk.js.map +1 -0
  55. package/dist-scalprum/static/5010.4ef96c87.chunk.js +3 -0
  56. package/dist-scalprum/static/5010.4ef96c87.chunk.js.map +1 -0
  57. package/dist-scalprum/static/5203.fce2a28f.chunk.js +2 -0
  58. package/dist-scalprum/static/5203.fce2a28f.chunk.js.map +1 -0
  59. package/dist-scalprum/static/6422.969d9b8c.chunk.js +2 -0
  60. package/dist-scalprum/static/6422.969d9b8c.chunk.js.map +1 -0
  61. package/dist-scalprum/static/6800.cd5c7bcb.chunk.js +2 -0
  62. package/dist-scalprum/static/6800.cd5c7bcb.chunk.js.map +1 -0
  63. package/dist-scalprum/static/7005.72759857.chunk.js +2 -0
  64. package/dist-scalprum/static/7005.72759857.chunk.js.map +1 -0
  65. package/dist-scalprum/static/7270.9473c969.chunk.js +2 -0
  66. package/dist-scalprum/static/7270.9473c969.chunk.js.map +1 -0
  67. package/dist-scalprum/static/7791.01371352.chunk.js +2 -0
  68. package/dist-scalprum/static/7791.01371352.chunk.js.map +1 -0
  69. package/dist-scalprum/static/{6763.d6cd937f.chunk.js → 8563.46f1a3e1.chunk.js} +3 -3
  70. package/dist-scalprum/static/8563.46f1a3e1.chunk.js.map +1 -0
  71. package/dist-scalprum/static/8789.30227526.chunk.js +2 -0
  72. package/dist-scalprum/static/8789.30227526.chunk.js.map +1 -0
  73. package/dist-scalprum/static/8804.63919453.chunk.js +2 -0
  74. package/dist-scalprum/static/8804.63919453.chunk.js.map +1 -0
  75. package/dist-scalprum/static/exposed-PluginRoot.8d8f0b09.chunk.js +2 -0
  76. package/dist-scalprum/static/exposed-PluginRoot.8d8f0b09.chunk.js.map +1 -0
  77. package/package.json +1 -1
  78. package/dist/components/ApiKeysPage/ApiKeysPage.esm.js +0 -43
  79. package/dist/components/ApiKeysPage/ApiKeysPage.esm.js.map +0 -1
  80. package/dist/components/ApiKeysPage/index.esm.js +0 -2
  81. package/dist-scalprum/internal.plugin-kuadrant.c830fc2d56f9e96a055e.js +0 -2
  82. package/dist-scalprum/static/2821.972ae33b.chunk.js +0 -2
  83. package/dist-scalprum/static/2821.972ae33b.chunk.js.map +0 -1
  84. package/dist-scalprum/static/2967.65c51af8.chunk.js +0 -2
  85. package/dist-scalprum/static/2967.65c51af8.chunk.js.map +0 -1
  86. package/dist-scalprum/static/3091.9a74ea5f.chunk.js +0 -2
  87. package/dist-scalprum/static/3091.9a74ea5f.chunk.js.map +0 -1
  88. package/dist-scalprum/static/3650.ee76eba9.chunk.js +0 -2
  89. package/dist-scalprum/static/3650.ee76eba9.chunk.js.map +0 -1
  90. package/dist-scalprum/static/3947.7458971d.chunk.js +0 -2
  91. package/dist-scalprum/static/3947.7458971d.chunk.js.map +0 -1
  92. package/dist-scalprum/static/3984.647ef00c.chunk.js +0 -2
  93. package/dist-scalprum/static/3984.647ef00c.chunk.js.map +0 -1
  94. package/dist-scalprum/static/4651.c85cecc4.chunk.js +0 -2
  95. package/dist-scalprum/static/4651.c85cecc4.chunk.js.map +0 -1
  96. package/dist-scalprum/static/4682.75f17114.chunk.js +0 -2
  97. package/dist-scalprum/static/4682.75f17114.chunk.js.map +0 -1
  98. package/dist-scalprum/static/5010.0cd6c959.chunk.js +0 -3
  99. package/dist-scalprum/static/5010.0cd6c959.chunk.js.map +0 -1
  100. package/dist-scalprum/static/5203.b654e8e0.chunk.js +0 -2
  101. package/dist-scalprum/static/5203.b654e8e0.chunk.js.map +0 -1
  102. package/dist-scalprum/static/5453.ecdee66d.chunk.js +0 -2
  103. package/dist-scalprum/static/5453.ecdee66d.chunk.js.map +0 -1
  104. package/dist-scalprum/static/6763.d6cd937f.chunk.js.map +0 -1
  105. package/dist-scalprum/static/6800.20f46859.chunk.js +0 -2
  106. package/dist-scalprum/static/6800.20f46859.chunk.js.map +0 -1
  107. package/dist-scalprum/static/6840.1653e6b0.chunk.js +0 -2
  108. package/dist-scalprum/static/6840.1653e6b0.chunk.js.map +0 -1
  109. package/dist-scalprum/static/7791.ac1ac509.chunk.js +0 -2
  110. package/dist-scalprum/static/7791.ac1ac509.chunk.js.map +0 -1
  111. package/dist-scalprum/static/8172.cbe1f2c4.chunk.js +0 -2
  112. package/dist-scalprum/static/8172.cbe1f2c4.chunk.js.map +0 -1
  113. package/dist-scalprum/static/8799.52bbeef1.chunk.js +0 -2
  114. package/dist-scalprum/static/8799.52bbeef1.chunk.js.map +0 -1
  115. package/dist-scalprum/static/exposed-PluginRoot.55777e36.chunk.js +0 -2
  116. package/dist-scalprum/static/exposed-PluginRoot.55777e36.chunk.js.map +0 -1
  117. /package/dist/components/{ApiKeysPage → ApiKeyApprovalPage}/index.esm.js.map +0 -0
  118. /package/dist-scalprum/static/{5010.0cd6c959.chunk.js.LICENSE.txt → 5010.4ef96c87.chunk.js.LICENSE.txt} +0 -0
  119. /package/dist-scalprum/static/{6763.d6cd937f.chunk.js.LICENSE.txt → 8563.46f1a3e1.chunk.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/8804.63919453.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Add.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/esm/useAsync.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/esm/useAsyncFn.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Delete.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/plugin-api-docs/node_modules/@backstage/core-components/dist/components/Progress/Progress.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/plugin-api-docs/dist/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/ArrowForward.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/ArrowBack.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Warning.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/node_modules/clsx/dist/clsx.m.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/SuccessOutlined.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/ReportProblemOutlined.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/ErrorOutline.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/InfoOutlined.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/Close.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/Alert/Alert.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/InfoOutlined.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/BottomLink/BottomLink.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/components/LinkButton/LinkButton.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/ErrorBoundary/ErrorBoundary.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/InfoCard/InfoCard.esm.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","import { useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nexport default function useAsync(fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useAsyncFn(fn, deps, {\n loading: true,\n }), state = _a[0], callback = _a[1];\n useEffect(function () {\n callback();\n }, [callback]);\n return state;\n}\n","import { __assign } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useMountedState from './useMountedState';\nexport default function useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = useRef(0);\n var isMounted = useMountedState();\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var callback = useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (__assign(__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\n\nexports.default = _default;","import { jsx } from 'react/jsx-runtime';\nimport Box from '@material-ui/core/Box';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport { useTheme } from '@material-ui/core/styles';\nimport { useState, useEffect } from 'react';\n\nfunction Progress(props) {\n const theme = useTheme();\n const [isVisible, setIsVisible] = useState(false);\n useEffect(() => {\n const handle = setTimeout(\n () => setIsVisible(true),\n theme.transitions.duration.short\n );\n return () => clearTimeout(handle);\n }, [theme.transitions.duration.short]);\n return isVisible ? /* @__PURE__ */ jsx(LinearProgress, { ...props, \"data-testid\": \"progress\" }) : /* @__PURE__ */ jsx(Box, { display: \"none\", \"data-testid\": \"progress\" });\n}\n\nexport { Progress };\n//# sourceMappingURL=Progress.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { Progress } from '@backstage/core-components';\nimport { lazy, Suspense } from 'react';\n\nconst LazyOpenApiDefinition = lazy(\n () => import('./OpenApiDefinition.esm.js').then((m) => ({\n default: m.OpenApiDefinition\n }))\n);\nconst OpenApiDefinitionWidget = (props) => {\n const validSubmitMethods = props.supportedSubmitMethods?.map(\n (method) => method.toLocaleLowerCase()\n );\n return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Progress, {}), children: /* @__PURE__ */ jsx(\n LazyOpenApiDefinition,\n {\n ...props,\n supportedSubmitMethods: validSubmitMethods\n }\n ) });\n};\n\nexport { OpenApiDefinitionWidget };\n//# sourceMappingURL=OpenApiDefinitionWidget.esm.js.map\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n}), 'ArrowForward');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"\n}), 'ArrowBack');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');\n\nexports.default = _default;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z\"\n}), 'SuccessOutlined');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\"\n}), 'ReportProblemOutlined');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'ErrorOutline');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z\"\n}), 'InfoOutlined');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { withStyles, lighten, darken } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport SuccessOutlinedIcon from '../internal/svg-icons/SuccessOutlined';\nimport ReportProblemOutlinedIcon from '../internal/svg-icons/ReportProblemOutlined';\nimport ErrorOutlineIcon from '../internal/svg-icons/ErrorOutline';\nimport InfoOutlinedIcon from '../internal/svg-icons/InfoOutlined';\nimport CloseIcon from '../internal/svg-icons/Close';\nimport IconButton from '@material-ui/core/IconButton';\nimport { capitalize } from '@material-ui/core/utils';\nexport var styles = function styles(theme) {\n var getColor = theme.palette.type === 'light' ? darken : lighten;\n var getBackgroundColor = theme.palette.type === 'light' ? lighten : darken;\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body2, {\n borderRadius: theme.shape.borderRadius,\n backgroundColor: 'transparent',\n display: 'flex',\n padding: '6px 16px'\n }),\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"success\"`. */\n standardSuccess: {\n color: getColor(theme.palette.success.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.success.main, 0.9),\n '& $icon': {\n color: theme.palette.success.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"info\"`. */\n standardInfo: {\n color: getColor(theme.palette.info.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.info.main, 0.9),\n '& $icon': {\n color: theme.palette.info.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"warning\"`. */\n standardWarning: {\n color: getColor(theme.palette.warning.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.warning.main, 0.9),\n '& $icon': {\n color: theme.palette.warning.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"error\"`. */\n standardError: {\n color: getColor(theme.palette.error.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.error.main, 0.9),\n '& $icon': {\n color: theme.palette.error.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"success\"`. */\n outlinedSuccess: {\n color: getColor(theme.palette.success.main, 0.6),\n border: \"1px solid \".concat(theme.palette.success.main),\n '& $icon': {\n color: theme.palette.success.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"info\"`. */\n outlinedInfo: {\n color: getColor(theme.palette.info.main, 0.6),\n border: \"1px solid \".concat(theme.palette.info.main),\n '& $icon': {\n color: theme.palette.info.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"warning\"`. */\n outlinedWarning: {\n color: getColor(theme.palette.warning.main, 0.6),\n border: \"1px solid \".concat(theme.palette.warning.main),\n '& $icon': {\n color: theme.palette.warning.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"error\"`. */\n outlinedError: {\n color: getColor(theme.palette.error.main, 0.6),\n border: \"1px solid \".concat(theme.palette.error.main),\n '& $icon': {\n color: theme.palette.error.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"success\"`. */\n filledSuccess: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.success.main\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"info\"`. */\n filledInfo: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.info.main\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"warning\"`. */\n filledWarning: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.warning.main\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"error\"`. */\n filledError: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.error.main\n },\n\n /* Styles applied to the icon wrapper element. */\n icon: {\n marginRight: 12,\n padding: '7px 0',\n display: 'flex',\n fontSize: 22,\n opacity: 0.9\n },\n\n /* Styles applied to the message wrapper element. */\n message: {\n padding: '8px 0'\n },\n\n /* Styles applied to the action wrapper element if `action` is provided. */\n action: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8\n }\n };\n};\nvar defaultIconMapping = {\n success: /*#__PURE__*/React.createElement(SuccessOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n warning: /*#__PURE__*/React.createElement(ReportProblemOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n error: /*#__PURE__*/React.createElement(ErrorOutlineIcon, {\n fontSize: \"inherit\"\n }),\n info: /*#__PURE__*/React.createElement(InfoOutlinedIcon, {\n fontSize: \"inherit\"\n })\n};\n\nvar _ref = /*#__PURE__*/React.createElement(CloseIcon, {\n fontSize: \"small\"\n});\n\nvar Alert = /*#__PURE__*/React.forwardRef(function Alert(props, ref) {\n var action = props.action,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$closeText = props.closeText,\n closeText = _props$closeText === void 0 ? 'Close' : _props$closeText,\n color = props.color,\n icon = props.icon,\n _props$iconMapping = props.iconMapping,\n iconMapping = _props$iconMapping === void 0 ? defaultIconMapping : _props$iconMapping,\n onClose = props.onClose,\n _props$role = props.role,\n role = _props$role === void 0 ? 'alert' : _props$role,\n _props$severity = props.severity,\n severity = _props$severity === void 0 ? 'success' : _props$severity,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'standard' : _props$variant,\n other = _objectWithoutProperties(props, [\"action\", \"children\", \"classes\", \"className\", \"closeText\", \"color\", \"icon\", \"iconMapping\", \"onClose\", \"role\", \"severity\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n role: role,\n square: true,\n elevation: 0,\n className: clsx(classes.root, classes[\"\".concat(variant).concat(capitalize(color || severity))], className),\n ref: ref\n }, other), icon !== false ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.icon\n }, icon || iconMapping[severity] || defaultIconMapping[severity]) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: classes.message\n }, children), action != null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.action\n }, action) : null, action == null && onClose ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.action\n }, /*#__PURE__*/React.createElement(IconButton, {\n size: \"small\",\n \"aria-label\": closeText,\n title: closeText,\n color: \"inherit\",\n onClick: onClose\n }, _ref)) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? Alert.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The action to display. It renders after the message, at the end of the alert.\n */\n action: PropTypes.node,\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Override the default label for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/guides/localization/).\n */\n closeText: PropTypes.string,\n\n /**\n * The main color for the alert. Unless provided, the value is taken from the `severity` prop.\n */\n color: PropTypes.oneOf(['error', 'info', 'success', 'warning']),\n\n /**\n * Override the icon displayed before the children.\n * Unless provided, the icon is mapped to the value of the `severity` prop.\n */\n icon: PropTypes.node,\n\n /**\n * The component maps the `severity` prop to a range of different icons,\n * for instance success to `<SuccessOutlined>`.\n * If you wish to change this mapping, you can provide your own.\n * Alternatively, you can use the `icon` prop to override the icon displayed.\n */\n iconMapping: PropTypes.shape({\n error: PropTypes.node,\n info: PropTypes.node,\n success: PropTypes.node,\n warning: PropTypes.node\n }),\n\n /**\n * Callback fired when the component requests to be closed.\n * When provided and no `action` prop is set, a close icon button is displayed that triggers the callback when clicked.\n *\n * @param {object} event The event source of the callback.\n */\n onClose: PropTypes.func,\n\n /**\n * The ARIA role attribute of the element.\n */\n role: PropTypes.string,\n\n /**\n * The severity of the alert. This defines the color and icon used.\n */\n severity: PropTypes.oneOf(['error', 'info', 'success', 'warning']),\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiAlert'\n})(Alert);","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"\n}), 'InfoOutlined');\n\nexports.default = _default;","import { jsxs, jsx } from 'react/jsx-runtime';\nimport Box from '@material-ui/core/Box';\nimport Divider from '@material-ui/core/Divider';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport ArrowIcon from '@material-ui/icons/ArrowForward';\nimport { Link } from '../../components/Link/Link.esm.js';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n maxWidth: \"fit-content\",\n padding: theme.spacing(2, 2, 2, 2.5)\n },\n boxTitle: {\n margin: 0,\n color: theme.palette.textSubtle\n },\n arrow: {\n color: theme.palette.textSubtle\n }\n }),\n { name: \"BackstageBottomLink\" }\n);\nfunction BottomLink(props) {\n const { link, title, onClick } = props;\n const classes = useStyles();\n return /* @__PURE__ */ jsxs(Box, { children: [\n /* @__PURE__ */ jsx(Divider, {}),\n /* @__PURE__ */ jsx(Link, { to: link, onClick, underline: \"none\", children: /* @__PURE__ */ jsxs(Box, { display: \"flex\", alignItems: \"center\", className: classes.root, children: [\n /* @__PURE__ */ jsx(Box, { className: classes.boxTitle, fontWeight: \"fontWeightBold\", m: 1, children: /* @__PURE__ */ jsx(Typography, { children: /* @__PURE__ */ jsx(\"strong\", { children: title }) }) }),\n /* @__PURE__ */ jsx(ArrowIcon, { className: classes.arrow })\n ] }) })\n ] });\n}\n\nexport { BottomLink };\n//# sourceMappingURL=BottomLink.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport Button$1 from '@material-ui/core/Button';\nimport { forwardRef } from 'react';\nimport { Link } from '../Link/Link.esm.js';\n\nconst LinkWrapper = forwardRef((props, ref) => /* @__PURE__ */ jsx(Link, { ref, ...props, color: \"initial\" }));\nconst LinkButton = forwardRef((props, ref) => /* @__PURE__ */ jsx(Button$1, { ref, component: LinkWrapper, ...props }));\nconst Button = LinkButton;\n\nexport { Button, LinkButton };\n//# sourceMappingURL=LinkButton.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport Typography from '@material-ui/core/Typography';\nimport { Component } from 'react';\nimport { LinkButton } from '../../components/LinkButton/LinkButton.esm.js';\nimport { ErrorPanel } from '../../components/ErrorPanel/ErrorPanel.esm.js';\nimport { coreComponentsTranslationRef } from '../../translation.esm.js';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst SlackLink = (props) => {\n const { slackChannel } = props;\n const { t } = useTranslationRef(coreComponentsTranslationRef);\n if (!slackChannel) {\n return null;\n } else if (typeof slackChannel === \"string\") {\n return /* @__PURE__ */ jsx(Typography, { children: t(\"errorBoundary.title\", { slackChannel }) });\n } else if (!slackChannel.href) {\n return /* @__PURE__ */ jsx(Typography, { children: t(\"errorBoundary.title\", {\n slackChannel: slackChannel.name\n }) });\n }\n return /* @__PURE__ */ jsx(LinkButton, { to: slackChannel.href, variant: \"contained\", children: slackChannel.name });\n};\nconst ErrorBoundary = class ErrorBoundary2 extends Component {\n constructor(props) {\n super(props);\n this.state = {\n error: void 0,\n errorInfo: void 0\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(`ErrorBoundary, error: ${error}`, { error, errorInfo });\n this.setState({ error, errorInfo });\n }\n render() {\n const { slackChannel, children } = this.props;\n const { error } = this.state;\n if (!error) {\n return children;\n }\n return /* @__PURE__ */ jsx(ErrorPanel, { title: \"Something Went Wrong\", error, children: /* @__PURE__ */ jsx(SlackLink, { slackChannel }) });\n }\n};\n\nexport { ErrorBoundary };\n//# sourceMappingURL=ErrorBoundary.esm.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport Divider from '@material-ui/core/Divider';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { BottomLink } from '../BottomLink/BottomLink.esm.js';\nimport { ErrorBoundary } from '../ErrorBoundary/ErrorBoundary.esm.js';\n\nconst useStyles = makeStyles(\n (theme) => ({\n noPadding: {\n padding: 0,\n \"&:last-child\": {\n paddingBottom: 0\n }\n },\n contentAlignBottom: {\n display: \"flex\",\n alignItems: \"self-end\"\n },\n header: {\n padding: theme.spacing(2, 2, 2, 2.5)\n },\n headerTitle: {\n fontWeight: theme.typography.fontWeightBold\n },\n headerSubheader: {\n paddingTop: theme.spacing(1)\n },\n headerAvatar: {},\n headerAction: {},\n headerContent: {},\n subheader: {\n display: \"flex\"\n }\n }),\n { name: \"BackstageInfoCard\" }\n);\nconst CardActionsTopRight = withStyles(\n (theme) => ({\n root: {\n display: \"inline-block\",\n padding: theme.spacing(8, 8, 0, 0),\n float: \"right\"\n }\n }),\n { name: \"BackstageInfoCardCardActionsTopRight\" }\n)(CardActions);\nconst VARIANT_STYLES = {\n card: {\n flex: {\n display: \"flex\",\n flexDirection: \"column\"\n },\n fullHeight: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\"\n },\n gridItem: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"calc(100% - 10px)\",\n // for pages without content header\n marginBottom: \"10px\",\n breakInside: \"avoid-page\",\n \"@media print\": {\n height: \"auto\"\n }\n }\n },\n cardContent: {\n fullHeight: {\n flex: 1\n },\n gridItem: {\n flex: 1\n }\n }\n};\nfunction InfoCard(props) {\n const {\n title,\n subheader,\n divider = true,\n deepLink,\n slackChannel,\n errorBoundaryProps,\n variant,\n alignContent = \"normal\",\n children,\n headerStyle,\n headerProps,\n icon,\n action,\n actionsClassName,\n actions,\n cardClassName,\n actionsTopRight,\n className,\n noPadding,\n titleTypographyProps,\n subheaderTypographyProps\n } = props;\n const classes = useStyles();\n let calculatedStyle = {};\n let calculatedCardStyle = {};\n if (variant) {\n const variants = variant.split(/[\\s]+/g);\n variants.forEach((name) => {\n calculatedStyle = {\n ...calculatedStyle,\n ...VARIANT_STYLES.card[name]\n };\n calculatedCardStyle = {\n ...calculatedCardStyle,\n ...VARIANT_STYLES.cardContent[name]\n };\n });\n }\n const cardSubTitle = () => {\n if (!subheader && !icon) {\n return null;\n }\n return /* @__PURE__ */ jsxs(\"div\", { \"data-testid\": \"info-card-subheader\", children: [\n subheader && /* @__PURE__ */ jsx(\"div\", { className: classes.subheader, children: subheader }),\n icon\n ] });\n };\n const errProps = errorBoundaryProps || (slackChannel ? { slackChannel } : {});\n return /* @__PURE__ */ jsx(Card, { style: calculatedStyle, className, children: /* @__PURE__ */ jsxs(ErrorBoundary, { ...errProps, children: [\n title && /* @__PURE__ */ jsx(\n CardHeader,\n {\n classes: {\n root: classNames(classes.header),\n title: classes.headerTitle,\n subheader: classes.headerSubheader,\n avatar: classes.headerAvatar,\n action: classes.headerAction,\n content: classes.headerContent\n },\n title,\n subheader: cardSubTitle(),\n action,\n style: { ...headerStyle },\n titleTypographyProps,\n subheaderTypographyProps,\n ...headerProps\n }\n ),\n actionsTopRight && /* @__PURE__ */ jsx(CardActionsTopRight, { children: actionsTopRight }),\n divider && /* @__PURE__ */ jsx(Divider, {}),\n /* @__PURE__ */ jsx(\n CardContent,\n {\n className: classNames(cardClassName, {\n [classes.noPadding]: noPadding,\n [classes.contentAlignBottom]: alignContent === \"bottom\"\n }),\n style: calculatedCardStyle,\n children\n }\n ),\n actions && /* @__PURE__ */ jsx(CardActions, { className: actionsClassName, children: actions }),\n deepLink && /* @__PURE__ */ jsx(BottomLink, { ...deepLink })\n ] }) });\n}\n\nexport { InfoCard };\n//# sourceMappingURL=InfoCard.esm.js.map\n"],"names":["_interopRequireDefault","_interopRequireWildcard","exports","React","_default","default","createElement","d","useAsync","fn","deps","_a","initialState","loading","lastCallId","useRef","isMounted","useMountedState","useState","state","set","callback","useCallback","args","_i","arguments","length","callId","current","prevState","__assign","apply","then","value","error","useAsyncFn","useEffect","Progress","props","theme","useTheme","isVisible","setIsVisible","handle","setTimeout","transitions","duration","short","clearTimeout","jsx","LinearProgress","Box","display","LazyOpenApiDefinition","lazy","m","OpenApiDefinition","OpenApiDefinitionWidget","validSubmitMethods","supportedSubmitMethods","map","method","toLocaleLowerCase","Suspense","fallback","children","r","e","t","f","n","Array","isArray","createSvgIcon","defaultIconMapping","success","SuccessOutlined","fontSize","warning","ReportProblemOutlined","ErrorOutline","info","InfoOutlined","_ref","Close","Alert","ref","action","classes","className","_props$closeText","closeText","color","icon","_props$iconMapping","iconMapping","onClose","_props$role","role","_props$severity","severity","_props$variant","variant","other","Paper","square","elevation","root","concat","capitalize","message","IconButton","size","title","onClick","withStyles","getColor","palette","type","darken","lighten","getBackgroundColor","typography","body2","borderRadius","shape","backgroundColor","padding","standardSuccess","main","standardInfo","standardWarning","standardError","outlinedSuccess","border","outlinedInfo","outlinedWarning","outlinedError","filledSuccess","fontWeight","fontWeightMedium","filledInfo","filledWarning","filledError","marginRight","opacity","alignItems","marginLeft","paddingLeft","name","useStyles","makeStyles","maxWidth","spacing","boxTitle","margin","textSubtle","arrow","BottomLink","link","jsxs","Divider","to","underline","Typography","A","LinkWrapper","forwardRef","LinkButton","Button","component","SlackLink","slackChannel","useTranslationRef","href","ErrorBoundary","Component","constructor","super","this","errorInfo","componentDidCatch","console","setState","render","noPadding","paddingBottom","contentAlignBottom","header","headerTitle","fontWeightBold","headerSubheader","paddingTop","headerAvatar","headerAction","headerContent","subheader","CardActionsTopRight","float","CardActions","VARIANT_STYLES","card","flex","flexDirection","fullHeight","height","gridItem","marginBottom","breakInside","cardContent","InfoCard","divider","deepLink","errorBoundaryProps","alignContent","headerStyle","headerProps","actionsClassName","actions","cardClassName","actionsTopRight","titleTypographyProps","subheaderTypographyProps","calculatedStyle","calculatedCardStyle","split","forEach","errProps","Card","style","CardHeader","avatar","content","CardContent"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[879],{72627:(e,n,t)=>{t.r(n),t.d(n,{ApiKeyApprovalPage:()=>u,ApiKeyDetailPage:()=>A,ApiProductDetailPage:()=>b,ApiProductsPage:()=>d,EntityKuadrantApiAccessCard:()=>m,EntityKuadrantApiApprovalTab:()=>y,EntityKuadrantApiKeyManagementTab:()=>c,EntityKuadrantApiKeysContent:()=>P,EntityKuadrantApiProductInfoContent:()=>s,EntityKuadrantApiProductOpenApiAlert:()=>K,KuadrantPage:()=>p,MyApiKeysPage:()=>l,kuadrantPlugin:()=>r});var a=t(22097);const o=(0,a.createRouteRef)({id:"kuadrant"}),i=(0,a.createSubRouteRef)({id:"kuadrant/resource",parent:o,path:"/:kind/:namespace/:name"}),r=(0,a.createPlugin)({id:"kuadrant",routes:{root:o,resource:i}}),p=r.provide((0,a.createRoutableExtension)({name:"KuadrantPage",component:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(369),t.e(4382),t.e(7076),t.e(5235),t.e(5010),t.e(8563),t.e(6422),t.e(5478),t.e(9634),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(8789),t.e(7005)]).then(t.bind(t,94251)).then(e=>e.ApiProductsPage),mountPoint:o})),d=r.provide((0,a.createRoutableExtension)({name:"ApiProductsPage",component:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(369),t.e(4382),t.e(7076),t.e(5235),t.e(5010),t.e(8563),t.e(6422),t.e(5478),t.e(9634),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(8789),t.e(7005)]).then(t.bind(t,94251)).then(e=>e.ApiProductsPage),mountPoint:o})),l=r.provide((0,a.createRoutableExtension)({name:"MyApiKeysPage",component:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(369),t.e(7076),t.e(5235),t.e(5010),t.e(8563),t.e(5478),t.e(9634),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(7270)]).then(t.bind(t,37270)).then(e=>e.MyApiKeysPage),mountPoint:o})),u=r.provide((0,a.createRoutableExtension)({name:"ApiKeyApprovalPage",component:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(369),t.e(4382),t.e(7076),t.e(5235),t.e(5010),t.e(8563),t.e(5478),t.e(9634),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(3976)]).then(t.bind(t,43976)).then(e=>e.ApiKeyApprovalPage),mountPoint:o})),m=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiAccessCard",component:{lazy:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(369),t.e(4382),t.e(2118),t.e(5478),t.e(9634),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(5427),t.e(5203)]).then(t.bind(t,60441)).then(e=>e.ApiAccessCard)}})),c=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiKeyManagementTab",component:{lazy:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(369),t.e(4382),t.e(7076),t.e(5235),t.e(5010),t.e(5478),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(5427),t.e(3650)]).then(t.bind(t,23650)).then(e=>e.ApiKeyManagementTab)}})),P=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiKeysContent",component:{lazy:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(369),t.e(4382),t.e(7076),t.e(5235),t.e(5010),t.e(5478),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(5427),t.e(3650)]).then(t.bind(t,23650)).then(e=>e.ApiKeyManagementTab)}})),s=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiProductInfoContent",component:{lazy:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4382),t.e(327),t.e(5478),t.e(9634),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(5427),t.e(3947),t.e(4447)]).then(t.bind(t,75453)).then(e=>e.ApiProductInfoCard)}})),A=r.provide((0,a.createRoutableExtension)({name:"ApiKeyDetailPage",component:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(7076),t.e(8563),t.e(5478),t.e(9634),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(2967)]).then(t.bind(t,72967)).then(e=>e.ApiKeyDetailPage),mountPoint:o})),y=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiApprovalTab",component:{lazy:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(369),t.e(4382),t.e(7076),t.e(5235),t.e(5010),t.e(5478),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(5427),t.e(6800)]).then(t.bind(t,46800)).then(e=>e.EntityApiApprovalTab)}})),K=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiProductOpenApiAlert",component:{lazy:()=>Promise.all([t.e(9400),t.e(2946),t.e(5478),t.e(9634),t.e(484),t.e(1942),t.e(7976),t.e(5427),t.e(6371)]).then(t.bind(t,36371)).then(e=>e.ApiProductOpenApiAlert)}})),b=r.provide((0,a.createRoutableExtension)({name:"ApiProductDetailPage",component:()=>Promise.all([t.e(9400),t.e(2946),t.e(2628),t.e(4611),t.e(369),t.e(4382),t.e(7076),t.e(5235),t.e(8563),t.e(8804),t.e(5478),t.e(9634),t.e(484),t.e(1942),t.e(5501),t.e(7976),t.e(8789),t.e(3947),t.e(7791)]).then(t.bind(t,57791)).then(e=>e.ApiProductDetailPage),mountPoint:o}))}}]);
2
+ //# sourceMappingURL=exposed-PluginRoot.8d8f0b09.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/exposed-PluginRoot.8d8f0b09.chunk.js","mappings":"qiBAEO,MAAMA,GAAeC,EAAAA,EAAAA,gBAAe,CACzCC,GAAI,aAGOC,GAAmBC,EAAAA,EAAAA,mBAAkB,CAChDF,GAAI,oBACJG,OAAQL,EACRM,KAAM,4BCDKC,GAAiBC,EAAAA,EAAAA,cAAa,CACzCN,GAAI,WACJO,OAAQ,CACNC,KAAMV,EACNW,SAAUR,KAIDS,EAAeL,EAAeM,SACzCC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,eACNC,UAAW,IACT,iOAAoCC,KAAKC,GAAKA,EAAEC,iBAClDC,WAAYpB,KAIHmB,EAAkBZ,EAAeM,SAC5CC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,kBACNC,UAAW,IACT,iOAAoCC,KAAKC,GAAKA,EAAEC,iBAClDC,WAAYpB,KAIHqB,EAAgBd,EAAeM,SAC1CC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,gBACNC,UAAW,IACT,mMAAqCC,KAAKC,GAAKA,EAAEG,eACnDD,WAAYpB,KAIHsB,EAAqBf,EAAeM,SAC/CC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,qBACNC,UAAW,IACT,6MAA0CC,KAAKC,GAAKA,EAAEI,oBACxDF,WAAYpB,KAIHuB,EAA8BhB,EAAeM,SACxDW,EAAAA,EAAAA,0BAAyB,CACvBT,KAAM,8BACNC,UAAW,CACTS,KAAM,IACJ,yLAAqCR,KAAKC,GAAKA,EAAEQ,mBAK5CC,EAAoCpB,EAAeM,SAC9DW,EAAAA,EAAAA,0BAAyB,CACvBT,KAAM,oCACNC,UAAW,CACTS,KAAM,IACJ,mMAA2CR,KAAKC,GAAKA,EAAEU,yBAMlDC,EAA+BtB,EAAeM,SACzDW,EAAAA,EAAAA,0BAAyB,CACvBT,KAAM,+BACNC,UAAW,CACTS,KAAM,IACJ,mMAA2CR,KAAKC,GAAKA,EAAEU,yBAKlDE,EAAsCvB,EAAeM,SAChEW,EAAAA,EAAAA,0BAAyB,CACvBT,KAAM,sCACNC,UAAW,CACTS,KAAM,IACJ,+KAA0CR,KAAKC,GAAKA,EAAEa,wBAKjDC,EAAmBzB,EAAeM,SAC7CC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,mBACNC,UAAW,IACT,sKAAwCC,KAAKC,GAAKA,EAAEc,kBACtDZ,WAAYpB,KAIHiC,EAA+B1B,EAAeM,SACzDW,EAAAA,EAAAA,0BAAyB,CACvBT,KAAM,+BACNC,UAAW,CACTS,KAAM,IACJ,mMAA4CR,KAAKC,GAAKA,EAAEgB,0BAKnDC,EAAuC5B,EAAeM,SACjEW,EAAAA,EAAAA,0BAAyB,CACvBT,KAAM,uCACNC,UAAW,CACTS,KAAM,IACJ,8HAA8CR,KAAKC,GAAKA,EAAEkB,4BAKrDC,EAAuB9B,EAAeM,SACjDC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,uBACNC,UAAW,IACT,iOAA4CC,KAAKC,GAAKA,EAAEmB,sBAC1DjB,WAAYpB,I","sources":["webpack://internal.plugin-kuadrant/./src/routes.ts","webpack://internal.plugin-kuadrant/./src/plugin.ts"],"sourcesContent":["import { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'kuadrant',\n});\n\nexport const resourceRouteRef = createSubRouteRef({\n id: 'kuadrant/resource',\n parent: rootRouteRef,\n path: '/:kind/:namespace/:name',\n});\n","import {\n createPlugin,\n createRoutableExtension,\n createComponentExtension,\n} from '@backstage/core-plugin-api';\n\nimport { rootRouteRef, resourceRouteRef } from './routes';\n\nexport const kuadrantPlugin = createPlugin({\n id: 'kuadrant',\n routes: {\n root: rootRouteRef,\n resource: resourceRouteRef,\n },\n});\n\nexport const KuadrantPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'KuadrantPage',\n component: () =>\n import('./components/KuadrantPage').then(m => m.ApiProductsPage),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const ApiProductsPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'ApiProductsPage',\n component: () =>\n import('./components/KuadrantPage').then(m => m.ApiProductsPage),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const MyApiKeysPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'MyApiKeysPage',\n component: () =>\n import('./components/MyApiKeysPage').then(m => m.MyApiKeysPage),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const ApiKeyApprovalPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'ApiKeyApprovalPage',\n component: () =>\n import('./components/ApiKeyApprovalPage').then(m => m.ApiKeyApprovalPage),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const EntityKuadrantApiAccessCard = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiAccessCard',\n component: {\n lazy: () =>\n import('./components/ApiAccessCard').then(m => m.ApiAccessCard),\n },\n }),\n);\n\nexport const EntityKuadrantApiKeyManagementTab = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiKeyManagementTab',\n component: {\n lazy: () =>\n import('./components/ApiKeyManagementTab').then(m => m.ApiKeyManagementTab),\n },\n }),\n);\n\n// entity content extension for api keys tab\nexport const EntityKuadrantApiKeysContent = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiKeysContent',\n component: {\n lazy: () =>\n import('./components/ApiKeyManagementTab').then(m => m.ApiKeyManagementTab),\n },\n }),\n);\n\nexport const EntityKuadrantApiProductInfoContent = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiProductInfoContent',\n component: {\n lazy: () =>\n import('./components/ApiProductInfoCard').then(m => m.ApiProductInfoCard),\n },\n }),\n);\n\nexport const ApiKeyDetailPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'ApiKeyDetailPage',\n component: () =>\n import('./components/ApiKeyDetailPage').then(m => m.ApiKeyDetailPage),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const EntityKuadrantApiApprovalTab = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiApprovalTab',\n component: {\n lazy: () =>\n import('./components/EntityApiApprovalTab').then(m => m.EntityApiApprovalTab),\n },\n }),\n);\n\nexport const EntityKuadrantApiProductOpenApiAlert = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiProductOpenApiAlert',\n component: {\n lazy: () =>\n import('./components/ApiProductOpenApiAlert').then(m => m.ApiProductOpenApiAlert),\n },\n }),\n);\n\nexport const ApiProductDetailPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'ApiProductDetailPage',\n component: () =>\n import('./components/ApiProductDetailPage').then(m => m.ApiProductDetailPage),\n mountPoint: rootRouteRef,\n }),\n);\n"],"names":["rootRouteRef","createRouteRef","id","resourceRouteRef","createSubRouteRef","parent","path","kuadrantPlugin","createPlugin","routes","root","resource","KuadrantPage","provide","createRoutableExtension","name","component","then","m","ApiProductsPage","mountPoint","MyApiKeysPage","ApiKeyApprovalPage","EntityKuadrantApiAccessCard","createComponentExtension","lazy","ApiAccessCard","EntityKuadrantApiKeyManagementTab","ApiKeyManagementTab","EntityKuadrantApiKeysContent","EntityKuadrantApiProductInfoContent","ApiProductInfoCard","ApiKeyDetailPage","EntityKuadrantApiApprovalTab","EntityApiApprovalTab","EntityKuadrantApiProductOpenApiAlert","ApiProductOpenApiAlert","ApiProductDetailPage"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kuadrant/kuadrant-backstage-plugin-frontend",
3
- "version": "0.0.2-dev-cd184fc",
3
+ "version": "0.0.2-dev-d2ba42b",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,43 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { Box, Tabs, Tab } from '@material-ui/core';
3
- import { Page, Header, SupportButton, Content } from '@backstage/core-components';
4
- import { PermissionGate } from '../PermissionGate/PermissionGate.esm.js';
5
- import { MyApiKeysTable } from '../MyApiKeysTable/MyApiKeysTable.esm.js';
6
- import { ApprovalQueueTable } from '../ApprovalQueueTable/ApprovalQueueTable.esm.js';
7
- import { kuadrantApiKeyReadOwnPermission, kuadrantApiKeyApprovePermission } from '../../permissions.esm.js';
8
- import { useKuadrantPermission } from '../../utils/permissions.esm.js';
9
-
10
- const ApiKeysContent = () => {
11
- const [selectedTab, setSelectedTab] = useState(0);
12
- const {
13
- allowed: canViewApprovalQueue,
14
- loading: approvalQueuePermissionLoading
15
- } = useKuadrantPermission(kuadrantApiKeyApprovePermission);
16
- const handleTabChange = (_event, newValue) => {
17
- setSelectedTab(newValue);
18
- };
19
- return /* @__PURE__ */ React.createElement(Page, { themeId: "tool" }, /* @__PURE__ */ React.createElement(Header, { title: "API Keys", subtitle: "API keys management for Kubernetes" }, /* @__PURE__ */ React.createElement(SupportButton, null, "Manage your API keys and access requests")), /* @__PURE__ */ React.createElement(Content, null, /* @__PURE__ */ React.createElement(Box, { mb: 2 }, /* @__PURE__ */ React.createElement(
20
- Tabs,
21
- {
22
- value: selectedTab,
23
- onChange: handleTabChange,
24
- indicatorColor: "primary",
25
- textColor: "primary"
26
- },
27
- /* @__PURE__ */ React.createElement(Tab, { label: "My API keys", "data-testid": "my-api-keys-tab" }),
28
- !approvalQueuePermissionLoading && canViewApprovalQueue && /* @__PURE__ */ React.createElement(Tab, { label: "API keys approval", "data-testid": "api-keys-approval-tab" })
29
- )), selectedTab === 0 && /* @__PURE__ */ React.createElement(MyApiKeysTable, null), selectedTab === 1 && canViewApprovalQueue && /* @__PURE__ */ React.createElement(ApprovalQueueTable, null)));
30
- };
31
- const ApiKeysPage = () => {
32
- return /* @__PURE__ */ React.createElement(
33
- PermissionGate,
34
- {
35
- permission: kuadrantApiKeyReadOwnPermission,
36
- errorMessage: "you don't have permission to view the API Keys page"
37
- },
38
- /* @__PURE__ */ React.createElement(ApiKeysContent, null)
39
- );
40
- };
41
-
42
- export { ApiKeysPage };
43
- //# sourceMappingURL=ApiKeysPage.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApiKeysPage.esm.js","sources":["../../../src/components/ApiKeysPage/ApiKeysPage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Box, Tabs, Tab } from '@material-ui/core';\nimport {\n Header,\n Page,\n Content,\n SupportButton,\n} from '@backstage/core-components';\nimport { PermissionGate } from '../PermissionGate';\nimport { MyApiKeysTable } from '../MyApiKeysTable';\nimport { ApprovalQueueTable } from '../ApprovalQueueTable';\nimport {\n kuadrantApiKeyReadOwnPermission,\n kuadrantApiKeyApprovePermission,\n} from '../../permissions';\nimport { useKuadrantPermission } from '../../utils/permissions';\n\nconst ApiKeysContent = () => {\n const [selectedTab, setSelectedTab] = useState(0);\n\n const {\n allowed: canViewApprovalQueue,\n loading: approvalQueuePermissionLoading,\n } = useKuadrantPermission(kuadrantApiKeyApprovePermission);\n\n const handleTabChange = (_event: React.ChangeEvent<{}>, newValue: number) => {\n setSelectedTab(newValue);\n };\n\n return (\n <Page themeId=\"tool\">\n <Header title=\"API Keys\" subtitle=\"API keys management for Kubernetes\">\n <SupportButton>Manage your API keys and access requests</SupportButton>\n </Header>\n <Content>\n <Box mb={2}>\n <Tabs\n value={selectedTab}\n onChange={handleTabChange}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n <Tab label=\"My API keys\" data-testid=\"my-api-keys-tab\" />\n {!approvalQueuePermissionLoading && canViewApprovalQueue && (\n <Tab label=\"API keys approval\" data-testid=\"api-keys-approval-tab\" />\n )}\n </Tabs>\n </Box>\n\n {selectedTab === 0 && <MyApiKeysTable />}\n {selectedTab === 1 && canViewApprovalQueue && <ApprovalQueueTable />}\n </Content>\n </Page>\n );\n};\n\nexport const ApiKeysPage = () => {\n return (\n <PermissionGate\n permission={kuadrantApiKeyReadOwnPermission}\n errorMessage=\"you don't have permission to view the API Keys page\"\n >\n <ApiKeysContent />\n </PermissionGate>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAiBA,MAAM,iBAAiB,MAAM;AAC3B,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,CAAC,CAAA;AAEhD,EAAM,MAAA;AAAA,IACJ,OAAS,EAAA,oBAAA;AAAA,IACT,OAAS,EAAA;AAAA,GACX,GAAI,sBAAsB,+BAA+B,CAAA;AAEzD,EAAM,MAAA,eAAA,GAAkB,CAAC,MAAA,EAA+B,QAAqB,KAAA;AAC3E,IAAA,cAAA,CAAe,QAAQ,CAAA;AAAA,GACzB;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,OAAQ,EAAA,MAAA,EAAA,sCACX,MAAO,EAAA,EAAA,KAAA,EAAM,YAAW,QAAS,EAAA,oCAAA,EAAA,sCAC/B,aAAc,EAAA,IAAA,EAAA,0CAAwC,CACzD,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,+BACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,IAAI,CACP,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,WAAA;AAAA,MACP,QAAU,EAAA,eAAA;AAAA,MACV,cAAe,EAAA,SAAA;AAAA,MACf,SAAU,EAAA;AAAA,KAAA;AAAA,oBAET,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,KAAM,EAAA,aAAA,EAAc,eAAY,iBAAkB,EAAA,CAAA;AAAA,IACtD,CAAC,kCAAkC,oBAClC,oBAAA,KAAA,CAAA,aAAA,CAAC,OAAI,KAAM,EAAA,mBAAA,EAAoB,eAAY,uBAAwB,EAAA;AAAA,GAGzE,CAAA,EAEC,WAAgB,KAAA,CAAA,oBAAM,KAAA,CAAA,aAAA,CAAA,cAAA,EAAA,IAAe,CACrC,EAAA,WAAA,KAAgB,CAAK,IAAA,oBAAA,oBAAyB,KAAA,CAAA,aAAA,CAAA,kBAAA,EAAA,IAAmB,CACpE,CACF,CAAA;AAEJ,CAAA;AAEO,MAAM,cAAc,MAAM;AAC/B,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA,+BAAA;AAAA,MACZ,YAAa,EAAA;AAAA,KAAA;AAAA,wCAEZ,cAAe,EAAA,IAAA;AAAA,GAClB;AAEJ;;;;"}
@@ -1,2 +0,0 @@
1
- export { ApiKeysPage } from './ApiKeysPage.esm.js';
2
- //# sourceMappingURL=index.esm.js.map
@@ -1,2 +0,0 @@
1
- __load_plugin_entry__("internal.plugin-kuadrant",(()=>{"use strict";var e,h,a,g,t,i,l,r,n,s,_,c,u,o,f,d,y,x,b,p,m,v={63198:(e,h,a)=>{var g={PluginRoot:()=>a.e(879).then(()=>()=>a(72627)),KuadrantPage:()=>a.e(879).then(()=>()=>a(72627)),EntityKuadrantApiAccessCard:()=>a.e(879).then(()=>()=>a(72627)),EntityKuadrantApiKeyManagementTab:()=>a.e(879).then(()=>()=>a(72627)),EntityKuadrantApiKeysContent:()=>a.e(879).then(()=>()=>a(72627)),EntityKuadrantApiProductInfoContent:()=>a.e(879).then(()=>()=>a(72627))},t=(e,h)=>(a.R=h,h=a.o(g,e)?g[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),a.R=void 0,h),i=(e,h)=>{if(a.S){var g="default",t=a.S[g];if(t&&t!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return a.S[g]=e,a.I(g,h)}};a.d(h,{get:()=>t,init:()=>i})}},k={};function P(e){var h=k[e];if(void 0!==h)return h.exports;var a=k[e]={id:e,loaded:!1,exports:{}};return v[e].call(a.exports,a,a.exports,P),a.loaded=!0,a.exports}return P.m=v,P.c=k,P.n=e=>{var h=e&&e.__esModule?()=>e.default:()=>e;return P.d(h,{a:h}),h},h=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,P.t=function(a,g){if(1&g&&(a=this(a)),8&g)return a;if("object"==typeof a&&a){if(4&g&&a.__esModule)return a;if(16&g&&"function"==typeof a.then)return a}var t=Object.create(null);P.r(t);var i={};e=e||[null,h({}),h([]),h(h)];for(var l=2&g&&a;("object"==typeof l||"function"==typeof l)&&!~e.indexOf(l);l=h(l))Object.getOwnPropertyNames(l).forEach(e=>i[e]=()=>a[e]);return i.default=()=>a,P.d(t,i),t},P.d=(e,h)=>{for(var a in h)P.o(h,a)&&!P.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:h[a]})},P.f={},P.e=e=>Promise.all(Object.keys(P.f).reduce((h,a)=>(P.f[a](e,h),h),[])),P.u=e=>"static/"+({51:"react-syntax-highlighter_languages_highlight_prolog",200:"react-syntax-highlighter_languages_highlight_mel",206:"react-syntax-highlighter_languages_highlight_gml",371:"react-syntax-highlighter_languages_highlight_excel",456:"react-syntax-highlighter_languages_highlight_roboconf",460:"react-syntax-highlighter_languages_highlight_avrasm",464:"react-syntax-highlighter_languages_highlight_shell",557:"react-syntax-highlighter_languages_highlight_oneC",579:"react-syntax-highlighter_languages_highlight_vbnet",634:"react-syntax-highlighter_languages_highlight_scilab",879:"exposed-PluginRoot",927:"react-syntax-highlighter_languages_highlight_javascript",946:"react-syntax-highlighter_languages_highlight_clojure",985:"react-syntax-highlighter_languages_highlight_monkey",1062:"react-syntax-highlighter_languages_highlight_nim",1084:"react-syntax-highlighter_languages_highlight_aspectj",1099:"react-syntax-highlighter_languages_highlight_ebnf",1173:"react-syntax-highlighter_languages_highlight_autohotkey",1177:"react-syntax-highlighter_languages_highlight_profile",1214:"react-syntax-highlighter_languages_highlight_properties",1276:"react-syntax-highlighter_languages_highlight_phpTemplate",1325:"react-syntax-highlighter_languages_highlight_actionscript",1352:"react-syntax-highlighter_languages_highlight_fortran",1362:"react-syntax-highlighter_languages_highlight_mathematica",1418:"react-syntax-highlighter_languages_highlight_pony",1441:"react-syntax-highlighter_languages_highlight_coq",1461:"react-syntax-highlighter_languages_highlight_livescript",1489:"react-syntax-highlighter_languages_highlight_reasonml",1496:"react-syntax-highlighter_languages_highlight_lua",1522:"react-syntax-highlighter_languages_highlight_dust",1679:"react-syntax-highlighter_languages_highlight_scheme",1694:"react-syntax-highlighter_languages_highlight_accesslog",1727:"react-syntax-highlighter_languages_highlight_oxygene",1750:"react-syntax-highlighter_languages_highlight_makefile",1828:"react-syntax-highlighter_languages_highlight_dockerfile",1895:"react-syntax-highlighter_languages_highlight_pythonRepl",1956:"react-syntax-highlighter_languages_highlight_puppet",1961:"react-syntax-highlighter_languages_highlight_stan",1972:"react-syntax-highlighter_languages_highlight_fsharp",2007:"react-syntax-highlighter_languages_highlight_css",2064:"react-syntax-highlighter_languages_highlight_vhdl",2108:"react-syntax-highlighter_languages_highlight_cLike",2180:"react-syntax-highlighter_languages_highlight_sqf",2234:"react-syntax-highlighter_languages_highlight_lisp",2267:"react-syntax-highlighter_languages_highlight_maxima",2346:"react-syntax-highlighter_languages_highlight_d",2362:"react-syntax-highlighter_languages_highlight_xquery",2378:"react-syntax-highlighter_languages_highlight_parser3",2383:"react-syntax-highlighter_languages_highlight_crmsh",2438:"react-syntax-highlighter_languages_highlight_haxe",2488:"react-syntax-highlighter_languages_highlight_verilog",2496:"react-syntax-highlighter_languages_highlight_erlangRepl",2512:"react-syntax-highlighter_languages_highlight_stylus",2516:"react-syntax-highlighter_languages_highlight_apache",2665:"react-syntax-highlighter_languages_highlight_powershell",2693:"react-syntax-highlighter_languages_highlight_tap",2727:"react-syntax-highlighter_languages_highlight_q",2743:"react-syntax-highlighter_languages_highlight_asciidoc",2762:"react-syntax-highlighter_languages_highlight_haskell",2795:"react-syntax-highlighter_languages_highlight_dns",2871:"react-syntax-highlighter_languages_highlight_typescript",2882:"react-syntax-highlighter_languages_highlight_sml",2979:"react-syntax-highlighter_languages_highlight_plaintext",2981:"react-syntax-highlighter_languages_highlight_ruleslanguage",2983:"react-syntax-highlighter_languages_highlight_golo",3146:"react-syntax-highlighter_languages_highlight_purebasic",3193:"react-syntax-highlighter_languages_highlight_xml",3299:"react-syntax-highlighter_languages_highlight_fix",3357:"react-syntax-highlighter_languages_highlight_x86asm",3384:"react-syntax-highlighter_languages_highlight_ini",3418:"react-syntax-highlighter_languages_highlight_ruby",3419:"react-syntax-highlighter_languages_highlight_nix",3487:"react-syntax-highlighter_languages_highlight_mipsasm",3500:"react-syntax-highlighter_languages_highlight_autoit",3540:"react-syntax-highlighter_languages_highlight_moonscript",3562:"react-syntax-highlighter_languages_highlight_gams",3580:"react-syntax-highlighter_languages_highlight_csp",3607:"react-syntax-highlighter_languages_highlight_abnf",3623:"react-syntax-highlighter_languages_highlight_yaml",3722:"react-syntax-highlighter_languages_highlight_latex",3736:"react-syntax-highlighter_languages_highlight_json",3811:"react-syntax-highlighter_languages_highlight_erb",3885:"react-syntax-highlighter_languages_highlight_stata",3923:"react-syntax-highlighter_languages_highlight_applescript",3988:"react-syntax-highlighter_languages_highlight_vala",4014:"react-syntax-highlighter_languages_highlight_scss",4075:"react-syntax-highlighter_languages_highlight_hsp",4110:"react-syntax-highlighter_languages_highlight_tp",4135:"react-syntax-highlighter_languages_highlight_mizar",4282:"react-syntax-highlighter_languages_highlight_livecodeserver",4300:"react-syntax-highlighter_languages_highlight_r",4342:"react-syntax-highlighter_languages_highlight_php",4383:"react-syntax-highlighter_languages_highlight_dsconfig",4436:"react-syntax-highlighter_languages_highlight_zephir",4446:"react-syntax-highlighter_languages_highlight_leaf",4493:"react-syntax-highlighter_languages_highlight_gauss",4575:"react-syntax-highlighter_languages_highlight_processing",4635:"react-syntax-highlighter_languages_highlight_jbossCli",4733:"react-syntax-highlighter_languages_highlight_llvm",4835:"react-syntax-highlighter_languages_highlight_cos",4931:"react-syntax-highlighter_languages_highlight_step21",4956:"react-syntax-highlighter_languages_highlight_angelscript",4971:"react-syntax-highlighter_languages_highlight_lsl",5034:"react-syntax-highlighter_languages_highlight_ada",5051:"react-syntax-highlighter_languages_highlight_coffeescript",5099:"react-syntax-highlighter_languages_highlight_nsis",5123:"react-syntax-highlighter_languages_highlight_erlang",5189:"react-syntax-highlighter_languages_highlight_dts",5251:"react-syntax-highlighter_languages_highlight_pgsql",5253:"react-syntax-highlighter_languages_highlight_clojureRepl",5286:"react-syntax-highlighter_languages_highlight_nginx",5446:"react-syntax-highlighter_languages_highlight_ocaml",5565:"react-syntax-highlighter_languages_highlight_kotlin",5613:"react-syntax-highlighter_languages_highlight_rib",5664:"react-syntax-highlighter_languages_highlight_dos",5773:"react-syntax-highlighter_languages_highlight_mojolicious",5813:"react-syntax-highlighter_languages_highlight_less",5819:"react-syntax-highlighter_languages_highlight_gradle",5868:"react-syntax-highlighter_languages_highlight_inform7",5900:"react-syntax-highlighter_languages_highlight_lasso",6057:"react-syntax-highlighter_languages_highlight_sqlMore",6152:"react-syntax-highlighter_languages_highlight_vbscriptHtml",6161:"react-syntax-highlighter_languages_highlight_clean",6177:"react-syntax-highlighter_languages_highlight_taggerscript",6195:"react-syntax-highlighter_languages_highlight_ldif",6228:"react-syntax-highlighter_languages_highlight_rust",6267:"react-syntax-highlighter_languages_highlight_swift",6354:"react-syntax-highlighter_languages_highlight_java",6501:"react-syntax-highlighter_languages_highlight_armasm",6512:"react-syntax-highlighter_languages_highlight_scala",6542:"react-syntax-highlighter_languages_highlight_vim",6555:"react-syntax-highlighter_languages_highlight_openscad",6573:"react-syntax-highlighter_languages_highlight_cpp",6780:"react-syntax-highlighter_languages_highlight_qml",6835:"react-syntax-highlighter_languages_highlight_brainfuck",6848:"react-syntax-highlighter_languages_highlight_crystal",6924:"react-syntax-highlighter_languages_highlight_isbl",6977:"react-syntax-highlighter_languages_highlight_rsl",6986:"react-syntax-highlighter_languages_highlight_capnproto",7048:"react-syntax-highlighter_languages_highlight_gherkin",7079:"react-syntax-highlighter_languages_highlight_diff",7131:"react-syntax-highlighter_languages_highlight_protobuf",7209:"react-syntax-highlighter_languages_highlight_perl",7247:"react-syntax-highlighter_languages_highlight_cmake",7254:"react-syntax-highlighter_languages_highlight_subunit",7351:"react-syntax-highlighter_languages_highlight_elixir",7401:"react-syntax-highlighter_languages_highlight_sas",7406:"react-syntax-highlighter_languages_highlight_sql",7439:"react-syntax-highlighter_languages_highlight_flix",7533:"react-syntax-highlighter_languages_highlight_awk",7572:"react-syntax-highlighter_languages_highlight_basic",7764:"react-syntax-highlighter_languages_highlight_go",7776:"react-syntax-highlighter_languages_highlight_haml",7794:"react-syntax-highlighter_languages_highlight_http",7818:"react-syntax-highlighter_languages_highlight_arduino",7879:"react-syntax-highlighter_languages_highlight_csharp",7934:"react-syntax-highlighter_languages_highlight_glsl",7959:"react-syntax-highlighter_languages_highlight_htmlbars",8001:"react-syntax-highlighter_languages_highlight_matlab",8030:"react-syntax-highlighter_languages_highlight_handlebars",8058:"react-syntax-highlighter_languages_highlight_n1ql",8078:"react-syntax-highlighter_languages_highlight_delphi",8138:"react-syntax-highlighter_languages_highlight_elm",8140:"react-syntax-highlighter_languages_highlight_pf",8216:"react-syntax-highlighter_languages_highlight_bnf",8217:"react-syntax-highlighter_languages_highlight_twig",8331:"react-syntax-highlighter_languages_highlight_thrift",8338:"react-syntax-highlighter_languages_highlight_objectivec",8549:"react-syntax-highlighter_languages_highlight_c",8595:"react-syntax-highlighter_languages_highlight_hy",8705:"react-syntax-highlighter_languages_highlight_nodeRepl",8725:"react-syntax-highlighter_languages_highlight_smalltalk",8727:"react-syntax-highlighter/lowlight-import",8753:"react-syntax-highlighter_languages_highlight_mercury",8755:"react-syntax-highlighter_languages_highlight_tcl",8763:"react-syntax-highlighter_languages_highlight_routeros",8833:"react-syntax-highlighter_languages_highlight_markdown",8874:"react-syntax-highlighter_languages_highlight_smali",8903:"react-syntax-highlighter_languages_highlight_axapta",8904:"react-syntax-highlighter_languages_highlight_python",8948:"react-syntax-highlighter_languages_highlight_groovy",9078:"react-syntax-highlighter_languages_highlight_irpf90",9118:"react-syntax-highlighter_languages_highlight_juliaRepl",9139:"react-syntax-highlighter_languages_highlight_django",9162:"react-syntax-highlighter_languages_highlight_ceylon",9175:"react-syntax-highlighter_languages_highlight_vbscript",9229:"react-syntax-highlighter_languages_highlight_julia",9265:"react-syntax-highlighter_languages_highlight_dart",9406:"react-syntax-highlighter_languages_highlight_cal",9612:"react-syntax-highlighter_languages_highlight_bash",9702:"react-syntax-highlighter_languages_highlight_gcode",9726:"react-syntax-highlighter_languages_highlight_xl",9882:"react-syntax-highlighter_languages_highlight_arcade"}[e]||e)+"."+{51:"be0fdf0c",200:"5251fe1a",206:"2347c999",327:"a9a99299",371:"2f5c76b9",441:"f708f1e0",456:"47518214",460:"6381890e",464:"9bbc16eb",501:"87de76da",557:"362a3b0a",579:"21c190ed",634:"bb9cc730",635:"e030b18a",879:"55777e36",927:"b0ad82d3",946:"e3fcc98c",985:"5f60f06d",1062:"17afaed1",1084:"35f221e8",1085:"d17e689a",1099:"a34b6944",1173:"614c5248",1177:"615fa721",1214:"60f97895",1276:"2bd36dc7",1325:"78db0238",1352:"38ec3d00",1362:"d8631b37",1418:"1961f69f",1441:"6b156852",1461:"3ece3068",1489:"a5a73a29",1496:"52f73c98",1522:"b30d0c38",1645:"db086648",1679:"508b5846",1694:"bd112f1a",1727:"ea742315",1750:"cad796c9",1828:"2c5fdf55",1895:"feb72aed",1956:"ee3f80da",1961:"17155e77",1972:"2ba37c00",2007:"2cc312ae",2064:"dea9db6c",2108:"f884fdc0",2180:"43421810",2233:"bf0c10d7",2234:"1cb2f675",2267:"f1f17544",2346:"bf4f2b44",2362:"353780d4",2378:"706a4bd6",2383:"58c4cb07",2438:"e2543cc2",2488:"e32adbeb",2496:"0d7f4890",2512:"cde06cf5",2516:"aa86d495",2628:"20156dc1",2665:"7bd31b3a",2693:"402e473f",2727:"989943de",2743:"4b40a3f9",2762:"bbd3c104",2795:"6d79126a",2821:"972ae33b",2822:"27a4ac5b",2871:"cf576f17",2882:"0e45c1cf",2946:"a35243f1",2952:"b3c7e41c",2967:"65c51af8",2979:"25f8d292",2981:"038504d0",2983:"eaa5e2bf",3007:"bffc9924",3091:"9a74ea5f",3144:"6f99ccee",3146:"08443005",3193:"ee14d6a4",3299:"5ee62733",3357:"217c56f0",3384:"d9d4ed7e",3418:"d84064e5",3419:"245f31b6",3487:"f5bc5b04",3500:"a06c1c62",3504:"1c2f2e54",3540:"443301b3",3562:"a45eb030",3580:"7fc6f9a3",3607:"bb6a8626",3623:"2aae489e",3650:"ee76eba9",3657:"882640ca",3722:"b4bb9102",3736:"d934b52b",3811:"4ac917b8",3885:"fe81a7fc",3923:"ddf703d6",3947:"7458971d",3954:"12dd8006",3984:"647ef00c",3988:"843d9bc4",4014:"bec19089",4026:"d652a7a1",4041:"29923ad9",4075:"5d714528",4093:"ee6f0452",4110:"0f4ff415",4135:"9b39cf3b",4282:"f624f22d",4300:"8540ccea",4342:"ade4c6c4",4382:"a7363415",4383:"c3457b50",4436:"fc94a148",4446:"92519810",4491:"83052809",4493:"cceeafb0",4570:"8b9f98d7",4575:"8d1f48c5",4611:"0d064cdf",4614:"23f2a85b",4635:"1ff533ef",4651:"c85cecc4",4682:"75f17114",4733:"f32d41e6",4835:"78d69dee",4931:"a431b2db",4935:"e14465ff",4956:"f9816c44",4971:"b6519e02",5010:"0cd6c959",5034:"b0d90871",5051:"3bc87b5b",5099:"4934a8e8",5123:"501777c7",5189:"8fd3703c",5203:"b654e8e0",5235:"2a59dc45",5251:"5b0d21b9",5253:"e6dbc3b4",5286:"630147e0",5446:"0e42541e",5453:"ecdee66d",5565:"c5eaa6f5",5613:"dc8afdf1",5664:"1ede6e37",5773:"0cf721ff",5813:"cc574d49",5819:"72fdf84d",5868:"78be038f",5900:"8d4054e7",6038:"63d1f832",6057:"d69b1825",6152:"42eb54af",6161:"97b48014",6177:"695a2547",6195:"74045e43",6228:"7e26e901",6267:"7d33a4a9",6354:"e04d1c07",6371:"d45f37cc",6501:"4bfb8996",6512:"a4629d0a",6542:"e82f126f",6555:"4a460eaf",6573:"ff6a8f78",6763:"d6cd937f",6780:"8f3a0af6",6800:"20f46859",6835:"31bde7c5",6840:"1653e6b0",6848:"3a36e63f",6872:"7ef4ed23",6924:"abe269c1",6977:"909f2a27",6986:"79dfc31f",7048:"e740620a",7076:"8745d395",7079:"a8373241",7131:"0cd375bc",7164:"5dc4bc72",7209:"ae8475a2",7247:"cb9028b5",7254:"c5ac3a0a",7351:"1e79c9b9",7367:"62c9669e",7401:"94075d6a",7406:"651dcc8d",7439:"972cc801",7533:"dfc9b0b0",7572:"ec232b8a",7764:"abc0a144",7776:"d698757b",7791:"ac1ac509",7794:"a55e168b",7818:"9b9ce313",7879:"ea98c6fb",7934:"bb5b0086",7959:"e57e3c89",8001:"114e44eb",8030:"75c0a89b",8058:"c54b2c4a",8078:"588e191d",8083:"4763f88b",8138:"8a488b19",8140:"5052a768",8172:"cbe1f2c4",8216:"84e0a497",8217:"5cb0fdfc",8331:"ecb04f2a",8338:"2d204375",8549:"b43ce116",8595:"c60db034",8705:"5b05cdf2",8725:"53da57ca",8727:"2bd53873",8753:"fa8fdac0",8755:"79af288c",8763:"c0bcd6ce",8799:"52bbeef1",8833:"1489792c",8874:"4fa5afdd",8903:"80d14346",8904:"9e4100ae",8948:"ecd68b19",9078:"25afcc29",9118:"e3bfcde8",9139:"8fb85401",9162:"ab3b1c28",9175:"4703f4c5",9229:"f43a39d0",9265:"0a0b12af",9316:"d9f2fe18",9400:"df4a7fb5",9406:"781cc6c6",9612:"53f7c730",9655:"db0c82b2",9702:"378d3296",9710:"7ec34777",9726:"7cff3cbb",9738:"b037daf3",9882:"70910623"}[e]+".chunk.js",P.miniCssF=e=>"static/"+e+"."+e+".3597955d.css",P.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),P.o=(e,h)=>Object.prototype.hasOwnProperty.call(e,h),a={},g="internal.plugin-kuadrant:",P.l=(e,h,t,i)=>{if(a[e])a[e].push(h);else{var l,r;if(void 0!==t)for(var n=document.getElementsByTagName("script"),s=0;s<n.length;s++){var _=n[s];if(_.getAttribute("src")==e||_.getAttribute("data-webpack")==g+t){l=_;break}}l||(r=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,P.nc&&l.setAttribute("nonce",P.nc),l.setAttribute("data-webpack",g+t),l.src=e),a[e]=[h];var c=(h,g)=>{l.onerror=l.onload=null,clearTimeout(u);var t=a[e];if(delete a[e],l.parentNode&&l.parentNode.removeChild(l),t&&t.forEach(e=>e(g)),h)return h(g)},u=setTimeout(c.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=c.bind(null,l.onerror),l.onload=c.bind(null,l.onload),r&&document.head.appendChild(l)}},P.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},P.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{P.S={};var e={},h={};P.I=(a,g)=>{g||(g=[]);var t=h[a];if(t||(t=h[a]={}),!(g.indexOf(t)>=0)){if(g.push(t),e[a])return e[a];P.o(P.S,a)||(P.S[a]={});var i=P.S[a],l="internal.plugin-kuadrant",r=(e,h,a,g)=>{var t=i[e]=i[e]||{},r=t[h];(!r||!r.loaded&&(!g!=!r.eager?g:l>r.from))&&(t[h]={get:a,from:l,eager:!!g})},n=[];return"default"===a&&(r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([P.e(9655),P.e(5478),P.e(9634),P.e(5427),P.e(2233)]).then(()=>()=>P(4614))),r("@backstage/core-plugin-api","1.12.1",()=>Promise.all([P.e(9655),P.e(3504),P.e(5478),P.e(9634),P.e(5427),P.e(5501)]).then(()=>()=>P(23504))),r("@backstage/frontend-plugin-api","0.12.0",()=>Promise.all([P.e(9655),P.e(9316),P.e(4935),P.e(5478),P.e(9634),P.e(5427),P.e(1723)]).then(()=>()=>P(64935))),r("@backstage/frontend-plugin-api","0.13.3",()=>Promise.all([P.e(9655),P.e(9316),P.e(9738),P.e(5478),P.e(9634),P.e(5427),P.e(5501),P.e(1085)]).then(()=>()=>P(19738))),r("@backstage/version-bridge","1.0.11",()=>Promise.all([P.e(5478),P.e(2822)]).then(()=>()=>P(12822))),r("@emotion/cache","11.14.0",()=>P.e(7164).then(()=>()=>P(67164))),r("@emotion/react","11.14.0",()=>Promise.all([P.e(5478),P.e(6322),P.e(3657)]).then(()=>()=>P(53657))),r("@material-ui/core/styles","4.12.4",()=>Promise.all([P.e(9400),P.e(5478),P.e(1942),P.e(4491)]).then(()=>()=>P(64491))),r("@material-ui/styles","4.11.5",()=>Promise.all([P.e(4570),P.e(5478),P.e(3007)]).then(()=>()=>P(94570))),r("@mui/material","5.18.0",()=>Promise.all([P.e(3954),P.e(8083),P.e(5478),P.e(484),P.e(9096),P.e(4994)]).then(()=>()=>P(10464))),r("@mui/private-theming","5.17.1",()=>Promise.all([P.e(5478),P.e(1645)]).then(()=>()=>P(51645))),r("@mui/styled-engine","5.18.0",()=>Promise.all([P.e(2952),P.e(5478),P.e(6322),P.e(5277),P.e(635)]).then(()=>()=>P(92952))),r("@mui/system","5.18.0",()=>Promise.all([P.e(9710),P.e(3954),P.e(5478),P.e(9096),P.e(2464)]).then(()=>()=>P(29710))),r("react-dom","18.3.1",()=>Promise.all([P.e(3144),P.e(5478)]).then(()=>()=>P(43144))),r("react-router-dom","6.30.3",()=>Promise.all([P.e(501),P.e(5478),P.e(484),P.e(9829)]).then(()=>()=>P(62882))),r("react-router","6.30.3",()=>Promise.all([P.e(7367),P.e(5478)]).then(()=>()=>P(97367))),r("react","18.3.1",()=>P.e(4041).then(()=>()=>P(14041)))),e[a]=n.length?Promise.all(n).then(()=>e[a]=1):1}}})(),(()=>{var e;P.g.importScripts&&(e=P.g.location+"");var h=P.g.document;if(!e&&h&&(h.currentScript&&"SCRIPT"===h.currentScript.tagName.toUpperCase()&&(e=h.currentScript.src),!e)){var a=h.getElementsByTagName("script");if(a.length)for(var g=a.length-1;g>-1&&(!e||!/^http(s?):/.test(e));)e=a[g--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),P.p=e})(),t=e=>{var h=e=>e.split(".").map(e=>+e==e?+e:e),a=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),g=a[1]?h(a[1]):[];return a[2]&&(g.length++,g.push.apply(g,h(a[2]))),a[3]&&(g.push([]),g.push.apply(g,h(a[3]))),g},i=(e,h)=>{e=t(e),h=t(h);for(var a=0;;){if(a>=e.length)return a<h.length&&"u"!=(typeof h[a])[0];var g=e[a],i=(typeof g)[0];if(a>=h.length)return"u"==i;var l=h[a],r=(typeof l)[0];if(i!=r)return"o"==i&&"n"==r||"s"==r||"u"==i;if("o"!=i&&"u"!=i&&g!=l)return g<l;a++}},l=e=>{var h=e[0],a="";if(1===e.length)return"*";if(h+.5){a+=0==h?">=":-1==h?"<":1==h?"^":2==h?"~":h>0?"=":"!=";for(var g=1,t=1;t<e.length;t++)g--,a+="u"==(typeof(r=e[t]))[0]?"-":(g>0?".":"")+(g=2,r);return a}var i=[];for(t=1;t<e.length;t++){var r=e[t];i.push(0===r?"not("+n()+")":1===r?"("+n()+" || "+n()+")":2===r?i.pop()+" "+i.pop():l(r))}return n();function n(){return i.pop().replace(/^\((.+)\)$/,"$1")}},r=(e,h)=>{if(0 in e){h=t(h);var a=e[0],g=a<0;g&&(a=-a-1);for(var i=0,l=1,n=!0;;l++,i++){var s,_,c=l<e.length?(typeof e[l])[0]:"";if(i>=h.length||"o"==(_=(typeof(s=h[i]))[0]))return!n||("u"==c?l>a&&!g:""==c!=g);if("u"==_){if(!n||"u"!=c)return!1}else if(n)if(c==_)if(l<=a){if(s!=e[l])return!1}else{if(g?s>e[l]:s<e[l])return!1;s!=e[l]&&(n=!1)}else if("s"!=c&&"n"!=c){if(g||l<=a)return!1;n=!1,l--}else{if(l<=a||_<c!=g)return!1;n=!1}else"s"!=c&&"n"!=c&&(n=!1,l--)}}var u=[],o=u.pop.bind(u);for(i=1;i<e.length;i++){var f=e[i];u.push(1==f?o()|o():2==f?o()&o():f?r(f,h):!o())}return!!o()},n=(e,h)=>e&&P.o(e,h),s=e=>(e.loaded=1,e.get()),_=e=>Object.keys(e).reduce((h,a)=>(e[a].eager&&(h[a]=e[a]),h),{}),c=(e,h,a)=>{var g=a?_(e[h]):e[h];return Object.keys(g).reduce((e,h)=>!e||!g[e].loaded&&i(e,h)?h:e,0)},u=(e,h,a,g)=>"Unsatisfied version "+a+" from "+(a&&e[h][a].from)+" of shared singleton module "+h+" (required "+l(g)+")",o=e=>{throw new Error(e)},f=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},d=(e,h,a)=>a?a():((e,h)=>o("Shared module "+h+" doesn't exist in shared scope "+e))(e,h),y=(e=>function(h,a,g,t,i){var l=P.I(h);return l&&l.then&&!g?l.then(e.bind(e,h,P.S[h],a,!1,t,i)):e(h,P.S[h],a,g,t,i)})((e,h,a,g,t,i)=>{if(!n(h,a))return d(e,a,i);var l=c(h,a,g);return r(t,l)||f(u(h,a,l,t)),s(h[a][l])}),x={},b={22097:()=>y("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([P.e(9655),P.e(3504),P.e(5478),P.e(9634),P.e(5427),P.e(5501)]).then(()=>()=>P(23504))),95478:()=>y("default","react",!1,[0],()=>P.e(4041).then(()=>()=>P(14041))),49634:()=>y("default","react-router-dom",!1,[0],()=>Promise.all([P.e(501),P.e(484),P.e(9829)]).then(()=>()=>P(62882))),15427:()=>y("default","@backstage/version-bridge",!1,[0],()=>P.e(441).then(()=>()=>P(12822))),75501:()=>y("default","@backstage/frontend-plugin-api",!1,[0],()=>Promise.all([P.e(9655),P.e(9316),P.e(9738),P.e(9634),P.e(5427)]).then(()=>()=>P(19738))),51723:()=>y("default","@backstage/core-plugin-api",!1,[0],()=>P.e(4614).then(()=>()=>P(4614))),76322:()=>y("default","@emotion/cache",!1,[0],()=>P.e(7164).then(()=>()=>P(67164))),11942:()=>y("default","@material-ui/styles",!1,[0],()=>P.e(4570).then(()=>()=>P(94570))),40484:()=>y("default","react-dom",!1,[0],()=>P.e(3144).then(()=>()=>P(43144))),79096:()=>y("default","@mui/styled-engine",!1,[0],()=>Promise.all([P.e(2952),P.e(6322),P.e(5277)]).then(()=>()=>P(92952))),54994:()=>y("default","@mui/system",!1,[0],()=>Promise.all([P.e(9710),P.e(2464)]).then(()=>()=>P(29710))),5277:()=>y("default","@emotion/react",!1,[0],()=>P.e(6038).then(()=>()=>P(53657))),22464:()=>y("default","@mui/private-theming",!1,[0],()=>P.e(4026).then(()=>()=>P(51645))),9829:()=>y("default","react-router",!1,[0],()=>P.e(7367).then(()=>()=>P(97367))),37976:()=>y("default","@material-ui/core/styles",!1,[0],()=>P.e(6872).then(()=>()=>P(64491)))},p={484:[40484],879:[22097],1723:[51723],1942:[11942],2464:[22464],4994:[54994],5277:[5277],5427:[15427],5478:[95478],5501:[75501],6322:[76322],7976:[37976],9096:[79096],9634:[49634],9829:[9829]},m={},P.f.consumes=(e,h)=>{P.o(p,e)&&p[e].forEach(e=>{if(P.o(x,e))return h.push(x[e]);if(!m[e]){var a=h=>{x[e]=0,P.m[e]=a=>{delete P.c[e],a.exports=h()}};m[e]=!0;var g=h=>{delete x[e],P.m[e]=a=>{throw delete P.c[e],h}};try{var t=b[e]();t.then?h.push(x[e]=t.then(a).catch(g)):a(t)}catch(e){g(e)}}})},(()=>{if("undefined"!=typeof document){var e={2310:0};P.f.miniCss=(h,a)=>{e[h]?a.push(e[h]):0!==e[h]&&{4093:1}[h]&&a.push(e[h]=(e=>new Promise((h,a)=>{var g=P.miniCssF(e),t=P.p+g;if(((e,h)=>{for(var a=document.getElementsByTagName("link"),g=0;g<a.length;g++){var t=(l=a[g]).getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(t===e||t===h))return l}var i=document.getElementsByTagName("style");for(g=0;g<i.length;g++){var l;if((t=(l=i[g]).getAttribute("data-href"))===e||t===h)return l}})(g,t))return h();((e,h,a,g,t)=>{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.onerror=i.onload=a=>{if(i.onerror=i.onload=null,"load"===a.type)g();else{var l=a&&a.type,r=a&&a.target&&a.target.href||h,n=new Error("Loading CSS chunk "+e+" failed.\n("+l+": "+r+")");n.name="ChunkLoadError",n.code="CSS_CHUNK_LOAD_FAILED",n.type=l,n.request=r,i.parentNode&&i.parentNode.removeChild(i),t(n)}},i.href=h,function(e){const h=document.head,a=h.querySelector("style[data-jss]");a?h.insertBefore(e,a):h.appendChild(e)}(i)})(e,t,0,h,a)}))(h).then(()=>{e[h]=0},a=>{throw delete e[h],a}))}}})(),(()=>{var e={2310:0};P.f.j=(h,a)=>{var g=P.o(e,h)?e[h]:void 0;if(0!==g)if(g)a.push(g[2]);else if(/^(5(277|427|478|501)|9(096|634|829)|(246|48|499)4|1723|1942|6322|7976)$/.test(h))e[h]=0;else{var t=new Promise((a,t)=>g=e[h]=[a,t]);a.push(g[2]=t);var i=P.p+P.u(h),l=new Error;P.l(i,a=>{if(P.o(e,h)&&(0!==(g=e[h])&&(e[h]=void 0),g)){var t=a&&("load"===a.type?"missing":a.type),i=a&&a.target&&a.target.src;l.message="Loading chunk "+h+" failed.\n("+t+": "+i+")",l.name="ChunkLoadError",l.type=t,l.request=i,g[1](l)}},"chunk-"+h,h)}};var h=(h,a)=>{var g,t,[i,l,r]=a,n=0;if(i.some(h=>0!==e[h])){for(g in l)P.o(l,g)&&(P.m[g]=l[g]);r&&r(P)}for(h&&h(a);n<i.length;n++)t=i[n],P.o(e,t)&&e[t]&&e[t][0](),e[t]=0},a=self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[];a.forEach(h.bind(null,0)),a.push=h.bind(null,a.push.bind(a))})(),P(63198)})());
2
- //# sourceMappingURL=internal.plugin-kuadrant.c830fc2d56f9e96a055e.js.map
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[2821],{12229:(e,t,a)=>{a.d(t,{Z:()=>v});var s=a(31085),n=a(95478),i=a.n(n),l=a(10394),r=a(72501),o=a(64947),c=a(37197),d=a(69621),u=a(12981),p=a(86901),m=a(69076),h=a(58837),g=a(6924),x=a(23164);const A=(0,h.A)(e=>({root:{width:240,minWidth:240,padding:e.spacing(2),borderRight:`1px solid ${e.palette.divider}`,backgroundColor:e.palette.background.paper,height:"100%",overflowY:"auto"},sectionTitle:{fontWeight:600,fontSize:"0.75rem",textTransform:"uppercase",letterSpacing:"0.05em",color:e.palette.text.secondary,marginBottom:e.spacing(1),display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer",userSelect:"none"},filterSection:{marginBottom:e.spacing(2)},checkbox:{padding:e.spacing(.5)},checkboxLabel:{fontSize:"0.875rem"},clearButton:{marginTop:e.spacing(2)},count:{fontSize:"0.75rem",color:e.palette.text.secondary,marginLeft:e.spacing(1)}})),v=({sections:e,filters:t,onChange:a,onClear:n})=>{const h=A(),[v,f]=i().useState(new Set(e.filter(e=>e.collapsed).map(e=>e.id))),y=Object.values(t).some(e=>e.length>0);return(0,s.jsxs)(l.A,{className:h.root,children:[(0,s.jsxs)(l.A,{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2,children:[(0,s.jsx)(r.A,{variant:"subtitle2",children:"Filters"}),y&&(0,s.jsx)(o.A,{size:"small",color:"primary",onClick:()=>{const t={};e.forEach(e=>{t[e.id]=[]}),a(t),null==n||n()},children:"Clear all"})]}),(0,s.jsx)(c.A,{}),e.map(e=>{const n=v.has(e.id),i=(t[e.id]||[]).length;return(0,s.jsxs)(l.A,{className:h.filterSection,mt:2,children:[(0,s.jsxs)(l.A,{className:h.sectionTitle,onClick:()=>{return t=e.id,void f(e=>{const a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a});var t},children:[(0,s.jsxs)(l.A,{display:"flex",alignItems:"center",children:[(0,s.jsx)("span",{children:e.title}),i>0&&(0,s.jsxs)("span",{className:h.count,children:["(",i,")"]})]}),n?(0,s.jsx)(g.A,{fontSize:"small"}):(0,s.jsx)(x.A,{fontSize:"small"})]}),(0,s.jsx)(d.A,{in:!n,children:(0,s.jsx)(u.A,{children:e.options.map(n=>(0,s.jsx)(p.A,{control:(0,s.jsx)(m.A,{checked:(t[e.id]||[]).includes(n.value),onChange:()=>((e,s)=>{const n=t[e]||[],i=n.includes(s)?n.filter(e=>e!==s):[...n,s];a({...t,[e]:i})})(e.id,n.value),size:"small",className:h.checkbox,color:"primary"}),label:(0,s.jsxs)(l.A,{display:"flex",alignItems:"center",children:[(0,s.jsx)("span",{className:h.checkboxLabel,children:n.label}),void 0!==n.count&&(0,s.jsxs)("span",{className:h.count,children:["(",n.count,")"]})]})},n.value))})})]},e.id)})]})}},38599:(e,t,a)=>{a.d(t,{B:()=>o});var s=a(31085),n=(a(95478),a(10394)),i=a(72501),l=a(86687),r=a(46205);const o=({children:e,permission:t,fallback:a,errorMessage:o})=>{const{allowed:c,loading:d,error:u}=(0,r.l)(t);return d?(0,s.jsx)(l.k,{}):u?(0,s.jsxs)(n.A,{p:4,children:[(0,s.jsxs)(i.A,{color:"error",children:["Unable to check permissions: ",u.message]}),(0,s.jsx)(i.A,{variant:"body2",color:"textSecondary",children:"Please try again or contact your administrator"})]}):c?(0,s.jsx)(s.Fragment,{children:e}):a?(0,s.jsx)(s.Fragment,{children:a}):(0,s.jsxs)(n.A,{p:4,children:[(0,s.jsx)(i.A,{color:"textSecondary",children:o||"You don't have permission to view this page"}),(0,s.jsx)(n.A,{mt:1,children:(0,s.jsxs)(i.A,{variant:"caption",color:"textSecondary",children:["Required permission: ",t.name]})})]})}},80243:(e,t,a)=>{a.r(t),a.d(t,{ApiProductsPage:()=>te});var s=a(31085),n=a(95478),i=a(58837),l=a(10394),r=a(67720),o=a(72501),c=a(64947),d=a(29365),u=a(78467),p=a(18466),m=a(39590),h=a(75625),g=a(21702),x=a(85142),A=a(12229),v=a(37725),f=a(289),y=a(15831),j=a(45210),b=a(46681),P=a(42367),S=a(25010),w=a(91638),k=a(22097),I=a(38599),T=a(76891),C=a(61477),N=a(46805),R=a(42899),$=a(16249),z=a(34839),E=a(71677),D=a(26343),H=a(95061),L=a(29635),q=a(86901),M=a(30285),W=a(93453),K=a(89031),O=a(84441),B=a(65867),U=a(24170),F=a(77318);const _=(0,i.A)(e=>({asterisk:{color:"#f44336"},sectionHeader:{display:"flex",alignItems:"center",gap:e.spacing(.5),marginTop:e.spacing(2),marginBottom:e.spacing(1)},infoIcon:{fontSize:18,color:e.palette.text.secondary},tagChip:{marginRight:e.spacing(.5),marginBottom:e.spacing(.5)}})),Y=({open:e,onClose:t,onSuccess:a})=>{const i=_(),m=(0,k.useApi)(k.configApiRef),h=(0,k.useApi)(k.fetchApiRef),g=m.getString("backend.baseUrl"),[x,A]=(0,n.useState)(""),[v,f]=(0,n.useState)(""),[y,j]=(0,n.useState)(""),[b,P]=(0,n.useState)("v1"),[S,I]=(0,n.useState)("manual"),[Y,J]=(0,n.useState)("Published"),[V,G]=(0,n.useState)([]),[Z,X]=(0,n.useState)(""),[Q,ee]=(0,n.useState)(""),[te,ae]=(0,n.useState)(""),[se,ne]=(0,n.useState)(""),[ie,le]=(0,n.useState)(""),[re,oe]=(0,n.useState)(""),[ce,de]=(0,n.useState)(""),[ue,pe]=(0,n.useState)(!1),[me,he]=(0,n.useState)(0),[ge,xe]=(0,n.useState)(null),[Ae,ve]=(0,n.useState)(null),{value:fe,loading:ye,error:je}=(0,w.A)(async()=>{const e=await h.fetch(`${g}/api/kuadrant/httproutes`);if(!e.ok){const t=await(0,F.T)(e);throw new Error(`failed to fetch routes. ${t}`)}return(await e.json()).items||[]},[g,h,e,me]),{value:be,error:Pe}=(0,w.A)(async()=>{const e=await h.fetch(`${g}/api/kuadrant/planpolicies`);if(!e.ok){const t=await(0,F.T)(e);throw new Error(`failed to fetch PlanPolicies. ${t}`)}return await e.json()},[g,h,e]),Se=(e,t)=>(null==be?void 0:be.items)?be.items.find(a=>{const s=a.targetRef;return"HTTPRoute"===(null==s?void 0:s.kind)&&(null==s?void 0:s.name)===t&&(!(null==s?void 0:s.namespace)||(null==s?void 0:s.namespace)===e)}):null,we=Q?Q.split("/"):null,ke=we?Se(we[0],we[1]):null;(0,n.useEffect)(()=>{e&&(xe(null),ve(null))},[e]);const Ie=()=>{Z.trim()&&!V.includes(Z.trim())&&(G([...V,Z.trim()]),X(""))},Te=()=>{A(""),f(""),j(""),P("v1"),I("manual"),J("Published"),G([]),X(""),ee(""),ae(""),ne(""),le(""),oe(""),de(""),xe(null),ve(null),t()},Ce=!!ge||!!Ae;return(0,s.jsxs)(T.A,{open:e,onClose:Te,maxWidth:"md",fullWidth:!0,children:[(0,s.jsx)(C.A,{children:"Create API Product"}),(0,s.jsxs)(N.A,{children:[ce&&(0,s.jsx)(O.A,{severity:"error",style:{marginBottom:16},children:ce}),je&&(0,s.jsxs)(O.A,{severity:"error",style:{marginBottom:16},children:[(0,s.jsx)("strong",{children:"Failed to load HTTPRoutes:"})," ",je.message,(0,s.jsx)(l.A,{mt:1,children:(0,s.jsx)(c.A,{size:"small",variant:"outlined",onClick:()=>he(e=>e+1),children:"Retry"})})]}),Pe&&(0,s.jsxs)(O.A,{severity:"warning",style:{marginBottom:16},children:[(0,s.jsx)("strong",{children:"Failed to load PlanPolicies:"})," ",Pe.message,(0,s.jsx)(o.A,{variant:"body2",style:{marginTop:8},children:"You can still create the API Product, but plan information may be incomplete."})]}),(0,s.jsx)(l.A,{className:i.sectionHeader,children:(0,s.jsx)(o.A,{variant:"subtitle1",children:(0,s.jsx)("strong",{children:"API product info"})})}),(0,s.jsxs)(R.A,{container:!0,spacing:2,children:[(0,s.jsx)(R.A,{item:!0,xs:6,children:(0,s.jsx)($.A,{fullWidth:!0,label:"API product name",value:v,onChange:e=>f(e.target.value),placeholder:"My API",helperText:"Give a unique name for your API product",margin:"normal",required:!0,disabled:ue,InputLabelProps:{classes:{asterisk:i.asterisk}}})}),(0,s.jsx)(R.A,{item:!0,xs:6,children:(0,s.jsx)($.A,{fullWidth:!0,label:"Resource name",value:x,onChange:e=>{return t=e.target.value,A(t),void xe((0,U.o)(t));var t},placeholder:"my-api",helperText:ge||"Kubernetes resource name with lowercase, hyphens. Eg.flight_API",error:!!ge,margin:"normal",required:!0,disabled:ue,InputLabelProps:{classes:{asterisk:i.asterisk}}})}),(0,s.jsx)(R.A,{item:!0,xs:6,children:(0,s.jsx)($.A,{fullWidth:!0,label:"Version",value:b,onChange:e=>P(e.target.value),placeholder:"v1",helperText:"Give a version to your API product",margin:"normal",required:!0,disabled:ue,InputLabelProps:{classes:{asterisk:i.asterisk}}})}),(0,s.jsx)(R.A,{item:!0,xs:6,children:(0,s.jsx)($.A,{fullWidth:!0,label:"Tag",value:Z,onChange:e=>X(e.target.value),onKeyPress:e=>{"Enter"===e.key&&(e.preventDefault(),Ie())},placeholder:"Add tag",helperText:"Add a tag to your API product",margin:"normal",disabled:ue,InputProps:{endAdornment:Z?(0,s.jsx)(z.A,{position:"end",children:(0,s.jsx)(d.A,{size:"small",onClick:Ie,disabled:ue,children:(0,s.jsx)(p.A,{fontSize:"small"})})}):void 0}})}),V.length>0&&(0,s.jsx)(R.A,{item:!0,xs:12,children:(0,s.jsx)(l.A,{display:"flex",flexWrap:"wrap",children:V.map(e=>(0,s.jsx)(r.A,{label:e,onDelete:ue?void 0:()=>{return t=e,void G(V.filter(e=>e!==t));var t},size:"small",className:i.tagChip,disabled:ue},e))})}),(0,s.jsx)(R.A,{item:!0,xs:12,children:(0,s.jsx)($.A,{fullWidth:!0,label:"Description",value:y,onChange:e=>j(e.target.value),placeholder:"API description",margin:"normal",multiline:!0,rows:2,required:!0,disabled:ue,InputLabelProps:{classes:{asterisk:i.asterisk}}})})]}),(0,s.jsxs)(l.A,{className:i.sectionHeader,children:[(0,s.jsx)(o.A,{variant:"subtitle1",children:(0,s.jsx)("strong",{children:"Add API and Associate route"})}),(0,s.jsx)(E.Ay,{title:"Register an existing API and associate HTTPRoute for your API product",children:(0,s.jsx)(K.A,{className:i.infoIcon})})]}),(0,s.jsxs)(R.A,{container:!0,spacing:2,children:[(0,s.jsx)(R.A,{item:!0,xs:12,children:(0,s.jsx)($.A,{fullWidth:!0,label:"OpenAPI Spec URL",value:re,onChange:e=>{return t=e.target.value,oe(t),void ve((0,U.q)(t));var t},placeholder:"https://api.example.com/openapi.json",helperText:Ae||"Enter the full path to your API spec file",error:!!Ae,margin:"normal",required:!0,disabled:ue,InputLabelProps:{classes:{asterisk:i.asterisk}}})}),(0,s.jsx)(R.A,{item:!0,xs:12,children:(0,s.jsx)($.A,{fullWidth:!0,label:"Documentation URL",value:ie,onChange:e=>le(e.target.value),placeholder:"https://docs.example.com/api",helperText:"Link to external documentation for this API",margin:"normal",disabled:ue})}),(0,s.jsx)(R.A,{item:!0,xs:12,children:(0,s.jsxs)($.A,{fullWidth:!0,select:!0,label:"HTTPRoute",value:Q,onChange:e=>ee(e.target.value),margin:"normal",required:!0,helperText:je?"Unable to load HTTPRoutes. Please retry.":"Select an HTTPRoute. APIProduct will be created in the same namespace.",error:!!je,disabled:ye||ue||!!je,InputLabelProps:{classes:{asterisk:i.asterisk}},SelectProps:{"data-testid":"httproute-select"},children:[ye&&(0,s.jsx)(D.A,{value:"",children:"Loading..."}),je&&(0,s.jsx)(D.A,{value:"",children:"Error loading routes"}),!ye&&!je&&fe&&0===fe.length&&(0,s.jsx)(D.A,{value:"",children:"No HTTPRoutes available"}),!ye&&!je&&fe&&fe.map(e=>{const t=e.metadata.namespace,a=e.metadata.name,n=((e,t)=>{const a=Se(e,t);return a?`${a.metadata.name}${(e=>{var t;if(!(null==e||null===(t=e.spec)||void 0===t?void 0:t.plans))return"";const a=Object.entries(e.spec.plans).map(([e,t])=>{var a;const s=null==t||null===(a=t.limits)||void 0===a?void 0:a.requests;return s?`${e}: ${s.count}/${s.period}`:e}).join("; ");return a?` (${a})`:""})(a)}`:"N/A"})(t,a);return(0,s.jsx)(D.A,{value:`${t}/${a}`,children:(0,s.jsxs)(l.A,{children:[(0,s.jsx)(o.A,{variant:"body1",children:a}),(0,s.jsxs)(o.A,{variant:"caption",color:"textSecondary",children:["Associated PlanPolicy: ",n]})]})},`${t}/${a}`)})]})})]}),Q&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(l.A,{className:i.sectionHeader,children:[(0,s.jsx)(o.A,{variant:"subtitle1",children:(0,s.jsx)("strong",{children:"HTTPRoute policies"})}),(0,s.jsx)(E.Ay,{title:"Shows the associated policies and rate limit tiers for the selected HTTPRoute",children:(0,s.jsx)(K.A,{className:i.infoIcon})})]}),(0,s.jsx)(B.g,{selectedPolicy:ke,alertSeverity:"warning",alertMessage:"No PlanPolicy found for this HTTPRoute. API keys and rate limiting may not be available.",includeTopMargin:!1})]}),(0,s.jsxs)(l.A,{className:i.sectionHeader,children:[(0,s.jsx)(o.A,{variant:"subtitle1",children:(0,s.jsx)("strong",{children:"API Key approval"})}),(0,s.jsx)(E.Ay,{title:"Choose how API key requests are handled for this product",children:(0,s.jsx)(K.A,{className:i.infoIcon})})]}),(0,s.jsx)(H.A,{component:"fieldset",disabled:ue,children:(0,s.jsxs)(L.A,{row:!0,value:S,onChange:e=>I(e.target.value),children:[(0,s.jsx)(q.A,{value:"manual",control:(0,s.jsx)(M.A,{color:"primary"}),label:(0,s.jsxs)(l.A,{children:[(0,s.jsx)(o.A,{variant:"body2",children:"Need manual approval"}),(0,s.jsx)(o.A,{variant:"caption",color:"textSecondary",children:"Requires approval for requesting this API"})]})}),(0,s.jsx)(q.A,{value:"automatic",control:(0,s.jsx)(M.A,{color:"primary"}),label:(0,s.jsxs)(l.A,{children:[(0,s.jsx)(o.A,{variant:"body2",children:"Automatic"}),(0,s.jsx)(o.A,{variant:"caption",color:"textSecondary",children:"Keys are created without need to be approved"})]})})]})})]}),(0,s.jsxs)(W.A,{children:[(0,s.jsx)(c.A,{onClick:Te,disabled:ue,children:"Cancel"}),(0,s.jsx)(c.A,{onClick:async()=>{de(""),pe(!0);try{if(!Q)throw new Error("Please select an HTTPRoute");const[e,t]=Q.split("/"),s=e,n={apiVersion:"devportal.kuadrant.io/v1alpha1",kind:"APIProduct",metadata:{name:x,namespace:s},spec:{displayName:v,description:y,version:b,approvalMode:S,publishStatus:Y,tags:V,targetRef:{group:"gateway.networking.k8s.io",kind:"HTTPRoute",name:t,namespace:e},...te||se?{contact:{...te&&{email:te},...se&&{team:se}}}:{},...ie||re?{documentation:{...ie&&{docsURL:ie},...re&&{openAPISpecURL:re}}}:{}}},i=await h.fetch(`${g}/api/kuadrant/apiproducts`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!i.ok){const e=await(0,F.T)(i);throw new Error(`failed to create APIProduct. ${e}`)}a({namespace:s,name:x,displayName:v}),Te()}catch(e){de(e instanceof Error?e.message:String(e))}finally{pe(!1)}},color:"primary",variant:"contained",disabled:ue||!x||!v||!y||!Q||Ce,startIcon:ue?(0,s.jsx)(u.A,{size:16,color:"inherit"}):void 0,children:ue?"Creating...":"Create"})]})]})};var J=a(34955),V=a(46205),G=a(26997),Z=a(63221);const X=a.p+"static/empty-state-illustration.7e3ad5a9..png",Q=(0,i.A)(e=>({container:{display:"flex",height:"100%",minHeight:400},tableContainer:{flex:1,overflow:"auto",padding:10},emptyState:{display:"flex",alignItems:"center",justifyContent:"center",padding:e.spacing(6),minHeight:400},emptyStateContent:{display:"flex",alignItems:"center",gap:e.spacing(6),maxWidth:900},emptyStateText:{flex:1},emptyStateTitle:{marginBottom:e.spacing(2)},emptyStateDescription:{marginBottom:e.spacing(3),color:e.palette.text.secondary},emptyStateImage:{maxWidth:400,height:"auto"}})),ee=()=>{const e=Q(),t=(0,k.useApi)(k.configApiRef),a=(0,k.useApi)(k.fetchApiRef),i=(0,k.useApi)(k.alertApiRef),I=(0,k.useApi)(k.identityApiRef),T=t.getString("backend.baseUrl"),[C,N]=(0,n.useState)(""),[R,$]=(0,n.useState)(!1),[z,E]=(0,n.useState)(!1),[D,H]=(0,n.useState)(0),[L,q]=(0,n.useState)(!1),[M,W]=(0,n.useState)(null),[K,O]=(0,n.useState)(null),[B,U]=(0,n.useState)(!1),[_,ee]=(0,n.useState)(null),[te,ae]=(0,n.useState)({status:[],policy:[],route:[],namespace:[],tags:[],authentication:[]}),{allowed:se,loading:ne,error:ie}=(0,V.l)(J.FL),{allowed:le,loading:re}=(0,V.l)(J.EM),{allowed:oe,loading:ce,error:de}=(0,V.l)(J.R_),{allowed:ue}=(0,V.l)(J.U3),{allowed:pe}=(0,V.l)(J.v_),me=re||ce,{allowed:he,loading:ge,error:xe}=(0,V.l)(J.J);(0,w.A)(async()=>{const e=await I.getBackstageIdentity();N(e.userEntityRef)},[I]);const{value:Ae,loading:ve,error:fe}=(0,w.A)(async()=>{const e=await a.fetch(`${T}/api/kuadrant/apiproducts`);if(!e.ok){const t=await(0,F.T)(e);throw new Error(`failed to fetch APIProducts. ${t}`)}return await e.json()},[T,a,D]),{value:ye,loading:je,error:be}=(0,w.A)(async()=>{if(!he)return{items:[]};const e=await a.fetch(`${T}/api/kuadrant/planpolicies`);if(!e.ok){const t=await(0,F.T)(e);throw new Error(`failed to fetch PlanPolicies: ${t}`)}return await e.json()},[T,a,D,he]),Pe=(0,n.useCallback)(e=>{var t;if(!(null==ye?void 0:ye.items))return null;const a=null===(t=e.spec)||void 0===t?void 0:t.targetRef;if(!a)return null;const s=ye.items.find(t=>{const s=t.targetRef;return"HTTPRoute"===(null==s?void 0:s.kind)&&(null==s?void 0:s.name)===a.name&&(!(null==s?void 0:s.namespace)||(null==s?void 0:s.namespace)===(a.namespace||e.metadata.namespace))});return(null==s?void 0:s.metadata.name)||null},[ye]),Se=(0,n.useCallback)(e=>{var t,a;const s=(null===(a=e.status)||void 0===a||null===(t=a.discoveredAuthScheme)||void 0===t?void 0:t.authentication)||{},n=Object.values(s),i=[];return n.some(e=>e.hasOwnProperty("apiKey"))&&i.push("API Key"),n.some(e=>e.hasOwnProperty("jwt"))&&i.push("OIDC"),0===i.length&&i.push("Unknown"),i},[]),we=ve||je||ne||me||ge,ke=fe||be,Ie=ie||de||xe,Te=(0,n.useMemo)(()=>(null==Ae?void 0:Ae.items)||[],[Ae]),Ce=(0,n.useMemo)(()=>{const e={Draft:0,Published:0},t=new Map,a=new Map,s=new Map,n=new Map,i=new Map;Te.forEach(l=>{var r,o,c,d;const u=(null===(r=l.spec)||void 0===r?void 0:r.publishStatus)||"Draft";e[u]++;const p=Pe(l)||"N/A";t.set(p,(t.get(p)||0)+1);const m=(null===(c=l.spec)||void 0===c||null===(o=c.targetRef)||void 0===o?void 0:o.name)||"unknown";a.set(m,(a.get(m)||0)+1);const h=l.metadata.namespace;s.set(h,(s.get(h)||0)+1),((null===(d=l.spec)||void 0===d?void 0:d.tags)||[]).forEach(e=>{n.set(e,(n.get(e)||0)+1)}),Se(l).forEach(e=>{i.set(e,(i.get(e)||0)+1)})});const l=[{id:"status",title:"Status",options:[{value:"Draft",label:"Draft",count:e.Draft},{value:"Published",label:"Published",count:e.Published}]},{id:"authentication",title:"Authentication",options:Array.from(i.entries()).map(([e,t])=>({value:e,label:e,count:t}))},{id:"route",title:"Route",options:Array.from(a.entries()).map(([e,t])=>({value:e,label:e,count:t})),collapsed:a.size>5},{id:"namespace",title:"Namespace",options:Array.from(s.entries()).map(([e,t])=>({value:e,label:e,count:t})),collapsed:s.size>5},{id:"tags",title:"Tags",options:Array.from(n.entries()).map(([e,t])=>({value:e,label:e,count:t})),collapsed:n.size>5}];return he&&l.splice(2,0,{id:"policy",title:"Policy",options:Array.from(t.entries()).map(([e,t])=>({value:e,label:e,count:t})),collapsed:t.size>5}),l},[Te,Pe,Se,he]),Ne=(0,n.useMemo)(()=>Te.filter(e=>{if(te.status.length>0){var t;const a=(null===(t=e.spec)||void 0===t?void 0:t.publishStatus)||"Draft";if(!te.status.includes(a))return!1}if(te.authentication.length>0){const t=Se(e);if(!te.authentication.some(e=>t.includes(e)))return!1}if(te.policy.length>0){const t=Pe(e)||"N/A";if(!te.policy.includes(t))return!1}if(te.route.length>0){var a,s;const t=(null===(s=e.spec)||void 0===s||null===(a=s.targetRef)||void 0===a?void 0:a.name)||"unknown";if(!te.route.includes(t))return!1}if(te.namespace.length>0&&!te.namespace.includes(e.metadata.namespace))return!1;if(te.tags.length>0){var n;const t=(null===(n=e.spec)||void 0===n?void 0:n.tags)||[];if(!te.tags.some(e=>t.includes(e)))return!1}return!0}),[Te,te,Pe,Se]),Re=[{title:"Name",field:"spec.displayName",render:e=>{var t,a;const n=null!==(a=null===(t=e.spec)||void 0===t?void 0:t.displayName)&&void 0!==a?a:e.metadata.name;return(0,s.jsx)(v.N_,{to:`/kuadrant/api-products/${e.metadata.namespace}/${e.metadata.name}`,children:(0,s.jsx)("strong",{children:n})})},customFilterAndSearch:(e,t)=>{var a;return((null===(a=t.spec)||void 0===a?void 0:a.displayName)||t.metadata.name||"").toLowerCase().includes(e.toLowerCase())}},{title:"Version",field:"spec.version",render:e=>{var t;return(null===(t=e.spec)||void 0===t?void 0:t.version)||"-"}},{title:"Route",field:"spec.targetRef.name",render:e=>{var t,a;return(null===(a=e.spec)||void 0===a||null===(t=a.targetRef)||void 0===t?void 0:t.name)||"-"}},...he?[{title:"Policy",field:"policy",render:e=>Pe(e)||"N/A"}]:[],{title:"Tags",field:"spec.tags",render:e=>{var t;const a=(null===(t=e.spec)||void 0===t?void 0:t.tags)||[];return 0===a.length?"-":(0,s.jsx)(l.A,{display:"flex",style:{gap:4,flexWrap:"wrap"},children:a.map(e=>(0,s.jsx)(r.A,{label:e,size:"small",variant:"outlined"},e))})}},{title:"Status",field:"spec.publishStatus",render:e=>{var t;const a=(null===(t=e.spec)||void 0===t?void 0:t.publishStatus)||"Draft";return(0,s.jsx)(r.A,{label:a,size:"small",color:"Published"===a?"primary":"default"})}},{title:"Authentication",field:"status.discoveredAuthScheme",render:e=>{var t,a;const n=(null===(a=e.status)||void 0===a||null===(t=a.discoveredAuthScheme)||void 0===t?void 0:t.authentication)||{},i=Object.values(n),c=i.some(e=>e.hasOwnProperty("apiKey")),d=i.some(e=>e.hasOwnProperty("jwt"));return c||d?(0,s.jsxs)(l.A,{display:"flex",style:{gap:4},children:[c&&(0,s.jsx)(r.A,{icon:(0,s.jsx)(g.A,{}),label:"API Key",size:"small",color:"primary"}),d&&(0,s.jsx)(r.A,{icon:(0,s.jsx)(x.A,{}),label:"OIDC",size:"small",color:"secondary"})]}):(0,s.jsx)(o.A,{variant:"body2",style:{fontStyle:"italic"},children:"unknown"})}},{title:"Namespace",field:"metadata.namespace"},{title:"Actions",field:"actions",filtering:!1,render:e=>{var t,n,r;const o=(null===(n=e.metadata)||void 0===n||null===(t=n.annotations)||void 0===t?void 0:t["backstage.io/owner"])===C,u=pe||ue&&o,p=oe||le&&o,g="Published"===(null===(r=e.spec)||void 0===r?void 0:r.publishStatus);return(0,s.jsxs)(l.A,{display:"flex",alignItems:"center",style:{gap:4},children:[u&&(0,s.jsx)(c.A,{size:"small",color:"primary",onClick:()=>(async e=>{var t,s;const n=e.metadata.namespace,l=e.metadata.name,r=(null===(t=e.spec)||void 0===t?void 0:t.displayName)||l,o="Published"===((null===(s=e.spec)||void 0===s?void 0:s.publishStatus)||"Draft")?"Draft":"Published";try{const e=await a.fetch(`${T}/api/kuadrant/apiproducts/${n}/${l}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({spec:{publishStatus:o}})});if(!e.ok){const t=await(0,F.T)(e);throw new Error(t)}H(e=>e+1),i.post({message:`"${r}" ${"Published"===o?"published":"unpublished"} successfully`,severity:"success",display:"transient"})}catch(e){const t=e instanceof Error?e.message:"unknown error occurred";i.post({message:`Failed to update publish status: ${t}`,severity:"error",display:"transient"})}})(e),style:{marginRight:4,textTransform:"none"},children:g?"Unpublish":"Publish"}),u&&(0,s.jsx)(d.A,{size:"small",onClick:()=>{return t=e.metadata.namespace,a=e.metadata.name,O({namespace:t,name:a}),void E(!0);var t,a},title:"Edit API Product",children:(0,s.jsx)(h.A,{fontSize:"small"})}),p&&(0,s.jsx)(d.A,{size:"small",onClick:()=>(async(e,t)=>{W({namespace:e,name:t}),ee(null);try{const s=await a.fetch(`${T}/api/kuadrant/requests?namespace=${e}`);if(!s.ok){const e=await(0,F.T)(s);throw new Error(e)}const n=((await s.json()).items||[]).filter(a=>a.spec.apiName===t&&a.spec.apiNamespace===e),i=n.filter(e=>{var t;return"Approved"===(null===(t=e.status)||void 0===t?void 0:t.phase)}).length;ee({requests:n.length,secrets:i})}catch(e){const t=e instanceof Error?e.message:"unknown error occurred";i.post({message:`Failed to delete access request: ${t}`,severity:"error",display:"transient"})}finally{q(!0)}})(e.metadata.namespace,e.metadata.name),title:"Delete API Product",children:(0,s.jsx)(m.A,{fontSize:"small"})})]})}}];return(0,s.jsxs)(f.Y,{themeId:"tool",children:[(0,s.jsx)(y.Y,{title:"API Products",subtitle:"Manage API products for Kubernetes",children:(0,s.jsx)(j.Y,{children:"Manage API products and plan policies"})}),(0,s.jsxs)(b.U,{children:[we&&(0,s.jsxs)(l.A,{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:300,children:[(0,s.jsx)(u.A,{}),(0,s.jsx)(o.A,{variant:"h6",style:{marginTop:16},children:"Loading data..."}),(0,s.jsx)(o.A,{variant:"body2",color:"textSecondary",children:"Preparing your data... This should only take a moment."})]}),ke&&(0,s.jsx)(P._,{error:ke}),Ie&&(0,s.jsxs)(l.A,{p:2,children:[(0,s.jsxs)(o.A,{color:"error",children:["unable to check permissions: ",Ie.message]}),(0,s.jsxs)(o.A,{variant:"body2",color:"textSecondary",children:["permission:"," ",ie?"kuadrant.apiproduct.create":de?"kuadrant.apiproduct.delete":xe?"kuadrant.planpolicy.list":"unknown"]}),(0,s.jsx)(o.A,{variant:"body2",color:"textSecondary",children:"please try again or contact your administrator"})]}),!we&&!ke&&!Ie&&0===Te.length&&(0,s.jsx)(l.A,{className:e.emptyState,children:(0,s.jsxs)(l.A,{className:e.emptyStateContent,children:[(0,s.jsxs)(l.A,{className:e.emptyStateText,children:[(0,s.jsx)(o.A,{variant:"h4",className:e.emptyStateTitle,children:"API Product"}),(0,s.jsx)(o.A,{variant:"body1",className:e.emptyStateDescription,children:"Create API product by registering existing API, associate route and policy"}),se&&(0,s.jsx)(c.A,{variant:"contained",color:"primary",startIcon:(0,s.jsx)(p.A,{}),onClick:()=>$(!0),children:"Create API Product"})]}),(0,s.jsx)("img",{src:X,alt:"API Product illustration",className:e.emptyStateImage})]})}),!we&&!ke&&!Ie&&Te.length>0&&(0,s.jsxs)(l.A,{className:e.container,children:[(0,s.jsx)(A.Z,{sections:Ce,filters:te,onChange:ae}),(0,s.jsxs)(l.A,{className:e.tableContainer,children:[(0,s.jsx)(l.A,{display:"flex",justifyContent:"flex-end",mb:2,children:se&&(0,s.jsx)(c.A,{variant:"contained",color:"primary",size:"small",startIcon:(0,s.jsx)(p.A,{}),onClick:()=>$(!0),children:"Create API Product"})}),0===Ne.length?(0,s.jsx)(l.A,{p:4,textAlign:"center",children:(0,s.jsx)(o.A,{variant:"body1",color:"textSecondary",children:"No API products match the selected filters."})}):(0,s.jsx)(S.X,{options:{paging:Ne.length>10,pageSize:20,search:!0,filtering:!1,debounceInterval:300,toolbar:!0,emptyRowsWhenPaging:!1},columns:Re,data:Ne})]})]}),(0,s.jsx)(Y,{open:R,onClose:()=>$(!1),onSuccess:e=>{H(e=>e+1),i.post({message:`"${e.displayName}" created successfully`,severity:"success",display:"transient"})}}),(0,s.jsx)(G.C,{open:z,onClose:()=>E(!1),onSuccess:()=>{H(e=>e+1);const e=(null==K?void 0:K.name)||"API Product";i.post({message:`"${e}" updated successfully`,severity:"success",display:"transient"})},namespace:(null==K?void 0:K.namespace)||"",name:(null==K?void 0:K.name)||""}),(0,s.jsx)(Z.K,{open:L,title:"Delete API Product",description:_?`Deleting "${null==M?void 0:M.name}" will also remove:\n\n• ${_.requests} API Key(s)\n• ${_.secrets} API Key Secret(s)\n\nThis action cannot be undone.`:`Deleting "${null==M?void 0:M.name}" will also remove all associated API Keys and Secrets.\nThis action cannot be undone.`,confirmText:null==M?void 0:M.name,severity:"high",deleting:B,onConfirm:async()=>{if(M){U(!0);try{const e=await a.fetch(`${T}/api/kuadrant/apiproducts/${M.namespace}/${M.name}`,{method:"DELETE"});if(!e.ok){const t=await(0,F.T)(e);throw new Error(t)}const t=(null==M?void 0:M.name)||"API Product";H(e=>e+1),i.post({message:`"${t}" deleted successfully`,severity:"success",display:"transient"})}catch(e){const t=e instanceof Error?e.message:"unknown error occurred";i.post({message:`Failed to delete API Product: ${t}`,severity:"error",display:"transient"})}finally{U(!1),q(!1),W(null)}}},onCancel:()=>{q(!1),W(null)}})]})]})},te=()=>(0,s.jsx)(I.B,{permission:J.vs,errorMessage:"you don't have permission to view the Kuadrant page",children:(0,s.jsx)(ee,{})})}}]);
2
- //# sourceMappingURL=2821.972ae33b.chunk.js.map