@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,9 +1,8 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { makeStyles } from '@material-ui/core';
2
+ import Box from '@mui/material/Box';
3
3
  import AngleDoubleDownIcon from '@mui/icons-material/KeyboardDoubleArrowDownOutlined';
4
4
  import AngleDoubleUpIcon from '@mui/icons-material/KeyboardDoubleArrowUpOutlined';
5
5
  import { Tooltip } from '@patternfly/react-core';
6
- import { t_color_yellow_40 } from '@patternfly/react-tokens/dist/js/t_color_yellow_40';
7
6
  import { t_color_orange_40 } from '@patternfly/react-tokens/dist/js/t_color_orange_40';
8
7
  import classNames from 'classnames';
9
8
  import { usePipelineRunScanResults } from '../../hooks/usePipelineRunScanResults.esm.js';
@@ -13,167 +12,238 @@ import '../../translations/index.esm.js';
13
12
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
14
13
  import { tektonTranslationRef } from '../../translations/ref.esm.js';
15
14
 
16
- const useVStyles = makeStyles((theme) => ({
17
- pipelineVulnerabilities: {
18
- display: "flex",
19
- flexWrap: "wrap",
20
- gap: theme.spacing(1)
21
- },
22
- severityContainer: {
23
- alignItems: "center",
24
- display: "flex",
25
- flexWrap: "nowrap",
26
- gap: theme.spacing(0.5)
27
- },
28
- severityStatus: {
29
- alignItems: "center",
30
- display: "flex",
31
- flexWrap: "nowrap",
32
- gap: theme.spacing(0.5)
33
- },
34
- severityCount: {
35
- fontWeight: "bold"
36
- },
37
- criticalStatus: {
38
- height: "1em",
39
- width: "1em"
40
- },
41
- highStatus: {
42
- color: t_color_orange_40.value,
43
- height: "0.8em",
44
- width: "0.8em"
45
- },
46
- mediumStatus: {
47
- color: t_color_yellow_40.value,
48
- height: "1.3em",
49
- width: "1.3em"
50
- },
51
- lowStatus: {
52
- height: "0.8em",
53
- width: "0.8em"
54
- }
55
- }));
56
15
  const PipelineRunVulnerabilities = ({
57
16
  pipelineRun,
58
17
  condensed
59
18
  }) => {
60
- const classes = useVStyles();
61
19
  const scanResults = usePipelineRunScanResults(pipelineRun);
62
20
  const { t } = useTranslationRef(tektonTranslationRef);
63
- return /* @__PURE__ */ jsx("div", { className: classes.pipelineVulnerabilities, children: scanResults?.vulnerabilities ? /* @__PURE__ */ jsxs(Fragment, { children: [
64
- /* @__PURE__ */ jsxs("div", { className: classNames(classes.severityContainer, "severity"), children: [
65
- /* @__PURE__ */ jsxs("span", { className: classes.severityStatus, children: [
66
- /* @__PURE__ */ jsx(
67
- Tooltip,
21
+ return /* @__PURE__ */ jsx(
22
+ Box,
23
+ {
24
+ sx: {
25
+ display: "flex",
26
+ flexWrap: "wrap",
27
+ gap: 1
28
+ },
29
+ children: scanResults?.vulnerabilities ? /* @__PURE__ */ jsxs(Fragment, { children: [
30
+ /* @__PURE__ */ jsxs(
31
+ Box,
68
32
  {
69
- content: t(
70
- "pipelineRunList.vulnerabilitySeverityTitle.critical"
71
- ),
72
- children: /* @__PURE__ */ jsx(
73
- CriticalRiskIcon,
74
- {
75
- className: classes.criticalStatus,
76
- title: t(
77
- "pipelineRunList.vulnerabilitySeverityTitle.critical"
78
- )
79
- }
80
- )
33
+ className: classNames("severity"),
34
+ sx: {
35
+ alignItems: "center",
36
+ display: "flex",
37
+ flexWrap: "nowrap",
38
+ gap: 0.5
39
+ },
40
+ children: [
41
+ /* @__PURE__ */ jsxs(
42
+ Box,
43
+ {
44
+ sx: {
45
+ alignItems: "center",
46
+ display: "flex",
47
+ flexWrap: "nowrap",
48
+ gap: 0.5
49
+ },
50
+ children: [
51
+ /* @__PURE__ */ jsx(
52
+ Tooltip,
53
+ {
54
+ content: t(
55
+ "pipelineRunList.vulnerabilitySeverityTitle.critical"
56
+ ),
57
+ children: /* @__PURE__ */ jsx(
58
+ CriticalRiskIcon,
59
+ {
60
+ height: "1em",
61
+ width: "1em",
62
+ title: t(
63
+ "pipelineRunList.vulnerabilitySeverityTitle.critical"
64
+ )
65
+ }
66
+ )
67
+ }
68
+ ),
69
+ !condensed ? t("pipelineRunList.vulnerabilitySeverityTitle.critical") : null
70
+ ]
71
+ }
72
+ ),
73
+ /* @__PURE__ */ jsx(
74
+ Box,
75
+ {
76
+ component: "span",
77
+ sx: { fontWeight: "bold" },
78
+ "data-testid": "pipelinerun-critical-vulnerabilities-count",
79
+ children: scanResults.vulnerabilities.critical || 0
80
+ }
81
+ )
82
+ ]
81
83
  }
82
84
  ),
83
- !condensed ? t("pipelineRunList.vulnerabilitySeverityTitle.critical") : null
84
- ] }),
85
- /* @__PURE__ */ jsx(
86
- "span",
87
- {
88
- className: classes.severityCount,
89
- "data-testid": "pipelinerun-critical-vulnerabilities-count",
90
- children: scanResults.vulnerabilities.critical || 0
91
- }
92
- )
93
- ] }),
94
- /* @__PURE__ */ jsxs("div", { className: classNames(classes.severityContainer, "severity"), children: [
95
- /* @__PURE__ */ jsxs("span", { className: classes.severityStatus, children: [
96
- /* @__PURE__ */ jsx(
97
- Tooltip,
85
+ /* @__PURE__ */ jsxs(
86
+ Box,
98
87
  {
99
- content: t("pipelineRunList.vulnerabilitySeverityTitle.high"),
100
- children: /* @__PURE__ */ jsx(
101
- AngleDoubleUpIcon,
102
- {
103
- className: classes.highStatus,
104
- titleAccess: t(
105
- "pipelineRunList.vulnerabilitySeverityTitle.high"
106
- )
107
- }
108
- )
88
+ className: classNames("severity"),
89
+ sx: {
90
+ alignItems: "center",
91
+ display: "flex",
92
+ flexWrap: "nowrap",
93
+ gap: 0.5
94
+ },
95
+ children: [
96
+ /* @__PURE__ */ jsxs(
97
+ Box,
98
+ {
99
+ sx: {
100
+ alignItems: "center",
101
+ display: "flex",
102
+ flexWrap: "nowrap",
103
+ gap: 0.5
104
+ },
105
+ children: [
106
+ /* @__PURE__ */ jsx(
107
+ Tooltip,
108
+ {
109
+ content: t("pipelineRunList.vulnerabilitySeverityTitle.high"),
110
+ children: /* @__PURE__ */ jsx(
111
+ AngleDoubleUpIcon,
112
+ {
113
+ sx: {
114
+ color: t_color_orange_40.value,
115
+ height: "0.8em",
116
+ width: "0.8em"
117
+ },
118
+ titleAccess: t(
119
+ "pipelineRunList.vulnerabilitySeverityTitle.high"
120
+ )
121
+ }
122
+ )
123
+ }
124
+ ),
125
+ !condensed ? t("pipelineRunList.vulnerabilitySeverityTitle.high") : null
126
+ ]
127
+ }
128
+ ),
129
+ /* @__PURE__ */ jsx(
130
+ Box,
131
+ {
132
+ component: "span",
133
+ sx: { fontWeight: "bold" },
134
+ "data-testid": "pipelinerun-high-vulnerabilities-count",
135
+ children: scanResults.vulnerabilities.high || 0
136
+ }
137
+ )
138
+ ]
109
139
  }
110
140
  ),
111
- !condensed ? t("pipelineRunList.vulnerabilitySeverityTitle.high") : null
112
- ] }),
113
- /* @__PURE__ */ jsx(
114
- "span",
115
- {
116
- className: classes.severityCount,
117
- "data-testid": "pipelinerun-high-vulnerabilities-count",
118
- children: scanResults.vulnerabilities.high || 0
119
- }
120
- )
121
- ] }),
122
- /* @__PURE__ */ jsxs("div", { className: classNames(classes.severityContainer, "severity"), children: [
123
- /* @__PURE__ */ jsxs("span", { className: classes.severityStatus, children: [
124
- /* @__PURE__ */ jsx(
125
- Tooltip,
141
+ /* @__PURE__ */ jsxs(
142
+ Box,
126
143
  {
127
- content: t("pipelineRunList.vulnerabilitySeverityTitle.medium"),
128
- children: /* @__PURE__ */ jsx(
129
- EqualsIcon,
130
- {
131
- className: classes.mediumStatus,
132
- title: t("pipelineRunList.vulnerabilitySeverityTitle.medium")
133
- }
134
- )
144
+ className: classNames("severity"),
145
+ sx: {
146
+ alignItems: "center",
147
+ display: "flex",
148
+ flexWrap: "nowrap",
149
+ gap: 0.5
150
+ },
151
+ children: [
152
+ /* @__PURE__ */ jsxs(
153
+ Box,
154
+ {
155
+ sx: {
156
+ alignItems: "center",
157
+ display: "flex",
158
+ flexWrap: "nowrap",
159
+ gap: 0.5
160
+ },
161
+ children: [
162
+ /* @__PURE__ */ jsx(
163
+ Tooltip,
164
+ {
165
+ content: t("pipelineRunList.vulnerabilitySeverityTitle.medium"),
166
+ children: /* @__PURE__ */ jsx(
167
+ EqualsIcon,
168
+ {
169
+ height: "1.3em",
170
+ width: "1.3em",
171
+ title: t("pipelineRunList.vulnerabilitySeverityTitle.medium")
172
+ }
173
+ )
174
+ }
175
+ ),
176
+ !condensed ? t("pipelineRunList.vulnerabilitySeverityTitle.medium") : null
177
+ ]
178
+ }
179
+ ),
180
+ /* @__PURE__ */ jsx(
181
+ Box,
182
+ {
183
+ component: "span",
184
+ sx: { fontWeight: "bold" },
185
+ "data-testid": "pipelinerun-medium-vulnerabilities-count",
186
+ children: scanResults.vulnerabilities.medium || 0
187
+ }
188
+ )
189
+ ]
135
190
  }
136
191
  ),
137
- !condensed ? t("pipelineRunList.vulnerabilitySeverityTitle.medium") : null
138
- ] }),
139
- /* @__PURE__ */ jsx(
140
- "span",
141
- {
142
- className: classes.severityCount,
143
- "data-testid": "pipelinerun-medium-vulnerabilities-count",
144
- children: scanResults.vulnerabilities.medium || 0
145
- }
146
- )
147
- ] }),
148
- /* @__PURE__ */ jsxs("div", { className: classNames(classes.severityContainer, "severity"), children: [
149
- /* @__PURE__ */ jsxs("span", { className: classes.severityStatus, children: [
150
- /* @__PURE__ */ jsx(
151
- Tooltip,
192
+ /* @__PURE__ */ jsxs(
193
+ Box,
152
194
  {
153
- content: t("pipelineRunList.vulnerabilitySeverityTitle.low"),
154
- children: /* @__PURE__ */ jsx(
155
- AngleDoubleDownIcon,
156
- {
157
- className: classes.lowStatus,
158
- titleAccess: t(
159
- "pipelineRunList.vulnerabilitySeverityTitle.low"
160
- )
161
- }
162
- )
195
+ className: classNames("severity"),
196
+ sx: {
197
+ alignItems: "center",
198
+ display: "flex",
199
+ flexWrap: "nowrap",
200
+ gap: 0.5
201
+ },
202
+ children: [
203
+ /* @__PURE__ */ jsxs(
204
+ Box,
205
+ {
206
+ sx: {
207
+ alignItems: "center",
208
+ display: "flex",
209
+ flexWrap: "nowrap",
210
+ gap: 0.5
211
+ },
212
+ children: [
213
+ /* @__PURE__ */ jsx(
214
+ Tooltip,
215
+ {
216
+ content: t("pipelineRunList.vulnerabilitySeverityTitle.low"),
217
+ children: /* @__PURE__ */ jsx(
218
+ AngleDoubleDownIcon,
219
+ {
220
+ sx: { height: "0.8em", width: "0.8em" },
221
+ titleAccess: t(
222
+ "pipelineRunList.vulnerabilitySeverityTitle.low"
223
+ )
224
+ }
225
+ )
226
+ }
227
+ ),
228
+ !condensed ? t("pipelineRunList.vulnerabilitySeverityTitle.low") : null
229
+ ]
230
+ }
231
+ ),
232
+ /* @__PURE__ */ jsx(
233
+ Box,
234
+ {
235
+ component: "span",
236
+ sx: { fontWeight: "bold" },
237
+ "data-testid": "pipelinerun-low-vulnerabilities-count",
238
+ children: scanResults.vulnerabilities.low || 0
239
+ }
240
+ )
241
+ ]
163
242
  }
164
- ),
165
- !condensed ? t("pipelineRunList.vulnerabilitySeverityTitle.low") : null
166
- ] }),
167
- /* @__PURE__ */ jsx(
168
- "span",
169
- {
170
- className: classes.severityCount,
171
- "data-testid": "pipelinerun-low-vulnerabilities-count",
172
- children: scanResults.vulnerabilities.low || 0
173
- }
174
- )
175
- ] })
176
- ] }) : "-" });
243
+ )
244
+ ] }) : "-"
245
+ }
246
+ );
177
247
  };
178
248
 
179
249
  export { PipelineRunVulnerabilities as default };
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineRunVulnerabilities.esm.js","sources":["../../../src/components/PipelineRunList/PipelineRunVulnerabilities.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 { FC } from 'react';\n\nimport { makeStyles, Theme } from '@material-ui/core';\nimport AngleDoubleDownIcon from '@mui/icons-material/KeyboardDoubleArrowDownOutlined';\nimport AngleDoubleUpIcon from '@mui/icons-material/KeyboardDoubleArrowUpOutlined';\nimport { Tooltip } from '@patternfly/react-core';\nimport { t_color_yellow_40 as mediumColor } from '@patternfly/react-tokens/dist/js/t_color_yellow_40';\nimport { t_color_orange_40 as highColor } from '@patternfly/react-tokens/dist/js/t_color_orange_40';\nimport classNames from 'classnames';\n\nimport { PipelineRunKind } from '@backstage-community/plugin-tekton-react';\n\nimport { usePipelineRunScanResults } from '../../hooks/usePipelineRunScanResults';\nimport CriticalRiskIcon from '../Icons/CriticalRiskIcon';\nimport EqualsIcon from '../Icons/EqualsIcon';\nimport { tektonTranslationRef } from '../../translations/index.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst useVStyles = makeStyles((theme: Theme) => ({\n pipelineVulnerabilities: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(1),\n },\n severityContainer: {\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: theme.spacing(0.5),\n },\n severityStatus: {\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: theme.spacing(0.5),\n },\n severityCount: {\n fontWeight: 'bold',\n },\n criticalStatus: {\n height: '1em',\n width: '1em',\n },\n highStatus: {\n color: highColor.value,\n height: '0.8em',\n width: '0.8em',\n },\n mediumStatus: {\n color: mediumColor.value,\n height: '1.3em',\n width: '1.3em',\n },\n lowStatus: {\n height: '0.8em',\n width: '0.8em',\n },\n}));\n\ntype PipelineRunVulnerabilitiesProps = {\n pipelineRun: PipelineRunKind;\n condensed?: boolean;\n};\n\nconst PipelineRunVulnerabilities: FC<PipelineRunVulnerabilitiesProps> = ({\n pipelineRun,\n condensed,\n}) => {\n const classes = useVStyles();\n const scanResults = usePipelineRunScanResults(pipelineRun);\n const { t } = useTranslationRef(tektonTranslationRef);\n\n return (\n <div className={classes.pipelineVulnerabilities}>\n {scanResults?.vulnerabilities ? (\n <>\n <div className={classNames(classes.severityContainer, 'severity')}>\n <span className={classes.severityStatus}>\n <Tooltip\n content={t(\n 'pipelineRunList.vulnerabilitySeverityTitle.critical',\n )}\n >\n <CriticalRiskIcon\n className={classes.criticalStatus}\n title={t(\n 'pipelineRunList.vulnerabilitySeverityTitle.critical',\n )}\n />\n </Tooltip>\n {!condensed\n ? t('pipelineRunList.vulnerabilitySeverityTitle.critical')\n : null}\n </span>\n <span\n className={classes.severityCount}\n data-testid=\"pipelinerun-critical-vulnerabilities-count\"\n >\n {scanResults.vulnerabilities.critical || 0}\n </span>\n </div>\n <div className={classNames(classes.severityContainer, 'severity')}>\n <span className={classes.severityStatus}>\n <Tooltip\n content={t('pipelineRunList.vulnerabilitySeverityTitle.high')}\n >\n <AngleDoubleUpIcon\n className={classes.highStatus}\n titleAccess={t(\n 'pipelineRunList.vulnerabilitySeverityTitle.high',\n )}\n />\n </Tooltip>\n {!condensed\n ? t('pipelineRunList.vulnerabilitySeverityTitle.high')\n : null}\n </span>\n <span\n className={classes.severityCount}\n data-testid=\"pipelinerun-high-vulnerabilities-count\"\n >\n {scanResults.vulnerabilities.high || 0}\n </span>\n </div>\n <div className={classNames(classes.severityContainer, 'severity')}>\n <span className={classes.severityStatus}>\n <Tooltip\n content={t('pipelineRunList.vulnerabilitySeverityTitle.medium')}\n >\n <EqualsIcon\n className={classes.mediumStatus}\n title={t('pipelineRunList.vulnerabilitySeverityTitle.medium')}\n />\n </Tooltip>\n {!condensed\n ? t('pipelineRunList.vulnerabilitySeverityTitle.medium')\n : null}\n </span>\n <span\n className={classes.severityCount}\n data-testid=\"pipelinerun-medium-vulnerabilities-count\"\n >\n {scanResults.vulnerabilities.medium || 0}\n </span>\n </div>\n <div className={classNames(classes.severityContainer, 'severity')}>\n <span className={classes.severityStatus}>\n <Tooltip\n content={t('pipelineRunList.vulnerabilitySeverityTitle.low')}\n >\n <AngleDoubleDownIcon\n className={classes.lowStatus}\n titleAccess={t(\n 'pipelineRunList.vulnerabilitySeverityTitle.low',\n )}\n />\n </Tooltip>\n {!condensed\n ? t('pipelineRunList.vulnerabilitySeverityTitle.low')\n : null}\n </span>\n <span\n className={classes.severityCount}\n data-testid=\"pipelinerun-low-vulnerabilities-count\"\n >\n {scanResults.vulnerabilities.low || 0}\n </span>\n </div>\n </>\n ) : (\n '-'\n )}\n </div>\n );\n};\n\nexport default PipelineRunVulnerabilities;\n"],"names":["highColor","mediumColor"],"mappings":"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"}
1
+ {"version":3,"file":"PipelineRunVulnerabilities.esm.js","sources":["../../../src/components/PipelineRunList/PipelineRunVulnerabilities.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 { FC } from 'react';\n\nimport Box from '@mui/material/Box';\nimport AngleDoubleDownIcon from '@mui/icons-material/KeyboardDoubleArrowDownOutlined';\nimport AngleDoubleUpIcon from '@mui/icons-material/KeyboardDoubleArrowUpOutlined';\nimport { Tooltip } from '@patternfly/react-core';\nimport { t_color_orange_40 as highColor } from '@patternfly/react-tokens/dist/js/t_color_orange_40';\nimport classNames from 'classnames';\n\nimport { PipelineRunKind } from '@backstage-community/plugin-tekton-react';\n\nimport { usePipelineRunScanResults } from '../../hooks/usePipelineRunScanResults';\nimport CriticalRiskIcon from '../Icons/CriticalRiskIcon';\nimport EqualsIcon from '../Icons/EqualsIcon';\nimport { tektonTranslationRef } from '../../translations/index.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\ntype PipelineRunVulnerabilitiesProps = {\n pipelineRun: PipelineRunKind;\n condensed?: boolean;\n};\n\nconst PipelineRunVulnerabilities: FC<PipelineRunVulnerabilitiesProps> = ({\n pipelineRun,\n condensed,\n}) => {\n const scanResults = usePipelineRunScanResults(pipelineRun);\n const { t } = useTranslationRef(tektonTranslationRef);\n\n return (\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: 1,\n }}\n >\n {scanResults?.vulnerabilities ? (\n <>\n <Box\n className={classNames('severity')}\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: 0.5,\n }}\n >\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: 0.5,\n }}\n >\n <Tooltip\n content={t(\n 'pipelineRunList.vulnerabilitySeverityTitle.critical',\n )}\n >\n <CriticalRiskIcon\n height=\"1em\"\n width=\"1em\"\n title={t(\n 'pipelineRunList.vulnerabilitySeverityTitle.critical',\n )}\n />\n </Tooltip>\n {!condensed\n ? t('pipelineRunList.vulnerabilitySeverityTitle.critical')\n : null}\n </Box>\n <Box\n component=\"span\"\n sx={{ fontWeight: 'bold' }}\n data-testid=\"pipelinerun-critical-vulnerabilities-count\"\n >\n {scanResults.vulnerabilities.critical || 0}\n </Box>\n </Box>\n <Box\n className={classNames('severity')}\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: 0.5,\n }}\n >\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: 0.5,\n }}\n >\n <Tooltip\n content={t('pipelineRunList.vulnerabilitySeverityTitle.high')}\n >\n <AngleDoubleUpIcon\n sx={{\n color: highColor.value,\n height: '0.8em',\n width: '0.8em',\n }}\n titleAccess={t(\n 'pipelineRunList.vulnerabilitySeverityTitle.high',\n )}\n />\n </Tooltip>\n {!condensed\n ? t('pipelineRunList.vulnerabilitySeverityTitle.high')\n : null}\n </Box>\n <Box\n component=\"span\"\n sx={{ fontWeight: 'bold' }}\n data-testid=\"pipelinerun-high-vulnerabilities-count\"\n >\n {scanResults.vulnerabilities.high || 0}\n </Box>\n </Box>\n <Box\n className={classNames('severity')}\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: 0.5,\n }}\n >\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: 0.5,\n }}\n >\n <Tooltip\n content={t('pipelineRunList.vulnerabilitySeverityTitle.medium')}\n >\n <EqualsIcon\n height=\"1.3em\"\n width=\"1.3em\"\n title={t('pipelineRunList.vulnerabilitySeverityTitle.medium')}\n />\n </Tooltip>\n {!condensed\n ? t('pipelineRunList.vulnerabilitySeverityTitle.medium')\n : null}\n </Box>\n <Box\n component=\"span\"\n sx={{ fontWeight: 'bold' }}\n data-testid=\"pipelinerun-medium-vulnerabilities-count\"\n >\n {scanResults.vulnerabilities.medium || 0}\n </Box>\n </Box>\n <Box\n className={classNames('severity')}\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: 0.5,\n }}\n >\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'nowrap',\n gap: 0.5,\n }}\n >\n <Tooltip\n content={t('pipelineRunList.vulnerabilitySeverityTitle.low')}\n >\n <AngleDoubleDownIcon\n sx={{ height: '0.8em', width: '0.8em' }}\n titleAccess={t(\n 'pipelineRunList.vulnerabilitySeverityTitle.low',\n )}\n />\n </Tooltip>\n {!condensed\n ? t('pipelineRunList.vulnerabilitySeverityTitle.low')\n : null}\n </Box>\n <Box\n component=\"span\"\n sx={{ fontWeight: 'bold' }}\n data-testid=\"pipelinerun-low-vulnerabilities-count\"\n >\n {scanResults.vulnerabilities.low || 0}\n </Box>\n </Box>\n </>\n ) : (\n '-'\n )}\n </Box>\n );\n};\n\nexport default PipelineRunVulnerabilities;\n"],"names":["highColor"],"mappings":"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"}
@@ -1,21 +1,14 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { TableHead, TableRow, TableCell, TableSortLabel, makeStyles } from '@material-ui/core';
2
+ import TableCell from '@mui/material/TableCell';
3
+ import TableHead from '@mui/material/TableHead';
4
+ import TableRow from '@mui/material/TableRow';
5
+ import TableSortLabel from '@mui/material/TableSortLabel';
3
6
  import { getPipelineRunColumnHeader } from './PipelineRunColumnHeader.esm.js';
7
+ import { getMergedPipelineRunTableHeaderCellSx } from './pipelineRunTableColumns.esm.js';
4
8
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
9
  import '../../translations/index.esm.js';
6
10
  import { tektonTranslationRef } from '../../translations/ref.esm.js';
7
11
 
8
- const useStyles = makeStyles((theme) => ({
9
- header: {
10
- padding: theme.spacing(1, 2, 1, 2.5),
11
- borderTop: `1px solid ${theme.palette.grey.A100}`,
12
- borderBottom: `1px solid ${theme.palette.grey.A100}`,
13
- // withStyles hasn't a generic overload for theme
14
- fontWeight: "bold",
15
- position: "static",
16
- wordBreak: "normal"
17
- }
18
- }));
19
12
  const EnhancedTableHead = ({
20
13
  order,
21
14
  orderBy,
@@ -25,16 +18,17 @@ const EnhancedTableHead = ({
25
18
  const createSortHandler = (property, id) => (event) => {
26
19
  onRequestSort(event, property, id);
27
20
  };
28
- const classes = useStyles();
29
21
  const { t } = useTranslationRef(tektonTranslationRef);
30
22
  const pipelineRunColumnHeader = getPipelineRunColumnHeader(t);
31
23
  return /* @__PURE__ */ jsx(TableHead, { children: /* @__PURE__ */ jsx(TableRow, { children: pipelineRunColumnHeader.map((headCell) => {
24
+ const columnId = headCell.id;
25
+ const isExpander = columnId === "expander";
32
26
  return /* @__PURE__ */ jsx(
33
27
  TableCell,
34
28
  {
35
- className: classes.header,
29
+ sx: getMergedPipelineRunTableHeaderCellSx(columnId),
36
30
  align: "left",
37
- padding: "normal",
31
+ padding: isExpander ? "checkbox" : "normal",
38
32
  sortDirection: orderBy === headCell.field ? headCell.defaultSort : false,
39
33
  children: headCell.field ? /* @__PURE__ */ jsx(
40
34
  TableSortLabel,
@@ -52,7 +46,7 @@ const EnhancedTableHead = ({
52
46
  headCell.title
53
47
  ] })
54
48
  },
55
- headCell.id
49
+ columnId
56
50
  );
57
51
  }) }) });
58
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineTableHeader.esm.js","sources":["../../../src/components/PipelineRunList/PipelineTableHeader.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 { MouseEvent } from 'react';\n\nimport {\n makeStyles,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n} from '@material-ui/core';\n\nimport { Order } from '../../types/types';\nimport { getPipelineRunColumnHeader } from './PipelineRunColumnHeader';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations/index.ts';\n\ntype EnhancedTableProps = {\n onRequestSort: (\n event: MouseEvent<unknown>,\n property: string,\n id: string,\n ) => void;\n order: Order;\n orderBy: string;\n orderById: string;\n};\n\nconst useStyles = makeStyles(theme => ({\n header: {\n padding: theme.spacing(1, 2, 1, 2.5),\n borderTop: `1px solid ${theme.palette.grey.A100}`,\n borderBottom: `1px solid ${theme.palette.grey.A100}`,\n // withStyles hasn't a generic overload for theme\n fontWeight: 'bold',\n position: 'static',\n wordBreak: 'normal',\n },\n}));\n\nexport const EnhancedTableHead = ({\n order,\n orderBy,\n orderById,\n onRequestSort,\n}: EnhancedTableProps) => {\n const createSortHandler =\n (property: string, id: string) => (event: MouseEvent<unknown>) => {\n onRequestSort(event, property, id);\n };\n const classes = useStyles();\n const { t } = useTranslationRef(tektonTranslationRef);\n const pipelineRunColumnHeader = getPipelineRunColumnHeader(t);\n\n return (\n <TableHead>\n <TableRow>\n {pipelineRunColumnHeader.map(headCell => {\n return (\n <TableCell\n className={classes.header}\n key={headCell.id as string}\n align=\"left\"\n padding=\"normal\"\n sortDirection={\n orderBy === headCell.field ? headCell.defaultSort : false\n }\n >\n {headCell.field ? (\n <TableSortLabel\n active={\n orderBy === headCell.field && orderById === headCell.id\n }\n direction={order}\n onClick={createSortHandler(\n headCell.field as string,\n headCell.id as string,\n )}\n >\n {headCell.title}\n </TableSortLabel>\n ) : (\n <> {headCell.title}</>\n )}\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAyCA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,MAAA,EAAQ;AAAA,IACN,SAAS,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAA,EAAG,GAAG,GAAG,CAAA;AAAA,IACnC,SAAA,EAAW,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,KAAK,IAAI,CAAA,CAAA;AAAA,IAC/C,YAAA,EAAc,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,KAAK,IAAI,CAAA,CAAA;AAAA;AAAA,IAElD,UAAA,EAAY,MAAA;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,SAAA,EAAW;AAAA;AAEf,CAAA,CAAE,CAAA;AAEK,MAAM,oBAAoB,CAAC;AAAA,EAChC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,KAA0B;AACxB,EAAA,MAAM,iBAAA,GACJ,CAAC,QAAA,EAAkB,EAAA,KAAe,CAAC,KAAA,KAA+B;AAChE,IAAA,aAAA,CAAc,KAAA,EAAO,UAAU,EAAE,CAAA;AAAA,EACnC,CAAA;AACF,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AACpD,EAAA,MAAM,uBAAA,GAA0B,2BAA2B,CAAC,CAAA;AAE5D,EAAA,2BACG,SAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EACE,QAAA,EAAA,uBAAA,CAAwB,IAAI,CAAA,QAAA,KAAY;AACvC,IAAA,uBACE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,WAAW,OAAA,CAAQ,MAAA;AAAA,QAEnB,KAAA,EAAM,MAAA;AAAA,QACN,OAAA,EAAQ,QAAA;AAAA,QACR,aAAA,EACE,OAAA,KAAY,QAAA,CAAS,KAAA,GAAQ,SAAS,WAAA,GAAc,KAAA;AAAA,QAGrD,mBAAS,KAAA,mBACR,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,MAAA,EACE,OAAA,KAAY,QAAA,CAAS,KAAA,IAAS,cAAc,QAAA,CAAS,EAAA;AAAA,YAEvD,SAAA,EAAW,KAAA;AAAA,YACX,OAAA,EAAS,iBAAA;AAAA,cACP,QAAA,CAAS,KAAA;AAAA,cACT,QAAA,CAAS;AAAA,aACX;AAAA,YAEC,QAAA,EAAA,QAAA,CAAS;AAAA;AAAA,4BAGZ,IAAA,CAAA,QAAA,EAAA,EAAE,QAAA,EAAA;AAAA,UAAA,GAAA;AAAA,UAAE,QAAA,CAAS;AAAA,SAAA,EAAM;AAAA,OAAA;AAAA,MArBhB,QAAA,CAAS;AAAA,KAuBhB;AAAA,EAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PipelineTableHeader.esm.js","sources":["../../../src/components/PipelineRunList/PipelineTableHeader.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 { MouseEvent } from 'react';\n\nimport TableCell from '@mui/material/TableCell';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport TableSortLabel from '@mui/material/TableSortLabel';\n\nimport { Order } from '../../types/types';\nimport { getPipelineRunColumnHeader } from './PipelineRunColumnHeader';\nimport { getMergedPipelineRunTableHeaderCellSx } from './pipelineRunTableColumns';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { tektonTranslationRef } from '../../translations/index.ts';\n\ntype EnhancedTableProps = {\n onRequestSort: (\n event: MouseEvent<unknown>,\n property: string,\n id: string,\n ) => void;\n order: Order;\n orderBy: string;\n orderById: string;\n};\n\nexport const EnhancedTableHead = ({\n order,\n orderBy,\n orderById,\n onRequestSort,\n}: EnhancedTableProps) => {\n const createSortHandler =\n (property: string, id: string) => (event: MouseEvent<unknown>) => {\n onRequestSort(event, property, id);\n };\n const { t } = useTranslationRef(tektonTranslationRef);\n const pipelineRunColumnHeader = getPipelineRunColumnHeader(t);\n\n return (\n <TableHead>\n <TableRow>\n {pipelineRunColumnHeader.map(headCell => {\n const columnId = headCell.id as string;\n const isExpander = columnId === 'expander';\n\n return (\n <TableCell\n sx={getMergedPipelineRunTableHeaderCellSx(columnId)}\n key={columnId}\n align=\"left\"\n padding={isExpander ? 'checkbox' : 'normal'}\n sortDirection={\n orderBy === headCell.field ? headCell.defaultSort : false\n }\n >\n {headCell.field ? (\n <TableSortLabel\n active={\n orderBy === headCell.field && orderById === headCell.id\n }\n direction={order}\n onClick={createSortHandler(\n headCell.field as string,\n headCell.id as string,\n )}\n >\n {headCell.title}\n </TableSortLabel>\n ) : (\n <> {headCell.title}</>\n )}\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAuCO,MAAM,oBAAoB,CAAC;AAAA,EAChC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,KAA0B;AACxB,EAAA,MAAM,iBAAA,GACJ,CAAC,QAAA,EAAkB,EAAA,KAAe,CAAC,KAAA,KAA+B;AAChE,IAAA,aAAA,CAAc,KAAA,EAAO,UAAU,EAAE,CAAA;AAAA,EACnC,CAAA;AACF,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,oBAAoB,CAAA;AACpD,EAAA,MAAM,uBAAA,GAA0B,2BAA2B,CAAC,CAAA;AAE5D,EAAA,2BACG,SAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EACE,QAAA,EAAA,uBAAA,CAAwB,IAAI,CAAA,QAAA,KAAY;AACvC,IAAA,MAAM,WAAW,QAAA,CAAS,EAAA;AAC1B,IAAA,MAAM,aAAa,QAAA,KAAa,UAAA;AAEhC,IAAA,uBACE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,sCAAsC,QAAQ,CAAA;AAAA,QAElD,KAAA,EAAM,MAAA;AAAA,QACN,OAAA,EAAS,aAAa,UAAA,GAAa,QAAA;AAAA,QACnC,aAAA,EACE,OAAA,KAAY,QAAA,CAAS,KAAA,GAAQ,SAAS,WAAA,GAAc,KAAA;AAAA,QAGrD,mBAAS,KAAA,mBACR,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,MAAA,EACE,OAAA,KAAY,QAAA,CAAS,KAAA,IAAS,cAAc,QAAA,CAAS,EAAA;AAAA,YAEvD,SAAA,EAAW,KAAA;AAAA,YACX,OAAA,EAAS,iBAAA;AAAA,cACP,QAAA,CAAS,KAAA;AAAA,cACT,QAAA,CAAS;AAAA,aACX;AAAA,YAEC,QAAA,EAAA,QAAA,CAAS;AAAA;AAAA,4BAGZ,IAAA,CAAA,QAAA,EAAA,EAAE,QAAA,EAAA;AAAA,UAAA,GAAA;AAAA,UAAE,QAAA,CAAS;AAAA,SAAA,EAAM;AAAA,OAAA;AAAA,MArBhB;AAAA,KAuBP;AAAA,EAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1,5 +1,5 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".bs-tkn-pipeline-visualization__label {\n align-items: baseline;\n}\n\n.bs-tkn-pipeline-visualization__label .badge {\n font-size: 12px;\n line-height: 20px;\n margin-right: 4px;\n min-width: 24px;\n padding: 0 7px;\n border-radius: 20px;\n color: var(--pf-t--color--white);\n display: inline-block;\n text-align: center;\n white-space: nowrap;\n width: 100%;\n}\n";
3
+ var css_248z = ".bs-tkn-pipeline-visualization__label {\n align-items: center;\n}\n\n.bs-tkn-pipeline-visualization__label .badge {\n font-size: 14px;\n line-height: 16px;\n margin-right: 4px;\n min-width: 20px;\n padding: 0 5px;\n border-radius: 20px;\n color: var(--pf-t--color--white);\n display: inline-block;\n text-align: center;\n white-space: nowrap;\n width: 100%;\n}\n";
4
4
  styleInject(css_248z);
5
5
  //# sourceMappingURL=ResourceBadge.css.esm.js.map
@@ -0,0 +1,58 @@
1
+ const pipelineRunTableSx = {
2
+ width: "100%"
3
+ };
4
+ const pipelineRunTableCellSx = {
5
+ px: 1.5,
6
+ py: 1
7
+ };
8
+ const pipelineRunTableHeaderCellSx = {
9
+ px: 1.5,
10
+ py: 1,
11
+ borderTop: (theme) => `1px solid ${theme.palette.grey.A100}`,
12
+ borderBottom: (theme) => `1px solid ${theme.palette.grey.A100}`,
13
+ fontWeight: "bold",
14
+ wordBreak: "normal"
15
+ };
16
+ const columnSxById = {
17
+ expander: {
18
+ width: "1%",
19
+ whiteSpace: "nowrap",
20
+ pr: 0,
21
+ pl: 0.5
22
+ },
23
+ name: {
24
+ pl: 0.5,
25
+ wordBreak: "break-word"
26
+ },
27
+ vulnerabilities: {
28
+ whiteSpace: "nowrap"
29
+ },
30
+ status: {
31
+ whiteSpace: "nowrap"
32
+ },
33
+ "task-status": {
34
+ whiteSpace: "nowrap"
35
+ },
36
+ "start-time": {
37
+ whiteSpace: "nowrap"
38
+ },
39
+ duration: {
40
+ whiteSpace: "nowrap"
41
+ },
42
+ actions: {
43
+ width: "1%",
44
+ whiteSpace: "nowrap"
45
+ }
46
+ };
47
+ const getPipelineRunTableColumnSx = (columnId) => columnSxById[columnId] ?? {};
48
+ const getMergedPipelineRunTableCellSx = (columnId) => [
49
+ pipelineRunTableCellSx,
50
+ getPipelineRunTableColumnSx(columnId)
51
+ ];
52
+ const getMergedPipelineRunTableHeaderCellSx = (columnId) => [
53
+ pipelineRunTableHeaderCellSx,
54
+ getPipelineRunTableColumnSx(columnId)
55
+ ];
56
+
57
+ export { getMergedPipelineRunTableCellSx, getMergedPipelineRunTableHeaderCellSx, getPipelineRunTableColumnSx, pipelineRunTableCellSx, pipelineRunTableHeaderCellSx, pipelineRunTableSx };
58
+ //# sourceMappingURL=pipelineRunTableColumns.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelineRunTableColumns.esm.js","sources":["../../../src/components/PipelineRunList/pipelineRunTableColumns.ts"],"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 { SxProps, Theme } from '@mui/material/styles';\n\nexport const pipelineRunTableSx: SxProps<Theme> = {\n width: '100%',\n};\n\nexport const pipelineRunTableCellSx: SxProps<Theme> = {\n px: 1.5,\n py: 1,\n};\n\nexport const pipelineRunTableHeaderCellSx: SxProps<Theme> = {\n px: 1.5,\n py: 1,\n borderTop: (theme: Theme) => `1px solid ${theme.palette.grey.A100}`,\n borderBottom: (theme: Theme) => `1px solid ${theme.palette.grey.A100}`,\n fontWeight: 'bold',\n wordBreak: 'normal',\n};\n\n// Auto table layout: content-sized columns use width 1% + nowrap so they\n// shrink to fit; Name has no width and absorbs the remaining space.\nconst columnSxById: Record<string, SxProps<Theme>> = {\n expander: {\n width: '1%',\n whiteSpace: 'nowrap',\n pr: 0,\n pl: 0.5,\n },\n name: {\n pl: 0.5,\n wordBreak: 'break-word',\n },\n vulnerabilities: {\n whiteSpace: 'nowrap',\n },\n status: {\n whiteSpace: 'nowrap',\n },\n 'task-status': {\n whiteSpace: 'nowrap',\n },\n 'start-time': {\n whiteSpace: 'nowrap',\n },\n duration: {\n whiteSpace: 'nowrap',\n },\n actions: {\n width: '1%',\n whiteSpace: 'nowrap',\n },\n};\n\nexport const getPipelineRunTableColumnSx = (columnId: string): SxProps<Theme> =>\n columnSxById[columnId] ?? {};\n\nexport const getMergedPipelineRunTableCellSx = (\n columnId: string,\n): SxProps<Theme> =>\n [\n pipelineRunTableCellSx,\n getPipelineRunTableColumnSx(columnId),\n ] as SxProps<Theme>;\n\nexport const getMergedPipelineRunTableHeaderCellSx = (\n columnId: string,\n): SxProps<Theme> =>\n [\n pipelineRunTableHeaderCellSx,\n getPipelineRunTableColumnSx(columnId),\n ] as SxProps<Theme>;\n"],"names":[],"mappings":"AAiBO,MAAM,kBAAA,GAAqC;AAAA,EAChD,KAAA,EAAO;AACT;AAEO,MAAM,sBAAA,GAAyC;AAAA,EACpD,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI;AACN;AAEO,MAAM,4BAAA,GAA+C;AAAA,EAC1D,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI,CAAA;AAAA,EACJ,WAAW,CAAC,KAAA,KAAiB,aAAa,KAAA,CAAM,OAAA,CAAQ,KAAK,IAAI,CAAA,CAAA;AAAA,EACjE,cAAc,CAAC,KAAA,KAAiB,aAAa,KAAA,CAAM,OAAA,CAAQ,KAAK,IAAI,CAAA,CAAA;AAAA,EACpE,UAAA,EAAY,MAAA;AAAA,EACZ,SAAA,EAAW;AACb;AAIA,MAAM,YAAA,GAA+C;AAAA,EACnD,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,IAAA;AAAA,IACP,UAAA,EAAY,QAAA;AAAA,IACZ,EAAA,EAAI,CAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,GAAA;AAAA,IACJ,SAAA,EAAW;AAAA,GACb;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,UAAA,EAAY;AAAA,GACd;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,UAAA,EAAY;AAAA,GACd;AAAA,EACA,aAAA,EAAe;AAAA,IACb,UAAA,EAAY;AAAA,GACd;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,UAAA,EAAY;AAAA,GACd;AAAA,EACA,QAAA,EAAU;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,IAAA;AAAA,IACP,UAAA,EAAY;AAAA;AAEhB,CAAA;AAEO,MAAM,8BAA8B,CAAC,QAAA,KAC1C,YAAA,CAAa,QAAQ,KAAK;AAErB,MAAM,+BAAA,GAAkC,CAC7C,QAAA,KAEA;AAAA,EACE,sBAAA;AAAA,EACA,4BAA4B,QAAQ;AACtC;AAEK,MAAM,qCAAA,GAAwC,CACnD,QAAA,KAEA;AAAA,EACE,4BAAA;AAAA,EACA,4BAA4B,QAAQ;AACtC;;;;"}