@backstage-community/plugin-tekton 3.38.0 → 3.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/components/Icons/CriticalRiskIcon.esm.js +5 -1
  3. package/dist/components/Icons/CriticalRiskIcon.esm.js.map +1 -1
  4. package/dist/components/Icons/EqualsIcon.esm.js +5 -1
  5. package/dist/components/Icons/EqualsIcon.esm.js.map +1 -1
  6. package/dist/components/Icons/LinkToSbomIcon.esm.js +5 -16
  7. package/dist/components/Icons/LinkToSbomIcon.esm.js.map +1 -1
  8. package/dist/components/Icons/OutputIcon.esm.js +5 -16
  9. package/dist/components/Icons/OutputIcon.esm.js.map +1 -1
  10. package/dist/components/Icons/ViewLogsIcon.esm.js +5 -16
  11. package/dist/components/Icons/ViewLogsIcon.esm.js.map +1 -1
  12. package/dist/components/PipelineRunList/PipelineRunList.esm.js +64 -60
  13. package/dist/components/PipelineRunList/PipelineRunList.esm.js.map +1 -1
  14. package/dist/components/PipelineRunList/PipelineRunListSearchBar.esm.js +7 -11
  15. package/dist/components/PipelineRunList/PipelineRunListSearchBar.esm.js.map +1 -1
  16. package/dist/components/PipelineRunList/PipelineRunOutput.esm.js +27 -7
  17. package/dist/components/PipelineRunList/PipelineRunOutput.esm.js.map +1 -1
  18. package/dist/components/PipelineRunList/PipelineRunRow.esm.js +123 -58
  19. package/dist/components/PipelineRunList/PipelineRunRow.esm.js.map +1 -1
  20. package/dist/components/PipelineRunList/PipelineRunRowActions.esm.js +1 -1
  21. package/dist/components/PipelineRunList/PipelineRunRowActions.esm.js.map +1 -1
  22. package/dist/components/PipelineRunList/PipelineRunVulnerabilities.esm.js +216 -146
  23. package/dist/components/PipelineRunList/PipelineRunVulnerabilities.esm.js.map +1 -1
  24. package/dist/components/PipelineRunList/PipelineTableHeader.esm.js +10 -16
  25. package/dist/components/PipelineRunList/PipelineTableHeader.esm.js.map +1 -1
  26. package/dist/components/PipelineRunList/ResourceBadge.css.esm.js +1 -1
  27. package/dist/components/PipelineRunList/pipelineRunTableColumns.esm.js +58 -0
  28. package/dist/components/PipelineRunList/pipelineRunTableColumns.esm.js.map +1 -0
  29. package/dist/components/PipelineRunLogs/PipelineRunLogDialog.esm.js +18 -19
  30. package/dist/components/PipelineRunLogs/PipelineRunLogDialog.esm.js.map +1 -1
  31. package/dist/components/PipelineRunLogs/PipelineRunLogViewer.esm.js +3 -3
  32. package/dist/components/PipelineRunLogs/PipelineRunLogViewer.esm.js.map +1 -1
  33. package/dist/components/PipelineRunLogs/PipelineRunLogs.esm.js +2 -2
  34. package/dist/components/PipelineRunLogs/PipelineRunLogs.esm.js.map +1 -1
  35. package/dist/components/PipelineRunLogs/PodLogsDownloadLink.esm.js +1 -1
  36. package/dist/components/PipelineRunLogs/PodLogsDownloadLink.esm.js.map +1 -1
  37. package/dist/components/PipelineRunLogs/TaskStatusStepper.esm.js +43 -63
  38. package/dist/components/PipelineRunLogs/TaskStatusStepper.esm.js.map +1 -1
  39. package/dist/components/PipelineRunOutput/PipelineRunOutputDialog.esm.js +33 -20
  40. package/dist/components/PipelineRunOutput/PipelineRunOutputDialog.esm.js.map +1 -1
  41. package/dist/components/PipelineRunParamsAndResults/PipelineRunParams.esm.js +1 -1
  42. package/dist/components/PipelineRunParamsAndResults/PipelineRunParams.esm.js.map +1 -1
  43. package/dist/components/PipelineRunParamsAndResults/PipelineRunParamsAndResults.esm.js +1 -1
  44. package/dist/components/PipelineRunParamsAndResults/PipelineRunParamsAndResults.esm.js.map +1 -1
  45. package/dist/components/PipelineRunParamsAndResults/PipelineRunParamsAndResultsDialog.esm.js +18 -19
  46. package/dist/components/PipelineRunParamsAndResults/PipelineRunParamsAndResultsDialog.esm.js.map +1 -1
  47. package/dist/components/PipelineRunParamsAndResults/PipelineRunResults.esm.js +1 -1
  48. package/dist/components/PipelineRunParamsAndResults/PipelineRunResults.esm.js.map +1 -1
  49. package/dist/components/Tekton/TektonCIComponent.esm.js +2 -1
  50. package/dist/components/Tekton/TektonCIComponent.esm.js.map +1 -1
  51. package/dist/components/Tekton/TektonStylesProvider.esm.js +8 -0
  52. package/dist/components/Tekton/TektonStylesProvider.esm.js.map +1 -0
  53. package/dist/components/common/ClusterSelector.esm.js +8 -11
  54. package/dist/components/common/ClusterSelector.esm.js.map +1 -1
  55. package/dist/components/common/ErrorPanel.esm.js +1 -1
  56. package/dist/components/common/ErrorPanel.esm.js.map +1 -1
  57. package/dist/components/common/PermissionAlert.esm.js +2 -1
  58. package/dist/components/common/PermissionAlert.esm.js.map +1 -1
  59. package/dist/components/common/Status.esm.js +77 -58
  60. package/dist/components/common/Status.esm.js.map +1 -1
  61. package/dist/components/common/StatusIconAndText.esm.js +17 -23
  62. package/dist/components/common/StatusIconAndText.esm.js.map +1 -1
  63. package/dist/components/common/StatusSelector.esm.js +8 -11
  64. package/dist/components/common/StatusSelector.esm.js.map +1 -1
  65. package/dist/components/common/TableExpandCollapse.esm.js +8 -16
  66. package/dist/components/common/TableExpandCollapse.esm.js.map +1 -1
  67. package/dist/components/pipeline-topology/PipelineTaskNode.esm.js.map +1 -1
  68. package/dist/components/pipeline-topology/PipelineVisualization.css.esm.js +1 -1
  69. package/dist/components/pipeline-topology/PipelineVisualizationStepList.css.esm.js +1 -1
  70. package/dist/components/pipeline-topology/PipelineVisualizationStepList.esm.js +100 -3
  71. package/dist/components/pipeline-topology/PipelineVisualizationStepList.esm.js.map +1 -1
  72. package/dist/components/pipeline-topology/TaskGroupEdge.esm.js.map +1 -1
  73. package/dist/hooks/useDarkTheme.esm.js +4 -4
  74. package/dist/hooks/useDarkTheme.esm.js.map +1 -1
  75. package/dist/styles/tektonEmotionCache.esm.js +9 -0
  76. package/dist/styles/tektonEmotionCache.esm.js.map +1 -0
  77. package/package.json +20 -19
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineRunParamsAndResults.esm.js","sources":["../../../src/components/PipelineRunParamsAndResults/PipelineRunParamsAndResults.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PipelineRunKind } from '@backstage-community/plugin-tekton-react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations';\nimport { Typography } from '@material-ui/core';\nimport { PipelineRunParams } from './PipelineRunParams';\nimport { PipelineRunResults } from './PipelineRunResults';\n\ntype PipelineRunParamsAndResultsProps = {\n pipelineRun: PipelineRunKind;\n};\nexport const PipelineRunParamsAndResults = ({\n pipelineRun,\n}: PipelineRunParamsAndResultsProps) => {\n const { t } = useTranslationRef(tektonTranslationRef);\n\n return (\n <div style={{ height: '80vh' }}>\n <div>\n <Typography variant=\"h6\" align=\"left\" gutterBottom>\n {t('pipelineRunParamsAndResults.params')}\n </Typography>\n <PipelineRunParams pipelineRun={pipelineRun} />\n </div>\n <div style={{ marginTop: '20px' }}>\n <Typography variant=\"h6\" align=\"left\" gutterBottom>\n {t('pipelineRunParamsAndResults.results')}\n </Typography>\n <PipelineRunResults pipelineRun={pipelineRun} />\n </div>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AA0BO,MAAM,8BAA8B,CAAC;AAAA,EAC1C;AACF,CAAA,KAAwC;AACtC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AAEpD,EAAA,4BACG,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAA,EAAQ,QAAO,EAC3B,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAQ,IAAA,EAAK,KAAA,EAAM,QAAO,YAAA,EAAY,IAAA,EAC/C,QAAA,EAAA,CAAA,CAAE,oCAAoC,CAAA,EACzC,CAAA;AAAA,sBACA,GAAA,CAAC,qBAAkB,WAAA,EAA0B;AAAA,KAAA,EAC/C,CAAA;AAAA,yBACC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,QAAO,EAC9B,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAQ,IAAA,EAAK,KAAA,EAAM,QAAO,YAAA,EAAY,IAAA,EAC/C,QAAA,EAAA,CAAA,CAAE,qCAAqC,CAAA,EAC1C,CAAA;AAAA,sBACA,GAAA,CAAC,sBAAmB,WAAA,EAA0B;AAAA,KAAA,EAChD;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PipelineRunParamsAndResults.esm.js","sources":["../../../src/components/PipelineRunParamsAndResults/PipelineRunParamsAndResults.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PipelineRunKind } from '@backstage-community/plugin-tekton-react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations';\nimport Typography from '@mui/material/Typography';\nimport { PipelineRunParams } from './PipelineRunParams';\nimport { PipelineRunResults } from './PipelineRunResults';\n\ntype PipelineRunParamsAndResultsProps = {\n pipelineRun: PipelineRunKind;\n};\nexport const PipelineRunParamsAndResults = ({\n pipelineRun,\n}: PipelineRunParamsAndResultsProps) => {\n const { t } = useTranslationRef(tektonTranslationRef);\n\n return (\n <div style={{ height: '80vh' }}>\n <div>\n <Typography variant=\"h6\" align=\"left\" gutterBottom>\n {t('pipelineRunParamsAndResults.params')}\n </Typography>\n <PipelineRunParams pipelineRun={pipelineRun} />\n </div>\n <div style={{ marginTop: '20px' }}>\n <Typography variant=\"h6\" align=\"left\" gutterBottom>\n {t('pipelineRunParamsAndResults.results')}\n </Typography>\n <PipelineRunResults pipelineRun={pipelineRun} />\n </div>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AA0BO,MAAM,8BAA8B,CAAC;AAAA,EAC1C;AACF,CAAA,KAAwC;AACtC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AAEpD,EAAA,4BACG,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAA,EAAQ,QAAO,EAC3B,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAQ,IAAA,EAAK,KAAA,EAAM,QAAO,YAAA,EAAY,IAAA,EAC/C,QAAA,EAAA,CAAA,CAAE,oCAAoC,CAAA,EACzC,CAAA;AAAA,sBACA,GAAA,CAAC,qBAAkB,WAAA,EAA0B;AAAA,KAAA,EAC/C,CAAA;AAAA,yBACC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,QAAO,EAC9B,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAQ,IAAA,EAAK,KAAA,EAAM,QAAO,YAAA,EAAY,IAAA,EAC/C,QAAA,EAAA,CAAA,CAAE,qCAAqC,CAAA,EAC1C,CAAA;AAAA,sBACA,GAAA,CAAC,sBAAmB,WAAA,EAA0B;AAAA,KAAA,EAChD;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1,6 +1,10 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { ErrorBoundary } from '@backstage/core-components';
3
- import { Dialog, DialogTitle, Box, IconButton, DialogContent, makeStyles, createStyles } from '@material-ui/core';
3
+ import Box from '@mui/material/Box';
4
+ import Dialog from '@mui/material/Dialog';
5
+ import DialogContent from '@mui/material/DialogContent';
6
+ import DialogTitle from '@mui/material/DialogTitle';
7
+ import IconButton from '@mui/material/IconButton';
4
8
  import CloseIcon from '@mui/icons-material/Close';
5
9
  import { tektonGroupColor } from '../../types/types.esm.js';
6
10
  import ResourceBadge from '../PipelineRunList/ResourceBadge.esm.js';
@@ -9,27 +13,22 @@ import '../../translations/index.esm.js';
9
13
  import { PipelineRunParamsAndResults } from './PipelineRunParamsAndResults.esm.js';
10
14
  import { tektonTranslationRef } from '../../translations/ref.esm.js';
11
15
 
12
- const useStyles = makeStyles(
13
- (theme) => createStyles({
14
- titleContainer: {
15
- display: "flex",
16
- alignItems: "center",
17
- gap: theme.spacing(1)
18
- },
19
- closeButton: {
20
- position: "absolute",
21
- right: theme.spacing(1),
22
- top: theme.spacing(1),
23
- color: theme.palette.grey[500]
24
- }
25
- })
26
- );
16
+ const titleContainerSx = {
17
+ display: "flex",
18
+ alignItems: "center",
19
+ gap: 1
20
+ };
21
+ const closeButtonSx = {
22
+ position: "absolute",
23
+ right: (theme) => theme.spacing(1),
24
+ top: (theme) => theme.spacing(1),
25
+ color: (theme) => theme.palette.grey[500]
26
+ };
27
27
  const PipelineRunParamsAndResultsDialog = ({
28
28
  open,
29
29
  closeDialog,
30
30
  pipelineRun
31
31
  }) => {
32
- const classes = useStyles();
33
32
  const { t } = useTranslationRef(tektonTranslationRef);
34
33
  return /* @__PURE__ */ jsxs(
35
34
  Dialog,
@@ -40,7 +39,7 @@ const PipelineRunParamsAndResultsDialog = ({
40
39
  open,
41
40
  onClose: closeDialog,
42
41
  children: [
43
- /* @__PURE__ */ jsx(DialogTitle, { title: t("pipelineRunParamsAndResults.title"), children: /* @__PURE__ */ jsxs(Box, { className: classes.titleContainer, children: [
42
+ /* @__PURE__ */ jsx(DialogTitle, { title: t("pipelineRunParamsAndResults.title"), children: /* @__PURE__ */ jsxs(Box, { sx: titleContainerSx, children: [
44
43
  /* @__PURE__ */ jsx(
45
44
  ResourceBadge,
46
45
  {
@@ -53,7 +52,7 @@ const PipelineRunParamsAndResultsDialog = ({
53
52
  IconButton,
54
53
  {
55
54
  "aria-label": "close",
56
- className: classes.closeButton,
55
+ sx: closeButtonSx,
57
56
  onClick: closeDialog,
58
57
  children: /* @__PURE__ */ jsx(CloseIcon, {})
59
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineRunParamsAndResultsDialog.esm.js","sources":["../../../src/components/PipelineRunParamsAndResults/PipelineRunParamsAndResultsDialog.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorBoundary } from '@backstage/core-components';\nimport {\n Box,\n createStyles,\n Dialog,\n DialogContent,\n DialogTitle,\n IconButton,\n makeStyles,\n Theme,\n} from '@material-ui/core';\nimport CloseIcon from '@mui/icons-material/Close';\n\nimport { PipelineRunKind } from '@backstage-community/plugin-tekton-react';\n\nimport { tektonGroupColor } from '../../types/types';\nimport ResourceBadge from '../PipelineRunList/ResourceBadge';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations';\nimport { PipelineRunParamsAndResults } from './PipelineRunParamsAndResults';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n titleContainer: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n },\n }),\n);\n\ntype PipelineRunParamsAndResultsDialogProps = {\n open: boolean;\n closeDialog: () => void;\n pipelineRun: PipelineRunKind;\n};\nexport const PipelineRunParamsAndResultsDialog = ({\n open,\n closeDialog,\n pipelineRun,\n}: PipelineRunParamsAndResultsDialogProps) => {\n const classes = useStyles();\n\n const { t } = useTranslationRef(tektonTranslationRef);\n\n return (\n <Dialog\n data-testid=\"pipelinerun-params-and-results-dialog\"\n maxWidth=\"xl\"\n fullWidth\n open={open}\n onClose={closeDialog}\n >\n <DialogTitle title={t('pipelineRunParamsAndResults.title')}>\n <Box className={classes.titleContainer}>\n <ResourceBadge\n color={tektonGroupColor}\n abbr=\"PLR\"\n name={pipelineRun?.metadata?.name ?? ''}\n />\n <IconButton\n aria-label=\"close\"\n className={classes.closeButton}\n onClick={closeDialog}\n >\n <CloseIcon />\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent>\n <ErrorBoundary>\n <PipelineRunParamsAndResults pipelineRun={pipelineRun} />\n </ErrorBoundary>\n </DialogContent>\n </Dialog>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAqCA,MAAM,SAAA,GAAY,UAAA;AAAA,EAAW,CAAC,UAC5B,YAAA,CAAa;AAAA,IACX,cAAA,EAAgB;AAAA,MACd,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,GAAA,EAAK,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,KACtB;AAAA,IACA,WAAA,EAAa;AAAA,MACX,QAAA,EAAU,UAAA;AAAA,MACV,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,MACtB,GAAA,EAAK,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,MACpB,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG;AAAA;AAC/B,GACD;AACH,CAAA;AAOO,MAAM,oCAAoC,CAAC;AAAA,EAChD,IAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,KAA8C;AAC5C,EAAA,MAAM,UAAU,SAAA,EAAU;AAE1B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AAEpD,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,uCAAA;AAAA,MACZ,QAAA,EAAS,IAAA;AAAA,MACT,SAAA,EAAS,IAAA;AAAA,MACT,IAAA;AAAA,MACA,OAAA,EAAS,WAAA;AAAA,MAET,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,OAAO,CAAA,CAAE,mCAAmC,GACvD,QAAA,kBAAA,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,cAAA,EACtB,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,gBAAA;AAAA,cACP,IAAA,EAAK,KAAA;AAAA,cACL,IAAA,EAAM,WAAA,EAAa,QAAA,EAAU,IAAA,IAAQ;AAAA;AAAA,WACvC;AAAA,0BACA,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,YAAA,EAAW,OAAA;AAAA,cACX,WAAW,OAAA,CAAQ,WAAA;AAAA,cACnB,OAAA,EAAS,WAAA;AAAA,cAET,8BAAC,SAAA,EAAA,EAAU;AAAA;AAAA;AACb,SAAA,EACF,CAAA,EACF,CAAA;AAAA,wBACA,GAAA,CAAC,iBACC,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EACC,8BAAC,2BAAA,EAAA,EAA4B,WAAA,EAA0B,GACzD,CAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"PipelineRunParamsAndResultsDialog.esm.js","sources":["../../../src/components/PipelineRunParamsAndResults/PipelineRunParamsAndResultsDialog.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorBoundary } from '@backstage/core-components';\nimport Box from '@mui/material/Box';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport IconButton from '@mui/material/IconButton';\nimport type { SxProps, Theme } from '@mui/material/styles';\nimport CloseIcon from '@mui/icons-material/Close';\n\nimport { PipelineRunKind } from '@backstage-community/plugin-tekton-react';\n\nimport { tektonGroupColor } from '../../types/types';\nimport ResourceBadge from '../PipelineRunList/ResourceBadge';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations';\nimport { PipelineRunParamsAndResults } from './PipelineRunParamsAndResults';\n\nconst titleContainerSx = {\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n};\n\nconst closeButtonSx: SxProps<Theme> = {\n position: 'absolute',\n right: (theme: Theme) => theme.spacing(1),\n top: (theme: Theme) => theme.spacing(1),\n color: (theme: Theme) => theme.palette.grey[500],\n};\n\ntype PipelineRunParamsAndResultsDialogProps = {\n open: boolean;\n closeDialog: () => void;\n pipelineRun: PipelineRunKind;\n};\nexport const PipelineRunParamsAndResultsDialog = ({\n open,\n closeDialog,\n pipelineRun,\n}: PipelineRunParamsAndResultsDialogProps) => {\n const { t } = useTranslationRef(tektonTranslationRef);\n\n return (\n <Dialog\n data-testid=\"pipelinerun-params-and-results-dialog\"\n maxWidth=\"xl\"\n fullWidth\n open={open}\n onClose={closeDialog}\n >\n <DialogTitle title={t('pipelineRunParamsAndResults.title')}>\n <Box sx={titleContainerSx}>\n <ResourceBadge\n color={tektonGroupColor}\n abbr=\"PLR\"\n name={pipelineRun?.metadata?.name ?? ''}\n />\n <IconButton\n aria-label=\"close\"\n sx={closeButtonSx}\n onClick={closeDialog}\n >\n <CloseIcon />\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent>\n <ErrorBoundary>\n <PipelineRunParamsAndResults pipelineRun={pipelineRun} />\n </ErrorBoundary>\n </DialogContent>\n </Dialog>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAiCA,MAAM,gBAAA,GAAmB;AAAA,EACvB,OAAA,EAAS,MAAA;AAAA,EACT,UAAA,EAAY,QAAA;AAAA,EACZ,GAAA,EAAK;AACP,CAAA;AAEA,MAAM,aAAA,GAAgC;AAAA,EACpC,QAAA,EAAU,UAAA;AAAA,EACV,KAAA,EAAO,CAAC,KAAA,KAAiB,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,EACxC,GAAA,EAAK,CAAC,KAAA,KAAiB,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,EACtC,OAAO,CAAC,KAAA,KAAiB,KAAA,CAAM,OAAA,CAAQ,KAAK,GAAG;AACjD,CAAA;AAOO,MAAM,oCAAoC,CAAC;AAAA,EAChD,IAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,KAA8C;AAC5C,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AAEpD,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,uCAAA;AAAA,MACZ,QAAA,EAAS,IAAA;AAAA,MACT,SAAA,EAAS,IAAA;AAAA,MACT,IAAA;AAAA,MACA,OAAA,EAAS,WAAA;AAAA,MAET,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,OAAO,CAAA,CAAE,mCAAmC,GACvD,QAAA,kBAAA,IAAA,CAAC,GAAA,EAAA,EAAI,IAAI,gBAAA,EACP,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,gBAAA;AAAA,cACP,IAAA,EAAK,KAAA;AAAA,cACL,IAAA,EAAM,WAAA,EAAa,QAAA,EAAU,IAAA,IAAQ;AAAA;AAAA,WACvC;AAAA,0BACA,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,YAAA,EAAW,OAAA;AAAA,cACX,EAAA,EAAI,aAAA;AAAA,cACJ,OAAA,EAAS,WAAA;AAAA,cAET,8BAAC,SAAA,EAAA,EAAU;AAAA;AAAA;AACb,SAAA,EACF,CAAA,EACF,CAAA;AAAA,wBACA,GAAA,CAAC,iBACC,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EACC,8BAAC,2BAAA,EAAA,EAA4B,WAAA,EAA0B,GACzD,CAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
3
- import { Typography } from '@material-ui/core';
3
+ import Typography from '@mui/material/Typography';
4
4
  import '../../translations/index.esm.js';
5
5
  import { Output } from './Output.esm.js';
6
6
  import { tektonTranslationRef } from '../../translations/ref.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineRunResults.esm.js","sources":["../../../src/components/PipelineRunParamsAndResults/PipelineRunResults.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { PipelineRunKind } from '@backstage-community/plugin-tekton-react';\nimport { Typography } from '@material-ui/core';\nimport { tektonTranslationRef } from '../../translations';\nimport { Output } from './Output';\n\ntype PipelineRunResultsProps = {\n pipelineRun: PipelineRunKind;\n};\n\nexport const PipelineRunResults = ({\n pipelineRun,\n}: PipelineRunResultsProps) => {\n const { t } = useTranslationRef(tektonTranslationRef);\n const noDataAvailable =\n pipelineRun.status?.results === undefined ||\n pipelineRun.status?.results.length === 0;\n\n if (noDataAvailable) {\n return (\n <Typography align=\"center\" variant=\"body2\">\n {t('pipelineRunParamsAndResults.noResults')}\n </Typography>\n );\n }\n\n return <Output results={pipelineRun?.status?.results ?? []} />;\n};\n"],"names":[],"mappings":";;;;;;;AA0BO,MAAM,qBAAqB,CAAC;AAAA,EACjC;AACF,CAAA,KAA+B;AAC7B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AACpD,EAAA,MAAM,eAAA,GACJ,YAAY,MAAA,EAAQ,OAAA,KAAY,UAChC,WAAA,CAAY,MAAA,EAAQ,QAAQ,MAAA,KAAW,CAAA;AAEzC,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,uBACE,GAAA,CAAC,cAAW,KAAA,EAAM,QAAA,EAAS,SAAQ,OAAA,EAChC,QAAA,EAAA,CAAA,CAAE,uCAAuC,CAAA,EAC5C,CAAA;AAAA,EAEJ;AAEA,EAAA,2BAAQ,MAAA,EAAA,EAAO,OAAA,EAAS,aAAa,MAAA,EAAQ,OAAA,IAAW,EAAC,EAAG,CAAA;AAC9D;;;;"}
1
+ {"version":3,"file":"PipelineRunResults.esm.js","sources":["../../../src/components/PipelineRunParamsAndResults/PipelineRunResults.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { PipelineRunKind } from '@backstage-community/plugin-tekton-react';\nimport Typography from '@mui/material/Typography';\nimport { tektonTranslationRef } from '../../translations';\nimport { Output } from './Output';\n\ntype PipelineRunResultsProps = {\n pipelineRun: PipelineRunKind;\n};\n\nexport const PipelineRunResults = ({\n pipelineRun,\n}: PipelineRunResultsProps) => {\n const { t } = useTranslationRef(tektonTranslationRef);\n const noDataAvailable =\n pipelineRun.status?.results === undefined ||\n pipelineRun.status?.results.length === 0;\n\n if (noDataAvailable) {\n return (\n <Typography align=\"center\" variant=\"body2\">\n {t('pipelineRunParamsAndResults.noResults')}\n </Typography>\n );\n }\n\n return <Output results={pipelineRun?.status?.results ?? []} />;\n};\n"],"names":[],"mappings":";;;;;;;AA0BO,MAAM,qBAAqB,CAAC;AAAA,EACjC;AACF,CAAA,KAA+B;AAC7B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AACpD,EAAA,MAAM,eAAA,GACJ,YAAY,MAAA,EAAQ,OAAA,KAAY,UAChC,WAAA,CAAY,MAAA,EAAQ,QAAQ,MAAA,KAAW,CAAA;AAEzC,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,uBACE,GAAA,CAAC,cAAW,KAAA,EAAM,QAAA,EAAS,SAAQ,OAAA,EAChC,QAAA,EAAA,CAAA,CAAE,uCAAuC,CAAA,EAC5C,CAAA;AAAA,EAEJ;AAEA,EAAA,2BAAQ,MAAA,EAAA,EAAO,OAAA,EAAS,aAAa,MAAA,EAAQ,OAAA,IAAW,EAAC,EAAG,CAAA;AAC9D;;;;"}
@@ -7,6 +7,7 @@ import { useTektonViewPermission } from '../../hooks/useTektonViewPermission.esm
7
7
  import { ModelsPlural } from '../../models.esm.js';
8
8
  import PermissionAlert from '../common/PermissionAlert.esm.js';
9
9
  import PipelineRunList from '../PipelineRunList/PipelineRunList.esm.js';
10
+ import { TektonStylesProvider } from './TektonStylesProvider.esm.js';
10
11
  import '@patternfly/react-core/dist/styles/base-no-reset.css';
11
12
  import '@patternfly/patternfly/utilities/Accessibility/accessibility.css';
12
13
  import { Progress } from '@backstage/core-components';
@@ -49,7 +50,7 @@ const TektonCIComponent = () => {
49
50
  if (!viewPermissionData.allowed) {
50
51
  return /* @__PURE__ */ jsx(PermissionAlert, {});
51
52
  }
52
- return /* @__PURE__ */ jsx(TektonResourcesContext.Provider, { value: tektonResourcesContextData, children: /* @__PURE__ */ jsx(PipelineRunList, {}) });
53
+ return /* @__PURE__ */ jsx(TektonStylesProvider, { children: /* @__PURE__ */ jsx(TektonResourcesContext.Provider, { value: tektonResourcesContextData, children: /* @__PURE__ */ jsx(PipelineRunList, {}) }) });
53
54
  };
54
55
 
55
56
  export { TektonCIComponent };
@@ -1 +1 @@
1
- {"version":3,"file":"TektonCIComponent.esm.js","sources":["../../../src/components/Tekton/TektonCIComponent.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useLayoutEffect } from 'react';\n\nimport { TektonResourcesContext } from '../../hooks/TektonResourcesContext';\nimport { useDarkTheme } from '../../hooks/useDarkTheme';\nimport { useTektonObjectsResponse } from '../../hooks/useTektonObjectsResponse';\nimport { useTektonViewPermission } from '../../hooks/useTektonViewPermission';\nimport { ModelsPlural } from '../../models';\nimport PermissionAlert from '../common/PermissionAlert';\nimport PipelineRunList from '../PipelineRunList/PipelineRunList';\n\nimport '@patternfly/react-core/dist/styles/base-no-reset.css';\nimport '@patternfly/patternfly/utilities/Accessibility/accessibility.css';\nimport { Progress } from '@backstage/core-components';\n\nconst savedStylesheets = new Set<HTMLLinkElement>();\n\nexport const TektonCIComponent = () => {\n useDarkTheme();\n\n useLayoutEffect(() => {\n const scalprumStyles = Array.from(\n document.querySelectorAll('link[rel=\"stylesheet\"]'),\n ).filter(link =>\n link.attributes\n .getNamedItem('href')\n ?.value?.includes('backstage-plugin-tekton'),\n );\n\n scalprumStyles.forEach(link =>\n savedStylesheets.add(link as HTMLLinkElement),\n );\n\n savedStylesheets.forEach(link => {\n if (!document.head.contains(link)) {\n document.head.appendChild(link);\n }\n });\n return () => {\n savedStylesheets.forEach(link => {\n if (document.head.contains(link)) {\n document.head.removeChild(link);\n }\n });\n };\n }, []);\n\n const watchedResources = [\n ModelsPlural.pipelineruns,\n ModelsPlural.taskruns,\n ModelsPlural.pods,\n ];\n const tektonResourcesContextData = useTektonObjectsResponse(watchedResources);\n const viewPermissionData = useTektonViewPermission();\n\n if (viewPermissionData.loading) {\n return (\n <div data-testid=\"tekton-permission-progress\">\n <Progress />\n </div>\n );\n }\n if (!viewPermissionData.allowed) {\n return <PermissionAlert />;\n }\n return (\n <TektonResourcesContext.Provider value={tektonResourcesContextData}>\n <PipelineRunList />\n </TektonResourcesContext.Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AA6BA,MAAM,gBAAA,uBAAuB,GAAA,EAAqB;AAE3C,MAAM,oBAAoB,MAAM;AACrC,EAAA,YAAA,EAAa;AAEb,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,MAAM,iBAAiB,KAAA,CAAM,IAAA;AAAA,MAC3B,QAAA,CAAS,iBAAiB,wBAAwB;AAAA,KACpD,CAAE,MAAA;AAAA,MAAO,CAAA,IAAA,KACP,KAAK,UAAA,CACF,YAAA,CAAa,MAAM,CAAA,EAClB,KAAA,EAAO,SAAS,yBAAyB;AAAA,KAC/C;AAEA,IAAA,cAAA,CAAe,OAAA;AAAA,MAAQ,CAAA,IAAA,KACrB,gBAAA,CAAiB,GAAA,CAAI,IAAuB;AAAA,KAC9C;AAEA,IAAA,gBAAA,CAAiB,QAAQ,CAAA,IAAA,KAAQ;AAC/B,MAAA,IAAI,CAAC,QAAA,CAAS,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA,EAAG;AACjC,QAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAAA,MAChC;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,gBAAA,CAAiB,QAAQ,CAAA,IAAA,KAAQ;AAC/B,QAAA,IAAI,QAAA,CAAS,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA,EAAG;AAChC,UAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAAA,QAChC;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACvB,YAAA,CAAa,YAAA;AAAA,IACb,YAAA,CAAa,QAAA;AAAA,IACb,YAAA,CAAa;AAAA,GACf;AACA,EAAA,MAAM,0BAAA,GAA6B,yBAAyB,gBAAgB,CAAA;AAC5E,EAAA,MAAM,qBAAqB,uBAAA,EAAwB;AAEnD,EAAA,IAAI,mBAAmB,OAAA,EAAS;AAC9B,IAAA,2BACG,KAAA,EAAA,EAAI,aAAA,EAAY,4BAAA,EACf,QAAA,kBAAA,GAAA,CAAC,YAAS,CAAA,EACZ,CAAA;AAAA,EAEJ;AACA,EAAA,IAAI,CAAC,mBAAmB,OAAA,EAAS;AAC/B,IAAA,2BAAQ,eAAA,EAAA,EAAgB,CAAA;AAAA,EAC1B;AACA,EAAA,uBACE,GAAA,CAAC,uBAAuB,QAAA,EAAvB,EAAgC,OAAO,0BAAA,EACtC,QAAA,kBAAA,GAAA,CAAC,mBAAgB,CAAA,EACnB,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"TektonCIComponent.esm.js","sources":["../../../src/components/Tekton/TektonCIComponent.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useLayoutEffect } from 'react';\n\nimport { TektonResourcesContext } from '../../hooks/TektonResourcesContext';\nimport { useDarkTheme } from '../../hooks/useDarkTheme';\nimport { useTektonObjectsResponse } from '../../hooks/useTektonObjectsResponse';\nimport { useTektonViewPermission } from '../../hooks/useTektonViewPermission';\nimport { ModelsPlural } from '../../models';\nimport PermissionAlert from '../common/PermissionAlert';\nimport PipelineRunList from '../PipelineRunList/PipelineRunList';\nimport { TektonStylesProvider } from './TektonStylesProvider';\n\nimport '@patternfly/react-core/dist/styles/base-no-reset.css';\nimport '@patternfly/patternfly/utilities/Accessibility/accessibility.css';\nimport { Progress } from '@backstage/core-components';\n\nconst savedStylesheets = new Set<HTMLLinkElement>();\n\nexport const TektonCIComponent = () => {\n useDarkTheme();\n\n useLayoutEffect(() => {\n const scalprumStyles = Array.from(\n document.querySelectorAll('link[rel=\"stylesheet\"]'),\n ).filter(link =>\n link.attributes\n .getNamedItem('href')\n ?.value?.includes('backstage-plugin-tekton'),\n );\n\n scalprumStyles.forEach(link =>\n savedStylesheets.add(link as HTMLLinkElement),\n );\n\n savedStylesheets.forEach(link => {\n if (!document.head.contains(link)) {\n document.head.appendChild(link);\n }\n });\n return () => {\n savedStylesheets.forEach(link => {\n if (document.head.contains(link)) {\n document.head.removeChild(link);\n }\n });\n };\n }, []);\n\n const watchedResources = [\n ModelsPlural.pipelineruns,\n ModelsPlural.taskruns,\n ModelsPlural.pods,\n ];\n const tektonResourcesContextData = useTektonObjectsResponse(watchedResources);\n const viewPermissionData = useTektonViewPermission();\n\n if (viewPermissionData.loading) {\n return (\n <div data-testid=\"tekton-permission-progress\">\n <Progress />\n </div>\n );\n }\n if (!viewPermissionData.allowed) {\n return <PermissionAlert />;\n }\n return (\n <TektonStylesProvider>\n <TektonResourcesContext.Provider value={tektonResourcesContextData}>\n <PipelineRunList />\n </TektonResourcesContext.Provider>\n </TektonStylesProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AA8BA,MAAM,gBAAA,uBAAuB,GAAA,EAAqB;AAE3C,MAAM,oBAAoB,MAAM;AACrC,EAAA,YAAA,EAAa;AAEb,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,MAAM,iBAAiB,KAAA,CAAM,IAAA;AAAA,MAC3B,QAAA,CAAS,iBAAiB,wBAAwB;AAAA,KACpD,CAAE,MAAA;AAAA,MAAO,CAAA,IAAA,KACP,KAAK,UAAA,CACF,YAAA,CAAa,MAAM,CAAA,EAClB,KAAA,EAAO,SAAS,yBAAyB;AAAA,KAC/C;AAEA,IAAA,cAAA,CAAe,OAAA;AAAA,MAAQ,CAAA,IAAA,KACrB,gBAAA,CAAiB,GAAA,CAAI,IAAuB;AAAA,KAC9C;AAEA,IAAA,gBAAA,CAAiB,QAAQ,CAAA,IAAA,KAAQ;AAC/B,MAAA,IAAI,CAAC,QAAA,CAAS,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA,EAAG;AACjC,QAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAAA,MAChC;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,gBAAA,CAAiB,QAAQ,CAAA,IAAA,KAAQ;AAC/B,QAAA,IAAI,QAAA,CAAS,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA,EAAG;AAChC,UAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAAA,QAChC;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACvB,YAAA,CAAa,YAAA;AAAA,IACb,YAAA,CAAa,QAAA;AAAA,IACb,YAAA,CAAa;AAAA,GACf;AACA,EAAA,MAAM,0BAAA,GAA6B,yBAAyB,gBAAgB,CAAA;AAC5E,EAAA,MAAM,qBAAqB,uBAAA,EAAwB;AAEnD,EAAA,IAAI,mBAAmB,OAAA,EAAS;AAC9B,IAAA,2BACG,KAAA,EAAA,EAAI,aAAA,EAAY,4BAAA,EACf,QAAA,kBAAA,GAAA,CAAC,YAAS,CAAA,EACZ,CAAA;AAAA,EAEJ;AACA,EAAA,IAAI,CAAC,mBAAmB,OAAA,EAAS;AAC/B,IAAA,2BAAQ,eAAA,EAAA,EAAgB,CAAA;AAAA,EAC1B;AACA,EAAA,uBACE,GAAA,CAAC,oBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,sBAAA,CAAuB,QAAA,EAAvB,EAAgC,KAAA,EAAO,0BAAA,EACtC,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,CAAA,EACnB,CAAA,EACF,CAAA;AAEJ;;;;"}
@@ -0,0 +1,8 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { CacheProvider } from '@emotion/react';
3
+ import { tektonEmotionCache } from '../../styles/tektonEmotionCache.esm.js';
4
+
5
+ const TektonStylesProvider = ({ children }) => /* @__PURE__ */ jsx(CacheProvider, { value: tektonEmotionCache, children });
6
+
7
+ export { TektonStylesProvider };
8
+ //# sourceMappingURL=TektonStylesProvider.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TektonStylesProvider.esm.js","sources":["../../../src/components/Tekton/TektonStylesProvider.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport type { PropsWithChildren } from 'react';\n\nimport { CacheProvider } from '@emotion/react';\n\nimport { tektonEmotionCache } from '../../styles/tektonEmotionCache';\n\nexport const TektonStylesProvider = ({ children }: PropsWithChildren) => (\n <CacheProvider value={tektonEmotionCache}>{children}</CacheProvider>\n);\n"],"names":[],"mappings":";;;;AAqBO,MAAM,oBAAA,GAAuB,CAAC,EAAE,QAAA,uBACrC,GAAA,CAAC,aAAA,EAAA,EAAc,KAAA,EAAO,kBAAA,EAAqB,QAAA,EAAS;;;;"}
@@ -1,23 +1,20 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useContext, useState } from 'react';
3
3
  import { Select } from '@backstage/core-components';
4
- import { Typography, makeStyles } from '@material-ui/core';
4
+ import Typography from '@mui/material/Typography';
5
5
  import { TektonResourcesContext } from '../../hooks/TektonResourcesContext.esm.js';
6
6
  import './ClusterSelector.css.esm.js';
7
7
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
8
8
  import '../../translations/index.esm.js';
9
9
  import { tektonTranslationRef } from '../../translations/ref.esm.js';
10
10
 
11
- const useStyles = makeStyles((theme) => ({
12
- label: {
13
- color: theme.palette.text.primary,
14
- fontSize: "1rem",
15
- paddingRight: "10px",
16
- fontWeight: "bold"
17
- }
18
- }));
11
+ const labelSx = {
12
+ color: "text.primary",
13
+ fontSize: "1rem",
14
+ paddingRight: "10px",
15
+ fontWeight: "bold"
16
+ };
19
17
  const ClusterSelector = () => {
20
- const classes = useStyles();
21
18
  const {
22
19
  clusters: k8sClusters,
23
20
  selectedCluster,
@@ -36,7 +33,7 @@ const ClusterSelector = () => {
36
33
  setClusterSelected(arg);
37
34
  };
38
35
  return /* @__PURE__ */ jsxs("div", { className: "bs-tkn-cluster-selector", children: [
39
- /* @__PURE__ */ jsx(Typography, { className: classes.label, children: t("clusterSelector.label") }),
36
+ /* @__PURE__ */ jsx(Typography, { sx: labelSx, children: t("clusterSelector.label") }),
40
37
  /* @__PURE__ */ jsx(
41
38
  Select,
42
39
  {
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterSelector.esm.js","sources":["../../../src/components/common/ClusterSelector.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useContext, useState } from 'react';\n\nimport { Select, SelectedItems } from '@backstage/core-components';\n\nimport { makeStyles, Typography, Theme } from '@material-ui/core';\n\nimport { TektonResourcesContext } from '../../hooks/TektonResourcesContext';\n\nimport './ClusterSelector.css';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations';\n\nconst useStyles = makeStyles<Theme>(theme => ({\n label: {\n color: theme.palette.text.primary,\n fontSize: '1rem',\n paddingRight: '10px',\n fontWeight: 'bold',\n },\n}));\n\nexport const ClusterSelector = () => {\n const classes = useStyles();\n const {\n clusters: k8sClusters,\n selectedCluster,\n setSelectedCluster: setClusterContext,\n } = useContext(TektonResourcesContext);\n const { t } = useTranslationRef(tektonTranslationRef);\n const clusterOptions = k8sClusters.map(cluster => ({\n value: cluster,\n label: cluster,\n }));\n\n const curCluster =\n selectedCluster && k8sClusters?.length > 0\n ? k8sClusters[selectedCluster]\n : k8sClusters?.[0];\n\n const [clusterSelected, setClusterSelected] =\n useState<SelectedItems>(curCluster);\n\n const onClusterChange = (arg: SelectedItems) => {\n const index = k8sClusters.findIndex(cluster => cluster === arg);\n setClusterContext(index);\n setClusterSelected(arg);\n };\n return (\n <div className=\"bs-tkn-cluster-selector\">\n <Typography className={classes.label}>\n {t('clusterSelector.label')}\n </Typography>\n <Select\n onChange={onClusterChange}\n label=\"\"\n items={clusterOptions}\n selected={clusterSelected}\n margin=\"dense\"\n />\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AA2BA,MAAM,SAAA,GAAY,WAAkB,CAAA,KAAA,MAAU;AAAA,EAC5C,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,OAAA;AAAA,IAC1B,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,MAAA;AAAA,IACd,UAAA,EAAY;AAAA;AAEhB,CAAA,CAAE,CAAA;AAEK,MAAM,kBAAkB,MAAM;AACnC,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM;AAAA,IACJ,QAAA,EAAU,WAAA;AAAA,IACV,eAAA;AAAA,IACA,kBAAA,EAAoB;AAAA,GACtB,GAAI,WAAW,sBAAsB,CAAA;AACrC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AACpD,EAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,GAAA,CAAI,CAAA,OAAA,MAAY;AAAA,IACjD,KAAA,EAAO,OAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT,CAAE,CAAA;AAEF,EAAA,MAAM,UAAA,GACJ,mBAAmB,WAAA,EAAa,MAAA,GAAS,IACrC,WAAA,CAAY,eAAe,CAAA,GAC3B,WAAA,GAAc,CAAC,CAAA;AAErB,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GACxC,SAAwB,UAAU,CAAA;AAEpC,EAAA,MAAM,eAAA,GAAkB,CAAC,GAAA,KAAuB;AAC9C,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,SAAA,CAAU,CAAA,OAAA,KAAW,YAAY,GAAG,CAAA;AAC9D,IAAA,iBAAA,CAAkB,KAAK,CAAA;AACvB,IAAA,kBAAA,CAAmB,GAAG,CAAA;AAAA,EACxB,CAAA;AACA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,cAAW,SAAA,EAAW,OAAA,CAAQ,KAAA,EAC5B,QAAA,EAAA,CAAA,CAAE,uBAAuB,CAAA,EAC5B,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAU,eAAA;AAAA,QACV,KAAA,EAAM,EAAA;AAAA,QACN,KAAA,EAAO,cAAA;AAAA,QACP,QAAA,EAAU,eAAA;AAAA,QACV,MAAA,EAAO;AAAA;AAAA;AACT,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ClusterSelector.esm.js","sources":["../../../src/components/common/ClusterSelector.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useContext, useState } from 'react';\n\nimport { Select, SelectedItems } from '@backstage/core-components';\n\nimport Typography from '@mui/material/Typography';\n\nimport { TektonResourcesContext } from '../../hooks/TektonResourcesContext';\n\nimport './ClusterSelector.css';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations';\n\nconst labelSx = {\n color: 'text.primary',\n fontSize: '1rem',\n paddingRight: '10px',\n fontWeight: 'bold',\n};\n\nexport const ClusterSelector = () => {\n const {\n clusters: k8sClusters,\n selectedCluster,\n setSelectedCluster: setClusterContext,\n } = useContext(TektonResourcesContext);\n const { t } = useTranslationRef(tektonTranslationRef);\n const clusterOptions = k8sClusters.map(cluster => ({\n value: cluster,\n label: cluster,\n }));\n\n const curCluster =\n selectedCluster && k8sClusters?.length > 0\n ? k8sClusters[selectedCluster]\n : k8sClusters?.[0];\n\n const [clusterSelected, setClusterSelected] =\n useState<SelectedItems>(curCluster);\n\n const onClusterChange = (arg: SelectedItems) => {\n const index = k8sClusters.findIndex(cluster => cluster === arg);\n setClusterContext(index);\n setClusterSelected(arg);\n };\n return (\n <div className=\"bs-tkn-cluster-selector\">\n <Typography sx={labelSx}>{t('clusterSelector.label')}</Typography>\n <Select\n onChange={onClusterChange}\n label=\"\"\n items={clusterOptions}\n selected={clusterSelected}\n margin=\"dense\"\n />\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AA2BA,MAAM,OAAA,GAAU;AAAA,EACd,KAAA,EAAO,cAAA;AAAA,EACP,QAAA,EAAU,MAAA;AAAA,EACV,YAAA,EAAc,MAAA;AAAA,EACd,UAAA,EAAY;AACd,CAAA;AAEO,MAAM,kBAAkB,MAAM;AACnC,EAAA,MAAM;AAAA,IACJ,QAAA,EAAU,WAAA;AAAA,IACV,eAAA;AAAA,IACA,kBAAA,EAAoB;AAAA,GACtB,GAAI,WAAW,sBAAsB,CAAA;AACrC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AACpD,EAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,GAAA,CAAI,CAAA,OAAA,MAAY;AAAA,IACjD,KAAA,EAAO,OAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT,CAAE,CAAA;AAEF,EAAA,MAAM,UAAA,GACJ,mBAAmB,WAAA,EAAa,MAAA,GAAS,IACrC,WAAA,CAAY,eAAe,CAAA,GAC3B,WAAA,GAAc,CAAC,CAAA;AAErB,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GACxC,SAAwB,UAAU,CAAA;AAEpC,EAAA,MAAM,eAAA,GAAkB,CAAC,GAAA,KAAuB;AAC9C,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,SAAA,CAAU,CAAA,OAAA,KAAW,YAAY,GAAG,CAAA;AAC9D,IAAA,iBAAA,CAAkB,KAAK,CAAA;AACvB,IAAA,kBAAA,CAAmB,GAAG,CAAA;AAAA,EACxB,CAAA;AACA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAI,OAAA,EAAU,QAAA,EAAA,CAAA,CAAE,uBAAuB,CAAA,EAAE,CAAA;AAAA,oBACrD,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAU,eAAA;AAAA,QACV,KAAA,EAAM,EAAA;AAAA,QACN,KAAA,EAAO,cAAA;AAAA,QACP,QAAA,EAAU,eAAA;AAAA,QACV,MAAA,EAAO;AAAA;AAAA;AACT,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { WarningPanel } from '@backstage/core-components';
3
3
  import { useEntity } from '@backstage/plugin-catalog-react';
4
- import { Typography } from '@material-ui/core';
4
+ import Typography from '@mui/material/Typography';
5
5
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
6
6
  import '../../translations/index.esm.js';
7
7
  import { tektonTranslationRef } from '../../translations/ref.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorPanel.esm.js","sources":["../../../src/components/common/ErrorPanel.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { WarningPanel } from '@backstage/core-components';\nimport { useEntity } from '@backstage/plugin-catalog-react';\n\nimport { Typography } from '@material-ui/core';\n\nimport { ClusterError, ClusterErrors } from '../../types/types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations/index.ts';\n\ntype ErrorPanelProps = { allErrors: ClusterErrors };\n\nexport const ErrorPanel = ({ allErrors }: ErrorPanelProps) => {\n const {\n entity: {\n metadata: { name: entityName },\n },\n } = useEntity();\n const { t } = useTranslationRef(tektonTranslationRef);\n return (\n <div className=\"warning-panel\" style={{ marginBottom: '16px' }}>\n <WarningPanel\n title={t('errorPanel.title')}\n message={t('errorPanel.description', {\n entityName,\n })}\n >\n <div>\n Errors:\n {allErrors.map((err: ClusterError, _index) => {\n const errMessage = err.message\n ? `${err.message}`\n : `Error fetching Kubernetes resource: '${err.resourcePath}', error: ${err.errorType}, status code: ${err.statusCode}`;\n return (\n <Typography\n variant=\"body2\"\n key={`${err.resourcePath}-${err.statusCode}`}\n >\n {err.errorType === 'FETCH_ERROR'\n ? `Error communicating with Kubernetes: ${err.errorType}, message: ${err.message}`\n : errMessage}\n </Typography>\n );\n })}\n </div>\n </WarningPanel>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AA0BO,MAAM,UAAA,GAAa,CAAC,EAAE,SAAA,EAAU,KAAuB;AAC5D,EAAA,MAAM;AAAA,IACJ,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU,EAAE,IAAA,EAAM,UAAA;AAAW;AAC/B,MACE,SAAA,EAAU;AACd,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AACpD,EAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAU,eAAA,EAAgB,OAAO,EAAE,YAAA,EAAc,QAAO,EAC3D,QAAA,kBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,MAC3B,OAAA,EAAS,EAAE,wBAAA,EAA0B;AAAA,QACnC;AAAA,OACD,CAAA;AAAA,MAED,+BAAC,KAAA,EAAA,EAAI,QAAA,EAAA;AAAA,QAAA,SAAA;AAAA,QAEF,SAAA,CAAU,GAAA,CAAI,CAAC,GAAA,EAAmB,MAAA,KAAW;AAC5C,UAAA,MAAM,UAAA,GAAa,GAAA,CAAI,OAAA,GACnB,CAAA,EAAG,IAAI,OAAO,CAAA,CAAA,GACd,CAAA,qCAAA,EAAwC,GAAA,CAAI,YAAY,CAAA,UAAA,EAAa,GAAA,CAAI,SAAS,CAAA,eAAA,EAAkB,IAAI,UAAU,CAAA,CAAA;AACtH,UAAA,uBACE,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,OAAA;AAAA,cAGP,QAAA,EAAA,GAAA,CAAI,cAAc,aAAA,GACf,CAAA,qCAAA,EAAwC,IAAI,SAAS,CAAA,WAAA,EAAc,GAAA,CAAI,OAAO,CAAA,CAAA,GAC9E;AAAA,aAAA;AAAA,YAJC,CAAA,EAAG,GAAA,CAAI,YAAY,CAAA,CAAA,EAAI,IAAI,UAAU,CAAA;AAAA,WAK5C;AAAA,QAEJ,CAAC;AAAA,OAAA,EACH;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ErrorPanel.esm.js","sources":["../../../src/components/common/ErrorPanel.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { WarningPanel } from '@backstage/core-components';\nimport { useEntity } from '@backstage/plugin-catalog-react';\n\nimport Typography from '@mui/material/Typography';\n\nimport { ClusterError, ClusterErrors } from '../../types/types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations/index.ts';\n\ntype ErrorPanelProps = { allErrors: ClusterErrors };\n\nexport const ErrorPanel = ({ allErrors }: ErrorPanelProps) => {\n const {\n entity: {\n metadata: { name: entityName },\n },\n } = useEntity();\n const { t } = useTranslationRef(tektonTranslationRef);\n return (\n <div className=\"warning-panel\" style={{ marginBottom: '16px' }}>\n <WarningPanel\n title={t('errorPanel.title')}\n message={t('errorPanel.description', {\n entityName,\n })}\n >\n <div>\n Errors:\n {allErrors.map((err: ClusterError, _index) => {\n const errMessage = err.message\n ? `${err.message}`\n : `Error fetching Kubernetes resource: '${err.resourcePath}', error: ${err.errorType}, status code: ${err.statusCode}`;\n return (\n <Typography\n variant=\"body2\"\n key={`${err.resourcePath}-${err.statusCode}`}\n >\n {err.errorType === 'FETCH_ERROR'\n ? `Error communicating with Kubernetes: ${err.errorType}, message: ${err.message}`\n : errMessage}\n </Typography>\n );\n })}\n </div>\n </WarningPanel>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AA0BO,MAAM,UAAA,GAAa,CAAC,EAAE,SAAA,EAAU,KAAuB;AAC5D,EAAA,MAAM;AAAA,IACJ,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU,EAAE,IAAA,EAAM,UAAA;AAAW;AAC/B,MACE,SAAA,EAAU;AACd,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AACpD,EAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAU,eAAA,EAAgB,OAAO,EAAE,YAAA,EAAc,QAAO,EAC3D,QAAA,kBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,MAC3B,OAAA,EAAS,EAAE,wBAAA,EAA0B;AAAA,QACnC;AAAA,OACD,CAAA;AAAA,MAED,+BAAC,KAAA,EAAA,EAAI,QAAA,EAAA;AAAA,QAAA,SAAA;AAAA,QAEF,SAAA,CAAU,GAAA,CAAI,CAAC,GAAA,EAAmB,MAAA,KAAW;AAC5C,UAAA,MAAM,UAAA,GAAa,GAAA,CAAI,OAAA,GACnB,CAAA,EAAG,IAAI,OAAO,CAAA,CAAA,GACd,CAAA,qCAAA,EAAwC,GAAA,CAAI,YAAY,CAAA,UAAA,EAAa,GAAA,CAAI,SAAS,CAAA,eAAA,EAAkB,IAAI,UAAU,CAAA,CAAA;AACtH,UAAA,uBACE,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,OAAA;AAAA,cAGP,QAAA,EAAA,GAAA,CAAI,cAAc,aAAA,GACf,CAAA,qCAAA,EAAwC,IAAI,SAAS,CAAA,WAAA,EAAc,GAAA,CAAI,OAAO,CAAA,CAAA,GAC9E;AAAA,aAAA;AAAA,YAJC,CAAA,EAAG,GAAA,CAAI,YAAY,CAAA,CAAA,EAAI,IAAI,UAAU,CAAA;AAAA,WAK5C;AAAA,QAEJ,CAAC;AAAA,OAAA,EACH;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
@@ -1,5 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { Alert, AlertTitle } from '@material-ui/lab';
2
+ import Alert from '@mui/material/Alert';
3
+ import AlertTitle from '@mui/material/AlertTitle';
3
4
  import { kubernetesClustersReadPermission, kubernetesResourcesReadPermission } from '@backstage/plugin-kubernetes-common';
4
5
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
6
  import '../../translations/index.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionAlert.esm.js","sources":["../../../src/components/common/PermissionAlert.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Alert, AlertTitle } from '@material-ui/lab';\nimport {\n kubernetesClustersReadPermission,\n kubernetesResourcesReadPermission,\n} from '@backstage/plugin-kubernetes-common';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations/index.ts';\n\nconst permissions = [\n kubernetesClustersReadPermission,\n kubernetesResourcesReadPermission,\n]\n .map(p => p.name)\n .join(', ');\n\nconst PermissionAlert = () => {\n const { t } = useTranslationRef(tektonTranslationRef);\n\n return (\n <Alert severity=\"warning\" data-testid=\"no-permission-alert\">\n <AlertTitle>{t('permissionAlert.title')}</AlertTitle>\n {t('permissionAlert.description', { permissions })}\n </Alert>\n );\n};\nexport default PermissionAlert;\n"],"names":[],"mappings":";;;;;;;AAuBA,MAAM,WAAA,GAAc;AAAA,EAClB,gCAAA;AAAA,EACA;AACF,CAAA,CACG,IAAI,CAAA,CAAA,KAAK,CAAA,CAAE,IAAI,CAAA,CACf,KAAK,IAAI,CAAA;AAEZ,MAAM,kBAAkB,MAAM;AAC5B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AAEpD,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,SAAA,EAAU,eAAY,qBAAA,EACpC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,CAAA,CAAE,uBAAuB,CAAA,EAAE,CAAA;AAAA,IACvC,CAAA,CAAE,6BAAA,EAA+B,EAAE,WAAA,EAAa;AAAA,GAAA,EACnD,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PermissionAlert.esm.js","sources":["../../../src/components/common/PermissionAlert.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport Alert from '@mui/material/Alert';\nimport AlertTitle from '@mui/material/AlertTitle';\nimport {\n kubernetesClustersReadPermission,\n kubernetesResourcesReadPermission,\n} from '@backstage/plugin-kubernetes-common';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations/index.ts';\n\nconst permissions = [\n kubernetesClustersReadPermission,\n kubernetesResourcesReadPermission,\n]\n .map(p => p.name)\n .join(', ');\n\nconst PermissionAlert = () => {\n const { t } = useTranslationRef(tektonTranslationRef);\n\n return (\n <Alert severity=\"warning\" data-testid=\"no-permission-alert\">\n <AlertTitle>{t('permissionAlert.title')}</AlertTitle>\n {t('permissionAlert.description', { permissions })}\n </Alert>\n );\n};\nexport default PermissionAlert;\n"],"names":[],"mappings":";;;;;;;;AAwBA,MAAM,WAAA,GAAc;AAAA,EAClB,gCAAA;AAAA,EACA;AACF,CAAA,CACG,IAAI,CAAA,CAAA,KAAK,CAAA,CAAE,IAAI,CAAA,CACf,KAAK,IAAI,CAAA;AAEZ,MAAM,kBAAkB,MAAM;AAC5B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AAEpD,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,SAAA,EAAU,eAAY,qBAAA,EACpC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,CAAA,CAAE,uBAAuB,CAAA,EAAE,CAAA;AAAA,IACvC,CAAA,CAAE,6BAAA,EAA+B,EAAE,WAAA,EAAa;AAAA,GAAA,EACnD,CAAA;AAEJ;;;;"}
@@ -1,85 +1,111 @@
1
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { StatusError, StatusWarning, StatusRunning, StatusPending, StatusOK } from '@backstage/core-components';
3
- import { makeStyles, createStyles } from '@material-ui/core';
3
+ import Box from '@mui/material/Box';
4
4
  import OffIcon from '@mui/icons-material/DoNotDisturbOnOutlined';
5
5
  import UnknownIcon from '@mui/icons-material/HelpOutline';
6
- import AngleDoubleRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight';
7
- import BanIcon from '@mui/icons-material/NotInterestedOutlined';
6
+ import KeyboardDoubleArrowRight from '@mui/icons-material/KeyboardDoubleArrowRight';
7
+ import NotInterestedOutlined from '@mui/icons-material/NotInterestedOutlined';
8
8
  import PauseIcon from '@mui/icons-material/PauseCircleOutlineOutlined';
9
- import classNames from 'classnames';
10
9
  import { StatusIconAndText } from './StatusIconAndText.esm.js';
11
10
 
12
- const useStyles = makeStyles(
13
- (theme) => createStyles({
14
- iconStyles: {
15
- height: "0.8em",
16
- width: "0.8em",
17
- top: "0.125em",
18
- position: "relative",
19
- flexShrink: 0,
20
- marginRight: theme.spacing(0.6)
21
- }
22
- })
23
- );
24
11
  const DASH = "-";
25
- const useStatusStyles = makeStyles((theme) => ({
26
- success: {
12
+ const iconSx = {
13
+ height: "0.8em",
14
+ width: "0.8em",
15
+ top: "0.125em",
16
+ position: "relative",
17
+ flexShrink: 0,
18
+ marginRight: 0.6
19
+ };
20
+ const statusIconSx = {
21
+ ok: {
27
22
  "& svg": {
28
- fill: theme.palette.status.ok
23
+ fill: (theme) => theme.palette.status.ok
29
24
  }
30
25
  },
31
26
  running: {
32
27
  "& svg": {
33
- fill: theme.palette.status.running
28
+ fill: (theme) => theme.palette.status.running
34
29
  }
35
30
  },
36
31
  pending: {
37
32
  "& svg": {
38
- fill: theme.palette.status.pending
33
+ fill: (theme) => theme.palette.status.pending
39
34
  }
40
35
  },
41
36
  warning: {
42
37
  "& svg": {
43
- fill: theme.palette.status.warning
38
+ fill: (theme) => theme.palette.status.warning
44
39
  }
45
40
  },
46
41
  error: {
47
42
  "& svg": {
48
- fill: theme.palette.status.error
43
+ fill: (theme) => theme.palette.status.error
49
44
  }
50
45
  }
51
- }));
46
+ };
47
+ const statusIconWrapperSx = {
48
+ display: "inline-flex",
49
+ alignItems: "center",
50
+ justifyContent: "center",
51
+ lineHeight: 0
52
+ };
53
+ const getStatusIconSx = (statusKey) => [statusIconWrapperSx, statusIconSx[statusKey] ?? {}];
52
54
  const StatusIcon = ({
53
55
  statusKey,
54
56
  className
55
57
  }) => {
56
- const statusStyles = useStatusStyles();
57
58
  switch (statusKey) {
58
59
  case "ok":
59
- return /* @__PURE__ */ jsxs("g", { className: classNames(statusStyles.success, className), children: [
60
- /* @__PURE__ */ jsx(StatusOK, {}),
61
- " "
62
- ] });
60
+ return /* @__PURE__ */ jsx(
61
+ Box,
62
+ {
63
+ component: "span",
64
+ sx: getStatusIconSx(statusKey),
65
+ className,
66
+ children: /* @__PURE__ */ jsx(StatusOK, {})
67
+ }
68
+ );
63
69
  case "pending":
64
- return /* @__PURE__ */ jsxs("g", { className: classNames(statusStyles.pending, className), children: [
65
- /* @__PURE__ */ jsx(StatusPending, {}),
66
- " "
67
- ] });
70
+ return /* @__PURE__ */ jsx(
71
+ Box,
72
+ {
73
+ component: "span",
74
+ sx: getStatusIconSx(statusKey),
75
+ className,
76
+ children: /* @__PURE__ */ jsx(StatusPending, {})
77
+ }
78
+ );
68
79
  case "running":
69
- return /* @__PURE__ */ jsxs("g", { className: classNames(statusStyles.running, className), children: [
70
- /* @__PURE__ */ jsx(StatusRunning, {}),
71
- " "
72
- ] });
80
+ return /* @__PURE__ */ jsx(
81
+ Box,
82
+ {
83
+ component: "span",
84
+ sx: getStatusIconSx(statusKey),
85
+ className,
86
+ children: /* @__PURE__ */ jsx(StatusRunning, {})
87
+ }
88
+ );
73
89
  case "warning":
74
- return /* @__PURE__ */ jsxs("g", { className: classNames(statusStyles.warning, className), children: [
75
- /* @__PURE__ */ jsx(StatusWarning, {}),
76
- " "
77
- ] });
90
+ return /* @__PURE__ */ jsx(
91
+ Box,
92
+ {
93
+ component: "span",
94
+ sx: getStatusIconSx(statusKey),
95
+ className,
96
+ children: /* @__PURE__ */ jsx(StatusWarning, {})
97
+ }
98
+ );
78
99
  case "error":
79
- return /* @__PURE__ */ jsxs("g", { className: classNames(statusStyles.error, className), children: [
80
- /* @__PURE__ */ jsx(StatusError, {}),
81
- " "
82
- ] });
100
+ return /* @__PURE__ */ jsx(
101
+ Box,
102
+ {
103
+ component: "span",
104
+ sx: getStatusIconSx(statusKey),
105
+ className,
106
+ children: /* @__PURE__ */ jsx(StatusError, {})
107
+ }
108
+ );
83
109
  default:
84
110
  return null;
85
111
  }
@@ -93,7 +119,6 @@ const Status = ({
93
119
  iconStyles,
94
120
  iconClassName
95
121
  }) => {
96
- const classes = useStyles();
97
122
  const statusProps = {
98
123
  title: displayStatusText || status || "",
99
124
  iconOnly,
@@ -141,7 +166,7 @@ const Status = ({
141
166
  StatusIconAndText,
142
167
  {
143
168
  ...statusProps,
144
- icon: /* @__PURE__ */ jsx(BanIcon, { className: classes.iconStyles, style: iconStyles })
169
+ icon: /* @__PURE__ */ jsx(NotInterestedOutlined, { sx: iconSx, style: iconStyles })
145
170
  }
146
171
  );
147
172
  case "Warning":
@@ -181,13 +206,7 @@ const Status = ({
181
206
  StatusIconAndText,
182
207
  {
183
208
  ...statusProps,
184
- icon: /* @__PURE__ */ jsx(
185
- AngleDoubleRightIcon,
186
- {
187
- className: classes.iconStyles,
188
- style: iconStyles
189
- }
190
- )
209
+ icon: /* @__PURE__ */ jsx(KeyboardDoubleArrowRight, { sx: iconSx, style: iconStyles })
191
210
  }
192
211
  );
193
212
  case "Paused":
@@ -195,7 +214,7 @@ const Status = ({
195
214
  StatusIconAndText,
196
215
  {
197
216
  ...statusProps,
198
- icon: /* @__PURE__ */ jsx(PauseIcon, { className: classes.iconStyles, style: iconStyles })
217
+ icon: /* @__PURE__ */ jsx(PauseIcon, { sx: iconSx, style: iconStyles })
199
218
  }
200
219
  );
201
220
  case "Stopped":
@@ -203,7 +222,7 @@ const Status = ({
203
222
  StatusIconAndText,
204
223
  {
205
224
  ...statusProps,
206
- icon: /* @__PURE__ */ jsx(OffIcon, { className: classes.iconStyles, style: iconStyles })
225
+ icon: /* @__PURE__ */ jsx(OffIcon, { sx: iconSx, style: iconStyles })
207
226
  }
208
227
  );
209
228
  case "Unknown":
@@ -211,7 +230,7 @@ const Status = ({
211
230
  StatusIconAndText,
212
231
  {
213
232
  ...statusProps,
214
- icon: /* @__PURE__ */ jsx(UnknownIcon, { className: classes.iconStyles, style: iconStyles })
233
+ icon: /* @__PURE__ */ jsx(UnknownIcon, { sx: iconSx, style: iconStyles })
215
234
  }
216
235
  );
217
236
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"Status.esm.js","sources":["../../../src/components/common/Status.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ReactElement, CSSProperties } from 'react';\nimport {\n StatusClassKey,\n StatusError,\n StatusOK,\n StatusPending,\n StatusRunning,\n StatusWarning,\n} from '@backstage/core-components';\n\nimport { createStyles, makeStyles, Theme } from '@material-ui/core';\nimport OffIcon from '@mui/icons-material/DoNotDisturbOnOutlined';\nimport UnknownIcon from '@mui/icons-material/HelpOutline';\nimport AngleDoubleRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight';\nimport BanIcon from '@mui/icons-material/NotInterestedOutlined';\nimport PauseIcon from '@mui/icons-material/PauseCircleOutlineOutlined';\nimport cx from 'classnames';\n\nimport { StatusIconAndText } from './StatusIconAndText';\n\nconst useStyles = makeStyles<Theme>(theme =>\n createStyles({\n iconStyles: {\n height: '0.8em',\n width: '0.8em',\n top: '0.125em',\n position: 'relative',\n flexShrink: 0,\n marginRight: theme.spacing(0.6),\n },\n }),\n);\n\nconst DASH = '-';\n\nconst useStatusStyles = makeStyles(theme => ({\n success: {\n '& svg': {\n fill: theme.palette.status.ok,\n },\n },\n running: {\n '& svg': {\n fill: theme.palette.status.running,\n },\n },\n pending: {\n '& svg': {\n fill: theme.palette.status.pending,\n },\n },\n warning: {\n '& svg': {\n fill: theme.palette.status.warning,\n },\n },\n error: {\n '& svg': {\n fill: theme.palette.status.error,\n },\n },\n}));\n\nconst StatusIcon = ({\n statusKey,\n className,\n}: {\n statusKey: StatusClassKey;\n className?: string;\n}) => {\n const statusStyles = useStatusStyles();\n\n switch (statusKey) {\n case 'ok':\n return (\n <g className={cx(statusStyles.success, className)}>\n <StatusOK />{' '}\n </g>\n );\n case 'pending':\n return (\n <g className={cx(statusStyles.pending, className)}>\n <StatusPending />{' '}\n </g>\n );\n case 'running':\n return (\n <g className={cx(statusStyles.running, className)}>\n <StatusRunning />{' '}\n </g>\n );\n case 'warning':\n return (\n <g className={cx(statusStyles.warning, className)}>\n <StatusWarning />{' '}\n </g>\n );\n case 'error':\n return (\n <g className={cx(statusStyles.error, className)}>\n <StatusError />{' '}\n </g>\n );\n default:\n return null;\n }\n};\n\n/**\n * Component for displaying a status message\n * @param {string} status - type of status to be displayed\n * @param {boolean} [iconOnly] - (optional) if true, only displays icon\n * @param {string} [className] - (optional) additional class name for the component\n * @param {string} [displayStatusText] - (optional) use a different text to display the status\n\n * @example\n * ```tsx\n * <Status status='Warning' />\n * ```\n */\nexport const Status = ({\n status,\n iconOnly,\n className,\n displayStatusText,\n dataTestId,\n iconStyles,\n iconClassName,\n}: {\n status: string | null;\n displayStatusText?: string;\n iconOnly?: boolean;\n className?: string;\n dataTestId?: string;\n iconStyles?: CSSProperties;\n iconClassName?: string;\n}): ReactElement => {\n const classes = useStyles();\n const statusProps = {\n title: displayStatusText || status || '',\n iconOnly,\n className,\n dataTestId,\n };\n\n switch (status) {\n case 'New':\n case 'Idle':\n case 'Pending':\n case 'PipelineNotStarted':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"pending\" className={iconClassName} />}\n />\n );\n\n case 'In Progress':\n case 'Progress':\n case 'Progressing':\n case 'Installing':\n case 'InstallReady':\n case 'Replacing':\n case 'Running':\n case 'Updating':\n case 'Upgrading':\n case 'PendingInstall':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"running\" className={iconClassName} />}\n />\n );\n\n case 'Cancelled':\n case 'Deleting':\n case 'Expired':\n case 'Not Ready':\n case 'Cancelling':\n case 'Terminating':\n case 'Superseded':\n case 'Uninstalling':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<BanIcon className={classes.iconStyles} style={iconStyles} />}\n />\n );\n\n case 'Warning':\n case 'RequiresApproval':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"warning\" className={iconClassName} />}\n />\n );\n\n case 'ImagePullBackOff':\n case 'Error':\n case 'Failed':\n case 'Failure':\n case 'CrashLoopBackOff':\n case 'ErrImagePull':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"error\" className={iconClassName} />}\n />\n );\n\n case 'Completed':\n case 'Succeeded':\n case 'Synced':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"ok\" className={iconClassName} />}\n />\n );\n\n case 'Skipped':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={\n <AngleDoubleRightIcon\n className={classes.iconStyles}\n style={iconStyles}\n />\n }\n />\n );\n case 'Paused':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<PauseIcon className={classes.iconStyles} style={iconStyles} />}\n />\n );\n case 'Stopped':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<OffIcon className={classes.iconStyles} style={iconStyles} />}\n />\n );\n\n case 'Unknown':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={\n <UnknownIcon className={classes.iconStyles} style={iconStyles} />\n }\n />\n );\n\n default:\n return <>{status || DASH}</>;\n }\n};\n"],"names":["cx"],"mappings":"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"}
1
+ {"version":3,"file":"Status.esm.js","sources":["../../../src/components/common/Status.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ReactElement, CSSProperties } from 'react';\nimport {\n StatusClassKey,\n StatusError,\n StatusOK,\n StatusPending,\n StatusRunning,\n StatusWarning,\n} from '@backstage/core-components';\n\nimport Box from '@mui/material/Box';\nimport type { SxProps, Theme } from '@mui/material/styles';\nimport OffIcon from '@mui/icons-material/DoNotDisturbOnOutlined';\nimport UnknownIcon from '@mui/icons-material/HelpOutline';\nimport AngleDoubleRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight';\nimport BanIcon from '@mui/icons-material/NotInterestedOutlined';\nimport PauseIcon from '@mui/icons-material/PauseCircleOutlineOutlined';\n\nimport { StatusIconAndText } from './StatusIconAndText';\n\nconst DASH = '-';\n\nconst iconSx = {\n height: '0.8em',\n width: '0.8em',\n top: '0.125em',\n position: 'relative',\n flexShrink: 0,\n marginRight: 0.6,\n};\n\nconst statusIconSx: Partial<Record<StatusClassKey, SxProps<Theme>>> = {\n ok: {\n '& svg': {\n fill: (theme: Theme) => theme.palette.status.ok,\n },\n },\n running: {\n '& svg': {\n fill: (theme: Theme) => theme.palette.status.running,\n },\n },\n pending: {\n '& svg': {\n fill: (theme: Theme) => theme.palette.status.pending,\n },\n },\n warning: {\n '& svg': {\n fill: (theme: Theme) => theme.palette.status.warning,\n },\n },\n error: {\n '& svg': {\n fill: (theme: Theme) => theme.palette.status.error,\n },\n },\n};\n\nconst statusIconWrapperSx: SxProps<Theme> = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n lineHeight: 0,\n};\n\nconst getStatusIconSx = (statusKey: StatusClassKey): SxProps<Theme> =>\n [statusIconWrapperSx, statusIconSx[statusKey] ?? {}] as SxProps<Theme>;\n\nconst StatusIcon = ({\n statusKey,\n className,\n}: {\n statusKey: StatusClassKey;\n className?: string;\n}) => {\n switch (statusKey) {\n case 'ok':\n return (\n <Box\n component=\"span\"\n sx={getStatusIconSx(statusKey)}\n className={className}\n >\n <StatusOK />\n </Box>\n );\n case 'pending':\n return (\n <Box\n component=\"span\"\n sx={getStatusIconSx(statusKey)}\n className={className}\n >\n <StatusPending />\n </Box>\n );\n case 'running':\n return (\n <Box\n component=\"span\"\n sx={getStatusIconSx(statusKey)}\n className={className}\n >\n <StatusRunning />\n </Box>\n );\n case 'warning':\n return (\n <Box\n component=\"span\"\n sx={getStatusIconSx(statusKey)}\n className={className}\n >\n <StatusWarning />\n </Box>\n );\n case 'error':\n return (\n <Box\n component=\"span\"\n sx={getStatusIconSx(statusKey)}\n className={className}\n >\n <StatusError />\n </Box>\n );\n default:\n return null;\n }\n};\n\n/**\n * Component for displaying a status message\n * @param {string} status - type of status to be displayed\n * @param {boolean} [iconOnly] - (optional) if true, only displays icon\n * @param {string} [className] - (optional) additional class name for the component\n * @param {string} [displayStatusText] - (optional) use a different text to display the status\n\n * @example\n * ```tsx\n * <Status status='Warning' />\n * ```\n */\nexport const Status = ({\n status,\n iconOnly,\n className,\n displayStatusText,\n dataTestId,\n iconStyles,\n iconClassName,\n}: {\n status: string | null;\n displayStatusText?: string;\n iconOnly?: boolean;\n className?: string;\n dataTestId?: string;\n iconStyles?: CSSProperties;\n iconClassName?: string;\n}): ReactElement => {\n const statusProps = {\n title: displayStatusText || status || '',\n iconOnly,\n className,\n dataTestId,\n };\n\n switch (status) {\n case 'New':\n case 'Idle':\n case 'Pending':\n case 'PipelineNotStarted':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"pending\" className={iconClassName} />}\n />\n );\n\n case 'In Progress':\n case 'Progress':\n case 'Progressing':\n case 'Installing':\n case 'InstallReady':\n case 'Replacing':\n case 'Running':\n case 'Updating':\n case 'Upgrading':\n case 'PendingInstall':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"running\" className={iconClassName} />}\n />\n );\n\n case 'Cancelled':\n case 'Deleting':\n case 'Expired':\n case 'Not Ready':\n case 'Cancelling':\n case 'Terminating':\n case 'Superseded':\n case 'Uninstalling':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<BanIcon sx={iconSx} style={iconStyles} />}\n />\n );\n\n case 'Warning':\n case 'RequiresApproval':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"warning\" className={iconClassName} />}\n />\n );\n\n case 'ImagePullBackOff':\n case 'Error':\n case 'Failed':\n case 'Failure':\n case 'CrashLoopBackOff':\n case 'ErrImagePull':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"error\" className={iconClassName} />}\n />\n );\n\n case 'Completed':\n case 'Succeeded':\n case 'Synced':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<StatusIcon statusKey=\"ok\" className={iconClassName} />}\n />\n );\n\n case 'Skipped':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<AngleDoubleRightIcon sx={iconSx} style={iconStyles} />}\n />\n );\n case 'Paused':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<PauseIcon sx={iconSx} style={iconStyles} />}\n />\n );\n case 'Stopped':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<OffIcon sx={iconSx} style={iconStyles} />}\n />\n );\n\n case 'Unknown':\n return (\n <StatusIconAndText\n {...statusProps}\n icon={<UnknownIcon sx={iconSx} style={iconStyles} />}\n />\n );\n\n default:\n return <>{status || DASH}</>;\n }\n};\n"],"names":["BanIcon","AngleDoubleRightIcon"],"mappings":"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"}