@kuadrant/kuadrant-backstage-plugin-frontend 0.0.2-dev-24d0757 → 0.0.2-dev-1cc1a15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js +29 -5
- package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js.map +1 -1
- package/dist-scalprum/{internal.plugin-kuadrant.95817f34e88db81b5e8f.js → internal.plugin-kuadrant.58a9d553e354df0eed24.js} +2 -2
- package/dist-scalprum/{internal.plugin-kuadrant.95817f34e88db81b5e8f.js.map → internal.plugin-kuadrant.58a9d553e354df0eed24.js.map} +1 -1
- package/dist-scalprum/plugin-manifest.json +2 -2
- package/dist-scalprum/static/7791.39417f8c.chunk.js +2 -0
- package/dist-scalprum/static/7791.39417f8c.chunk.js.map +1 -0
- package/package.json +1 -1
- package/dist-scalprum/static/7791.12162a71.chunk.js +0 -2
- package/dist-scalprum/static/7791.12162a71.chunk.js.map +0 -1
|
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
|
|
|
2
2
|
import { useParams, useNavigate } from 'react-router-dom';
|
|
3
3
|
import { useApi, configApiRef, fetchApiRef, alertApiRef } from '@backstage/core-plugin-api';
|
|
4
4
|
import { useAsync } from 'react-use';
|
|
5
|
-
import { Progress, ResponseErrorPanel, Page, Header, Link, Content, Breadcrumbs, InfoCard } from '@backstage/core-components';
|
|
5
|
+
import { Progress, ResponseErrorPanel, Page, Header, Link, Content, Breadcrumbs, InfoCard, CodeSnippet } from '@backstage/core-components';
|
|
6
6
|
import { makeStyles, Box, Button, Tooltip, IconButton, Typography, Tabs, Tab, Grid, Chip, Table, TableHead, TableRow, TableCell, TableBody } from '@material-ui/core';
|
|
7
7
|
import ArrowBackIcon from '@material-ui/icons/ArrowBack';
|
|
8
8
|
import EditIcon from '@material-ui/icons/Edit';
|
|
@@ -143,10 +143,20 @@ const ApiProductDetailPage = () => {
|
|
|
143
143
|
(c) => c.type === "AuthPolicyDiscovered"
|
|
144
144
|
);
|
|
145
145
|
const discoveredPlans = product.status?.discoveredPlans || [];
|
|
146
|
+
const authSchemes = product.status?.discoveredAuthScheme?.authentication || {};
|
|
147
|
+
const schemeObjects = Object.values(authSchemes);
|
|
148
|
+
const hasOIDCTab = schemeObjects.some(
|
|
149
|
+
(scheme) => scheme.hasOwnProperty("jwt")
|
|
150
|
+
);
|
|
151
|
+
const jwtScheme = schemeObjects.find((scheme) => scheme.hasOwnProperty("jwt"));
|
|
152
|
+
const jwtIssuer = jwtScheme?.jwt?.issuerUrl || "unknown";
|
|
153
|
+
const jwtTokenEndpoint = product.status?.oidcDiscovery?.tokenEndpoint || "unknown";
|
|
146
154
|
const hasDefinitionTab = !!product.spec?.documentation?.openAPISpecURL;
|
|
147
155
|
const hasPoliciesTab = !!(planPolicyCondition || authPolicyCondition || discoveredPlans.length > 0);
|
|
148
|
-
|
|
149
|
-
const
|
|
156
|
+
let nextIndex = 1;
|
|
157
|
+
const definitionTabIndex = hasDefinitionTab ? nextIndex++ : -1;
|
|
158
|
+
const policiesTabIndex = hasPoliciesTab ? nextIndex++ : -1;
|
|
159
|
+
const oidcTabIndex = hasOIDCTab ? nextIndex++ : -1;
|
|
150
160
|
const formatLimits = (limits) => {
|
|
151
161
|
if (!limits) return "No limits";
|
|
152
162
|
const parts = [];
|
|
@@ -181,7 +191,8 @@ const ApiProductDetailPage = () => {
|
|
|
181
191
|
},
|
|
182
192
|
/* @__PURE__ */ React.createElement(Tab, { label: "Overview" }),
|
|
183
193
|
hasDefinitionTab && /* @__PURE__ */ React.createElement(Tab, { label: "Definition" }),
|
|
184
|
-
hasPoliciesTab && /* @__PURE__ */ React.createElement(Tab, { label: "Policies" })
|
|
194
|
+
hasPoliciesTab && /* @__PURE__ */ React.createElement(Tab, { label: "Policies" }),
|
|
195
|
+
hasOIDCTab && /* @__PURE__ */ React.createElement(Tab, { label: "OIDC" })
|
|
185
196
|
)), selectedTab === 0 && /* @__PURE__ */ React.createElement(InfoCard, { title: "API Product" }, /* @__PURE__ */ React.createElement(Box, { className: classes.cardHeader }, /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Typography, { variant: "caption", className: classes.label }, "Product Name"), /* @__PURE__ */ React.createElement(Typography, { variant: "h6" }, product.spec?.displayName || product.metadata.name)), /* @__PURE__ */ React.createElement(Box, { className: classes.cardActions }, canPublishApiProduct && /* @__PURE__ */ React.createElement(
|
|
186
197
|
Button,
|
|
187
198
|
{
|
|
@@ -220,7 +231,20 @@ const ApiProductDetailPage = () => {
|
|
|
220
231
|
marginBottom: 8
|
|
221
232
|
}
|
|
222
233
|
}
|
|
223
|
-
), /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, authPolicyCondition.message || "No details available")) : /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, "No auth policy information"))))), discoveredPlans.length > 0 && /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(InfoCard, { title: "Effective Plan Tiers" }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "textSecondary", paragraph: true }, "These tiers are computed from all attached PlanPolicies (including gateway-level policies)."), /* @__PURE__ */ React.createElement(Table, { size: "small" }, /* @__PURE__ */ React.createElement(TableHead, null, /* @__PURE__ */ React.createElement(TableRow, null, /* @__PURE__ */ React.createElement(TableCell, null, "Tier"), /* @__PURE__ */ React.createElement(TableCell, null, "Rate Limits"))), /* @__PURE__ */ React.createElement(TableBody, null, discoveredPlans.map((plan) => /* @__PURE__ */ React.createElement(TableRow, { key: plan.tier }, /* @__PURE__ */ React.createElement(TableCell, null, /* @__PURE__ */ React.createElement(Chip, { label: plan.tier, size: "small", color: "primary" })), /* @__PURE__ */ React.createElement(TableCell, null, formatLimits(plan.limits)))))))))), /* @__PURE__ */ React.createElement(
|
|
234
|
+
), /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, authPolicyCondition.message || "No details available")) : /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, "No auth policy information"))))), discoveredPlans.length > 0 && /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(InfoCard, { title: "Effective Plan Tiers" }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", color: "textSecondary", paragraph: true }, "These tiers are computed from all attached PlanPolicies (including gateway-level policies)."), /* @__PURE__ */ React.createElement(Table, { size: "small" }, /* @__PURE__ */ React.createElement(TableHead, null, /* @__PURE__ */ React.createElement(TableRow, null, /* @__PURE__ */ React.createElement(TableCell, null, "Tier"), /* @__PURE__ */ React.createElement(TableCell, null, "Rate Limits"))), /* @__PURE__ */ React.createElement(TableBody, null, discoveredPlans.map((plan) => /* @__PURE__ */ React.createElement(TableRow, { key: plan.tier }, /* @__PURE__ */ React.createElement(TableCell, null, /* @__PURE__ */ React.createElement(Chip, { label: plan.tier, size: "small", color: "primary" })), /* @__PURE__ */ React.createElement(TableCell, null, formatLimits(plan.limits))))))))), selectedTab === oidcTabIndex && hasOIDCTab && /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12, md: 6 }, /* @__PURE__ */ React.createElement(InfoCard, { title: "OIDC Provider Discovery" }, /* @__PURE__ */ React.createElement(Box, { p: 2 }, /* @__PURE__ */ React.createElement(Grid, { container: true, spacing: 2 }, /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, "This API uses OIDC authentication. Obtain a token from the identity provider below.")), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, /* @__PURE__ */ React.createElement("strong", null, "Identity Provider: "), /* @__PURE__ */ React.createElement(Link, { to: jwtIssuer, target: "_blank" }, jwtIssuer))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, /* @__PURE__ */ React.createElement("strong", null, "Token Endpoint: "), /* @__PURE__ */ React.createElement(Link, { to: jwtTokenEndpoint, target: "_blank" }, jwtTokenEndpoint))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(
|
|
235
|
+
CodeSnippet,
|
|
236
|
+
{
|
|
237
|
+
text: `# Example (Client Credentials Flow):
|
|
238
|
+
curl -X POST \\
|
|
239
|
+
-d "grant_type=client_credentials" \\
|
|
240
|
+
-d "client_id=YOUR_CLIENT_ID" \\
|
|
241
|
+
-d "client_secret=YOUR_CLIENT_SECRET" \\
|
|
242
|
+
${jwtTokenEndpoint}
|
|
243
|
+
`,
|
|
244
|
+
language: "bash",
|
|
245
|
+
showCopyCodeButton: true
|
|
246
|
+
}
|
|
247
|
+
))))))), /* @__PURE__ */ React.createElement(
|
|
224
248
|
EditAPIProductDialog,
|
|
225
249
|
{
|
|
226
250
|
open: editDialogOpen,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiProductDetailPage.esm.js","sources":["../../../src/components/ApiProductDetailPage/ApiProductDetailPage.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport {\n useApi,\n configApiRef,\n fetchApiRef,\n alertApiRef,\n} from \"@backstage/core-plugin-api\";\nimport { useAsync } from \"react-use\";\nimport {\n Header,\n Page,\n Content,\n Progress,\n ResponseErrorPanel,\n InfoCard,\n Link,\n Breadcrumbs,\n} from \"@backstage/core-components\";\nimport {\n Box,\n Typography,\n IconButton,\n Tooltip,\n Tabs,\n Tab,\n Button,\n makeStyles,\n Grid,\n Chip,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n} from \"@material-ui/core\";\nimport ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport { APIProduct } from \"../../types/api-management\";\nimport { EditAPIProductDialog } from \"../EditAPIProductDialog\";\nimport { ConfirmDeleteDialog } from \"../ConfirmDeleteDialog\";\nimport { ApiProductDetails } from \"../ApiProductDetails\";\nimport { useKuadrantPermission } from \"../../utils/permissions\";\nimport {\n kuadrantApiProductUpdateAllPermission,\n kuadrantApiProductDeleteAllPermission,\n} from \"../../permissions\";\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontWeight: 600,\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(0.5),\n fontSize: '0.75rem',\n textTransform: 'uppercase',\n },\n actionButtons: {\n display: \"flex\",\n gap: theme.spacing(1),\n alignItems: \"center\",\n },\n cardHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n marginBottom: theme.spacing(2),\n },\n cardActions: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ApiProductDetailPage = () => {\n const classes = useStyles();\n const { namespace, name } = useParams<{ namespace: string; name: string }>();\n const navigate = useNavigate();\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const alertApi = useApi(alertApiRef);\n const backendUrl = config.getString(\"backend.baseUrl\");\n\n const [selectedTab, setSelectedTab] = useState(0);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [deleting, setDeleting] = useState(false);\n const [refreshKey, setRefreshKey] = useState(0);\n\n const { allowed: canUpdateApiProduct } = useKuadrantPermission(kuadrantApiProductUpdateAllPermission);\n const { allowed: canDeleteApiProduct } = useKuadrantPermission(kuadrantApiProductDeleteAllPermission);\n const canPublishApiProduct = canUpdateApiProduct;\n\n const {\n value: product,\n loading,\n error,\n } = useAsync(async () => {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`\n );\n\n if (!response.ok) {\n throw new Error(\"Failed to fetch API product\");\n }\n\n return response.json() as Promise<APIProduct>;\n }, [namespace, name, backendUrl, fetchApi, refreshKey]);\n\n const handlePublishToggle = async () => {\n if (!product) return;\n const newStatus = product.spec?.publishStatus === \"Published\" ? \"Draft\" : \"Published\";\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n {\n method: \"PATCH\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ spec: { publishStatus: newStatus } }),\n }\n );\n if (!response.ok) throw new Error(\"Failed to update publish status\");\n alertApi.post({\n message: `API Product ${newStatus === \"Published\" ? \"published\" : \"unpublished\"} successfully`,\n severity: \"success\",\n display: \"transient\",\n });\n setRefreshKey((k) => k + 1);\n } catch (err) {\n alertApi.post({\n message: \"Failed to update publish status\",\n severity: \"error\",\n display: \"transient\",\n });\n }\n };\n\n const handleEditSuccess = () => {\n setEditDialogOpen(false);\n setRefreshKey((k) => k + 1);\n alertApi.post({\n message: \"API Product updated successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n };\n\n const handleDelete = async () => {\n if (!product) return;\n setDeleting(true);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n { method: \"DELETE\" }\n );\n if (!response.ok) throw new Error(\"Failed to delete API product\");\n setDeleteDialogOpen(false);\n alertApi.post({\n message: \"API Product deleted successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n navigate(\"/kuadrant/api-products\");\n } catch (err) {\n alertApi.post({\n message: \"Failed to delete API product\",\n severity: \"error\",\n display: \"transient\",\n });\n } finally {\n setDeleting(false);\n }\n };\n\n if (loading) {\n return <Progress />;\n }\n\n if (error || !product) {\n return (\n <ResponseErrorPanel error={error || new Error(\"API product not found\")} />\n );\n }\n\n const isPublished = product.spec?.publishStatus === \"Published\";\n\n // get policy conditions from status\n const planPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"PlanPolicyDiscovered\"\n );\n const authPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"AuthPolicyDiscovered\"\n );\n const discoveredPlans = product.status?.discoveredPlans || [];\n\n // compute tab indices\n const hasDefinitionTab = !!product.spec?.documentation?.openAPISpecURL;\n const hasPoliciesTab = !!(planPolicyCondition || authPolicyCondition || discoveredPlans.length > 0);\n const definitionTabIndex = hasDefinitionTab ? 1 : -1;\n const policiesTabIndex = hasPoliciesTab ? (hasDefinitionTab ? 2 : 1) : -1;\n\n const formatLimits = (limits: any): string => {\n if (!limits) return \"No limits\";\n const parts: string[] = [];\n if (limits.daily) parts.push(`${limits.daily}/day`);\n if (limits.weekly) parts.push(`${limits.weekly}/week`);\n if (limits.monthly) parts.push(`${limits.monthly}/month`);\n if (limits.yearly) parts.push(`${limits.yearly}/year`);\n return parts.length > 0 ? parts.join(\", \") : \"No limits\";\n };\n\n return (\n <Page themeId=\"tool\">\n <Header\n title={product.spec?.displayName || product.metadata.name}\n subtitle={product.spec?.description || \"\"}\n >\n <Box className={classes.actionButtons}>\n <Link to=\"/kuadrant/api-products\">\n <Button startIcon={<ArrowBackIcon />}>Back</Button>\n </Link>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <Tooltip title=\"Edit\">\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon />\n </IconButton>\n </Tooltip>\n )}\n {canDeleteApiProduct && (\n <Tooltip title=\"Delete\">\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n </Header>\n <Content>\n <Box mb={2}>\n <Breadcrumbs aria-label=\"breadcrumb\">\n <Link to=\"/kuadrant/api-products\">API Products</Link>\n <Typography>{product.spec?.displayName || product.metadata.name}</Typography>\n </Breadcrumbs>\n </Box>\n\n <Box mb={2}>\n <Tabs\n value={selectedTab}\n onChange={(_, newValue) => setSelectedTab(newValue)}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n <Tab label=\"Overview\" />\n {hasDefinitionTab && <Tab label=\"Definition\" />}\n {hasPoliciesTab && <Tab label=\"Policies\" />}\n </Tabs>\n </Box>\n\n {selectedTab === 0 && (\n <InfoCard title=\"API Product\">\n <Box className={classes.cardHeader}>\n <Box>\n <Typography variant=\"caption\" className={classes.label}>\n Product Name\n </Typography>\n <Typography variant=\"h6\">\n {product.spec?.displayName || product.metadata.name}\n </Typography>\n </Box>\n <Box className={classes.cardActions}>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n size=\"small\"\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon fontSize=\"small\" />\n </IconButton>\n )}\n {canDeleteApiProduct && (\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n </Box>\n\n <ApiProductDetails\n product={product}\n showStatus={true}\n showCatalogLink={true}\n />\n </InfoCard>\n )}\n\n {selectedTab === definitionTabIndex && hasDefinitionTab && (\n <InfoCard title=\"API Definition\">\n <Typography variant=\"body2\" color=\"textSecondary\">\n View the OpenAPI specification at:{\" \"}\n <Link to={product.spec?.documentation?.openAPISpecURL || \"\"} target=\"_blank\">\n {product.spec?.documentation?.openAPISpecURL}\n </Link>\n </Typography>\n </InfoCard>\n )}\n\n {selectedTab === policiesTabIndex && hasPoliciesTab && (\n <Grid container spacing={3}>\n <Grid item xs={12}>\n <InfoCard title=\"Discovered Policies\">\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Plan Policy\n </Typography>\n {planPolicyCondition ? (\n <Box>\n <Chip\n label={planPolicyCondition.status === \"True\" ? \"Found\" : \"Not Found\"}\n size=\"small\"\n style={{\n backgroundColor: planPolicyCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n <Typography variant=\"body2\">\n {planPolicyCondition.message || \"No details available\"}\n </Typography>\n </Box>\n ) : (\n <Typography variant=\"body2\">No plan policy information</Typography>\n )}\n </Grid>\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Auth Policy\n </Typography>\n {authPolicyCondition ? (\n <Box>\n <Chip\n label={authPolicyCondition.status === \"True\" ? \"Found\" : \"Not Found\"}\n size=\"small\"\n style={{\n backgroundColor: authPolicyCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n <Typography variant=\"body2\">\n {authPolicyCondition.message || \"No details available\"}\n </Typography>\n </Box>\n ) : (\n <Typography variant=\"body2\">No auth policy information</Typography>\n )}\n </Grid>\n </Grid>\n </InfoCard>\n </Grid>\n\n {discoveredPlans.length > 0 && (\n <Grid item xs={12}>\n <InfoCard title=\"Effective Plan Tiers\">\n <Typography variant=\"body2\" color=\"textSecondary\" paragraph>\n These tiers are computed from all attached PlanPolicies (including gateway-level policies).\n </Typography>\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell>Tier</TableCell>\n <TableCell>Rate Limits</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {discoveredPlans.map((plan) => (\n <TableRow key={plan.tier}>\n <TableCell>\n <Chip label={plan.tier} size=\"small\" color=\"primary\" />\n </TableCell>\n <TableCell>{formatLimits(plan.limits)}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </InfoCard>\n </Grid>\n )}\n </Grid>\n )}\n </Content>\n\n <EditAPIProductDialog\n open={editDialogOpen}\n onClose={() => setEditDialogOpen(false)}\n onSuccess={handleEditSuccess}\n namespace={namespace || \"\"}\n name={name || \"\"}\n />\n\n <ConfirmDeleteDialog\n open={deleteDialogOpen}\n title=\"Delete API Product\"\n description={`Are you sure you want to delete \"${product.spec?.displayName || product.metadata.name}\"? This action cannot be undone.`}\n severity=\"high\"\n confirmText={product.metadata.name}\n deleting={deleting}\n onConfirm={handleDelete}\n onCancel={() => setDeleteDialogOpen(false)}\n />\n </Page>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApiProductDetailPage.esm.js","sources":["../../../src/components/ApiProductDetailPage/ApiProductDetailPage.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport {\n useApi,\n configApiRef,\n fetchApiRef,\n alertApiRef,\n} from \"@backstage/core-plugin-api\";\nimport { useAsync } from \"react-use\";\nimport {\n Header,\n Page,\n Content,\n Progress,\n ResponseErrorPanel,\n InfoCard,\n Link,\n Breadcrumbs,\n CodeSnippet,\n} from \"@backstage/core-components\";\nimport {\n Box,\n Typography,\n IconButton,\n Tooltip,\n Tabs,\n Tab,\n Button,\n makeStyles,\n Grid,\n Chip,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n} from \"@material-ui/core\";\nimport ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport { APIProduct } from \"../../types/api-management\";\nimport { EditAPIProductDialog } from \"../EditAPIProductDialog\";\nimport { ConfirmDeleteDialog } from \"../ConfirmDeleteDialog\";\nimport { ApiProductDetails } from \"../ApiProductDetails\";\nimport { useKuadrantPermission } from \"../../utils/permissions\";\nimport {\n kuadrantApiProductUpdateAllPermission,\n kuadrantApiProductDeleteAllPermission,\n} from \"../../permissions\";\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontWeight: 600,\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(0.5),\n fontSize: '0.75rem',\n textTransform: 'uppercase',\n },\n actionButtons: {\n display: \"flex\",\n gap: theme.spacing(1),\n alignItems: \"center\",\n },\n cardHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n marginBottom: theme.spacing(2),\n },\n cardActions: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ApiProductDetailPage = () => {\n const classes = useStyles();\n const { namespace, name } = useParams<{ namespace: string; name: string }>();\n const navigate = useNavigate();\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const alertApi = useApi(alertApiRef);\n const backendUrl = config.getString(\"backend.baseUrl\");\n\n const [selectedTab, setSelectedTab] = useState(0);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [deleting, setDeleting] = useState(false);\n const [refreshKey, setRefreshKey] = useState(0);\n\n const { allowed: canUpdateApiProduct } = useKuadrantPermission(kuadrantApiProductUpdateAllPermission);\n const { allowed: canDeleteApiProduct } = useKuadrantPermission(kuadrantApiProductDeleteAllPermission);\n const canPublishApiProduct = canUpdateApiProduct;\n\n const {\n value: product,\n loading,\n error,\n } = useAsync(async () => {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`\n );\n\n if (!response.ok) {\n throw new Error(\"Failed to fetch API product\");\n }\n\n return response.json() as Promise<APIProduct>;\n }, [namespace, name, backendUrl, fetchApi, refreshKey]);\n\n const handlePublishToggle = async () => {\n if (!product) return;\n const newStatus = product.spec?.publishStatus === \"Published\" ? \"Draft\" : \"Published\";\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n {\n method: \"PATCH\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ spec: { publishStatus: newStatus } }),\n }\n );\n if (!response.ok) throw new Error(\"Failed to update publish status\");\n alertApi.post({\n message: `API Product ${newStatus === \"Published\" ? \"published\" : \"unpublished\"} successfully`,\n severity: \"success\",\n display: \"transient\",\n });\n setRefreshKey((k) => k + 1);\n } catch (err) {\n alertApi.post({\n message: \"Failed to update publish status\",\n severity: \"error\",\n display: \"transient\",\n });\n }\n };\n\n const handleEditSuccess = () => {\n setEditDialogOpen(false);\n setRefreshKey((k) => k + 1);\n alertApi.post({\n message: \"API Product updated successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n };\n\n const handleDelete = async () => {\n if (!product) return;\n setDeleting(true);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n { method: \"DELETE\" }\n );\n if (!response.ok) throw new Error(\"Failed to delete API product\");\n setDeleteDialogOpen(false);\n alertApi.post({\n message: \"API Product deleted successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n navigate(\"/kuadrant/api-products\");\n } catch (err) {\n alertApi.post({\n message: \"Failed to delete API product\",\n severity: \"error\",\n display: \"transient\",\n });\n } finally {\n setDeleting(false);\n }\n };\n\n if (loading) {\n return <Progress />;\n }\n\n if (error || !product) {\n return (\n <ResponseErrorPanel error={error || new Error(\"API product not found\")} />\n );\n }\n\n const isPublished = product.spec?.publishStatus === \"Published\";\n\n // get policy conditions from status\n const planPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"PlanPolicyDiscovered\"\n );\n const authPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"AuthPolicyDiscovered\"\n );\n const discoveredPlans = product.status?.discoveredPlans || [];\n\n const authSchemes = product.status?.discoveredAuthScheme?.authentication || {};\n const schemeObjects = Object.values(authSchemes);\n const hasOIDCTab = schemeObjects.some((scheme: any) =>\n scheme.hasOwnProperty(\"jwt\"),\n );\n // Extract JWT issuer from the first JWT scheme\n const jwtScheme = schemeObjects.find((scheme: any) => scheme.hasOwnProperty(\"jwt\"));\n const jwtIssuer = (jwtScheme as any)?.jwt?.issuerUrl || \"unknown\";\n const jwtTokenEndpoint = product.status?.oidcDiscovery?.tokenEndpoint || \"unknown\";\n\n // compute tab indices\n const hasDefinitionTab = !!product.spec?.documentation?.openAPISpecURL;\n const hasPoliciesTab = !!(planPolicyCondition || authPolicyCondition || discoveredPlans.length > 0);\n\n let nextIndex = 1; // Overview is always at index 0\n const definitionTabIndex = hasDefinitionTab ? nextIndex++ : -1;\n const policiesTabIndex = hasPoliciesTab ? nextIndex++ : -1;\n const oidcTabIndex = hasOIDCTab ? nextIndex++ : -1;\n\n const formatLimits = (limits: any): string => {\n if (!limits) return \"No limits\";\n const parts: string[] = [];\n if (limits.daily) parts.push(`${limits.daily}/day`);\n if (limits.weekly) parts.push(`${limits.weekly}/week`);\n if (limits.monthly) parts.push(`${limits.monthly}/month`);\n if (limits.yearly) parts.push(`${limits.yearly}/year`);\n return parts.length > 0 ? parts.join(\", \") : \"No limits\";\n };\n\n return (\n <Page themeId=\"tool\">\n <Header\n title={product.spec?.displayName || product.metadata.name}\n subtitle={product.spec?.description || \"\"}\n >\n <Box className={classes.actionButtons}>\n <Link to=\"/kuadrant/api-products\">\n <Button startIcon={<ArrowBackIcon />}>Back</Button>\n </Link>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <Tooltip title=\"Edit\">\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon />\n </IconButton>\n </Tooltip>\n )}\n {canDeleteApiProduct && (\n <Tooltip title=\"Delete\">\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n </Header>\n <Content>\n <Box mb={2}>\n <Breadcrumbs aria-label=\"breadcrumb\">\n <Link to=\"/kuadrant/api-products\">API Products</Link>\n <Typography>{product.spec?.displayName || product.metadata.name}</Typography>\n </Breadcrumbs>\n </Box>\n\n <Box mb={2}>\n <Tabs\n value={selectedTab}\n onChange={(_, newValue) => setSelectedTab(newValue)}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n <Tab label=\"Overview\" />\n {hasDefinitionTab && <Tab label=\"Definition\" />}\n {hasPoliciesTab && <Tab label=\"Policies\" />}\n {hasOIDCTab && <Tab label=\"OIDC\" />}\n </Tabs>\n </Box>\n\n {selectedTab === 0 && (\n <InfoCard title=\"API Product\">\n <Box className={classes.cardHeader}>\n <Box>\n <Typography variant=\"caption\" className={classes.label}>\n Product Name\n </Typography>\n <Typography variant=\"h6\">\n {product.spec?.displayName || product.metadata.name}\n </Typography>\n </Box>\n <Box className={classes.cardActions}>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n size=\"small\"\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon fontSize=\"small\" />\n </IconButton>\n )}\n {canDeleteApiProduct && (\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n </Box>\n\n <ApiProductDetails\n product={product}\n showStatus={true}\n showCatalogLink={true}\n />\n </InfoCard>\n )}\n\n {selectedTab === definitionTabIndex && hasDefinitionTab && (\n <InfoCard title=\"API Definition\">\n <Typography variant=\"body2\" color=\"textSecondary\">\n View the OpenAPI specification at:{\" \"}\n <Link to={product.spec?.documentation?.openAPISpecURL || \"\"} target=\"_blank\">\n {product.spec?.documentation?.openAPISpecURL}\n </Link>\n </Typography>\n </InfoCard>\n )}\n\n {selectedTab === policiesTabIndex && hasPoliciesTab && (\n <Grid container spacing={3}>\n <Grid item xs={12}>\n <InfoCard title=\"Discovered Policies\">\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Plan Policy\n </Typography>\n {planPolicyCondition ? (\n <Box>\n <Chip\n label={planPolicyCondition.status === \"True\" ? \"Found\" : \"Not Found\"}\n size=\"small\"\n style={{\n backgroundColor: planPolicyCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n <Typography variant=\"body2\">\n {planPolicyCondition.message || \"No details available\"}\n </Typography>\n </Box>\n ) : (\n <Typography variant=\"body2\">No plan policy information</Typography>\n )}\n </Grid>\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Auth Policy\n </Typography>\n {authPolicyCondition ? (\n <Box>\n <Chip\n label={authPolicyCondition.status === \"True\" ? \"Found\" : \"Not Found\"}\n size=\"small\"\n style={{\n backgroundColor: authPolicyCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n <Typography variant=\"body2\">\n {authPolicyCondition.message || \"No details available\"}\n </Typography>\n </Box>\n ) : (\n <Typography variant=\"body2\">No auth policy information</Typography>\n )}\n </Grid>\n </Grid>\n </InfoCard>\n </Grid>\n\n {discoveredPlans.length > 0 && (\n <Grid item xs={12}>\n <InfoCard title=\"Effective Plan Tiers\">\n <Typography variant=\"body2\" color=\"textSecondary\" paragraph>\n These tiers are computed from all attached PlanPolicies (including gateway-level policies).\n </Typography>\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell>Tier</TableCell>\n <TableCell>Rate Limits</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {discoveredPlans.map((plan) => (\n <TableRow key={plan.tier}>\n <TableCell>\n <Chip label={plan.tier} size=\"small\" color=\"primary\" />\n </TableCell>\n <TableCell>{formatLimits(plan.limits)}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </InfoCard>\n </Grid>\n )}\n </Grid>\n )}\n\n {selectedTab === oidcTabIndex && hasOIDCTab && (\n <Grid item xs={12} md={6}>\n <InfoCard title=\"OIDC Provider Discovery\">\n <Box p={2}>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <Typography variant=\"body2\">\n This API uses OIDC authentication. Obtain a token from the identity provider below.\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\">\n <strong>Identity Provider: </strong>\n <Link to={jwtIssuer} target=\"_blank\">\n {jwtIssuer}\n </Link>\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\">\n <strong>Token Endpoint: </strong>\n <Link to={jwtTokenEndpoint} target=\"_blank\">\n {jwtTokenEndpoint}\n </Link>\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <CodeSnippet\n text={`# Example (Client Credentials Flow):\ncurl -X POST \\\\\n -d \"grant_type=client_credentials\" \\\\\n -d \"client_id=YOUR_CLIENT_ID\" \\\\\n -d \"client_secret=YOUR_CLIENT_SECRET\" \\\\\n ${jwtTokenEndpoint}\n`} // notsecret - template for user's own api key\n language=\"bash\"\n showCopyCodeButton\n />\n </Grid>\n </Grid>\n </Box>\n </InfoCard>\n </Grid>\n )}\n </Content>\n\n <EditAPIProductDialog\n open={editDialogOpen}\n onClose={() => setEditDialogOpen(false)}\n onSuccess={handleEditSuccess}\n namespace={namespace || \"\"}\n name={name || \"\"}\n />\n\n <ConfirmDeleteDialog\n open={deleteDialogOpen}\n title=\"Delete API Product\"\n description={`Are you sure you want to delete \"${product.spec?.displayName || product.metadata.name}\"? This action cannot be undone.`}\n severity=\"high\"\n confirmText={product.metadata.name}\n deleting={deleting}\n onConfirm={handleDelete}\n onCancel={() => setDeleteDialogOpen(false)}\n />\n </Page>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__load_plugin_entry__("internal.plugin-kuadrant",(()=>{"use strict";var h,e,g,a,t,i,l,r,n,s,_,c,u,o,f,y,d,x,b,p,m,v={76741:(h,e,g)=>{var a={PluginRoot:()=>g.e(879).then(()=>()=>g(72627)),KuadrantPage:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiAccessCard:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiKeyManagementTab:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiKeysContent:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiProductInfoContent:()=>g.e(879).then(()=>()=>g(72627)),KuadrantApprovalQueueCard:()=>g.e(879).then(()=>()=>g(72627))},t=(h,e)=>(g.R=e,e=g.o(a,h)?a[h]():Promise.resolve().then(()=>{throw new Error('Module "'+h+'" does not exist in container.')}),g.R=void 0,e),i=(h,e)=>{if(g.S){var a="default",t=g.S[a];if(t&&t!==h)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return g.S[a]=h,g.I(a,e)}};g.d(e,{get:()=>t,init:()=>i})}},k={};function w(h){var e=k[h];if(void 0!==e)return e.exports;var g=k[h]={id:h,loaded:!1,exports:{}};return v[h].call(g.exports,g,g.exports,w),g.loaded=!0,g.exports}return w.m=v,w.c=k,w.n=h=>{var e=h&&h.__esModule?()=>h.default:()=>h;return w.d(e,{a:e}),e},e=Object.getPrototypeOf?h=>Object.getPrototypeOf(h):h=>h.__proto__,w.t=function(g,a){if(1&a&&(g=this(g)),8&a)return g;if("object"==typeof g&&g){if(4&a&&g.__esModule)return g;if(16&a&&"function"==typeof g.then)return g}var t=Object.create(null);w.r(t);var i={};h=h||[null,e({}),e([]),e(e)];for(var l=2&a&&g;("object"==typeof l||"function"==typeof l)&&!~h.indexOf(l);l=e(l))Object.getOwnPropertyNames(l).forEach(h=>i[h]=()=>g[h]);return i.default=()=>g,w.d(t,i),t},w.d=(h,e)=>{for(var g in e)w.o(e,g)&&!w.o(h,g)&&Object.defineProperty(h,g,{enumerable:!0,get:e[g]})},w.f={},w.e=h=>Promise.all(Object.keys(w.f).reduce((e,g)=>(w.f[g](h,e),e),[])),w.u=h=>"static/"+({51:"react-syntax-highlighter_languages_highlight_prolog",200:"react-syntax-highlighter_languages_highlight_mel",206:"react-syntax-highlighter_languages_highlight_gml",371:"react-syntax-highlighter_languages_highlight_excel",456:"react-syntax-highlighter_languages_highlight_roboconf",460:"react-syntax-highlighter_languages_highlight_avrasm",464:"react-syntax-highlighter_languages_highlight_shell",557:"react-syntax-highlighter_languages_highlight_oneC",579:"react-syntax-highlighter_languages_highlight_vbnet",634:"react-syntax-highlighter_languages_highlight_scilab",879:"exposed-PluginRoot",927:"react-syntax-highlighter_languages_highlight_javascript",946:"react-syntax-highlighter_languages_highlight_clojure",985:"react-syntax-highlighter_languages_highlight_monkey",1062:"react-syntax-highlighter_languages_highlight_nim",1084:"react-syntax-highlighter_languages_highlight_aspectj",1099:"react-syntax-highlighter_languages_highlight_ebnf",1173:"react-syntax-highlighter_languages_highlight_autohotkey",1177:"react-syntax-highlighter_languages_highlight_profile",1214:"react-syntax-highlighter_languages_highlight_properties",1276:"react-syntax-highlighter_languages_highlight_phpTemplate",1325:"react-syntax-highlighter_languages_highlight_actionscript",1352:"react-syntax-highlighter_languages_highlight_fortran",1362:"react-syntax-highlighter_languages_highlight_mathematica",1418:"react-syntax-highlighter_languages_highlight_pony",1441:"react-syntax-highlighter_languages_highlight_coq",1461:"react-syntax-highlighter_languages_highlight_livescript",1489:"react-syntax-highlighter_languages_highlight_reasonml",1496:"react-syntax-highlighter_languages_highlight_lua",1522:"react-syntax-highlighter_languages_highlight_dust",1679:"react-syntax-highlighter_languages_highlight_scheme",1694:"react-syntax-highlighter_languages_highlight_accesslog",1727:"react-syntax-highlighter_languages_highlight_oxygene",1750:"react-syntax-highlighter_languages_highlight_makefile",1828:"react-syntax-highlighter_languages_highlight_dockerfile",1895:"react-syntax-highlighter_languages_highlight_pythonRepl",1956:"react-syntax-highlighter_languages_highlight_puppet",1961:"react-syntax-highlighter_languages_highlight_stan",1972:"react-syntax-highlighter_languages_highlight_fsharp",2007:"react-syntax-highlighter_languages_highlight_css",2064:"react-syntax-highlighter_languages_highlight_vhdl",2108:"react-syntax-highlighter_languages_highlight_cLike",2180:"react-syntax-highlighter_languages_highlight_sqf",2234:"react-syntax-highlighter_languages_highlight_lisp",2267:"react-syntax-highlighter_languages_highlight_maxima",2346:"react-syntax-highlighter_languages_highlight_d",2362:"react-syntax-highlighter_languages_highlight_xquery",2378:"react-syntax-highlighter_languages_highlight_parser3",2383:"react-syntax-highlighter_languages_highlight_crmsh",2438:"react-syntax-highlighter_languages_highlight_haxe",2488:"react-syntax-highlighter_languages_highlight_verilog",2496:"react-syntax-highlighter_languages_highlight_erlangRepl",2512:"react-syntax-highlighter_languages_highlight_stylus",2516:"react-syntax-highlighter_languages_highlight_apache",2665:"react-syntax-highlighter_languages_highlight_powershell",2693:"react-syntax-highlighter_languages_highlight_tap",2727:"react-syntax-highlighter_languages_highlight_q",2743:"react-syntax-highlighter_languages_highlight_asciidoc",2762:"react-syntax-highlighter_languages_highlight_haskell",2795:"react-syntax-highlighter_languages_highlight_dns",2871:"react-syntax-highlighter_languages_highlight_typescript",2882:"react-syntax-highlighter_languages_highlight_sml",2979:"react-syntax-highlighter_languages_highlight_plaintext",2981:"react-syntax-highlighter_languages_highlight_ruleslanguage",2983:"react-syntax-highlighter_languages_highlight_golo",3146:"react-syntax-highlighter_languages_highlight_purebasic",3193:"react-syntax-highlighter_languages_highlight_xml",3299:"react-syntax-highlighter_languages_highlight_fix",3357:"react-syntax-highlighter_languages_highlight_x86asm",3384:"react-syntax-highlighter_languages_highlight_ini",3418:"react-syntax-highlighter_languages_highlight_ruby",3419:"react-syntax-highlighter_languages_highlight_nix",3487:"react-syntax-highlighter_languages_highlight_mipsasm",3500:"react-syntax-highlighter_languages_highlight_autoit",3540:"react-syntax-highlighter_languages_highlight_moonscript",3562:"react-syntax-highlighter_languages_highlight_gams",3580:"react-syntax-highlighter_languages_highlight_csp",3607:"react-syntax-highlighter_languages_highlight_abnf",3623:"react-syntax-highlighter_languages_highlight_yaml",3722:"react-syntax-highlighter_languages_highlight_latex",3736:"react-syntax-highlighter_languages_highlight_json",3811:"react-syntax-highlighter_languages_highlight_erb",3885:"react-syntax-highlighter_languages_highlight_stata",3923:"react-syntax-highlighter_languages_highlight_applescript",3988:"react-syntax-highlighter_languages_highlight_vala",4014:"react-syntax-highlighter_languages_highlight_scss",4075:"react-syntax-highlighter_languages_highlight_hsp",4110:"react-syntax-highlighter_languages_highlight_tp",4135:"react-syntax-highlighter_languages_highlight_mizar",4282:"react-syntax-highlighter_languages_highlight_livecodeserver",4300:"react-syntax-highlighter_languages_highlight_r",4342:"react-syntax-highlighter_languages_highlight_php",4383:"react-syntax-highlighter_languages_highlight_dsconfig",4436:"react-syntax-highlighter_languages_highlight_zephir",4446:"react-syntax-highlighter_languages_highlight_leaf",4493:"react-syntax-highlighter_languages_highlight_gauss",4575:"react-syntax-highlighter_languages_highlight_processing",4635:"react-syntax-highlighter_languages_highlight_jbossCli",4733:"react-syntax-highlighter_languages_highlight_llvm",4835:"react-syntax-highlighter_languages_highlight_cos",4931:"react-syntax-highlighter_languages_highlight_step21",4956:"react-syntax-highlighter_languages_highlight_angelscript",4971:"react-syntax-highlighter_languages_highlight_lsl",5034:"react-syntax-highlighter_languages_highlight_ada",5051:"react-syntax-highlighter_languages_highlight_coffeescript",5099:"react-syntax-highlighter_languages_highlight_nsis",5123:"react-syntax-highlighter_languages_highlight_erlang",5189:"react-syntax-highlighter_languages_highlight_dts",5251:"react-syntax-highlighter_languages_highlight_pgsql",5253:"react-syntax-highlighter_languages_highlight_clojureRepl",5286:"react-syntax-highlighter_languages_highlight_nginx",5446:"react-syntax-highlighter_languages_highlight_ocaml",5565:"react-syntax-highlighter_languages_highlight_kotlin",5613:"react-syntax-highlighter_languages_highlight_rib",5664:"react-syntax-highlighter_languages_highlight_dos",5773:"react-syntax-highlighter_languages_highlight_mojolicious",5813:"react-syntax-highlighter_languages_highlight_less",5819:"react-syntax-highlighter_languages_highlight_gradle",5868:"react-syntax-highlighter_languages_highlight_inform7",5900:"react-syntax-highlighter_languages_highlight_lasso",6057:"react-syntax-highlighter_languages_highlight_sqlMore",6152:"react-syntax-highlighter_languages_highlight_vbscriptHtml",6161:"react-syntax-highlighter_languages_highlight_clean",6177:"react-syntax-highlighter_languages_highlight_taggerscript",6195:"react-syntax-highlighter_languages_highlight_ldif",6228:"react-syntax-highlighter_languages_highlight_rust",6267:"react-syntax-highlighter_languages_highlight_swift",6354:"react-syntax-highlighter_languages_highlight_java",6501:"react-syntax-highlighter_languages_highlight_armasm",6512:"react-syntax-highlighter_languages_highlight_scala",6542:"react-syntax-highlighter_languages_highlight_vim",6555:"react-syntax-highlighter_languages_highlight_openscad",6573:"react-syntax-highlighter_languages_highlight_cpp",6780:"react-syntax-highlighter_languages_highlight_qml",6835:"react-syntax-highlighter_languages_highlight_brainfuck",6848:"react-syntax-highlighter_languages_highlight_crystal",6924:"react-syntax-highlighter_languages_highlight_isbl",6977:"react-syntax-highlighter_languages_highlight_rsl",6986:"react-syntax-highlighter_languages_highlight_capnproto",7048:"react-syntax-highlighter_languages_highlight_gherkin",7079:"react-syntax-highlighter_languages_highlight_diff",7131:"react-syntax-highlighter_languages_highlight_protobuf",7209:"react-syntax-highlighter_languages_highlight_perl",7247:"react-syntax-highlighter_languages_highlight_cmake",7254:"react-syntax-highlighter_languages_highlight_subunit",7351:"react-syntax-highlighter_languages_highlight_elixir",7401:"react-syntax-highlighter_languages_highlight_sas",7406:"react-syntax-highlighter_languages_highlight_sql",7439:"react-syntax-highlighter_languages_highlight_flix",7533:"react-syntax-highlighter_languages_highlight_awk",7572:"react-syntax-highlighter_languages_highlight_basic",7764:"react-syntax-highlighter_languages_highlight_go",7776:"react-syntax-highlighter_languages_highlight_haml",7794:"react-syntax-highlighter_languages_highlight_http",7818:"react-syntax-highlighter_languages_highlight_arduino",7879:"react-syntax-highlighter_languages_highlight_csharp",7934:"react-syntax-highlighter_languages_highlight_glsl",7959:"react-syntax-highlighter_languages_highlight_htmlbars",8001:"react-syntax-highlighter_languages_highlight_matlab",8030:"react-syntax-highlighter_languages_highlight_handlebars",8058:"react-syntax-highlighter_languages_highlight_n1ql",8078:"react-syntax-highlighter_languages_highlight_delphi",8138:"react-syntax-highlighter_languages_highlight_elm",8140:"react-syntax-highlighter_languages_highlight_pf",8216:"react-syntax-highlighter_languages_highlight_bnf",8217:"react-syntax-highlighter_languages_highlight_twig",8331:"react-syntax-highlighter_languages_highlight_thrift",8338:"react-syntax-highlighter_languages_highlight_objectivec",8549:"react-syntax-highlighter_languages_highlight_c",8595:"react-syntax-highlighter_languages_highlight_hy",8705:"react-syntax-highlighter_languages_highlight_nodeRepl",8725:"react-syntax-highlighter_languages_highlight_smalltalk",8727:"react-syntax-highlighter/lowlight-import",8753:"react-syntax-highlighter_languages_highlight_mercury",8755:"react-syntax-highlighter_languages_highlight_tcl",8763:"react-syntax-highlighter_languages_highlight_routeros",8833:"react-syntax-highlighter_languages_highlight_markdown",8874:"react-syntax-highlighter_languages_highlight_smali",8903:"react-syntax-highlighter_languages_highlight_axapta",8904:"react-syntax-highlighter_languages_highlight_python",8948:"react-syntax-highlighter_languages_highlight_groovy",9078:"react-syntax-highlighter_languages_highlight_irpf90",9118:"react-syntax-highlighter_languages_highlight_juliaRepl",9139:"react-syntax-highlighter_languages_highlight_django",9162:"react-syntax-highlighter_languages_highlight_ceylon",9175:"react-syntax-highlighter_languages_highlight_vbscript",9229:"react-syntax-highlighter_languages_highlight_julia",9265:"react-syntax-highlighter_languages_highlight_dart",9406:"react-syntax-highlighter_languages_highlight_cal",9612:"react-syntax-highlighter_languages_highlight_bash",9702:"react-syntax-highlighter_languages_highlight_gcode",9726:"react-syntax-highlighter_languages_highlight_xl",9882:"react-syntax-highlighter_languages_highlight_arcade"}[h]||h)+"."+{51:"be0fdf0c",200:"5251fe1a",206:"2347c999",371:"2f5c76b9",428:"0a290bc6",441:"9f02e61b",456:"47518214",460:"6381890e",464:"9bbc16eb",557:"362a3b0a",579:"21c190ed",634:"bb9cc730",879:"a5792fb2",927:"b0ad82d3",946:"e3fcc98c",985:"5f60f06d",1062:"17afaed1",1084:"35f221e8",1085:"536aa0fa",1099:"a34b6944",1173:"614c5248",1177:"615fa721",1214:"60f97895",1276:"2bd36dc7",1325:"78db0238",1352:"38ec3d00",1362:"d8631b37",1418:"1961f69f",1441:"6b156852",1461:"3ece3068",1489:"a5a73a29",1496:"52f73c98",1522:"b30d0c38",1613:"71f0fccd",1679:"508b5846",1694:"bd112f1a",1727:"ea742315",1750:"cad796c9",1828:"2c5fdf55",1836:"b74b4c40",1895:"feb72aed",1956:"ee3f80da",1961:"17155e77",1972:"2ba37c00",2007:"2cc312ae",2064:"dea9db6c",2108:"f884fdc0",2180:"43421810",2198:"5905970e",2234:"1cb2f675",2267:"f1f17544",2346:"bf4f2b44",2362:"353780d4",2378:"706a4bd6",2383:"58c4cb07",2438:"e2543cc2",2488:"e32adbeb",2496:"0d7f4890",2512:"cde06cf5",2516:"aa86d495",2628:"6619bf8b",2665:"7bd31b3a",2693:"402e473f",2727:"989943de",2743:"4b40a3f9",2759:"fceb317f",2762:"bbd3c104",2795:"6d79126a",2871:"cf576f17",2882:"0e45c1cf",2928:"4303c12e",2946:"167c50c2",2967:"ac3a4bee",2979:"25f8d292",2981:"038504d0",2983:"eaa5e2bf",2987:"1da15560",3007:"bffc9924",3097:"4bd6b35f",3144:"6f99ccee",3146:"08443005",3193:"ee14d6a4",3299:"5ee62733",3357:"217c56f0",3384:"d9d4ed7e",3418:"d84064e5",3419:"245f31b6",3459:"5c90b5a3",3466:"43dfe991",3487:"f5bc5b04",3500:"a06c1c62",3503:"66b6e510",3540:"443301b3",3562:"a45eb030",3580:"7fc6f9a3",3607:"bb6a8626",3623:"2aae489e",3647:"b96f9b3e",3650:"515c743a",3657:"59d45756",3722:"b4bb9102",3736:"d934b52b",3811:"4ac917b8",3885:"fe81a7fc",3923:"ddf703d6",3988:"843d9bc4",4014:"bec19089",4041:"29923ad9",4075:"5d714528",4110:"0f4ff415",4135:"9b39cf3b",4282:"f624f22d",4300:"8540ccea",4342:"ade4c6c4",4383:"c3457b50",4436:"fc94a148",4446:"92519810",4491:"83052809",4493:"cceeafb0",4570:"8b9f98d7",4575:"8d1f48c5",4635:"1ff533ef",4682:"6959fcd1",4733:"f32d41e6",4835:"78d69dee",4931:"a431b2db",4956:"f9816c44",4971:"b6519e02",5010:"a4aa0f8e",5034:"b0d90871",5051:"3bc87b5b",5099:"4934a8e8",5123:"501777c7",5189:"8fd3703c",5251:"5b0d21b9",5253:"e6dbc3b4",5286:"630147e0",5446:"0e42541e",5453:"280127dd",5565:"c5eaa6f5",5603:"05d9ca7f",5613:"dc8afdf1",5664:"1ede6e37",5773:"0cf721ff",5813:"cc574d49",5819:"72fdf84d",5868:"78be038f",5900:"8d4054e7",6057:"d69b1825",6152:"42eb54af",6161:"97b48014",6177:"695a2547",6195:"74045e43",6228:"7e26e901",6267:"7d33a4a9",6272:"b5ee5195",6354:"e04d1c07",6371:"c83dc422",6422:"97baf774",6501:"4bfb8996",6512:"a4629d0a",6542:"e82f126f",6555:"4a460eaf",6573:"ff6a8f78",6780:"8f3a0af6",6800:"736d5da3",6835:"31bde7c5",6840:"4728fab9",6848:"3a36e63f",6872:"7ef4ed23",6924:"abe269c1",6977:"909f2a27",6986:"79dfc31f",7048:"e740620a",7079:"a8373241",7131:"0cd375bc",7209:"ae8475a2",7247:"cb9028b5",7254:"c5ac3a0a",7351:"1e79c9b9",7401:"94075d6a",7406:"651dcc8d",7439:"972cc801",7533:"dfc9b0b0",7556:"aa8a002f",7572:"ec232b8a",7601:"4df83556",7764:"abc0a144",7776:"d698757b",7791:"12162a71",7794:"5859273c",7818:"9b9ce313",7879:"ea98c6fb",7934:"bb5b0086",7959:"e57e3c89",7984:"c8511b89",8001:"114e44eb",8030:"75c0a89b",8058:"c54b2c4a",8078:"588e191d",8138:"8a488b19",8140:"5052a768",8216:"84e0a497",8217:"5cb0fdfc",8331:"ecb04f2a",8338:"2d204375",8365:"d3360f18",8549:"b43ce116",8563:"7e068fb0",8595:"c60db034",8705:"5b05cdf2",8725:"53da57ca",8727:"2bd53873",8753:"fa8fdac0",8755:"79af288c",8763:"c0bcd6ce",8799:"7c749838",8833:"1489792c",8874:"4fa5afdd",8903:"80d14346",8904:"9e4100ae",8948:"ecd68b19",9078:"25afcc29",9118:"e3bfcde8",9139:"8fb85401",9162:"ab3b1c28",9175:"4703f4c5",9229:"f43a39d0",9265:"0a0b12af",9400:"df4a7fb5",9406:"781cc6c6",9612:"53f7c730",9702:"378d3296",9726:"7cff3cbb",9882:"70910623"}[h]+".chunk.js",w.miniCssF=h=>{},w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(h){if("object"==typeof window)return window}}(),w.o=(h,e)=>Object.prototype.hasOwnProperty.call(h,e),g={},a="internal.plugin-kuadrant:",w.l=(h,e,t,i)=>{if(g[h])g[h].push(e);else{var l,r;if(void 0!==t)for(var n=document.getElementsByTagName("script"),s=0;s<n.length;s++){var _=n[s];if(_.getAttribute("src")==h||_.getAttribute("data-webpack")==a+t){l=_;break}}l||(r=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,w.nc&&l.setAttribute("nonce",w.nc),l.setAttribute("data-webpack",a+t),l.src=h),g[h]=[e];var c=(e,a)=>{l.onerror=l.onload=null,clearTimeout(u);var t=g[h];if(delete g[h],l.parentNode&&l.parentNode.removeChild(l),t&&t.forEach(h=>h(a)),e)return e(a)},u=setTimeout(c.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=c.bind(null,l.onerror),l.onload=c.bind(null,l.onload),r&&document.head.appendChild(l)}},w.r=h=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(h,"__esModule",{value:!0})},w.nmd=h=>(h.paths=[],h.children||(h.children=[]),h),(()=>{w.S={};var h={},e={};w.I=(g,a)=>{a||(a=[]);var t=e[g];if(t||(t=e[g]={}),!(a.indexOf(t)>=0)){if(a.push(t),h[g])return h[g];w.o(w.S,g)||(w.S[g]={});var i=w.S[g],l="internal.plugin-kuadrant",r=(h,e,g,a)=>{var t=i[h]=i[h]||{},r=t[e];(!r||!r.loaded&&(!a!=!r.eager?a:l>r.from))&&(t[e]={get:g,from:l,eager:!!a})},n=[];return"default"===g&&(r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([w.e(7556),w.e(7601),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(47601))),r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([w.e(7556),w.e(428),w.e(5478),w.e(2469),w.e(4218),w.e(1085)]).then(()=>()=>w(20428))),r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([w.e(7556),w.e(6272),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(26272))),r("@backstage/core-plugin-api","1.11.1",()=>Promise.all([w.e(7556),w.e(3647),w.e(5478),w.e(2469),w.e(4218),w.e(3466)]).then(()=>()=>w(83647))),r("@backstage/version-bridge","1.0.11",()=>Promise.all([w.e(5478),w.e(5603)]).then(()=>()=>w(65603))),r("@material-ui/core/styles","4.12.4",()=>Promise.all([w.e(9400),w.e(5478),w.e(1942),w.e(4491)]).then(()=>()=>w(64491))),r("@material-ui/styles","4.11.5",()=>Promise.all([w.e(4570),w.e(5478),w.e(3007)]).then(()=>()=>w(94570))),r("react-dom","18.3.1",()=>Promise.all([w.e(3144),w.e(5478)]).then(()=>()=>w(43144))),r("react-router-dom","6.30.1",()=>Promise.all([w.e(1613),w.e(3657),w.e(5478),w.e(484),w.e(2731)]).then(()=>()=>w(73657))),r("react-router","6.30.1",()=>Promise.all([w.e(1613),w.e(1836),w.e(5478)]).then(()=>()=>w(51836))),r("react","18.3.1",()=>w.e(4041).then(()=>()=>w(14041)))),h[g]=n.length?Promise.all(n).then(()=>h[g]=1):1}}})(),(()=>{var h;w.g.importScripts&&(h=w.g.location+"");var e=w.g.document;if(!h&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(h=e.currentScript.src),!h)){var g=e.getElementsByTagName("script");if(g.length)for(var a=g.length-1;a>-1&&(!h||!/^http(s?):/.test(h));)h=g[a--].src}if(!h)throw new Error("Automatic publicPath is not supported in this browser");h=h.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),w.p=h})(),t=h=>{var e=h=>h.split(".").map(h=>+h==h?+h:h),g=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(h),a=g[1]?e(g[1]):[];return g[2]&&(a.length++,a.push.apply(a,e(g[2]))),g[3]&&(a.push([]),a.push.apply(a,e(g[3]))),a},i=(h,e)=>{h=t(h),e=t(e);for(var g=0;;){if(g>=h.length)return g<e.length&&"u"!=(typeof e[g])[0];var a=h[g],i=(typeof a)[0];if(g>=e.length)return"u"==i;var l=e[g],r=(typeof l)[0];if(i!=r)return"o"==i&&"n"==r||"s"==r||"u"==i;if("o"!=i&&"u"!=i&&a!=l)return a<l;g++}},l=h=>{var e=h[0],g="";if(1===h.length)return"*";if(e+.5){g+=0==e?">=":-1==e?"<":1==e?"^":2==e?"~":e>0?"=":"!=";for(var a=1,t=1;t<h.length;t++)a--,g+="u"==(typeof(r=h[t]))[0]?"-":(a>0?".":"")+(a=2,r);return g}var i=[];for(t=1;t<h.length;t++){var r=h[t];i.push(0===r?"not("+n()+")":1===r?"("+n()+" || "+n()+")":2===r?i.pop()+" "+i.pop():l(r))}return n();function n(){return i.pop().replace(/^\((.+)\)$/,"$1")}},r=(h,e)=>{if(0 in h){e=t(e);var g=h[0],a=g<0;a&&(g=-g-1);for(var i=0,l=1,n=!0;;l++,i++){var s,_,c=l<h.length?(typeof h[l])[0]:"";if(i>=e.length||"o"==(_=(typeof(s=e[i]))[0]))return!n||("u"==c?l>g&&!a:""==c!=a);if("u"==_){if(!n||"u"!=c)return!1}else if(n)if(c==_)if(l<=g){if(s!=h[l])return!1}else{if(a?s>h[l]:s<h[l])return!1;s!=h[l]&&(n=!1)}else if("s"!=c&&"n"!=c){if(a||l<=g)return!1;n=!1,l--}else{if(l<=g||_<c!=a)return!1;n=!1}else"s"!=c&&"n"!=c&&(n=!1,l--)}}var u=[],o=u.pop.bind(u);for(i=1;i<h.length;i++){var f=h[i];u.push(1==f?o()|o():2==f?o()&o():f?r(f,e):!o())}return!!o()},n=(h,e)=>h&&w.o(h,e),s=h=>(h.loaded=1,h.get()),_=h=>Object.keys(h).reduce((e,g)=>(h[g].eager&&(e[g]=h[g]),e),{}),c=(h,e,g)=>{var a=g?_(h[e]):h[e];return Object.keys(a).reduce((h,e)=>!h||!a[h].loaded&&i(h,e)?e:h,0)},u=(h,e,g,a)=>"Unsatisfied version "+g+" from "+(g&&h[e][g].from)+" of shared singleton module "+e+" (required "+l(a)+")",o=h=>{throw new Error(h)},f=h=>{"undefined"!=typeof console&&console.warn&&console.warn(h)},y=(h,e,g)=>g?g():((h,e)=>o("Shared module "+e+" doesn't exist in shared scope "+h))(h,e),d=(h=>function(e,g,a,t,i){var l=w.I(e);return l&&l.then&&!a?l.then(h.bind(h,e,w.S[e],g,!1,t,i)):h(e,w.S[e],g,a,t,i)})((h,e,g,a,t,i)=>{if(!n(e,g))return y(h,g,i);var l=c(e,g,a);return r(t,l)||f(u(e,g,l,t)),s(e[g][l])}),x={},b={22097:()=>d("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([w.e(7556),w.e(6272),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(26272))),95478:()=>d("default","react",!1,[0],()=>w.e(4041).then(()=>()=>w(14041))),42469:()=>d("default","react-router-dom",!1,[0],()=>Promise.all([w.e(1613),w.e(3657),w.e(484),w.e(2731)]).then(()=>()=>w(73657))),64218:()=>d("default","@backstage/version-bridge",!1,[0],()=>w.e(7984).then(()=>()=>w(65603))),11942:()=>d("default","@material-ui/styles",!1,[0],()=>w.e(4570).then(()=>()=>w(94570))),40484:()=>d("default","react-dom",!1,[0],()=>w.e(3144).then(()=>()=>w(43144))),92731:()=>d("default","react-router",!1,[0],()=>w.e(1836).then(()=>()=>w(51836))),37976:()=>d("default","@material-ui/core/styles",!1,[0],()=>w.e(6872).then(()=>()=>w(64491))),97094:()=>d("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([w.e(3647),w.e(2469)]).then(()=>()=>w(83647))),26659:()=>d("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([w.e(7556),w.e(428),w.e(2469)]).then(()=>()=>w(20428)))},p={484:[40484],879:[22097],1942:[11942],2469:[42469],2731:[92731],4218:[64218],5478:[95478],6659:[26659],7094:[97094],7976:[37976]},m={},w.f.consumes=(h,e)=>{w.o(p,h)&&p[h].forEach(h=>{if(w.o(x,h))return e.push(x[h]);if(!m[h]){var g=e=>{x[h]=0,w.m[h]=g=>{delete w.c[h],g.exports=e()}};m[h]=!0;var a=e=>{delete x[h],w.m[h]=g=>{throw delete w.c[h],e}};try{var t=b[h]();t.then?e.push(x[h]=t.then(g).catch(a)):g(t)}catch(h){a(h)}}})},(()=>{var h={2310:0};w.f.j=(e,g)=>{var a=w.o(h,e)?h[e]:void 0;if(0!==a)if(a)g.push(a[2]);else if(/^(1942|2469|2731|4218|484|5478|6659|7094|7976)$/.test(e))h[e]=0;else{var t=new Promise((g,t)=>a=h[e]=[g,t]);g.push(a[2]=t);var i=w.p+w.u(e),l=new Error;w.l(i,g=>{if(w.o(h,e)&&(0!==(a=h[e])&&(h[e]=void 0),a)){var t=g&&("load"===g.type?"missing":g.type),i=g&&g.target&&g.target.src;l.message="Loading chunk "+e+" failed.\n("+t+": "+i+")",l.name="ChunkLoadError",l.type=t,l.request=i,a[1](l)}},"chunk-"+e,e)}};var e=(e,g)=>{var a,t,[i,l,r]=g,n=0;if(i.some(e=>0!==h[e])){for(a in l)w.o(l,a)&&(w.m[a]=l[a]);r&&r(w)}for(e&&e(g);n<i.length;n++)t=i[n],w.o(h,t)&&h[t]&&h[t][0](),h[t]=0},g=self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[];g.forEach(e.bind(null,0)),g.push=e.bind(null,g.push.bind(g))})(),w(76741)})());
|
|
2
|
-
//# sourceMappingURL=internal.plugin-kuadrant.
|
|
1
|
+
__load_plugin_entry__("internal.plugin-kuadrant",(()=>{"use strict";var h,e,g,a,t,i,l,r,n,s,_,c,u,o,f,y,d,x,b,p,m,v={76741:(h,e,g)=>{var a={PluginRoot:()=>g.e(879).then(()=>()=>g(72627)),KuadrantPage:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiAccessCard:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiKeyManagementTab:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiKeysContent:()=>g.e(879).then(()=>()=>g(72627)),EntityKuadrantApiProductInfoContent:()=>g.e(879).then(()=>()=>g(72627)),KuadrantApprovalQueueCard:()=>g.e(879).then(()=>()=>g(72627))},t=(h,e)=>(g.R=e,e=g.o(a,h)?a[h]():Promise.resolve().then(()=>{throw new Error('Module "'+h+'" does not exist in container.')}),g.R=void 0,e),i=(h,e)=>{if(g.S){var a="default",t=g.S[a];if(t&&t!==h)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return g.S[a]=h,g.I(a,e)}};g.d(e,{get:()=>t,init:()=>i})}},k={};function w(h){var e=k[h];if(void 0!==e)return e.exports;var g=k[h]={id:h,loaded:!1,exports:{}};return v[h].call(g.exports,g,g.exports,w),g.loaded=!0,g.exports}return w.m=v,w.c=k,w.n=h=>{var e=h&&h.__esModule?()=>h.default:()=>h;return w.d(e,{a:e}),e},e=Object.getPrototypeOf?h=>Object.getPrototypeOf(h):h=>h.__proto__,w.t=function(g,a){if(1&a&&(g=this(g)),8&a)return g;if("object"==typeof g&&g){if(4&a&&g.__esModule)return g;if(16&a&&"function"==typeof g.then)return g}var t=Object.create(null);w.r(t);var i={};h=h||[null,e({}),e([]),e(e)];for(var l=2&a&&g;("object"==typeof l||"function"==typeof l)&&!~h.indexOf(l);l=e(l))Object.getOwnPropertyNames(l).forEach(h=>i[h]=()=>g[h]);return i.default=()=>g,w.d(t,i),t},w.d=(h,e)=>{for(var g in e)w.o(e,g)&&!w.o(h,g)&&Object.defineProperty(h,g,{enumerable:!0,get:e[g]})},w.f={},w.e=h=>Promise.all(Object.keys(w.f).reduce((e,g)=>(w.f[g](h,e),e),[])),w.u=h=>"static/"+({51:"react-syntax-highlighter_languages_highlight_prolog",200:"react-syntax-highlighter_languages_highlight_mel",206:"react-syntax-highlighter_languages_highlight_gml",371:"react-syntax-highlighter_languages_highlight_excel",456:"react-syntax-highlighter_languages_highlight_roboconf",460:"react-syntax-highlighter_languages_highlight_avrasm",464:"react-syntax-highlighter_languages_highlight_shell",557:"react-syntax-highlighter_languages_highlight_oneC",579:"react-syntax-highlighter_languages_highlight_vbnet",634:"react-syntax-highlighter_languages_highlight_scilab",879:"exposed-PluginRoot",927:"react-syntax-highlighter_languages_highlight_javascript",946:"react-syntax-highlighter_languages_highlight_clojure",985:"react-syntax-highlighter_languages_highlight_monkey",1062:"react-syntax-highlighter_languages_highlight_nim",1084:"react-syntax-highlighter_languages_highlight_aspectj",1099:"react-syntax-highlighter_languages_highlight_ebnf",1173:"react-syntax-highlighter_languages_highlight_autohotkey",1177:"react-syntax-highlighter_languages_highlight_profile",1214:"react-syntax-highlighter_languages_highlight_properties",1276:"react-syntax-highlighter_languages_highlight_phpTemplate",1325:"react-syntax-highlighter_languages_highlight_actionscript",1352:"react-syntax-highlighter_languages_highlight_fortran",1362:"react-syntax-highlighter_languages_highlight_mathematica",1418:"react-syntax-highlighter_languages_highlight_pony",1441:"react-syntax-highlighter_languages_highlight_coq",1461:"react-syntax-highlighter_languages_highlight_livescript",1489:"react-syntax-highlighter_languages_highlight_reasonml",1496:"react-syntax-highlighter_languages_highlight_lua",1522:"react-syntax-highlighter_languages_highlight_dust",1679:"react-syntax-highlighter_languages_highlight_scheme",1694:"react-syntax-highlighter_languages_highlight_accesslog",1727:"react-syntax-highlighter_languages_highlight_oxygene",1750:"react-syntax-highlighter_languages_highlight_makefile",1828:"react-syntax-highlighter_languages_highlight_dockerfile",1895:"react-syntax-highlighter_languages_highlight_pythonRepl",1956:"react-syntax-highlighter_languages_highlight_puppet",1961:"react-syntax-highlighter_languages_highlight_stan",1972:"react-syntax-highlighter_languages_highlight_fsharp",2007:"react-syntax-highlighter_languages_highlight_css",2064:"react-syntax-highlighter_languages_highlight_vhdl",2108:"react-syntax-highlighter_languages_highlight_cLike",2180:"react-syntax-highlighter_languages_highlight_sqf",2234:"react-syntax-highlighter_languages_highlight_lisp",2267:"react-syntax-highlighter_languages_highlight_maxima",2346:"react-syntax-highlighter_languages_highlight_d",2362:"react-syntax-highlighter_languages_highlight_xquery",2378:"react-syntax-highlighter_languages_highlight_parser3",2383:"react-syntax-highlighter_languages_highlight_crmsh",2438:"react-syntax-highlighter_languages_highlight_haxe",2488:"react-syntax-highlighter_languages_highlight_verilog",2496:"react-syntax-highlighter_languages_highlight_erlangRepl",2512:"react-syntax-highlighter_languages_highlight_stylus",2516:"react-syntax-highlighter_languages_highlight_apache",2665:"react-syntax-highlighter_languages_highlight_powershell",2693:"react-syntax-highlighter_languages_highlight_tap",2727:"react-syntax-highlighter_languages_highlight_q",2743:"react-syntax-highlighter_languages_highlight_asciidoc",2762:"react-syntax-highlighter_languages_highlight_haskell",2795:"react-syntax-highlighter_languages_highlight_dns",2871:"react-syntax-highlighter_languages_highlight_typescript",2882:"react-syntax-highlighter_languages_highlight_sml",2979:"react-syntax-highlighter_languages_highlight_plaintext",2981:"react-syntax-highlighter_languages_highlight_ruleslanguage",2983:"react-syntax-highlighter_languages_highlight_golo",3146:"react-syntax-highlighter_languages_highlight_purebasic",3193:"react-syntax-highlighter_languages_highlight_xml",3299:"react-syntax-highlighter_languages_highlight_fix",3357:"react-syntax-highlighter_languages_highlight_x86asm",3384:"react-syntax-highlighter_languages_highlight_ini",3418:"react-syntax-highlighter_languages_highlight_ruby",3419:"react-syntax-highlighter_languages_highlight_nix",3487:"react-syntax-highlighter_languages_highlight_mipsasm",3500:"react-syntax-highlighter_languages_highlight_autoit",3540:"react-syntax-highlighter_languages_highlight_moonscript",3562:"react-syntax-highlighter_languages_highlight_gams",3580:"react-syntax-highlighter_languages_highlight_csp",3607:"react-syntax-highlighter_languages_highlight_abnf",3623:"react-syntax-highlighter_languages_highlight_yaml",3722:"react-syntax-highlighter_languages_highlight_latex",3736:"react-syntax-highlighter_languages_highlight_json",3811:"react-syntax-highlighter_languages_highlight_erb",3885:"react-syntax-highlighter_languages_highlight_stata",3923:"react-syntax-highlighter_languages_highlight_applescript",3988:"react-syntax-highlighter_languages_highlight_vala",4014:"react-syntax-highlighter_languages_highlight_scss",4075:"react-syntax-highlighter_languages_highlight_hsp",4110:"react-syntax-highlighter_languages_highlight_tp",4135:"react-syntax-highlighter_languages_highlight_mizar",4282:"react-syntax-highlighter_languages_highlight_livecodeserver",4300:"react-syntax-highlighter_languages_highlight_r",4342:"react-syntax-highlighter_languages_highlight_php",4383:"react-syntax-highlighter_languages_highlight_dsconfig",4436:"react-syntax-highlighter_languages_highlight_zephir",4446:"react-syntax-highlighter_languages_highlight_leaf",4493:"react-syntax-highlighter_languages_highlight_gauss",4575:"react-syntax-highlighter_languages_highlight_processing",4635:"react-syntax-highlighter_languages_highlight_jbossCli",4733:"react-syntax-highlighter_languages_highlight_llvm",4835:"react-syntax-highlighter_languages_highlight_cos",4931:"react-syntax-highlighter_languages_highlight_step21",4956:"react-syntax-highlighter_languages_highlight_angelscript",4971:"react-syntax-highlighter_languages_highlight_lsl",5034:"react-syntax-highlighter_languages_highlight_ada",5051:"react-syntax-highlighter_languages_highlight_coffeescript",5099:"react-syntax-highlighter_languages_highlight_nsis",5123:"react-syntax-highlighter_languages_highlight_erlang",5189:"react-syntax-highlighter_languages_highlight_dts",5251:"react-syntax-highlighter_languages_highlight_pgsql",5253:"react-syntax-highlighter_languages_highlight_clojureRepl",5286:"react-syntax-highlighter_languages_highlight_nginx",5446:"react-syntax-highlighter_languages_highlight_ocaml",5565:"react-syntax-highlighter_languages_highlight_kotlin",5613:"react-syntax-highlighter_languages_highlight_rib",5664:"react-syntax-highlighter_languages_highlight_dos",5773:"react-syntax-highlighter_languages_highlight_mojolicious",5813:"react-syntax-highlighter_languages_highlight_less",5819:"react-syntax-highlighter_languages_highlight_gradle",5868:"react-syntax-highlighter_languages_highlight_inform7",5900:"react-syntax-highlighter_languages_highlight_lasso",6057:"react-syntax-highlighter_languages_highlight_sqlMore",6152:"react-syntax-highlighter_languages_highlight_vbscriptHtml",6161:"react-syntax-highlighter_languages_highlight_clean",6177:"react-syntax-highlighter_languages_highlight_taggerscript",6195:"react-syntax-highlighter_languages_highlight_ldif",6228:"react-syntax-highlighter_languages_highlight_rust",6267:"react-syntax-highlighter_languages_highlight_swift",6354:"react-syntax-highlighter_languages_highlight_java",6501:"react-syntax-highlighter_languages_highlight_armasm",6512:"react-syntax-highlighter_languages_highlight_scala",6542:"react-syntax-highlighter_languages_highlight_vim",6555:"react-syntax-highlighter_languages_highlight_openscad",6573:"react-syntax-highlighter_languages_highlight_cpp",6780:"react-syntax-highlighter_languages_highlight_qml",6835:"react-syntax-highlighter_languages_highlight_brainfuck",6848:"react-syntax-highlighter_languages_highlight_crystal",6924:"react-syntax-highlighter_languages_highlight_isbl",6977:"react-syntax-highlighter_languages_highlight_rsl",6986:"react-syntax-highlighter_languages_highlight_capnproto",7048:"react-syntax-highlighter_languages_highlight_gherkin",7079:"react-syntax-highlighter_languages_highlight_diff",7131:"react-syntax-highlighter_languages_highlight_protobuf",7209:"react-syntax-highlighter_languages_highlight_perl",7247:"react-syntax-highlighter_languages_highlight_cmake",7254:"react-syntax-highlighter_languages_highlight_subunit",7351:"react-syntax-highlighter_languages_highlight_elixir",7401:"react-syntax-highlighter_languages_highlight_sas",7406:"react-syntax-highlighter_languages_highlight_sql",7439:"react-syntax-highlighter_languages_highlight_flix",7533:"react-syntax-highlighter_languages_highlight_awk",7572:"react-syntax-highlighter_languages_highlight_basic",7764:"react-syntax-highlighter_languages_highlight_go",7776:"react-syntax-highlighter_languages_highlight_haml",7794:"react-syntax-highlighter_languages_highlight_http",7818:"react-syntax-highlighter_languages_highlight_arduino",7879:"react-syntax-highlighter_languages_highlight_csharp",7934:"react-syntax-highlighter_languages_highlight_glsl",7959:"react-syntax-highlighter_languages_highlight_htmlbars",8001:"react-syntax-highlighter_languages_highlight_matlab",8030:"react-syntax-highlighter_languages_highlight_handlebars",8058:"react-syntax-highlighter_languages_highlight_n1ql",8078:"react-syntax-highlighter_languages_highlight_delphi",8138:"react-syntax-highlighter_languages_highlight_elm",8140:"react-syntax-highlighter_languages_highlight_pf",8216:"react-syntax-highlighter_languages_highlight_bnf",8217:"react-syntax-highlighter_languages_highlight_twig",8331:"react-syntax-highlighter_languages_highlight_thrift",8338:"react-syntax-highlighter_languages_highlight_objectivec",8549:"react-syntax-highlighter_languages_highlight_c",8595:"react-syntax-highlighter_languages_highlight_hy",8705:"react-syntax-highlighter_languages_highlight_nodeRepl",8725:"react-syntax-highlighter_languages_highlight_smalltalk",8727:"react-syntax-highlighter/lowlight-import",8753:"react-syntax-highlighter_languages_highlight_mercury",8755:"react-syntax-highlighter_languages_highlight_tcl",8763:"react-syntax-highlighter_languages_highlight_routeros",8833:"react-syntax-highlighter_languages_highlight_markdown",8874:"react-syntax-highlighter_languages_highlight_smali",8903:"react-syntax-highlighter_languages_highlight_axapta",8904:"react-syntax-highlighter_languages_highlight_python",8948:"react-syntax-highlighter_languages_highlight_groovy",9078:"react-syntax-highlighter_languages_highlight_irpf90",9118:"react-syntax-highlighter_languages_highlight_juliaRepl",9139:"react-syntax-highlighter_languages_highlight_django",9162:"react-syntax-highlighter_languages_highlight_ceylon",9175:"react-syntax-highlighter_languages_highlight_vbscript",9229:"react-syntax-highlighter_languages_highlight_julia",9265:"react-syntax-highlighter_languages_highlight_dart",9406:"react-syntax-highlighter_languages_highlight_cal",9612:"react-syntax-highlighter_languages_highlight_bash",9702:"react-syntax-highlighter_languages_highlight_gcode",9726:"react-syntax-highlighter_languages_highlight_xl",9882:"react-syntax-highlighter_languages_highlight_arcade"}[h]||h)+"."+{51:"be0fdf0c",200:"5251fe1a",206:"2347c999",371:"2f5c76b9",428:"0a290bc6",441:"9f02e61b",456:"47518214",460:"6381890e",464:"9bbc16eb",557:"362a3b0a",579:"21c190ed",634:"bb9cc730",879:"a5792fb2",927:"b0ad82d3",946:"e3fcc98c",985:"5f60f06d",1062:"17afaed1",1084:"35f221e8",1085:"536aa0fa",1099:"a34b6944",1173:"614c5248",1177:"615fa721",1214:"60f97895",1276:"2bd36dc7",1325:"78db0238",1352:"38ec3d00",1362:"d8631b37",1418:"1961f69f",1441:"6b156852",1461:"3ece3068",1489:"a5a73a29",1496:"52f73c98",1522:"b30d0c38",1613:"71f0fccd",1679:"508b5846",1694:"bd112f1a",1727:"ea742315",1750:"cad796c9",1828:"2c5fdf55",1836:"b74b4c40",1895:"feb72aed",1956:"ee3f80da",1961:"17155e77",1972:"2ba37c00",2007:"2cc312ae",2064:"dea9db6c",2108:"f884fdc0",2180:"43421810",2198:"5905970e",2234:"1cb2f675",2267:"f1f17544",2346:"bf4f2b44",2362:"353780d4",2378:"706a4bd6",2383:"58c4cb07",2438:"e2543cc2",2488:"e32adbeb",2496:"0d7f4890",2512:"cde06cf5",2516:"aa86d495",2628:"6619bf8b",2665:"7bd31b3a",2693:"402e473f",2727:"989943de",2743:"4b40a3f9",2759:"fceb317f",2762:"bbd3c104",2795:"6d79126a",2871:"cf576f17",2882:"0e45c1cf",2928:"4303c12e",2946:"167c50c2",2967:"ac3a4bee",2979:"25f8d292",2981:"038504d0",2983:"eaa5e2bf",2987:"1da15560",3007:"bffc9924",3097:"4bd6b35f",3144:"6f99ccee",3146:"08443005",3193:"ee14d6a4",3299:"5ee62733",3357:"217c56f0",3384:"d9d4ed7e",3418:"d84064e5",3419:"245f31b6",3459:"5c90b5a3",3466:"43dfe991",3487:"f5bc5b04",3500:"a06c1c62",3503:"66b6e510",3540:"443301b3",3562:"a45eb030",3580:"7fc6f9a3",3607:"bb6a8626",3623:"2aae489e",3647:"b96f9b3e",3650:"515c743a",3657:"59d45756",3722:"b4bb9102",3736:"d934b52b",3811:"4ac917b8",3885:"fe81a7fc",3923:"ddf703d6",3988:"843d9bc4",4014:"bec19089",4041:"29923ad9",4075:"5d714528",4110:"0f4ff415",4135:"9b39cf3b",4282:"f624f22d",4300:"8540ccea",4342:"ade4c6c4",4383:"c3457b50",4436:"fc94a148",4446:"92519810",4491:"83052809",4493:"cceeafb0",4570:"8b9f98d7",4575:"8d1f48c5",4635:"1ff533ef",4682:"6959fcd1",4733:"f32d41e6",4835:"78d69dee",4931:"a431b2db",4956:"f9816c44",4971:"b6519e02",5010:"a4aa0f8e",5034:"b0d90871",5051:"3bc87b5b",5099:"4934a8e8",5123:"501777c7",5189:"8fd3703c",5251:"5b0d21b9",5253:"e6dbc3b4",5286:"630147e0",5446:"0e42541e",5453:"280127dd",5565:"c5eaa6f5",5603:"05d9ca7f",5613:"dc8afdf1",5664:"1ede6e37",5773:"0cf721ff",5813:"cc574d49",5819:"72fdf84d",5868:"78be038f",5900:"8d4054e7",6057:"d69b1825",6152:"42eb54af",6161:"97b48014",6177:"695a2547",6195:"74045e43",6228:"7e26e901",6267:"7d33a4a9",6272:"b5ee5195",6354:"e04d1c07",6371:"c83dc422",6422:"97baf774",6501:"4bfb8996",6512:"a4629d0a",6542:"e82f126f",6555:"4a460eaf",6573:"ff6a8f78",6780:"8f3a0af6",6800:"736d5da3",6835:"31bde7c5",6840:"4728fab9",6848:"3a36e63f",6872:"7ef4ed23",6924:"abe269c1",6977:"909f2a27",6986:"79dfc31f",7048:"e740620a",7079:"a8373241",7131:"0cd375bc",7209:"ae8475a2",7247:"cb9028b5",7254:"c5ac3a0a",7351:"1e79c9b9",7401:"94075d6a",7406:"651dcc8d",7439:"972cc801",7533:"dfc9b0b0",7556:"aa8a002f",7572:"ec232b8a",7601:"4df83556",7764:"abc0a144",7776:"d698757b",7791:"39417f8c",7794:"5859273c",7818:"9b9ce313",7879:"ea98c6fb",7934:"bb5b0086",7959:"e57e3c89",7984:"c8511b89",8001:"114e44eb",8030:"75c0a89b",8058:"c54b2c4a",8078:"588e191d",8138:"8a488b19",8140:"5052a768",8216:"84e0a497",8217:"5cb0fdfc",8331:"ecb04f2a",8338:"2d204375",8365:"d3360f18",8549:"b43ce116",8563:"7e068fb0",8595:"c60db034",8705:"5b05cdf2",8725:"53da57ca",8727:"2bd53873",8753:"fa8fdac0",8755:"79af288c",8763:"c0bcd6ce",8799:"7c749838",8833:"1489792c",8874:"4fa5afdd",8903:"80d14346",8904:"9e4100ae",8948:"ecd68b19",9078:"25afcc29",9118:"e3bfcde8",9139:"8fb85401",9162:"ab3b1c28",9175:"4703f4c5",9229:"f43a39d0",9265:"0a0b12af",9400:"df4a7fb5",9406:"781cc6c6",9612:"53f7c730",9702:"378d3296",9726:"7cff3cbb",9882:"70910623"}[h]+".chunk.js",w.miniCssF=h=>{},w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(h){if("object"==typeof window)return window}}(),w.o=(h,e)=>Object.prototype.hasOwnProperty.call(h,e),g={},a="internal.plugin-kuadrant:",w.l=(h,e,t,i)=>{if(g[h])g[h].push(e);else{var l,r;if(void 0!==t)for(var n=document.getElementsByTagName("script"),s=0;s<n.length;s++){var _=n[s];if(_.getAttribute("src")==h||_.getAttribute("data-webpack")==a+t){l=_;break}}l||(r=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,w.nc&&l.setAttribute("nonce",w.nc),l.setAttribute("data-webpack",a+t),l.src=h),g[h]=[e];var c=(e,a)=>{l.onerror=l.onload=null,clearTimeout(u);var t=g[h];if(delete g[h],l.parentNode&&l.parentNode.removeChild(l),t&&t.forEach(h=>h(a)),e)return e(a)},u=setTimeout(c.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=c.bind(null,l.onerror),l.onload=c.bind(null,l.onload),r&&document.head.appendChild(l)}},w.r=h=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(h,"__esModule",{value:!0})},w.nmd=h=>(h.paths=[],h.children||(h.children=[]),h),(()=>{w.S={};var h={},e={};w.I=(g,a)=>{a||(a=[]);var t=e[g];if(t||(t=e[g]={}),!(a.indexOf(t)>=0)){if(a.push(t),h[g])return h[g];w.o(w.S,g)||(w.S[g]={});var i=w.S[g],l="internal.plugin-kuadrant",r=(h,e,g,a)=>{var t=i[h]=i[h]||{},r=t[e];(!r||!r.loaded&&(!a!=!r.eager?a:l>r.from))&&(t[e]={get:g,from:l,eager:!!a})},n=[];return"default"===g&&(r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([w.e(7556),w.e(7601),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(47601))),r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([w.e(7556),w.e(428),w.e(5478),w.e(2469),w.e(4218),w.e(1085)]).then(()=>()=>w(20428))),r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([w.e(7556),w.e(6272),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(26272))),r("@backstage/core-plugin-api","1.11.1",()=>Promise.all([w.e(7556),w.e(3647),w.e(5478),w.e(2469),w.e(4218),w.e(3466)]).then(()=>()=>w(83647))),r("@backstage/version-bridge","1.0.11",()=>Promise.all([w.e(5478),w.e(5603)]).then(()=>()=>w(65603))),r("@material-ui/core/styles","4.12.4",()=>Promise.all([w.e(9400),w.e(5478),w.e(1942),w.e(4491)]).then(()=>()=>w(64491))),r("@material-ui/styles","4.11.5",()=>Promise.all([w.e(4570),w.e(5478),w.e(3007)]).then(()=>()=>w(94570))),r("react-dom","18.3.1",()=>Promise.all([w.e(3144),w.e(5478)]).then(()=>()=>w(43144))),r("react-router-dom","6.30.1",()=>Promise.all([w.e(1613),w.e(3657),w.e(5478),w.e(484),w.e(2731)]).then(()=>()=>w(73657))),r("react-router","6.30.1",()=>Promise.all([w.e(1613),w.e(1836),w.e(5478)]).then(()=>()=>w(51836))),r("react","18.3.1",()=>w.e(4041).then(()=>()=>w(14041)))),h[g]=n.length?Promise.all(n).then(()=>h[g]=1):1}}})(),(()=>{var h;w.g.importScripts&&(h=w.g.location+"");var e=w.g.document;if(!h&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(h=e.currentScript.src),!h)){var g=e.getElementsByTagName("script");if(g.length)for(var a=g.length-1;a>-1&&(!h||!/^http(s?):/.test(h));)h=g[a--].src}if(!h)throw new Error("Automatic publicPath is not supported in this browser");h=h.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),w.p=h})(),t=h=>{var e=h=>h.split(".").map(h=>+h==h?+h:h),g=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(h),a=g[1]?e(g[1]):[];return g[2]&&(a.length++,a.push.apply(a,e(g[2]))),g[3]&&(a.push([]),a.push.apply(a,e(g[3]))),a},i=(h,e)=>{h=t(h),e=t(e);for(var g=0;;){if(g>=h.length)return g<e.length&&"u"!=(typeof e[g])[0];var a=h[g],i=(typeof a)[0];if(g>=e.length)return"u"==i;var l=e[g],r=(typeof l)[0];if(i!=r)return"o"==i&&"n"==r||"s"==r||"u"==i;if("o"!=i&&"u"!=i&&a!=l)return a<l;g++}},l=h=>{var e=h[0],g="";if(1===h.length)return"*";if(e+.5){g+=0==e?">=":-1==e?"<":1==e?"^":2==e?"~":e>0?"=":"!=";for(var a=1,t=1;t<h.length;t++)a--,g+="u"==(typeof(r=h[t]))[0]?"-":(a>0?".":"")+(a=2,r);return g}var i=[];for(t=1;t<h.length;t++){var r=h[t];i.push(0===r?"not("+n()+")":1===r?"("+n()+" || "+n()+")":2===r?i.pop()+" "+i.pop():l(r))}return n();function n(){return i.pop().replace(/^\((.+)\)$/,"$1")}},r=(h,e)=>{if(0 in h){e=t(e);var g=h[0],a=g<0;a&&(g=-g-1);for(var i=0,l=1,n=!0;;l++,i++){var s,_,c=l<h.length?(typeof h[l])[0]:"";if(i>=e.length||"o"==(_=(typeof(s=e[i]))[0]))return!n||("u"==c?l>g&&!a:""==c!=a);if("u"==_){if(!n||"u"!=c)return!1}else if(n)if(c==_)if(l<=g){if(s!=h[l])return!1}else{if(a?s>h[l]:s<h[l])return!1;s!=h[l]&&(n=!1)}else if("s"!=c&&"n"!=c){if(a||l<=g)return!1;n=!1,l--}else{if(l<=g||_<c!=a)return!1;n=!1}else"s"!=c&&"n"!=c&&(n=!1,l--)}}var u=[],o=u.pop.bind(u);for(i=1;i<h.length;i++){var f=h[i];u.push(1==f?o()|o():2==f?o()&o():f?r(f,e):!o())}return!!o()},n=(h,e)=>h&&w.o(h,e),s=h=>(h.loaded=1,h.get()),_=h=>Object.keys(h).reduce((e,g)=>(h[g].eager&&(e[g]=h[g]),e),{}),c=(h,e,g)=>{var a=g?_(h[e]):h[e];return Object.keys(a).reduce((h,e)=>!h||!a[h].loaded&&i(h,e)?e:h,0)},u=(h,e,g,a)=>"Unsatisfied version "+g+" from "+(g&&h[e][g].from)+" of shared singleton module "+e+" (required "+l(a)+")",o=h=>{throw new Error(h)},f=h=>{"undefined"!=typeof console&&console.warn&&console.warn(h)},y=(h,e,g)=>g?g():((h,e)=>o("Shared module "+e+" doesn't exist in shared scope "+h))(h,e),d=(h=>function(e,g,a,t,i){var l=w.I(e);return l&&l.then&&!a?l.then(h.bind(h,e,w.S[e],g,!1,t,i)):h(e,w.S[e],g,a,t,i)})((h,e,g,a,t,i)=>{if(!n(e,g))return y(h,g,i);var l=c(e,g,a);return r(t,l)||f(u(e,g,l,t)),s(e[g][l])}),x={},b={22097:()=>d("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([w.e(7556),w.e(6272),w.e(5478),w.e(2469),w.e(4218)]).then(()=>()=>w(26272))),95478:()=>d("default","react",!1,[0],()=>w.e(4041).then(()=>()=>w(14041))),42469:()=>d("default","react-router-dom",!1,[0],()=>Promise.all([w.e(1613),w.e(3657),w.e(484),w.e(2731)]).then(()=>()=>w(73657))),64218:()=>d("default","@backstage/version-bridge",!1,[0],()=>w.e(7984).then(()=>()=>w(65603))),11942:()=>d("default","@material-ui/styles",!1,[0],()=>w.e(4570).then(()=>()=>w(94570))),40484:()=>d("default","react-dom",!1,[0],()=>w.e(3144).then(()=>()=>w(43144))),92731:()=>d("default","react-router",!1,[0],()=>w.e(1836).then(()=>()=>w(51836))),37976:()=>d("default","@material-ui/core/styles",!1,[0],()=>w.e(6872).then(()=>()=>w(64491))),97094:()=>d("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([w.e(3647),w.e(2469)]).then(()=>()=>w(83647))),26659:()=>d("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([w.e(7556),w.e(428),w.e(2469)]).then(()=>()=>w(20428)))},p={484:[40484],879:[22097],1942:[11942],2469:[42469],2731:[92731],4218:[64218],5478:[95478],6659:[26659],7094:[97094],7976:[37976]},m={},w.f.consumes=(h,e)=>{w.o(p,h)&&p[h].forEach(h=>{if(w.o(x,h))return e.push(x[h]);if(!m[h]){var g=e=>{x[h]=0,w.m[h]=g=>{delete w.c[h],g.exports=e()}};m[h]=!0;var a=e=>{delete x[h],w.m[h]=g=>{throw delete w.c[h],e}};try{var t=b[h]();t.then?e.push(x[h]=t.then(g).catch(a)):g(t)}catch(h){a(h)}}})},(()=>{var h={2310:0};w.f.j=(e,g)=>{var a=w.o(h,e)?h[e]:void 0;if(0!==a)if(a)g.push(a[2]);else if(/^(1942|2469|2731|4218|484|5478|6659|7094|7976)$/.test(e))h[e]=0;else{var t=new Promise((g,t)=>a=h[e]=[g,t]);g.push(a[2]=t);var i=w.p+w.u(e),l=new Error;w.l(i,g=>{if(w.o(h,e)&&(0!==(a=h[e])&&(h[e]=void 0),a)){var t=g&&("load"===g.type?"missing":g.type),i=g&&g.target&&g.target.src;l.message="Loading chunk "+e+" failed.\n("+t+": "+i+")",l.name="ChunkLoadError",l.type=t,l.request=i,a[1](l)}},"chunk-"+e,e)}};var e=(e,g)=>{var a,t,[i,l,r]=g,n=0;if(i.some(e=>0!==h[e])){for(a in l)w.o(l,a)&&(w.m[a]=l[a]);r&&r(w)}for(e&&e(g);n<i.length;n++)t=i[n],w.o(h,t)&&h[t]&&h[t][0](),h[t]=0},g=self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[];g.forEach(e.bind(null,0)),g.push=e.bind(null,g.push.bind(g))})(),w(76741)})());
|
|
2
|
+
//# sourceMappingURL=internal.plugin-kuadrant.58a9d553e354df0eed24.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.plugin-kuadrant.95817f34e88db81b5e8f.js","mappings":"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uDA,IAAYA,GAAW,IAAM,CAAC,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,YAAYA,GAAW,YCFtkfrD,EAAoB2D,SAAYN,MCDhCrD,EAAoB4D,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOtB,MAAQ,IAAIuB,SAAS,cAAb,EAChB,CAAE,MAAO7D,GACR,GAAsB,iBAAX8D,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB/D,EAAoBM,EAAI,CAAC6B,EAAK6B,IAAU/B,OAAOgC,UAAUC,eAAexC,KAAKS,EAAK6B,GVA9EpF,EAAa,CAAC,EACdC,EAAoB,4BAExBmB,EAAoBmE,EAAI,CAACC,EAAKC,EAAMrB,EAAKK,KACxC,GAAGzE,EAAWwF,GAAQxF,EAAWwF,GAAKE,KAAKD,OAA3C,CACA,IAAIE,EAAQC,EACZ,QAAW9D,IAARsC,EAEF,IADA,IAAIyB,EAAUC,SAASC,qBAAqB,UACpCC,EAAI,EAAGA,EAAIH,EAAQI,OAAQD,IAAK,CACvC,IAAIE,EAAIL,EAAQG,GAChB,GAAGE,EAAEC,aAAa,QAAUX,GAAOU,EAAEC,aAAa,iBAAmBlG,EAAoBmE,EAAK,CAAEuB,EAASO,EAAG,KAAO,CACpH,CAEGP,IACHC,GAAa,GACbD,EAASG,SAASM,cAAc,WAEzBC,QAAU,QACjBV,EAAOW,QAAU,IACblF,EAAoBmF,IACvBZ,EAAOa,aAAa,QAASpF,EAAoBmF,IAElDZ,EAAOa,aAAa,eAAgBvG,EAAoBmE,GAExDuB,EAAOc,IAAMjB,GAEdxF,EAAWwF,GAAO,CAACC,GACnB,IAAIiB,EAAmB,CAACC,EAAMC,KAE7BjB,EAAOkB,QAAUlB,EAAOmB,OAAS,KACjCC,aAAaT,GACb,IAAIU,EAAUhH,EAAWwF,GAIzB,UAHOxF,EAAWwF,GAClBG,EAAOsB,YAActB,EAAOsB,WAAWC,YAAYvB,GACnDqB,GAAWA,EAAQ7C,QAASgD,GAAQA,EAAGP,IACpCD,EAAM,OAAOA,EAAKC,IAElBN,EAAUc,WAAWV,EAAiBW,KAAK,UAAMvF,EAAW,CAAEwF,KAAM,UAAWC,OAAQ5B,IAAW,MACtGA,EAAOkB,QAAUH,EAAiBW,KAAK,KAAM1B,EAAOkB,SACpDlB,EAAOmB,OAASJ,EAAiBW,KAAK,KAAM1B,EAAOmB,QACnDlB,GAAcE,SAAS0B,KAAKC,YAAY9B,EApCkB,GWH3DvE,EAAoB0C,EAAKvB,IACH,oBAAXmF,QAA0BA,OAAOC,aAC1CtE,OAAOiB,eAAe/B,EAASmF,OAAOC,YAAa,CAAElE,MAAO,WAE7DJ,OAAOiB,eAAe/B,EAAS,aAAc,CAAEkB,OAAO,KCLvDrC,EAAoBwG,IAAOrG,IAC1BA,EAAOsG,MAAQ,GACVtG,EAAOuG,WAAUvG,EAAOuG,SAAW,IACjCvG,G,MCHRH,EAAoBc,EAAI,CAAC,EACzB,IAAI6F,EAAe,CAAC,EAChBC,EAAa,CAAC,EAClB5G,EAAoBiB,EAAI,CAACF,EAAMF,KAC1BA,IAAWA,EAAY,IAE3B,IAAIgG,EAAYD,EAAW7F,GAE3B,GADI8F,IAAWA,EAAYD,EAAW7F,GAAQ,CAAC,KAC5CF,EAAUgC,QAAQgE,IAAc,GAAnC,CAGA,GAFAhG,EAAUyD,KAAKuC,GAEZF,EAAa5F,GAAO,OAAO4F,EAAa5F,GAEvCf,EAAoBM,EAAEN,EAAoBc,EAAGC,KAAOf,EAAoBc,EAAEC,GAAQ,CAAC,GAEvF,IAAI+F,EAAQ9G,EAAoBc,EAAEC,GAI9BgG,EAAa,2BACbC,EAAW,CAACjG,EAAMkG,EAASC,EAASC,KACvC,IAAIC,EAAWN,EAAM/F,GAAQ+F,EAAM/F,IAAS,CAAC,EACzCsG,EAAgBD,EAASH,KACzBI,IAAmBA,EAAc7F,UAAY2F,IAAUE,EAAcF,MAAQA,EAAQJ,EAAaM,EAAcC,SAAQF,EAASH,GAAW,CAAE9H,IAAK+H,EAASI,KAAMP,EAAYI,QAASA,KAaxL1D,EAAW,GAiBf,MAfM,YADC1C,IAELiG,EAAS,6BAA8B,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SAC9PgH,EAAS,6BAA8B,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,KAAMD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SAC1RgH,EAAS,6BAA8B,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SAC9PgH,EAAS,6BAA8B,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SAC3RgH,EAAS,4BAA6B,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SACtKgH,EAAS,2BAA4B,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SAC/NgH,EAAS,sBAAuB,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SAC7LgH,EAAS,YAAa,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SACtJgH,EAAS,mBAAoB,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,KAAMD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SACnPgH,EAAS,eAAgB,SAAU,IAAOzG,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SACtLgH,EAAS,QAAS,SAAU,IAAOhH,EAAoBC,EAAE,MAAMC,KAAK,IAAM,IAAQF,EAAoB,UAKjG2G,EAAa5F,GADhB0C,EAASoB,OACetE,QAAQ+C,IAAIG,GAAUvD,KAAK,IAAOyG,EAAa5F,GAAQ,GADlC,CA7CL,E,WCR7C,IAAIwG,EACAvH,EAAoB4D,EAAE4D,gBAAeD,EAAYvH,EAAoB4D,EAAE6D,SAAW,IACtF,IAAI/C,EAAW1E,EAAoB4D,EAAEc,SACrC,IAAK6C,GAAa7C,IACbA,EAASgD,eAAkE,WAAjDhD,EAASgD,cAAcC,QAAQC,gBAC5DL,EAAY7C,EAASgD,cAAcrC,MAC/BkC,GAAW,CACf,IAAI9C,EAAUC,EAASC,qBAAqB,UAC5C,GAAGF,EAAQI,OAEV,IADA,IAAID,EAAIH,EAAQI,OAAS,EAClBD,GAAK,KAAO2C,IAAc,aAAaM,KAAKN,KAAaA,EAAY9C,EAAQG,KAAKS,GAE3F,CAID,IAAKkC,EAAW,MAAM,IAAI9G,MAAM,yDAChC8G,EAAYA,EAAUO,QAAQ,SAAU,IAAIA,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KAC1G9H,EAAoB+H,EAAIR,C,KblBpBzI,EAAgBkJ,IAEnB,IAAID,EAAEA,GAAWA,EAAEE,MAAM,KAAKC,IAAIH,IAAWA,GAAGA,GAAGA,EAAEA,GAAKlG,EAAE,sCAAsCsG,KAAKH,GAAKtF,EAAEb,EAAE,GAAGkG,EAAElG,EAAE,IAAI,GAAG,OAAOA,EAAE,KAAKa,EAAEmC,SAASnC,EAAE4B,KAAK8D,MAAM1F,EAAEqF,EAAElG,EAAE,MAAMA,EAAE,KAAKa,EAAE4B,KAAK,IAAI5B,EAAE4B,KAAK8D,MAAM1F,EAAEqF,EAAElG,EAAE,MAAMa,GAExN3D,EAAY,CAACiD,EAAGqG,KAEnBrG,EAAElD,EAAakD,GAAGqG,EAAEvJ,EAAauJ,GAAG,IAAI,IAAI3F,EAAE,IAAI,CAAC,GAAGA,GAAGV,EAAE6C,OAAO,OAAOnC,EAAE2F,EAAExD,QAAQ,aAAawD,EAAE3F,IAAI,GAAG,IAAIzC,EAAE+B,EAAEU,GAAGb,UAAU5B,GAAG,GAAG,GAAGyC,GAAG2F,EAAExD,OAAO,MAAM,KAAKhD,EAAE,IAAIO,EAAEiG,EAAE3F,GAAGU,UAAUhB,GAAG,GAAG,GAAGP,GAAGuB,EAAE,MAAM,KAAKvB,GAAG,KAAKuB,GAAI,KAAKA,GAAG,KAAKvB,EAAG,GAAG,KAAKA,GAAG,KAAKA,GAAG5B,GAAGmC,EAAE,OAAOnC,EAAEmC,EAAEM,GAAG,GAE/Q1D,EAAiBsJ,IAEpB,IAAI5F,EAAE4F,EAAM,GAAGzG,EAAE,GAAG,GAAG,IAAIyG,EAAMzD,OAAO,MAAM,IAAI,GAAGnC,EAAE,GAAG,CAACb,GAAG,GAAGa,EAAE,MAAM,GAAGA,EAAE,IAAI,GAAGA,EAAE,IAAI,GAAGA,EAAE,IAAIA,EAAE,EAAE,IAAI,KAAK,IAAI,IAAIzC,EAAE,EAAE+B,EAAE,EAAEA,EAAEsG,EAAMzD,OAAO7C,IAAK/B,IAAI4B,GAAG,aAAaO,EAAEkG,EAAMtG,KAAK,GAAG,KAAK/B,EAAE,EAAE,IAAI,KAAKA,EAAE,EAAEmC,GAAG,OAAOP,CAAC,CAAC,IAAI+B,EAAE,GAAG,IAAI5B,EAAE,EAAEA,EAAEsG,EAAMzD,OAAO7C,IAAI,CAAC,IAAII,EAAEkG,EAAMtG,GAAG4B,EAAEU,KAAK,IAAIlC,EAAE,OAAO9B,IAAI,IAAI,IAAI8B,EAAE,IAAI9B,IAAI,OAAOA,IAAI,IAAI,IAAI8B,EAAEwB,EAAE2E,MAAM,IAAI3E,EAAE2E,MAAMvJ,EAAcoD,GAAG,CAAC,OAAO9B,IAAI,SAASA,IAAI,OAAOsD,EAAE2E,MAAMT,QAAQ,aAAa,KAAK,GAElb7I,EAAU,CAACqJ,EAAOrB,KAErB,GAAG,KAAKqB,EAAM,CAACrB,EAAQnI,EAAamI,GAAS,IAAIhH,EAAEqI,EAAM,GAAG5F,EAAEzC,EAAE,EAAEyC,IAAIzC,GAAGA,EAAE,GAAG,IAAI,IAAI4B,EAAE,EAAE+C,EAAE,EAAE5C,GAAE,GAAI4C,IAAI/C,IAAI,CAAC,IAAIuB,EAAE0B,EAAElB,EAAEgB,EAAE0D,EAAMzD,eAAeyD,EAAM1D,IAAI,GAAG,GAAG,GAAG/C,GAAGoF,EAAQpC,QAAQ,MAAMC,UAAU1B,EAAE6D,EAAQpF,KAAK,IAAI,OAAOG,IAAI,KAAK4B,EAAEgB,EAAE3E,IAAIyC,EAAE,IAAIkB,GAAGlB,GAAG,GAAG,KAAKoC,GAAG,IAAI9C,GAAG,KAAK4B,EAAE,OAAM,OAAQ,GAAG5B,EAAE,GAAG4B,GAAGkB,EAAE,GAAGF,GAAG3E,GAAG,GAAGmD,GAAGkF,EAAM1D,GAAG,OAAM,MAAO,CAAC,GAAGlC,EAAEU,EAAEkF,EAAM1D,GAAGxB,EAAEkF,EAAM1D,GAAG,OAAM,EAAGxB,GAAGkF,EAAM1D,KAAK5C,GAAE,EAAG,MAAM,GAAG,KAAK4B,GAAG,KAAKA,EAAE,CAAC,GAAGlB,GAAGkC,GAAG3E,EAAE,OAAM,EAAG+B,GAAE,EAAG4C,GAAG,KAAK,CAAC,GAAGA,GAAG3E,GAAG6E,EAAElB,GAAGlB,EAAE,OAAM,EAAGV,GAAE,CAAE,KAAK,KAAK4B,GAAG,KAAKA,IAAI5B,GAAE,EAAG4C,IAAI,CAAC,CAAC,IAAIxC,EAAE,GAAG9B,EAAE8B,EAAEmG,IAAItC,KAAK7D,GAAG,IAAIP,EAAE,EAAEA,EAAEyG,EAAMzD,OAAOhD,IAAI,CAAC,IAAI6B,EAAE4E,EAAMzG,GAAGO,EAAEkC,KAAK,GAAGZ,EAAEpD,IAAIA,IAAI,GAAGoD,EAAEpD,IAAIA,IAAIoD,EAAEzE,EAAQyE,EAAEuD,IAAU3G,IAAI,CAAC,QAAQA,KAE1oBpB,EAAS,CAAC4H,EAAO9D,IACb8D,GAAS9G,EAAoBM,EAAEwG,EAAO9D,GAE1C7D,EAAOqJ,IACVA,EAAMhH,OAAS,EACRgH,EAAMrJ,OAEVC,EAAagI,GACTnF,OAAOsB,KAAK6D,GAAU5D,OAAO,CAACiF,EAAUxB,KACzCG,EAASH,GAASE,QACrBsB,EAASxB,GAAWG,EAASH,IAEvBwB,GACN,CAAC,GAiBDpJ,EAA0B,CAACyH,EAAO9D,EAAKmE,KAC1C,IAAIC,EAAWD,EAAQ/H,EAAU0H,EAAM9D,IAAQ8D,EAAM9D,GACrD,OAAOf,OAAOsB,KAAK6D,GAAU5D,OAAO,CAACxB,EAAGqG,KAC/BrG,IAAOoF,EAASpF,GAAGR,QAAUzC,EAAUiD,EAAGqG,GAAMA,EAAIrG,EAC1D,IAEA1C,EAAoC,CAACwH,EAAO9D,EAAKiE,EAASyB,IACtD,uBAAyBzB,EAAU,UAAYA,GAAWH,EAAM9D,GAAKiE,GAASK,MAAQ,+BAAiCtE,EAAM,cAAgBhE,EAAc0J,GAAmB,IASlLnJ,EAAQoJ,IACX,MAAM,IAAIlI,MAAMkI,IAKbnJ,EAAsBmJ,IACF,oBAAZC,SAA2BA,QAAQpJ,MAAMoJ,QAAQpJ,KAAKmJ,IAU9DlJ,EAAc,CAACoJ,EAAW7F,EAAK8F,IAC3BA,EAAWA,IAfE,EAACD,EAAW7F,IACzBzD,EAAK,iBAAmByD,EAAM,kCAAoC6F,GAc1CE,CAAeF,EAAW7F,GAyBtDtD,EAlCO,CAACqG,GAAO,SAAU8C,EAAW7F,EAAKmE,EAAOvF,EAAGV,GACtD,IAAI8H,EAAUhJ,EAAoBiB,EAAE4H,GACpC,OAAIG,GAAWA,EAAQ9I,OAASiH,EACxB6B,EAAQ9I,KAAK6F,EAAGE,KAAKF,EAAI8C,EAAW7I,EAAoBc,EAAE+H,GAAY7F,GAAK,EAAOpB,EAAGV,IAEtF6E,EAAG8C,EAAW7I,EAAoBc,EAAE+H,GAAY7F,EAAKmE,EAAOvF,EAAGV,EACtE,EA4BwCP,CAAK,CAACkI,EAAW/B,EAAO9D,EAAKmE,EAAOuB,EAAiBI,KAC7F,IAAK5J,EAAO4H,EAAO9D,GAAM,OAAOvD,EAAYoJ,EAAW7F,EAAK8F,GAC5D,IAAI7B,EAAU5H,EAAwByH,EAAO9D,EAAKmE,GAIlD,OAHKlI,EAAQyJ,EAAiBzB,IAC7BzH,EAAKF,EAAkCwH,EAAO9D,EAAKiE,EAASyB,IAEtDvJ,EAAI2H,EAAM9D,GAAKiE,MAUnBtH,EAAmB,CAAC,EACpBC,EAAyB,CAC5B,MAAO,IAAOF,EAAqB,UAAW,8BAA8B,EAAO,CAAC,GAAI,IAAOa,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SACrS,MAAO,IAAON,EAAqB,UAAW,SAAS,EAAO,CAAC,GAAI,IAAOM,EAAoBC,EAAE,MAAMC,KAAK,IAAM,IAAQF,EAAoB,SAC7I,MAAO,IAAON,EAAqB,UAAW,oBAAoB,EAAO,CAAC,GAAI,IAAOa,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,KAAMD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SAC7P,MAAO,IAAON,EAAqB,UAAW,6BAA6B,EAAO,CAAC,GAAI,IAAOM,EAAoBC,EAAE,MAAMC,KAAK,IAAM,IAAQF,EAAoB,SACjK,MAAO,IAAON,EAAqB,UAAW,uBAAuB,EAAO,CAAC,GAAI,IAAOM,EAAoBC,EAAE,MAAMC,KAAK,IAAM,IAAQF,EAAoB,SAC3J,MAAO,IAAON,EAAqB,UAAW,aAAa,EAAO,CAAC,GAAI,IAAOM,EAAoBC,EAAE,MAAMC,KAAK,IAAM,IAAQF,EAAoB,SACjJ,MAAO,IAAON,EAAqB,UAAW,gBAAgB,EAAO,CAAC,GAAI,IAAOM,EAAoBC,EAAE,MAAMC,KAAK,IAAM,IAAQF,EAAoB,SACpJ,MAAO,IAAON,EAAqB,UAAW,4BAA4B,EAAO,CAAC,GAAI,IAAOM,EAAoBC,EAAE,MAAMC,KAAK,IAAM,IAAQF,EAAoB,SAChK,MAAO,IAAON,EAAqB,UAAW,8BAA8B,EAAO,CAAC,GAAI,IAAOa,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,SAC9M,MAAO,IAAON,EAAqB,UAAW,8BAA8B,EAAO,CAAC,GAAI,IAAOa,QAAQ+C,IAAI,CAACtD,EAAoBC,EAAE,MAAOD,EAAoBC,EAAE,KAAMD,EAAoBC,EAAE,QAAQC,KAAK,IAAM,IAAQF,EAAoB,UAGvOH,EAAe,CAClB,IAAO,CACN,OAED,IAAO,CACN,OAED,KAAQ,CACP,OAED,KAAQ,CACP,OAED,KAAQ,CACP,OAED,KAAQ,CACP,OAED,KAAQ,CACP,OAED,KAAQ,CACP,OAED,KAAQ,CACP,OAED,KAAQ,CACP,QAGEC,EAAwB,CAAC,EAC7BE,EAAoBoD,EAAE6F,SAAW,CAAC5F,EAASI,KACvCzD,EAAoBM,EAAET,EAAcwD,IACtCxD,EAAawD,GAASN,QAASxB,IAC9B,GAAGvB,EAAoBM,EAAEX,EAAkB4B,GAAK,OAAOkC,EAASa,KAAK3E,EAAiB4B,IACtF,IAAIzB,EAAsByB,GAAK,CAC/B,IAAI2H,EAAahC,IAChBvH,EAAiB4B,GAAM,EACvBvB,EAAoB2B,EAAEJ,GAAOpB,WACrBH,EAAoB4B,EAAEL,GAC7BpB,EAAOgB,QAAU+F,MAGnBpH,EAAsByB,IAAM,EAC5B,IAAI4H,EAAWC,WACPzJ,EAAiB4B,GACxBvB,EAAoB2B,EAAEJ,GAAOpB,IAE5B,aADOH,EAAoB4B,EAAEL,GACvB6H,IAGR,IACC,IAAIJ,EAAUpJ,EAAuB2B,KAClCyH,EAAQ9I,KACVuD,EAASa,KAAK3E,EAAiB4B,GAAMyH,EAAQ9I,KAAKgJ,GAAkB,MAAEC,IAChED,EAAUF,EAClB,CAAE,MAAM/I,GAAKkJ,EAAQlJ,EAAI,CACzB,K,Mc7LH,IAAIoJ,EAAkB,CACrB,KAAM,GAGPrJ,EAAoBoD,EAAEkG,EAAI,CAACjG,EAASI,KAElC,IAAI8F,EAAqBvJ,EAAoBM,EAAE+I,EAAiBhG,GAAWgG,EAAgBhG,QAAW3C,EACtG,GAA0B,IAAvB6I,EAGF,GAAGA,EACF9F,EAASa,KAAKiF,EAAmB,SAEjC,GAAI,kDAAkD1B,KAAKxE,GAyBpDgG,EAAgBhG,GAAW,MAzBmC,CAEpE,IAAI2F,EAAU,IAAIzI,QAAQ,CAACC,EAASgJ,IAAYD,EAAqBF,EAAgBhG,GAAW,CAAC7C,EAASgJ,IAC1G/F,EAASa,KAAKiF,EAAmB,GAAKP,GAGtC,IAAI5E,EAAMpE,EAAoB+H,EAAI/H,EAAoB0D,EAAEL,GAEpD+F,EAAQ,IAAI3I,MAgBhBT,EAAoBmE,EAAEC,EAfFoB,IACnB,GAAGxF,EAAoBM,EAAE+I,EAAiBhG,KAEf,KAD1BkG,EAAqBF,EAAgBhG,MACRgG,EAAgBhG,QAAW3C,GACrD6I,GAAoB,CACtB,IAAIE,EAAYjE,IAAyB,SAAfA,EAAMU,KAAkB,UAAYV,EAAMU,MAChEwD,EAAUlE,GAASA,EAAMW,QAAUX,EAAMW,OAAOd,IACpD+D,EAAMO,QAAU,iBAAmBtG,EAAU,cAAgBoG,EAAY,KAAOC,EAAU,IAC1FN,EAAMrI,KAAO,iBACbqI,EAAMlD,KAAOuD,EACbL,EAAMQ,QAAUF,EAChBH,EAAmB,GAAGH,EACvB,GAGuC,SAAW/F,EAASA,EAC9D,GAgBJ,IAAIwG,EAAuB,CAACC,EAA4BC,KACvD,IAGI1I,EAAUgC,GAHT2G,EAAUC,EAAaC,GAAWH,EAGhBnF,EAAI,EAC3B,GAAGoF,EAASG,KAAM5I,GAAgC,IAAxB8H,EAAgB9H,IAAa,CACtD,IAAIF,KAAY4I,EACZjK,EAAoBM,EAAE2J,EAAa5I,KACrCrB,EAAoB2B,EAAEN,GAAY4I,EAAY5I,IAG7C6I,GAAsBA,EAAQlK,EAClC,CAEA,IADG8J,GAA4BA,EAA2BC,GACrDnF,EAAIoF,EAASnF,OAAQD,IACzBvB,EAAU2G,EAASpF,GAChB5E,EAAoBM,EAAE+I,EAAiBhG,IAAYgG,EAAgBhG,IACrEgG,EAAgBhG,GAAS,KAE1BgG,EAAgBhG,GAAW,GAKzB+G,EAAqBC,KAA2C,qCAAIA,KAA2C,sCAAK,GACxHD,EAAmBrH,QAAQ8G,EAAqB5D,KAAK,KAAM,IAC3DmE,EAAmB9F,KAAOuF,EAAqB5D,KAAK,KAAMmE,EAAmB9F,KAAK2B,KAAKmE,G,KClF7DpK,EAAoB,M","sources":["webpack://internal.plugin-kuadrant/webpack/runtime/create fake namespace object","webpack://internal.plugin-kuadrant/webpack/runtime/load script","webpack://internal.plugin-kuadrant/webpack/runtime/consumes","webpack://internal.plugin-kuadrant/webpack/container-entry","webpack://internal.plugin-kuadrant/webpack/bootstrap","webpack://internal.plugin-kuadrant/webpack/runtime/compat get default export","webpack://internal.plugin-kuadrant/webpack/runtime/define property getters","webpack://internal.plugin-kuadrant/webpack/runtime/ensure chunk","webpack://internal.plugin-kuadrant/webpack/runtime/get javascript chunk filename","webpack://internal.plugin-kuadrant/webpack/runtime/get mini-css chunk filename","webpack://internal.plugin-kuadrant/webpack/runtime/global","webpack://internal.plugin-kuadrant/webpack/runtime/hasOwnProperty shorthand","webpack://internal.plugin-kuadrant/webpack/runtime/make namespace object","webpack://internal.plugin-kuadrant/webpack/runtime/node module decorator","webpack://internal.plugin-kuadrant/webpack/runtime/sharing","webpack://internal.plugin-kuadrant/webpack/runtime/publicPath","webpack://internal.plugin-kuadrant/webpack/runtime/jsonp chunk loading","webpack://internal.plugin-kuadrant/webpack/startup"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"internal.plugin-kuadrant:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var parseVersion = (str) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=p=>{return p.split(\".\").map(p=>{return+p==p?+p:p})},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = (a, b) => {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r<b.length&&\"u\"!=(typeof b[r])[0];var e=a[r],n=(typeof e)[0];if(r>=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e<t;r++}\n}\nvar rangeToString = (range) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar r=range[0],n=\"\";if(1===range.length)return\"*\";if(r+.5){n+=0==r?\">=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a<range.length;a++){e--,n+=\"u\"==(typeof(t=range[a]))[0]?\"-\":(e>0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?\"not(\"+o()+\")\":1===t?\"(\"+o()+\" || \"+o()+\")\":2===t?g.pop()+\" \"+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,\"$1\")}\n}\nvar satisfy = (range, version) => {\n\t// see webpack/lib/util/semver.js for original code\n\tif(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i<range.length?(typeof range[i])[0]:\"\";if(n>=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f<range[i])return!1;f!=range[i]&&(a=!1)}else if(\"s\"!=g&&\"n\"!=g){if(r||i<=e)return!1;a=!1,i--}else{if(i<=e||s<g!=r)return!1;a=!1}else\"s\"!=g&&\"n\"!=g&&(a=!1,i--)}}var t=[],o=t.pop.bind(t);for(n=1;n<range.length;n++){var u=range[n];t.push(1==u?o()|o():2==u?o()&o():u?satisfy(u,version):!o())}return!!o();\n}\nvar exists = (scope, key) => {\n\treturn scope && __webpack_require__.o(scope, key);\n}\nvar get = (entry) => {\n\tentry.loaded = 1;\n\treturn entry.get()\n};\nvar eagerOnly = (versions) => {\n\treturn Object.keys(versions).reduce((filtered, version) => {\n\t\t\tif (versions[version].eager) {\n\t\t\t\tfiltered[version] = versions[version];\n\t\t\t}\n\t\t\treturn filtered;\n\t}, {});\n};\nvar findLatestVersion = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key];\n};\nvar findSatisfyingVersion = (scope, key, requiredVersion, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\tif (!satisfy(requiredVersion, b)) return a;\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar findSingletonVersionKey = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\treturn Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;\n\t}, 0);\n};\nvar getInvalidSingletonVersionMessage = (scope, key, version, requiredVersion) => {\n\treturn \"Unsatisfied version \" + version + \" from \" + (version && scope[key][version].from) + \" of shared singleton module \" + key + \" (required \" + rangeToString(requiredVersion) + \")\"\n};\nvar getInvalidVersionMessage = (scope, scopeName, key, requiredVersion, eager) => {\n\tvar versions = scope[key];\n\treturn \"No satisfying version (\" + rangeToString(requiredVersion) + \")\" + (eager ? \" for eager consumption\" : \"\") + \" of shared module \" + key + \" found in shared scope \" + scopeName + \".\\n\" +\n\t\t\"Available versions: \" + Object.keys(versions).map((key) => {\n\t\treturn key + \" from \" + versions[key].from;\n\t}).join(\", \");\n};\nvar fail = (msg) => {\n\tthrow new Error(msg);\n}\nvar failAsNotExist = (scopeName, key) => {\n\treturn fail(\"Shared module \" + key + \" doesn't exist in shared scope \" + scopeName);\n}\nvar warn = /*#__PURE__*/ (msg) => {\n\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n};\nvar init = (fn) => (function(scopeName, key, eager, c, d) {\n\tvar promise = __webpack_require__.I(scopeName);\n\tif (promise && promise.then && !eager) {\n\t\treturn promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], key, false, c, d));\n\t}\n\treturn fn(scopeName, __webpack_require__.S[scopeName], key, eager, c, d);\n});\n\nvar useFallback = (scopeName, key, fallback) => {\n\treturn fallback ? fallback() : failAsNotExist(scopeName, key);\n}\nvar load = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\twarn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager))\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadStrictVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\tif (fallback) return fallback();\n\tfail(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager));\n});\nvar loadSingleton = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\treturn get(scope[key][version]);\n});\nvar loadSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\twarn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar loadStrictSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\tfail(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar installedModules = {};\nvar moduleToHandlerMapping = {\n\t22097: () => (loadSingletonVersion(\"default\", \"@backstage/core-plugin-api\", false, [0], () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(6272), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218)]).then(() => (() => (__webpack_require__(26272))))))),\n\t95478: () => (loadSingletonVersion(\"default\", \"react\", false, [0], () => (__webpack_require__.e(4041).then(() => (() => (__webpack_require__(14041))))))),\n\t42469: () => (loadSingletonVersion(\"default\", \"react-router-dom\", false, [0], () => (Promise.all([__webpack_require__.e(1613), __webpack_require__.e(3657), __webpack_require__.e(484), __webpack_require__.e(2731)]).then(() => (() => (__webpack_require__(73657))))))),\n\t64218: () => (loadSingletonVersion(\"default\", \"@backstage/version-bridge\", false, [0], () => (__webpack_require__.e(7984).then(() => (() => (__webpack_require__(65603))))))),\n\t11942: () => (loadSingletonVersion(\"default\", \"@material-ui/styles\", false, [0], () => (__webpack_require__.e(4570).then(() => (() => (__webpack_require__(94570))))))),\n\t40484: () => (loadSingletonVersion(\"default\", \"react-dom\", false, [0], () => (__webpack_require__.e(3144).then(() => (() => (__webpack_require__(43144))))))),\n\t92731: () => (loadSingletonVersion(\"default\", \"react-router\", false, [0], () => (__webpack_require__.e(1836).then(() => (() => (__webpack_require__(51836))))))),\n\t37976: () => (loadSingletonVersion(\"default\", \"@material-ui/core/styles\", false, [0], () => (__webpack_require__.e(6872).then(() => (() => (__webpack_require__(64491))))))),\n\t97094: () => (loadSingletonVersion(\"default\", \"@backstage/core-plugin-api\", false, [0], () => (Promise.all([__webpack_require__.e(3647), __webpack_require__.e(2469)]).then(() => (() => (__webpack_require__(83647))))))),\n\t26659: () => (loadSingletonVersion(\"default\", \"@backstage/core-plugin-api\", false, [0], () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(428), __webpack_require__.e(2469)]).then(() => (() => (__webpack_require__(20428)))))))\n};\n// no consumes in initial chunks\nvar chunkMapping = {\n\t\"484\": [\n\t\t40484\n\t],\n\t\"879\": [\n\t\t22097\n\t],\n\t\"1942\": [\n\t\t11942\n\t],\n\t\"2469\": [\n\t\t42469\n\t],\n\t\"2731\": [\n\t\t92731\n\t],\n\t\"4218\": [\n\t\t64218\n\t],\n\t\"5478\": [\n\t\t95478\n\t],\n\t\"6659\": [\n\t\t26659\n\t],\n\t\"7094\": [\n\t\t97094\n\t],\n\t\"7976\": [\n\t\t37976\n\t]\n};\nvar startedInstallModules = {};\n__webpack_require__.f.consumes = (chunkId, promises) => {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach((id) => {\n\t\t\tif(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);\n\t\t\tif(!startedInstallModules[id]) {\n\t\t\tvar onFactory = (factory) => {\n\t\t\t\tinstalledModules[id] = 0;\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\tstartedInstallModules[id] = true;\n\t\t\tvar onError = (error) => {\n\t\t\t\tdelete installedModules[id];\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar promise = moduleToHandlerMapping[id]();\n\t\t\t\tif(promise.then) {\n\t\t\t\t\tpromises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));\n\t\t\t\t} else onFactory(promise);\n\t\t\t} catch(e) { onError(e); }\n\t\t\t}\n\t\t});\n\t}\n}","var moduleMap = {\n\t\"PluginRoot\": () => {\n\t\treturn __webpack_require__.e(/* exposed-PluginRoot */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"KuadrantPage\": () => {\n\t\treturn __webpack_require__.e(/* exposed-KuadrantPage */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"EntityKuadrantApiAccessCard\": () => {\n\t\treturn __webpack_require__.e(/* exposed-EntityKuadrantApiAccessCard */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"EntityKuadrantApiKeyManagementTab\": () => {\n\t\treturn __webpack_require__.e(/* exposed-EntityKuadrantApiKeyManagementTab */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"EntityKuadrantApiKeysContent\": () => {\n\t\treturn __webpack_require__.e(/* exposed-EntityKuadrantApiKeysContent */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"EntityKuadrantApiProductInfoContent\": () => {\n\t\treturn __webpack_require__.e(/* exposed-EntityKuadrantApiProductInfoContent */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"KuadrantApprovalQueueCard\": () => {\n\t\treturn __webpack_require__.e(/* exposed-KuadrantApprovalQueueCard */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar name = \"default\"\n\tvar oldScope = __webpack_require__.S[name];\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"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\"}[chunkId] || chunkId) + \".\" + {\"51\":\"be0fdf0c\",\"200\":\"5251fe1a\",\"206\":\"2347c999\",\"371\":\"2f5c76b9\",\"428\":\"0a290bc6\",\"441\":\"9f02e61b\",\"456\":\"47518214\",\"460\":\"6381890e\",\"464\":\"9bbc16eb\",\"557\":\"362a3b0a\",\"579\":\"21c190ed\",\"634\":\"bb9cc730\",\"879\":\"a5792fb2\",\"927\":\"b0ad82d3\",\"946\":\"e3fcc98c\",\"985\":\"5f60f06d\",\"1062\":\"17afaed1\",\"1084\":\"35f221e8\",\"1085\":\"536aa0fa\",\"1099\":\"a34b6944\",\"1173\":\"614c5248\",\"1177\":\"615fa721\",\"1214\":\"60f97895\",\"1276\":\"2bd36dc7\",\"1325\":\"78db0238\",\"1352\":\"38ec3d00\",\"1362\":\"d8631b37\",\"1418\":\"1961f69f\",\"1441\":\"6b156852\",\"1461\":\"3ece3068\",\"1489\":\"a5a73a29\",\"1496\":\"52f73c98\",\"1522\":\"b30d0c38\",\"1613\":\"71f0fccd\",\"1679\":\"508b5846\",\"1694\":\"bd112f1a\",\"1727\":\"ea742315\",\"1750\":\"cad796c9\",\"1828\":\"2c5fdf55\",\"1836\":\"b74b4c40\",\"1895\":\"feb72aed\",\"1956\":\"ee3f80da\",\"1961\":\"17155e77\",\"1972\":\"2ba37c00\",\"2007\":\"2cc312ae\",\"2064\":\"dea9db6c\",\"2108\":\"f884fdc0\",\"2180\":\"43421810\",\"2198\":\"5905970e\",\"2234\":\"1cb2f675\",\"2267\":\"f1f17544\",\"2346\":\"bf4f2b44\",\"2362\":\"353780d4\",\"2378\":\"706a4bd6\",\"2383\":\"58c4cb07\",\"2438\":\"e2543cc2\",\"2488\":\"e32adbeb\",\"2496\":\"0d7f4890\",\"2512\":\"cde06cf5\",\"2516\":\"aa86d495\",\"2628\":\"6619bf8b\",\"2665\":\"7bd31b3a\",\"2693\":\"402e473f\",\"2727\":\"989943de\",\"2743\":\"4b40a3f9\",\"2759\":\"fceb317f\",\"2762\":\"bbd3c104\",\"2795\":\"6d79126a\",\"2871\":\"cf576f17\",\"2882\":\"0e45c1cf\",\"2928\":\"4303c12e\",\"2946\":\"167c50c2\",\"2967\":\"ac3a4bee\",\"2979\":\"25f8d292\",\"2981\":\"038504d0\",\"2983\":\"eaa5e2bf\",\"2987\":\"1da15560\",\"3007\":\"bffc9924\",\"3097\":\"4bd6b35f\",\"3144\":\"6f99ccee\",\"3146\":\"08443005\",\"3193\":\"ee14d6a4\",\"3299\":\"5ee62733\",\"3357\":\"217c56f0\",\"3384\":\"d9d4ed7e\",\"3418\":\"d84064e5\",\"3419\":\"245f31b6\",\"3459\":\"5c90b5a3\",\"3466\":\"43dfe991\",\"3487\":\"f5bc5b04\",\"3500\":\"a06c1c62\",\"3503\":\"66b6e510\",\"3540\":\"443301b3\",\"3562\":\"a45eb030\",\"3580\":\"7fc6f9a3\",\"3607\":\"bb6a8626\",\"3623\":\"2aae489e\",\"3647\":\"b96f9b3e\",\"3650\":\"515c743a\",\"3657\":\"59d45756\",\"3722\":\"b4bb9102\",\"3736\":\"d934b52b\",\"3811\":\"4ac917b8\",\"3885\":\"fe81a7fc\",\"3923\":\"ddf703d6\",\"3988\":\"843d9bc4\",\"4014\":\"bec19089\",\"4041\":\"29923ad9\",\"4075\":\"5d714528\",\"4110\":\"0f4ff415\",\"4135\":\"9b39cf3b\",\"4282\":\"f624f22d\",\"4300\":\"8540ccea\",\"4342\":\"ade4c6c4\",\"4383\":\"c3457b50\",\"4436\":\"fc94a148\",\"4446\":\"92519810\",\"4491\":\"83052809\",\"4493\":\"cceeafb0\",\"4570\":\"8b9f98d7\",\"4575\":\"8d1f48c5\",\"4635\":\"1ff533ef\",\"4682\":\"6959fcd1\",\"4733\":\"f32d41e6\",\"4835\":\"78d69dee\",\"4931\":\"a431b2db\",\"4956\":\"f9816c44\",\"4971\":\"b6519e02\",\"5010\":\"a4aa0f8e\",\"5034\":\"b0d90871\",\"5051\":\"3bc87b5b\",\"5099\":\"4934a8e8\",\"5123\":\"501777c7\",\"5189\":\"8fd3703c\",\"5251\":\"5b0d21b9\",\"5253\":\"e6dbc3b4\",\"5286\":\"630147e0\",\"5446\":\"0e42541e\",\"5453\":\"280127dd\",\"5565\":\"c5eaa6f5\",\"5603\":\"05d9ca7f\",\"5613\":\"dc8afdf1\",\"5664\":\"1ede6e37\",\"5773\":\"0cf721ff\",\"5813\":\"cc574d49\",\"5819\":\"72fdf84d\",\"5868\":\"78be038f\",\"5900\":\"8d4054e7\",\"6057\":\"d69b1825\",\"6152\":\"42eb54af\",\"6161\":\"97b48014\",\"6177\":\"695a2547\",\"6195\":\"74045e43\",\"6228\":\"7e26e901\",\"6267\":\"7d33a4a9\",\"6272\":\"b5ee5195\",\"6354\":\"e04d1c07\",\"6371\":\"c83dc422\",\"6422\":\"97baf774\",\"6501\":\"4bfb8996\",\"6512\":\"a4629d0a\",\"6542\":\"e82f126f\",\"6555\":\"4a460eaf\",\"6573\":\"ff6a8f78\",\"6780\":\"8f3a0af6\",\"6800\":\"736d5da3\",\"6835\":\"31bde7c5\",\"6840\":\"4728fab9\",\"6848\":\"3a36e63f\",\"6872\":\"7ef4ed23\",\"6924\":\"abe269c1\",\"6977\":\"909f2a27\",\"6986\":\"79dfc31f\",\"7048\":\"e740620a\",\"7079\":\"a8373241\",\"7131\":\"0cd375bc\",\"7209\":\"ae8475a2\",\"7247\":\"cb9028b5\",\"7254\":\"c5ac3a0a\",\"7351\":\"1e79c9b9\",\"7401\":\"94075d6a\",\"7406\":\"651dcc8d\",\"7439\":\"972cc801\",\"7533\":\"dfc9b0b0\",\"7556\":\"aa8a002f\",\"7572\":\"ec232b8a\",\"7601\":\"4df83556\",\"7764\":\"abc0a144\",\"7776\":\"d698757b\",\"7791\":\"12162a71\",\"7794\":\"5859273c\",\"7818\":\"9b9ce313\",\"7879\":\"ea98c6fb\",\"7934\":\"bb5b0086\",\"7959\":\"e57e3c89\",\"7984\":\"c8511b89\",\"8001\":\"114e44eb\",\"8030\":\"75c0a89b\",\"8058\":\"c54b2c4a\",\"8078\":\"588e191d\",\"8138\":\"8a488b19\",\"8140\":\"5052a768\",\"8216\":\"84e0a497\",\"8217\":\"5cb0fdfc\",\"8331\":\"ecb04f2a\",\"8338\":\"2d204375\",\"8365\":\"d3360f18\",\"8549\":\"b43ce116\",\"8563\":\"7e068fb0\",\"8595\":\"c60db034\",\"8705\":\"5b05cdf2\",\"8725\":\"53da57ca\",\"8727\":\"2bd53873\",\"8753\":\"fa8fdac0\",\"8755\":\"79af288c\",\"8763\":\"c0bcd6ce\",\"8799\":\"7c749838\",\"8833\":\"1489792c\",\"8874\":\"4fa5afdd\",\"8903\":\"80d14346\",\"8904\":\"9e4100ae\",\"8948\":\"ecd68b19\",\"9078\":\"25afcc29\",\"9118\":\"e3bfcde8\",\"9139\":\"8fb85401\",\"9162\":\"ab3b1c28\",\"9175\":\"4703f4c5\",\"9229\":\"f43a39d0\",\"9265\":\"0a0b12af\",\"9400\":\"df4a7fb5\",\"9406\":\"781cc6c6\",\"9612\":\"53f7c730\",\"9702\":\"378d3296\",\"9726\":\"7cff3cbb\",\"9882\":\"70910623\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"internal.plugin-kuadrant\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"@backstage/core-plugin-api\", \"1.11.0\", () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(7601), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218)]).then(() => (() => (__webpack_require__(47601))))));\n\t\t\tregister(\"@backstage/core-plugin-api\", \"1.11.0\", () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(428), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218), __webpack_require__.e(1085)]).then(() => (() => (__webpack_require__(20428))))));\n\t\t\tregister(\"@backstage/core-plugin-api\", \"1.11.0\", () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(6272), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218)]).then(() => (() => (__webpack_require__(26272))))));\n\t\t\tregister(\"@backstage/core-plugin-api\", \"1.11.1\", () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(3647), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218), __webpack_require__.e(3466)]).then(() => (() => (__webpack_require__(83647))))));\n\t\t\tregister(\"@backstage/version-bridge\", \"1.0.11\", () => (Promise.all([__webpack_require__.e(5478), __webpack_require__.e(5603)]).then(() => (() => (__webpack_require__(65603))))));\n\t\t\tregister(\"@material-ui/core/styles\", \"4.12.4\", () => (Promise.all([__webpack_require__.e(9400), __webpack_require__.e(5478), __webpack_require__.e(1942), __webpack_require__.e(4491)]).then(() => (() => (__webpack_require__(64491))))));\n\t\t\tregister(\"@material-ui/styles\", \"4.11.5\", () => (Promise.all([__webpack_require__.e(4570), __webpack_require__.e(5478), __webpack_require__.e(3007)]).then(() => (() => (__webpack_require__(94570))))));\n\t\t\tregister(\"react-dom\", \"18.3.1\", () => (Promise.all([__webpack_require__.e(3144), __webpack_require__.e(5478)]).then(() => (() => (__webpack_require__(43144))))));\n\t\t\tregister(\"react-router-dom\", \"6.30.1\", () => (Promise.all([__webpack_require__.e(1613), __webpack_require__.e(3657), __webpack_require__.e(5478), __webpack_require__.e(484), __webpack_require__.e(2731)]).then(() => (() => (__webpack_require__(73657))))));\n\t\t\tregister(\"react-router\", \"6.30.1\", () => (Promise.all([__webpack_require__.e(1613), __webpack_require__.e(1836), __webpack_require__.e(5478)]).then(() => (() => (__webpack_require__(51836))))));\n\t\t\tregister(\"react\", \"18.3.1\", () => (__webpack_require__.e(4041).then(() => (() => (__webpack_require__(14041))))));\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2310: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(1942|2469|2731|4218|484|5478|6659|7094|7976)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkinternal_plugin_kuadrant\"] = self[\"webpackChunkinternal_plugin_kuadrant\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(76741);\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","parseVersion","versionLt","rangeToString","satisfy","exists","get","eagerOnly","findSingletonVersionKey","getInvalidSingletonVersionMessage","fail","warn","useFallback","loadSingletonVersion","installedModules","moduleToHandlerMapping","chunkMapping","startedInstallModules","moduleMap","__webpack_require__","e","then","module","getScope","R","o","Promise","resolve","Error","undefined","init","shareScope","initScope","S","name","oldScope","I","d","exports","__webpack_module_cache__","moduleId","cachedModule","id","loaded","__webpack_modules__","call","m","c","n","getter","__esModule","a","Object","getPrototypeOf","obj","t","value","mode","this","ns","create","r","def","current","indexOf","getOwnPropertyNames","forEach","key","definition","defineProperty","enumerable","f","chunkId","all","keys","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","fn","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","initPromises","initTokens","initToken","scope","uniqueName","register","version","factory","eager","versions","activeVersion","from","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","replace","p","str","split","map","exec","apply","b","range","pop","entry","filtered","requiredVersion","msg","console","scopeName","fallback","failAsNotExist","promise","consumes","onFactory","onError","error","installedChunks","j","installedChunkData","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","self"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"internal.plugin-kuadrant.58a9d553e354df0eed24.js","mappings":"wEACIA,EADAC,ECAAC,EACAC,ECDAC,EAIAC,EAIAC,EAIAC,EAIAC,EAGAC,EAIAC,EAuBAC,EAMAC,EAUAC,EAMAC,EAWAC,EA0BAC,EAgBAC,EACAC,EAaAC,EAgCAC,E,mBCvKJ,IAAIC,EAAY,CACf,WAAc,IACNC,EAAoBC,EAA2B,KAAKC,KAAK,IAAM,IAASF,EAAoB,QAEpG,aAAgB,IACRA,EAAoBC,EAA6B,KAAKC,KAAK,IAAM,IAASF,EAAoB,QAEtG,4BAA+B,IACvBA,EAAoBC,EAA4C,KAAKC,KAAK,IAAM,IAASF,EAAoB,QAErH,kCAAqC,IAC7BA,EAAoBC,EAAkD,KAAKC,KAAK,IAAM,IAASF,EAAoB,QAE3H,6BAAgC,IACxBA,EAAoBC,EAA6C,KAAKC,KAAK,IAAM,IAASF,EAAoB,QAEtH,oCAAuC,IAC/BA,EAAoBC,EAAoD,KAAKC,KAAK,IAAM,IAASF,EAAoB,QAE7H,0BAA6B,IACrBA,EAAoBC,EAA0C,KAAKC,KAAK,IAAM,IAASF,EAAoB,SAGhHb,EAAM,CAACgB,EAAQC,KAClBJ,EAAoBK,EAAID,EACxBA,EACCJ,EAAoBM,EAAEP,EAAWI,GAC9BJ,EAAUI,KACVI,QAAQC,UAAUN,KAAK,KACxB,MAAM,IAAIO,MAAM,WAAaN,EAAS,oCAGzCH,EAAoBK,OAAIK,EACjBN,GAEJO,EAAO,CAACC,EAAYC,KACvB,GAAKb,EAAoBc,EAAzB,CACA,IAAIC,EAAO,UACPC,EAAWhB,EAAoBc,EAAEC,GACrC,GAAGC,GAAYA,IAAaJ,EAAY,MAAM,IAAIH,MAAM,mGAExD,OADAT,EAAoBc,EAAEC,GAAQH,EACvBZ,EAAoBiB,EAAEF,EAAMF,EALD,GASnCb,EAAoBkB,EAAEC,EAAS,CAC9BhC,IAAK,IAAM,EACXwB,KAAM,IAAM,G,GC9CTS,EAA2B,CAAC,EAGhC,SAASpB,EAAoBqB,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBX,IAAjBY,EACH,OAAOA,EAAaH,QAGrB,IAAIhB,EAASiB,EAAyBC,GAAY,CACjDE,GAAIF,EACJG,QAAQ,EACRL,QAAS,CAAC,GAUX,OANAM,EAAoBJ,GAAUK,KAAKvB,EAAOgB,QAAShB,EAAQA,EAAOgB,QAASnB,GAG3EG,EAAOqB,QAAS,EAGTrB,EAAOgB,OACf,C,OAGAnB,EAAoB2B,EAAIF,EAGxBzB,EAAoB4B,EAAIR,EC9BxBpB,EAAoB6B,EAAK1B,IACxB,IAAI2B,EAAS3B,GAAUA,EAAO4B,WAC7B,IAAO5B,EAAiB,QACxB,IAAM,EAEP,OADAH,EAAoBkB,EAAEY,EAAQ,CAAEE,EAAGF,IAC5BA,GLNJnD,EAAWsD,OAAOC,eAAkBC,GAASF,OAAOC,eAAeC,GAASA,GAASA,EAAa,UAQtGnC,EAAoBoC,EAAI,SAASC,EAAOC,GAEvC,GADU,EAAPA,IAAUD,EAAQE,KAAKF,IAChB,EAAPC,EAAU,OAAOD,EACpB,GAAoB,iBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPC,GAAaD,EAAMN,WAAY,OAAOM,EAC1C,GAAW,GAAPC,GAAoC,mBAAfD,EAAMnC,KAAqB,OAAOmC,CAC5D,CACA,IAAIG,EAAKP,OAAOQ,OAAO,MACvBzC,EAAoB0C,EAAEF,GACtB,IAAIG,EAAM,CAAC,EACXjE,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIiE,EAAiB,EAAPN,GAAYD,GAA0B,iBAAXO,GAAyC,mBAAXA,MAA4BlE,EAAemE,QAAQD,GAAUA,EAAUjE,EAASiE,GAC1JX,OAAOa,oBAAoBF,GAASG,QAASC,GAASL,EAAIK,GAAO,IAAOX,EAAMW,IAI/E,OAFAL,EAAa,QAAI,IAAM,EACvB3C,EAAoBkB,EAAEsB,EAAIG,GACnBH,CACR,EMxBAxC,EAAoBkB,EAAI,CAACC,EAAS8B,KACjC,IAAI,IAAID,KAAOC,EACXjD,EAAoBM,EAAE2C,EAAYD,KAAShD,EAAoBM,EAAEa,EAAS6B,IAC5Ef,OAAOiB,eAAe/B,EAAS6B,EAAK,CAAEG,YAAY,EAAMhE,IAAK8D,EAAWD,MCJ3EhD,EAAoBoD,EAAI,CAAC,EAGzBpD,EAAoBC,EAAKoD,GACjB9C,QAAQ+C,IAAIrB,OAAOsB,KAAKvD,EAAoBoD,GAAGI,OAAO,CAACC,EAAUT,KACvEhD,EAAoBoD,EAAEJ,GAAKK,EAASI,GAC7BA,GACL,KCNJzD,EAAoB0D,EAAKL,GAEjB,WAAa,CAAC,GAAK,sDAAsD,IAAM,mDAAmD,IAAM,mDAAmD,IAAM,qDAAqD,IAAM,wDAAwD,IAAM,sDAAsD,IAAM,qDAAqD,IAAM,oDAAoD,IAAM,qDAAqD,IAAM,sDAAsD,IAAM,qBAAqB,IAAM,0DAA0D,IAAM,uDAAuD,IAAM,sDAAsD,KAAO,mDAAmD,KAAO,uDAAuD,KAAO,oDAAoD,KAAO,0DAA0D,KAAO,uDAAuD,KAAO,0DAA0D,KAAO,2DAA2D,KAAO,4DAA4D,KAAO,uDAAuD,KAAO,2DAA2D,KAAO,oDAAoD,KAAO,mDAAmD,KAAO,0DAA0D,KAAO,wDAAwD,KAAO,mDAAmD,KAAO,oDAAoD,KAAO,sDAAsD,KAAO,yDAAyD,KAAO,uDAAuD,KAAO,wDAAwD,KAAO,0DAA0D,KAAO,0DAA0D,KAAO,sDAAsD,KAAO,oDAAoD,KAAO,sDAAsD,KAAO,mDAAmD,KAAO,oDAAoD,KAAO,qDAAqD,KAAO,mDAAmD,KAAO,oDAAoD,KAAO,sDAAsD,KAAO,iDAAiD,KAAO,sDAAsD,KAAO,uDAAuD,KAAO,qDAAqD,KAAO,oDAAoD,KAAO,uDAAuD,KAAO,0DAA0D,KAAO,sDAAsD,KAAO,sDAAsD,KAAO,0DAA0D,KAAO,mDAAmD,KAAO,iDAAiD,KAAO,wDAAwD,KAAO,uDAAuD,KAAO,mDAAmD,KAAO,0DAA0D,KAAO,mDAAmD,KAAO,yDAAyD,KAAO,6DAA6D,KAAO,oDAAoD,KAAO,yDAAyD,KAAO,mDAAmD,KAAO,mDAAmD,KAAO,sDAAsD,KAAO,mDAAmD,KAAO,oDAAoD,KAAO,mDAAmD,KAAO,uDAAuD,KAAO,sDAAsD,KAAO,0DAA0D,KAAO,oDAAoD,KAAO,mDAAmD,KAAO,oDAAoD,KAAO,oDAAoD,KAAO,qDAAqD,KAAO,oDAAoD,KAAO,mDAAmD,KAAO,qDAAqD,KAAO,2DAA2D,KAAO,oDAAoD,KAAO,oDAAoD,KAAO,mDAAmD,KAAO,kDAAkD,KAAO,qDAAqD,KAAO,8DAA8D,KAAO,iDAAiD,KAAO,mDAAmD,KAAO,wDAAwD,KAAO,sDAAsD,KAAO,oDAAoD,KAAO,qDAAqD,KAAO,0DAA0D,KAAO,wDAAwD,KAAO,oDAAoD,KAAO,mDAAmD,KAAO,sDAAsD,KAAO,2DAA2D,KAAO,mDAAmD,KAAO,mDAAmD,KAAO,4DAA4D,KAAO,oDAAoD,KAAO,sDAAsD,KAAO,mDAAmD,KAAO,qDAAqD,KAAO,2DAA2D,KAAO,qDAAqD,KAAO,qDAAqD,KAAO,sDAAsD,KAAO,mDAAmD,KAAO,mDAAmD,KAAO,2DAA2D,KAAO,oDAAoD,KAAO,sDAAsD,KAAO,uDAAuD,KAAO,qDAAqD,KAAO,uDAAuD,KAAO,4DAA4D,KAAO,qDAAqD,KAAO,4DAA4D,KAAO,oDAAoD,KAAO,oDAAoD,KAAO,qDAAqD,KAAO,oDAAoD,KAAO,sDAAsD,KAAO,qDAAqD,KAAO,mDAAmD,KAAO,wDAAwD,KAAO,mDAAmD,KAAO,mDAAmD,KAAO,yDAAyD,KAAO,uDAAuD,KAAO,oDAAoD,KAAO,mDAAmD,KAAO,yDAAyD,KAAO,uDAAuD,KAAO,oDAAoD,KAAO,wDAAwD,KAAO,oDAAoD,KAAO,qDAAqD,KAAO,uDAAuD,KAAO,sDAAsD,KAAO,mDAAmD,KAAO,mDAAmD,KAAO,oDAAoD,KAAO,mDAAmD,KAAO,qDAAqD,KAAO,kDAAkD,KAAO,oDAAoD,KAAO,oDAAoD,KAAO,uDAAuD,KAAO,sDAAsD,KAAO,oDAAoD,KAAO,wDAAwD,KAAO,sDAAsD,KAAO,0DAA0D,KAAO,oDAAoD,KAAO,sDAAsD,KAAO,mDAAmD,KAAO,kDAAkD,KAAO,mDAAmD,KAAO,oDAAoD,KAAO,sDAAsD,KAAO,0DAA0D,KAAO,iDAAiD,KAAO,kDAAkD,KAAO,wDAAwD,KAAO,yDAAyD,KAAO,2CAA2C,KAAO,uDAAuD,KAAO,mDAAmD,KAAO,wDAAwD,KAAO,wDAAwD,KAAO,qDAAqD,KAAO,sDAAsD,KAAO,sDAAsD,KAAO,sDAAsD,KAAO,sDAAsD,KAAO,yDAAyD,KAAO,sDAAsD,KAAO,sDAAsD,KAAO,wDAAwD,KAAO,qDAAqD,KAAO,oDAAoD,KAAO,mDAAmD,KAAO,oDAAoD,KAAO,qDAAqD,KAAO,kDAAkD,KAAO,uDAAuDA,IAAYA,GAAW,IAAM,CAAC,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,YAAYA,GAAW,YCFtkfrD,EAAoB2D,SA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","sources":["webpack://internal.plugin-kuadrant/webpack/runtime/create fake namespace object","webpack://internal.plugin-kuadrant/webpack/runtime/load script","webpack://internal.plugin-kuadrant/webpack/runtime/consumes","webpack://internal.plugin-kuadrant/webpack/container-entry","webpack://internal.plugin-kuadrant/webpack/bootstrap","webpack://internal.plugin-kuadrant/webpack/runtime/compat get default export","webpack://internal.plugin-kuadrant/webpack/runtime/define property getters","webpack://internal.plugin-kuadrant/webpack/runtime/ensure chunk","webpack://internal.plugin-kuadrant/webpack/runtime/get javascript chunk filename","webpack://internal.plugin-kuadrant/webpack/runtime/get mini-css chunk filename","webpack://internal.plugin-kuadrant/webpack/runtime/global","webpack://internal.plugin-kuadrant/webpack/runtime/hasOwnProperty shorthand","webpack://internal.plugin-kuadrant/webpack/runtime/make namespace object","webpack://internal.plugin-kuadrant/webpack/runtime/node module decorator","webpack://internal.plugin-kuadrant/webpack/runtime/sharing","webpack://internal.plugin-kuadrant/webpack/runtime/publicPath","webpack://internal.plugin-kuadrant/webpack/runtime/jsonp chunk loading","webpack://internal.plugin-kuadrant/webpack/startup"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"internal.plugin-kuadrant:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var parseVersion = (str) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=p=>{return p.split(\".\").map(p=>{return+p==p?+p:p})},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = (a, b) => {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r<b.length&&\"u\"!=(typeof b[r])[0];var e=a[r],n=(typeof e)[0];if(r>=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e<t;r++}\n}\nvar rangeToString = (range) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar r=range[0],n=\"\";if(1===range.length)return\"*\";if(r+.5){n+=0==r?\">=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a<range.length;a++){e--,n+=\"u\"==(typeof(t=range[a]))[0]?\"-\":(e>0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?\"not(\"+o()+\")\":1===t?\"(\"+o()+\" || \"+o()+\")\":2===t?g.pop()+\" \"+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,\"$1\")}\n}\nvar satisfy = (range, version) => {\n\t// see webpack/lib/util/semver.js for original code\n\tif(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i<range.length?(typeof range[i])[0]:\"\";if(n>=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f<range[i])return!1;f!=range[i]&&(a=!1)}else if(\"s\"!=g&&\"n\"!=g){if(r||i<=e)return!1;a=!1,i--}else{if(i<=e||s<g!=r)return!1;a=!1}else\"s\"!=g&&\"n\"!=g&&(a=!1,i--)}}var t=[],o=t.pop.bind(t);for(n=1;n<range.length;n++){var u=range[n];t.push(1==u?o()|o():2==u?o()&o():u?satisfy(u,version):!o())}return!!o();\n}\nvar exists = (scope, key) => {\n\treturn scope && __webpack_require__.o(scope, key);\n}\nvar get = (entry) => {\n\tentry.loaded = 1;\n\treturn entry.get()\n};\nvar eagerOnly = (versions) => {\n\treturn Object.keys(versions).reduce((filtered, version) => {\n\t\t\tif (versions[version].eager) {\n\t\t\t\tfiltered[version] = versions[version];\n\t\t\t}\n\t\t\treturn filtered;\n\t}, {});\n};\nvar findLatestVersion = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key];\n};\nvar findSatisfyingVersion = (scope, key, requiredVersion, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\tif (!satisfy(requiredVersion, b)) return a;\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar findSingletonVersionKey = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\treturn Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;\n\t}, 0);\n};\nvar getInvalidSingletonVersionMessage = (scope, key, version, requiredVersion) => {\n\treturn \"Unsatisfied version \" + version + \" from \" + (version && scope[key][version].from) + \" of shared singleton module \" + key + \" (required \" + rangeToString(requiredVersion) + \")\"\n};\nvar getInvalidVersionMessage = (scope, scopeName, key, requiredVersion, eager) => {\n\tvar versions = scope[key];\n\treturn \"No satisfying version (\" + rangeToString(requiredVersion) + \")\" + (eager ? \" for eager consumption\" : \"\") + \" of shared module \" + key + \" found in shared scope \" + scopeName + \".\\n\" +\n\t\t\"Available versions: \" + Object.keys(versions).map((key) => {\n\t\treturn key + \" from \" + versions[key].from;\n\t}).join(\", \");\n};\nvar fail = (msg) => {\n\tthrow new Error(msg);\n}\nvar failAsNotExist = (scopeName, key) => {\n\treturn fail(\"Shared module \" + key + \" doesn't exist in shared scope \" + scopeName);\n}\nvar warn = /*#__PURE__*/ (msg) => {\n\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n};\nvar init = (fn) => (function(scopeName, key, eager, c, d) {\n\tvar promise = __webpack_require__.I(scopeName);\n\tif (promise && promise.then && !eager) {\n\t\treturn promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], key, false, c, d));\n\t}\n\treturn fn(scopeName, __webpack_require__.S[scopeName], key, eager, c, d);\n});\n\nvar useFallback = (scopeName, key, fallback) => {\n\treturn fallback ? fallback() : failAsNotExist(scopeName, key);\n}\nvar load = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\twarn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager))\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadStrictVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\tif (fallback) return fallback();\n\tfail(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager));\n});\nvar loadSingleton = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\treturn get(scope[key][version]);\n});\nvar loadSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\twarn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar loadStrictSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\tfail(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar installedModules = {};\nvar moduleToHandlerMapping = {\n\t22097: () => (loadSingletonVersion(\"default\", \"@backstage/core-plugin-api\", false, [0], () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(6272), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218)]).then(() => (() => (__webpack_require__(26272))))))),\n\t95478: () => (loadSingletonVersion(\"default\", \"react\", false, [0], () => (__webpack_require__.e(4041).then(() => (() => (__webpack_require__(14041))))))),\n\t42469: () => (loadSingletonVersion(\"default\", \"react-router-dom\", false, [0], () => (Promise.all([__webpack_require__.e(1613), __webpack_require__.e(3657), __webpack_require__.e(484), __webpack_require__.e(2731)]).then(() => (() => (__webpack_require__(73657))))))),\n\t64218: () => (loadSingletonVersion(\"default\", \"@backstage/version-bridge\", false, [0], () => (__webpack_require__.e(7984).then(() => (() => (__webpack_require__(65603))))))),\n\t11942: () => (loadSingletonVersion(\"default\", \"@material-ui/styles\", false, [0], () => (__webpack_require__.e(4570).then(() => (() => (__webpack_require__(94570))))))),\n\t40484: () => (loadSingletonVersion(\"default\", \"react-dom\", false, [0], () => (__webpack_require__.e(3144).then(() => (() => (__webpack_require__(43144))))))),\n\t92731: () => (loadSingletonVersion(\"default\", \"react-router\", false, [0], () => (__webpack_require__.e(1836).then(() => (() => (__webpack_require__(51836))))))),\n\t37976: () => (loadSingletonVersion(\"default\", \"@material-ui/core/styles\", false, [0], () => (__webpack_require__.e(6872).then(() => (() => (__webpack_require__(64491))))))),\n\t97094: () => (loadSingletonVersion(\"default\", \"@backstage/core-plugin-api\", false, [0], () => (Promise.all([__webpack_require__.e(3647), __webpack_require__.e(2469)]).then(() => (() => (__webpack_require__(83647))))))),\n\t26659: () => (loadSingletonVersion(\"default\", \"@backstage/core-plugin-api\", false, [0], () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(428), __webpack_require__.e(2469)]).then(() => (() => (__webpack_require__(20428)))))))\n};\n// no consumes in initial chunks\nvar chunkMapping = {\n\t\"484\": [\n\t\t40484\n\t],\n\t\"879\": [\n\t\t22097\n\t],\n\t\"1942\": [\n\t\t11942\n\t],\n\t\"2469\": [\n\t\t42469\n\t],\n\t\"2731\": [\n\t\t92731\n\t],\n\t\"4218\": [\n\t\t64218\n\t],\n\t\"5478\": [\n\t\t95478\n\t],\n\t\"6659\": [\n\t\t26659\n\t],\n\t\"7094\": [\n\t\t97094\n\t],\n\t\"7976\": [\n\t\t37976\n\t]\n};\nvar startedInstallModules = {};\n__webpack_require__.f.consumes = (chunkId, promises) => {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach((id) => {\n\t\t\tif(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);\n\t\t\tif(!startedInstallModules[id]) {\n\t\t\tvar onFactory = (factory) => {\n\t\t\t\tinstalledModules[id] = 0;\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\tstartedInstallModules[id] = true;\n\t\t\tvar onError = (error) => {\n\t\t\t\tdelete installedModules[id];\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar promise = moduleToHandlerMapping[id]();\n\t\t\t\tif(promise.then) {\n\t\t\t\t\tpromises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));\n\t\t\t\t} else onFactory(promise);\n\t\t\t} catch(e) { onError(e); }\n\t\t\t}\n\t\t});\n\t}\n}","var moduleMap = {\n\t\"PluginRoot\": () => {\n\t\treturn __webpack_require__.e(/* exposed-PluginRoot */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"KuadrantPage\": () => {\n\t\treturn __webpack_require__.e(/* exposed-KuadrantPage */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"EntityKuadrantApiAccessCard\": () => {\n\t\treturn __webpack_require__.e(/* exposed-EntityKuadrantApiAccessCard */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"EntityKuadrantApiKeyManagementTab\": () => {\n\t\treturn __webpack_require__.e(/* exposed-EntityKuadrantApiKeyManagementTab */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"EntityKuadrantApiKeysContent\": () => {\n\t\treturn __webpack_require__.e(/* exposed-EntityKuadrantApiKeysContent */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"EntityKuadrantApiProductInfoContent\": () => {\n\t\treturn __webpack_require__.e(/* exposed-EntityKuadrantApiProductInfoContent */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t},\n\t\"KuadrantApprovalQueueCard\": () => {\n\t\treturn __webpack_require__.e(/* exposed-KuadrantApprovalQueueCard */ 879).then(() => (() => ((__webpack_require__(72627)))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar name = \"default\"\n\tvar oldScope = __webpack_require__.S[name];\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"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\"}[chunkId] || chunkId) + \".\" + {\"51\":\"be0fdf0c\",\"200\":\"5251fe1a\",\"206\":\"2347c999\",\"371\":\"2f5c76b9\",\"428\":\"0a290bc6\",\"441\":\"9f02e61b\",\"456\":\"47518214\",\"460\":\"6381890e\",\"464\":\"9bbc16eb\",\"557\":\"362a3b0a\",\"579\":\"21c190ed\",\"634\":\"bb9cc730\",\"879\":\"a5792fb2\",\"927\":\"b0ad82d3\",\"946\":\"e3fcc98c\",\"985\":\"5f60f06d\",\"1062\":\"17afaed1\",\"1084\":\"35f221e8\",\"1085\":\"536aa0fa\",\"1099\":\"a34b6944\",\"1173\":\"614c5248\",\"1177\":\"615fa721\",\"1214\":\"60f97895\",\"1276\":\"2bd36dc7\",\"1325\":\"78db0238\",\"1352\":\"38ec3d00\",\"1362\":\"d8631b37\",\"1418\":\"1961f69f\",\"1441\":\"6b156852\",\"1461\":\"3ece3068\",\"1489\":\"a5a73a29\",\"1496\":\"52f73c98\",\"1522\":\"b30d0c38\",\"1613\":\"71f0fccd\",\"1679\":\"508b5846\",\"1694\":\"bd112f1a\",\"1727\":\"ea742315\",\"1750\":\"cad796c9\",\"1828\":\"2c5fdf55\",\"1836\":\"b74b4c40\",\"1895\":\"feb72aed\",\"1956\":\"ee3f80da\",\"1961\":\"17155e77\",\"1972\":\"2ba37c00\",\"2007\":\"2cc312ae\",\"2064\":\"dea9db6c\",\"2108\":\"f884fdc0\",\"2180\":\"43421810\",\"2198\":\"5905970e\",\"2234\":\"1cb2f675\",\"2267\":\"f1f17544\",\"2346\":\"bf4f2b44\",\"2362\":\"353780d4\",\"2378\":\"706a4bd6\",\"2383\":\"58c4cb07\",\"2438\":\"e2543cc2\",\"2488\":\"e32adbeb\",\"2496\":\"0d7f4890\",\"2512\":\"cde06cf5\",\"2516\":\"aa86d495\",\"2628\":\"6619bf8b\",\"2665\":\"7bd31b3a\",\"2693\":\"402e473f\",\"2727\":\"989943de\",\"2743\":\"4b40a3f9\",\"2759\":\"fceb317f\",\"2762\":\"bbd3c104\",\"2795\":\"6d79126a\",\"2871\":\"cf576f17\",\"2882\":\"0e45c1cf\",\"2928\":\"4303c12e\",\"2946\":\"167c50c2\",\"2967\":\"ac3a4bee\",\"2979\":\"25f8d292\",\"2981\":\"038504d0\",\"2983\":\"eaa5e2bf\",\"2987\":\"1da15560\",\"3007\":\"bffc9924\",\"3097\":\"4bd6b35f\",\"3144\":\"6f99ccee\",\"3146\":\"08443005\",\"3193\":\"ee14d6a4\",\"3299\":\"5ee62733\",\"3357\":\"217c56f0\",\"3384\":\"d9d4ed7e\",\"3418\":\"d84064e5\",\"3419\":\"245f31b6\",\"3459\":\"5c90b5a3\",\"3466\":\"43dfe991\",\"3487\":\"f5bc5b04\",\"3500\":\"a06c1c62\",\"3503\":\"66b6e510\",\"3540\":\"443301b3\",\"3562\":\"a45eb030\",\"3580\":\"7fc6f9a3\",\"3607\":\"bb6a8626\",\"3623\":\"2aae489e\",\"3647\":\"b96f9b3e\",\"3650\":\"515c743a\",\"3657\":\"59d45756\",\"3722\":\"b4bb9102\",\"3736\":\"d934b52b\",\"3811\":\"4ac917b8\",\"3885\":\"fe81a7fc\",\"3923\":\"ddf703d6\",\"3988\":\"843d9bc4\",\"4014\":\"bec19089\",\"4041\":\"29923ad9\",\"4075\":\"5d714528\",\"4110\":\"0f4ff415\",\"4135\":\"9b39cf3b\",\"4282\":\"f624f22d\",\"4300\":\"8540ccea\",\"4342\":\"ade4c6c4\",\"4383\":\"c3457b50\",\"4436\":\"fc94a148\",\"4446\":\"92519810\",\"4491\":\"83052809\",\"4493\":\"cceeafb0\",\"4570\":\"8b9f98d7\",\"4575\":\"8d1f48c5\",\"4635\":\"1ff533ef\",\"4682\":\"6959fcd1\",\"4733\":\"f32d41e6\",\"4835\":\"78d69dee\",\"4931\":\"a431b2db\",\"4956\":\"f9816c44\",\"4971\":\"b6519e02\",\"5010\":\"a4aa0f8e\",\"5034\":\"b0d90871\",\"5051\":\"3bc87b5b\",\"5099\":\"4934a8e8\",\"5123\":\"501777c7\",\"5189\":\"8fd3703c\",\"5251\":\"5b0d21b9\",\"5253\":\"e6dbc3b4\",\"5286\":\"630147e0\",\"5446\":\"0e42541e\",\"5453\":\"280127dd\",\"5565\":\"c5eaa6f5\",\"5603\":\"05d9ca7f\",\"5613\":\"dc8afdf1\",\"5664\":\"1ede6e37\",\"5773\":\"0cf721ff\",\"5813\":\"cc574d49\",\"5819\":\"72fdf84d\",\"5868\":\"78be038f\",\"5900\":\"8d4054e7\",\"6057\":\"d69b1825\",\"6152\":\"42eb54af\",\"6161\":\"97b48014\",\"6177\":\"695a2547\",\"6195\":\"74045e43\",\"6228\":\"7e26e901\",\"6267\":\"7d33a4a9\",\"6272\":\"b5ee5195\",\"6354\":\"e04d1c07\",\"6371\":\"c83dc422\",\"6422\":\"97baf774\",\"6501\":\"4bfb8996\",\"6512\":\"a4629d0a\",\"6542\":\"e82f126f\",\"6555\":\"4a460eaf\",\"6573\":\"ff6a8f78\",\"6780\":\"8f3a0af6\",\"6800\":\"736d5da3\",\"6835\":\"31bde7c5\",\"6840\":\"4728fab9\",\"6848\":\"3a36e63f\",\"6872\":\"7ef4ed23\",\"6924\":\"abe269c1\",\"6977\":\"909f2a27\",\"6986\":\"79dfc31f\",\"7048\":\"e740620a\",\"7079\":\"a8373241\",\"7131\":\"0cd375bc\",\"7209\":\"ae8475a2\",\"7247\":\"cb9028b5\",\"7254\":\"c5ac3a0a\",\"7351\":\"1e79c9b9\",\"7401\":\"94075d6a\",\"7406\":\"651dcc8d\",\"7439\":\"972cc801\",\"7533\":\"dfc9b0b0\",\"7556\":\"aa8a002f\",\"7572\":\"ec232b8a\",\"7601\":\"4df83556\",\"7764\":\"abc0a144\",\"7776\":\"d698757b\",\"7791\":\"39417f8c\",\"7794\":\"5859273c\",\"7818\":\"9b9ce313\",\"7879\":\"ea98c6fb\",\"7934\":\"bb5b0086\",\"7959\":\"e57e3c89\",\"7984\":\"c8511b89\",\"8001\":\"114e44eb\",\"8030\":\"75c0a89b\",\"8058\":\"c54b2c4a\",\"8078\":\"588e191d\",\"8138\":\"8a488b19\",\"8140\":\"5052a768\",\"8216\":\"84e0a497\",\"8217\":\"5cb0fdfc\",\"8331\":\"ecb04f2a\",\"8338\":\"2d204375\",\"8365\":\"d3360f18\",\"8549\":\"b43ce116\",\"8563\":\"7e068fb0\",\"8595\":\"c60db034\",\"8705\":\"5b05cdf2\",\"8725\":\"53da57ca\",\"8727\":\"2bd53873\",\"8753\":\"fa8fdac0\",\"8755\":\"79af288c\",\"8763\":\"c0bcd6ce\",\"8799\":\"7c749838\",\"8833\":\"1489792c\",\"8874\":\"4fa5afdd\",\"8903\":\"80d14346\",\"8904\":\"9e4100ae\",\"8948\":\"ecd68b19\",\"9078\":\"25afcc29\",\"9118\":\"e3bfcde8\",\"9139\":\"8fb85401\",\"9162\":\"ab3b1c28\",\"9175\":\"4703f4c5\",\"9229\":\"f43a39d0\",\"9265\":\"0a0b12af\",\"9400\":\"df4a7fb5\",\"9406\":\"781cc6c6\",\"9612\":\"53f7c730\",\"9702\":\"378d3296\",\"9726\":\"7cff3cbb\",\"9882\":\"70910623\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"internal.plugin-kuadrant\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"@backstage/core-plugin-api\", \"1.11.0\", () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(7601), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218)]).then(() => (() => (__webpack_require__(47601))))));\n\t\t\tregister(\"@backstage/core-plugin-api\", \"1.11.0\", () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(428), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218), __webpack_require__.e(1085)]).then(() => (() => (__webpack_require__(20428))))));\n\t\t\tregister(\"@backstage/core-plugin-api\", \"1.11.0\", () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(6272), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218)]).then(() => (() => (__webpack_require__(26272))))));\n\t\t\tregister(\"@backstage/core-plugin-api\", \"1.11.1\", () => (Promise.all([__webpack_require__.e(7556), __webpack_require__.e(3647), __webpack_require__.e(5478), __webpack_require__.e(2469), __webpack_require__.e(4218), __webpack_require__.e(3466)]).then(() => (() => (__webpack_require__(83647))))));\n\t\t\tregister(\"@backstage/version-bridge\", \"1.0.11\", () => (Promise.all([__webpack_require__.e(5478), __webpack_require__.e(5603)]).then(() => (() => (__webpack_require__(65603))))));\n\t\t\tregister(\"@material-ui/core/styles\", \"4.12.4\", () => (Promise.all([__webpack_require__.e(9400), __webpack_require__.e(5478), __webpack_require__.e(1942), __webpack_require__.e(4491)]).then(() => (() => (__webpack_require__(64491))))));\n\t\t\tregister(\"@material-ui/styles\", \"4.11.5\", () => (Promise.all([__webpack_require__.e(4570), __webpack_require__.e(5478), __webpack_require__.e(3007)]).then(() => (() => (__webpack_require__(94570))))));\n\t\t\tregister(\"react-dom\", \"18.3.1\", () => (Promise.all([__webpack_require__.e(3144), __webpack_require__.e(5478)]).then(() => (() => (__webpack_require__(43144))))));\n\t\t\tregister(\"react-router-dom\", \"6.30.1\", () => (Promise.all([__webpack_require__.e(1613), __webpack_require__.e(3657), __webpack_require__.e(5478), __webpack_require__.e(484), __webpack_require__.e(2731)]).then(() => (() => (__webpack_require__(73657))))));\n\t\t\tregister(\"react-router\", \"6.30.1\", () => (Promise.all([__webpack_require__.e(1613), __webpack_require__.e(1836), __webpack_require__.e(5478)]).then(() => (() => (__webpack_require__(51836))))));\n\t\t\tregister(\"react\", \"18.3.1\", () => (__webpack_require__.e(4041).then(() => (() => (__webpack_require__(14041))))));\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2310: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(1942|2469|2731|4218|484|5478|6659|7094|7976)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkinternal_plugin_kuadrant\"] = self[\"webpackChunkinternal_plugin_kuadrant\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(76741);\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","parseVersion","versionLt","rangeToString","satisfy","exists","get","eagerOnly","findSingletonVersionKey","getInvalidSingletonVersionMessage","fail","warn","useFallback","loadSingletonVersion","installedModules","moduleToHandlerMapping","chunkMapping","startedInstallModules","moduleMap","__webpack_require__","e","then","module","getScope","R","o","Promise","resolve","Error","undefined","init","shareScope","initScope","S","name","oldScope","I","d","exports","__webpack_module_cache__","moduleId","cachedModule","id","loaded","__webpack_modules__","call","m","c","n","getter","__esModule","a","Object","getPrototypeOf","obj","t","value","mode","this","ns","create","r","def","current","indexOf","getOwnPropertyNames","forEach","key","definition","defineProperty","enumerable","f","chunkId","all","keys","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","fn","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","initPromises","initTokens","initToken","scope","uniqueName","register","version","factory","eager","versions","activeVersion","from","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","replace","p","str","split","map","exec","apply","b","range","pop","entry","filtered","requiredVersion","msg","console","scopeName","fallback","failAsNotExist","promise","consumes","onFactory","onError","error","installedChunks","j","installedChunkData","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","self"],"sourceRoot":""}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"registrationMethod": "callback",
|
|
6
6
|
"baseURL": "auto",
|
|
7
7
|
"loadScripts": [
|
|
8
|
-
"internal.plugin-kuadrant.
|
|
8
|
+
"internal.plugin-kuadrant.58a9d553e354df0eed24.js"
|
|
9
9
|
],
|
|
10
|
-
"buildHash": "
|
|
10
|
+
"buildHash": "58a9d553e354df0eed248470e8eb6916"
|
|
11
11
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[7791],{57791:(e,i,s)=>{s.r(i),s.d(i,{ApiProductDetailPage:()=>F});var a=s(31085),t=s(95478),n=s(42469),l=s(22097),o=s(35015),r=s(86687),c=s(42367),d=s(289),p=s(15831),u=s(37725),h=s(46681),m=s(94641),x=s(96040),A=s(26648),j=s(58837),v=s(10394),y=s(64947),b=s(71677),g=s(29365),f=s(72501),P=s(31653),N=s(38605),I=s(42899),k=s(67720),C=s(61009),w=s(47625),S=s(9719),_=s(54801),T=s(13677),D=s(55735),R=s(75625),z=s(39590),L=s(26997),$=s(63221),E=s(89509),O=s(46205),U=s(34955);const B=(0,j.A)(e=>({label:{fontWeight:600,color:e.palette.text.secondary,marginBottom:e.spacing(.5),fontSize:"0.75rem",textTransform:"uppercase"},actionButtons:{display:"flex",gap:e.spacing(1),alignItems:"center"},cardHeader:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:e.spacing(2)},cardActions:{display:"flex",gap:e.spacing(1),alignItems:"center"}})),F=()=>{var e,i,s,j,F,V,Y,G,H,W,K,J,M,X,q,Q,Z,ee,ie,se,ae,te;const ne=B(),{namespace:le,name:oe}=(0,n.useParams)(),re=(0,n.useNavigate)(),ce=(0,l.useApi)(l.configApiRef),de=(0,l.useApi)(l.fetchApiRef),pe=(0,l.useApi)(l.alertApiRef),ue=ce.getString("backend.baseUrl"),[he,me]=(0,t.useState)(0),[xe,Ae]=(0,t.useState)(!1),[je,ve]=(0,t.useState)(!1),[ye,be]=(0,t.useState)(!1),[ge,fe]=(0,t.useState)(0),{allowed:Pe}=(0,O.l)(U.v_),{allowed:Ne}=(0,O.l)(U.R_),Ie=Pe,{value:ke,loading:Ce,error:we}=(0,o.A)(async()=>{const e=await de.fetch(`${ue}/api/kuadrant/apiproducts/${le}/${oe}`);if(!e.ok)throw new Error("Failed to fetch API product");return e.json()},[le,oe,ue,de,ge]),Se=async()=>{var e;if(!ke)return;const i="Published"===(null===(e=ke.spec)||void 0===e?void 0:e.publishStatus)?"Draft":"Published";try{if(!(await de.fetch(`${ue}/api/kuadrant/apiproducts/${le}/${oe}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({spec:{publishStatus:i}})})).ok)throw new Error("Failed to update publish status");pe.post({message:`API Product ${"Published"===i?"published":"unpublished"} successfully`,severity:"success",display:"transient"}),fe(e=>e+1)}catch(e){pe.post({message:"Failed to update publish status",severity:"error",display:"transient"})}};if(Ce)return(0,a.jsx)(r.k,{});if(we||!ke)return(0,a.jsx)(c._,{error:we||new Error("API product not found")});const _e="Published"===(null===(e=ke.spec)||void 0===e?void 0:e.publishStatus),Te=null===(s=ke.status)||void 0===s||null===(i=s.conditions)||void 0===i?void 0:i.find(e=>"PlanPolicyDiscovered"===e.type),De=null===(F=ke.status)||void 0===F||null===(j=F.conditions)||void 0===j?void 0:j.find(e=>"AuthPolicyDiscovered"===e.type),Re=(null===(V=ke.status)||void 0===V?void 0:V.discoveredPlans)||[],ze=(null===(G=ke.status)||void 0===G||null===(Y=G.discoveredAuthScheme)||void 0===Y?void 0:Y.authentication)||{},Le=Object.values(ze),$e=Le.some(e=>e.hasOwnProperty("jwt")),Ee=Le.find(e=>e.hasOwnProperty("jwt")),Oe=(null==Ee||null===(H=Ee.jwt)||void 0===H?void 0:H.issuerUrl)||"unknown",Ue=(null===(K=ke.status)||void 0===K||null===(W=K.oidcDiscovery)||void 0===W?void 0:W.tokenEndpoint)||"unknown",Be=!!(null===(M=ke.spec)||void 0===M||null===(J=M.documentation)||void 0===J?void 0:J.openAPISpecURL),Fe=!!(Te||De||Re.length>0);let Ve=1;const Ye=Be?Ve++:-1,Ge=Fe?Ve++:-1,He=$e?Ve++:-1,We=e=>{if(!e)return"No limits";const i=[];return e.daily&&i.push(`${e.daily}/day`),e.weekly&&i.push(`${e.weekly}/week`),e.monthly&&i.push(`${e.monthly}/month`),e.yearly&&i.push(`${e.yearly}/year`),i.length>0?i.join(", "):"No limits"};return(0,a.jsxs)(d.Y,{themeId:"tool",children:[(0,a.jsx)(p.Y,{title:(null===(X=ke.spec)||void 0===X?void 0:X.displayName)||ke.metadata.name,subtitle:(null===(q=ke.spec)||void 0===q?void 0:q.description)||"",children:(0,a.jsxs)(v.A,{className:ne.actionButtons,children:[(0,a.jsx)(u.N_,{to:"/kuadrant/api-products",children:(0,a.jsx)(y.A,{startIcon:(0,a.jsx)(D.A,{}),children:"Back"})}),Ie&&(0,a.jsx)(y.A,{variant:"outlined",color:_e?"default":"primary",onClick:Se,children:_e?"Unpublish API product":"Publish API product"}),Pe&&(0,a.jsx)(b.Ay,{title:"Edit",children:(0,a.jsx)(g.A,{onClick:()=>Ae(!0),size:"small",children:(0,a.jsx)(R.A,{})})}),Ne&&(0,a.jsx)(b.Ay,{title:"Delete",children:(0,a.jsx)(g.A,{onClick:()=>ve(!0),size:"small",children:(0,a.jsx)(z.A,{})})})]})}),(0,a.jsxs)(h.U,{children:[(0,a.jsx)(v.A,{mb:2,children:(0,a.jsxs)(m.B,{"aria-label":"breadcrumb",children:[(0,a.jsx)(u.N_,{to:"/kuadrant/api-products",children:"API Products"}),(0,a.jsx)(f.A,{children:(null===(Q=ke.spec)||void 0===Q?void 0:Q.displayName)||ke.metadata.name})]})}),(0,a.jsx)(v.A,{mb:2,children:(0,a.jsxs)(P.A,{value:he,onChange:(e,i)=>me(i),indicatorColor:"primary",textColor:"primary",children:[(0,a.jsx)(N.A,{label:"Overview"}),Be&&(0,a.jsx)(N.A,{label:"Definition"}),Fe&&(0,a.jsx)(N.A,{label:"Policies"}),$e&&(0,a.jsx)(N.A,{label:"OIDC"})]})}),0===he&&(0,a.jsxs)(x.n,{title:"API Product",children:[(0,a.jsxs)(v.A,{className:ne.cardHeader,children:[(0,a.jsxs)(v.A,{children:[(0,a.jsx)(f.A,{variant:"caption",className:ne.label,children:"Product Name"}),(0,a.jsx)(f.A,{variant:"h6",children:(null===(Z=ke.spec)||void 0===Z?void 0:Z.displayName)||ke.metadata.name})]}),(0,a.jsxs)(v.A,{className:ne.cardActions,children:[Ie&&(0,a.jsx)(y.A,{variant:"outlined",color:_e?"default":"primary",onClick:Se,size:"small",children:_e?"Unpublish API product":"Publish API product"}),Pe&&(0,a.jsx)(g.A,{onClick:()=>Ae(!0),size:"small",children:(0,a.jsx)(R.A,{fontSize:"small"})}),Ne&&(0,a.jsx)(g.A,{onClick:()=>ve(!0),size:"small",children:(0,a.jsx)(z.A,{fontSize:"small"})})]})]}),(0,a.jsx)(E.O,{product:ke,showStatus:!0,showCatalogLink:!0})]}),he===Ye&&Be&&(0,a.jsx)(x.n,{title:"API Definition",children:(0,a.jsxs)(f.A,{variant:"body2",color:"textSecondary",children:["View the OpenAPI specification at:"," ",(0,a.jsx)(u.N_,{to:(null===(ie=ke.spec)||void 0===ie||null===(ee=ie.documentation)||void 0===ee?void 0:ee.openAPISpecURL)||"",target:"_blank",children:null===(ae=ke.spec)||void 0===ae||null===(se=ae.documentation)||void 0===se?void 0:se.openAPISpecURL})]})}),he===Ge&&Fe&&(0,a.jsxs)(I.A,{container:!0,spacing:3,children:[(0,a.jsx)(I.A,{item:!0,xs:12,children:(0,a.jsx)(x.n,{title:"Discovered Policies",children:(0,a.jsxs)(I.A,{container:!0,spacing:2,children:[(0,a.jsxs)(I.A,{item:!0,xs:12,md:6,children:[(0,a.jsx)(f.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Plan Policy"}),Te?(0,a.jsxs)(v.A,{children:[(0,a.jsx)(k.A,{label:"True"===Te.status?"Found":"Not Found",size:"small",style:{backgroundColor:"True"===Te.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),(0,a.jsx)(f.A,{variant:"body2",children:Te.message||"No details available"})]}):(0,a.jsx)(f.A,{variant:"body2",children:"No plan policy information"})]}),(0,a.jsxs)(I.A,{item:!0,xs:12,md:6,children:[(0,a.jsx)(f.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Auth Policy"}),De?(0,a.jsxs)(v.A,{children:[(0,a.jsx)(k.A,{label:"True"===De.status?"Found":"Not Found",size:"small",style:{backgroundColor:"True"===De.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),(0,a.jsx)(f.A,{variant:"body2",children:De.message||"No details available"})]}):(0,a.jsx)(f.A,{variant:"body2",children:"No auth policy information"})]})]})})}),Re.length>0&&(0,a.jsx)(I.A,{item:!0,xs:12,children:(0,a.jsxs)(x.n,{title:"Effective Plan Tiers",children:[(0,a.jsx)(f.A,{variant:"body2",color:"textSecondary",paragraph:!0,children:"These tiers are computed from all attached PlanPolicies (including gateway-level policies)."}),(0,a.jsxs)(C.A,{size:"small",children:[(0,a.jsx)(w.A,{children:(0,a.jsxs)(S.A,{children:[(0,a.jsx)(_.A,{children:"Tier"}),(0,a.jsx)(_.A,{children:"Rate Limits"})]})}),(0,a.jsx)(T.A,{children:Re.map(e=>(0,a.jsxs)(S.A,{children:[(0,a.jsx)(_.A,{children:(0,a.jsx)(k.A,{label:e.tier,size:"small",color:"primary"})}),(0,a.jsx)(_.A,{children:We(e.limits)})]},e.tier))})]})]})})]}),he===He&&$e&&(0,a.jsx)(I.A,{item:!0,xs:12,md:6,children:(0,a.jsx)(x.n,{title:"OIDC Provider Discovery",children:(0,a.jsx)(v.A,{p:2,children:(0,a.jsxs)(I.A,{container:!0,spacing:2,children:[(0,a.jsx)(I.A,{item:!0,xs:12,children:(0,a.jsx)(f.A,{variant:"body2",children:"This API uses OIDC authentication. Obtain a token from the identity provider below."})}),(0,a.jsx)(I.A,{item:!0,xs:12,children:(0,a.jsxs)(f.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"Identity Provider: "}),(0,a.jsx)(u.N_,{to:Oe,target:"_blank",children:Oe})]})}),(0,a.jsx)(I.A,{item:!0,xs:12,children:(0,a.jsxs)(f.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"Token Endpoint: "}),(0,a.jsx)(u.N_,{to:Ue,target:"_blank",children:Ue})]})}),(0,a.jsx)(I.A,{item:!0,xs:12,children:(0,a.jsx)(A.z,{text:`# Example (Client Credentials Flow):\ncurl -X POST \\\n -d "grant_type=client_credentials" \\\n -d "client_id=YOUR_CLIENT_ID" \\\n -d "client_secret=YOUR_CLIENT_SECRET" \\\n ${Ue}\n`,language:"bash",showCopyCodeButton:!0})})]})})})})]}),(0,a.jsx)(L.C,{open:xe,onClose:()=>Ae(!1),onSuccess:()=>{Ae(!1),fe(e=>e+1),pe.post({message:"API Product updated successfully",severity:"success",display:"transient"})},namespace:le||"",name:oe||""}),(0,a.jsx)($.K,{open:je,title:"Delete API Product",description:`Are you sure you want to delete "${(null===(te=ke.spec)||void 0===te?void 0:te.displayName)||ke.metadata.name}"? This action cannot be undone.`,severity:"high",confirmText:ke.metadata.name,deleting:ye,onConfirm:async()=>{if(ke){be(!0);try{if(!(await de.fetch(`${ue}/api/kuadrant/apiproducts/${le}/${oe}`,{method:"DELETE"})).ok)throw new Error("Failed to delete API product");ve(!1),pe.post({message:"API Product deleted successfully",severity:"success",display:"transient"}),re("/kuadrant/api-products")}catch(e){pe.post({message:"Failed to delete API product",severity:"error",display:"transient"})}finally{be(!1)}}},onCancel:()=>ve(!1)})]})}},89509:(e,i,s)=>{s.d(i,{O:()=>A});var a=s(31085),t=(s(95478),s(10394)),n=s(72501),l=s(67720),o=s(61009),r=s(47625),c=s(9719),d=s(54801),p=s(13677),u=s(42899),h=s(58837),m=s(37725);const x=(0,h.A)(e=>({label:{fontWeight:600,color:e.palette.text.secondary,marginBottom:e.spacing(.5),fontSize:"0.75rem",textTransform:"uppercase"},tierChip:{marginRight:e.spacing(.5),marginBottom:e.spacing(.5)},statusChipPublished:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},statusChipDraft:{backgroundColor:e.palette.grey[600],color:e.palette.common.white},infoGrid:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(180px, 1fr))",gap:e.spacing(3),marginBottom:e.spacing(3)},infoItem:{minWidth:0},apiLink:{color:e.palette.primary.main,textDecoration:"none","&:hover":{textDecoration:"underline"}}})),A=({product:e,showStatus:i=!0,showCatalogLink:s=!0})=>{var h,A,j,v,y,b,g,f,P,N,I,k,C,w,S,_;const T=x(),D=(null===(h=e.spec)||void 0===h?void 0:h.publishStatus)||"Draft",R="Published"===D,z=(null===(A=e.status)||void 0===A?void 0:A.discoveredPlans)||[];return(0,a.jsxs)(a.Fragment,{children:[(null===(j=e.spec)||void 0===j?void 0:j.description)&&(0,a.jsxs)(t.A,{mb:3,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"Description"}),(0,a.jsx)(n.A,{variant:"body1",children:e.spec.description})]}),(0,a.jsxs)(t.A,{className:T.infoGrid,children:[i&&(0,a.jsxs)(t.A,{className:T.infoItem,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"Status"}),(0,a.jsx)(t.A,{children:(0,a.jsx)(l.A,{label:D,size:"small",className:R?T.statusChipPublished:T.statusChipDraft,"data-testid":"publish-status-chip"})})]}),(0,a.jsxs)(t.A,{className:T.infoItem,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"Version"}),(0,a.jsx)(n.A,{variant:"body2",children:(null===(v=e.spec)||void 0===v?void 0:v.version)||"v1"})]}),(0,a.jsxs)(t.A,{className:T.infoItem,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"Namespace"}),(0,a.jsx)(n.A,{variant:"body2",children:e.metadata.namespace})]}),(0,a.jsxs)(t.A,{className:T.infoItem,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"API Key Approval"}),(0,a.jsx)(n.A,{variant:"body2",children:"automatic"===(null===(y=e.spec)||void 0===y?void 0:y.approvalMode)?"Automatic":"Need manual approval"})]}),(null===(b=e.spec)||void 0===b?void 0:b.tags)&&e.spec.tags.length>0&&(0,a.jsxs)(t.A,{className:T.infoItem,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"Tags"}),(0,a.jsx)(t.A,{children:e.spec.tags.map(e=>(0,a.jsx)(l.A,{label:e,size:"small",variant:"outlined",className:T.tierChip},e))})]})]}),(0,a.jsxs)(t.A,{className:T.infoGrid,children:[(0,a.jsxs)(t.A,{className:T.infoItem,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"API"}),(0,a.jsx)("br",{}),s?(0,a.jsx)(m.N_,{to:`/catalog/default/api/${e.metadata.name}`,className:T.apiLink,children:e.metadata.name}):(0,a.jsx)(n.A,{variant:"body2",children:e.metadata.name})]}),(0,a.jsxs)(t.A,{className:T.infoItem,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"Route"}),(0,a.jsx)(n.A,{variant:"body2",children:(null===(f=e.spec)||void 0===f||null===(g=f.targetRef)||void 0===g?void 0:g.name)||"-"})]})]}),z.length>0&&(0,a.jsxs)(t.A,{mb:3,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"Available Tiers"}),(0,a.jsxs)(o.A,{size:"small",children:[(0,a.jsx)(r.A,{children:(0,a.jsxs)(c.A,{children:[(0,a.jsx)(d.A,{children:"Tier"}),(0,a.jsx)(d.A,{children:"Rate Limits"})]})}),(0,a.jsx)(p.A,{children:z.map(e=>(0,a.jsxs)(c.A,{children:[(0,a.jsx)(d.A,{children:(0,a.jsx)(l.A,{label:e.tier,size:"small"})}),(0,a.jsx)(d.A,{children:e.limits&&Object.entries(e.limits).map(([e,i])=>(0,a.jsxs)(n.A,{variant:"body2",children:[String(i)," per ",e]},e))})]},e.tier))})]})]}),(0,a.jsxs)(u.A,{container:!0,spacing:3,children:[((null===(N=e.spec)||void 0===N||null===(P=N.contact)||void 0===P?void 0:P.email)||(null===(k=e.spec)||void 0===k||null===(I=k.contact)||void 0===I?void 0:I.team))&&(0,a.jsxs)(u.A,{item:!0,xs:12,md:6,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"Contact Information"}),(0,a.jsxs)(t.A,{mt:1,children:[e.spec.contact.team&&(0,a.jsxs)(n.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"Team:"})," ",e.spec.contact.team]}),e.spec.contact.email&&(0,a.jsxs)(n.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"Email:"})," ",(0,a.jsx)(m.N_,{to:`mailto:${e.spec.contact.email}`,children:e.spec.contact.email})]})]})]}),((null===(w=e.spec)||void 0===w||null===(C=w.documentation)||void 0===C?void 0:C.docsURL)||(null===(_=e.spec)||void 0===_||null===(S=_.documentation)||void 0===S?void 0:S.openAPISpecURL))&&(0,a.jsxs)(u.A,{item:!0,xs:12,md:6,children:[(0,a.jsx)(n.A,{variant:"caption",className:T.label,children:"Documentation"}),(0,a.jsxs)(t.A,{mt:1,children:[e.spec.documentation.docsURL&&(0,a.jsxs)(n.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"Docs:"})," ",(0,a.jsx)(m.N_,{to:e.spec.documentation.docsURL,target:"_blank",children:"View Documentation"})]}),e.spec.documentation.openAPISpecURL&&(0,a.jsxs)(n.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"OpenAPI Spec:"})," ",(0,a.jsx)(m.N_,{to:e.spec.documentation.openAPISpecURL,target:"_blank",children:"View Spec"})]})]})]})]})]})}}}]);
|
|
2
|
+
//# sourceMappingURL=7791.39417f8c.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/7791.39417f8c.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/./src/components/ApiProductDetailPage/ApiProductDetailPage.tsx","webpack://internal.plugin-kuadrant/./src/components/ApiProductDetails/ApiProductDetails.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport {\n useApi,\n configApiRef,\n fetchApiRef,\n alertApiRef,\n} from \"@backstage/core-plugin-api\";\nimport { useAsync } from \"react-use\";\nimport {\n Header,\n Page,\n Content,\n Progress,\n ResponseErrorPanel,\n InfoCard,\n Link,\n Breadcrumbs,\n CodeSnippet,\n} from \"@backstage/core-components\";\nimport {\n Box,\n Typography,\n IconButton,\n Tooltip,\n Tabs,\n Tab,\n Button,\n makeStyles,\n Grid,\n Chip,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n} from \"@material-ui/core\";\nimport ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport { APIProduct } from \"../../types/api-management\";\nimport { EditAPIProductDialog } from \"../EditAPIProductDialog\";\nimport { ConfirmDeleteDialog } from \"../ConfirmDeleteDialog\";\nimport { ApiProductDetails } from \"../ApiProductDetails\";\nimport { useKuadrantPermission } from \"../../utils/permissions\";\nimport {\n kuadrantApiProductUpdateAllPermission,\n kuadrantApiProductDeleteAllPermission,\n} from \"../../permissions\";\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontWeight: 600,\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(0.5),\n fontSize: '0.75rem',\n textTransform: 'uppercase',\n },\n actionButtons: {\n display: \"flex\",\n gap: theme.spacing(1),\n alignItems: \"center\",\n },\n cardHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n marginBottom: theme.spacing(2),\n },\n cardActions: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ApiProductDetailPage = () => {\n const classes = useStyles();\n const { namespace, name } = useParams<{ namespace: string; name: string }>();\n const navigate = useNavigate();\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const alertApi = useApi(alertApiRef);\n const backendUrl = config.getString(\"backend.baseUrl\");\n\n const [selectedTab, setSelectedTab] = useState(0);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [deleting, setDeleting] = useState(false);\n const [refreshKey, setRefreshKey] = useState(0);\n\n const { allowed: canUpdateApiProduct } = useKuadrantPermission(kuadrantApiProductUpdateAllPermission);\n const { allowed: canDeleteApiProduct } = useKuadrantPermission(kuadrantApiProductDeleteAllPermission);\n const canPublishApiProduct = canUpdateApiProduct;\n\n const {\n value: product,\n loading,\n error,\n } = useAsync(async () => {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`\n );\n\n if (!response.ok) {\n throw new Error(\"Failed to fetch API product\");\n }\n\n return response.json() as Promise<APIProduct>;\n }, [namespace, name, backendUrl, fetchApi, refreshKey]);\n\n const handlePublishToggle = async () => {\n if (!product) return;\n const newStatus = product.spec?.publishStatus === \"Published\" ? \"Draft\" : \"Published\";\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n {\n method: \"PATCH\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ spec: { publishStatus: newStatus } }),\n }\n );\n if (!response.ok) throw new Error(\"Failed to update publish status\");\n alertApi.post({\n message: `API Product ${newStatus === \"Published\" ? \"published\" : \"unpublished\"} successfully`,\n severity: \"success\",\n display: \"transient\",\n });\n setRefreshKey((k) => k + 1);\n } catch (err) {\n alertApi.post({\n message: \"Failed to update publish status\",\n severity: \"error\",\n display: \"transient\",\n });\n }\n };\n\n const handleEditSuccess = () => {\n setEditDialogOpen(false);\n setRefreshKey((k) => k + 1);\n alertApi.post({\n message: \"API Product updated successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n };\n\n const handleDelete = async () => {\n if (!product) return;\n setDeleting(true);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n { method: \"DELETE\" }\n );\n if (!response.ok) throw new Error(\"Failed to delete API product\");\n setDeleteDialogOpen(false);\n alertApi.post({\n message: \"API Product deleted successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n navigate(\"/kuadrant/api-products\");\n } catch (err) {\n alertApi.post({\n message: \"Failed to delete API product\",\n severity: \"error\",\n display: \"transient\",\n });\n } finally {\n setDeleting(false);\n }\n };\n\n if (loading) {\n return <Progress />;\n }\n\n if (error || !product) {\n return (\n <ResponseErrorPanel error={error || new Error(\"API product not found\")} />\n );\n }\n\n const isPublished = product.spec?.publishStatus === \"Published\";\n\n // get policy conditions from status\n const planPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"PlanPolicyDiscovered\"\n );\n const authPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"AuthPolicyDiscovered\"\n );\n const discoveredPlans = product.status?.discoveredPlans || [];\n\n const authSchemes = product.status?.discoveredAuthScheme?.authentication || {};\n const schemeObjects = Object.values(authSchemes);\n const hasOIDCTab = schemeObjects.some((scheme: any) =>\n scheme.hasOwnProperty(\"jwt\"),\n );\n // Extract JWT issuer from the first JWT scheme\n const jwtScheme = schemeObjects.find((scheme: any) => scheme.hasOwnProperty(\"jwt\"));\n const jwtIssuer = (jwtScheme as any)?.jwt?.issuerUrl || \"unknown\";\n const jwtTokenEndpoint = product.status?.oidcDiscovery?.tokenEndpoint || \"unknown\";\n\n // compute tab indices\n const hasDefinitionTab = !!product.spec?.documentation?.openAPISpecURL;\n const hasPoliciesTab = !!(planPolicyCondition || authPolicyCondition || discoveredPlans.length > 0);\n\n let nextIndex = 1; // Overview is always at index 0\n const definitionTabIndex = hasDefinitionTab ? nextIndex++ : -1;\n const policiesTabIndex = hasPoliciesTab ? nextIndex++ : -1;\n const oidcTabIndex = hasOIDCTab ? nextIndex++ : -1;\n\n const formatLimits = (limits: any): string => {\n if (!limits) return \"No limits\";\n const parts: string[] = [];\n if (limits.daily) parts.push(`${limits.daily}/day`);\n if (limits.weekly) parts.push(`${limits.weekly}/week`);\n if (limits.monthly) parts.push(`${limits.monthly}/month`);\n if (limits.yearly) parts.push(`${limits.yearly}/year`);\n return parts.length > 0 ? parts.join(\", \") : \"No limits\";\n };\n\n return (\n <Page themeId=\"tool\">\n <Header\n title={product.spec?.displayName || product.metadata.name}\n subtitle={product.spec?.description || \"\"}\n >\n <Box className={classes.actionButtons}>\n <Link to=\"/kuadrant/api-products\">\n <Button startIcon={<ArrowBackIcon />}>Back</Button>\n </Link>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <Tooltip title=\"Edit\">\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon />\n </IconButton>\n </Tooltip>\n )}\n {canDeleteApiProduct && (\n <Tooltip title=\"Delete\">\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n </Header>\n <Content>\n <Box mb={2}>\n <Breadcrumbs aria-label=\"breadcrumb\">\n <Link to=\"/kuadrant/api-products\">API Products</Link>\n <Typography>{product.spec?.displayName || product.metadata.name}</Typography>\n </Breadcrumbs>\n </Box>\n\n <Box mb={2}>\n <Tabs\n value={selectedTab}\n onChange={(_, newValue) => setSelectedTab(newValue)}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n <Tab label=\"Overview\" />\n {hasDefinitionTab && <Tab label=\"Definition\" />}\n {hasPoliciesTab && <Tab label=\"Policies\" />}\n {hasOIDCTab && <Tab label=\"OIDC\" />}\n </Tabs>\n </Box>\n\n {selectedTab === 0 && (\n <InfoCard title=\"API Product\">\n <Box className={classes.cardHeader}>\n <Box>\n <Typography variant=\"caption\" className={classes.label}>\n Product Name\n </Typography>\n <Typography variant=\"h6\">\n {product.spec?.displayName || product.metadata.name}\n </Typography>\n </Box>\n <Box className={classes.cardActions}>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n size=\"small\"\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon fontSize=\"small\" />\n </IconButton>\n )}\n {canDeleteApiProduct && (\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n </Box>\n\n <ApiProductDetails\n product={product}\n showStatus={true}\n showCatalogLink={true}\n />\n </InfoCard>\n )}\n\n {selectedTab === definitionTabIndex && hasDefinitionTab && (\n <InfoCard title=\"API Definition\">\n <Typography variant=\"body2\" color=\"textSecondary\">\n View the OpenAPI specification at:{\" \"}\n <Link to={product.spec?.documentation?.openAPISpecURL || \"\"} target=\"_blank\">\n {product.spec?.documentation?.openAPISpecURL}\n </Link>\n </Typography>\n </InfoCard>\n )}\n\n {selectedTab === policiesTabIndex && hasPoliciesTab && (\n <Grid container spacing={3}>\n <Grid item xs={12}>\n <InfoCard title=\"Discovered Policies\">\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Plan Policy\n </Typography>\n {planPolicyCondition ? (\n <Box>\n <Chip\n label={planPolicyCondition.status === \"True\" ? \"Found\" : \"Not Found\"}\n size=\"small\"\n style={{\n backgroundColor: planPolicyCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n <Typography variant=\"body2\">\n {planPolicyCondition.message || \"No details available\"}\n </Typography>\n </Box>\n ) : (\n <Typography variant=\"body2\">No plan policy information</Typography>\n )}\n </Grid>\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Auth Policy\n </Typography>\n {authPolicyCondition ? (\n <Box>\n <Chip\n label={authPolicyCondition.status === \"True\" ? \"Found\" : \"Not Found\"}\n size=\"small\"\n style={{\n backgroundColor: authPolicyCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n <Typography variant=\"body2\">\n {authPolicyCondition.message || \"No details available\"}\n </Typography>\n </Box>\n ) : (\n <Typography variant=\"body2\">No auth policy information</Typography>\n )}\n </Grid>\n </Grid>\n </InfoCard>\n </Grid>\n\n {discoveredPlans.length > 0 && (\n <Grid item xs={12}>\n <InfoCard title=\"Effective Plan Tiers\">\n <Typography variant=\"body2\" color=\"textSecondary\" paragraph>\n These tiers are computed from all attached PlanPolicies (including gateway-level policies).\n </Typography>\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell>Tier</TableCell>\n <TableCell>Rate Limits</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {discoveredPlans.map((plan) => (\n <TableRow key={plan.tier}>\n <TableCell>\n <Chip label={plan.tier} size=\"small\" color=\"primary\" />\n </TableCell>\n <TableCell>{formatLimits(plan.limits)}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </InfoCard>\n </Grid>\n )}\n </Grid>\n )}\n\n {selectedTab === oidcTabIndex && hasOIDCTab && (\n <Grid item xs={12} md={6}>\n <InfoCard title=\"OIDC Provider Discovery\">\n <Box p={2}>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <Typography variant=\"body2\">\n This API uses OIDC authentication. Obtain a token from the identity provider below.\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\">\n <strong>Identity Provider: </strong>\n <Link to={jwtIssuer} target=\"_blank\">\n {jwtIssuer}\n </Link>\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\">\n <strong>Token Endpoint: </strong>\n <Link to={jwtTokenEndpoint} target=\"_blank\">\n {jwtTokenEndpoint}\n </Link>\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <CodeSnippet\n text={`# Example (Client Credentials Flow):\ncurl -X POST \\\\\n -d \"grant_type=client_credentials\" \\\\\n -d \"client_id=YOUR_CLIENT_ID\" \\\\\n -d \"client_secret=YOUR_CLIENT_SECRET\" \\\\\n ${jwtTokenEndpoint}\n`} // notsecret - template for user's own api key\n language=\"bash\"\n showCopyCodeButton\n />\n </Grid>\n </Grid>\n </Box>\n </InfoCard>\n </Grid>\n )}\n </Content>\n\n <EditAPIProductDialog\n open={editDialogOpen}\n onClose={() => setEditDialogOpen(false)}\n onSuccess={handleEditSuccess}\n namespace={namespace || \"\"}\n name={name || \"\"}\n />\n\n <ConfirmDeleteDialog\n open={deleteDialogOpen}\n title=\"Delete API Product\"\n description={`Are you sure you want to delete \"${product.spec?.displayName || product.metadata.name}\"? This action cannot be undone.`}\n severity=\"high\"\n confirmText={product.metadata.name}\n deleting={deleting}\n onConfirm={handleDelete}\n onCancel={() => setDeleteDialogOpen(false)}\n />\n </Page>\n );\n};\n","import React from \"react\";\nimport {\n Box,\n Typography,\n Chip,\n makeStyles,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Grid,\n} from \"@material-ui/core\";\nimport { Link } from \"@backstage/core-components\";\nimport { APIProduct, Plan } from \"../../types/api-management\";\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontWeight: 600,\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(0.5),\n fontSize: \"0.75rem\",\n textTransform: \"uppercase\",\n },\n tierChip: {\n marginRight: theme.spacing(0.5),\n marginBottom: theme.spacing(0.5),\n },\n statusChipPublished: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n },\n statusChipDraft: {\n backgroundColor: theme.palette.grey[600],\n color: theme.palette.common.white,\n },\n infoGrid: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(180px, 1fr))\",\n gap: theme.spacing(3),\n marginBottom: theme.spacing(3),\n },\n infoItem: {\n minWidth: 0,\n },\n apiLink: {\n color: theme.palette.primary.main,\n textDecoration: \"none\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n}));\n\ninterface ApiProductDetailsProps {\n product: APIProduct;\n showStatus?: boolean;\n showCatalogLink?: boolean;\n}\n\nexport const ApiProductDetails = ({\n product,\n showStatus = true,\n showCatalogLink = true,\n}: ApiProductDetailsProps) => {\n const classes = useStyles();\n\n const publishStatus = product.spec?.publishStatus || \"Draft\";\n const isPublished = publishStatus === \"Published\";\n const tiers = product.status?.discoveredPlans || [];\n\n return (\n <>\n {product.spec?.description && (\n <Box mb={3}>\n <Typography variant=\"caption\" className={classes.label}>\n Description\n </Typography>\n <Typography variant=\"body1\">{product.spec.description}</Typography>\n </Box>\n )}\n\n <Box className={classes.infoGrid}>\n {showStatus && (\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Status\n </Typography>\n <Box>\n <Chip\n label={publishStatus}\n size=\"small\"\n className={\n isPublished\n ? classes.statusChipPublished\n : classes.statusChipDraft\n }\n data-testid=\"publish-status-chip\"\n />\n </Box>\n </Box>\n )}\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Version\n </Typography>\n <Typography variant=\"body2\">\n {product.spec?.version || \"v1\"}\n </Typography>\n </Box>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Namespace\n </Typography>\n <Typography variant=\"body2\">{product.metadata.namespace}</Typography>\n </Box>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n API Key Approval\n </Typography>\n <Typography variant=\"body2\">\n {product.spec?.approvalMode === \"automatic\"\n ? \"Automatic\"\n : \"Need manual approval\"}\n </Typography>\n </Box>\n {product.spec?.tags && product.spec.tags.length > 0 && (\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Tags\n </Typography>\n <Box>\n {product.spec.tags.map((tag) => (\n <Chip\n key={tag}\n label={tag}\n size=\"small\"\n variant=\"outlined\"\n className={classes.tierChip}\n />\n ))}\n </Box>\n </Box>\n )}\n </Box>\n\n <Box className={classes.infoGrid}>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n API\n </Typography>\n <br />\n {showCatalogLink ? (\n <Link\n to={`/catalog/default/api/${product.metadata.name}`}\n className={classes.apiLink}\n >\n {product.metadata.name}\n </Link>\n ) : (\n <Typography variant=\"body2\">{product.metadata.name}</Typography>\n )}\n </Box>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Route\n </Typography>\n <Typography variant=\"body2\">\n {product.spec?.targetRef?.name || \"-\"}\n </Typography>\n </Box>\n </Box>\n\n {tiers.length > 0 && (\n <Box mb={3}>\n <Typography variant=\"caption\" className={classes.label}>\n Available Tiers\n </Typography>\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell>Tier</TableCell>\n <TableCell>Rate Limits</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {tiers.map((plan: Plan) => (\n <TableRow key={plan.tier}>\n <TableCell>\n <Chip label={plan.tier} size=\"small\" />\n </TableCell>\n <TableCell>\n {plan.limits &&\n Object.entries(plan.limits).map(([key, value]) => (\n <Typography key={key} variant=\"body2\">\n {String(value)} per {key}\n </Typography>\n ))}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </Box>\n )}\n\n <Grid container spacing={3}>\n {(product.spec?.contact?.email || product.spec?.contact?.team) && (\n <Grid item xs={12} md={6}>\n <Typography variant=\"caption\" className={classes.label}>\n Contact Information\n </Typography>\n <Box mt={1}>\n {product.spec.contact.team && (\n <Typography variant=\"body2\">\n <strong>Team:</strong> {product.spec.contact.team}\n </Typography>\n )}\n {product.spec.contact.email && (\n <Typography variant=\"body2\">\n <strong>Email:</strong>{\" \"}\n <Link to={`mailto:${product.spec.contact.email}`}>\n {product.spec.contact.email}\n </Link>\n </Typography>\n )}\n </Box>\n </Grid>\n )}\n\n {(product.spec?.documentation?.docsURL ||\n product.spec?.documentation?.openAPISpecURL) && (\n <Grid item xs={12} md={6}>\n <Typography variant=\"caption\" className={classes.label}>\n Documentation\n </Typography>\n <Box mt={1}>\n {product.spec.documentation.docsURL && (\n <Typography variant=\"body2\">\n <strong>Docs:</strong>{\" \"}\n <Link to={product.spec.documentation.docsURL} target=\"_blank\">\n View Documentation\n </Link>\n </Typography>\n )}\n {product.spec.documentation.openAPISpecURL && (\n <Typography variant=\"body2\">\n <strong>OpenAPI Spec:</strong>{\" \"}\n <Link\n to={product.spec.documentation.openAPISpecURL}\n target=\"_blank\"\n >\n View Spec\n </Link>\n </Typography>\n )}\n </Box>\n </Grid>\n )}\n </Grid>\n </>\n );\n};\n"],"names":["useStyles","makeStyles","theme","label","fontWeight","color","palette","text","secondary","marginBottom","spacing","fontSize","textTransform","actionButtons","display","gap","alignItems","cardHeader","justifyContent","cardActions","ApiProductDetailPage","product","classes","namespace","name","useParams","navigate","useNavigate","config","useApi","configApiRef","fetchApi","fetchApiRef","alertApi","alertApiRef","backendUrl","getString","selectedTab","setSelectedTab","useState","editDialogOpen","setEditDialogOpen","deleteDialogOpen","setDeleteDialogOpen","deleting","setDeleting","refreshKey","setRefreshKey","allowed","canUpdateApiProduct","useKuadrantPermission","kuadrantApiProductUpdateAllPermission","canDeleteApiProduct","kuadrantApiProductDeleteAllPermission","canPublishApiProduct","value","loading","error","useAsync","async","response","fetch","ok","Error","json","handlePublishToggle","newStatus","spec","publishStatus","method","headers","body","JSON","stringify","post","message","severity","k","err","Progress","ResponseErrorPanel","isPublished","planPolicyCondition","status","conditions","find","c","type","authPolicyCondition","discoveredPlans","authSchemes","discoveredAuthScheme","authentication","schemeObjects","Object","values","hasOIDCTab","some","scheme","hasOwnProperty","jwtScheme","jwtIssuer","jwt","issuerUrl","jwtTokenEndpoint","oidcDiscovery","tokenEndpoint","hasDefinitionTab","documentation","openAPISpecURL","hasPoliciesTab","length","nextIndex","definitionTabIndex","policiesTabIndex","oidcTabIndex","formatLimits","limits","parts","daily","push","weekly","monthly","yearly","join","Page","themeId","Header","title","displayName","metadata","subtitle","description","Box","className","Link","to","Button","startIcon","ArrowBackIcon","variant","onClick","Tooltip","IconButton","size","EditIcon","DeleteIcon","Content","mb","Breadcrumbs","aria-label","Typography","Tabs","onChange","_","newValue","indicatorColor","textColor","Tab","InfoCard","ApiProductDetails","showStatus","showCatalogLink","target","Grid","container","item","xs","md","gutterBottom","Chip","style","backgroundColor","paragraph","Table","TableHead","TableRow","TableCell","TableBody","map","plan","tier","p","strong","CodeSnippet","language","showCopyCodeButton","EditAPIProductDialog","open","onClose","onSuccess","ConfirmDeleteDialog","confirmText","onConfirm","onCancel","tierChip","marginRight","statusChipPublished","primary","main","contrastText","statusChipDraft","grey","common","white","infoGrid","gridTemplateColumns","infoItem","minWidth","apiLink","textDecoration","tiers","data-testid","version","approvalMode","tags","tag","br","targetRef","entries","key","String","contact","email","team","mt","docsURL"],"sourceRoot":""}
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[7791],{57791:(e,i,s)=>{s.r(i),s.d(i,{ApiProductDetailPage:()=>F});var a=s(31085),t=s(95478),l=s(42469),n=s(22097),o=s(35015),r=s(86687),c=s(42367),d=s(289),p=s(15831),u=s(37725),m=s(46681),h=s(94641),x=s(96040),A=s(58837),j=s(10394),v=s(64947),y=s(71677),b=s(29365),f=s(72501),g=s(31653),P=s(38605),N=s(42899),I=s(67720),k=s(61009),C=s(47625),S=s(9719),w=s(54801),T=s(13677),D=s(55735),R=s(75625),z=s(39590),$=s(26997),_=s(63221),L=s(89509),B=s(46205),U=s(34955);const E=(0,A.A)(e=>({label:{fontWeight:600,color:e.palette.text.secondary,marginBottom:e.spacing(.5),fontSize:"0.75rem",textTransform:"uppercase"},actionButtons:{display:"flex",gap:e.spacing(1),alignItems:"center"},cardHeader:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:e.spacing(2)},cardActions:{display:"flex",gap:e.spacing(1),alignItems:"center"}})),F=()=>{var e,i,s,A,F,O,V,G,H,W,K,Y,J,M,q,Q,X;const Z=E(),{namespace:ee,name:ie}=(0,l.useParams)(),se=(0,l.useNavigate)(),ae=(0,n.useApi)(n.configApiRef),te=(0,n.useApi)(n.fetchApiRef),le=(0,n.useApi)(n.alertApiRef),ne=ae.getString("backend.baseUrl"),[oe,re]=(0,t.useState)(0),[ce,de]=(0,t.useState)(!1),[pe,ue]=(0,t.useState)(!1),[me,he]=(0,t.useState)(!1),[xe,Ae]=(0,t.useState)(0),{allowed:je}=(0,B.l)(U.v_),{allowed:ve}=(0,B.l)(U.R_),ye=je,{value:be,loading:fe,error:ge}=(0,o.A)(async()=>{const e=await te.fetch(`${ne}/api/kuadrant/apiproducts/${ee}/${ie}`);if(!e.ok)throw new Error("Failed to fetch API product");return e.json()},[ee,ie,ne,te,xe]),Pe=async()=>{var e;if(!be)return;const i="Published"===(null===(e=be.spec)||void 0===e?void 0:e.publishStatus)?"Draft":"Published";try{if(!(await te.fetch(`${ne}/api/kuadrant/apiproducts/${ee}/${ie}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({spec:{publishStatus:i}})})).ok)throw new Error("Failed to update publish status");le.post({message:`API Product ${"Published"===i?"published":"unpublished"} successfully`,severity:"success",display:"transient"}),Ae(e=>e+1)}catch(e){le.post({message:"Failed to update publish status",severity:"error",display:"transient"})}};if(fe)return(0,a.jsx)(r.k,{});if(ge||!be)return(0,a.jsx)(c._,{error:ge||new Error("API product not found")});const Ne="Published"===(null===(e=be.spec)||void 0===e?void 0:e.publishStatus),Ie=null===(s=be.status)||void 0===s||null===(i=s.conditions)||void 0===i?void 0:i.find(e=>"PlanPolicyDiscovered"===e.type),ke=null===(F=be.status)||void 0===F||null===(A=F.conditions)||void 0===A?void 0:A.find(e=>"AuthPolicyDiscovered"===e.type),Ce=(null===(O=be.status)||void 0===O?void 0:O.discoveredPlans)||[],Se=!!(null===(G=be.spec)||void 0===G||null===(V=G.documentation)||void 0===V?void 0:V.openAPISpecURL),we=!!(Ie||ke||Ce.length>0),Te=Se?1:-1,De=we?Se?2:1:-1,Re=e=>{if(!e)return"No limits";const i=[];return e.daily&&i.push(`${e.daily}/day`),e.weekly&&i.push(`${e.weekly}/week`),e.monthly&&i.push(`${e.monthly}/month`),e.yearly&&i.push(`${e.yearly}/year`),i.length>0?i.join(", "):"No limits"};return(0,a.jsxs)(d.Y,{themeId:"tool",children:[(0,a.jsx)(p.Y,{title:(null===(H=be.spec)||void 0===H?void 0:H.displayName)||be.metadata.name,subtitle:(null===(W=be.spec)||void 0===W?void 0:W.description)||"",children:(0,a.jsxs)(j.A,{className:Z.actionButtons,children:[(0,a.jsx)(u.N_,{to:"/kuadrant/api-products",children:(0,a.jsx)(v.A,{startIcon:(0,a.jsx)(D.A,{}),children:"Back"})}),ye&&(0,a.jsx)(v.A,{variant:"outlined",color:Ne?"default":"primary",onClick:Pe,children:Ne?"Unpublish API product":"Publish API product"}),je&&(0,a.jsx)(y.Ay,{title:"Edit",children:(0,a.jsx)(b.A,{onClick:()=>de(!0),size:"small",children:(0,a.jsx)(R.A,{})})}),ve&&(0,a.jsx)(y.Ay,{title:"Delete",children:(0,a.jsx)(b.A,{onClick:()=>ue(!0),size:"small",children:(0,a.jsx)(z.A,{})})})]})}),(0,a.jsxs)(m.U,{children:[(0,a.jsx)(j.A,{mb:2,children:(0,a.jsxs)(h.B,{"aria-label":"breadcrumb",children:[(0,a.jsx)(u.N_,{to:"/kuadrant/api-products",children:"API Products"}),(0,a.jsx)(f.A,{children:(null===(K=be.spec)||void 0===K?void 0:K.displayName)||be.metadata.name})]})}),(0,a.jsx)(j.A,{mb:2,children:(0,a.jsxs)(g.A,{value:oe,onChange:(e,i)=>re(i),indicatorColor:"primary",textColor:"primary",children:[(0,a.jsx)(P.A,{label:"Overview"}),Se&&(0,a.jsx)(P.A,{label:"Definition"}),we&&(0,a.jsx)(P.A,{label:"Policies"})]})}),0===oe&&(0,a.jsxs)(x.n,{title:"API Product",children:[(0,a.jsxs)(j.A,{className:Z.cardHeader,children:[(0,a.jsxs)(j.A,{children:[(0,a.jsx)(f.A,{variant:"caption",className:Z.label,children:"Product Name"}),(0,a.jsx)(f.A,{variant:"h6",children:(null===(Y=be.spec)||void 0===Y?void 0:Y.displayName)||be.metadata.name})]}),(0,a.jsxs)(j.A,{className:Z.cardActions,children:[ye&&(0,a.jsx)(v.A,{variant:"outlined",color:Ne?"default":"primary",onClick:Pe,size:"small",children:Ne?"Unpublish API product":"Publish API product"}),je&&(0,a.jsx)(b.A,{onClick:()=>de(!0),size:"small",children:(0,a.jsx)(R.A,{fontSize:"small"})}),ve&&(0,a.jsx)(b.A,{onClick:()=>ue(!0),size:"small",children:(0,a.jsx)(z.A,{fontSize:"small"})})]})]}),(0,a.jsx)(L.O,{product:be,showStatus:!0,showCatalogLink:!0})]}),oe===Te&&Se&&(0,a.jsx)(x.n,{title:"API Definition",children:(0,a.jsxs)(f.A,{variant:"body2",color:"textSecondary",children:["View the OpenAPI specification at:"," ",(0,a.jsx)(u.N_,{to:(null===(M=be.spec)||void 0===M||null===(J=M.documentation)||void 0===J?void 0:J.openAPISpecURL)||"",target:"_blank",children:null===(Q=be.spec)||void 0===Q||null===(q=Q.documentation)||void 0===q?void 0:q.openAPISpecURL})]})}),oe===De&&we&&(0,a.jsxs)(N.A,{container:!0,spacing:3,children:[(0,a.jsx)(N.A,{item:!0,xs:12,children:(0,a.jsx)(x.n,{title:"Discovered Policies",children:(0,a.jsxs)(N.A,{container:!0,spacing:2,children:[(0,a.jsxs)(N.A,{item:!0,xs:12,md:6,children:[(0,a.jsx)(f.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Plan Policy"}),Ie?(0,a.jsxs)(j.A,{children:[(0,a.jsx)(I.A,{label:"True"===Ie.status?"Found":"Not Found",size:"small",style:{backgroundColor:"True"===Ie.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),(0,a.jsx)(f.A,{variant:"body2",children:Ie.message||"No details available"})]}):(0,a.jsx)(f.A,{variant:"body2",children:"No plan policy information"})]}),(0,a.jsxs)(N.A,{item:!0,xs:12,md:6,children:[(0,a.jsx)(f.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Auth Policy"}),ke?(0,a.jsxs)(j.A,{children:[(0,a.jsx)(I.A,{label:"True"===ke.status?"Found":"Not Found",size:"small",style:{backgroundColor:"True"===ke.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),(0,a.jsx)(f.A,{variant:"body2",children:ke.message||"No details available"})]}):(0,a.jsx)(f.A,{variant:"body2",children:"No auth policy information"})]})]})})}),Ce.length>0&&(0,a.jsx)(N.A,{item:!0,xs:12,children:(0,a.jsxs)(x.n,{title:"Effective Plan Tiers",children:[(0,a.jsx)(f.A,{variant:"body2",color:"textSecondary",paragraph:!0,children:"These tiers are computed from all attached PlanPolicies (including gateway-level policies)."}),(0,a.jsxs)(k.A,{size:"small",children:[(0,a.jsx)(C.A,{children:(0,a.jsxs)(S.A,{children:[(0,a.jsx)(w.A,{children:"Tier"}),(0,a.jsx)(w.A,{children:"Rate Limits"})]})}),(0,a.jsx)(T.A,{children:Ce.map(e=>(0,a.jsxs)(S.A,{children:[(0,a.jsx)(w.A,{children:(0,a.jsx)(I.A,{label:e.tier,size:"small",color:"primary"})}),(0,a.jsx)(w.A,{children:Re(e.limits)})]},e.tier))})]})]})})]})]}),(0,a.jsx)($.C,{open:ce,onClose:()=>de(!1),onSuccess:()=>{de(!1),Ae(e=>e+1),le.post({message:"API Product updated successfully",severity:"success",display:"transient"})},namespace:ee||"",name:ie||""}),(0,a.jsx)(_.K,{open:pe,title:"Delete API Product",description:`Are you sure you want to delete "${(null===(X=be.spec)||void 0===X?void 0:X.displayName)||be.metadata.name}"? This action cannot be undone.`,severity:"high",confirmText:be.metadata.name,deleting:me,onConfirm:async()=>{if(be){he(!0);try{if(!(await te.fetch(`${ne}/api/kuadrant/apiproducts/${ee}/${ie}`,{method:"DELETE"})).ok)throw new Error("Failed to delete API product");ue(!1),le.post({message:"API Product deleted successfully",severity:"success",display:"transient"}),se("/kuadrant/api-products")}catch(e){le.post({message:"Failed to delete API product",severity:"error",display:"transient"})}finally{he(!1)}}},onCancel:()=>ue(!1)})]})}},89509:(e,i,s)=>{s.d(i,{O:()=>A});var a=s(31085),t=(s(95478),s(10394)),l=s(72501),n=s(67720),o=s(61009),r=s(47625),c=s(9719),d=s(54801),p=s(13677),u=s(42899),m=s(58837),h=s(37725);const x=(0,m.A)(e=>({label:{fontWeight:600,color:e.palette.text.secondary,marginBottom:e.spacing(.5),fontSize:"0.75rem",textTransform:"uppercase"},tierChip:{marginRight:e.spacing(.5),marginBottom:e.spacing(.5)},statusChipPublished:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},statusChipDraft:{backgroundColor:e.palette.grey[600],color:e.palette.common.white},infoGrid:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(180px, 1fr))",gap:e.spacing(3),marginBottom:e.spacing(3)},infoItem:{minWidth:0},apiLink:{color:e.palette.primary.main,textDecoration:"none","&:hover":{textDecoration:"underline"}}})),A=({product:e,showStatus:i=!0,showCatalogLink:s=!0})=>{var m,A,j,v,y,b,f,g,P,N,I,k,C,S,w,T;const D=x(),R=(null===(m=e.spec)||void 0===m?void 0:m.publishStatus)||"Draft",z="Published"===R,$=(null===(A=e.status)||void 0===A?void 0:A.discoveredPlans)||[];return(0,a.jsxs)(a.Fragment,{children:[(null===(j=e.spec)||void 0===j?void 0:j.description)&&(0,a.jsxs)(t.A,{mb:3,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"Description"}),(0,a.jsx)(l.A,{variant:"body1",children:e.spec.description})]}),(0,a.jsxs)(t.A,{className:D.infoGrid,children:[i&&(0,a.jsxs)(t.A,{className:D.infoItem,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"Status"}),(0,a.jsx)(t.A,{children:(0,a.jsx)(n.A,{label:R,size:"small",className:z?D.statusChipPublished:D.statusChipDraft,"data-testid":"publish-status-chip"})})]}),(0,a.jsxs)(t.A,{className:D.infoItem,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"Version"}),(0,a.jsx)(l.A,{variant:"body2",children:(null===(v=e.spec)||void 0===v?void 0:v.version)||"v1"})]}),(0,a.jsxs)(t.A,{className:D.infoItem,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"Namespace"}),(0,a.jsx)(l.A,{variant:"body2",children:e.metadata.namespace})]}),(0,a.jsxs)(t.A,{className:D.infoItem,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"API Key Approval"}),(0,a.jsx)(l.A,{variant:"body2",children:"automatic"===(null===(y=e.spec)||void 0===y?void 0:y.approvalMode)?"Automatic":"Need manual approval"})]}),(null===(b=e.spec)||void 0===b?void 0:b.tags)&&e.spec.tags.length>0&&(0,a.jsxs)(t.A,{className:D.infoItem,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"Tags"}),(0,a.jsx)(t.A,{children:e.spec.tags.map(e=>(0,a.jsx)(n.A,{label:e,size:"small",variant:"outlined",className:D.tierChip},e))})]})]}),(0,a.jsxs)(t.A,{className:D.infoGrid,children:[(0,a.jsxs)(t.A,{className:D.infoItem,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"API"}),(0,a.jsx)("br",{}),s?(0,a.jsx)(h.N_,{to:`/catalog/default/api/${e.metadata.name}`,className:D.apiLink,children:e.metadata.name}):(0,a.jsx)(l.A,{variant:"body2",children:e.metadata.name})]}),(0,a.jsxs)(t.A,{className:D.infoItem,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"Route"}),(0,a.jsx)(l.A,{variant:"body2",children:(null===(g=e.spec)||void 0===g||null===(f=g.targetRef)||void 0===f?void 0:f.name)||"-"})]})]}),$.length>0&&(0,a.jsxs)(t.A,{mb:3,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"Available Tiers"}),(0,a.jsxs)(o.A,{size:"small",children:[(0,a.jsx)(r.A,{children:(0,a.jsxs)(c.A,{children:[(0,a.jsx)(d.A,{children:"Tier"}),(0,a.jsx)(d.A,{children:"Rate Limits"})]})}),(0,a.jsx)(p.A,{children:$.map(e=>(0,a.jsxs)(c.A,{children:[(0,a.jsx)(d.A,{children:(0,a.jsx)(n.A,{label:e.tier,size:"small"})}),(0,a.jsx)(d.A,{children:e.limits&&Object.entries(e.limits).map(([e,i])=>(0,a.jsxs)(l.A,{variant:"body2",children:[String(i)," per ",e]},e))})]},e.tier))})]})]}),(0,a.jsxs)(u.A,{container:!0,spacing:3,children:[((null===(N=e.spec)||void 0===N||null===(P=N.contact)||void 0===P?void 0:P.email)||(null===(k=e.spec)||void 0===k||null===(I=k.contact)||void 0===I?void 0:I.team))&&(0,a.jsxs)(u.A,{item:!0,xs:12,md:6,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"Contact Information"}),(0,a.jsxs)(t.A,{mt:1,children:[e.spec.contact.team&&(0,a.jsxs)(l.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"Team:"})," ",e.spec.contact.team]}),e.spec.contact.email&&(0,a.jsxs)(l.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"Email:"})," ",(0,a.jsx)(h.N_,{to:`mailto:${e.spec.contact.email}`,children:e.spec.contact.email})]})]})]}),((null===(S=e.spec)||void 0===S||null===(C=S.documentation)||void 0===C?void 0:C.docsURL)||(null===(T=e.spec)||void 0===T||null===(w=T.documentation)||void 0===w?void 0:w.openAPISpecURL))&&(0,a.jsxs)(u.A,{item:!0,xs:12,md:6,children:[(0,a.jsx)(l.A,{variant:"caption",className:D.label,children:"Documentation"}),(0,a.jsxs)(t.A,{mt:1,children:[e.spec.documentation.docsURL&&(0,a.jsxs)(l.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"Docs:"})," ",(0,a.jsx)(h.N_,{to:e.spec.documentation.docsURL,target:"_blank",children:"View Documentation"})]}),e.spec.documentation.openAPISpecURL&&(0,a.jsxs)(l.A,{variant:"body2",children:[(0,a.jsx)("strong",{children:"OpenAPI Spec:"})," ",(0,a.jsx)(h.N_,{to:e.spec.documentation.openAPISpecURL,target:"_blank",children:"View Spec"})]})]})]})]})]})}}}]);
|
|
2
|
-
//# sourceMappingURL=7791.12162a71.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/7791.12162a71.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/./src/components/ApiProductDetailPage/ApiProductDetailPage.tsx","webpack://internal.plugin-kuadrant/./src/components/ApiProductDetails/ApiProductDetails.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport {\n useApi,\n configApiRef,\n fetchApiRef,\n alertApiRef,\n} from \"@backstage/core-plugin-api\";\nimport { useAsync } from \"react-use\";\nimport {\n Header,\n Page,\n Content,\n Progress,\n ResponseErrorPanel,\n InfoCard,\n Link,\n Breadcrumbs,\n} from \"@backstage/core-components\";\nimport {\n Box,\n Typography,\n IconButton,\n Tooltip,\n Tabs,\n Tab,\n Button,\n makeStyles,\n Grid,\n Chip,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n} from \"@material-ui/core\";\nimport ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport { APIProduct } from \"../../types/api-management\";\nimport { EditAPIProductDialog } from \"../EditAPIProductDialog\";\nimport { ConfirmDeleteDialog } from \"../ConfirmDeleteDialog\";\nimport { ApiProductDetails } from \"../ApiProductDetails\";\nimport { useKuadrantPermission } from \"../../utils/permissions\";\nimport {\n kuadrantApiProductUpdateAllPermission,\n kuadrantApiProductDeleteAllPermission,\n} from \"../../permissions\";\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontWeight: 600,\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(0.5),\n fontSize: '0.75rem',\n textTransform: 'uppercase',\n },\n actionButtons: {\n display: \"flex\",\n gap: theme.spacing(1),\n alignItems: \"center\",\n },\n cardHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n marginBottom: theme.spacing(2),\n },\n cardActions: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ApiProductDetailPage = () => {\n const classes = useStyles();\n const { namespace, name } = useParams<{ namespace: string; name: string }>();\n const navigate = useNavigate();\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const alertApi = useApi(alertApiRef);\n const backendUrl = config.getString(\"backend.baseUrl\");\n\n const [selectedTab, setSelectedTab] = useState(0);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [deleting, setDeleting] = useState(false);\n const [refreshKey, setRefreshKey] = useState(0);\n\n const { allowed: canUpdateApiProduct } = useKuadrantPermission(kuadrantApiProductUpdateAllPermission);\n const { allowed: canDeleteApiProduct } = useKuadrantPermission(kuadrantApiProductDeleteAllPermission);\n const canPublishApiProduct = canUpdateApiProduct;\n\n const {\n value: product,\n loading,\n error,\n } = useAsync(async () => {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`\n );\n\n if (!response.ok) {\n throw new Error(\"Failed to fetch API product\");\n }\n\n return response.json() as Promise<APIProduct>;\n }, [namespace, name, backendUrl, fetchApi, refreshKey]);\n\n const handlePublishToggle = async () => {\n if (!product) return;\n const newStatus = product.spec?.publishStatus === \"Published\" ? \"Draft\" : \"Published\";\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n {\n method: \"PATCH\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ spec: { publishStatus: newStatus } }),\n }\n );\n if (!response.ok) throw new Error(\"Failed to update publish status\");\n alertApi.post({\n message: `API Product ${newStatus === \"Published\" ? \"published\" : \"unpublished\"} successfully`,\n severity: \"success\",\n display: \"transient\",\n });\n setRefreshKey((k) => k + 1);\n } catch (err) {\n alertApi.post({\n message: \"Failed to update publish status\",\n severity: \"error\",\n display: \"transient\",\n });\n }\n };\n\n const handleEditSuccess = () => {\n setEditDialogOpen(false);\n setRefreshKey((k) => k + 1);\n alertApi.post({\n message: \"API Product updated successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n };\n\n const handleDelete = async () => {\n if (!product) return;\n setDeleting(true);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n { method: \"DELETE\" }\n );\n if (!response.ok) throw new Error(\"Failed to delete API product\");\n setDeleteDialogOpen(false);\n alertApi.post({\n message: \"API Product deleted successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n navigate(\"/kuadrant/api-products\");\n } catch (err) {\n alertApi.post({\n message: \"Failed to delete API product\",\n severity: \"error\",\n display: \"transient\",\n });\n } finally {\n setDeleting(false);\n }\n };\n\n if (loading) {\n return <Progress />;\n }\n\n if (error || !product) {\n return (\n <ResponseErrorPanel error={error || new Error(\"API product not found\")} />\n );\n }\n\n const isPublished = product.spec?.publishStatus === \"Published\";\n\n // get policy conditions from status\n const planPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"PlanPolicyDiscovered\"\n );\n const authPolicyCondition = product.status?.conditions?.find(\n (c) => c.type === \"AuthPolicyDiscovered\"\n );\n const discoveredPlans = product.status?.discoveredPlans || [];\n\n // compute tab indices\n const hasDefinitionTab = !!product.spec?.documentation?.openAPISpecURL;\n const hasPoliciesTab = !!(planPolicyCondition || authPolicyCondition || discoveredPlans.length > 0);\n const definitionTabIndex = hasDefinitionTab ? 1 : -1;\n const policiesTabIndex = hasPoliciesTab ? (hasDefinitionTab ? 2 : 1) : -1;\n\n const formatLimits = (limits: any): string => {\n if (!limits) return \"No limits\";\n const parts: string[] = [];\n if (limits.daily) parts.push(`${limits.daily}/day`);\n if (limits.weekly) parts.push(`${limits.weekly}/week`);\n if (limits.monthly) parts.push(`${limits.monthly}/month`);\n if (limits.yearly) parts.push(`${limits.yearly}/year`);\n return parts.length > 0 ? parts.join(\", \") : \"No limits\";\n };\n\n return (\n <Page themeId=\"tool\">\n <Header\n title={product.spec?.displayName || product.metadata.name}\n subtitle={product.spec?.description || \"\"}\n >\n <Box className={classes.actionButtons}>\n <Link to=\"/kuadrant/api-products\">\n <Button startIcon={<ArrowBackIcon />}>Back</Button>\n </Link>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <Tooltip title=\"Edit\">\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon />\n </IconButton>\n </Tooltip>\n )}\n {canDeleteApiProduct && (\n <Tooltip title=\"Delete\">\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n </Header>\n <Content>\n <Box mb={2}>\n <Breadcrumbs aria-label=\"breadcrumb\">\n <Link to=\"/kuadrant/api-products\">API Products</Link>\n <Typography>{product.spec?.displayName || product.metadata.name}</Typography>\n </Breadcrumbs>\n </Box>\n\n <Box mb={2}>\n <Tabs\n value={selectedTab}\n onChange={(_, newValue) => setSelectedTab(newValue)}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n >\n <Tab label=\"Overview\" />\n {hasDefinitionTab && <Tab label=\"Definition\" />}\n {hasPoliciesTab && <Tab label=\"Policies\" />}\n </Tabs>\n </Box>\n\n {selectedTab === 0 && (\n <InfoCard title=\"API Product\">\n <Box className={classes.cardHeader}>\n <Box>\n <Typography variant=\"caption\" className={classes.label}>\n Product Name\n </Typography>\n <Typography variant=\"h6\">\n {product.spec?.displayName || product.metadata.name}\n </Typography>\n </Box>\n <Box className={classes.cardActions}>\n {canPublishApiProduct && (\n <Button\n variant=\"outlined\"\n color={isPublished ? \"default\" : \"primary\"}\n onClick={handlePublishToggle}\n size=\"small\"\n >\n {isPublished ? \"Unpublish API product\" : \"Publish API product\"}\n </Button>\n )}\n {canUpdateApiProduct && (\n <IconButton onClick={() => setEditDialogOpen(true)} size=\"small\">\n <EditIcon fontSize=\"small\" />\n </IconButton>\n )}\n {canDeleteApiProduct && (\n <IconButton onClick={() => setDeleteDialogOpen(true)} size=\"small\">\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n </Box>\n\n <ApiProductDetails\n product={product}\n showStatus={true}\n showCatalogLink={true}\n />\n </InfoCard>\n )}\n\n {selectedTab === definitionTabIndex && hasDefinitionTab && (\n <InfoCard title=\"API Definition\">\n <Typography variant=\"body2\" color=\"textSecondary\">\n View the OpenAPI specification at:{\" \"}\n <Link to={product.spec?.documentation?.openAPISpecURL || \"\"} target=\"_blank\">\n {product.spec?.documentation?.openAPISpecURL}\n </Link>\n </Typography>\n </InfoCard>\n )}\n\n {selectedTab === policiesTabIndex && hasPoliciesTab && (\n <Grid container spacing={3}>\n <Grid item xs={12}>\n <InfoCard title=\"Discovered Policies\">\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Plan Policy\n </Typography>\n {planPolicyCondition ? (\n <Box>\n <Chip\n label={planPolicyCondition.status === \"True\" ? \"Found\" : \"Not Found\"}\n size=\"small\"\n style={{\n backgroundColor: planPolicyCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n <Typography variant=\"body2\">\n {planPolicyCondition.message || \"No details available\"}\n </Typography>\n </Box>\n ) : (\n <Typography variant=\"body2\">No plan policy information</Typography>\n )}\n </Grid>\n <Grid item xs={12} md={6}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Auth Policy\n </Typography>\n {authPolicyCondition ? (\n <Box>\n <Chip\n label={authPolicyCondition.status === \"True\" ? \"Found\" : \"Not Found\"}\n size=\"small\"\n style={{\n backgroundColor: authPolicyCondition.status === \"True\" ? \"#4caf50\" : \"#ff9800\",\n color: \"#fff\",\n marginBottom: 8,\n }}\n />\n <Typography variant=\"body2\">\n {authPolicyCondition.message || \"No details available\"}\n </Typography>\n </Box>\n ) : (\n <Typography variant=\"body2\">No auth policy information</Typography>\n )}\n </Grid>\n </Grid>\n </InfoCard>\n </Grid>\n\n {discoveredPlans.length > 0 && (\n <Grid item xs={12}>\n <InfoCard title=\"Effective Plan Tiers\">\n <Typography variant=\"body2\" color=\"textSecondary\" paragraph>\n These tiers are computed from all attached PlanPolicies (including gateway-level policies).\n </Typography>\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell>Tier</TableCell>\n <TableCell>Rate Limits</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {discoveredPlans.map((plan) => (\n <TableRow key={plan.tier}>\n <TableCell>\n <Chip label={plan.tier} size=\"small\" color=\"primary\" />\n </TableCell>\n <TableCell>{formatLimits(plan.limits)}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </InfoCard>\n </Grid>\n )}\n </Grid>\n )}\n </Content>\n\n <EditAPIProductDialog\n open={editDialogOpen}\n onClose={() => setEditDialogOpen(false)}\n onSuccess={handleEditSuccess}\n namespace={namespace || \"\"}\n name={name || \"\"}\n />\n\n <ConfirmDeleteDialog\n open={deleteDialogOpen}\n title=\"Delete API Product\"\n description={`Are you sure you want to delete \"${product.spec?.displayName || product.metadata.name}\"? This action cannot be undone.`}\n severity=\"high\"\n confirmText={product.metadata.name}\n deleting={deleting}\n onConfirm={handleDelete}\n onCancel={() => setDeleteDialogOpen(false)}\n />\n </Page>\n );\n};\n","import React from \"react\";\nimport {\n Box,\n Typography,\n Chip,\n makeStyles,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Grid,\n} from \"@material-ui/core\";\nimport { Link } from \"@backstage/core-components\";\nimport { APIProduct, Plan } from \"../../types/api-management\";\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontWeight: 600,\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(0.5),\n fontSize: \"0.75rem\",\n textTransform: \"uppercase\",\n },\n tierChip: {\n marginRight: theme.spacing(0.5),\n marginBottom: theme.spacing(0.5),\n },\n statusChipPublished: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n },\n statusChipDraft: {\n backgroundColor: theme.palette.grey[600],\n color: theme.palette.common.white,\n },\n infoGrid: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(180px, 1fr))\",\n gap: theme.spacing(3),\n marginBottom: theme.spacing(3),\n },\n infoItem: {\n minWidth: 0,\n },\n apiLink: {\n color: theme.palette.primary.main,\n textDecoration: \"none\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n}));\n\ninterface ApiProductDetailsProps {\n product: APIProduct;\n showStatus?: boolean;\n showCatalogLink?: boolean;\n}\n\nexport const ApiProductDetails = ({\n product,\n showStatus = true,\n showCatalogLink = true,\n}: ApiProductDetailsProps) => {\n const classes = useStyles();\n\n const publishStatus = product.spec?.publishStatus || \"Draft\";\n const isPublished = publishStatus === \"Published\";\n const tiers = product.status?.discoveredPlans || [];\n\n return (\n <>\n {product.spec?.description && (\n <Box mb={3}>\n <Typography variant=\"caption\" className={classes.label}>\n Description\n </Typography>\n <Typography variant=\"body1\">{product.spec.description}</Typography>\n </Box>\n )}\n\n <Box className={classes.infoGrid}>\n {showStatus && (\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Status\n </Typography>\n <Box>\n <Chip\n label={publishStatus}\n size=\"small\"\n className={\n isPublished\n ? classes.statusChipPublished\n : classes.statusChipDraft\n }\n data-testid=\"publish-status-chip\"\n />\n </Box>\n </Box>\n )}\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Version\n </Typography>\n <Typography variant=\"body2\">\n {product.spec?.version || \"v1\"}\n </Typography>\n </Box>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Namespace\n </Typography>\n <Typography variant=\"body2\">{product.metadata.namespace}</Typography>\n </Box>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n API Key Approval\n </Typography>\n <Typography variant=\"body2\">\n {product.spec?.approvalMode === \"automatic\"\n ? \"Automatic\"\n : \"Need manual approval\"}\n </Typography>\n </Box>\n {product.spec?.tags && product.spec.tags.length > 0 && (\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Tags\n </Typography>\n <Box>\n {product.spec.tags.map((tag) => (\n <Chip\n key={tag}\n label={tag}\n size=\"small\"\n variant=\"outlined\"\n className={classes.tierChip}\n />\n ))}\n </Box>\n </Box>\n )}\n </Box>\n\n <Box className={classes.infoGrid}>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n API\n </Typography>\n <br />\n {showCatalogLink ? (\n <Link\n to={`/catalog/default/api/${product.metadata.name}`}\n className={classes.apiLink}\n >\n {product.metadata.name}\n </Link>\n ) : (\n <Typography variant=\"body2\">{product.metadata.name}</Typography>\n )}\n </Box>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Route\n </Typography>\n <Typography variant=\"body2\">\n {product.spec?.targetRef?.name || \"-\"}\n </Typography>\n </Box>\n </Box>\n\n {tiers.length > 0 && (\n <Box mb={3}>\n <Typography variant=\"caption\" className={classes.label}>\n Available Tiers\n </Typography>\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell>Tier</TableCell>\n <TableCell>Rate Limits</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {tiers.map((plan: Plan) => (\n <TableRow key={plan.tier}>\n <TableCell>\n <Chip label={plan.tier} size=\"small\" />\n </TableCell>\n <TableCell>\n {plan.limits &&\n Object.entries(plan.limits).map(([key, value]) => (\n <Typography key={key} variant=\"body2\">\n {String(value)} per {key}\n </Typography>\n ))}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </Box>\n )}\n\n <Grid container spacing={3}>\n {(product.spec?.contact?.email || product.spec?.contact?.team) && (\n <Grid item xs={12} md={6}>\n <Typography variant=\"caption\" className={classes.label}>\n Contact Information\n </Typography>\n <Box mt={1}>\n {product.spec.contact.team && (\n <Typography variant=\"body2\">\n <strong>Team:</strong> {product.spec.contact.team}\n </Typography>\n )}\n {product.spec.contact.email && (\n <Typography variant=\"body2\">\n <strong>Email:</strong>{\" \"}\n <Link to={`mailto:${product.spec.contact.email}`}>\n {product.spec.contact.email}\n </Link>\n </Typography>\n )}\n </Box>\n </Grid>\n )}\n\n {(product.spec?.documentation?.docsURL ||\n product.spec?.documentation?.openAPISpecURL) && (\n <Grid item xs={12} md={6}>\n <Typography variant=\"caption\" className={classes.label}>\n Documentation\n </Typography>\n <Box mt={1}>\n {product.spec.documentation.docsURL && (\n <Typography variant=\"body2\">\n <strong>Docs:</strong>{\" \"}\n <Link to={product.spec.documentation.docsURL} target=\"_blank\">\n View Documentation\n </Link>\n </Typography>\n )}\n {product.spec.documentation.openAPISpecURL && (\n <Typography variant=\"body2\">\n <strong>OpenAPI Spec:</strong>{\" \"}\n <Link\n to={product.spec.documentation.openAPISpecURL}\n target=\"_blank\"\n >\n View Spec\n </Link>\n </Typography>\n )}\n </Box>\n </Grid>\n )}\n </Grid>\n </>\n );\n};\n"],"names":["useStyles","makeStyles","theme","label","fontWeight","color","palette","text","secondary","marginBottom","spacing","fontSize","textTransform","actionButtons","display","gap","alignItems","cardHeader","justifyContent","cardActions","ApiProductDetailPage","product","classes","namespace","name","useParams","navigate","useNavigate","config","useApi","configApiRef","fetchApi","fetchApiRef","alertApi","alertApiRef","backendUrl","getString","selectedTab","setSelectedTab","useState","editDialogOpen","setEditDialogOpen","deleteDialogOpen","setDeleteDialogOpen","deleting","setDeleting","refreshKey","setRefreshKey","allowed","canUpdateApiProduct","useKuadrantPermission","kuadrantApiProductUpdateAllPermission","canDeleteApiProduct","kuadrantApiProductDeleteAllPermission","canPublishApiProduct","value","loading","error","useAsync","async","response","fetch","ok","Error","json","handlePublishToggle","newStatus","spec","publishStatus","method","headers","body","JSON","stringify","post","message","severity","k","err","Progress","ResponseErrorPanel","isPublished","planPolicyCondition","status","conditions","find","c","type","authPolicyCondition","discoveredPlans","hasDefinitionTab","documentation","openAPISpecURL","hasPoliciesTab","length","definitionTabIndex","policiesTabIndex","formatLimits","limits","parts","daily","push","weekly","monthly","yearly","join","Page","themeId","Header","title","displayName","metadata","subtitle","description","Box","className","Link","to","Button","startIcon","ArrowBackIcon","variant","onClick","Tooltip","IconButton","size","EditIcon","DeleteIcon","Content","mb","Breadcrumbs","aria-label","Typography","Tabs","onChange","_","newValue","indicatorColor","textColor","Tab","InfoCard","ApiProductDetails","showStatus","showCatalogLink","target","Grid","container","item","xs","md","gutterBottom","Chip","style","backgroundColor","paragraph","Table","TableHead","TableRow","TableCell","TableBody","map","plan","tier","EditAPIProductDialog","open","onClose","onSuccess","ConfirmDeleteDialog","confirmText","onConfirm","onCancel","tierChip","marginRight","statusChipPublished","primary","main","contrastText","statusChipDraft","grey","common","white","infoGrid","gridTemplateColumns","infoItem","minWidth","apiLink","textDecoration","tiers","data-testid","version","approvalMode","tags","tag","br","targetRef","Object","entries","key","String","contact","email","team","mt","strong","docsURL"],"sourceRoot":""}
|