@kuadrant/kuadrant-backstage-plugin-frontend 0.0.2-dev-3d7caf4 → 0.0.2-dev-24d0757

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/assets/empty-state-illustration.png +0 -0
  2. package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js +6 -1
  3. package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js.map +1 -1
  4. package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js +248 -0
  5. package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js.map +1 -0
  6. package/dist/components/ApiProductDetailPage/index.esm.js +2 -0
  7. package/dist/components/ApiProductDetailPage/index.esm.js.map +1 -0
  8. package/dist/components/ApiProductDetails/ApiProductDetails.esm.js +86 -0
  9. package/dist/components/ApiProductDetails/ApiProductDetails.esm.js.map +1 -0
  10. package/dist/components/ApiProductInfoCard/ApiProductInfoCard.esm.js +24 -43
  11. package/dist/components/ApiProductInfoCard/ApiProductInfoCard.esm.js.map +1 -1
  12. package/dist/components/ApprovalQueueTable/ApprovalQueueTable.esm.js +2 -1
  13. package/dist/components/ApprovalQueueTable/ApprovalQueueTable.esm.js.map +1 -1
  14. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +148 -134
  15. package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
  16. package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js +104 -128
  17. package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js.map +1 -1
  18. package/dist/components/KuadrantPage/KuadrantPage.esm.js +328 -125
  19. package/dist/components/KuadrantPage/KuadrantPage.esm.js.map +1 -1
  20. package/dist/components/MyApiKeysTable/MyApiKeysTable.esm.js +8 -2
  21. package/dist/components/MyApiKeysTable/MyApiKeysTable.esm.js.map +1 -1
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.esm.js +1 -1
  24. package/dist/plugin.esm.js +8 -1
  25. package/dist/plugin.esm.js.map +1 -1
  26. package/dist/utils/validation.esm.js +1 -11
  27. package/dist/utils/validation.esm.js.map +1 -1
  28. package/dist-scalprum/{internal.plugin-kuadrant.793ab10dddb55e70abe2.js → internal.plugin-kuadrant.95817f34e88db81b5e8f.js} +2 -2
  29. package/dist-scalprum/internal.plugin-kuadrant.95817f34e88db81b5e8f.js.map +1 -0
  30. package/dist-scalprum/plugin-manifest.json +2 -2
  31. package/dist-scalprum/static/2759.fceb317f.chunk.js +2 -0
  32. package/dist-scalprum/static/2759.fceb317f.chunk.js.map +1 -0
  33. package/dist-scalprum/static/2928.4303c12e.chunk.js +3 -0
  34. package/dist-scalprum/static/2928.4303c12e.chunk.js.map +1 -0
  35. package/dist-scalprum/static/2967.ac3a4bee.chunk.js +2 -0
  36. package/dist-scalprum/static/2967.ac3a4bee.chunk.js.map +1 -0
  37. package/dist-scalprum/static/{6979.9699b350.chunk.js → 2987.1da15560.chunk.js} +2 -2
  38. package/dist-scalprum/static/2987.1da15560.chunk.js.map +1 -0
  39. package/dist-scalprum/static/3459.5c90b5a3.chunk.js +2 -0
  40. package/dist-scalprum/static/3459.5c90b5a3.chunk.js.map +1 -0
  41. package/dist-scalprum/static/3503.66b6e510.chunk.js +2 -0
  42. package/dist-scalprum/static/3503.66b6e510.chunk.js.map +1 -0
  43. package/dist-scalprum/static/{3650.aa8552f3.chunk.js → 3650.515c743a.chunk.js} +2 -2
  44. package/dist-scalprum/static/3650.515c743a.chunk.js.map +1 -0
  45. package/dist-scalprum/static/4682.6959fcd1.chunk.js +2 -0
  46. package/dist-scalprum/static/4682.6959fcd1.chunk.js.map +1 -0
  47. package/dist-scalprum/static/5010.a4aa0f8e.chunk.js +3 -0
  48. package/dist-scalprum/static/5010.a4aa0f8e.chunk.js.map +1 -0
  49. package/dist-scalprum/static/5453.280127dd.chunk.js +2 -0
  50. package/dist-scalprum/static/5453.280127dd.chunk.js.map +1 -0
  51. package/dist-scalprum/static/6422.97baf774.chunk.js +2 -0
  52. package/dist-scalprum/static/6422.97baf774.chunk.js.map +1 -0
  53. package/dist-scalprum/static/7791.12162a71.chunk.js +2 -0
  54. package/dist-scalprum/static/7791.12162a71.chunk.js.map +1 -0
  55. package/dist-scalprum/static/8799.7c749838.chunk.js +2 -0
  56. package/dist-scalprum/static/8799.7c749838.chunk.js.map +1 -0
  57. package/dist-scalprum/static/empty-state-illustration.7e3ad5a9..png +0 -0
  58. package/dist-scalprum/static/exposed-PluginRoot.a5792fb2.chunk.js +2 -0
  59. package/dist-scalprum/static/exposed-PluginRoot.a5792fb2.chunk.js.map +1 -0
  60. package/package.json +1 -1
  61. package/dist-scalprum/internal.plugin-kuadrant.793ab10dddb55e70abe2.js.map +0 -1
  62. package/dist-scalprum/static/2120.44884438.chunk.js +0 -3
  63. package/dist-scalprum/static/2120.44884438.chunk.js.map +0 -1
  64. package/dist-scalprum/static/2967.c684efaf.chunk.js +0 -2
  65. package/dist-scalprum/static/2967.c684efaf.chunk.js.map +0 -1
  66. package/dist-scalprum/static/3650.aa8552f3.chunk.js.map +0 -1
  67. package/dist-scalprum/static/5010.acf9a415.chunk.js +0 -3
  68. package/dist-scalprum/static/5010.acf9a415.chunk.js.map +0 -1
  69. package/dist-scalprum/static/5453.c1f90bdf.chunk.js +0 -2
  70. package/dist-scalprum/static/5453.c1f90bdf.chunk.js.map +0 -1
  71. package/dist-scalprum/static/6813.036a322f.chunk.js +0 -2
  72. package/dist-scalprum/static/6813.036a322f.chunk.js.map +0 -1
  73. package/dist-scalprum/static/6979.9699b350.chunk.js.map +0 -1
  74. package/dist-scalprum/static/7684.3d1fc1a1.chunk.js +0 -2
  75. package/dist-scalprum/static/7684.3d1fc1a1.chunk.js.map +0 -1
  76. package/dist-scalprum/static/8416.3604a311.chunk.js +0 -2
  77. package/dist-scalprum/static/8416.3604a311.chunk.js.map +0 -1
  78. package/dist-scalprum/static/exposed-PluginRoot.16bf7897.chunk.js +0 -2
  79. package/dist-scalprum/static/exposed-PluginRoot.16bf7897.chunk.js.map +0 -1
  80. /package/dist-scalprum/static/{2120.44884438.chunk.js.LICENSE.txt → 2928.4303c12e.chunk.js.LICENSE.txt} +0 -0
  81. /package/dist-scalprum/static/{5010.acf9a415.chunk.js.LICENSE.txt → 5010.a4aa0f8e.chunk.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/8799.7c749838.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/./src/utils/validation.ts","webpack://internal.plugin-kuadrant/./src/components/EditAPIProductDialog/EditAPIProductDialog.tsx","webpack://internal.plugin-kuadrant/./src/permissions.ts","webpack://internal.plugin-kuadrant/./src/utils/permissions.ts","webpack://internal.plugin-kuadrant/./src/components/ConfirmDeleteDialog/ConfirmDeleteDialog.tsx","webpack://internal.plugin-kuadrant/./src/components/PlanPolicyDetailsCard/PlanPolicyDetails.tsx"],"sourcesContent":["// Kubernetes name validation\nexport const validateKubernetesName = (value: string): string | null => {\n if (!value || !value.trim()) {\n return 'Name is required';\n }\n if (value.length > 253) {\n return 'Must be 253 characters or less';\n }\n\n const dns1123Regex = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/;\n\n if (!dns1123Regex.test(value)) {\n return 'Must be lowercase alphanumeric with hyphens, start and end with alphanumeric';\n }\n\n return null;\n};\n\n// email validation\nexport const validateEmail = (value: string): string | null => {\n if (!value) {\n return null;\n }\n\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n if (!emailRegex.test(value)) {\n return 'Must be a valid email address';\n }\n\n return null;\n};\n\n// URL validation\nexport const validateURL = (value: string): string | null => {\n if (!value) {\n return null;\n }\n\n try {\n const url = new URL(value);\n if (!['http:', 'https:'].includes(url.protocol)) {\n return 'Must be a valid HTTP or HTTPS URL';\n }\n return null;\n } catch {\n return 'Must be a valid URL';\n }\n};\n","import React, { useState, useEffect } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n TextField,\n Box,\n Typography,\n Chip,\n Grid,\n CircularProgress,\n makeStyles,\n FormControl,\n RadioGroup,\n FormControlLabel,\n Radio,\n Tooltip,\n IconButton,\n InputAdornment,\n} from '@material-ui/core';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\nimport AddIcon from '@material-ui/icons/Add';\nimport { useApi, configApiRef, fetchApiRef } from '@backstage/core-plugin-api';\nimport { Alert } from '@material-ui/lab';\nimport { Progress } from '@backstage/core-components';\nimport useAsync from 'react-use/lib/useAsync';\nimport { PlanPolicyDetails } from '../PlanPolicyDetailsCard';\nimport { validateURL } from '../../utils/validation';\n\nconst useStyles = makeStyles((theme) => ({\n asterisk: {\n color: '#f44336',\n },\n sectionHeader: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n },\n infoIcon: {\n fontSize: 18,\n color: theme.palette.text.secondary,\n },\n tagChip: {\n marginRight: theme.spacing(0.5),\n marginBottom: theme.spacing(0.5),\n },\n}));\n\ninterface EditAPIProductDialogProps {\n open: boolean;\n onClose: () => void;\n onSuccess: () => void;\n namespace: string;\n name: string;\n}\n\nexport const EditAPIProductDialog = ({open, onClose, onSuccess, namespace, name}: EditAPIProductDialogProps) => {\n const classes = useStyles();\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n const [loading, setLoading] = useState(false);\n const [displayName, setDisplayName] = useState('');\n const [description, setDescription] = useState('');\n const [version, setVersion] = useState('v1');\n const [publishStatus, setPublishStatus] = useState<'Draft' | 'Published'>('Draft');\n const [approvalMode, setApprovalMode] = useState<'automatic' | 'manual'>('manual');\n const [tags, setTags] = useState<string[]>([]);\n const [targetRef, setTargetRef] = useState<any>(null);\n const [tagInput, setTagInput] = useState('');\n const [contactEmail, setContactEmail] = useState('');\n const [contactTeam, setContactTeam] = useState('');\n const [docsURL, setDocsURL] = useState('');\n const [openAPISpec, setOpenAPISpec] = useState('');\n const [error, setError] = useState('');\n const [saving, setSaving] = useState(false);\n const [openAPISpecError, setOpenAPISpecError] = useState<string | null>(null);\n\n // Load APIProduct data when dialog opens\n useEffect(() => {\n if (open && namespace && name) {\n setLoading(true);\n setError('');\n\n fetchApi.fetch(`${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`)\n .then(async res => {\n if (!res.ok) {\n const errorData = await res.json();\n throw new Error(errorData.error || `Failed to fetch API product: ${res.status}`);\n }\n return res.json();\n })\n .then(data => {\n setDisplayName(data.spec.displayName || '');\n setDescription(data.spec.description || '');\n setVersion(data.spec.version || 'v1');\n setPublishStatus(data.spec.publishStatus || 'Draft');\n setApprovalMode(data.spec.approvalMode || 'manual');\n setTags(data.spec.tags || []);\n setTargetRef(data.spec.targetRef || null);\n setContactEmail(data.spec.contact?.email || '');\n setContactTeam(data.spec.contact?.team || '');\n setDocsURL(data.spec.documentation?.docsURL || '');\n setOpenAPISpec(data.spec.documentation?.openAPISpecURL || '');\n setOpenAPISpecError(null);\n setLoading(false);\n })\n .catch(err => {\n setError(err.message || 'Failed to load API product');\n setLoading(false);\n });\n }\n }, [open, namespace, name, backendUrl, fetchApi]);\n\n // load planpolicies with full details to show associated plans\n const {\n value: planPolicies,\n error: planPoliciesError\n } = useAsync(async () => {\n if (!open) return null;\n const response = await fetchApi.fetch(`${backendUrl}/api/kuadrant/planpolicies`);\n return await response.json();\n }, [backendUrl, fetchApi, open]);\n\n // find planpolicy associated with targetRef\n const selectedPolicy = React.useMemo(() => {\n if (!planPolicies?.items || !targetRef) return null;\n\n return planPolicies.items.find((pp: any) => {\n const ref = pp.targetRef;\n return (\n ref?.kind === 'HTTPRoute' &&\n ref?.name === targetRef.name &&\n (!ref?.namespace || ref?.namespace === (targetRef.namespace || namespace))\n );\n });\n }, [planPolicies, targetRef, namespace]);\n\n useEffect(() => {\n if (open) {\n setOpenAPISpecError(null);\n }\n }, [open]);\n\n const handleOpenAPISpecChange = (value: string) => {\n setOpenAPISpec(value);\n setOpenAPISpecError(validateURL(value));\n };\n\n const handleAddTag = () => {\n if (tagInput.trim() && !tags.includes(tagInput.trim())) {\n setTags([...tags, tagInput.trim()]);\n setTagInput('');\n }\n };\n\n const handleDeleteTag = (tagToDelete: string) => {\n setTags(tags.filter(tag => tag !== tagToDelete));\n };\n\n const handleSave = async () => {\n setError('');\n setSaving(true);\n\n try {\n const patch = {\n spec: {\n displayName,\n description,\n version,\n publishStatus,\n approvalMode,\n tags,\n targetRef,\n ...(contactEmail || contactTeam ? {\n contact: {\n ...(contactEmail && { email: contactEmail }),\n ...(contactTeam && { team: contactTeam }),\n },\n } : {}),\n ...(docsURL || openAPISpec ? {\n documentation: {\n ...(docsURL && { docsURL }),\n ...(openAPISpec && { openAPISpecURL: openAPISpec }),\n },\n } : {}),\n },\n };\n\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts/${namespace}/${name}`,\n {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(patch),\n }\n );\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'failed to update apiproduct');\n }\n\n onSuccess();\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"md\" fullWidth>\n <DialogTitle>Edit API Product</DialogTitle>\n <DialogContent>\n {error && (\n <Alert severity=\"error\" style={{ marginBottom: 16 }}>\n {error}\n </Alert>\n )}\n {planPoliciesError && (\n <Alert severity=\"warning\" style={{ marginBottom: 16 }}>\n <strong>Failed to load PlanPolicies:</strong> {planPoliciesError.message}\n <Typography variant=\"body2\" style={{ marginTop: 8 }}>\n Plan information may be incomplete.\n </Typography>\n </Alert>\n )}\n {loading ? (\n <Progress />\n ) : (\n <>\n {/* API product info section */}\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>API product info</strong></Typography>\n </Box>\n <Grid container spacing={2}>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"API product name\"\n value={displayName}\n onChange={e => setDisplayName(e.target.value)}\n placeholder=\"My API\"\n helperText=\"Give a unique name for your API product\"\n margin=\"normal\"\n required\n disabled={saving}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Resource name\"\n value={name}\n disabled\n helperText=\"Kubernetes resource name (immutable)\"\n margin=\"normal\"\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Version\"\n value={version}\n onChange={e => setVersion(e.target.value)}\n placeholder=\"v1\"\n helperText=\"Give a version to your API product\"\n margin=\"normal\"\n disabled={saving}\n />\n </Grid>\n <Grid item xs={6}>\n <TextField\n fullWidth\n label=\"Tag\"\n value={tagInput}\n onChange={e => setTagInput(e.target.value)}\n onKeyPress={e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleAddTag();\n }\n }}\n placeholder=\"Add tag\"\n helperText=\"Add a tag to your API product\"\n margin=\"normal\"\n disabled={saving}\n InputProps={{\n endAdornment: tagInput ? (\n <InputAdornment position=\"end\">\n <IconButton size=\"small\" onClick={handleAddTag} disabled={saving}>\n <AddIcon fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ) : undefined,\n }}\n />\n </Grid>\n {tags.length > 0 && (\n <Grid item xs={12}>\n <Box display=\"flex\" flexWrap=\"wrap\">\n {tags.map(tag => (\n <Chip\n key={tag}\n label={tag}\n onDelete={saving ? undefined : () => handleDeleteTag(tag)}\n size=\"small\"\n className={classes.tagChip}\n disabled={saving}\n />\n ))}\n </Box>\n </Grid>\n )}\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"Description\"\n value={description}\n onChange={e => setDescription(e.target.value)}\n placeholder=\"API description\"\n margin=\"normal\"\n multiline\n rows={2}\n required\n disabled={saving}\n InputLabelProps={{\n classes: {\n asterisk: classes.asterisk,\n },\n }}\n />\n </Grid>\n </Grid>\n\n {/* Associated route section */}\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>Associated route</strong></Typography>\n <Tooltip title=\"The HTTPRoute this API product is associated with\">\n <InfoOutlinedIcon className={classes.infoIcon} />\n </Tooltip>\n </Box>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"OpenAPI Spec URL\"\n value={openAPISpec}\n onChange={e => handleOpenAPISpecChange(e.target.value)}\n placeholder=\"https://api.example.com/openapi.json\"\n helperText={openAPISpecError || \"Enter the full path to your API spec file\"}\n error={!!openAPISpecError}\n margin=\"normal\"\n disabled={saving}\n />\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"Documentation URL\"\n value={docsURL}\n onChange={e => setDocsURL(e.target.value)}\n placeholder=\"https://docs.example.com/api\"\n helperText=\"Link to external documentation for this API\"\n margin=\"normal\"\n disabled={saving}\n />\n </Grid>\n {targetRef && (\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"HTTPRoute\"\n value={`${targetRef.namespace || namespace}/${targetRef.name}`}\n disabled\n helperText=\"Target HTTPRoute (immutable)\"\n margin=\"normal\"\n />\n </Grid>\n )}\n </Grid>\n\n {/* HTTPRoute policies section */}\n {targetRef && (\n <>\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>HTTPRoute policies</strong></Typography>\n <Tooltip title=\"Shows the associated policies and rate limit tiers for the HTTPRoute\">\n <InfoOutlinedIcon className={classes.infoIcon} />\n </Tooltip>\n </Box>\n <PlanPolicyDetails\n selectedPolicy={selectedPolicy}\n alertSeverity=\"info\"\n alertMessage=\"No PlanPolicy found for this HTTPRoute.\"\n includeTopMargin={false}\n />\n </>\n )}\n\n {/* API Key approval section */}\n <Box className={classes.sectionHeader}>\n <Typography variant=\"subtitle1\"><strong>API Key approval</strong></Typography>\n <Tooltip title=\"Choose how API key requests are handled for this product\">\n <InfoOutlinedIcon className={classes.infoIcon} />\n </Tooltip>\n </Box>\n <FormControl component=\"fieldset\" disabled={saving}>\n <RadioGroup\n row\n value={approvalMode}\n onChange={e => setApprovalMode(e.target.value as 'automatic' | 'manual')}\n >\n <FormControlLabel\n value=\"manual\"\n control={<Radio color=\"primary\" />}\n label={\n <Box>\n <Typography variant=\"body2\">Need manual approval</Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n Requires approval for requesting this API\n </Typography>\n </Box>\n }\n />\n <FormControlLabel\n value=\"automatic\"\n control={<Radio color=\"primary\" />}\n label={\n <Box>\n <Typography variant=\"body2\">Automatic</Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n Keys are created without need to be approved\n </Typography>\n </Box>\n }\n />\n </RadioGroup>\n </FormControl>\n </>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose} disabled={saving}>Cancel</Button>\n <Button\n onClick={handleSave}\n color=\"primary\"\n variant=\"contained\"\n disabled={saving || loading || !displayName || !description || !!openAPISpecError}\n startIcon={saving ? <CircularProgress size={16} color=\"inherit\" /> : undefined}\n >\n {saving ? 'Saving...' : 'Save'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","import { createPermission } from '@backstage/plugin-permission-common';\n\n/**\n * permission definitions for the kuadrant plugin\n *\n * these permissions control access to kuadrant resources and operations.\n * they must match the permissions defined in the backend plugin.\n *\n * permission types:\n * - BasicPermission: standard permission that applies globally\n * - ResourcePermission: permission scoped to specific resource types (e.g., apiproduct)\n *\n * permission patterns:\n * - `.create` - create new resources\n * - `.read` - read resource details\n * - `.read.own` - read only resources owned by the user\n * - `.read.all` - read all resources regardless of ownership\n * - `.update` - modify existing resources\n * - `.delete` - delete resources\n * - `.delete.own` - delete only resources owned by the user\n * - `.delete.all` - delete any resource regardless of ownership\n * - `.list` - list/view collections of resources\n */\n\n// planpolicy permissions\nexport const kuadrantPlanPolicyCreatePermission = createPermission({\n name: 'kuadrant.planpolicy.create',\n attributes: { action: 'create' },\n});\n\nexport const kuadrantPlanPolicyReadPermission = createPermission({\n name: 'kuadrant.planpolicy.read',\n attributes: { action: 'read' },\n});\n\nexport const kuadrantPlanPolicyUpdatePermission = createPermission({\n name: 'kuadrant.planpolicy.update',\n attributes: { action: 'update' },\n});\n\nexport const kuadrantPlanPolicyDeletePermission = createPermission({\n name: 'kuadrant.planpolicy.delete',\n attributes: { action: 'delete' },\n});\n\nexport const kuadrantPlanPolicyListPermission = createPermission({\n name: 'kuadrant.planpolicy.list',\n attributes: { action: 'read' },\n});\n\n// apiproduct permissions\n\n/**\n * permission to create new API products\n * granted to api owners and admins\n */\nexport const kuadrantApiProductCreatePermission = createPermission({\n name: 'kuadrant.apiproduct.create',\n attributes: { action: 'create' },\n});\n\n/**\n * permission to read API products owned by the current user\n * for api owners to view their own products\n */\nexport const kuadrantApiProductReadOwnPermission = createPermission({\n name: 'kuadrant.apiproduct.read.own',\n attributes: { action: 'read' },\n});\n\n/**\n * permission to read all API products regardless of ownership\n * for platform engineers/admins who need to view all products\n */\nexport const kuadrantApiProductReadAllPermission = createPermission({\n name: 'kuadrant.apiproduct.read.all',\n attributes: { action: 'read' },\n});\n\n/**\n * permission to update API products owned by the current user\n * for api owners to modify their own products\n */\nexport const kuadrantApiProductUpdateOwnPermission = createPermission({\n name: 'kuadrant.apiproduct.update.own',\n attributes: { action: 'update' },\n});\n\n/**\n * permission to update any API product regardless of ownership\n * for platform engineers/admins\n */\nexport const kuadrantApiProductUpdateAllPermission = createPermission({\n name: 'kuadrant.apiproduct.update.all',\n attributes: { action: 'update' },\n});\n\n/**\n * permission to delete API products owned by the current user\n * for api owners to remove their own products\n */\nexport const kuadrantApiProductDeleteOwnPermission = createPermission({\n name: 'kuadrant.apiproduct.delete.own',\n attributes: { action: 'delete' },\n});\n\n/**\n * permission to delete any API product regardless of ownership\n * for platform engineers/admins\n */\nexport const kuadrantApiProductDeleteAllPermission = createPermission({\n name: 'kuadrant.apiproduct.delete.all',\n attributes: { action: 'delete' },\n});\n\n/**\n * permission to list API products\n * backend filters results based on .own vs .all read permissions\n */\nexport const kuadrantApiProductListPermission = createPermission({\n name: 'kuadrant.apiproduct.list',\n attributes: { action: 'read' },\n});\n\n// apikey permissions\n\n/**\n * permission to create API keys (request API access)\n *\n * this is a ResourcePermission scoped to 'apiproduct', allowing\n * fine-grained control over which API products users can request access to.\n *\n * use in frontend: useKuadrantPermission(kuadrantApiKeyCreatePermission)\n * use in backend with resource: { permission, resourceRef: 'apiproduct:namespace/name' }\n */\nexport const kuadrantApiKeyCreatePermission = createPermission({\n name: 'kuadrant.apikey.create',\n attributes: { action: 'create' },\n resourceType: 'apiproduct',\n});\n\n/**\n * permission to read API keys owned by the current user\n * allows users to view their own API keys and request history\n */\nexport const kuadrantApiKeyReadOwnPermission = createPermission({\n name: 'kuadrant.apikey.read.own',\n attributes: { action: 'read' },\n});\n\n/**\n * permission to read all API keys regardless of ownership\n * for platform engineers/admins who need to view the approval queue and audit keys\n */\nexport const kuadrantApiKeyReadAllPermission = createPermission({\n name: 'kuadrant.apikey.read.all',\n attributes: { action: 'read' },\n});\n\n/**\n * permission to update API keys owned by the current user\n * allows users to edit their own pending requests (change plan tier, use case)\n */\nexport const kuadrantApiKeyUpdateOwnPermission = createPermission({\n name: 'kuadrant.apikey.update.own',\n attributes: { action: 'update' },\n});\n\n/**\n * permission to update any API key regardless of ownership\n * typically granted to API owners and platform engineers for approving/rejecting requests\n */\nexport const kuadrantApiKeyUpdateAllPermission = createPermission({\n name: 'kuadrant.apikey.update.all',\n attributes: { action: 'update' },\n});\n\n/**\n * permission to delete API keys owned by the current user\n * allows users to cancel their own requests or revoke their own access\n */\nexport const kuadrantApiKeyDeleteOwnPermission = createPermission({\n name: 'kuadrant.apikey.delete.own',\n attributes: { action: 'delete' },\n});\n\n/**\n * permission to delete any API key regardless of ownership\n * for platform engineers/admins who need to revoke access\n */\nexport const kuadrantApiKeyDeleteAllPermission = createPermission({\n name: 'kuadrant.apikey.delete.all',\n attributes: { action: 'delete' },\n});\n\n/**\n * permission to approve/reject API key requests\n * grants access to the approval queue - for API owners and admins only\n * separate from update.own which consumers use to edit their pending requests\n */\nexport const kuadrantApiKeyApprovePermission = createPermission({\n name: 'kuadrant.apikey.approve',\n attributes: { action: 'update' },\n});\n\nexport const kuadrantPermissions = [\n kuadrantPlanPolicyCreatePermission,\n kuadrantPlanPolicyReadPermission,\n kuadrantPlanPolicyUpdatePermission,\n kuadrantPlanPolicyDeletePermission,\n kuadrantPlanPolicyListPermission,\n kuadrantApiProductCreatePermission,\n kuadrantApiProductReadOwnPermission,\n kuadrantApiProductReadAllPermission,\n kuadrantApiProductUpdateOwnPermission,\n kuadrantApiProductUpdateAllPermission,\n kuadrantApiProductDeleteOwnPermission,\n kuadrantApiProductDeleteAllPermission,\n kuadrantApiProductListPermission,\n kuadrantApiKeyCreatePermission,\n kuadrantApiKeyReadOwnPermission,\n kuadrantApiKeyReadAllPermission,\n kuadrantApiKeyUpdateOwnPermission,\n kuadrantApiKeyUpdateAllPermission,\n kuadrantApiKeyDeleteOwnPermission,\n kuadrantApiKeyDeleteAllPermission,\n kuadrantApiKeyApprovePermission,\n];\n","import { usePermission } from '@backstage/plugin-permission-react';\nimport { Permission, ResourcePermission } from '@backstage/plugin-permission-common';\n\n/**\n * result of a permission check including error state\n */\nexport interface PermissionCheckResult {\n allowed: boolean;\n loading: boolean;\n error?: Error;\n}\n\n/**\n * custom hook for checking kuadrant permissions that handles both\n * BasicPermission and ResourcePermission types without type bypasses\n *\n * @param permission - the permission to check\n * @param resourceRef - optional resource reference for ResourcePermissions\n * @returns permission check result with error handling\n *\n * @example\n * // basic permission\n * const { allowed, loading, error } = useKuadrantPermission(\n * kuadrantApiProductListPermission\n * );\n *\n * @example\n * // resource permission\n * const { allowed, loading, error } = useKuadrantPermission(\n * kuadrantApiKeyCreatePermission,\n * 'apiproduct:namespace/name'\n * );\n */\nexport function useKuadrantPermission(\n permission: Permission,\n resourceRef?: string,\n): PermissionCheckResult {\n // construct the permission request based on whether it's a ResourcePermission\n const permissionRequest = 'resourceType' in permission\n ? { permission: permission as ResourcePermission, resourceRef }\n : { permission };\n\n const result = usePermission(permissionRequest as any);\n\n return {\n allowed: result.allowed,\n loading: result.loading,\n error: result.error,\n };\n}\n\n/**\n * helper to determine if a user can delete a specific API key or request\n *\n * @param ownerId - the user id who owns the key/request\n * @param currentUserId - the current user's id\n * @param canDeleteOwn - whether user has permission to delete their own keys\n * @param canDeleteAll - whether user has permission to delete all keys\n * @returns true if user can delete this specific key/request\n */\nexport function canDeleteResource(\n ownerId: string,\n currentUserId: string,\n canDeleteOwn: boolean,\n canDeleteAll: boolean,\n): boolean {\n if (canDeleteAll) return true;\n if (canDeleteOwn && ownerId === currentUserId) return true;\n return false;\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogContentText,\n DialogActions,\n Button,\n TextField,\n Typography,\n Box,\n CircularProgress,\n} from '@material-ui/core';\nimport WarningIcon from '@material-ui/icons/Warning';\n\nexport interface ConfirmDeleteDialogProps {\n open: boolean;\n title: string;\n description: string;\n // for dangerous deletes, require typing this text to confirm\n confirmText?: string;\n // severity affects styling - 'high' shows warning icon and requires text confirmation\n severity?: 'normal' | 'high';\n deleting?: boolean;\n onConfirm: () => void;\n onCancel: () => void;\n}\n\nexport const ConfirmDeleteDialog = ({\n open,\n title,\n description,\n confirmText,\n severity = 'normal',\n deleting = false,\n onConfirm,\n onCancel,\n}: ConfirmDeleteDialogProps) => {\n const [inputValue, setInputValue] = useState('');\n\n // reset input when dialog opens/closes\n useEffect(() => {\n if (!open) {\n setInputValue('');\n }\n }, [open]);\n\n const requiresTextConfirmation = severity === 'high' && confirmText;\n const canConfirm = requiresTextConfirmation ? inputValue === confirmText : true;\n\n const handleConfirm = () => {\n if (canConfirm) {\n onConfirm();\n }\n };\n\n return (\n <Dialog\n open={open}\n onClose={deleting ? undefined : onCancel}\n maxWidth=\"sm\"\n fullWidth\n >\n <DialogTitle>\n {severity === 'high' && (\n <Box display=\"flex\" alignItems=\"center\" style={{ gap: 8 }}>\n <WarningIcon color=\"error\" />\n <span>{title}</span>\n </Box>\n )}\n {severity !== 'high' && title}\n </DialogTitle>\n <DialogContent>\n <DialogContentText style={{ whiteSpace: 'pre-line' }}>\n {description}\n </DialogContentText>\n {requiresTextConfirmation && (\n <Box mt={2}>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>\n Type <strong>{confirmText}</strong> to confirm:\n </Typography>\n <TextField\n fullWidth\n variant=\"outlined\"\n size=\"small\"\n value={inputValue}\n onChange={e => setInputValue(e.target.value)}\n disabled={deleting}\n autoFocus\n placeholder={confirmText}\n />\n </Box>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={onCancel} disabled={deleting}>\n Cancel\n </Button>\n <Button\n onClick={handleConfirm}\n color=\"secondary\"\n variant=\"contained\"\n disabled={deleting || !canConfirm}\n startIcon={deleting ? <CircularProgress size={16} color=\"inherit\" /> : undefined}\n >\n {deleting ? 'Deleting...' : 'Delete'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","import React from 'react';\nimport { Box, Typography, Chip, useTheme } from '@material-ui/core';\nimport { Alert } from '@material-ui/lab';\n\ninterface PlanPolicyDetailsProps {\n selectedPolicy: {\n metadata: {\n name: string;\n };\n plans?: Array<{\n tier: string;\n description?: string;\n limits?: {\n daily?: number;\n monthly?: number;\n yearly?: number;\n };\n }>;\n } | null;\n alertSeverity?: 'warning' | 'info';\n alertMessage?: string;\n includeTopMargin?: boolean;\n}\n\nexport const PlanPolicyDetails: React.FC<PlanPolicyDetailsProps> = ({\n selectedPolicy,\n alertSeverity = 'warning',\n alertMessage = 'No PlanPolicy found for this HTTPRoute. API keys and rate limiting may not be available.',\n includeTopMargin = true,\n}) => {\n const theme = useTheme();\n return (\n <Box\n mt={includeTopMargin ? 1 : 0}\n p={2}\n bgcolor={theme.palette.background.default}\n borderRadius={1}\n border={`1px solid ${theme.palette.divider}`}\n >\n {selectedPolicy ? (\n <>\n <Typography variant=\"subtitle2\" gutterBottom style={{ fontWeight: 600 }}>\n Associated PlanPolicy: <strong>{selectedPolicy.metadata.name}</strong>\n </Typography>\n\n {selectedPolicy.plans && selectedPolicy.plans.length > 0 ? (\n <>\n <Typography\n variant=\"caption\"\n display=\"block\"\n gutterBottom\n color=\"textSecondary\"\n style={{ marginTop: 8 }}\n >\n Available Tiers:\n </Typography>\n <Box display=\"flex\" flexWrap=\"wrap\" mt={1} style={{ gap: 8 }}>\n {selectedPolicy.plans.map((plan: any, idx: number) => {\n const limitText = plan.limits?.daily\n ? `${plan.limits.daily}/day`\n : plan.limits?.monthly\n ? `${plan.limits.monthly}/month`\n : plan.limits?.yearly\n ? `${plan.limits.yearly}/year`\n : 'No limit';\n\n return (\n <Chip\n key={idx}\n label={`${plan.tier}: ${limitText}`}\n size=\"small\"\n variant=\"outlined\"\n color=\"primary\"\n />\n );\n })}\n </Box>\n </>\n ) : (\n <Typography variant=\"caption\" color=\"textSecondary\">\n No plans defined in this PlanPolicy\n </Typography>\n )}\n </>\n ) : (\n <Alert severity={alertSeverity}>{alertMessage}</Alert>\n )}\n </Box>\n );\n};\n"],"names":["validateKubernetesName","value","trim","length","test","validateURL","url","URL","includes","protocol","useStyles","makeStyles","theme","asterisk","color","sectionHeader","display","alignItems","gap","spacing","marginTop","marginBottom","infoIcon","fontSize","palette","text","secondary","tagChip","marginRight","EditAPIProductDialog","open","onClose","onSuccess","namespace","name","classes","config","useApi","configApiRef","fetchApi","fetchApiRef","backendUrl","getString","loading","setLoading","useState","displayName","setDisplayName","description","setDescription","version","setVersion","publishStatus","setPublishStatus","approvalMode","setApprovalMode","tags","setTags","targetRef","setTargetRef","tagInput","setTagInput","contactEmail","setContactEmail","contactTeam","setContactTeam","docsURL","setDocsURL","openAPISpec","setOpenAPISpec","error","setError","saving","setSaving","openAPISpecError","setOpenAPISpecError","useEffect","fetch","then","async","res","ok","errorData","json","Error","status","data","spec","contact","email","team","documentation","openAPISpecURL","catch","err","message","planPolicies","planPoliciesError","useAsync","response","selectedPolicy","React","items","find","pp","ref","kind","handleAddTag","Dialog","maxWidth","fullWidth","DialogTitle","DialogContent","Alert","severity","style","strong","Typography","variant","Progress","Box","className","Grid","container","item","xs","TextField","label","onChange","e","target","placeholder","helperText","margin","required","disabled","InputLabelProps","onKeyPress","key","preventDefault","InputProps","endAdornment","InputAdornment","position","IconButton","size","onClick","AddIcon","undefined","flexWrap","map","tag","Chip","onDelete","handleDeleteTag","tagToDelete","filter","multiline","rows","Tooltip","title","InfoOutlinedIcon","handleOpenAPISpecChange","PlanPolicyDetails","alertSeverity","alertMessage","includeTopMargin","FormControl","component","RadioGroup","row","FormControlLabel","control","Radio","DialogActions","Button","patch","method","headers","body","JSON","stringify","String","startIcon","CircularProgress","createPermission","attributes","action","kuadrantPlanPolicyListPermission","kuadrantApiProductCreatePermission","kuadrantApiProductReadAllPermission","kuadrantApiProductUpdateOwnPermission","kuadrantApiProductUpdateAllPermission","kuadrantApiProductDeleteOwnPermission","kuadrantApiProductDeleteAllPermission","kuadrantApiProductListPermission","kuadrantApiKeyCreatePermission","resourceType","kuadrantApiKeyReadOwnPermission","kuadrantApiKeyUpdateOwnPermission","kuadrantApiKeyUpdateAllPermission","kuadrantApiKeyDeleteOwnPermission","kuadrantApiKeyDeleteAllPermission","kuadrantApiKeyApprovePermission","useKuadrantPermission","permission","resourceRef","permissionRequest","result","usePermission","allowed","canDeleteResource","ownerId","currentUserId","canDeleteOwn","canDeleteAll","ConfirmDeleteDialog","confirmText","deleting","onConfirm","onCancel","inputValue","setInputValue","requiresTextConfirmation","canConfirm","WarningIcon","span","DialogContentText","whiteSpace","mt","gutterBottom","autoFocus","useTheme","p","bgcolor","background","default","borderRadius","border","divider","fontWeight","metadata","plans","plan","idx","limitText","limits","daily","monthly","yearly","tier"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[879],{72627:(e,n,t)=>{t.r(n),t.d(n,{ApiKeyDetailPage:()=>y,ApiKeysPage:()=>l,ApiProductDetailPage:()=>b,ApiProductsPage:()=>d,EntityKuadrantApiAccessCard:()=>u,EntityKuadrantApiApprovalTab:()=>h,EntityKuadrantApiKeyManagementTab:()=>m,EntityKuadrantApiKeysContent:()=>c,EntityKuadrantApiProductInfoContent:()=>s,EntityKuadrantApiProductOpenApiAlert:()=>K,KuadrantApprovalQueueCard:()=>P,KuadrantPage:()=>p,PlanPolicyDetailPage:()=>A,kuadrantPlugin:()=>r});var a=t(22097);const o=(0,a.createRouteRef)({id:"kuadrant"}),i=(0,a.createSubRouteRef)({id:"kuadrant/resource",parent:o,path:"/:kind/:namespace/:name"}),r=(0,a.createPlugin)({id:"kuadrant",routes:{root:o,resource:i}}),p=r.provide((0,a.createRoutableExtension)({name:"KuadrantPage",component:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(2928),t.e(2987),t.e(2759),t.e(5010),t.e(8563),t.e(6422),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(7094),t.e(8799),t.e(3459)]).then(t.bind(t,44477)).then(e=>e.KuadrantPage),mountPoint:o})),d=r.provide((0,a.createRoutableExtension)({name:"ApiProductsPage",component:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(2928),t.e(2987),t.e(2759),t.e(5010),t.e(8563),t.e(6422),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(7094),t.e(8799),t.e(3459)]).then(t.bind(t,44477)).then(e=>e.ApiProductsPage),mountPoint:o})),l=r.provide((0,a.createRoutableExtension)({name:"ApiKeysPage",component:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(2928),t.e(2987),t.e(2759),t.e(5010),t.e(8563),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(7094),t.e(6840),t.e(4682)]).then(t.bind(t,14682)).then(e=>e.ApiKeysPage),mountPoint:o})),u=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiAccessCard",component:{lazy:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(6659),t.e(441)]).then(t.bind(t,60441)).then(e=>e.ApiAccessCard)}})),m=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiKeyManagementTab",component:{lazy:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(2928),t.e(2987),t.e(2759),t.e(5010),t.e(5478),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(7094),t.e(6659),t.e(6840),t.e(3650)]).then(t.bind(t,23650)).then(e=>e.ApiKeyManagementTab)}})),c=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiKeysContent",component:{lazy:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(2928),t.e(2987),t.e(2759),t.e(5010),t.e(5478),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(7094),t.e(6659),t.e(6840),t.e(3650)]).then(t.bind(t,23650)).then(e=>e.ApiKeyManagementTab)}})),P=r.provide((0,a.createComponentExtension)({name:"KuadrantApprovalQueueCard",component:{lazy:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(2928),t.e(2987),t.e(2759),t.e(5010),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(7094),t.e(3097)]).then(t.bind(t,43097)).then(e=>e.ApprovalQueueCard)}})),s=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiProductInfoContent",component:{lazy:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2928),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(7094),t.e(6659),t.e(5453)]).then(t.bind(t,75453)).then(e=>e.ApiProductInfoCard)}})),A=r.provide((0,a.createComponentExtension)({name:"PlanPolicyDetailPage",component:{lazy:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(8563),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(8365)]).then(t.bind(t,58365)).then(e=>e.PlanPolicyDetailPage)}})),y=r.provide((0,a.createRoutableExtension)({name:"ApiKeyDetailPage",component:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(2987),t.e(8563),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(2967)]).then(t.bind(t,72967)).then(e=>e.ApiKeyDetailPage),mountPoint:o})),h=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiApprovalTab",component:{lazy:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(2928),t.e(2987),t.e(2759),t.e(5010),t.e(5478),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(7094),t.e(6659),t.e(6800)]).then(t.bind(t,46800)).then(e=>e.EntityApiApprovalTab)}})),K=r.provide((0,a.createComponentExtension)({name:"EntityKuadrantApiProductOpenApiAlert",component:{lazy:()=>Promise.all([t.e(9400),t.e(2946),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(6659),t.e(6371)]).then(t.bind(t,36371)).then(e=>e.ApiProductOpenApiAlert)}})),b=r.provide((0,a.createRoutableExtension)({name:"ApiProductDetailPage",component:()=>Promise.all([t.e(7556),t.e(9400),t.e(2946),t.e(2628),t.e(2198),t.e(2928),t.e(2987),t.e(2759),t.e(8563),t.e(3503),t.e(5478),t.e(2469),t.e(4218),t.e(484),t.e(1942),t.e(7976),t.e(7094),t.e(8799),t.e(7791)]).then(t.bind(t,57791)).then(e=>e.ApiProductDetailPage),mountPoint:o}))}}]);
2
+ //# sourceMappingURL=exposed-PluginRoot.a5792fb2.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/exposed-PluginRoot.a5792fb2.chunk.js","mappings":"qkBAEO,MAAMA,GAAeC,EAAAA,EAAAA,gBAAe,CACzCC,GAAI,aAGOC,GAAmBC,EAAAA,EAAAA,mBAAkB,CAChDF,GAAI,oBACJG,OAAQL,EACRM,KAAM,4BCDKC,GAAiBC,EAAAA,EAAAA,cAAa,CACzCN,GAAI,WACJO,OAAQ,CACNC,KAAMV,EACNW,SAAUR,KAIDS,EAAeL,EAAeM,SACzCC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,eACNC,UAAW,IACT,4OAAoCC,KAAKC,GAAKA,EAAEN,cAClDO,WAAYnB,KAIHoB,EAAkBb,EAAeM,SAC5CC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,kBACNC,UAAW,IACT,4OAAoCC,KAAKC,GAAKA,EAAEE,iBAClDD,WAAYnB,KAIHqB,EAAcd,EAAeM,SACxCC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,cACNC,UAAW,IACT,kOAAmCC,KAAKC,GAAKA,EAAEG,aACjDF,WAAYnB,KAIHsB,EAA8Bf,EAAeM,SACxDU,EAAAA,EAAAA,0BAAyB,CACvBR,KAAM,8BACNC,UAAW,CACTQ,KAAM,IACJ,2JAAqCP,KAAKC,GAAKA,EAAEO,mBAK5CC,EAAoCnB,EAAeM,SAC9DU,EAAAA,EAAAA,0BAAyB,CACvBR,KAAM,oCACNC,UAAW,CACTQ,KAAM,IACJ,wNAA2CP,KAAKC,GAAKA,EAAES,yBAMlDC,EAA+BrB,EAAeM,SACzDU,EAAAA,EAAAA,0BAAyB,CACvBR,KAAM,+BACNC,UAAW,CACTQ,KAAM,IACJ,wNAA2CP,KAAKC,GAAKA,EAAES,yBAKlDE,EAA4BtB,EAAeM,SACtDU,EAAAA,EAAAA,0BAAyB,CACvBR,KAAM,4BACNC,UAAW,CACTQ,KAAM,IACJ,8MAAyCP,KAAKC,GAAKA,EAAEY,uBAKhDC,EAAsCxB,EAAeM,SAChEU,EAAAA,EAAAA,0BAAyB,CACvBR,KAAM,sCACNC,UAAW,CACTQ,KAAM,IACJ,gLAA0CP,KAAKC,GAAKA,EAAEc,wBAKjDC,EAAuB1B,EAAeM,SACjDU,EAAAA,EAAAA,0BAAyB,CACvBR,KAAM,uBACNC,UAAW,CACTQ,KAAM,IACJ,sKAA4CP,KAAKC,GAAKA,EAAEe,0BAKnDC,EAAmB3B,EAAeM,SAC7CC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,mBACNC,UAAW,IACT,gLAAwCC,KAAKC,GAAKA,EAAEgB,kBACtDf,WAAYnB,KAIHmC,EAA+B5B,EAAeM,SACzDU,EAAAA,EAAAA,0BAAyB,CACvBR,KAAM,+BACNC,UAAW,CACTQ,KAAM,IACJ,8MAA4CP,KAAKC,GAAKA,EAAEkB,0BAKnDC,EAAuC9B,EAAeM,SACjEU,EAAAA,EAAAA,0BAAyB,CACvBR,KAAM,uCACNC,UAAW,CACTQ,KAAM,IACJ,wIAA8CP,KAAKC,GAAKA,EAAEoB,4BAKrDC,EAAuBhC,EAAeM,SACjDC,EAAAA,EAAAA,yBAAwB,CACtBC,KAAM,uBACNC,UAAW,IACT,kOAA4CC,KAAKC,GAAKA,EAAEqB,sBAC1DpB,WAAYnB,I","sources":["webpack://internal.plugin-kuadrant/./src/routes.ts","webpack://internal.plugin-kuadrant/./src/plugin.ts"],"sourcesContent":["import { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'kuadrant',\n});\n\nexport const resourceRouteRef = createSubRouteRef({\n id: 'kuadrant/resource',\n parent: rootRouteRef,\n path: '/:kind/:namespace/:name',\n});\n","import {\n createPlugin,\n createRoutableExtension,\n createComponentExtension,\n} from '@backstage/core-plugin-api';\n\nimport { rootRouteRef, resourceRouteRef } from './routes';\n\nexport const kuadrantPlugin = createPlugin({\n id: 'kuadrant',\n routes: {\n root: rootRouteRef,\n resource: resourceRouteRef,\n },\n});\n\nexport const KuadrantPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'KuadrantPage',\n component: () =>\n import('./components/KuadrantPage').then(m => m.KuadrantPage),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const ApiProductsPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'ApiProductsPage',\n component: () =>\n import('./components/KuadrantPage').then(m => m.ApiProductsPage),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const ApiKeysPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'ApiKeysPage',\n component: () =>\n import('./components/ApiKeysPage').then(m => m.ApiKeysPage),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const EntityKuadrantApiAccessCard = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiAccessCard',\n component: {\n lazy: () =>\n import('./components/ApiAccessCard').then(m => m.ApiAccessCard),\n },\n }),\n);\n\nexport const EntityKuadrantApiKeyManagementTab = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiKeyManagementTab',\n component: {\n lazy: () =>\n import('./components/ApiKeyManagementTab').then(m => m.ApiKeyManagementTab),\n },\n }),\n);\n\n// entity content extension for api keys tab\nexport const EntityKuadrantApiKeysContent = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiKeysContent',\n component: {\n lazy: () =>\n import('./components/ApiKeyManagementTab').then(m => m.ApiKeyManagementTab),\n },\n }),\n);\n\nexport const KuadrantApprovalQueueCard = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'KuadrantApprovalQueueCard',\n component: {\n lazy: () =>\n import('./components/ApprovalQueueCard').then(m => m.ApprovalQueueCard),\n },\n }),\n);\n\nexport const EntityKuadrantApiProductInfoContent = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiProductInfoContent',\n component: {\n lazy: () =>\n import('./components/ApiProductInfoCard').then(m => m.ApiProductInfoCard),\n },\n }),\n);\n\nexport const PlanPolicyDetailPage = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'PlanPolicyDetailPage',\n component: {\n lazy: () =>\n import('./components/PlanPolicyDetailPage').then(m => m.PlanPolicyDetailPage),\n },\n }),\n);\n\nexport const ApiKeyDetailPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'ApiKeyDetailPage',\n component: () =>\n import('./components/ApiKeyDetailPage').then(m => m.ApiKeyDetailPage),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const EntityKuadrantApiApprovalTab = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiApprovalTab',\n component: {\n lazy: () =>\n import('./components/EntityApiApprovalTab').then(m => m.EntityApiApprovalTab),\n },\n }),\n);\n\nexport const EntityKuadrantApiProductOpenApiAlert = kuadrantPlugin.provide(\n createComponentExtension({\n name: 'EntityKuadrantApiProductOpenApiAlert',\n component: {\n lazy: () =>\n import('./components/ApiProductOpenApiAlert').then(m => m.ApiProductOpenApiAlert),\n },\n }),\n);\n\nexport const ApiProductDetailPage = kuadrantPlugin.provide(\n createRoutableExtension({\n name: 'ApiProductDetailPage',\n component: () =>\n import('./components/ApiProductDetailPage').then(m => m.ApiProductDetailPage),\n mountPoint: rootRouteRef,\n }),\n);\n"],"names":["rootRouteRef","createRouteRef","id","resourceRouteRef","createSubRouteRef","parent","path","kuadrantPlugin","createPlugin","routes","root","resource","KuadrantPage","provide","createRoutableExtension","name","component","then","m","mountPoint","ApiProductsPage","ApiKeysPage","EntityKuadrantApiAccessCard","createComponentExtension","lazy","ApiAccessCard","EntityKuadrantApiKeyManagementTab","ApiKeyManagementTab","EntityKuadrantApiKeysContent","KuadrantApprovalQueueCard","ApprovalQueueCard","EntityKuadrantApiProductInfoContent","ApiProductInfoCard","PlanPolicyDetailPage","ApiKeyDetailPage","EntityKuadrantApiApprovalTab","EntityApiApprovalTab","EntityKuadrantApiProductOpenApiAlert","ApiProductOpenApiAlert","ApiProductDetailPage"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kuadrant/kuadrant-backstage-plugin-frontend",
3
- "version": "0.0.2-dev-3d7caf4",
3
+ "version": "0.0.2-dev-24d0757",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal.plugin-kuadrant.793ab10dddb55e70abe2.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,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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\":\"16bf7897\",\"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\",\"2120\":\"44884438\",\"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\",\"2762\":\"bbd3c104\",\"2795\":\"6d79126a\",\"2871\":\"cf576f17\",\"2882\":\"0e45c1cf\",\"2946\":\"167c50c2\",\"2967\":\"c684efaf\",\"2979\":\"25f8d292\",\"2981\":\"038504d0\",\"2983\":\"eaa5e2bf\",\"3007\":\"bffc9924\",\"3097\":\"4bd6b35f\",\"3144\":\"6f99ccee\",\"3146\":\"08443005\",\"3193\":\"ee14d6a4\",\"3299\":\"5ee62733\",\"3357\":\"217c56f0\",\"3384\":\"d9d4ed7e\",\"3418\":\"d84064e5\",\"3419\":\"245f31b6\",\"3466\":\"43dfe991\",\"3487\":\"f5bc5b04\",\"3500\":\"a06c1c62\",\"3540\":\"443301b3\",\"3562\":\"a45eb030\",\"3580\":\"7fc6f9a3\",\"3607\":\"bb6a8626\",\"3623\":\"2aae489e\",\"3647\":\"b96f9b3e\",\"3650\":\"aa8552f3\",\"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\",\"4733\":\"f32d41e6\",\"4835\":\"78d69dee\",\"4931\":\"a431b2db\",\"4956\":\"f9816c44\",\"4971\":\"b6519e02\",\"5010\":\"acf9a415\",\"5034\":\"b0d90871\",\"5051\":\"3bc87b5b\",\"5099\":\"4934a8e8\",\"5123\":\"501777c7\",\"5189\":\"8fd3703c\",\"5251\":\"5b0d21b9\",\"5253\":\"e6dbc3b4\",\"5286\":\"630147e0\",\"5446\":\"0e42541e\",\"5453\":\"c1f90bdf\",\"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\",\"6501\":\"4bfb8996\",\"6512\":\"a4629d0a\",\"6542\":\"e82f126f\",\"6555\":\"4a460eaf\",\"6573\":\"ff6a8f78\",\"6780\":\"8f3a0af6\",\"6800\":\"736d5da3\",\"6813\":\"036a322f\",\"6835\":\"31bde7c5\",\"6840\":\"4728fab9\",\"6848\":\"3a36e63f\",\"6872\":\"7ef4ed23\",\"6924\":\"abe269c1\",\"6977\":\"909f2a27\",\"6979\":\"9699b350\",\"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\",\"7684\":\"3d1fc1a1\",\"7764\":\"abc0a144\",\"7776\":\"d698757b\",\"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\",\"8416\":\"3604a311\",\"8549\":\"b43ce116\",\"8563\":\"7e068fb0\",\"8595\":\"c60db034\",\"8705\":\"5b05cdf2\",\"8725\":\"53da57ca\",\"8727\":\"2bd53873\",\"8753\":\"fa8fdac0\",\"8755\":\"79af288c\",\"8763\":\"c0bcd6ce\",\"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,3 +0,0 @@
1
- /*! For license information please see 2120.44884438.chunk.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[2120],{9719:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(89575),a=n(39850),o=n(95478),i=n(36274),s=n(7031),c=n(75614),l=n(268),d=o.forwardRef(function(e,t){var n=e.classes,s=e.className,l=e.component,d=void 0===l?"tr":l,u=e.hover,f=void 0!==u&&u,p=e.selected,g=void 0!==p&&p,v=(0,a.A)(e,["classes","className","component","hover","selected"]),h=o.useContext(c.A);return o.createElement(d,(0,r.A)({ref:t,className:(0,i.A)(n.root,s,h&&{head:n.head,footer:n.footer}[h.variant],f&&n.hover,g&&n.selected),role:"tr"===d?null:"row"},v))});const u=(0,s.A)(function(e){return{root:{color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,"&$hover:hover":{backgroundColor:e.palette.action.hover},"&$selected, &$selected:hover":{backgroundColor:(0,l.X4)(e.palette.secondary.main,e.palette.action.selectedOpacity)}},selected:{},hover:{},head:{},footer:{}}},{name:"MuiTableRow"})(d)},13677:(e,t,n)=>{n.d(t,{A:()=>f});var r=n(89575),a=n(39850),o=n(95478),i=n(36274),s=n(7031),c=n(75614),l={variant:"body"},d="tbody",u=o.forwardRef(function(e,t){var n=e.classes,s=e.className,u=e.component,f=void 0===u?d:u,p=(0,a.A)(e,["classes","className","component"]);return o.createElement(c.A.Provider,{value:l},o.createElement(f,(0,r.A)({className:(0,i.A)(n.root,s),ref:t,role:f===d?null:"rowgroup"},p)))});const f=(0,s.A)({root:{display:"table-row-group"}},{name:"MuiTableBody"})(u)},47625:(e,t,n)=>{n.d(t,{A:()=>f});var r=n(89575),a=n(39850),o=n(95478),i=n(36274),s=n(7031),c=n(75614),l={variant:"head"},d="thead",u=o.forwardRef(function(e,t){var n=e.classes,s=e.className,u=e.component,f=void 0===u?d:u,p=(0,a.A)(e,["classes","className","component"]);return o.createElement(c.A.Provider,{value:l},o.createElement(f,(0,r.A)({className:(0,i.A)(n.root,s),ref:t,role:f===d?null:"rowgroup"},p)))});const f=(0,s.A)({root:{display:"table-header-group"}},{name:"MuiTableHead"})(u)},54801:(e,t,n)=>{n.d(t,{A:()=>p});var r=n(39850),a=n(89575),o=n(95478),i=n(36274),s=n(7031),c=n(11192),l=n(268),d=n(98394),u=n(75614),f=o.forwardRef(function(e,t){var n,s,l=e.align,f=void 0===l?"inherit":l,p=e.classes,g=e.className,v=e.component,h=e.padding,m=e.scope,y=e.size,w=e.sortDirection,b=e.variant,A=(0,r.A)(e,["align","classes","className","component","padding","scope","size","sortDirection","variant"]),E=o.useContext(d.A),x=o.useContext(u.A),R=x&&"head"===x.variant;v?(s=v,n=R?"columnheader":"cell"):s=R?"th":"td";var k=m;!k&&R&&(k="col");var O=h||(E&&E.padding?E.padding:"normal"),S=y||(E&&E.size?E.size:"medium"),L=b||x&&x.variant,C=null;return w&&(C="asc"===w?"ascending":"descending"),o.createElement(s,(0,a.A)({ref:t,className:(0,i.A)(p.root,p[L],g,"inherit"!==f&&p["align".concat((0,c.A)(f))],"normal"!==O&&p["padding".concat((0,c.A)(O))],"medium"!==S&&p["size".concat((0,c.A)(S))],"head"===L&&E&&E.stickyHeader&&p.stickyHeader),"aria-sort":C,role:n,scope:k},A))});const p=(0,s.A)(function(e){return{root:(0,a.A)({},e.typography.body2,{display:"table-cell",verticalAlign:"inherit",borderBottom:"1px solid\n ".concat("light"===e.palette.type?(0,l.a)((0,l.X4)(e.palette.divider,1),.88):(0,l.e$)((0,l.X4)(e.palette.divider,1),.68)),textAlign:"left",padding:16}),head:{color:e.palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium},body:{color:e.palette.text.primary},footer:{color:e.palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)},sizeSmall:{padding:"6px 24px 6px 16px","&:last-child":{paddingRight:16},"&$paddingCheckbox":{width:24,padding:"0 12px 0 16px","&:last-child":{paddingLeft:12,paddingRight:16},"& > *":{padding:0}}},paddingCheckbox:{width:48,padding:"0 0 0 4px","&:last-child":{paddingLeft:0,paddingRight:4}},paddingNone:{padding:0,"&:last-child":{padding:0}},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right",flexDirection:"row-reverse"},alignJustify:{textAlign:"justify"},stickyHeader:{position:"sticky",top:0,left:0,zIndex:2,backgroundColor:e.palette.background.default}}},{name:"MuiTableCell"})(f)},58139:(e,t,n)=>{e.exports=n(93296)},61009:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(39850),a=n(89575),o=n(95478),i=n(36274),s=n(7031),c=n(98394),l="table",d=o.forwardRef(function(e,t){var n=e.classes,s=e.className,d=e.component,u=void 0===d?l:d,f=e.padding,p=void 0===f?"normal":f,g=e.size,v=void 0===g?"medium":g,h=e.stickyHeader,m=void 0!==h&&h,y=(0,r.A)(e,["classes","className","component","padding","size","stickyHeader"]),w=o.useMemo(function(){return{padding:p,size:v,stickyHeader:m}},[p,v,m]);return o.createElement(c.A.Provider,{value:w},o.createElement(u,(0,a.A)({role:u===l?null:"table",ref:t,className:(0,i.A)(n.root,s,m&&n.stickyHeader)},y)))});const u=(0,s.A)(function(e){return{root:{display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":(0,a.A)({},e.typography.body2,{padding:e.spacing(2),color:e.palette.text.secondary,textAlign:"left",captionSide:"bottom"})},stickyHeader:{borderCollapse:"separate"}}},{name:"MuiTable"})(d)},75614:(e,t,n)=>{n.d(t,{A:()=>r});const r=n(95478).createContext()},83572:(e,t,n)=>{function r({name:e,attributes:t,resourceType:n}){return n?{type:"resource",name:e,attributes:t,resourceType:n}:{type:"basic",name:e,attributes:t}}n.d(t,{i:()=>r})},87421:(e,t,n)=>{n.d(t,{J:()=>Q});var r=n(97094);const a=(0,r.createApiRef)({id:"plugin.permission.api"});var o=(e=>(e.DENY="DENY",e.ALLOW="ALLOW",e.CONDITIONAL="CONDITIONAL",e))(o||{}),i=n(95478),s=n(58139);const c=()=>{},l=c(),d=Object,u=e=>e===l,f=e=>"function"==typeof e,p=(e,t)=>({...e,...t}),g=new WeakMap;let v=0;const h=e=>{const t=typeof e,n=e&&e.constructor,r=n==Date;let a,o;if(d(e)!==e||r||n==RegExp)a=r?e.toJSON():"symbol"==t?e.toString():"string"==t?JSON.stringify(e):""+e;else{if(a=g.get(e),a)return a;if(a=++v+"~",g.set(e,a),n==Array){for(a="@",o=0;o<e.length;o++)a+=h(e[o])+",";g.set(e,a)}if(n==d){a="#";const t=d.keys(e).sort();for(;!u(o=t.pop());)u(e[o])||(a+=o+":"+h(e[o])+",");g.set(e,a)}}return a},m=new WeakMap,y={},w={},b="undefined",A=typeof window!=b,E=typeof document!=b,x=(e,t)=>{const n=m.get(e);return[()=>!u(t)&&e.get(t)||y,r=>{if(!u(t)){const a=e.get(t);t in w||(w[t]=a),n[5](t,p(a,r),a||y)}},n[6],()=>!u(t)&&t in w?w[t]:!u(t)&&e.get(t)||y]};let R=!0;const[k,O]=A&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[c,c],S={isOnline:()=>R,isVisible:()=>{const e=E&&document.visibilityState;return u(e)||"hidden"!==e}},L={initFocus:e=>(E&&document.addEventListener("visibilitychange",e),k("focus",e),()=>{E&&document.removeEventListener("visibilitychange",e),O("focus",e)}),initReconnect:e=>{const t=()=>{R=!0,e()},n=()=>{R=!1};return k("online",t),k("offline",n),()=>{O("online",t),O("offline",n)}}},C=!i.useId,T=!A||"Deno"in window,_=T?i.useEffect:i.useLayoutEffect,N="undefined"!=typeof navigator&&navigator.connection,D=!T&&N&&(["slow-2g","2g"].includes(N.effectiveType)||N.saveData),V=e=>{if(f(e))try{e=e()}catch(t){e=""}const t=e;return[e="string"==typeof e?e:(Array.isArray(e)?e.length:e)?h(e):"",t]};let I=0;const M=()=>++I;async function P(...e){const[t,n,r,a]=e,o=p({populateCache:!0,throwOnError:!0},"boolean"==typeof a?{revalidate:a}:a||{});let i=o.populateCache;const s=o.rollbackOnError;let c=o.optimisticData;const d=o.throwOnError;if(f(n)){const e=n,r=[],a=t.keys();for(const n of a)!/^\$(inf|sub)\$/.test(n)&&e(t.get(n)._k)&&r.push(n);return Promise.all(r.map(g))}return g(n);async function g(n){const[a]=V(n);if(!a)return;const[p,g]=x(t,a),[v,h,y,w]=m.get(t),b=()=>{const e=v[a];return(f(o.revalidate)?o.revalidate(p().data,n):!1!==o.revalidate)&&(delete y[a],delete w[a],e&&e[0])?e[0](2).then(()=>p().data):p().data};if(e.length<3)return b();let A,E=r;const R=M();h[a]=[R,0];const k=!u(c),O=p(),S=O.data,L=O._c,C=u(L)?S:L;if(k&&(c=f(c)?c(C,S):c,g({data:c,_c:C})),f(E))try{E=E(C)}catch(e){A=e}if(E&&f(E.then)){if(E=await E.catch(e=>{A=e}),R!==h[a][0]){if(A)throw A;return E}A&&k&&(e=>"function"==typeof s?s(e):!1!==s)(A)&&(i=!0,g({data:C,_c:l}))}if(i&&!A)if(f(i)){const e=i(E,C);g({data:e,error:l,_c:l})}else g({data:E,error:l,_c:l});if(h[a][1]=M(),Promise.resolve(b()).then(()=>{g({_c:l})}),!A)return E;if(d)throw A}}const W=(e,t)=>{for(const n in e)e[n][0]&&e[n][0](t)},z=(e,t)=>{if(!m.has(e)){const n=p(L,t),r={},a=P.bind(l,e);let o=c;const i={},s=(e,t)=>{const n=i[e]||[];return i[e]=n,n.push(t),()=>n.splice(n.indexOf(t),1)},d=(t,n,r)=>{e.set(t,n);const a=i[t];if(a)for(const e of a)e(n,r)},u=()=>{if(!m.has(e)&&(m.set(e,[r,{},{},{},a,d,s]),!T)){const t=n.initFocus(setTimeout.bind(l,W.bind(l,r,0))),a=n.initReconnect(setTimeout.bind(l,W.bind(l,r,1)));o=()=>{t&&t(),a&&a(),m.delete(e)}}};return u(),[e,a,u,o]}return[e,m.get(e)[4]]},[H,$]=z(new Map),F=p({onLoadingSlow:c,onSuccess:c,onError:c,onErrorRetry:(e,t,n,r,a)=>{const o=n.errorRetryCount,i=a.retryCount,s=~~((Math.random()+.5)*(1<<(i<8?i:8)))*n.errorRetryInterval;!u(o)&&i>o||setTimeout(r,s,a)},onDiscarded:c,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:D?1e4:5e3,focusThrottleInterval:5e3,dedupingInterval:2e3,loadingTimeout:D?5e3:3e3,compare:(e,t)=>h(e)==h(t),isPaused:()=>!1,cache:H,mutate:$,fallback:{}},S),j=(e,t)=>{const n=p(e,t);if(t){const{use:r,fallback:a}=e,{use:o,fallback:i}=t;r&&o&&(n.use=r.concat(o)),a&&i&&(n.fallback=p(a,i))}return n},J=(0,i.createContext)({}),q=A&&window.__SWR_DEVTOOLS_USE__,X=q?window.__SWR_DEVTOOLS_USE__:[],Y=X.concat(e=>(t,n,r)=>e(t,n&&((...e)=>{const[r]=V(t),[,,,a]=m.get(H);if(r.startsWith("$inf$"))return n(...e);const o=a[r];return u(o)?n(...e):(delete a[r],o)}),r));q&&(window.__SWR_DEVTOOLS_REACT__=i);const B=i.use||(e=>{if("pending"===e.status)throw e;if("fulfilled"===e.status)return e.value;throw"rejected"===e.status?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)}),U={dedupe:!0},G=(d.defineProperty(e=>{const{value:t}=e,n=(0,i.useContext)(J),r=f(t),a=(0,i.useMemo)(()=>r?t(n):t,[r,n,t]),o=(0,i.useMemo)(()=>r?a:j(n,a),[r,n,a]),s=a&&a.provider,c=(0,i.useRef)(l);s&&!c.current&&(c.current=z(s(o.cache||H),a));const d=c.current;return d&&(o.cache=d[0],o.mutate=d[1]),_(()=>{if(d)return d[2]&&d[2](),d[3]},[]),(0,i.createElement)(J.Provider,p(e,{value:o}))},"defaultValue",{value:F}),K=(e,t,n)=>{const{cache:r,compare:a,suspense:o,fallbackData:c,revalidateOnMount:d,revalidateIfStale:g,refreshInterval:v,refreshWhenHidden:h,refreshWhenOffline:y,keepPreviousData:w}=n,[E,R,k,O]=m.get(r),[S,L]=V(e),N=(0,i.useRef)(!1),D=(0,i.useRef)(!1),I=(0,i.useRef)(S),W=(0,i.useRef)(t),z=(0,i.useRef)(n),H=()=>z.current,$=()=>H().isVisible()&&H().isOnline(),[F,j,J,q]=x(r,S),X=(0,i.useRef)({}).current,Y=u(c)?n.fallback[S]:c,G=(e,t)=>{for(const n in X){const r=n;if("data"===r){if(!a(e[r],t[r])){if(!u(e[r]))return!1;if(!a(oe,t[r]))return!1}}else if(t[r]!==e[r])return!1}return!0},K=(0,i.useMemo)(()=>{const e=!!S&&!!t&&(u(d)?!H().isPaused()&&!o&&(!!u(g)||g):d),n=t=>{const n=p(t);return delete n._k,e?{isValidating:!0,isLoading:!0,...n}:n},r=F(),a=q(),i=n(r),s=r===a?i:n(a);let c=i;return[()=>{const e=n(F());return G(e,c)?(c.data=e.data,c.isLoading=e.isLoading,c.isValidating=e.isValidating,c.error=e.error,c):(c=e,e)},()=>s]},[r,S]),Q=(0,s.useSyncExternalStore)((0,i.useCallback)(e=>J(S,(t,n)=>{G(n,t)||e()}),[r,S]),K[0],K[1]),Z=!N.current,ee=E[S]&&E[S].length>0,te=Q.data,ne=u(te)?Y:te,re=Q.error,ae=(0,i.useRef)(ne),oe=w?u(te)?ae.current:te:ne,ie=!(ee&&!u(re))&&(Z&&!u(d)?d:!H().isPaused()&&(o?!u(ne)&&g:u(ne)||g)),se=!!(S&&t&&Z&&ie),ce=u(Q.isValidating)?se:Q.isValidating,le=u(Q.isLoading)?se:Q.isLoading,de=(0,i.useCallback)(async e=>{const t=W.current;if(!S||!t||D.current||H().isPaused())return!1;let r,o,i=!0;const s=e||{},c=!k[S]||!s.dedupe,d=()=>C?!D.current&&S===I.current&&N.current:S===I.current,p={isValidating:!1,isLoading:!1},g=()=>{j(p)},v=()=>{const e=k[S];e&&e[1]===o&&delete k[S]},h={isValidating:!0};u(F().data)&&(h.isLoading=!0);try{if(c&&(j(h),n.loadingTimeout&&u(F().data)&&setTimeout(()=>{i&&d()&&H().onLoadingSlow(S,n)},n.loadingTimeout),k[S]=[t(L),M()]),[r,o]=k[S],r=await r,c&&setTimeout(v,n.dedupingInterval),!k[S]||k[S][1]!==o)return c&&d()&&H().onDiscarded(S),!1;p.error=l;const e=R[S];if(!u(e)&&(o<=e[0]||o<=e[1]||0===e[1]))return g(),c&&d()&&H().onDiscarded(S),!1;const s=F().data;p.data=a(s,r)?s:r,c&&d()&&H().onSuccess(r,S,n)}catch(e){v();const t=H(),{shouldRetryOnError:n}=t;t.isPaused()||(p.error=e,c&&d()&&(t.onError(e,S,t),(!0===n||f(n)&&n(e))&&(H().revalidateOnFocus&&H().revalidateOnReconnect&&!$()||t.onErrorRetry(e,S,t,e=>{const t=E[S];t&&t[0]&&t[0](3,e)},{retryCount:(s.retryCount||0)+1,dedupe:!0}))))}return i=!1,g(),!0},[S,r]),ue=(0,i.useCallback)((...e)=>P(r,I.current,...e),[]);if(_(()=>{W.current=t,z.current=n,u(te)||(ae.current=te)}),_(()=>{if(!S)return;const e=de.bind(l,U);let t=0;const n=((e,t,n)=>{const r=t[e]||(t[e]=[]);return r.push(n),()=>{const e=r.indexOf(n);e>=0&&(r[e]=r[r.length-1],r.pop())}})(S,E,(n,r={})=>{if(0==n){const n=Date.now();H().revalidateOnFocus&&n>t&&$()&&(t=n+H().focusThrottleInterval,e())}else if(1==n)H().revalidateOnReconnect&&$()&&e();else{if(2==n)return de();if(3==n)return de(r)}});return D.current=!1,I.current=S,N.current=!0,j({_k:L}),ie&&(u(ne)||T?e():(r=e,A&&typeof window.requestAnimationFrame!=b?window.requestAnimationFrame(r):setTimeout(r,1))),()=>{D.current=!0,n()};var r},[S]),_(()=>{let e;function t(){const t=f(v)?v(F().data):v;t&&-1!==e&&(e=setTimeout(n,t))}function n(){F().error||!h&&!H().isVisible()||!y&&!H().isOnline()?t():de(U).then(t)}return t(),()=>{e&&(clearTimeout(e),e=-1)}},[v,h,y,S]),(0,i.useDebugValue)(oe),o&&u(ne)&&S){if(!C&&T)throw new Error("Fallback data is required when using suspense in SSR.");W.current=t,z.current=n,D.current=!1;const e=O[S];if(!u(e)){const t=ue(e);B(t)}if(!u(re))throw re;{const e=de(U);u(oe)||(e.status="fulfilled",e.value=!0),B(e)}}return{mutate:ue,get data(){return X.data=!0,oe},get error(){return X.error=!0,re},get isValidating(){return X.isValidating=!0,ce},get isLoading(){return X.isLoading=!0,le}}},function(...e){const t=p(F,(0,i.useContext)(J)),[n,r,a]=(e=>f(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(null===e[1]?e[2]:e[1])||{}])(e),o=j(t,a);let s=K;const{use:c}=o,l=(c||[]).concat(Y);for(let e=l.length;e--;)s=l[e](s);return s(n,r||o.fetcher||null,o)});var K;function Q(e){const t=(0,r.useApi)(a),{data:n,error:i}=G(e,async e=>{if("resourceType"in e.permission&&!e.resourceRef)return o.DENY;const{result:n}=await t.authorize(e);return n});return i?{error:i,loading:!1,allowed:!1}:void 0===n?{loading:!0,allowed:!1}:{loading:!1,allowed:n===o.ALLOW}}},93296:(e,t,n)=>{var r=n(95478),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,s=r.useLayoutEffect,c=r.useDebugValue;function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(e){return!0}}var d="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,d=r[1];return s(function(){a.value=n,a.getSnapshot=t,l(a)&&d({inst:a})},[e,n,t]),i(function(){return l(a)&&d({inst:a}),e(function(){l(a)&&d({inst:a})})},[e]),c(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:d},98394:(e,t,n)=>{n.d(t,{A:()=>r});const r=n(95478).createContext()}}]);
3
- //# sourceMappingURL=2120.44884438.chunk.js.map