@kuadrant/kuadrant-backstage-plugin-frontend 0.0.2-dev-0b744dd → 0.0.2-dev-d2ba42b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ApiAccessCard/ApiAccessCard.esm.js +2 -1
- package/dist/components/ApiAccessCard/ApiAccessCard.esm.js.map +1 -1
- package/dist/components/ApiKeyApprovalPage/ApiKeyApprovalPage.esm.js +10 -0
- package/dist/components/ApiKeyApprovalPage/ApiKeyApprovalPage.esm.js.map +1 -0
- package/dist/components/ApiKeyApprovalPage/index.esm.js +2 -0
- package/dist/components/ApiKeyDetailPage/ApiKeyDetailPage.esm.js +4 -4
- package/dist/components/ApiKeyDetailPage/ApiKeyDetailPage.esm.js.map +1 -1
- package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js +28 -2
- package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js.map +1 -1
- package/dist/components/ApiProductDetails/ApiProductDetails.esm.js +13 -3
- package/dist/components/ApiProductDetails/ApiProductDetails.esm.js.map +1 -1
- package/dist/components/ApprovalQueueTable/ApprovalQueueTable.esm.js +2 -2
- package/dist/components/ApprovalQueueTable/ApprovalQueueTable.esm.js.map +1 -1
- package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +115 -8
- package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
- package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js +44 -2
- package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js.map +1 -1
- package/dist/components/EntityApiApprovalTab/EntityApiApprovalTab.esm.js +2 -2
- package/dist/components/EntityApiApprovalTab/EntityApiApprovalTab.esm.js.map +1 -1
- package/dist/components/KuadrantPage/ApiProductsPage.esm.js +53 -3
- package/dist/components/KuadrantPage/ApiProductsPage.esm.js.map +1 -1
- package/dist/components/MyApiKeysPage/MyApiKeysPage.esm.js +10 -0
- package/dist/components/MyApiKeysPage/MyApiKeysPage.esm.js.map +1 -0
- package/dist/components/MyApiKeysPage/index.esm.js +2 -0
- package/dist/components/MyApiKeysPage/index.esm.js.map +1 -0
- package/dist/components/MyApiKeysTable/MyApiKeysTable.esm.js +26 -5
- package/dist/components/MyApiKeysTable/MyApiKeysTable.esm.js.map +1 -1
- package/dist/components/SimpleRequestAccessDialog/SimpleRequestAccessDialog.esm.js +206 -0
- package/dist/components/SimpleRequestAccessDialog/SimpleRequestAccessDialog.esm.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.esm.js +1 -1
- package/dist/plugin.esm.js +11 -4
- package/dist/plugin.esm.js.map +1 -1
- package/dist/utils/styles.esm.js +44 -5
- package/dist/utils/styles.esm.js.map +1 -1
- package/dist-scalprum/internal.plugin-kuadrant.eacc31ca4d6c1340f8a8.js +2 -0
- package/dist-scalprum/{internal.plugin-kuadrant.114cbbe1d3ddb939d776.js.map → internal.plugin-kuadrant.eacc31ca4d6c1340f8a8.js.map} +1 -1
- package/dist-scalprum/plugin-manifest.json +3 -3
- package/dist-scalprum/static/2118.82433765.chunk.js +2 -0
- package/dist-scalprum/static/2118.82433765.chunk.js.map +1 -0
- package/dist-scalprum/static/2967.5bade048.chunk.js +2 -0
- package/dist-scalprum/static/2967.5bade048.chunk.js.map +1 -0
- package/dist-scalprum/static/3650.89dfc64c.chunk.js +2 -0
- package/dist-scalprum/static/3650.89dfc64c.chunk.js.map +1 -0
- package/dist-scalprum/static/369.2374941c.chunk.js +2 -0
- package/dist-scalprum/static/369.2374941c.chunk.js.map +1 -0
- package/dist-scalprum/static/3947.ff1c25cf.chunk.js +2 -0
- package/dist-scalprum/static/3947.ff1c25cf.chunk.js.map +1 -0
- package/dist-scalprum/static/3976.4cf18515.chunk.js +2 -0
- package/dist-scalprum/static/3976.4cf18515.chunk.js.map +1 -0
- package/dist-scalprum/static/4447.adbf663f.chunk.js +2 -0
- package/dist-scalprum/static/4447.adbf663f.chunk.js.map +1 -0
- package/dist-scalprum/static/5010.4ef96c87.chunk.js +3 -0
- package/dist-scalprum/static/5010.4ef96c87.chunk.js.map +1 -0
- package/dist-scalprum/static/5203.fce2a28f.chunk.js +2 -0
- package/dist-scalprum/static/5203.fce2a28f.chunk.js.map +1 -0
- package/dist-scalprum/static/6422.969d9b8c.chunk.js +2 -0
- package/dist-scalprum/static/6422.969d9b8c.chunk.js.map +1 -0
- package/dist-scalprum/static/6800.cd5c7bcb.chunk.js +2 -0
- package/dist-scalprum/static/6800.cd5c7bcb.chunk.js.map +1 -0
- package/dist-scalprum/static/7005.72759857.chunk.js +2 -0
- package/dist-scalprum/static/7005.72759857.chunk.js.map +1 -0
- package/dist-scalprum/static/7270.9473c969.chunk.js +2 -0
- package/dist-scalprum/static/7270.9473c969.chunk.js.map +1 -0
- package/dist-scalprum/static/7791.01371352.chunk.js +2 -0
- package/dist-scalprum/static/7791.01371352.chunk.js.map +1 -0
- package/dist-scalprum/static/{6763.d6cd937f.chunk.js → 8563.46f1a3e1.chunk.js} +3 -3
- package/dist-scalprum/static/8563.46f1a3e1.chunk.js.map +1 -0
- package/dist-scalprum/static/8789.30227526.chunk.js +2 -0
- package/dist-scalprum/static/8789.30227526.chunk.js.map +1 -0
- package/dist-scalprum/static/8804.63919453.chunk.js +2 -0
- package/dist-scalprum/static/8804.63919453.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-PluginRoot.8d8f0b09.chunk.js +2 -0
- package/dist-scalprum/static/exposed-PluginRoot.8d8f0b09.chunk.js.map +1 -0
- package/package.json +1 -1
- package/dist/components/ApiKeysPage/ApiKeysPage.esm.js +0 -43
- package/dist/components/ApiKeysPage/ApiKeysPage.esm.js.map +0 -1
- package/dist/components/ApiKeysPage/index.esm.js +0 -2
- package/dist-scalprum/internal.plugin-kuadrant.114cbbe1d3ddb939d776.js +0 -2
- package/dist-scalprum/static/2821.0829f14d.chunk.js +0 -2
- package/dist-scalprum/static/2821.0829f14d.chunk.js.map +0 -1
- package/dist-scalprum/static/2967.65c51af8.chunk.js +0 -2
- package/dist-scalprum/static/2967.65c51af8.chunk.js.map +0 -1
- package/dist-scalprum/static/3650.ee76eba9.chunk.js +0 -2
- package/dist-scalprum/static/3650.ee76eba9.chunk.js.map +0 -1
- package/dist-scalprum/static/3947.7458971d.chunk.js +0 -2
- package/dist-scalprum/static/3947.7458971d.chunk.js.map +0 -1
- package/dist-scalprum/static/3984.647ef00c.chunk.js +0 -2
- package/dist-scalprum/static/3984.647ef00c.chunk.js.map +0 -1
- package/dist-scalprum/static/4651.c85cecc4.chunk.js +0 -2
- package/dist-scalprum/static/4651.c85cecc4.chunk.js.map +0 -1
- package/dist-scalprum/static/4682.75f17114.chunk.js +0 -2
- package/dist-scalprum/static/4682.75f17114.chunk.js.map +0 -1
- package/dist-scalprum/static/5010.0cd6c959.chunk.js +0 -3
- package/dist-scalprum/static/5010.0cd6c959.chunk.js.map +0 -1
- package/dist-scalprum/static/5203.b654e8e0.chunk.js +0 -2
- package/dist-scalprum/static/5203.b654e8e0.chunk.js.map +0 -1
- package/dist-scalprum/static/5453.ecdee66d.chunk.js +0 -2
- package/dist-scalprum/static/5453.ecdee66d.chunk.js.map +0 -1
- package/dist-scalprum/static/6763.d6cd937f.chunk.js.map +0 -1
- package/dist-scalprum/static/6800.20f46859.chunk.js +0 -2
- package/dist-scalprum/static/6800.20f46859.chunk.js.map +0 -1
- package/dist-scalprum/static/6840.1653e6b0.chunk.js +0 -2
- package/dist-scalprum/static/6840.1653e6b0.chunk.js.map +0 -1
- package/dist-scalprum/static/7236.f3886d59.chunk.js +0 -2
- package/dist-scalprum/static/7236.f3886d59.chunk.js.map +0 -1
- package/dist-scalprum/static/7791.ac1ac509.chunk.js +0 -2
- package/dist-scalprum/static/7791.ac1ac509.chunk.js.map +0 -1
- package/dist-scalprum/static/8172.cbe1f2c4.chunk.js +0 -2
- package/dist-scalprum/static/8172.cbe1f2c4.chunk.js.map +0 -1
- package/dist-scalprum/static/8799.939d14f9.chunk.js +0 -2
- package/dist-scalprum/static/8799.939d14f9.chunk.js.map +0 -1
- package/dist-scalprum/static/exposed-PluginRoot.ed95fa78.chunk.js +0 -2
- package/dist-scalprum/static/exposed-PluginRoot.ed95fa78.chunk.js.map +0 -1
- /package/dist/components/{ApiKeysPage → ApiKeyApprovalPage}/index.esm.js.map +0 -0
- /package/dist-scalprum/static/{5010.0cd6c959.chunk.js.LICENSE.txt → 5010.4ef96c87.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{6763.d6cd937f.chunk.js.LICENSE.txt → 8563.46f1a3e1.chunk.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/3650.ee76eba9.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/./src/components/RequestAccessDialog/RequestAccessDialog.tsx","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Add.js","webpack://internal.plugin-kuadrant/./src/utils/codeSnippets.ts","webpack://internal.plugin-kuadrant/./src/components/ApiKeyManagementTab/ApiKeyManagementTab.tsx","webpack://internal.plugin-kuadrant/./node_modules/@backstage/plugin-catalog-react/dist/hooks/useEntity.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Info.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/MoreVert.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Warning.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/HourglassEmpty.js"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n TextField,\n Select,\n MenuItem,\n FormControl,\n InputLabel,\n Box,\n Typography,\n CircularProgress,\n} from '@material-ui/core';\nimport InfoIcon from '@material-ui/icons/Info';\nimport {\n useApi,\n configApiRef,\n fetchApiRef,\n alertApiRef,\n} from '@backstage/core-plugin-api';\nimport {handleFetchError} from \"../../utils/errors.ts\";\n\nexport interface Plan {\n tier: string;\n limits?: Record<string, number>;\n}\n\nexport interface RequestAccessDialogProps {\n open: boolean;\n onClose: () => void;\n onSuccess: () => void;\n apiProductName: string;\n namespace: string;\n userEmail: string;\n plans: Plan[];\n}\n\nexport const RequestAccessDialog = ({\n open,\n onClose,\n onSuccess,\n apiProductName,\n namespace,\n userEmail,\n plans,\n}: RequestAccessDialogProps) => {\n const config = useApi(configApiRef);\n const fetchApi = useApi(fetchApiRef);\n const alertApi = useApi(alertApiRef);\n const backendUrl = config.getString('backend.baseUrl');\n\n const [selectedPlan, setSelectedPlan] = useState('');\n const [useCase, setUseCase] = useState('');\n const [creating, setCreating] = useState(false);\n const [createError, setCreateError] = useState<string | null>(null);\n\n const handleClose = () => {\n setSelectedPlan('');\n setUseCase('');\n setCreateError(null);\n onClose();\n };\n\n const handleRequestAccess = async () => {\n if (!selectedPlan) return;\n\n setCreating(true);\n setCreateError(null);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/requests`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n apiProductName,\n namespace,\n planTier: selectedPlan,\n useCase: useCase.trim() || '',\n userEmail,\n }),\n },\n );\n\n if (!response.ok) {\n const err = await handleFetchError(response);\n throw new Error(`failed to create request: ${response.status}. ${err}`);\n }\n\n alertApi.post({\n message: 'API key requested successfully',\n severity: 'success',\n display: 'transient',\n });\n\n setSelectedPlan('');\n setUseCase('');\n onSuccess();\n } catch (err) {\n const errorMessage =\n err instanceof Error ? err.message : 'unknown error occurred';\n alertApi.post({\n message: `Failed to request API key: ${errorMessage}`,\n severity: 'error',\n display: 'transient',\n });\n setCreateError(errorMessage);\n } finally {\n setCreating(false);\n }\n };\n\n return (\n <Dialog open={open} onClose={handleClose} maxWidth=\"sm\" fullWidth>\n <DialogTitle>Request API Access</DialogTitle>\n <DialogContent>\n <Box\n mb={2}\n p={1.5}\n bgcolor=\"info.light\"\n borderRadius={1}\n display=\"flex\"\n alignItems=\"flex-start\"\n style={{ gap: 8 }}\n >\n <InfoIcon\n color=\"primary\"\n fontSize=\"small\"\n style={{ marginTop: 2 }}\n />\n <Typography variant=\"body2\">\n Your request will be reviewed by an API owner before access is\n granted.\n </Typography>\n </Box>\n {createError && (\n <Box\n mb={2}\n p={2}\n bgcolor=\"error.main\"\n color=\"error.contrastText\"\n borderRadius={1}\n >\n <Typography variant=\"body2\">{createError}</Typography>\n </Box>\n )}\n <FormControl\n fullWidth\n margin=\"normal\"\n disabled={creating}\n data-testid=\"tier-select-form\"\n >\n <InputLabel id=\"tier-select-label\">Select Tier</InputLabel>\n <Select\n labelId=\"tier-select-label\"\n data-testid=\"tier-select\"\n value={selectedPlan}\n onChange={(e) => setSelectedPlan(e.target.value as string)}\n disabled={creating}\n >\n {plans.map((plan: Plan) => {\n const limitDesc = Object.entries(plan.limits || {})\n .map(([key, val]) => `${val} per ${key}`)\n .join(', ');\n return (\n <MenuItem\n key={plan.tier}\n value={plan.tier}\n data-testid={`tier-option-${plan.tier}`}\n >\n {plan.tier} {limitDesc ? `(${limitDesc})` : ''}\n </MenuItem>\n );\n })}\n </Select>\n </FormControl>\n <TextField\n label=\"Use Case (optional)\"\n placeholder=\"Describe how you plan to use this API\"\n multiline\n rows={3}\n fullWidth\n margin=\"normal\"\n value={useCase}\n onChange={(e) => setUseCase(e.target.value)}\n helperText=\"Explain your intended use of this API for admin review\"\n disabled={creating}\n />\n </DialogContent>\n <DialogActions>\n <Button onClick={handleClose} disabled={creating}>\n Cancel\n </Button>\n <Button\n onClick={handleRequestAccess}\n color=\"primary\"\n variant=\"contained\"\n disabled={!selectedPlan || creating}\n startIcon={\n creating ? (\n <CircularProgress size={16} color=\"inherit\" />\n ) : undefined\n }\n >\n {creating ? 'Submitting...' : 'Submit Request'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","import { Credentials } from '../types/api-management';\n\nexport interface CodeSnippets {\n curl: string;\n nodejs: string;\n python: string;\n go: string;\n}\n\nexport function generateAuthCodeSnippets(\n credentials: Credentials | undefined,\n hostname: string,\n apiKey: string,\n): CodeSnippets {\n const baseUrl = `https://${hostname}/api/v1/endpoint`;\n\n if (!credentials) {\n return generateAuthorizationHeaderSnippets(baseUrl, apiKey, 'Bearer');\n }\n\n if (credentials.authorizationHeader) {\n const prefix = credentials!.authorizationHeader!.prefix || '';\n return generateAuthorizationHeaderSnippets(baseUrl, apiKey, prefix);\n }\n\n if (credentials.customHeader) {\n const headerName = credentials!.customHeader!.name;\n const prefix = credentials!.customHeader!.prefix || '';\n return generateCustomHeaderSnippets(baseUrl, apiKey, headerName, prefix);\n }\n\n\n if (credentials.queryString) {\n const paramName = credentials!.queryString!.name;\n return generateQueryStringSnippets(baseUrl, apiKey, paramName);\n }\n\n if (credentials.cookie) {\n const cookieName = credentials!.cookie!.name;\n return generateCookieSnippets(baseUrl, apiKey, cookieName);\n }\n // Default to Authorization Bearer if no authScheme specified\n return generateAuthorizationHeaderSnippets(baseUrl, apiKey, 'Bearer');\n}\n\nfunction generateAuthorizationHeaderSnippets(\n baseUrl: string,\n apiKey: string,\n prefix: string,\n): CodeSnippets {\n const authValue = prefix ? `${prefix} ${apiKey}` : apiKey;\n const prefixWithSpace = prefix ? `${prefix} ` : '';\n\n return {\n curl: `curl -X GET ${baseUrl} \\\\\n -H \"Authorization: ${authValue}\"`,\n\n nodejs: `const fetch = require('node-fetch');\n\nconst apiKey = '${apiKey}';\nconst endpoint = '${baseUrl}';\n\nfetch(endpoint, {\n method: 'GET',\n headers: {\n 'Authorization': '${prefixWithSpace}' + apiKey\n }\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Error:', error));`,\n\n python: `import requests\n\napi_key = '${apiKey}'\nendpoint = '${baseUrl}'\n\nheaders = {\n 'Authorization': '${prefixWithSpace}' + api_key\n}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())`,\n\n go: `package main\n\nimport (\n \"fmt\"\n \"net/http\"\n \"io\"\n)\n\nfunc main() {\n apiKey := \"${apiKey}\"\n endpoint := \"${baseUrl}\"\n\n client := &http.Client{}\n req, _ := http.NewRequest(\"GET\", endpoint, nil)\n req.Header.Add(\"Authorization\", \"${prefixWithSpace}\" + apiKey)\n\n resp, err := client.Do(req)\n if err != nil {\n fmt.Println(\"Error:\", err)\n return\n }\n defer resp.Body.Close()\n\n body, _ := io.ReadAll(resp.Body)\n fmt.Println(string(body))\n}`,\n };\n}\n\nfunction generateCustomHeaderSnippets(\n baseUrl: string,\n apiKey: string,\n headerName: string,\n prefix: string,\n): CodeSnippets {\n const headerValue = prefix ? `${prefix}${apiKey}` : apiKey;\n\n return {\n curl: `curl -X GET ${baseUrl} \\\\\n -H \"${headerName}: ${headerValue}\"`,\n\n nodejs: `const fetch = require('node-fetch');\n\nconst apiKey = '${apiKey}';\nconst endpoint = '${baseUrl}';\n\nfetch(endpoint, {\n method: 'GET',\n headers: {\n '${headerName}': '${prefix}' + apiKey\n }\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Error:', error));`,\n\n python: `import requests\n\napi_key = '${apiKey}'\nendpoint = '${baseUrl}'\n\nheaders = {\n '${headerName}': '${prefix}' + api_key\n}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())`,\n\n go: `package main\n\nimport (\n \"fmt\"\n \"net/http\"\n \"io\"\n)\n\nfunc main() {\n apiKey := \"${apiKey}\"\n endpoint := \"${baseUrl}\"\n\n client := &http.Client{}\n req, _ := http.NewRequest(\"GET\", endpoint, nil)\n req.Header.Add(\"${headerName}\", \"${prefix}\" + apiKey)\n\n resp, err := client.Do(req)\n if err != nil {\n fmt.Println(\"Error:\", err)\n return\n }\n defer resp.Body.Close()\n\n body, _ := io.ReadAll(resp.Body)\n fmt.Println(string(body))\n}`,\n };\n}\n\nfunction generateQueryStringSnippets(\n baseUrl: string,\n apiKey: string,\n paramName: string,\n): CodeSnippets {\n const urlWithParam = `${baseUrl}?${paramName}=${apiKey}`;\n\n return {\n curl: `curl -X GET \"${urlWithParam}\"`,\n\n nodejs: `const fetch = require('node-fetch');\n\nconst apiKey = '${apiKey}';\nconst endpoint = '${baseUrl}?${paramName}=' + apiKey;\n\nfetch(endpoint, {\n method: 'GET'\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Error:', error));`,\n\n python: `import requests\n\napi_key = '${apiKey}'\nendpoint = '${baseUrl}'\n\nparams = {\n '${paramName}': api_key\n}\n\nresponse = requests.get(endpoint, params=params)\nprint(response.json())`,\n\n go: `package main\n\nimport (\n \"fmt\"\n \"net/http\"\n \"io\"\n)\n\nfunc main() {\n apiKey := \"${apiKey}\"\n endpoint := \"${baseUrl}?${paramName}=\" + apiKey\n\n client := &http.Client{}\n req, _ := http.NewRequest(\"GET\", endpoint, nil)\n\n resp, err := client.Do(req)\n if err != nil {\n fmt.Println(\"Error:\", err)\n return\n }\n defer resp.Body.Close()\n\n body, _ := io.ReadAll(resp.Body)\n fmt.Println(string(body))\n}`,\n };\n}\n\nfunction generateCookieSnippets(\n baseUrl: string,\n apiKey: string,\n cookieName: string,\n): CodeSnippets {\n return {\n curl: `curl -X GET ${baseUrl} \\\\\n --cookie \"${cookieName}=${apiKey}\"`,\n\n nodejs: `const fetch = require('node-fetch');\n\nconst apiKey = '${apiKey}';\nconst endpoint = '${baseUrl}';\n\nfetch(endpoint, {\n method: 'GET',\n headers: {\n 'Cookie': '${cookieName}=' + apiKey\n }\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Error:', error));`,\n\n python: `import requests\n\napi_key = '${apiKey}'\nendpoint = '${baseUrl}'\n\ncookies = {\n '${cookieName}': api_key\n}\n\nresponse = requests.get(endpoint, cookies=cookies)\nprint(response.json())`,\n\n go: `package main\n\nimport (\n \"fmt\"\n \"net/http\"\n \"io\"\n)\n\nfunc main() {\n apiKey := \"${apiKey}\"\n endpoint := \"${baseUrl}\"\n\n client := &http.Client{}\n req, _ := http.NewRequest(\"GET\", endpoint, nil)\n req.AddCookie(&http.Cookie{\n Name: \"${cookieName}\",\n Value: apiKey,\n })\n\n resp, err := client.Do(req)\n if err != nil {\n fmt.Println(\"Error:\", err)\n return\n }\n defer resp.Body.Close()\n\n body, _ := io.ReadAll(resp.Body)\n fmt.Println(string(body))\n}`,\n };\n}\n","import React, { useState, useMemo } from \"react\";\nimport { useAsync } from \"react-use\";\nimport {\n Table,\n TableColumn,\n Progress,\n ResponseErrorPanel,\n CodeSnippet,\n} from \"@backstage/core-components\";\nimport {\n IconButton,\n Typography,\n Box,\n Chip,\n Grid,\n Button,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Tabs,\n Tab,\n Menu,\n MenuItem,\n Tooltip,\n CircularProgress,\n} from \"@material-ui/core\";\nimport {\n useApi,\n configApiRef,\n identityApiRef,\n fetchApiRef,\n alertApiRef,\n} from \"@backstage/core-plugin-api\";\nimport { useEntity } from \"@backstage/plugin-catalog-react\";\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\nimport HourglassEmptyIcon from \"@material-ui/icons/HourglassEmpty\";\nimport CancelIcon from \"@material-ui/icons/Cancel\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\nimport FileCopyIcon from \"@material-ui/icons/FileCopy\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport { APIKey } from \"../../types/api-management\";\nimport {\n kuadrantApiKeyCreatePermission,\n kuadrantApiKeyDeleteOwnPermission,\n kuadrantApiKeyDeleteAllPermission,\n kuadrantApiKeyUpdateOwnPermission,\n} from \"../../permissions\";\nimport {\n useKuadrantPermission,\n canDeleteResource,\n} from \"../../utils/permissions\";\nimport { EditAPIKeyDialog } from \"../EditAPIKeyDialog\";\nimport { ConfirmDeleteDialog } from \"../ConfirmDeleteDialog\";\nimport { generateAuthCodeSnippets } from \"../../utils/codeSnippets\";\nimport { RequestAccessDialog } from \"../RequestAccessDialog\";\nimport {handleFetchError} from \"../../utils/errors.ts\";\n\ninterface APIProduct {\n metadata: {\n name: string;\n namespace: string;\n };\n spec: {\n displayName?: string;\n };\n status?: {\n discoveredPlans?: Array<{\n tier: string;\n description?: string;\n limits?: any;\n }>;\n conditions?: Array<{\n type: string;\n status: \"True\" | \"False\" | \"Unknown\";\n reason?: string;\n message?: string;\n lastTransitionTime?: string;\n }>;\n };\n}\n\ninterface Plan {\n tier: string;\n limits: any;\n}\n\nexport interface ApiKeyManagementTabProps {\n namespace?: string;\n}\n\nexport const ApiKeyManagementTab = ({\n namespace: propNamespace,\n}: ApiKeyManagementTabProps) => {\n const { entity } = useEntity();\n const config = useApi(configApiRef);\n const identityApi = useApi(identityApiRef);\n const fetchApi = useApi(fetchApiRef);\n const alertApi = useApi(alertApiRef);\n const backendUrl = config.getString(\"backend.baseUrl\");\n const [visibleKeys, setVisibleKeys] = useState<Set<string>>(new Set());\n const [refresh, setRefresh] = useState(0);\n const [userId, setUserId] = useState<string>(\"\");\n const [userEmail, setUserEmail] = useState<string>(\"\");\n const [requestDialogOpen, setRequestDialogOpen] = useState(false);\n const [editDialogOpen, setEditDialogOpen] = useState(false);\n const [requestToEdit, setRequestToEdit] = useState<APIKey | null>(null);\n const [menuAnchor, setMenuAnchor] = useState<{\n top: number;\n left: number;\n } | null>(null);\n const [menuRequest, setMenuRequest] = useState<APIKey | null>(null);\n const [deleting, setDeleting] = useState<string | null>(null);\n const [optimisticallyDeleted, setOptimisticallyDeleted] = useState<\n Set<string>\n >(new Set());\n const [deleteDialogState, setDeleteDialogState] = useState<{\n open: boolean;\n request: APIKey | null;\n }>({ open: false, request: null });\n const [apiKeyValues, setApiKeyValues] = useState<Map<string, string>>(\n new Map(),\n );\n const [apiKeyLoading, setApiKeyLoading] = useState<Set<string>>(new Set());\n const [alreadyReadKeys, setAlreadyReadKeys] = useState<Set<string>>(\n new Set(),\n );\n const [showOnceWarningOpen, setShowOnceWarningOpen] = useState(false);\n const [pendingKeyReveal, setPendingKeyReveal] = useState<{\n namespace: string;\n name: string;\n } | null>(null);\n\n // get apiproduct name from entity annotation (set by entity provider)\n const apiProductName =\n entity.metadata.annotations?.[\"kuadrant.io/apiproduct\"] ||\n entity.metadata.name;\n const namespace =\n entity.metadata.annotations?.[\"kuadrant.io/namespace\"] ||\n propNamespace ||\n \"default\";\n\n useAsync(async () => {\n const identity = await identityApi.getBackstageIdentity();\n const profile = await identityApi.getProfileInfo();\n setUserId(identity.userEntityRef);\n setUserEmail(profile.email || \"\");\n }, [identityApi]);\n\n const {\n value: requests,\n loading: requestsLoading,\n error: requestsError,\n } = useAsync(async () => {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/requests/my?namespace=${namespace}`,\n );\n if (!response.ok) {\n const error = await handleFetchError(response);\n throw new Error(`failed to fetch requests. ${error}`);\n }\n const data = await response.json();\n // filter by apiproduct name, not httproute name\n return (data.items || []).filter(\n (r: APIKey) =>\n r.spec.apiProductRef.name === apiProductName &&\n r.metadata.namespace === namespace, // APIProducts and APIKeys (and its Secret) will be in the same NS\n );\n }, [apiProductName, namespace, refresh, fetchApi, backendUrl]);\n\n const {\n value: apiProduct,\n loading: plansLoading,\n error: plansError,\n } = useAsync(async () => {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apiproducts`,\n );\n if (!response.ok) {\n const error = await handleFetchError(response);\n throw new Error(`failed to fetch api products. ${error}`);\n }\n const data = await response.json();\n\n const product = data.items?.find(\n (p: APIProduct) =>\n p.metadata.namespace === namespace &&\n p.metadata.name === apiProductName,\n );\n\n return product;\n }, [namespace, apiProductName, fetchApi]);\n\n // check permissions with resource reference once we have the apiproduct\n const resourceRef = apiProduct\n ? `apiproduct:${apiProduct.metadata.namespace}/${apiProduct.metadata.name}`\n : undefined;\n\n const {\n allowed: canCreateRequest,\n loading: createRequestPermissionLoading,\n error: createRequestPermissionError,\n } = useKuadrantPermission(kuadrantApiKeyCreatePermission, resourceRef);\n\n const {\n allowed: canDeleteOwnKey,\n loading: deleteOwnPermissionLoading,\n error: deleteOwnPermissionError,\n } = useKuadrantPermission(kuadrantApiKeyDeleteOwnPermission);\n\n const {\n allowed: canDeleteAllKeys,\n loading: deleteAllPermissionLoading,\n error: deleteAllPermissionError,\n } = useKuadrantPermission(kuadrantApiKeyDeleteAllPermission);\n\n const {\n allowed: canUpdateRequest,\n loading: updateRequestPermissionLoading,\n error: updateRequestPermissionError,\n } = useKuadrantPermission(kuadrantApiKeyUpdateOwnPermission);\n\n const handleDeleteRequest = async (name: string) => {\n // optimistic update - remove from UI immediately\n setOptimisticallyDeleted((prev) => new Set(prev).add(name));\n setDeleting(name);\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/requests/${namespace}/${name}`,\n { method: \"DELETE\" },\n );\n if (!response.ok) {\n const error = await handleFetchError(response);\n throw new Error(error);\n }\n alertApi.post({\n message: \"API key deleted successfully\",\n severity: \"success\",\n display: \"transient\",\n });\n setRefresh((r) => r + 1);\n } catch (err) {\n const errorMessage =\n err instanceof Error ? err.message : \"unknown error occurred\";\n // rollback optimistic update on error\n setOptimisticallyDeleted((prev) => {\n const next = new Set(prev);\n next.delete(name);\n return next;\n });\n alertApi.post({\n message: `Failed to delete API key: ${errorMessage}`,\n severity: \"error\",\n display: \"transient\",\n });\n } finally {\n setDeleting(null);\n }\n };\n\n const fetchApiKeyFromSecret = async (\n requestNamespace: string,\n requestName: string,\n ) => {\n const key = `${requestNamespace}/${requestName}`;\n if (apiKeyLoading.has(key)) {\n return;\n }\n\n setApiKeyLoading((prev) => new Set(prev).add(key));\n try {\n const response = await fetchApi.fetch(\n `${backendUrl}/api/kuadrant/apikeys/${requestNamespace}/${requestName}/secret`,\n );\n if (response.ok) {\n const data = await response.json();\n setApiKeyValues((prev) => new Map(prev).set(key, data.apiKey));\n // after successful read, mark as already read (show-once behaviour)\n setAlreadyReadKeys((prev) => new Set(prev).add(key));\n } else if (response.status === 403) {\n // secret has already been read\n setAlreadyReadKeys((prev) => new Set(prev).add(key));\n alertApi.post({\n message:\n \"This API key has already been viewed and cannot be retrieved again.\",\n severity: \"warning\",\n display: \"transient\",\n });\n }\n } catch (err) {\n const errorMessage =\n err instanceof Error ? err.message : \"unknown error occurred\";\n alertApi.post({\n message: `Failed to fetch api key: ${errorMessage}`,\n severity: \"error\",\n display: \"transient\",\n });\n } finally {\n setApiKeyLoading((prev) => {\n const next = new Set(prev);\n next.delete(key);\n return next;\n });\n }\n };\n\n const clearApiKeyValue = (requestNamespace: string, requestName: string) => {\n const key = `${requestNamespace}/${requestName}`;\n setApiKeyValues((prev) => {\n const next = new Map(prev);\n next.delete(key);\n return next;\n });\n };\n\n const handleEditRequest = (request: APIKey) => {\n setRequestToEdit(request);\n setEditDialogOpen(true);\n };\n\n const handleEditSuccess = () => {\n setRefresh((r) => r + 1);\n setEditDialogOpen(false);\n alertApi.post({\n message: \"API key updated\",\n severity: \"success\",\n display: \"transient\",\n });\n setRequestToEdit(null);\n };\n\n const handleMenuClose = () => {\n setMenuAnchor(null);\n setMenuRequest(null);\n };\n\n const handleMenuEdit = () => {\n if (!menuRequest) return;\n handleEditRequest(menuRequest);\n handleMenuClose();\n };\n\n const handleMenuDeleteClick = () => {\n if (!menuRequest) return;\n const request = menuRequest;\n handleMenuClose();\n setDeleteDialogState({ open: true, request });\n };\n\n const handleDeleteConfirm = async () => {\n if (!deleteDialogState.request) return;\n await handleDeleteRequest(deleteDialogState.request.metadata.name);\n setDeleteDialogState({ open: false, request: null });\n };\n\n const handleDeleteCancel = () => {\n setDeleteDialogState({ open: false, request: null });\n };\n\n const toggleVisibility = (keyName: string) => {\n setVisibleKeys((prev) => {\n const newSet = new Set(prev);\n if (newSet.has(keyName)) {\n newSet.delete(keyName);\n } else {\n newSet.add(keyName);\n }\n return newSet;\n });\n };\n\n const detailPanelConfig = useMemo(\n () => [\n {\n render: (data: any) => {\n // backstage Table wraps the data in { rowData: actualData }\n const request = data.rowData as APIKey;\n if (!request?.metadata?.name) {\n return <Box />;\n }\n\n // pass already-revealed key from parent state (don't auto-fetch - that consumes show-once)\n const key = `${request.metadata.namespace}/${request.metadata.name}`;\n const revealedKey = apiKeyValues.get(key);\n return (\n <DetailPanelContent\n request={request}\n apiName={apiProductName}\n revealedApiKey={revealedKey}\n />\n );\n },\n },\n ],\n [apiProductName, apiKeyValues],\n );\n\n // separate component to isolate state\n const DetailPanelContent = ({\n request,\n apiName: api,\n revealedApiKey,\n }: {\n request: APIKey;\n apiName: string;\n revealedApiKey?: string;\n }) => {\n const [selectedLanguage, setSelectedLanguage] = useState(0);\n const hostname = request.status?.apiHostname || `${api}.apps.example.com`;\n\n // use revealed key if available, otherwise show placeholder\n const displayApiKey = revealedApiKey || \"<your-api-key>\";\n\n // Generate code snippets based on authScheme credentials\n const credentials = request.status?.authScheme?.credentials;\n const snippets = generateAuthCodeSnippets(credentials, hostname, displayApiKey);\n\n return (\n <Box\n p={3}\n bgcolor=\"background.default\"\n onClick={(e) => e.stopPropagation()}\n >\n {request.spec.useCase && (\n <Box mb={3}>\n <Typography variant=\"h6\" gutterBottom>\n Use Case\n </Typography>\n <Box\n p={2}\n bgcolor=\"background.paper\"\n borderRadius={1}\n border=\"1px solid rgba(0, 0, 0, 0.12)\"\n >\n <Typography\n variant=\"body2\"\n style={{\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n overflowWrap: \"break-word\",\n }}\n >\n {request.spec.useCase}\n </Typography>\n </Box>\n </Box>\n )}\n <Typography variant=\"h6\" gutterBottom>\n Usage Examples\n </Typography>\n <Typography variant=\"body2\" paragraph>\n Use these code examples to test the API with your{\" \"}\n {request.spec.planTier} tier key.\n </Typography>\n <Box onClick={(e) => e.stopPropagation()}>\n <Tabs\n value={selectedLanguage}\n onChange={(e, newValue) => {\n e.stopPropagation();\n setSelectedLanguage(newValue);\n }}\n indicatorColor=\"primary\"\n >\n <Tab label=\"cURL\" onClick={(e) => e.stopPropagation()} />\n <Tab label=\"Node.js\" onClick={(e) => e.stopPropagation()} />\n <Tab label=\"Python\" onClick={(e) => e.stopPropagation()} />\n <Tab label=\"Go\" onClick={(e) => e.stopPropagation()} />\n </Tabs>\n </Box>\n <Box mt={2}>\n {selectedLanguage === 0 && (\n <CodeSnippet\n text={snippets.curl}\n language=\"bash\"\n showCopyCodeButton\n />\n )}\n {selectedLanguage === 1 && (\n <CodeSnippet\n text={snippets.nodejs}\n language=\"javascript\"\n showCopyCodeButton\n />\n )}\n {selectedLanguage === 2 && (\n <CodeSnippet\n text={snippets.python}\n language=\"python\"\n showCopyCodeButton\n />\n )}\n {selectedLanguage === 3 && (\n <CodeSnippet\n text={snippets.go}\n language=\"go\"\n showCopyCodeButton\n />\n )}\n </Box>\n </Box>\n );\n };\n\n const loading =\n requestsLoading ||\n plansLoading ||\n createRequestPermissionLoading ||\n deleteOwnPermissionLoading ||\n deleteAllPermissionLoading ||\n updateRequestPermissionLoading;\n const error = requestsError || plansError;\n const permissionError =\n createRequestPermissionError ||\n deleteOwnPermissionError ||\n deleteAllPermissionError ||\n updateRequestPermissionError;\n\n if (loading) {\n return <Progress />;\n }\n\n if (error) {\n return <ResponseErrorPanel error={error} />;\n }\n\n if (permissionError) {\n const failedPermission = createRequestPermissionError\n ? \"kuadrant.apikey.create\"\n : deleteOwnPermissionError\n ? \"kuadrant.apikey.delete.own\"\n : deleteAllPermissionError\n ? \"kuadrant.apikey.delete.all\"\n : updateRequestPermissionError\n ? \"kuadrant.apikey.update.own\"\n : \"unknown\";\n return (\n <Box p={2}>\n <Typography color=\"error\">\n Unable to check permissions: {permissionError.message}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Permission: {failedPermission}\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Please try again or contact your administrator\n </Typography>\n </Box>\n );\n }\n\n const myRequests = ((requests || []) as APIKey[]).filter(\n (r) => !optimisticallyDeleted.has(r.metadata.name),\n );\n const plans = (apiProduct?.status?.discoveredPlans || []) as Plan[];\n\n const pendingRequests = myRequests.filter(\n (r) => !r.status?.phase || r.status.phase === \"Pending\",\n );\n const approvedRequests = myRequests.filter(\n (r) => r.status?.phase === \"Approved\",\n );\n const rejectedRequests = myRequests.filter(\n (r) => r.status?.phase === \"Rejected\",\n );\n\n const approvedColumns: TableColumn<APIKey>[] = [\n {\n title: \"Tier\",\n field: \"spec.planTier\",\n render: (row: APIKey) => (\n <Chip label={row.spec.planTier} color=\"primary\" size=\"small\" />\n ),\n },\n {\n title: \"Approved\",\n field: \"status.reviewedAt\",\n render: (row: APIKey) => (\n <Typography variant=\"body2\">\n {row.status?.reviewedAt\n ? new Date(row.status.reviewedAt).toLocaleDateString()\n : \"-\"}\n </Typography>\n ),\n },\n {\n title: \"API Key\",\n field: \"status.secretRef\",\n searchable: false,\n filtering: false,\n render: (row: APIKey) => {\n const key = `${row.metadata.namespace}/${row.metadata.name}`;\n const isVisible = visibleKeys.has(row.metadata.name);\n const isLoading = apiKeyLoading.has(key);\n const apiKeyValue = apiKeyValues.get(key);\n const hasSecretRef = row.status?.secretRef?.name;\n const canReadSecret = row.status?.canReadSecret !== false;\n const isAlreadyRead = alreadyReadKeys.has(key) || !canReadSecret;\n\n if (!hasSecretRef) {\n return (\n <Typography variant=\"body2\" color=\"textSecondary\">\n Awaiting secret...\n </Typography>\n );\n }\n\n // key has already been viewed and cannot be retrieved again\n if (isAlreadyRead && !apiKeyValue) {\n return (\n <Tooltip title=\"This API key has already been viewed and cannot be retrieved again\">\n <Box display=\"flex\" alignItems=\"center\">\n <Typography\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontFamily: \"monospace\", marginRight: 8 }}\n >\n Already viewed\n </Typography>\n <VisibilityOffIcon fontSize=\"small\" color=\"disabled\" />\n </Box>\n </Tooltip>\n );\n }\n\n const handleRevealClick = () => {\n if (isVisible) {\n // hiding - clear the value from memory\n clearApiKeyValue(row.metadata.namespace, row.metadata.name);\n toggleVisibility(row.metadata.name);\n } else if (!isAlreadyRead) {\n // show warning dialog before first reveal\n setPendingKeyReveal({\n namespace: row.metadata.namespace,\n name: row.metadata.name,\n });\n setShowOnceWarningOpen(true);\n }\n };\n\n const handleCopy = async () => {\n if (apiKeyValue) {\n await navigator.clipboard.writeText(apiKeyValue);\n alertApi.post({\n message: \"API key copied to clipboard\",\n severity: \"success\",\n display: \"transient\",\n });\n }\n };\n\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Typography\n variant=\"body2\"\n style={{\n fontFamily: \"monospace\",\n marginRight: 8,\n }}\n >\n {isLoading\n ? \"Loading...\"\n : isVisible && apiKeyValue\n ? apiKeyValue\n : \"••••••••••••••••\"}\n </Typography>\n {isVisible && apiKeyValue && (\n <Tooltip title=\"Copy to clipboard\">\n <IconButton size=\"small\" onClick={handleCopy}>\n <FileCopyIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip\n title={\n isVisible ? \"Hide API key\" : \"Reveal API key (one-time only)\"\n }\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={handleRevealClick}\n disabled={isLoading || (isAlreadyRead && !apiKeyValue)}\n >\n {isVisible ? <VisibilityOffIcon /> : <VisibilityIcon />}\n </IconButton>\n </span>\n </Tooltip>\n </Box>\n );\n },\n },\n {\n title: \"\",\n field: \"actions\",\n searchable: false,\n filtering: false,\n render: (row: APIKey) => {\n const isDeleting = deleting === row.metadata.name;\n if (isDeleting) {\n return <CircularProgress size={20} />;\n }\n const ownerId = row.spec.requestedBy.userId;\n const canDelete = canDeleteResource(\n ownerId,\n userId,\n canDeleteOwnKey,\n canDeleteAllKeys,\n );\n if (!canDelete) return null;\n return (\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n const rect = e.currentTarget.getBoundingClientRect();\n setMenuAnchor({ top: rect.bottom, left: rect.left });\n setMenuRequest(row);\n }}\n title=\"Actions\"\n aria-controls={menuAnchor ? \"actions-menu\" : undefined}\n aria-haspopup=\"true\"\n >\n <MoreVertIcon />\n </IconButton>\n );\n },\n },\n ];\n\n const requestColumns: TableColumn<APIKey>[] = [\n {\n title: \"Status\",\n field: \"status.phase\",\n render: (row: APIKey) => {\n const phase = row.status?.phase || \"Pending\";\n const isPending = phase === \"Pending\";\n return (\n <Chip\n label={phase}\n size=\"small\"\n icon={isPending ? <HourglassEmptyIcon /> : <CancelIcon />}\n color={isPending ? \"default\" : \"secondary\"}\n />\n );\n },\n },\n {\n title: \"Tier\",\n field: \"spec.planTier\",\n render: (row: APIKey) => (\n <Chip label={row.spec.planTier} color=\"primary\" size=\"small\" />\n ),\n },\n {\n title: \"Use Case\",\n field: \"spec.useCase\",\n render: (row: APIKey) => {\n if (!row.spec.useCase) {\n return <Typography variant=\"body2\">-</Typography>;\n }\n return (\n <Tooltip title={row.spec.useCase} placement=\"top\">\n <Typography\n variant=\"body2\"\n style={{\n maxWidth: \"200px\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n {row.spec.useCase}\n </Typography>\n </Tooltip>\n );\n },\n },\n {\n title: \"Requested\",\n field: \"metadata.creationTimestamp\",\n render: (row: APIKey) => (\n <Typography variant=\"body2\">\n {row.metadata.creationTimestamp\n ? new Date(row.metadata.creationTimestamp).toLocaleDateString()\n : \"-\"}\n </Typography>\n ),\n },\n {\n title: \"Reviewed\",\n field: \"status.reviewedAt\",\n render: (row: APIKey) => {\n if (!row.status?.reviewedAt)\n return <Typography variant=\"body2\">-</Typography>;\n return (\n <Typography variant=\"body2\">\n {new Date(row.status.reviewedAt).toLocaleDateString()}\n </Typography>\n );\n },\n },\n {\n title: \"\",\n field: \"actions\",\n searchable: false,\n filtering: false,\n render: (row: APIKey) => {\n const isDeleting = deleting === row.metadata.name;\n if (isDeleting) {\n return <CircularProgress size={20} />;\n }\n const isPending = !row.status?.phase || row.status.phase === \"Pending\";\n const ownerId = row.spec.requestedBy.userId;\n const canDelete = canDeleteResource(\n ownerId,\n userId,\n canDeleteOwnKey,\n canDeleteAllKeys,\n );\n const canEdit = canUpdateRequest && ownerId === userId;\n if (!isPending || (!canEdit && !canDelete)) return null;\n return (\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n const rect = e.currentTarget.getBoundingClientRect();\n setMenuAnchor({ top: rect.bottom, left: rect.left });\n setMenuRequest(row);\n }}\n title=\"Actions\"\n aria-controls={menuAnchor ? \"actions-menu\" : undefined}\n aria-haspopup=\"true\"\n >\n <MoreVertIcon />\n </IconButton>\n );\n },\n },\n ];\n\n // Filter columns for pending requests (no Reviewed or Reason)\n const pendingRequestColumns = requestColumns.filter(\n (col) => col.title !== \"Reviewed\" && col.title !== \"Reason\",\n );\n\n return (\n <Box p={2}>\n <Grid container spacing={3} direction=\"column\">\n {canCreateRequest && (\n <Grid item>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"flex-end\"\n mb={2}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n startIcon={<AddIcon />}\n onClick={() => setRequestDialogOpen(true)}\n disabled={plans.length === 0}\n data-testid=\"request-api-access-button\"\n data-plans-count={plans.length}\n >\n Request API Access\n </Button>\n {plans.length === 0 && (\n <Typography\n variant=\"caption\"\n color=\"textSecondary\"\n style={{ marginTop: 4 }}\n data-testid=\"no-plans-message\"\n >\n {!apiProduct\n ? \"API product not found\"\n : (() => {\n const readyCondition =\n apiProduct.status?.conditions?.find(\n (c: any) => c.type === \"Ready\",\n );\n const planCondition =\n apiProduct.status?.conditions?.find(\n (c: any) => c.type === \"PlanPolicyDiscovered\",\n );\n\n if (readyCondition?.status !== \"True\") {\n return `HTTPRoute not ready: ${readyCondition?.message || \"unknown\"}`;\n }\n if (planCondition?.status !== \"True\") {\n return `No plans discovered: ${planCondition?.message || \"no PlanPolicy found\"}`;\n }\n return \"No plans available\";\n })()}\n </Typography>\n )}\n </Box>\n </Grid>\n )}\n {pendingRequests.length === 0 &&\n rejectedRequests.length === 0 &&\n approvedRequests.length === 0 && (\n <Grid item>\n <Box p={3} textAlign=\"center\">\n <Typography variant=\"body1\" color=\"textSecondary\">\n No API keys yet. Request access to get started.\n </Typography>\n </Box>\n </Grid>\n )}\n {pendingRequests.length > 0 && (\n <Grid item>\n <Table\n title=\"Pending Requests\"\n options={{\n paging: pendingRequests.length > 5,\n pageSize: 20,\n search: true,\n filtering: true,\n debounceInterval: 300,\n toolbar: true,\n emptyRowsWhenPaging: false,\n }}\n columns={pendingRequestColumns}\n data={pendingRequests}\n />\n </Grid>\n )}\n {rejectedRequests.length > 0 && (\n <Grid item>\n <Table\n title=\"Rejected Requests\"\n options={{\n paging: rejectedRequests.length > 5,\n pageSize: 20,\n search: true,\n filtering: true,\n debounceInterval: 300,\n toolbar: true,\n emptyRowsWhenPaging: false,\n }}\n columns={requestColumns}\n data={rejectedRequests}\n />\n </Grid>\n )}\n {approvedRequests.length > 0 && (\n <Grid item>\n <Table\n key=\"api-keys-table\"\n title=\"API Keys\"\n options={{\n paging: approvedRequests.length > 5,\n pageSize: 20,\n search: true,\n filtering: true,\n debounceInterval: 300,\n toolbar: true,\n emptyRowsWhenPaging: false,\n }}\n columns={approvedColumns}\n data={approvedRequests}\n detailPanel={detailPanelConfig}\n />\n </Grid>\n )}\n </Grid>\n\n <RequestAccessDialog\n open={requestDialogOpen}\n onClose={() => setRequestDialogOpen(false)}\n onSuccess={() => {\n setRequestDialogOpen(false);\n setRefresh((r) => r + 1);\n }}\n apiProductName={apiProductName}\n namespace={namespace}\n userEmail={userEmail}\n plans={plans}\n />\n\n <Menu\n id=\"actions-menu\"\n open={Boolean(menuAnchor)}\n onClose={handleMenuClose}\n anchorReference=\"anchorPosition\"\n anchorPosition={menuAnchor || { top: 0, left: 0 }}\n >\n {menuRequest &&\n (() => {\n const isPending =\n !menuRequest.status?.phase ||\n menuRequest.status.phase === \"Pending\";\n const ownerId = menuRequest.spec.requestedBy.userId;\n const canEdit = canUpdateRequest && ownerId === userId && isPending;\n\n const items = [];\n if (canEdit) {\n items.push(\n <MenuItem key=\"edit\" onClick={handleMenuEdit}>\n Edit\n </MenuItem>,\n );\n }\n items.push(\n <MenuItem key=\"delete\" onClick={handleMenuDeleteClick}>\n Delete\n </MenuItem>,\n );\n return items;\n })()}\n </Menu>\n\n {requestToEdit && (\n <EditAPIKeyDialog\n open={editDialogOpen}\n onClose={() => {\n setEditDialogOpen(false);\n setRequestToEdit(null);\n }}\n onSuccess={handleEditSuccess}\n request={requestToEdit}\n availablePlans={plans}\n />\n )}\n\n <ConfirmDeleteDialog\n open={deleteDialogState.open}\n title=\"Delete Request\"\n description={`Are you sure you want to delete this ${deleteDialogState.request?.status?.phase === \"Approved\" ? \"API key\" : \"request\"}?`}\n deleting={deleting !== null}\n onConfirm={handleDeleteConfirm}\n onCancel={handleDeleteCancel}\n />\n\n <Dialog\n open={showOnceWarningOpen}\n onClose={() => {\n setShowOnceWarningOpen(false);\n setPendingKeyReveal(null);\n }}\n maxWidth=\"sm\"\n >\n <DialogTitle>\n <Box display=\"flex\" alignItems=\"center\">\n <WarningIcon color=\"primary\" style={{ marginRight: 8 }} />\n View API Key\n </Box>\n </DialogTitle>\n <DialogContent>\n <Typography variant=\"body1\" paragraph>\n This API key can only be viewed <strong>once</strong>. After you\n reveal it, you will not be able to retrieve it again.\n </Typography>\n <Typography variant=\"body2\" color=\"textSecondary\">\n Make sure to copy and store it securely before closing this view.\n </Typography>\n </DialogContent>\n <DialogActions>\n <Button\n onClick={() => {\n setShowOnceWarningOpen(false);\n setPendingKeyReveal(null);\n }}\n >\n Cancel\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n if (pendingKeyReveal) {\n fetchApiKeyFromSecret(\n pendingKeyReveal.namespace,\n pendingKeyReveal.name,\n );\n toggleVisibility(pendingKeyReveal.name);\n }\n setShowOnceWarningOpen(false);\n setPendingKeyReveal(null);\n }}\n >\n Reveal API Key\n </Button>\n </DialogActions>\n </Dialog>\n </Box>\n );\n};\n","import { jsx } from 'react/jsx-runtime';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\nimport { AnalyticsContext } from '@backstage/core-plugin-api';\nimport { createVersionedContext, useVersionedContext, createVersionedValueMap } from '@backstage/version-bridge';\n\nconst NewEntityContext = createVersionedContext(\n \"entity-context\"\n);\nconst AsyncEntityProvider = (props) => {\n const { children, entity, loading, error, refresh } = props;\n const value = { entity, loading, error, refresh };\n return /* @__PURE__ */ jsx(NewEntityContext.Provider, { value: createVersionedValueMap({ 1: value }), children: /* @__PURE__ */ jsx(\n AnalyticsContext,\n {\n attributes: {\n ...entity ? { entityRef: stringifyEntityRef(entity) } : void 0\n },\n children\n }\n ) });\n};\nconst EntityProvider = (props) => /* @__PURE__ */ jsx(\n AsyncEntityProvider,\n {\n entity: props.entity,\n loading: !Boolean(props.entity),\n error: void 0,\n refresh: void 0,\n children: props.children\n }\n);\nfunction useEntity() {\n const versionedHolder = useVersionedContext(\n \"entity-context\"\n );\n if (!versionedHolder) {\n throw new Error(\"Entity context is not available\");\n }\n const value = versionedHolder.atVersion(1);\n if (!value) {\n throw new Error(\"EntityContext v1 not available\");\n }\n if (!value.entity) {\n throw new Error(\n \"useEntity hook is being called outside of an EntityLayout where the entity has not been loaded. If this is intentional, please use useAsyncEntity instead.\"\n );\n }\n return { entity: value.entity };\n}\nfunction useAsyncEntity() {\n const versionedHolder = useVersionedContext(\n \"entity-context\"\n );\n if (!versionedHolder) {\n throw new Error(\"Entity context is not available\");\n }\n const value = versionedHolder.atVersion(1);\n if (!value) {\n throw new Error(\"EntityContext v1 not available\");\n }\n const { entity, loading, error, refresh } = value;\n return { entity, loading, error, refresh };\n}\n\nexport { AsyncEntityProvider, EntityProvider, useAsyncEntity, useEntity };\n//# sourceMappingURL=useEntity.esm.js.map\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n}), 'Info');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreVert');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5l-4-4V4h8v3.5l-4 4z\"\n}), 'HourglassEmpty');\n\nexports.default = _default;"],"names":["RequestAccessDialog","open","onClose","onSuccess","apiProductName","namespace","userEmail","plans","config","useApi","configApiRef","fetchApi","fetchApiRef","alertApi","alertApiRef","backendUrl","getString","selectedPlan","setSelectedPlan","useState","useCase","setUseCase","creating","setCreating","createError","setCreateError","handleClose","Dialog","maxWidth","fullWidth","DialogTitle","DialogContent","Box","mb","p","bgcolor","borderRadius","display","alignItems","style","gap","InfoIcon","color","fontSize","marginTop","Typography","variant","FormControl","margin","disabled","data-testid","InputLabel","id","Select","labelId","value","onChange","e","target","map","plan","limitDesc","Object","entries","limits","key","val","join","MenuItem","tier","TextField","label","placeholder","multiline","rows","helperText","DialogActions","Button","onClick","async","response","fetch","method","headers","body","JSON","stringify","planTier","trim","ok","err","handleFetchError","Error","status","post","message","severity","errorMessage","startIcon","CircularProgress","size","undefined","_interopRequireDefault","_interopRequireWildcard","exports","React","_default","default","createElement","d","generateAuthorizationHeaderSnippets","baseUrl","apiKey","prefix","prefixWithSpace","curl","nodejs","python","go","ApiKeyManagementTab","propNamespace","entity","apiProduct","deleteDialogState","useEntity","identityApi","identityApiRef","visibleKeys","setVisibleKeys","Set","refresh","setRefresh","userId","setUserId","setUserEmail","requestDialogOpen","setRequestDialogOpen","editDialogOpen","setEditDialogOpen","requestToEdit","setRequestToEdit","menuAnchor","setMenuAnchor","menuRequest","setMenuRequest","deleting","setDeleting","optimisticallyDeleted","setOptimisticallyDeleted","setDeleteDialogState","request","apiKeyValues","setApiKeyValues","Map","apiKeyLoading","setApiKeyLoading","alreadyReadKeys","setAlreadyReadKeys","showOnceWarningOpen","setShowOnceWarningOpen","pendingKeyReveal","setPendingKeyReveal","metadata","annotations","name","useAsync","identity","getBackstageIdentity","profile","getProfileInfo","userEntityRef","email","requests","loading","requestsLoading","error","requestsError","json","items","filter","r","spec","apiProductRef","plansLoading","plansError","data","find","resourceRef","allowed","canCreateRequest","createRequestPermissionLoading","createRequestPermissionError","useKuadrantPermission","kuadrantApiKeyCreatePermission","canDeleteOwnKey","deleteOwnPermissionLoading","deleteOwnPermissionError","kuadrantApiKeyDeleteOwnPermission","canDeleteAllKeys","deleteAllPermissionLoading","deleteAllPermissionError","kuadrantApiKeyDeleteAllPermission","canUpdateRequest","updateRequestPermissionLoading","updateRequestPermissionError","kuadrantApiKeyUpdateOwnPermission","handleMenuClose","handleMenuEdit","handleMenuDeleteClick","toggleVisibility","keyName","prev","newSet","has","delete","add","detailPanelConfig","useMemo","render","rowData","revealedKey","get","DetailPanelContent","apiName","revealedApiKey","api","selectedLanguage","setSelectedLanguage","hostname","apiHostname","displayApiKey","snippets","credentials","authorizationHeader","customHeader","headerName","generateCustomHeaderSnippets","queryString","paramName","generateQueryStringSnippets","cookie","cookieName","generateCookieSnippets","generateAuthCodeSnippets","authScheme","stopPropagation","gutterBottom","border","whiteSpace","wordBreak","overflowWrap","paragraph","Tabs","newValue","indicatorColor","Tab","mt","CodeSnippet","text","language","showCopyCodeButton","permissionError","Progress","ResponseErrorPanel","failedPermission","myRequests","discoveredPlans","pendingRequests","phase","approvedRequests","rejectedRequests","approvedColumns","title","field","row","Chip","reviewedAt","Date","toLocaleDateString","searchable","filtering","isVisible","isLoading","apiKeyValue","hasSecretRef","secretRef","canReadSecret","isAlreadyRead","Tooltip","fontFamily","marginRight","VisibilityOffIcon","IconButton","navigator","clipboard","writeText","FileCopyIcon","span","requestNamespace","requestName","next","clearApiKeyValue","VisibilityIcon","ownerId","requestedBy","canDeleteResource","rect","currentTarget","getBoundingClientRect","top","bottom","left","aria-controls","aria-haspopup","MoreVertIcon","requestColumns","isPending","icon","HourglassEmptyIcon","CancelIcon","placement","overflow","textOverflow","creationTimestamp","canDelete","pendingRequestColumns","col","Grid","container","spacing","direction","item","flexDirection","AddIcon","length","data-plans-count","readyCondition","conditions","c","type","planCondition","textAlign","Table","options","paging","pageSize","search","debounceInterval","toolbar","emptyRowsWhenPaging","columns","detailPanel","Menu","Boolean","anchorReference","anchorPosition","push","EditAPIKeyDialog","availablePlans","ConfirmDeleteDialog","description","onConfirm","handleDeleteRequest","onCancel","WarningIcon","strong","set","fetchApiKeyFromSecret","versionedHolder","useVersionedContext","atVersion","createVersionedContext"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[3947],{71255:(e,a,i)=>{i.d(a,{n:()=>d});var n=i(31085),s=(i(95478),i(82300)),t=i(37725),l=i(96040),c=i(10394),r=i(42899),o=i(72501);const d=({issuerUrl:e,tokenEndpoint:a})=>{const i=a||e;return(0,n.jsx)(l.n,{title:"OIDC Provider Discovery",children:(0,n.jsx)(c.A,{p:2,children:(0,n.jsxs)(r.A,{container:!0,spacing:2,children:[(0,n.jsx)(r.A,{item:!0,xs:12,children:(0,n.jsx)(o.A,{variant:"body2",children:"This API uses OIDC authentication. Obtain a token from the identity provider below."})}),(0,n.jsx)(r.A,{item:!0,xs:12,children:(0,n.jsxs)(o.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"Identity Provider: "}),(0,n.jsx)(t.N_,{to:e,target:"_blank",children:e})]})}),a&&(0,n.jsx)(r.A,{item:!0,xs:12,children:(0,n.jsxs)(o.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"Token Endpoint: "}),(0,n.jsx)(t.N_,{to:a,target:"_blank",children:a})]})}),(0,n.jsx)(r.A,{item:!0,xs:12,children:(0,n.jsx)(s.z,{text:`# Example (Client Credentials Flow):\ncurl -X POST \\\n -d "grant_type=client_credentials" \\\n -d "client_id=YOUR_CLIENT_ID" \\\n -d "client_secret=YOUR_CLIENT_SECRET" \\\n ${i}`,language:"bash",showCopyCodeButton:!0})})]})})})}},89509:(e,a,i)=>{i.d(a,{O:()=>u});var n=i(31085),s=(i(95478),i(10394)),t=i(72501),l=i(67720),c=i(61009),r=i(47625),o=i(9719),d=i(54801),m=i(13677),p=i(42899),h=i(58837),x=i(37725);const j=(0,h.A)(e=>({label:{fontWeight:600,color:e.palette.text.secondary,marginBottom:e.spacing(.5),fontSize:"0.75rem",textTransform:"uppercase"},tierChip:{marginRight:e.spacing(.5),marginBottom:e.spacing(.5)},statusChipPublished:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},statusChipDraft:{backgroundColor:e.palette.grey[600],color:e.palette.common.white},infoGrid:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(180px, 1fr))",gap:e.spacing(3),marginBottom:e.spacing(3)},infoItem:{minWidth:0},apiLink:{color:e.palette.primary.main,textDecoration:"none","&:hover":{textDecoration:"underline"}}})),u=({product:e,showStatus:a=!0,showCatalogLink:i=!0})=>{var h,u,v,A,b,g,N,y,f,C,I,_,k,P,D,R,S,T;const L=j(),w=(null===(h=e.spec)||void 0===h?void 0:h.publishStatus)||"Draft",O="Published"===w,U=(null===(u=e.status)||void 0===u?void 0:u.discoveredPlans)||[],E=(null===(A=e.status)||void 0===A||null===(v=A.discoveredAuthScheme)||void 0===v?void 0:v.authentication)||{},z=Object.values(E).some(e=>e.hasOwnProperty("apiKey"));return(0,n.jsxs)(n.Fragment,{children:[(null===(b=e.spec)||void 0===b?void 0:b.description)&&(0,n.jsxs)(s.A,{mb:3,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"Description"}),(0,n.jsx)(t.A,{variant:"body1",children:e.spec.description})]}),(0,n.jsxs)(s.A,{className:L.infoGrid,children:[a&&(0,n.jsxs)(s.A,{className:L.infoItem,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"Status"}),(0,n.jsx)(s.A,{children:(0,n.jsx)(l.A,{label:w,size:"small",className:O?L.statusChipPublished:L.statusChipDraft,"data-testid":"publish-status-chip"})})]}),(0,n.jsxs)(s.A,{className:L.infoItem,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"Version"}),(0,n.jsx)(t.A,{variant:"body2",children:(null===(g=e.spec)||void 0===g?void 0:g.version)||"v1"})]}),(0,n.jsxs)(s.A,{className:L.infoItem,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"Namespace"}),(0,n.jsx)(t.A,{variant:"body2",children:e.metadata.namespace})]}),z&&(0,n.jsxs)(s.A,{className:L.infoItem,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"API Key Approval"}),(0,n.jsx)(t.A,{variant:"body2",children:"automatic"===(null===(N=e.spec)||void 0===N?void 0:N.approvalMode)?"Automatic":"Need manual approval"})]}),(null===(y=e.spec)||void 0===y?void 0:y.tags)&&e.spec.tags.length>0&&(0,n.jsxs)(s.A,{className:L.infoItem,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"Tags"}),(0,n.jsx)(s.A,{children:e.spec.tags.map(e=>(0,n.jsx)(l.A,{label:e,size:"small",variant:"outlined",className:L.tierChip},e))})]})]}),(0,n.jsxs)(s.A,{className:L.infoGrid,children:[(0,n.jsxs)(s.A,{className:L.infoItem,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"API"}),(0,n.jsx)("br",{}),i?(0,n.jsx)(x.N_,{to:`/catalog/default/api/${e.metadata.name}`,className:L.apiLink,children:e.metadata.name}):(0,n.jsx)(t.A,{variant:"body2",children:e.metadata.name})]}),(0,n.jsxs)(s.A,{className:L.infoItem,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"Route"}),(0,n.jsx)(t.A,{variant:"body2",children:(null===(C=e.spec)||void 0===C||null===(f=C.targetRef)||void 0===f?void 0:f.name)||"-"})]})]}),U.length>0&&(0,n.jsxs)(s.A,{mb:3,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"Available Tiers"}),(0,n.jsxs)(c.A,{size:"small",children:[(0,n.jsx)(r.A,{children:(0,n.jsxs)(o.A,{children:[(0,n.jsx)(d.A,{children:"Tier"}),(0,n.jsx)(d.A,{children:"Rate Limits"})]})}),(0,n.jsx)(m.A,{children:U.map(e=>(0,n.jsxs)(o.A,{children:[(0,n.jsx)(d.A,{children:(0,n.jsx)(l.A,{label:e.tier,size:"small"})}),(0,n.jsx)(d.A,{children:e.limits&&Object.entries(e.limits).map(([e,a])=>(0,n.jsxs)(t.A,{variant:"body2",children:[String(a)," per ",e]},e))})]},e.tier))})]})]}),(0,n.jsxs)(p.A,{container:!0,spacing:3,children:[((null===(_=e.spec)||void 0===_||null===(I=_.contact)||void 0===I?void 0:I.email)||(null===(P=e.spec)||void 0===P||null===(k=P.contact)||void 0===k?void 0:k.team))&&(0,n.jsxs)(p.A,{item:!0,xs:12,md:6,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"Contact Information"}),(0,n.jsxs)(s.A,{mt:1,children:[e.spec.contact.team&&(0,n.jsxs)(t.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"Team:"})," ",e.spec.contact.team]}),e.spec.contact.email&&(0,n.jsxs)(t.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"Email:"})," ",(0,n.jsx)(x.N_,{to:`mailto:${e.spec.contact.email}`,children:e.spec.contact.email})]})]})]}),((null===(R=e.spec)||void 0===R||null===(D=R.documentation)||void 0===D?void 0:D.docsURL)||(null===(T=e.spec)||void 0===T||null===(S=T.documentation)||void 0===S?void 0:S.openAPISpecURL))&&(0,n.jsxs)(p.A,{item:!0,xs:12,md:6,children:[(0,n.jsx)(t.A,{variant:"caption",className:L.label,children:"Documentation"}),(0,n.jsxs)(s.A,{mt:1,children:[e.spec.documentation.docsURL&&(0,n.jsxs)(t.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"Docs:"})," ",(0,n.jsx)(x.N_,{to:e.spec.documentation.docsURL,target:"_blank",children:"View Documentation"})]}),e.spec.documentation.openAPISpecURL&&(0,n.jsxs)(t.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"OpenAPI Spec:"})," ",(0,n.jsx)(x.N_,{to:e.spec.documentation.openAPISpecURL,target:"_blank",children:"View Spec"})]})]})]})]})]})}}}]);
|
|
2
|
-
//# sourceMappingURL=3947.7458971d.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/3947.7458971d.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/./src/components/OidcProviderCard/OidcProviderCard.tsx","webpack://internal.plugin-kuadrant/./src/components/ApiProductDetails/ApiProductDetails.tsx"],"sourcesContent":["import React from 'react';\nimport { InfoCard, CodeSnippet, Link } from '@backstage/core-components';\nimport { Typography, Box, Grid } from '@material-ui/core';\n\ninterface OidcProviderCardProps {\n issuerUrl: string;\n tokenEndpoint?: string;\n}\n\nexport const OidcProviderCard = ({ issuerUrl, tokenEndpoint }: OidcProviderCardProps) => {\n const effectiveTokenEndpoint = tokenEndpoint || issuerUrl;\n\n return (\n <InfoCard title=\"OIDC Provider Discovery\">\n <Box p={2}>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <Typography variant=\"body2\">\n This API uses OIDC authentication. Obtain a token from the identity provider below.\n </Typography>\n </Grid>\n <Grid item xs={12}>\n <Typography variant=\"body2\">\n <strong>Identity Provider: </strong>\n <Link to={issuerUrl} target=\"_blank\">\n {issuerUrl}\n </Link>\n </Typography>\n </Grid>\n {tokenEndpoint && (\n <Grid item xs={12}>\n <Typography variant=\"body2\">\n <strong>Token Endpoint: </strong>\n <Link to={tokenEndpoint} target=\"_blank\">\n {tokenEndpoint}\n </Link>\n </Typography>\n </Grid>\n )}\n <Grid item xs={12}>\n <CodeSnippet\n text={`# Example (Client Credentials Flow):\ncurl -X POST \\\\\n -d \"grant_type=client_credentials\" \\\\\n -d \"client_id=YOUR_CLIENT_ID\" \\\\\n -d \"client_secret=YOUR_CLIENT_SECRET\" \\\\\n ${effectiveTokenEndpoint}`}\n language=\"bash\"\n showCopyCodeButton\n />\n </Grid>\n </Grid>\n </Box>\n </InfoCard>\n );\n};\n","import React from \"react\";\nimport {\n Box,\n Typography,\n Chip,\n makeStyles,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Grid,\n} from \"@material-ui/core\";\nimport { Link } from \"@backstage/core-components\";\nimport { APIProduct, Plan } from \"../../types/api-management\";\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n fontWeight: 600,\n color: theme.palette.text.secondary,\n marginBottom: theme.spacing(0.5),\n fontSize: \"0.75rem\",\n textTransform: \"uppercase\",\n },\n tierChip: {\n marginRight: theme.spacing(0.5),\n marginBottom: theme.spacing(0.5),\n },\n statusChipPublished: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n },\n statusChipDraft: {\n backgroundColor: theme.palette.grey[600],\n color: theme.palette.common.white,\n },\n infoGrid: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(180px, 1fr))\",\n gap: theme.spacing(3),\n marginBottom: theme.spacing(3),\n },\n infoItem: {\n minWidth: 0,\n },\n apiLink: {\n color: theme.palette.primary.main,\n textDecoration: \"none\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n}));\n\ninterface ApiProductDetailsProps {\n product: APIProduct;\n showStatus?: boolean;\n showCatalogLink?: boolean;\n}\n\nexport const ApiProductDetails = ({\n product,\n showStatus = true,\n showCatalogLink = true,\n}: ApiProductDetailsProps) => {\n const classes = useStyles();\n\n const publishStatus = product.spec?.publishStatus || \"Draft\";\n const isPublished = publishStatus === \"Published\";\n const tiers = product.status?.discoveredPlans || [];\n\n // check if product has API key auth\n const authSchemes = product.status?.discoveredAuthScheme?.authentication || {};\n const schemeObjects = Object.values(authSchemes);\n const hasApiKey = schemeObjects.some(\n (scheme: any) => scheme.hasOwnProperty(\"apiKey\"),\n );\n\n return (\n <>\n {product.spec?.description && (\n <Box mb={3}>\n <Typography variant=\"caption\" className={classes.label}>\n Description\n </Typography>\n <Typography variant=\"body1\">{product.spec.description}</Typography>\n </Box>\n )}\n\n <Box className={classes.infoGrid}>\n {showStatus && (\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Status\n </Typography>\n <Box>\n <Chip\n label={publishStatus}\n size=\"small\"\n className={\n isPublished\n ? classes.statusChipPublished\n : classes.statusChipDraft\n }\n data-testid=\"publish-status-chip\"\n />\n </Box>\n </Box>\n )}\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Version\n </Typography>\n <Typography variant=\"body2\">\n {product.spec?.version || \"v1\"}\n </Typography>\n </Box>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Namespace\n </Typography>\n <Typography variant=\"body2\">{product.metadata.namespace}</Typography>\n </Box>\n {hasApiKey && (\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n API Key Approval\n </Typography>\n <Typography variant=\"body2\">\n {product.spec?.approvalMode === \"automatic\"\n ? \"Automatic\"\n : \"Need manual approval\"}\n </Typography>\n </Box>\n )}\n {product.spec?.tags && product.spec.tags.length > 0 && (\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Tags\n </Typography>\n <Box>\n {product.spec.tags.map((tag) => (\n <Chip\n key={tag}\n label={tag}\n size=\"small\"\n variant=\"outlined\"\n className={classes.tierChip}\n />\n ))}\n </Box>\n </Box>\n )}\n </Box>\n\n <Box className={classes.infoGrid}>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n API\n </Typography>\n <br />\n {showCatalogLink ? (\n <Link\n to={`/catalog/default/api/${product.metadata.name}`}\n className={classes.apiLink}\n >\n {product.metadata.name}\n </Link>\n ) : (\n <Typography variant=\"body2\">{product.metadata.name}</Typography>\n )}\n </Box>\n <Box className={classes.infoItem}>\n <Typography variant=\"caption\" className={classes.label}>\n Route\n </Typography>\n <Typography variant=\"body2\">\n {product.spec?.targetRef?.name || \"-\"}\n </Typography>\n </Box>\n </Box>\n\n {tiers.length > 0 && (\n <Box mb={3}>\n <Typography variant=\"caption\" className={classes.label}>\n Available Tiers\n </Typography>\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell>Tier</TableCell>\n <TableCell>Rate Limits</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {tiers.map((plan: Plan) => (\n <TableRow key={plan.tier}>\n <TableCell>\n <Chip label={plan.tier} size=\"small\" />\n </TableCell>\n <TableCell>\n {plan.limits &&\n Object.entries(plan.limits).map(([key, value]) => (\n <Typography key={key} variant=\"body2\">\n {String(value)} per {key}\n </Typography>\n ))}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </Box>\n )}\n\n <Grid container spacing={3}>\n {(product.spec?.contact?.email || product.spec?.contact?.team) && (\n <Grid item xs={12} md={6}>\n <Typography variant=\"caption\" className={classes.label}>\n Contact Information\n </Typography>\n <Box mt={1}>\n {product.spec.contact.team && (\n <Typography variant=\"body2\">\n <strong>Team:</strong> {product.spec.contact.team}\n </Typography>\n )}\n {product.spec.contact.email && (\n <Typography variant=\"body2\">\n <strong>Email:</strong>{\" \"}\n <Link to={`mailto:${product.spec.contact.email}`}>\n {product.spec.contact.email}\n </Link>\n </Typography>\n )}\n </Box>\n </Grid>\n )}\n\n {(product.spec?.documentation?.docsURL ||\n product.spec?.documentation?.openAPISpecURL) && (\n <Grid item xs={12} md={6}>\n <Typography variant=\"caption\" className={classes.label}>\n Documentation\n </Typography>\n <Box mt={1}>\n {product.spec.documentation.docsURL && (\n <Typography variant=\"body2\">\n <strong>Docs:</strong>{\" \"}\n <Link to={product.spec.documentation.docsURL} target=\"_blank\">\n View Documentation\n </Link>\n </Typography>\n )}\n {product.spec.documentation.openAPISpecURL && (\n <Typography variant=\"body2\">\n <strong>OpenAPI Spec:</strong>{\" \"}\n <Link\n to={product.spec.documentation.openAPISpecURL}\n target=\"_blank\"\n >\n View Spec\n </Link>\n </Typography>\n )}\n </Box>\n </Grid>\n )}\n </Grid>\n </>\n );\n};\n"],"names":["OidcProviderCard","issuerUrl","tokenEndpoint","effectiveTokenEndpoint","InfoCard","title","Box","p","Grid","container","spacing","item","xs","Typography","variant","strong","Link","to","target","CodeSnippet","text","language","showCopyCodeButton","useStyles","makeStyles","theme","label","fontWeight","color","palette","secondary","marginBottom","fontSize","textTransform","tierChip","marginRight","statusChipPublished","backgroundColor","primary","main","contrastText","statusChipDraft","grey","common","white","infoGrid","display","gridTemplateColumns","gap","infoItem","minWidth","apiLink","textDecoration","ApiProductDetails","product","showStatus","showCatalogLink","classes","publishStatus","spec","isPublished","tiers","status","discoveredPlans","authSchemes","discoveredAuthScheme","authentication","hasApiKey","Object","values","some","scheme","hasOwnProperty","description","mb","className","Chip","size","data-testid","version","metadata","namespace","approvalMode","tags","length","map","tag","br","name","targetRef","Table","TableHead","TableRow","TableCell","TableBody","plan","tier","limits","entries","key","value","String","contact","email","team","md","mt","documentation","docsURL","openAPISpecURL"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[3984],{5030:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(85608),a=n(95478),o=r.__importDefault(n(10009));t.default=function(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var i=a.useRef(0),l=o.default(),c=a.useState(n),s=c[0],u=c[1],d=a.useCallback(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var a=++i.current;return s.loading||u(function(e){return r.__assign(r.__assign({},e),{loading:!0})}),e.apply(void 0,t).then(function(e){return l()&&a===i.current&&u({value:e,loading:!1}),e},function(e){return l()&&a===i.current&&u({error:e,loading:!1}),e})},t);return[s,d]}},10009:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(95478);t.default=function(){var e=r.useRef(!1),t=r.useCallback(function(){return e.current},[]);return r.useEffect(function(){return e.current=!0,function(){e.current=!1}},[]),t}},18466:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var o=a(n(95478)),i=(0,r(n(74044)).default)(o.createElement("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");t.A=i},21702:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var o=a(n(95478)),i=(0,r(n(74044)).default)(o.createElement("path",{d:"M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),"VpnKey");t.A=i},23164:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var o=a(n(95478)),i=(0,r(n(74044)).default)(o.createElement("path",{d:"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess");t.A=i},27799:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var o=a(n(95478)),i=(0,r(n(74044)).default)(o.createElement("path",{d:"M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2zm-3 6.42l3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4 4-3.99z"}),"BrokenImage");t.A=i},39590:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var o=a(n(95478)),i=(0,r(n(74044)).default)(o.createElement("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");t.A=i},45210:(e,t,n)=>{n.d(t,{Y:()=>L});var r=n(31085),a=n(22097),o=n(10394),i=n(64947),l=n(93453),c=n(29365),s=n(46423),u=n(5951),d=n(26343),p=n(28233),m=n(55197),f=n(37976),g=n(72501),h=n(5893),v=n(95478),A=(n(45250),n(49634),n(21006)),b=n(75501);const x=()=>{const{t:e}=(0,b.useTranslationRef)(A.O);return{url:"https://github.com/backstage/backstage/issues",items:[{title:e("supportConfig.default.title"),icon:"warning",links:[{title:e("supportConfig.default.linkTitle"),url:"https://github.com/backstage/backstage/blob/master/app-config.yaml"}]}]}};var y=n(27799);function k(e){const{id:t,Fallback:n=y.A,...o}=e,i=(0,a.useApp)().getSystemIcon(t)??n;return(0,r.jsx)(i,{...o})}function C(e){return(0,r.jsx)(k,{id:"help",...e})}var z=n(37725);const E=(0,f.makeStyles)({popoverList:{minWidth:260,maxWidth:400},menuItem:{whiteSpace:"normal"}},{name:"BackstageSupportButton"}),M=({icon:e})=>{const t=(0,a.useApp)(),n=e?t.getSystemIcon(e)??C:C;return(0,r.jsx)(n,{})},S=({link:e})=>(0,r.jsx)(z.N_,{to:e.url,children:e.title??e.url}),j=({item:e})=>(0,r.jsxs)(d.A,{button:!1,children:[(0,r.jsx)(s.A,{children:(0,r.jsx)(M,{icon:e.icon})}),(0,r.jsx)(u.A,{primary:e.title,secondary:e.links?.reduce((e,t,n)=>[...e,n>0&&(0,r.jsx)("br",{},n),(0,r.jsx)(S,{link:t},t.url)],[])})]});function L(e){const{t}=(0,b.useTranslationRef)(A.O),{title:n,items:s,children:u}=e,{items:f}=function(){const e=(0,a.useApiHolder)().get(a.configApiRef),t=e?.getOptionalConfig("app.support"),n=x();return t?{url:t.getString("url"),items:t.getConfigArray("items").flatMap(e=>({title:e.getString("title"),icon:e.getOptionalString("icon"),links:(e.getOptionalConfigArray("links")??[]).flatMap(e=>({url:e.getString("url"),title:e.getOptionalString("title")??""}))}))}:n}(),[y,k]=(0,v.useState)(!1),[z,M]=(0,v.useState)(null),S=E(),L=(0,a.useApi)(a.configApiRef).getOptionalConfig("app.support"),_=(0,h.A)(e=>e.breakpoints.down("sm")),I=e=>{M(e.currentTarget),k(!0)},O=()=>{k(!1)};return L?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.A,{display:"flex",ml:1,children:_?(0,r.jsx)(c.A,{color:"primary",size:"small",onClick:I,"data-testid":"support-button","aria-label":"Support",children:(0,r.jsx)(C,{})}):(0,r.jsx)(i.A,{"data-testid":"support-button","aria-label":"Support",color:"primary",onClick:I,startIcon:(0,r.jsx)(C,{}),children:t("supportButton.title")})}),(0,r.jsxs)(m.Ay,{"data-testid":"support-button-popover",open:y,anchorEl:z,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},onClose:O,children:[(0,r.jsxs)(p.A,{className:S.popoverList,autoFocusItem:Boolean(z),children:[n&&(0,r.jsx)(d.A,{button:!1,alignItems:"flex-start",className:S.menuItem,children:(0,r.jsx)(g.A,{variant:"subtitle1",children:n})}),v.Children.map(u,(e,t)=>(0,r.jsx)(d.A,{button:!1,alignItems:"flex-start",className:S.menuItem,children:e},`child-${t}`)),(s??f).map((e,t)=>(0,r.jsx)(j,{item:e},`item-${t}`))]}),(0,r.jsx)(l.A,{children:(0,r.jsx)(i.A,{color:"primary",onClick:O,"aria-label":"Close",children:t("supportButton.close")})})]})]}):null}},84441:(e,t,n)=>{n.d(t,{A:()=>y});var r=n(39850),a=n(89575),o=n(95478);function i(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=i(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}const l=function(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=i(e))&&(r&&(r+=" "),r+=t);return r};var c=n(37976),s=n(4321),u=n(38483);const d=(0,u.A)(o.createElement("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),p=(0,u.A)(o.createElement("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),m=(0,u.A)(o.createElement("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),f=(0,u.A)(o.createElement("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),g=(0,u.A)(o.createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");var h=n(29365),v=n(11192),A={success:o.createElement(d,{fontSize:"inherit"}),warning:o.createElement(p,{fontSize:"inherit"}),error:o.createElement(m,{fontSize:"inherit"}),info:o.createElement(f,{fontSize:"inherit"})},b=o.createElement(g,{fontSize:"small"}),x=o.forwardRef(function(e,t){var n=e.action,i=e.children,c=e.classes,u=e.className,d=e.closeText,p=void 0===d?"Close":d,m=e.color,f=e.icon,g=e.iconMapping,x=void 0===g?A:g,y=e.onClose,k=e.role,C=void 0===k?"alert":k,z=e.severity,E=void 0===z?"success":z,M=e.variant,S=void 0===M?"standard":M,j=(0,r.A)(e,["action","children","classes","className","closeText","color","icon","iconMapping","onClose","role","severity","variant"]);return o.createElement(s.A,(0,a.A)({role:C,square:!0,elevation:0,className:l(c.root,c["".concat(S).concat((0,v.A)(m||E))],u),ref:t},j),!1!==f?o.createElement("div",{className:c.icon},f||x[E]||A[E]):null,o.createElement("div",{className:c.message},i),null!=n?o.createElement("div",{className:c.action},n):null,null==n&&y?o.createElement("div",{className:c.action},o.createElement(h.A,{size:"small","aria-label":p,title:p,color:"inherit",onClick:y},b)):null)});const y=(0,c.withStyles)(function(e){var t="light"===e.palette.type?c.darken:c.lighten,n="light"===e.palette.type?c.lighten:c.darken;return{root:(0,a.A)({},e.typography.body2,{borderRadius:e.shape.borderRadius,backgroundColor:"transparent",display:"flex",padding:"6px 16px"}),standardSuccess:{color:t(e.palette.success.main,.6),backgroundColor:n(e.palette.success.main,.9),"& $icon":{color:e.palette.success.main}},standardInfo:{color:t(e.palette.info.main,.6),backgroundColor:n(e.palette.info.main,.9),"& $icon":{color:e.palette.info.main}},standardWarning:{color:t(e.palette.warning.main,.6),backgroundColor:n(e.palette.warning.main,.9),"& $icon":{color:e.palette.warning.main}},standardError:{color:t(e.palette.error.main,.6),backgroundColor:n(e.palette.error.main,.9),"& $icon":{color:e.palette.error.main}},outlinedSuccess:{color:t(e.palette.success.main,.6),border:"1px solid ".concat(e.palette.success.main),"& $icon":{color:e.palette.success.main}},outlinedInfo:{color:t(e.palette.info.main,.6),border:"1px solid ".concat(e.palette.info.main),"& $icon":{color:e.palette.info.main}},outlinedWarning:{color:t(e.palette.warning.main,.6),border:"1px solid ".concat(e.palette.warning.main),"& $icon":{color:e.palette.warning.main}},outlinedError:{color:t(e.palette.error.main,.6),border:"1px solid ".concat(e.palette.error.main),"& $icon":{color:e.palette.error.main}},filledSuccess:{color:"#fff",fontWeight:e.typography.fontWeightMedium,backgroundColor:e.palette.success.main},filledInfo:{color:"#fff",fontWeight:e.typography.fontWeightMedium,backgroundColor:e.palette.info.main},filledWarning:{color:"#fff",fontWeight:e.typography.fontWeightMedium,backgroundColor:e.palette.warning.main},filledError:{color:"#fff",fontWeight:e.typography.fontWeightMedium,backgroundColor:e.palette.error.main},icon:{marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9},message:{padding:"8px 0"},action:{display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}}},{name:"MuiAlert"})(x)},85142:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var o=a(n(95478)),i=(0,r(n(74044)).default)(o.createElement("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"}),"Lock");t.A=i},89031:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var o=a(n(95478)),i=(0,r(n(74044)).default)(o.createElement("path",{d:"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"}),"InfoOutlined");t.A=i},91638:(e,t,n)=>{var r=n(85608),a=n(95478),o=r.__importDefault(n(5030));t.A=function(e,t){void 0===t&&(t=[]);var n=o.default(e,t,{loading:!0}),r=n[0],i=n[1];return a.useEffect(function(){i()},[i]),r}}}]);
|
|
2
|
-
//# sourceMappingURL=3984.647ef00c.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/3984.647ef00c.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/../../node_modules/react-use/lib/useAsyncFn.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/lib/useMountedState.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Add.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/VpnKey.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/ExpandLess.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/BrokenImage.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Delete.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/hooks/useSupportConfig.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/icons/icons.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/components/SupportButton/SupportButton.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/node_modules/clsx/dist/clsx.m.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/SuccessOutlined.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/ReportProblemOutlined.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/ErrorOutline.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/InfoOutlined.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/internal/svg-icons/Close.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/Alert/Alert.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Lock.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/InfoOutlined.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/lib/useAsync.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar react_1 = require(\"react\");\nvar useMountedState_1 = tslib_1.__importDefault(require(\"./useMountedState\"));\nfunction useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = react_1.useRef(0);\n var isMounted = useMountedState_1.default();\n var _a = react_1.useState(initialState), state = _a[0], set = _a[1];\n var callback = react_1.useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (tslib_1.__assign(tslib_1.__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\nexports.default = useAsyncFn;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nfunction useMountedState() {\n var mountedRef = react_1.useRef(false);\n var get = react_1.useCallback(function () { return mountedRef.current; }, []);\n react_1.useEffect(function () {\n mountedRef.current = true;\n return function () {\n mountedRef.current = false;\n };\n }, []);\n return get;\n}\nexports.default = useMountedState;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"\n}), 'VpnKey');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\n}), 'ExpandLess');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2zm-3 6.42l3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4 4-3.99z\"\n}), 'BrokenImage');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\n\nexports.default = _default;","import { useApiHolder, configApiRef } from '@backstage/core-plugin-api';\nimport { coreComponentsTranslationRef } from '../translation.esm.js';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst useDefaultSupportConfig = () => {\n const { t } = useTranslationRef(coreComponentsTranslationRef);\n return {\n url: \"https://github.com/backstage/backstage/issues\",\n items: [\n {\n title: t(\"supportConfig.default.title\"),\n icon: \"warning\",\n links: [\n {\n // TODO: Update to dedicated support page on backstage.io/docs\n title: t(\"supportConfig.default.linkTitle\"),\n url: \"https://github.com/backstage/backstage/blob/master/app-config.yaml\"\n }\n ]\n }\n ]\n };\n};\nfunction useSupportConfig() {\n const apiHolder = useApiHolder();\n const config = apiHolder.get(configApiRef);\n const supportConfig = config?.getOptionalConfig(\"app.support\");\n const defaultSupportConfig = useDefaultSupportConfig();\n if (!supportConfig) {\n return defaultSupportConfig;\n }\n return {\n url: supportConfig.getString(\"url\"),\n items: supportConfig.getConfigArray(\"items\").flatMap((itemConf) => ({\n title: itemConf.getString(\"title\"),\n icon: itemConf.getOptionalString(\"icon\"),\n links: (itemConf.getOptionalConfigArray(\"links\") ?? []).flatMap(\n (linkConf) => ({\n url: linkConf.getString(\"url\"),\n title: linkConf.getOptionalString(\"title\") ?? \"\"\n })\n )\n }))\n };\n}\n\nexport { useSupportConfig };\n//# sourceMappingURL=useSupportConfig.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { useApp } from '@backstage/core-plugin-api';\nimport MuiBrokenImageIcon from '@material-ui/icons/BrokenImage';\n\nfunction AppIcon(props) {\n const { id: key, Fallback = MuiBrokenImageIcon, ...rest } = props;\n const app = useApp();\n const Icon = app.getSystemIcon(key) ?? Fallback;\n return /* @__PURE__ */ jsx(Icon, { ...rest });\n}\nfunction BrokenImageIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"brokenImage\", ...props });\n}\nfunction CatalogIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"catalog\", ...props });\n}\nfunction ChatIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"chat\", ...props });\n}\nfunction DashboardIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"dashboard\", ...props });\n}\nfunction DocsIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"docs\", ...props });\n}\nfunction EmailIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"email\", ...props });\n}\nfunction GitHubIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"github\", ...props });\n}\nfunction GroupIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"group\", ...props });\n}\nfunction HelpIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"help\", ...props });\n}\nfunction UserIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"user\", ...props });\n}\nfunction WarningIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"warning\", ...props });\n}\nfunction StarIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"star\", ...props });\n}\nfunction UnstarredIcon(props) {\n return /* @__PURE__ */ jsx(AppIcon, { id: \"unstarred\", ...props });\n}\n\nexport { AppIcon, BrokenImageIcon, CatalogIcon, ChatIcon, DashboardIcon, DocsIcon, EmailIcon, GitHubIcon, GroupIcon, HelpIcon, StarIcon, UnstarredIcon, UserIcon, WarningIcon };\n//# sourceMappingURL=icons.esm.js.map\n","import { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nimport { useApi, configApiRef, useApp } from '@backstage/core-plugin-api';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport IconButton from '@material-ui/core/IconButton';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MenuList from '@material-ui/core/MenuList';\nimport Popover from '@material-ui/core/Popover';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport { useState, Children } from 'react';\nimport 'lodash';\nimport 'qs';\nimport 'react-router-dom';\nimport '@react-hookz/web';\nimport { useSupportConfig } from '../../hooks/useSupportConfig.esm.js';\nimport { HelpIcon } from '../../icons/icons.esm.js';\nimport { Link } from '../Link/Link.esm.js';\nimport { coreComponentsTranslationRef } from '../../translation.esm.js';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst useStyles = makeStyles(\n {\n popoverList: {\n minWidth: 260,\n maxWidth: 400\n },\n menuItem: {\n whiteSpace: \"normal\"\n }\n },\n { name: \"BackstageSupportButton\" }\n);\nconst SupportIcon = ({ icon }) => {\n const app = useApp();\n const Icon = icon ? app.getSystemIcon(icon) ?? HelpIcon : HelpIcon;\n return /* @__PURE__ */ jsx(Icon, {});\n};\nconst SupportLink = ({ link }) => /* @__PURE__ */ jsx(Link, { to: link.url, children: link.title ?? link.url });\nconst SupportListItem = ({ item }) => {\n return /* @__PURE__ */ jsxs(MenuItem, { button: false, children: [\n /* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(SupportIcon, { icon: item.icon }) }),\n /* @__PURE__ */ jsx(\n ListItemText,\n {\n primary: item.title,\n secondary: item.links?.reduce(\n (prev, link, idx) => [\n ...prev,\n idx > 0 && /* @__PURE__ */ jsx(\"br\", {}, idx),\n /* @__PURE__ */ jsx(SupportLink, { link }, link.url)\n ],\n []\n )\n }\n )\n ] });\n};\nfunction SupportButton(props) {\n const { t } = useTranslationRef(coreComponentsTranslationRef);\n const { title, items, children } = props;\n const { items: configItems } = useSupportConfig();\n const [popoverOpen, setPopoverOpen] = useState(false);\n const [anchorEl, setAnchorEl] = useState(null);\n const classes = useStyles();\n const supportConfig = useApi(configApiRef).getOptionalConfig(\"app.support\");\n const isSmallScreen = useMediaQuery(\n (theme) => theme.breakpoints.down(\"sm\")\n );\n const onClickHandler = (event) => {\n setAnchorEl(event.currentTarget);\n setPopoverOpen(true);\n };\n const popoverCloseHandler = () => {\n setPopoverOpen(false);\n };\n if (!supportConfig) {\n return null;\n }\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Box, { display: \"flex\", ml: 1, children: isSmallScreen ? /* @__PURE__ */ jsx(\n IconButton,\n {\n color: \"primary\",\n size: \"small\",\n onClick: onClickHandler,\n \"data-testid\": \"support-button\",\n \"aria-label\": \"Support\",\n children: /* @__PURE__ */ jsx(HelpIcon, {})\n }\n ) : /* @__PURE__ */ jsx(\n Button,\n {\n \"data-testid\": \"support-button\",\n \"aria-label\": \"Support\",\n color: \"primary\",\n onClick: onClickHandler,\n startIcon: /* @__PURE__ */ jsx(HelpIcon, {}),\n children: t(\"supportButton.title\")\n }\n ) }),\n /* @__PURE__ */ jsxs(\n Popover,\n {\n \"data-testid\": \"support-button-popover\",\n open: popoverOpen,\n anchorEl,\n anchorOrigin: {\n vertical: \"bottom\",\n horizontal: \"right\"\n },\n transformOrigin: {\n vertical: \"top\",\n horizontal: \"right\"\n },\n onClose: popoverCloseHandler,\n children: [\n /* @__PURE__ */ jsxs(\n MenuList,\n {\n className: classes.popoverList,\n autoFocusItem: Boolean(anchorEl),\n children: [\n title && /* @__PURE__ */ jsx(\n MenuItem,\n {\n button: false,\n alignItems: \"flex-start\",\n className: classes.menuItem,\n children: /* @__PURE__ */ jsx(Typography, { variant: \"subtitle1\", children: title })\n }\n ),\n Children.map(children, (child, i) => /* @__PURE__ */ jsx(\n MenuItem,\n {\n button: false,\n alignItems: \"flex-start\",\n className: classes.menuItem,\n children: child\n },\n `child-${i}`\n )),\n (items ?? configItems).map((item, i) => /* @__PURE__ */ jsx(SupportListItem, { item }, `item-${i}`))\n ]\n }\n ),\n /* @__PURE__ */ jsx(DialogActions, { children: /* @__PURE__ */ jsx(\n Button,\n {\n color: \"primary\",\n onClick: popoverCloseHandler,\n \"aria-label\": \"Close\",\n children: t(\"supportButton.close\")\n }\n ) })\n ]\n }\n )\n ] });\n}\n\nexport { SupportButton };\n//# sourceMappingURL=SupportButton.esm.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z\"\n}), 'SuccessOutlined');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\"\n}), 'ReportProblemOutlined');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'ErrorOutline');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z\"\n}), 'InfoOutlined');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { withStyles, lighten, darken } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport SuccessOutlinedIcon from '../internal/svg-icons/SuccessOutlined';\nimport ReportProblemOutlinedIcon from '../internal/svg-icons/ReportProblemOutlined';\nimport ErrorOutlineIcon from '../internal/svg-icons/ErrorOutline';\nimport InfoOutlinedIcon from '../internal/svg-icons/InfoOutlined';\nimport CloseIcon from '../internal/svg-icons/Close';\nimport IconButton from '@material-ui/core/IconButton';\nimport { capitalize } from '@material-ui/core/utils';\nexport var styles = function styles(theme) {\n var getColor = theme.palette.type === 'light' ? darken : lighten;\n var getBackgroundColor = theme.palette.type === 'light' ? lighten : darken;\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body2, {\n borderRadius: theme.shape.borderRadius,\n backgroundColor: 'transparent',\n display: 'flex',\n padding: '6px 16px'\n }),\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"success\"`. */\n standardSuccess: {\n color: getColor(theme.palette.success.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.success.main, 0.9),\n '& $icon': {\n color: theme.palette.success.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"info\"`. */\n standardInfo: {\n color: getColor(theme.palette.info.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.info.main, 0.9),\n '& $icon': {\n color: theme.palette.info.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"warning\"`. */\n standardWarning: {\n color: getColor(theme.palette.warning.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.warning.main, 0.9),\n '& $icon': {\n color: theme.palette.warning.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"error\"`. */\n standardError: {\n color: getColor(theme.palette.error.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.error.main, 0.9),\n '& $icon': {\n color: theme.palette.error.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"success\"`. */\n outlinedSuccess: {\n color: getColor(theme.palette.success.main, 0.6),\n border: \"1px solid \".concat(theme.palette.success.main),\n '& $icon': {\n color: theme.palette.success.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"info\"`. */\n outlinedInfo: {\n color: getColor(theme.palette.info.main, 0.6),\n border: \"1px solid \".concat(theme.palette.info.main),\n '& $icon': {\n color: theme.palette.info.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"warning\"`. */\n outlinedWarning: {\n color: getColor(theme.palette.warning.main, 0.6),\n border: \"1px solid \".concat(theme.palette.warning.main),\n '& $icon': {\n color: theme.palette.warning.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"error\"`. */\n outlinedError: {\n color: getColor(theme.palette.error.main, 0.6),\n border: \"1px solid \".concat(theme.palette.error.main),\n '& $icon': {\n color: theme.palette.error.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"success\"`. */\n filledSuccess: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.success.main\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"info\"`. */\n filledInfo: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.info.main\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"warning\"`. */\n filledWarning: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.warning.main\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"error\"`. */\n filledError: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.error.main\n },\n\n /* Styles applied to the icon wrapper element. */\n icon: {\n marginRight: 12,\n padding: '7px 0',\n display: 'flex',\n fontSize: 22,\n opacity: 0.9\n },\n\n /* Styles applied to the message wrapper element. */\n message: {\n padding: '8px 0'\n },\n\n /* Styles applied to the action wrapper element if `action` is provided. */\n action: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8\n }\n };\n};\nvar defaultIconMapping = {\n success: /*#__PURE__*/React.createElement(SuccessOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n warning: /*#__PURE__*/React.createElement(ReportProblemOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n error: /*#__PURE__*/React.createElement(ErrorOutlineIcon, {\n fontSize: \"inherit\"\n }),\n info: /*#__PURE__*/React.createElement(InfoOutlinedIcon, {\n fontSize: \"inherit\"\n })\n};\n\nvar _ref = /*#__PURE__*/React.createElement(CloseIcon, {\n fontSize: \"small\"\n});\n\nvar Alert = /*#__PURE__*/React.forwardRef(function Alert(props, ref) {\n var action = props.action,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$closeText = props.closeText,\n closeText = _props$closeText === void 0 ? 'Close' : _props$closeText,\n color = props.color,\n icon = props.icon,\n _props$iconMapping = props.iconMapping,\n iconMapping = _props$iconMapping === void 0 ? defaultIconMapping : _props$iconMapping,\n onClose = props.onClose,\n _props$role = props.role,\n role = _props$role === void 0 ? 'alert' : _props$role,\n _props$severity = props.severity,\n severity = _props$severity === void 0 ? 'success' : _props$severity,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'standard' : _props$variant,\n other = _objectWithoutProperties(props, [\"action\", \"children\", \"classes\", \"className\", \"closeText\", \"color\", \"icon\", \"iconMapping\", \"onClose\", \"role\", \"severity\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n role: role,\n square: true,\n elevation: 0,\n className: clsx(classes.root, classes[\"\".concat(variant).concat(capitalize(color || severity))], className),\n ref: ref\n }, other), icon !== false ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.icon\n }, icon || iconMapping[severity] || defaultIconMapping[severity]) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: classes.message\n }, children), action != null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.action\n }, action) : null, action == null && onClose ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.action\n }, /*#__PURE__*/React.createElement(IconButton, {\n size: \"small\",\n \"aria-label\": closeText,\n title: closeText,\n color: \"inherit\",\n onClick: onClose\n }, _ref)) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? Alert.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The action to display. It renders after the message, at the end of the alert.\n */\n action: PropTypes.node,\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Override the default label for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/guides/localization/).\n */\n closeText: PropTypes.string,\n\n /**\n * The main color for the alert. Unless provided, the value is taken from the `severity` prop.\n */\n color: PropTypes.oneOf(['error', 'info', 'success', 'warning']),\n\n /**\n * Override the icon displayed before the children.\n * Unless provided, the icon is mapped to the value of the `severity` prop.\n */\n icon: PropTypes.node,\n\n /**\n * The component maps the `severity` prop to a range of different icons,\n * for instance success to `<SuccessOutlined>`.\n * If you wish to change this mapping, you can provide your own.\n * Alternatively, you can use the `icon` prop to override the icon displayed.\n */\n iconMapping: PropTypes.shape({\n error: PropTypes.node,\n info: PropTypes.node,\n success: PropTypes.node,\n warning: PropTypes.node\n }),\n\n /**\n * Callback fired when the component requests to be closed.\n * When provided and no `action` prop is set, a close icon button is displayed that triggers the callback when clicked.\n *\n * @param {object} event The event source of the callback.\n */\n onClose: PropTypes.func,\n\n /**\n * The ARIA role attribute of the element.\n */\n role: PropTypes.string,\n\n /**\n * The severity of the alert. This defines the color and icon used.\n */\n severity: PropTypes.oneOf(['error', 'info', 'success', 'warning']),\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiAlert'\n})(Alert);","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\"\n}), 'Lock');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"\n}), 'InfoOutlined');\n\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar react_1 = require(\"react\");\nvar useAsyncFn_1 = tslib_1.__importDefault(require(\"./useAsyncFn\"));\nfunction useAsync(fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useAsyncFn_1.default(fn, deps, {\n loading: true,\n }), state = _a[0], callback = _a[1];\n react_1.useEffect(function () {\n callback();\n }, [callback]);\n return state;\n}\nexports.default = useAsync;\n"],"names":["Object","defineProperty","exports","value","tslib_1","react_1","useMountedState_1","__importDefault","fn","deps","initialState","loading","lastCallId","useRef","isMounted","default","_a","useState","state","set","callback","useCallback","args","_i","arguments","length","callId","current","prevState","__assign","apply","then","error","mountedRef","get","useEffect","_interopRequireDefault","_interopRequireWildcard","React","_default","createElement","d","useDefaultSupportConfig","t","useTranslationRef","url","items","title","icon","links","AppIcon","props","id","key","Fallback","rest","Icon","useApp","getSystemIcon","jsx","HelpIcon","useStyles","makeStyles","popoverList","minWidth","maxWidth","menuItem","whiteSpace","name","SupportIcon","app","SupportLink","link","to","children","SupportListItem","item","jsxs","MenuItem","button","ListItemIcon","ListItemText","primary","secondary","reduce","prev","idx","SupportButton","configItems","config","useApiHolder","configApiRef","supportConfig","getOptionalConfig","defaultSupportConfig","getString","getConfigArray","flatMap","itemConf","getOptionalString","getOptionalConfigArray","linkConf","useSupportConfig","popoverOpen","setPopoverOpen","anchorEl","setAnchorEl","classes","useApi","isSmallScreen","useMediaQuery","theme","breakpoints","down","onClickHandler","event","currentTarget","popoverCloseHandler","Fragment","Box","display","ml","IconButton","color","size","onClick","Button","startIcon","Popover","open","anchorOrigin","vertical","horizontal","transformOrigin","onClose","MenuList","className","autoFocusItem","Boolean","alignItems","Typography","variant","Children","map","child","i","DialogActions","r","e","f","n","Array","isArray","createSvgIcon","defaultIconMapping","success","SuccessOutlined","fontSize","warning","ReportProblemOutlined","ErrorOutline","info","InfoOutlined","_ref","Close","Alert","ref","action","_props$closeText","closeText","_props$iconMapping","iconMapping","_props$role","role","_props$severity","severity","_props$variant","other","Paper","square","elevation","root","concat","capitalize","message","withStyles","getColor","palette","type","darken","lighten","getBackgroundColor","typography","body2","borderRadius","shape","backgroundColor","padding","standardSuccess","main","standardInfo","standardWarning","standardError","outlinedSuccess","border","outlinedInfo","outlinedWarning","outlinedError","filledSuccess","fontWeight","fontWeightMedium","filledInfo","filledWarning","filledError","marginRight","opacity","marginLeft","paddingLeft","useAsyncFn_1"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[4651],{8017:(e,t,n)=>{function r(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function o(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e&&(r(e.value)&&""!==e.value||t&&r(e.defaultValue)&&""!==e.defaultValue)}function a(e){return e.startAdornment}n.d(t,{gr:()=>a,lq:()=>o})},16249:(e,t,n)=>{n.d(t,{A:()=>b});var r=n(89575),o=n(39850),a=n(95478),i=n(36274),l=n(63301),s=n(73481),d=n(35963),u=n(48543),c=n(95061),p=n(51253),m=n(81215),f=n(7031),v={standard:l.A,filled:s.A,outlined:d.A},h=a.forwardRef(function(e,t){var n=e.autoComplete,l=e.autoFocus,s=void 0!==l&&l,d=e.children,f=e.classes,h=e.className,b=e.color,g=void 0===b?"primary":b,A=e.defaultValue,y=e.disabled,x=void 0!==y&&y,w=e.error,C=void 0!==w&&w,E=e.FormHelperTextProps,k=e.fullWidth,S=void 0!==k&&k,R=e.helperText,D=e.hiddenLabel,M=e.id,N=e.InputLabelProps,F=e.inputProps,P=e.InputProps,I=e.inputRef,W=e.label,O=e.multiline,L=void 0!==O&&O,$=e.name,B=e.onBlur,T=e.onChange,q=e.onFocus,H=e.placeholder,z=e.required,K=void 0!==z&&z,V=e.rows,U=e.rowsMax,_=e.maxRows,j=e.minRows,X=e.select,Z=void 0!==X&&X,G=e.SelectProps,J=e.type,Q=e.value,Y=e.variant,ee=void 0===Y?"standard":Y,te=(0,o.A)(e,["autoComplete","autoFocus","children","classes","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","hiddenLabel","id","InputLabelProps","inputProps","InputProps","inputRef","label","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","rowsMax","maxRows","minRows","select","SelectProps","type","value","variant"]),ne={};if("outlined"===ee&&(N&&void 0!==N.shrink&&(ne.notched=N.shrink),W)){var re,oe=null!==(re=null==N?void 0:N.required)&&void 0!==re?re:K;ne.label=a.createElement(a.Fragment,null,W,oe&&" *")}Z&&(G&&G.native||(ne.id=void 0),ne["aria-describedby"]=void 0);var ae=R&&M?"".concat(M,"-helper-text"):void 0,ie=W&&M?"".concat(M,"-label"):void 0,le=v[ee],se=a.createElement(le,(0,r.A)({"aria-describedby":ae,autoComplete:n,autoFocus:s,defaultValue:A,fullWidth:S,multiline:L,name:$,rows:V,rowsMax:U,maxRows:_,minRows:j,type:J,value:Q,id:M,inputRef:I,onBlur:B,onChange:T,onFocus:q,placeholder:H,inputProps:F},ne,P));return a.createElement(c.A,(0,r.A)({className:(0,i.A)(f.root,h),disabled:x,error:C,fullWidth:S,hiddenLabel:D,ref:t,required:K,color:g,variant:ee},te),W&&a.createElement(u.A,(0,r.A)({htmlFor:M,id:ie},N),W),Z?a.createElement(m.A,(0,r.A)({"aria-describedby":ae,id:M,labelId:ie,value:Q,input:se},G),d):se,R&&a.createElement(p.A,(0,r.A)({id:ae},E),R))});const b=(0,f.A)({root:{}},{name:"MuiTextField"})(h)},28233:(e,t,n)=>{n.d(t,{A:()=>h});var r=n(89575),o=n(39850),a=n(95478),i=(n(26948),n(40484)),l=n(76446),s=n(58007),d=n(18977),u=n(19878);function c(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function p(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function m(e,t){if(void 0===t)return!0;var n=e.innerText;return void 0===n&&(n=e.textContent),0!==(n=n.trim().toLowerCase()).length&&(t.repeating?n[0]===t.keys[0]:0===n.indexOf(t.keys.join("")))}function f(e,t,n,r,o,a){for(var i=!1,l=o(e,t,!!t&&n);l;){if(l===e.firstChild){if(i)return;i=!0}var s=!r&&(l.disabled||"true"===l.getAttribute("aria-disabled"));if(l.hasAttribute("tabindex")&&m(l,a)&&!s)return void l.focus();l=o(e,l,n)}}var v="undefined"==typeof window?a.useEffect:a.useLayoutEffect;const h=a.forwardRef(function(e,t){var n=e.actions,h=e.autoFocus,b=void 0!==h&&h,g=e.autoFocusItem,A=void 0!==g&&g,y=e.children,x=e.className,w=e.disabledItemsFocusable,C=void 0!==w&&w,E=e.disableListWrap,k=void 0!==E&&E,S=e.onKeyDown,R=e.variant,D=void 0===R?"selectedMenu":R,M=(0,o.A)(e,["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"]),N=a.useRef(null),F=a.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});v(function(){b&&N.current.focus()},[b]),a.useImperativeHandle(n,function(){return{adjustStyleForScrollbar:function(e,t){var n=!N.current.style.width;if(e.clientHeight<N.current.clientHeight&&n){var r="".concat((0,d.A)(!0),"px");N.current.style["rtl"===t.direction?"paddingLeft":"paddingRight"]=r,N.current.style.width="calc(100% + ".concat(r,")")}return N.current}}},[]);var P=a.useCallback(function(e){N.current=i.findDOMNode(e)},[]),I=(0,u.A)(P,t),W=-1;a.Children.forEach(y,function(e,t){a.isValidElement(e)&&(e.props.disabled||("selectedMenu"===D&&e.props.selected||-1===W)&&(W=t))});var O=a.Children.map(y,function(e,t){if(t===W){var n={};return A&&(n.autoFocus=!0),void 0===e.props.tabIndex&&"selectedMenu"===D&&(n.tabIndex=0),a.cloneElement(e,n)}return e});return a.createElement(s.A,(0,r.A)({role:"menu",ref:I,className:x,onKeyDown:function(e){var t=N.current,n=e.key,r=(0,l.A)(t).activeElement;if("ArrowDown"===n)e.preventDefault(),f(t,r,k,C,c);else if("ArrowUp"===n)e.preventDefault(),f(t,r,k,C,p);else if("Home"===n)e.preventDefault(),f(t,null,k,C,c);else if("End"===n)e.preventDefault(),f(t,null,k,C,p);else if(1===n.length){var o=F.current,a=n.toLowerCase(),i=performance.now();o.keys.length>0&&(i-o.lastTime>500?(o.keys=[],o.repeating=!0,o.previousKeyMatched=!0):o.repeating&&a!==o.keys[0]&&(o.repeating=!1)),o.lastTime=i,o.keys.push(a);var s=r&&!o.repeating&&m(r,o);o.previousKeyMatched&&(s||f(t,r,!1,C,c,o))?e.preventDefault():o.previousKeyMatched=!1}S&&S(e)},tabIndex:b?0:-1},M),O)})},31468:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(95478);const o=(0,n(38483).A)(r.createElement("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown")},35963:(e,t,n)=>{n.d(t,{A:()=>v});var r=n(89575),o=n(39850),a=n(95478),i=n(36274),l=n(41857),s=n(24586),d=n(7031),u=n(54917),c=n(11192),p=a.forwardRef(function(e,t){e.children;var n=e.classes,l=e.className,d=e.label,p=e.labelWidth,m=e.notched,f=e.style,v=(0,o.A)(e,["children","classes","className","label","labelWidth","notched","style"]),h="rtl"===(0,u.A)().direction?"right":"left";if(void 0!==d)return a.createElement("fieldset",(0,r.A)({"aria-hidden":!0,className:(0,i.A)(n.root,l),ref:t,style:f},v),a.createElement("legend",{className:(0,i.A)(n.legendLabelled,m&&n.legendNotched)},d?a.createElement("span",null,d):a.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})));var b=p>0?.75*p+8:.01;return a.createElement("fieldset",(0,r.A)({"aria-hidden":!0,style:(0,r.A)((0,s.A)({},"padding".concat((0,c.A)(h)),8),f),className:(0,i.A)(n.root,l),ref:t},v),a.createElement("legend",{className:n.legend,style:{width:m?b:.01}},a.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})))});const m=(0,d.A)(function(e){return{root:{position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden"},legend:{textAlign:"left",padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})},legendLabelled:{display:"block",width:"auto",textAlign:"left",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),"& > span":{paddingLeft:5,paddingRight:5,display:"inline-block"}},legendNotched:{maxWidth:1e3,transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}},{name:"PrivateNotchedOutline"})(p);var f=a.forwardRef(function(e,t){var n=e.classes,s=e.fullWidth,d=void 0!==s&&s,u=e.inputComponent,c=void 0===u?"input":u,p=e.label,f=e.labelWidth,v=void 0===f?0:f,h=e.multiline,b=void 0!==h&&h,g=e.notched,A=e.type,y=void 0===A?"text":A,x=(0,o.A)(e,["classes","fullWidth","inputComponent","label","labelWidth","multiline","notched","type"]);return a.createElement(l.A,(0,r.A)({renderSuffix:function(e){return a.createElement(m,{className:n.notchedOutline,label:p,labelWidth:v,notched:void 0!==g?g:Boolean(e.startAdornment||e.filled||e.focused)})},classes:(0,r.A)({},n,{root:(0,i.A)(n.root,n.underline),notchedOutline:null}),fullWidth:d,inputComponent:c,multiline:b,ref:t,type:y},x))});f.muiName="Input";const v=(0,d.A)(function(e){var t="light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{root:{position:"relative",borderRadius:e.shape.borderRadius,"&:hover $notchedOutline":{borderColor:e.palette.text.primary},"@media (hover: none)":{"&:hover $notchedOutline":{borderColor:t}},"&$focused $notchedOutline":{borderColor:e.palette.primary.main,borderWidth:2},"&$error $notchedOutline":{borderColor:e.palette.error.main},"&$disabled $notchedOutline":{borderColor:e.palette.action.disabled}},colorSecondary:{"&$focused $notchedOutline":{borderColor:e.palette.secondary.main}},focused:{},disabled:{},adornedStart:{paddingLeft:14},adornedEnd:{paddingRight:14},error:{},marginDense:{},multiline:{padding:"18.5px 14px","&$marginDense":{paddingTop:10.5,paddingBottom:10.5}},notchedOutline:{borderColor:t},input:{padding:"18.5px 14px","&:-webkit-autofill":{WebkitBoxShadow:"light"===e.palette.type?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.type?null:"#fff",caretColor:"light"===e.palette.type?null:"#fff",borderRadius:"inherit"}},inputMarginDense:{paddingTop:10.5,paddingBottom:10.5},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}},{name:"MuiOutlinedInput"})(f)},37757:(e,t,n)=>{n.d(t,{A:()=>h});var r=n(89575),o=n(39850),a=n(95478),i=(n(26948),n(36274)),l=n(7031),s=n(55197),d=n(28233),u=n(40484),c=n(93371),p=n(54917),m={vertical:"top",horizontal:"right"},f={vertical:"top",horizontal:"left"},v=a.forwardRef(function(e,t){var n=e.autoFocus,l=void 0===n||n,v=e.children,h=e.classes,b=e.disableAutoFocusItem,g=void 0!==b&&b,A=e.MenuListProps,y=void 0===A?{}:A,x=e.onClose,w=e.onEntering,C=e.open,E=e.PaperProps,k=void 0===E?{}:E,S=e.PopoverClasses,R=e.transitionDuration,D=void 0===R?"auto":R,M=e.TransitionProps,N=(M=void 0===M?{}:M).onEntering,F=(0,o.A)(M,["onEntering"]),P=e.variant,I=void 0===P?"selectedMenu":P,W=(0,o.A)(e,["autoFocus","children","classes","disableAutoFocusItem","MenuListProps","onClose","onEntering","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"]),O=(0,p.A)(),L=l&&!g&&C,$=a.useRef(null),B=a.useRef(null),T=-1;a.Children.map(v,function(e,t){a.isValidElement(e)&&(e.props.disabled||("menu"!==I&&e.props.selected||-1===T)&&(T=t))});var q=a.Children.map(v,function(e,t){return t===T?a.cloneElement(e,{ref:function(t){B.current=u.findDOMNode(t),(0,c.A)(e.ref,t)}}):e});return a.createElement(s.Ay,(0,r.A)({getContentAnchorEl:function(){return B.current},classes:S,onClose:x,TransitionProps:(0,r.A)({onEntering:function(e,t){$.current&&$.current.adjustStyleForScrollbar(e,O),w&&w(e,t),N&&N(e,t)}},F),anchorOrigin:"rtl"===O.direction?m:f,transformOrigin:"rtl"===O.direction?m:f,PaperProps:(0,r.A)({},k,{classes:(0,r.A)({},k.classes,{root:h.paper})}),open:C,ref:t,transitionDuration:D},W),a.createElement(d.A,(0,r.A)({onKeyDown:function(e){"Tab"===e.key&&(e.preventDefault(),x&&x(e,"tabKeyDown"))},actions:$,autoFocus:l&&(-1===T||g),autoFocusItem:L,variant:I},y,{className:(0,i.A)(h.list,y.className)}),q))});const h=(0,l.A)({paper:{maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"},list:{outline:0}},{name:"MuiMenu"})(v)},41682:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(95478),o=n(42062);function a(){return r.useContext(o.A)}},41857:(e,t,n)=>{n.d(t,{A:()=>b});var r=n(39850),o=n(89575),a=n(87447),i=n(95478),l=n(36274),s=n(96836),d=n(42062),u=n(7031),c=n(11192),p=n(19878),m=n(51479),f=n(8017),v="undefined"==typeof window?i.useEffect:i.useLayoutEffect,h=i.forwardRef(function(e,t){var n=e["aria-describedby"],u=e.autoComplete,h=e.autoFocus,b=e.classes,g=e.className,A=(e.color,e.defaultValue),y=e.disabled,x=e.endAdornment,w=(e.error,e.fullWidth),C=void 0!==w&&w,E=e.id,k=e.inputComponent,S=void 0===k?"input":k,R=e.inputProps,D=void 0===R?{}:R,M=e.inputRef,N=(e.margin,e.multiline),F=void 0!==N&&N,P=e.name,I=e.onBlur,W=e.onChange,O=e.onClick,L=e.onFocus,$=e.onKeyDown,B=e.onKeyUp,T=e.placeholder,q=e.readOnly,H=e.renderSuffix,z=e.rows,K=e.rowsMax,V=e.rowsMin,U=e.maxRows,_=e.minRows,j=e.startAdornment,X=e.type,Z=void 0===X?"text":X,G=e.value,J=(0,r.A)(e,["aria-describedby","autoComplete","autoFocus","classes","className","color","defaultValue","disabled","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","rowsMax","rowsMin","maxRows","minRows","startAdornment","type","value"]),Q=null!=D.value?D.value:G,Y=i.useRef(null!=Q).current,ee=i.useRef(),te=i.useCallback(function(e){},[]),ne=(0,p.A)(D.ref,te),re=(0,p.A)(M,ne),oe=(0,p.A)(ee,re),ae=i.useState(!1),ie=ae[0],le=ae[1],se=(0,d.t)(),de=(0,s.A)({props:e,muiFormControl:se,states:["color","disabled","error","hiddenLabel","margin","required","filled"]});de.focused=se?se.focused:ie,i.useEffect(function(){!se&&y&&ie&&(le(!1),I&&I())},[se,y,ie,I]);var ue=se&&se.onFilled,ce=se&&se.onEmpty,pe=i.useCallback(function(e){(0,f.lq)(e)?ue&&ue():ce&&ce()},[ue,ce]);v(function(){Y&&pe({value:Q})},[Q,pe,Y]),i.useEffect(function(){pe(ee.current)},[]);var me=S,fe=(0,o.A)({},D,{ref:oe});return"string"!=typeof me?fe=(0,o.A)({inputRef:oe,type:Z},fe,{ref:null}):F?!z||U||_||K||V?(fe=(0,o.A)({minRows:z||_,rowsMax:K,maxRows:U},fe),me=m.A):me="textarea":fe=(0,o.A)({type:Z},fe),i.useEffect(function(){se&&se.setAdornedStart(Boolean(j))},[se,j]),i.createElement("div",(0,o.A)({className:(0,l.A)(b.root,b["color".concat((0,c.A)(de.color||"primary"))],g,de.disabled&&b.disabled,de.error&&b.error,C&&b.fullWidth,de.focused&&b.focused,se&&b.formControl,F&&b.multiline,j&&b.adornedStart,x&&b.adornedEnd,"dense"===de.margin&&b.marginDense),onClick:function(e){ee.current&&e.currentTarget===e.target&&ee.current.focus(),O&&O(e)},ref:t},J),j,i.createElement(d.A.Provider,{value:null},i.createElement(me,(0,o.A)({"aria-invalid":de.error,"aria-describedby":n,autoComplete:u,autoFocus:h,defaultValue:A,disabled:de.disabled,id:E,onAnimationStart:function(e){pe("mui-auto-fill-cancel"===e.animationName?ee.current:{value:"x"})},name:P,placeholder:T,readOnly:q,required:de.required,rows:z,value:Q,onKeyDown:$,onKeyUp:B},fe,{className:(0,l.A)(b.input,D.className,de.disabled&&b.disabled,F&&b.inputMultiline,de.hiddenLabel&&b.inputHiddenLabel,j&&b.inputAdornedStart,x&&b.inputAdornedEnd,"search"===Z&&b.inputTypeSearch,"dense"===de.margin&&b.inputMarginDense),onBlur:function(e){I&&I(e),D.onBlur&&D.onBlur(e),se&&se.onBlur?se.onBlur(e):le(!1)},onChange:function(e){if(!Y){var t=e.target||ee.current;if(null==t)throw new Error((0,a.A)(1));pe({value:t.value})}for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];D.onChange&&D.onChange.apply(D,[e].concat(r)),W&&W.apply(void 0,[e].concat(r))},onFocus:function(e){de.disabled?e.stopPropagation():(L&&L(e),D.onFocus&&D.onFocus(e),se&&se.onFocus?se.onFocus(e):le(!0))}}))),x,H?H((0,o.A)({},de,{startAdornment:j})):null)});const b=(0,u.A)(function(e){var t="light"===e.palette.type,n={color:"currentColor",opacity:t?.42:.5,transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},a={opacity:t?.42:.5};return{"@global":{"@keyframes mui-auto-fill":{},"@keyframes mui-auto-fill-cancel":{}},root:(0,o.A)({},e.typography.body1,{color:e.palette.text.primary,lineHeight:"1.1876em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center","&$disabled":{color:e.palette.text.disabled,cursor:"default"}}),formControl:{},focused:{},disabled:{},adornedStart:{},adornedEnd:{},error:{},marginDense:{},multiline:{padding:"".concat(6,"px 0 ").concat(7,"px"),"&$marginDense":{paddingTop:3}},colorSecondary:{},fullWidth:{width:"100%"},input:{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"".concat(6,"px 0 ").concat(7,"px"),border:0,boxSizing:"content-box",background:"none",height:"1.1876em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&:-ms-input-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{"-webkit-appearance":"none"},"label[data-shrink=false] + $formControl &":{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&:-ms-input-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":a,"&:focus::-moz-placeholder":a,"&:focus:-ms-input-placeholder":a,"&:focus::-ms-input-placeholder":a},"&$disabled":{opacity:1},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},inputMarginDense:{paddingTop:3},inputMultiline:{height:"auto",resize:"none",padding:0},inputTypeSearch:{"-moz-appearance":"textfield","-webkit-appearance":"textfield"},inputAdornedStart:{},inputAdornedEnd:{},inputHiddenLabel:{}}},{name:"MuiInputBase"})(h)},42062:(e,t,n)=>{n.d(t,{A:()=>i,t:()=>a});var r=n(95478),o=r.createContext();function a(){return r.useContext(o)}const i=o},42141:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(89575),o=n(39850),a=n(95478),i=n(36274),l=n(11192);const s=a.forwardRef(function(e,t){var n=e.classes,s=e.className,d=e.disabled,u=e.IconComponent,c=e.inputRef,p=e.variant,m=void 0===p?"standard":p,f=(0,o.A)(e,["classes","className","disabled","IconComponent","inputRef","variant"]);return a.createElement(a.Fragment,null,a.createElement("select",(0,r.A)({className:(0,i.A)(n.root,n.select,n[m],s,d&&n.disabled),disabled:d,ref:c||t},f)),e.multiple?null:a.createElement(u,{className:(0,i.A)(n.icon,n["icon".concat((0,l.A)(m))],d&&n.disabled)}))})},48543:(e,t,n)=>{n.d(t,{A:()=>p});var r=n(89575),o=n(39850),a=n(95478),i=n(36274),l=n(96836),s=n(41682),d=n(7031),u=n(91761),c=a.forwardRef(function(e,t){var n=e.classes,d=e.className,c=e.disableAnimation,p=void 0!==c&&c,m=(e.margin,e.shrink),f=(e.variant,(0,o.A)(e,["classes","className","disableAnimation","margin","shrink","variant"])),v=(0,s.A)(),h=m;void 0===h&&v&&(h=v.filled||v.focused||v.adornedStart);var b=(0,l.A)({props:e,muiFormControl:v,states:["margin","variant"]});return a.createElement(u.A,(0,r.A)({"data-shrink":h,className:(0,i.A)(n.root,d,v&&n.formControl,!p&&n.animated,h&&n.shrink,"dense"===b.margin&&n.marginDense,{filled:n.filled,outlined:n.outlined}[b.variant]),classes:{focused:n.focused,disabled:n.disabled,error:n.error,required:n.required,asterisk:n.asterisk},ref:t},f))});const p=(0,d.A)(function(e){return{root:{display:"block",transformOrigin:"top left"},focused:{},disabled:{},error:{},required:{},asterisk:{},formControl:{position:"absolute",left:0,top:0,transform:"translate(0, 24px) scale(1)"},marginDense:{transform:"translate(0, 21px) scale(1)"},shrink:{transform:"translate(0, 1.5px) scale(0.75)",transformOrigin:"top left"},animated:{transition:e.transitions.create(["color","transform"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},filled:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 20px) scale(1)","&$marginDense":{transform:"translate(12px, 17px) scale(1)"},"&$shrink":{transform:"translate(12px, 10px) scale(0.75)","&$marginDense":{transform:"translate(12px, 7px) scale(0.75)"}}},outlined:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 20px) scale(1)","&$marginDense":{transform:"translate(14px, 12px) scale(1)"},"&$shrink":{transform:"translate(14px, -6px) scale(0.75)"}}}},{name:"MuiInputLabel"})(c)},51253:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(39850),o=n(89575),a=n(95478),i=n(36274),l=n(96836),s=n(41682),d=n(7031),u=a.forwardRef(function(e,t){var n=e.children,d=e.classes,u=e.className,c=e.component,p=void 0===c?"p":c,m=(e.disabled,e.error,e.filled,e.focused,e.margin,e.required,e.variant,(0,r.A)(e,["children","classes","className","component","disabled","error","filled","focused","margin","required","variant"])),f=(0,s.A)(),v=(0,l.A)({props:e,muiFormControl:f,states:["variant","margin","disabled","error","filled","focused","required"]});return a.createElement(p,(0,o.A)({className:(0,i.A)(d.root,("filled"===v.variant||"outlined"===v.variant)&&d.contained,u,v.disabled&&d.disabled,v.error&&d.error,v.filled&&d.filled,v.focused&&d.focused,v.required&&d.required,"dense"===v.margin&&d.marginDense),ref:t},m)," "===n?a.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):n)});const c=(0,d.A)(function(e){return{root:(0,o.A)({color:e.palette.text.secondary},e.typography.caption,{textAlign:"left",marginTop:3,margin:0,"&$disabled":{color:e.palette.text.disabled},"&$error":{color:e.palette.error.main}}),error:{},disabled:{},marginDense:{marginTop:4},contained:{marginLeft:14,marginRight:14},focused:{},filled:{},required:{}}},{name:"MuiFormHelperText"})(u)},51479:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(89575),o=n(39850),a=n(95478),i=n(2589),l=n(19878);function s(e,t){return parseInt(e[t],10)||0}var d="undefined"!=typeof window?a.useLayoutEffect:a.useEffect,u={visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"};const c=a.forwardRef(function(e,t){var n=e.onChange,c=e.rows,p=e.rowsMax,m=e.rowsMin,f=e.maxRows,v=e.minRows,h=void 0===v?1:v,b=e.style,g=e.value,A=(0,o.A)(e,["onChange","rows","rowsMax","rowsMin","maxRows","minRows","style","value"]),y=f||p,x=c||m||h,w=a.useRef(null!=g).current,C=a.useRef(null),E=(0,l.A)(t,C),k=a.useRef(null),S=a.useRef(0),R=a.useState({}),D=R[0],M=R[1],N=a.useCallback(function(){var t=C.current,n=window.getComputedStyle(t),r=k.current;r.style.width=n.width,r.value=t.value||e.placeholder||"x","\n"===r.value.slice(-1)&&(r.value+=" ");var o=n["box-sizing"],a=s(n,"padding-bottom")+s(n,"padding-top"),i=s(n,"border-bottom-width")+s(n,"border-top-width"),l=r.scrollHeight-a;r.value="x";var d=r.scrollHeight-a,u=l;x&&(u=Math.max(Number(x)*d,u)),y&&(u=Math.min(Number(y)*d,u));var c=(u=Math.max(u,d))+("border-box"===o?a+i:0),p=Math.abs(u-l)<=1;M(function(e){return S.current<20&&(c>0&&Math.abs((e.outerHeightStyle||0)-c)>1||e.overflow!==p)?(S.current+=1,{overflow:p,outerHeightStyle:c}):e})},[y,x,e.placeholder]);return a.useEffect(function(){var e=(0,i.A)(function(){S.current=0,N()});return window.addEventListener("resize",e),function(){e.clear(),window.removeEventListener("resize",e)}},[N]),d(function(){N()}),a.useEffect(function(){S.current=0},[g]),a.createElement(a.Fragment,null,a.createElement("textarea",(0,r.A)({value:g,onChange:function(e){S.current=0,w||N(),n&&n(e)},ref:E,rows:x,style:(0,r.A)({height:D.outerHeightStyle,overflow:D.overflow?"hidden":null},b)},A)),a.createElement("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:k,tabIndex:-1,style:(0,r.A)({},u,b)}))})},63301:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(89575),o=n(39850),a=n(95478),i=n(36274),l=n(41857),s=n(7031),d=a.forwardRef(function(e,t){var n=e.disableUnderline,s=e.classes,d=e.fullWidth,u=void 0!==d&&d,c=e.inputComponent,p=void 0===c?"input":c,m=e.multiline,f=void 0!==m&&m,v=e.type,h=void 0===v?"text":v,b=(0,o.A)(e,["disableUnderline","classes","fullWidth","inputComponent","multiline","type"]);return a.createElement(l.A,(0,r.A)({classes:(0,r.A)({},s,{root:(0,i.A)(s.root,!n&&s.underline),underline:null}),fullWidth:u,inputComponent:p,multiline:f,ref:t,type:h},b))});d.muiName="Input";const u=(0,s.A)(function(e){var t="light"===e.palette.type?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return{root:{position:"relative"},formControl:{"label + &":{marginTop:16}},focused:{},disabled:{},colorSecondary:{"&$underline:after":{borderBottomColor:e.palette.secondary.main}},underline:{"&:after":{borderBottom:"2px solid ".concat(e.palette.primary.main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:e.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:"1px solid ".concat(t),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:not($disabled):before":{borderBottom:"2px solid ".concat(e.palette.text.primary),"@media (hover: none)":{borderBottom:"1px solid ".concat(t)}},"&$disabled:before":{borderBottomStyle:"dotted"}},error:{},marginDense:{},multiline:{},fullWidth:{},input:{},inputMarginDense:{},inputMultiline:{},inputTypeSearch:{}}},{name:"MuiInput"})(d)},73481:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(89575),o=n(39850),a=n(95478),i=n(36274),l=n(41857),s=n(7031),d=a.forwardRef(function(e,t){var n=e.disableUnderline,s=e.classes,d=e.fullWidth,u=void 0!==d&&d,c=e.inputComponent,p=void 0===c?"input":c,m=e.multiline,f=void 0!==m&&m,v=e.type,h=void 0===v?"text":v,b=(0,o.A)(e,["disableUnderline","classes","fullWidth","inputComponent","multiline","type"]);return a.createElement(l.A,(0,r.A)({classes:(0,r.A)({},s,{root:(0,i.A)(s.root,!n&&s.underline),underline:null}),fullWidth:u,inputComponent:p,multiline:f,ref:t,type:h},b))});d.muiName="Input";const u=(0,s.A)(function(e){var t="light"===e.palette.type,n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.09)";return{root:{position:"relative",backgroundColor:r,borderTopLeftRadius:e.shape.borderRadius,borderTopRightRadius:e.shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:t?"rgba(0, 0, 0, 0.13)":"rgba(255, 255, 255, 0.13)","@media (hover: none)":{backgroundColor:r}},"&$focused":{backgroundColor:t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.09)"},"&$disabled":{backgroundColor:t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)"}},colorSecondary:{"&$underline:after":{borderBottomColor:e.palette.secondary.main}},underline:{"&:after":{borderBottom:"2px solid ".concat(e.palette.primary.main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:e.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:"1px solid ".concat(n),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:before":{borderBottom:"1px solid ".concat(e.palette.text.primary)},"&$disabled:before":{borderBottomStyle:"dotted"}},focused:{},disabled:{},adornedStart:{paddingLeft:12},adornedEnd:{paddingRight:12},error:{},marginDense:{},multiline:{padding:"27px 12px 10px","&$marginDense":{paddingTop:23,paddingBottom:6}},input:{padding:"27px 12px 10px","&:-webkit-autofill":{WebkitBoxShadow:"light"===e.palette.type?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.type?null:"#fff",caretColor:"light"===e.palette.type?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},inputMarginDense:{paddingTop:23,paddingBottom:6},inputHiddenLabel:{paddingTop:18,paddingBottom:19,"&$inputMarginDense":{paddingTop:10,paddingBottom:11}},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}},{name:"MuiFilledInput"})(d)},73745:(e,t,n)=>{n.d(t,{A:()=>v,R:()=>p});var r=n(89575),o=n(39850),a=n(95478),i=n(42141),l=n(7031),s=n(96836),d=n(41682),u=n(31468),c=n(63301),p=function(e){return{root:{},select:{"-moz-appearance":"none","-webkit-appearance":"none",userSelect:"none",borderRadius:0,minWidth:16,cursor:"pointer","&:focus":{backgroundColor:"light"===e.palette.type?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)",borderRadius:0},"&::-ms-expand":{display:"none"},"&$disabled":{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:e.palette.background.paper},"&&":{paddingRight:24}},filled:{"&&":{paddingRight:32}},outlined:{borderRadius:e.shape.borderRadius,"&&":{paddingRight:32}},selectMenu:{height:"auto",minHeight:"1.1876em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},disabled:{},icon:{position:"absolute",right:0,top:"calc(50% - 12px)",pointerEvents:"none",color:e.palette.action.active,"&$disabled":{color:e.palette.action.disabled}},iconOpen:{transform:"rotate(180deg)"},iconFilled:{right:7},iconOutlined:{right:7},nativeInput:{bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%"}}},m=a.createElement(c.A,null),f=a.forwardRef(function(e,t){var n=e.children,l=e.classes,c=e.IconComponent,p=void 0===c?u.A:c,f=e.input,v=void 0===f?m:f,h=e.inputProps,b=(e.variant,(0,o.A)(e,["children","classes","IconComponent","input","inputProps","variant"])),g=(0,d.A)(),A=(0,s.A)({props:e,muiFormControl:g,states:["variant"]});return a.cloneElement(v,(0,r.A)({inputComponent:i.A,inputProps:(0,r.A)({children:n,classes:l,IconComponent:p,variant:A.variant,type:void 0},h,v?v.props.inputProps:{}),ref:t},b))});f.muiName="Select";const v=(0,l.A)(p,{name:"MuiNativeSelect"})(f)},78467:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(89575),o=n(39850),a=n(95478),i=n(36274),l=n(7031),s=n(11192),d=44,u=a.forwardRef(function(e,t){var n=e.classes,l=e.className,u=e.color,c=void 0===u?"primary":u,p=e.disableShrink,m=void 0!==p&&p,f=e.size,v=void 0===f?40:f,h=e.style,b=e.thickness,g=void 0===b?3.6:b,A=e.value,y=void 0===A?0:A,x=e.variant,w=void 0===x?"indeterminate":x,C=(0,o.A)(e,["classes","className","color","disableShrink","size","style","thickness","value","variant"]),E={},k={},S={};if("determinate"===w||"static"===w){var R=2*Math.PI*((d-g)/2);E.strokeDasharray=R.toFixed(3),S["aria-valuenow"]=Math.round(y),E.strokeDashoffset="".concat(((100-y)/100*R).toFixed(3),"px"),k.transform="rotate(-90deg)"}return a.createElement("div",(0,r.A)({className:(0,i.A)(n.root,l,"inherit"!==c&&n["color".concat((0,s.A)(c))],{determinate:n.determinate,indeterminate:n.indeterminate,static:n.static}[w]),style:(0,r.A)({width:v,height:v},k,h),ref:t,role:"progressbar"},S,C),a.createElement("svg",{className:n.svg,viewBox:"".concat(22," ").concat(22," ").concat(d," ").concat(d)},a.createElement("circle",{className:(0,i.A)(n.circle,m&&n.circleDisableShrink,{determinate:n.circleDeterminate,indeterminate:n.circleIndeterminate,static:n.circleStatic}[w]),style:E,cx:d,cy:d,r:(d-g)/2,fill:"none",strokeWidth:g})))});const c=(0,l.A)(function(e){return{root:{display:"inline-block"},static:{transition:e.transitions.create("transform")},indeterminate:{animation:"$circular-rotate 1.4s linear infinite"},determinate:{transition:e.transitions.create("transform")},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},svg:{display:"block"},circle:{stroke:"currentColor"},circleStatic:{transition:e.transitions.create("stroke-dashoffset")},circleIndeterminate:{animation:"$circular-dash 1.4s ease-in-out infinite",strokeDasharray:"80px, 200px",strokeDashoffset:"0px"},circleDeterminate:{transition:e.transitions.create("stroke-dashoffset")},"@keyframes circular-rotate":{"0%":{transformOrigin:"50% 50%"},"100%":{transform:"rotate(360deg)"}},"@keyframes circular-dash":{"0%":{strokeDasharray:"1px, 200px",strokeDashoffset:"0px"},"50%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-15px"},"100%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-125px"}},circleDisableShrink:{animation:"none"}}},{name:"MuiCircularProgress",flip:!1})(u)},81215:(e,t,n)=>{n.d(t,{A:()=>P});var r=n(89575),o=n(39850),a=n(95478),i=n(11942),l=n(90689),s=n(17545),d=n(87447),u=(n(26948),n(36274)),c=n(76446),p=n(11192),m=n(37757),f=n(8017),v=n(19878),h=n(45065);function b(e,t){return"object"===(0,s.A)(t)&&null!==t?e===t:String(e)===String(t)}const g=a.forwardRef(function(e,t){var n=e["aria-label"],i=e.autoFocus,s=e.autoWidth,g=e.children,A=e.classes,y=e.className,x=e.defaultValue,w=e.disabled,C=e.displayEmpty,E=e.IconComponent,k=e.inputRef,S=e.labelId,R=e.MenuProps,D=void 0===R?{}:R,M=e.multiple,N=e.name,F=e.onBlur,P=e.onChange,I=e.onClose,W=e.onFocus,O=e.onOpen,L=e.open,$=e.readOnly,B=e.renderValue,T=e.SelectDisplayProps,q=void 0===T?{}:T,H=e.tabIndex,z=(e.type,e.value),K=e.variant,V=void 0===K?"standard":K,U=(0,o.A)(e,["aria-label","autoFocus","autoWidth","children","classes","className","defaultValue","disabled","displayEmpty","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"]),_=(0,h.A)({controlled:z,default:x,name:"Select"}),j=(0,l.A)(_,2),X=j[0],Z=j[1],G=a.useRef(null),J=a.useState(null),Q=J[0],Y=J[1],ee=a.useRef(null!=L).current,te=a.useState(),ne=te[0],re=te[1],oe=a.useState(!1),ae=oe[0],ie=oe[1],le=(0,v.A)(t,k);a.useImperativeHandle(le,function(){return{focus:function(){Q.focus()},node:G.current,value:X}},[Q,X]),a.useEffect(function(){i&&Q&&Q.focus()},[i,Q]),a.useEffect(function(){if(Q){var e=(0,c.A)(Q).getElementById(S);if(e){var t=function(){getSelection().isCollapsed&&Q.focus()};return e.addEventListener("click",t),function(){e.removeEventListener("click",t)}}}},[S,Q]);var se,de,ue=function(e,t){e?O&&O(t):I&&I(t),ee||(re(s?null:Q.clientWidth),ie(e))},ce=a.Children.toArray(g),pe=function(e){return function(t){var n;if(M||ue(!1,t),M){n=Array.isArray(X)?X.slice():[];var r=X.indexOf(e.props.value);-1===r?n.push(e.props.value):n.splice(r,1)}else n=e.props.value;e.props.onClick&&e.props.onClick(t),X!==n&&(Z(n),P&&(t.persist(),Object.defineProperty(t,"target",{writable:!0,value:{value:n,name:N}}),P(t,e)))}},me=null!==Q&&(ee?L:ae);delete U["aria-invalid"];var fe=[],ve=!1;((0,f.lq)({value:X})||C)&&(B?se=B(X):ve=!0);var he=ce.map(function(e){if(!a.isValidElement(e))return null;var t;if(M){if(!Array.isArray(X))throw new Error((0,d.A)(2));(t=X.some(function(t){return b(t,e.props.value)}))&&ve&&fe.push(e.props.children)}else(t=b(X,e.props.value))&&ve&&(de=e.props.children);return a.cloneElement(e,{"aria-selected":t?"true":void 0,onClick:pe(e),onKeyUp:function(t){" "===t.key&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:"option",selected:t,value:void 0,"data-value":e.props.value})});ve&&(se=M?fe.join(", "):de);var be,ge=ne;!s&&ee&&Q&&(ge=Q.clientWidth),be=void 0!==H?H:w?null:0;var Ae=q.id||(N?"mui-component-select-".concat(N):void 0);return a.createElement(a.Fragment,null,a.createElement("div",(0,r.A)({className:(0,u.A)(A.root,A.select,A.selectMenu,A[V],y,w&&A.disabled),ref:Y,tabIndex:be,role:"button","aria-disabled":w?"true":void 0,"aria-expanded":me?"true":void 0,"aria-haspopup":"listbox","aria-label":n,"aria-labelledby":[S,Ae].filter(Boolean).join(" ")||void 0,onKeyDown:function(e){$||-1!==[" ","ArrowUp","ArrowDown","Enter"].indexOf(e.key)&&(e.preventDefault(),ue(!0,e))},onMouseDown:w||$?null:function(e){0===e.button&&(e.preventDefault(),Q.focus(),ue(!0,e))},onBlur:function(e){!me&&F&&(e.persist(),Object.defineProperty(e,"target",{writable:!0,value:{value:X,name:N}}),F(e))},onFocus:W},q,{id:Ae}),function(e){return null==e||"string"==typeof e&&!e.trim()}(se)?a.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):se),a.createElement("input",(0,r.A)({value:Array.isArray(X)?X.join(","):X,name:N,ref:G,"aria-hidden":!0,onChange:function(e){var t=ce.map(function(e){return e.props.value}).indexOf(e.target.value);if(-1!==t){var n=ce[t];Z(n.props.value),P&&P(e,n)}},tabIndex:-1,className:A.nativeInput,autoFocus:i},U)),a.createElement(E,{className:(0,u.A)(A.icon,A["icon".concat((0,p.A)(V))],me&&A.iconOpen,w&&A.disabled)}),a.createElement(m.A,(0,r.A)({id:"menu-".concat(N||""),anchorEl:Q,open:me,onClose:function(e){ue(!1,e)}},D,{MenuListProps:(0,r.A)({"aria-labelledby":S,role:"listbox",disableListWrap:!0},D.MenuListProps),PaperProps:(0,r.A)({},D.PaperProps,{style:(0,r.A)({minWidth:ge},null!=D.PaperProps?D.PaperProps.style:null)})}),he))});var A=n(96836),y=n(41682),x=n(7031),w=n(31468),C=n(63301),E=n(73745),k=n(42141),S=n(73481),R=n(35963),D=E.R,M=a.createElement(C.A,null),N=a.createElement(S.A,null),F=a.forwardRef(function e(t,n){var l=t.autoWidth,s=void 0!==l&&l,d=t.children,u=t.classes,c=t.displayEmpty,p=void 0!==c&&c,m=t.IconComponent,f=void 0===m?w.A:m,v=t.id,h=t.input,b=t.inputProps,x=t.label,C=t.labelId,E=t.labelWidth,S=void 0===E?0:E,D=t.MenuProps,F=t.multiple,P=void 0!==F&&F,I=t.native,W=void 0!==I&&I,O=t.onClose,L=t.onOpen,$=t.open,B=t.renderValue,T=t.SelectDisplayProps,q=t.variant,H=void 0===q?"standard":q,z=(0,o.A)(t,["autoWidth","children","classes","displayEmpty","IconComponent","id","input","inputProps","label","labelId","labelWidth","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps","variant"]),K=W?k.A:g,V=(0,y.A)(),U=(0,A.A)({props:t,muiFormControl:V,states:["variant"]}).variant||H,_=h||{standard:M,outlined:a.createElement(R.A,{label:x,labelWidth:S}),filled:N}[U];return a.cloneElement(_,(0,r.A)({inputComponent:K,inputProps:(0,r.A)({children:d,IconComponent:f,variant:U,type:void 0,multiple:P},W?{id:v}:{autoWidth:s,displayEmpty:p,labelId:C,MenuProps:D,onClose:O,onOpen:L,open:$,renderValue:B,SelectDisplayProps:(0,r.A)({id:v},T)},b,{classes:b?(0,i.mergeClasses)({baseClasses:u,newClasses:b.classes,Component:e}):u},h?h.props.inputProps:{}),ref:n},z))});F.muiName="Select";const P=(0,x.A)(D,{name:"MuiSelect"})(F)},91761:(e,t,n)=>{n.d(t,{A:()=>p});var r=n(39850),o=n(89575),a=n(95478),i=n(36274),l=n(96836),s=n(41682),d=n(11192),u=n(7031),c=a.forwardRef(function(e,t){var n=e.children,u=e.classes,c=e.className,p=(e.color,e.component),m=void 0===p?"label":p,f=(e.disabled,e.error,e.filled,e.focused,e.required,(0,r.A)(e,["children","classes","className","color","component","disabled","error","filled","focused","required"])),v=(0,s.A)(),h=(0,l.A)({props:e,muiFormControl:v,states:["color","required","focused","disabled","error","filled"]});return a.createElement(m,(0,o.A)({className:(0,i.A)(u.root,u["color".concat((0,d.A)(h.color||"primary"))],c,h.disabled&&u.disabled,h.error&&u.error,h.filled&&u.filled,h.focused&&u.focused,h.required&&u.required),ref:t},f),n,h.required&&a.createElement("span",{"aria-hidden":!0,className:(0,i.A)(u.asterisk,h.error&&u.error)}," ","*"))});const p=(0,u.A)(function(e){return{root:(0,o.A)({color:e.palette.text.secondary},e.typography.body1,{lineHeight:1,padding:0,"&$focused":{color:e.palette.primary.main},"&$disabled":{color:e.palette.text.disabled},"&$error":{color:e.palette.error.main}}),colorSecondary:{"&$focused":{color:e.palette.secondary.main}},focused:{},disabled:{},error:{},filled:{},required:{},asterisk:{"&$error":{color:e.palette.error.main}}}},{name:"MuiFormLabel"})(c)},95061:(e,t,n)=>{n.d(t,{A:()=>m});var r=n(89575),o=n(39850),a=n(95478),i=n(36274),l=n(8017),s=n(7031),d=n(11192),u=n(73525),c=n(42062),p=a.forwardRef(function(e,t){var n=e.children,s=e.classes,p=e.className,m=e.color,f=void 0===m?"primary":m,v=e.component,h=void 0===v?"div":v,b=e.disabled,g=void 0!==b&&b,A=e.error,y=void 0!==A&&A,x=e.fullWidth,w=void 0!==x&&x,C=e.focused,E=e.hiddenLabel,k=void 0!==E&&E,S=e.margin,R=void 0===S?"none":S,D=e.required,M=void 0!==D&&D,N=e.size,F=e.variant,P=void 0===F?"standard":F,I=(0,o.A)(e,["children","classes","className","color","component","disabled","error","fullWidth","focused","hiddenLabel","margin","required","size","variant"]),W=a.useState(function(){var e=!1;return n&&a.Children.forEach(n,function(t){if((0,u.A)(t,["Input","Select"])){var n=(0,u.A)(t,["Select"])?t.props.input:t;n&&(0,l.gr)(n.props)&&(e=!0)}}),e}),O=W[0],L=W[1],$=a.useState(function(){var e=!1;return n&&a.Children.forEach(n,function(t){(0,u.A)(t,["Input","Select"])&&(0,l.lq)(t.props,!0)&&(e=!0)}),e}),B=$[0],T=$[1],q=a.useState(!1),H=q[0],z=q[1],K=void 0!==C?C:H;g&&K&&z(!1);var V=a.useCallback(function(){T(!0)},[]),U={adornedStart:O,setAdornedStart:L,color:f,disabled:g,error:y,filled:B,focused:K,fullWidth:w,hiddenLabel:k,margin:("small"===N?"dense":void 0)||R,onBlur:function(){z(!1)},onEmpty:a.useCallback(function(){T(!1)},[]),onFilled:V,onFocus:function(){z(!0)},registerEffect:void 0,required:M,variant:P};return a.createElement(c.A.Provider,{value:U},a.createElement(h,(0,r.A)({className:(0,i.A)(s.root,p,"none"!==R&&s["margin".concat((0,d.A)(R))],w&&s.fullWidth),ref:t},I),n))});const m=(0,s.A)({root:{display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},marginNormal:{marginTop:16,marginBottom:8},marginDense:{marginTop:8,marginBottom:4},fullWidth:{width:"100%"}},{name:"MuiFormControl"})(p)},96836:(e,t,n)=>{function r(e){var t=e.props,n=e.states,r=e.muiFormControl;return n.reduce(function(e,n){return e[n]=t[n],r&&void 0===t[n]&&(e[n]=r[n]),e},{})}n.d(t,{A:()=>r})}}]);
|
|
2
|
-
//# sourceMappingURL=4651.c85cecc4.chunk.js.map
|