@kyverno/backstage-plugin-policy-reporter 2.2.0 → 2.2.1

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.
@@ -1,5 +1,5 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
1
2
  import { Progress, ContentHeader, Page, Content } from '@backstage/core-components';
2
- import React from 'react';
3
3
  import { useEntity, MissingAnnotationEmptyState } from '@backstage/plugin-catalog-react';
4
4
  import { Grid } from '@material-ui/core';
5
5
  import { PolicyReportsTable } from '../PolicyReportsTable/PolicyReportsTable.esm.js';
@@ -9,7 +9,7 @@ import { MissingEnvironmentsEmptyState } from '../MissingEnvironmentsEmptyState/
9
9
  import { useEntityEnvironment } from '../../hooks/useEntityEnvironment.esm.js';
10
10
  import { KYVERNO_NAMESPACE_ANNOTATION, KYVERNO_KIND_ANNOTATION, KYVERNO_RESOURCE_NAME_ANNOTATION } from '@kyverno/backstage-plugin-policy-reporter-common';
11
11
 
12
- const PageContent = ({ children }) => /* @__PURE__ */ React.createElement(Page, { themeId: "tool" }, /* @__PURE__ */ React.createElement(Content, null, children));
12
+ const PageContent = ({ children }) => /* @__PURE__ */ jsx(Page, { themeId: "tool", children: /* @__PURE__ */ jsx(Content, { children }) });
13
13
  const EntityCustomPoliciesContent = ({
14
14
  annotationsDocumentationUrl,
15
15
  policyDocumentationUrl,
@@ -26,72 +26,79 @@ const EntityCustomPoliciesContent = ({
26
26
  currentEnvironment
27
27
  } = useEntityEnvironment(entity, annotationsState);
28
28
  if (!annotationsState)
29
- return /* @__PURE__ */ React.createElement(PageContent, null, /* @__PURE__ */ React.createElement(
29
+ return /* @__PURE__ */ jsx(PageContent, { children: /* @__PURE__ */ jsx(
30
30
  MissingAnnotationEmptyState,
31
31
  {
32
32
  readMoreUrl: annotationsDocumentationUrl,
33
33
  annotation: annotationsRequired
34
34
  }
35
- ));
36
- if (environmentsLoading) return /* @__PURE__ */ React.createElement(Progress, null);
35
+ ) });
36
+ if (environmentsLoading) return /* @__PURE__ */ jsx(Progress, {});
37
37
  if (environments === void 0 || !currentEnvironment)
38
- return /* @__PURE__ */ React.createElement(PageContent, null, /* @__PURE__ */ React.createElement(MissingEnvironmentsEmptyState, { entity }));
38
+ return /* @__PURE__ */ jsx(PageContent, { children: /* @__PURE__ */ jsx(MissingEnvironmentsEmptyState, { entity }) });
39
39
  const namespaces = annotations[KYVERNO_NAMESPACE_ANNOTATION].split(",");
40
40
  const kinds = annotations[KYVERNO_KIND_ANNOTATION].split(",");
41
41
  const resourceName = annotations[KYVERNO_RESOURCE_NAME_ANNOTATION];
42
- return /* @__PURE__ */ React.createElement(PageContent, null, /* @__PURE__ */ React.createElement(ContentHeader, { title }, /* @__PURE__ */ React.createElement(
43
- SelectEnvironment,
44
- {
45
- environments,
46
- currentEnvironment,
47
- setCurrentEnvironment
48
- }
49
- )), /* @__PURE__ */ React.createElement(Grid, { container: true, spacing: 2 }, /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(
50
- PolicyReportsTable,
51
- {
52
- currentEnvironment,
53
- filter: {
54
- namespaces,
55
- sources,
56
- kinds,
57
- status: ["fail", "warn", "error"],
58
- search: resourceName
59
- },
60
- title: "Failing Policy Results",
61
- emptyContentText: "No failing policies",
62
- policyDocumentationUrl
63
- }
64
- )), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(
65
- PolicyReportsTable,
66
- {
67
- currentEnvironment,
68
- filter: {
69
- namespaces,
70
- sources,
71
- kinds,
72
- status: ["pass"],
73
- search: resourceName
74
- },
75
- title: "Passing Policy Results",
76
- emptyContentText: "No passing policies",
77
- policyDocumentationUrl
78
- }
79
- )), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(
80
- PolicyReportsTable,
81
- {
82
- currentEnvironment,
83
- filter: {
84
- namespaces,
85
- sources,
86
- kinds,
87
- status: ["skip"],
88
- search: resourceName
89
- },
90
- title: "Skipped Policy Results",
91
- emptyContentText: "No skipped policies",
92
- policyDocumentationUrl
93
- }
94
- ))));
42
+ return /* @__PURE__ */ jsxs(PageContent, { children: [
43
+ /* @__PURE__ */ jsx(ContentHeader, { title, children: /* @__PURE__ */ jsx(
44
+ SelectEnvironment,
45
+ {
46
+ environments,
47
+ currentEnvironment,
48
+ setCurrentEnvironment
49
+ }
50
+ ) }),
51
+ /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
52
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(
53
+ PolicyReportsTable,
54
+ {
55
+ currentEnvironment,
56
+ filter: {
57
+ namespaces,
58
+ sources,
59
+ kinds,
60
+ status: ["fail", "warn", "error"],
61
+ search: resourceName
62
+ },
63
+ title: "Failing Policy Results",
64
+ emptyContentText: "No failing policies",
65
+ policyDocumentationUrl
66
+ }
67
+ ) }),
68
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(
69
+ PolicyReportsTable,
70
+ {
71
+ currentEnvironment,
72
+ filter: {
73
+ namespaces,
74
+ sources,
75
+ kinds,
76
+ status: ["pass"],
77
+ search: resourceName
78
+ },
79
+ title: "Passing Policy Results",
80
+ emptyContentText: "No passing policies",
81
+ policyDocumentationUrl
82
+ }
83
+ ) }),
84
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(
85
+ PolicyReportsTable,
86
+ {
87
+ currentEnvironment,
88
+ filter: {
89
+ namespaces,
90
+ sources,
91
+ kinds,
92
+ status: ["skip"],
93
+ search: resourceName
94
+ },
95
+ title: "Skipped Policy Results",
96
+ emptyContentText: "No skipped policies",
97
+ policyDocumentationUrl
98
+ }
99
+ ) })
100
+ ] })
101
+ ] });
95
102
  };
96
103
 
97
104
  export { EntityCustomPoliciesContent };
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCustomPoliciesContent.esm.js","sources":["../../../src/components/EntityCustomPoliciesContent/EntityCustomPoliciesContent.tsx"],"sourcesContent":["import {\n Content,\n ContentHeader,\n Page,\n Progress,\n} from '@backstage/core-components';\nimport React from 'react';\nimport {\n MissingAnnotationEmptyState,\n useEntity,\n} from '@backstage/plugin-catalog-react';\nimport { Grid } from '@material-ui/core';\nimport { PolicyReportsTable } from '../PolicyReportsTable';\nimport { SelectEnvironment } from '../SelectEnvironment';\nimport {\n containsRequiredAnnotations,\n annotationsRequired,\n} from '../../utils/annotations';\nimport { MissingEnvironmentsEmptyState } from '../MissingEnvironmentsEmptyState';\nimport { useEntityEnvironment } from '../../hooks/useEntityEnvironment';\nimport {\n KYVERNO_KIND_ANNOTATION,\n KYVERNO_NAMESPACE_ANNOTATION,\n KYVERNO_RESOURCE_NAME_ANNOTATION,\n} from '@kyverno/backstage-plugin-policy-reporter-common';\n\ntype EntityCustomPoliciesContentProps = {\n annotationsDocumentationUrl?: string;\n policyDocumentationUrl?: string;\n sources: string[];\n title: string;\n};\n\ntype PageContentProps = {\n children: React.ReactNode;\n};\n\nconst PageContent = ({ children }: PageContentProps) => (\n <Page themeId=\"tool\">\n <Content>{children}</Content>\n </Page>\n);\n\nexport const EntityCustomPoliciesContent = ({\n annotationsDocumentationUrl,\n policyDocumentationUrl,\n sources,\n title,\n}: EntityCustomPoliciesContentProps) => {\n const { entity } = useEntity();\n const annotations = entity.metadata.annotations;\n\n // Boolean variable to validate that entity have required annotations\n const annotationsState: boolean = containsRequiredAnnotations(annotations);\n\n const {\n environments,\n environmentsLoading,\n setCurrentEnvironment,\n currentEnvironment,\n } = useEntityEnvironment(entity, annotationsState);\n\n // Annotations missing\n if (!annotationsState)\n return (\n <PageContent>\n <MissingAnnotationEmptyState\n readMoreUrl={annotationsDocumentationUrl}\n annotation={annotationsRequired}\n />\n </PageContent>\n );\n\n // Fetching environments\n if (environmentsLoading) return <Progress />;\n\n // Environments missing\n if (environments === undefined || !currentEnvironment)\n return (\n <PageContent>\n <MissingEnvironmentsEmptyState entity={entity} />\n </PageContent>\n );\n\n const namespaces = annotations![KYVERNO_NAMESPACE_ANNOTATION].split(',');\n const kinds = annotations![KYVERNO_KIND_ANNOTATION].split(',');\n const resourceName = annotations![KYVERNO_RESOURCE_NAME_ANNOTATION];\n\n return (\n <PageContent>\n <ContentHeader title={title}>\n <SelectEnvironment\n environments={environments}\n currentEnvironment={currentEnvironment}\n setCurrentEnvironment={setCurrentEnvironment}\n />\n </ContentHeader>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources,\n kinds,\n status: ['fail', 'warn', 'error'],\n search: resourceName,\n }}\n title=\"Failing Policy Results\"\n emptyContentText=\"No failing policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources,\n kinds,\n status: ['pass'],\n search: resourceName,\n }}\n title=\"Passing Policy Results\"\n emptyContentText=\"No passing policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources,\n kinds,\n status: ['skip'],\n search: resourceName,\n }}\n title=\"Skipped Policy Results\"\n emptyContentText=\"No skipped policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n </Grid>\n </PageContent>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityCustomPoliciesContent.esm.js","sources":["../../../src/components/EntityCustomPoliciesContent/EntityCustomPoliciesContent.tsx"],"sourcesContent":["import {\n Content,\n ContentHeader,\n Page,\n Progress,\n} from '@backstage/core-components';\nimport {\n MissingAnnotationEmptyState,\n useEntity,\n} from '@backstage/plugin-catalog-react';\nimport { Grid } from '@material-ui/core';\nimport { PolicyReportsTable } from '../PolicyReportsTable';\nimport { SelectEnvironment } from '../SelectEnvironment';\nimport {\n containsRequiredAnnotations,\n annotationsRequired,\n} from '../../utils/annotations';\nimport { MissingEnvironmentsEmptyState } from '../MissingEnvironmentsEmptyState';\nimport { useEntityEnvironment } from '../../hooks/useEntityEnvironment';\nimport {\n KYVERNO_KIND_ANNOTATION,\n KYVERNO_NAMESPACE_ANNOTATION,\n KYVERNO_RESOURCE_NAME_ANNOTATION,\n} from '@kyverno/backstage-plugin-policy-reporter-common';\n\ntype EntityCustomPoliciesContentProps = {\n annotationsDocumentationUrl?: string;\n policyDocumentationUrl?: string;\n sources: string[];\n title: string;\n};\n\ntype PageContentProps = {\n children: React.ReactNode;\n};\n\nconst PageContent = ({ children }: PageContentProps) => (\n <Page themeId=\"tool\">\n <Content>{children}</Content>\n </Page>\n);\n\nexport const EntityCustomPoliciesContent = ({\n annotationsDocumentationUrl,\n policyDocumentationUrl,\n sources,\n title,\n}: EntityCustomPoliciesContentProps) => {\n const { entity } = useEntity();\n const annotations = entity.metadata.annotations;\n\n // Boolean variable to validate that entity have required annotations\n const annotationsState: boolean = containsRequiredAnnotations(annotations);\n\n const {\n environments,\n environmentsLoading,\n setCurrentEnvironment,\n currentEnvironment,\n } = useEntityEnvironment(entity, annotationsState);\n\n // Annotations missing\n if (!annotationsState)\n return (\n <PageContent>\n <MissingAnnotationEmptyState\n readMoreUrl={annotationsDocumentationUrl}\n annotation={annotationsRequired}\n />\n </PageContent>\n );\n\n // Fetching environments\n if (environmentsLoading) return <Progress />;\n\n // Environments missing\n if (environments === undefined || !currentEnvironment)\n return (\n <PageContent>\n <MissingEnvironmentsEmptyState entity={entity} />\n </PageContent>\n );\n\n const namespaces = annotations![KYVERNO_NAMESPACE_ANNOTATION].split(',');\n const kinds = annotations![KYVERNO_KIND_ANNOTATION].split(',');\n const resourceName = annotations![KYVERNO_RESOURCE_NAME_ANNOTATION];\n\n return (\n <PageContent>\n <ContentHeader title={title}>\n <SelectEnvironment\n environments={environments}\n currentEnvironment={currentEnvironment}\n setCurrentEnvironment={setCurrentEnvironment}\n />\n </ContentHeader>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources,\n kinds,\n status: ['fail', 'warn', 'error'],\n search: resourceName,\n }}\n title=\"Failing Policy Results\"\n emptyContentText=\"No failing policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources,\n kinds,\n status: ['pass'],\n search: resourceName,\n }}\n title=\"Passing Policy Results\"\n emptyContentText=\"No passing policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources,\n kinds,\n status: ['skip'],\n search: resourceName,\n }}\n title=\"Skipped Policy Results\"\n emptyContentText=\"No skipped policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n </Grid>\n </PageContent>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
1
2
  import { Progress, ContentHeader, Page, Content } from '@backstage/core-components';
2
- import React from 'react';
3
3
  import { useEntity, MissingAnnotationEmptyState } from '@backstage/plugin-catalog-react';
4
4
  import { Grid } from '@material-ui/core';
5
5
  import { PolicyReportsTable } from '../PolicyReportsTable/PolicyReportsTable.esm.js';
@@ -9,7 +9,7 @@ import { MissingEnvironmentsEmptyState } from '../MissingEnvironmentsEmptyState/
9
9
  import { useEntityEnvironment } from '../../hooks/useEntityEnvironment.esm.js';
10
10
  import { KYVERNO_NAMESPACE_ANNOTATION, KYVERNO_KIND_ANNOTATION, KYVERNO_RESOURCE_NAME_ANNOTATION } from '@kyverno/backstage-plugin-policy-reporter-common';
11
11
 
12
- const PageContent = ({ children }) => /* @__PURE__ */ React.createElement(Page, { themeId: "tool" }, /* @__PURE__ */ React.createElement(Content, null, children));
12
+ const PageContent = ({ children }) => /* @__PURE__ */ jsx(Page, { themeId: "tool", children: /* @__PURE__ */ jsx(Content, { children }) });
13
13
  const EntityKyvernoPoliciesContent = ({
14
14
  annotationsDocumentationUrl,
15
15
  policyDocumentationUrl
@@ -24,72 +24,79 @@ const EntityKyvernoPoliciesContent = ({
24
24
  currentEnvironment
25
25
  } = useEntityEnvironment(entity, annotationsState);
26
26
  if (!annotationsState)
27
- return /* @__PURE__ */ React.createElement(PageContent, null, /* @__PURE__ */ React.createElement(
27
+ return /* @__PURE__ */ jsx(PageContent, { children: /* @__PURE__ */ jsx(
28
28
  MissingAnnotationEmptyState,
29
29
  {
30
30
  readMoreUrl: annotationsDocumentationUrl,
31
31
  annotation: annotationsRequired
32
32
  }
33
- ));
34
- if (environmentsLoading) return /* @__PURE__ */ React.createElement(Progress, null);
33
+ ) });
34
+ if (environmentsLoading) return /* @__PURE__ */ jsx(Progress, {});
35
35
  if (environments === void 0 || !currentEnvironment)
36
- return /* @__PURE__ */ React.createElement(PageContent, null, /* @__PURE__ */ React.createElement(MissingEnvironmentsEmptyState, { entity }));
36
+ return /* @__PURE__ */ jsx(PageContent, { children: /* @__PURE__ */ jsx(MissingEnvironmentsEmptyState, { entity }) });
37
37
  const namespaces = annotations[KYVERNO_NAMESPACE_ANNOTATION].split(",");
38
38
  const kinds = annotations[KYVERNO_KIND_ANNOTATION].split(",");
39
39
  const resourceName = annotations[KYVERNO_RESOURCE_NAME_ANNOTATION];
40
- return /* @__PURE__ */ React.createElement(PageContent, null, /* @__PURE__ */ React.createElement(ContentHeader, { title: "Kyverno Policy Reports" }, /* @__PURE__ */ React.createElement(
41
- SelectEnvironment,
42
- {
43
- environments,
44
- currentEnvironment,
45
- setCurrentEnvironment
46
- }
47
- )), /* @__PURE__ */ React.createElement(Grid, { container: true, spacing: 2 }, /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(
48
- PolicyReportsTable,
49
- {
50
- currentEnvironment,
51
- filter: {
52
- namespaces,
53
- sources: ["kyverno"],
54
- kinds,
55
- status: ["fail", "warn", "error"],
56
- search: resourceName
57
- },
58
- title: "Failing Policy Results",
59
- emptyContentText: "No failing policies",
60
- policyDocumentationUrl
61
- }
62
- )), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(
63
- PolicyReportsTable,
64
- {
65
- currentEnvironment,
66
- filter: {
67
- namespaces,
68
- sources: ["kyverno"],
69
- kinds,
70
- status: ["pass"],
71
- search: resourceName
72
- },
73
- title: "Passing Policy Results",
74
- emptyContentText: "No passing policies",
75
- policyDocumentationUrl
76
- }
77
- )), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(
78
- PolicyReportsTable,
79
- {
80
- currentEnvironment,
81
- filter: {
82
- namespaces,
83
- sources: ["kyverno"],
84
- kinds,
85
- status: ["skip"],
86
- search: resourceName
87
- },
88
- title: "Skipped Policy Results",
89
- emptyContentText: "No skipped policies",
90
- policyDocumentationUrl
91
- }
92
- ))));
40
+ return /* @__PURE__ */ jsxs(PageContent, { children: [
41
+ /* @__PURE__ */ jsx(ContentHeader, { title: "Kyverno Policy Reports", children: /* @__PURE__ */ jsx(
42
+ SelectEnvironment,
43
+ {
44
+ environments,
45
+ currentEnvironment,
46
+ setCurrentEnvironment
47
+ }
48
+ ) }),
49
+ /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
50
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(
51
+ PolicyReportsTable,
52
+ {
53
+ currentEnvironment,
54
+ filter: {
55
+ namespaces,
56
+ sources: ["kyverno"],
57
+ kinds,
58
+ status: ["fail", "warn", "error"],
59
+ search: resourceName
60
+ },
61
+ title: "Failing Policy Results",
62
+ emptyContentText: "No failing policies",
63
+ policyDocumentationUrl
64
+ }
65
+ ) }),
66
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(
67
+ PolicyReportsTable,
68
+ {
69
+ currentEnvironment,
70
+ filter: {
71
+ namespaces,
72
+ sources: ["kyverno"],
73
+ kinds,
74
+ status: ["pass"],
75
+ search: resourceName
76
+ },
77
+ title: "Passing Policy Results",
78
+ emptyContentText: "No passing policies",
79
+ policyDocumentationUrl
80
+ }
81
+ ) }),
82
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(
83
+ PolicyReportsTable,
84
+ {
85
+ currentEnvironment,
86
+ filter: {
87
+ namespaces,
88
+ sources: ["kyverno"],
89
+ kinds,
90
+ status: ["skip"],
91
+ search: resourceName
92
+ },
93
+ title: "Skipped Policy Results",
94
+ emptyContentText: "No skipped policies",
95
+ policyDocumentationUrl
96
+ }
97
+ ) })
98
+ ] })
99
+ ] });
93
100
  };
94
101
 
95
102
  export { EntityKyvernoPoliciesContent };
@@ -1 +1 @@
1
- {"version":3,"file":"EntityKyvernoPoliciesContent.esm.js","sources":["../../../src/components/EntityKyvernoPoliciesContent/EntityKyvernoPoliciesContent.tsx"],"sourcesContent":["import {\n Content,\n ContentHeader,\n Page,\n Progress,\n} from '@backstage/core-components';\nimport React from 'react';\nimport {\n MissingAnnotationEmptyState,\n useEntity,\n} from '@backstage/plugin-catalog-react';\nimport { Grid } from '@material-ui/core';\nimport { PolicyReportsTable } from '../PolicyReportsTable';\nimport { SelectEnvironment } from '../SelectEnvironment';\nimport {\n containsRequiredAnnotations,\n annotationsRequired,\n} from '../../utils/annotations';\nimport { MissingEnvironmentsEmptyState } from '../MissingEnvironmentsEmptyState';\nimport { useEntityEnvironment } from '../../hooks/useEntityEnvironment';\nimport {\n KYVERNO_KIND_ANNOTATION,\n KYVERNO_NAMESPACE_ANNOTATION,\n KYVERNO_RESOURCE_NAME_ANNOTATION,\n} from '@kyverno/backstage-plugin-policy-reporter-common';\n\ntype KyvernoPoliciesContentProps = {\n annotationsDocumentationUrl?: string;\n policyDocumentationUrl?: string;\n};\n\ntype PageContentProps = {\n children: React.ReactNode;\n};\n\nconst PageContent = ({ children }: PageContentProps) => (\n <Page themeId=\"tool\">\n <Content>{children}</Content>\n </Page>\n);\n\nexport const EntityKyvernoPoliciesContent = ({\n annotationsDocumentationUrl,\n policyDocumentationUrl,\n}: KyvernoPoliciesContentProps) => {\n const { entity } = useEntity();\n const annotations = entity.metadata.annotations;\n\n // Boolean variable to validate that entity have required annotations\n const annotationsState: boolean = containsRequiredAnnotations(annotations);\n\n const {\n environments,\n environmentsLoading,\n setCurrentEnvironment,\n currentEnvironment,\n } = useEntityEnvironment(entity, annotationsState);\n\n // Annotations missing\n if (!annotationsState)\n return (\n <PageContent>\n <MissingAnnotationEmptyState\n readMoreUrl={annotationsDocumentationUrl}\n annotation={annotationsRequired}\n />\n </PageContent>\n );\n\n // Fetching environments\n if (environmentsLoading) return <Progress />;\n\n // Environments missing\n if (environments === undefined || !currentEnvironment)\n return (\n <PageContent>\n <MissingEnvironmentsEmptyState entity={entity} />\n </PageContent>\n );\n\n const namespaces = annotations![KYVERNO_NAMESPACE_ANNOTATION].split(',');\n const kinds = annotations![KYVERNO_KIND_ANNOTATION].split(',');\n const resourceName = annotations![KYVERNO_RESOURCE_NAME_ANNOTATION];\n\n return (\n <PageContent>\n <ContentHeader title=\"Kyverno Policy Reports\">\n <SelectEnvironment\n environments={environments}\n currentEnvironment={currentEnvironment}\n setCurrentEnvironment={setCurrentEnvironment}\n />\n </ContentHeader>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources: ['kyverno'],\n kinds,\n status: ['fail', 'warn', 'error'],\n search: resourceName,\n }}\n title=\"Failing Policy Results\"\n emptyContentText=\"No failing policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources: ['kyverno'],\n kinds,\n status: ['pass'],\n search: resourceName,\n }}\n title=\"Passing Policy Results\"\n emptyContentText=\"No passing policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources: ['kyverno'],\n kinds,\n status: ['skip'],\n search: resourceName,\n }}\n title=\"Skipped Policy Results\"\n emptyContentText=\"No skipped policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n </Grid>\n </PageContent>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityKyvernoPoliciesContent.esm.js","sources":["../../../src/components/EntityKyvernoPoliciesContent/EntityKyvernoPoliciesContent.tsx"],"sourcesContent":["import {\n Content,\n ContentHeader,\n Page,\n Progress,\n} from '@backstage/core-components';\nimport {\n MissingAnnotationEmptyState,\n useEntity,\n} from '@backstage/plugin-catalog-react';\nimport { Grid } from '@material-ui/core';\nimport { PolicyReportsTable } from '../PolicyReportsTable';\nimport { SelectEnvironment } from '../SelectEnvironment';\nimport {\n containsRequiredAnnotations,\n annotationsRequired,\n} from '../../utils/annotations';\nimport { MissingEnvironmentsEmptyState } from '../MissingEnvironmentsEmptyState';\nimport { useEntityEnvironment } from '../../hooks/useEntityEnvironment';\nimport {\n KYVERNO_KIND_ANNOTATION,\n KYVERNO_NAMESPACE_ANNOTATION,\n KYVERNO_RESOURCE_NAME_ANNOTATION,\n} from '@kyverno/backstage-plugin-policy-reporter-common';\n\ntype KyvernoPoliciesContentProps = {\n annotationsDocumentationUrl?: string;\n policyDocumentationUrl?: string;\n};\n\ntype PageContentProps = {\n children: React.ReactNode;\n};\n\nconst PageContent = ({ children }: PageContentProps) => (\n <Page themeId=\"tool\">\n <Content>{children}</Content>\n </Page>\n);\n\nexport const EntityKyvernoPoliciesContent = ({\n annotationsDocumentationUrl,\n policyDocumentationUrl,\n}: KyvernoPoliciesContentProps) => {\n const { entity } = useEntity();\n const annotations = entity.metadata.annotations;\n\n // Boolean variable to validate that entity have required annotations\n const annotationsState: boolean = containsRequiredAnnotations(annotations);\n\n const {\n environments,\n environmentsLoading,\n setCurrentEnvironment,\n currentEnvironment,\n } = useEntityEnvironment(entity, annotationsState);\n\n // Annotations missing\n if (!annotationsState)\n return (\n <PageContent>\n <MissingAnnotationEmptyState\n readMoreUrl={annotationsDocumentationUrl}\n annotation={annotationsRequired}\n />\n </PageContent>\n );\n\n // Fetching environments\n if (environmentsLoading) return <Progress />;\n\n // Environments missing\n if (environments === undefined || !currentEnvironment)\n return (\n <PageContent>\n <MissingEnvironmentsEmptyState entity={entity} />\n </PageContent>\n );\n\n const namespaces = annotations![KYVERNO_NAMESPACE_ANNOTATION].split(',');\n const kinds = annotations![KYVERNO_KIND_ANNOTATION].split(',');\n const resourceName = annotations![KYVERNO_RESOURCE_NAME_ANNOTATION];\n\n return (\n <PageContent>\n <ContentHeader title=\"Kyverno Policy Reports\">\n <SelectEnvironment\n environments={environments}\n currentEnvironment={currentEnvironment}\n setCurrentEnvironment={setCurrentEnvironment}\n />\n </ContentHeader>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources: ['kyverno'],\n kinds,\n status: ['fail', 'warn', 'error'],\n search: resourceName,\n }}\n title=\"Failing Policy Results\"\n emptyContentText=\"No failing policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources: ['kyverno'],\n kinds,\n status: ['pass'],\n search: resourceName,\n }}\n title=\"Passing Policy Results\"\n emptyContentText=\"No passing policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n <Grid item xs={12}>\n <PolicyReportsTable\n currentEnvironment={currentEnvironment}\n filter={{\n namespaces,\n sources: ['kyverno'],\n kinds,\n status: ['skip'],\n search: resourceName,\n }}\n title=\"Skipped Policy Results\"\n emptyContentText=\"No skipped policies\"\n policyDocumentationUrl={policyDocumentationUrl}\n />\n </Grid>\n </Grid>\n </PageContent>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
1
2
  import Box from '@material-ui/core/Box';
2
3
  import Button from '@material-ui/core/Button';
3
4
  import { makeStyles } from '@material-ui/core/styles';
4
5
  import Typography from '@material-ui/core/Typography';
5
- import React from 'react';
6
6
  import { EmptyState, CodeSnippet, Link } from '@backstage/core-components';
7
7
 
8
8
  const useStyles = makeStyles(
@@ -41,22 +41,30 @@ const MissingEnvironmentsEmptyState = (props) => {
41
41
  const classes = useStyles();
42
42
  const entityKind = entity?.kind || "Component";
43
43
  const { yamlText, lineNumbers } = generateYamlExample(entity);
44
- return /* @__PURE__ */ React.createElement(
44
+ return /* @__PURE__ */ jsx(
45
45
  EmptyState,
46
46
  {
47
47
  missing: "field",
48
48
  title: "Missing Valid Environment Dependency",
49
- description: /* @__PURE__ */ React.createElement(React.Fragment, null, "You need to add a dependency to a kubernetes-cluster Resource with a kyverno.io/endpoint annotation defined if you want to use this plugin."),
50
- action: /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Typography, { variant: "body1" }, "Add the resource dependency to your ", entityKind, " YAML as shown in the highlighted example below:"), /* @__PURE__ */ React.createElement(Box, { className: classes.code }, /* @__PURE__ */ React.createElement(
51
- CodeSnippet,
52
- {
53
- text: yamlText,
54
- language: "yaml",
55
- showLineNumbers: true,
56
- highlightedNumbers: lineNumbers,
57
- customStyle: { background: "inherit", fontSize: "115%" }
58
- }
59
- )), /* @__PURE__ */ React.createElement(Button, { color: "primary", component: Link, to: url }, "Read more"))
49
+ description: /* @__PURE__ */ jsx(Fragment, { children: "You need to add a dependency to a kubernetes-cluster Resource with a kyverno.io/endpoint annotation defined if you want to use this plugin." }),
50
+ action: /* @__PURE__ */ jsxs(Fragment, { children: [
51
+ /* @__PURE__ */ jsxs(Typography, { variant: "body1", children: [
52
+ "Add the resource dependency to your ",
53
+ entityKind,
54
+ " YAML as shown in the highlighted example below:"
55
+ ] }),
56
+ /* @__PURE__ */ jsx(Box, { className: classes.code, children: /* @__PURE__ */ jsx(
57
+ CodeSnippet,
58
+ {
59
+ text: yamlText,
60
+ language: "yaml",
61
+ showLineNumbers: true,
62
+ highlightedNumbers: lineNumbers,
63
+ customStyle: { background: "inherit", fontSize: "115%" }
64
+ }
65
+ ) }),
66
+ /* @__PURE__ */ jsx(Button, { color: "primary", component: Link, to: url, children: "Read more" })
67
+ ] })
60
68
  }
61
69
  );
62
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MissingEnvironmentsEmptyState.esm.js","sources":["../../../src/components/MissingEnvironmentsEmptyState/MissingEnvironmentsEmptyState.tsx"],"sourcesContent":["import Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport React from 'react';\nimport { CodeSnippet, Link, EmptyState } from '@backstage/core-components';\nimport { Entity } from '@backstage/catalog-model';\n\nconst useStyles = makeStyles(\n theme => ({\n code: {\n borderRadius: 6,\n margin: theme.spacing(2, 0),\n background:\n theme.palette.type === 'dark' ? '#444' : theme.palette.common.white,\n },\n }),\n { name: 'BackstageMissingAnnotationEmptyState' },\n);\n\nfunction generateYamlExample(entity?: Entity): {\n yamlText: string;\n lineNumbers: number[];\n} {\n const kind = entity?.kind || 'Component';\n const name = entity?.metadata.name || 'example';\n const type = entity?.spec?.type || 'website';\n const owner = entity?.spec?.owner || 'user:default/guest';\n\n const yamlText = `apiVersion: backstage.io/v1alpha1\nkind: ${kind}\nmetadata:\n name: ${name}\nspec:\n type: ${type}\n owner: ${owner}\n dependsOn: \n - value`;\n\n const lineNumbers: number[] = [9];\n\n return {\n yamlText,\n lineNumbers,\n };\n}\n\nexport const MissingEnvironmentsEmptyState = (props: {\n readMoreUrl?: string;\n entity?: Entity;\n}) => {\n const { entity, readMoreUrl } = props;\n const url =\n readMoreUrl ||\n 'https://backstage.io/docs/features/software-catalog/descriptor-format#specdependson-optional';\n\n const classes = useStyles();\n\n const entityKind = entity?.kind || 'Component';\n const { yamlText, lineNumbers } = generateYamlExample(entity);\n return (\n <EmptyState\n missing=\"field\"\n title=\"Missing Valid Environment Dependency\"\n description={\n <>\n You need to add a dependency to a kubernetes-cluster Resource with a\n kyverno.io/endpoint annotation defined if you want to use this plugin.\n </>\n }\n action={\n <>\n <Typography variant=\"body1\">\n Add the resource dependency to your {entityKind} YAML as shown in\n the highlighted example below:\n </Typography>\n <Box className={classes.code}>\n <CodeSnippet\n text={yamlText}\n language=\"yaml\"\n showLineNumbers\n highlightedNumbers={lineNumbers}\n customStyle={{ background: 'inherit', fontSize: '115%' }}\n />\n </Box>\n <Button color=\"primary\" component={Link} to={url}>\n Read more\n </Button>\n </>\n }\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AAQA,MAAM,SAAY,GAAA,UAAA;AAAA,EAChB,CAAU,KAAA,MAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,YAAc,EAAA,CAAA;AAAA,MACd,MAAQ,EAAA,KAAA,CAAM,OAAQ,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,MAC1B,UAAA,EACE,MAAM,OAAQ,CAAA,IAAA,KAAS,SAAS,MAAS,GAAA,KAAA,CAAM,QAAQ,MAAO,CAAA;AAAA;AAClE,GACF,CAAA;AAAA,EACA,EAAE,MAAM,sCAAuC;AACjD,CAAA;AAEA,SAAS,oBAAoB,MAG3B,EAAA;AACA,EAAM,MAAA,IAAA,GAAO,QAAQ,IAAQ,IAAA,WAAA;AAC7B,EAAM,MAAA,IAAA,GAAO,MAAQ,EAAA,QAAA,CAAS,IAAQ,IAAA,SAAA;AACtC,EAAM,MAAA,IAAA,GAAO,MAAQ,EAAA,IAAA,EAAM,IAAQ,IAAA,SAAA;AACnC,EAAM,MAAA,KAAA,GAAQ,MAAQ,EAAA,IAAA,EAAM,KAAS,IAAA,oBAAA;AAErC,EAAA,MAAM,QAAW,GAAA,CAAA;AAAA,MAAA,EACX,IAAI;AAAA;AAAA,QAAA,EAEF,IAAI;AAAA;AAAA,QAAA,EAEJ,IAAI;AAAA,SAAA,EACH,KAAK;AAAA;AAAA,UAAA,CAAA;AAId,EAAM,MAAA,WAAA,GAAwB,CAAC,CAAC,CAAA;AAEhC,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA;AAAA,GACF;AACF;AAEa,MAAA,6BAAA,GAAgC,CAAC,KAGxC,KAAA;AACJ,EAAM,MAAA,EAAE,MAAQ,EAAA,WAAA,EAAgB,GAAA,KAAA;AAChC,EAAA,MAAM,MACJ,WACA,IAAA,8FAAA;AAEF,EAAA,MAAM,UAAU,SAAU,EAAA;AAE1B,EAAM,MAAA,UAAA,GAAa,QAAQ,IAAQ,IAAA,WAAA;AACnC,EAAA,MAAM,EAAE,QAAA,EAAU,WAAY,EAAA,GAAI,oBAAoB,MAAM,CAAA;AAC5D,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,OAAA;AAAA,MACR,KAAM,EAAA,sCAAA;AAAA,MACN,WAAA,4DACI,6IAGF,CAAA;AAAA,MAEF,MACE,kBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBACG,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,SAAQ,OAAQ,EAAA,EAAA,sCAAA,EACW,UAAW,EAAA,kDAElD,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,SAAA,EAAW,QAAQ,IACtB,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACC,IAAM,EAAA,QAAA;AAAA,UACN,QAAS,EAAA,MAAA;AAAA,UACT,eAAe,EAAA,IAAA;AAAA,UACf,kBAAoB,EAAA,WAAA;AAAA,UACpB,WAAa,EAAA,EAAE,UAAY,EAAA,SAAA,EAAW,UAAU,MAAO;AAAA;AAAA,OAE3D,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,MAAO,EAAA,EAAA,KAAA,EAAM,SAAU,EAAA,SAAA,EAAW,IAAM,EAAA,EAAA,EAAI,GAAK,EAAA,EAAA,WAElD,CACF;AAAA;AAAA,GAEJ;AAEJ;;;;"}
1
+ {"version":3,"file":"MissingEnvironmentsEmptyState.esm.js","sources":["../../../src/components/MissingEnvironmentsEmptyState/MissingEnvironmentsEmptyState.tsx"],"sourcesContent":["import Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { CodeSnippet, Link, EmptyState } from '@backstage/core-components';\nimport { Entity } from '@backstage/catalog-model';\n\nconst useStyles = makeStyles(\n theme => ({\n code: {\n borderRadius: 6,\n margin: theme.spacing(2, 0),\n background:\n theme.palette.type === 'dark' ? '#444' : theme.palette.common.white,\n },\n }),\n { name: 'BackstageMissingAnnotationEmptyState' },\n);\n\nfunction generateYamlExample(entity?: Entity): {\n yamlText: string;\n lineNumbers: number[];\n} {\n const kind = entity?.kind || 'Component';\n const name = entity?.metadata.name || 'example';\n const type = entity?.spec?.type || 'website';\n const owner = entity?.spec?.owner || 'user:default/guest';\n\n const yamlText = `apiVersion: backstage.io/v1alpha1\nkind: ${kind}\nmetadata:\n name: ${name}\nspec:\n type: ${type}\n owner: ${owner}\n dependsOn: \n - value`;\n\n const lineNumbers: number[] = [9];\n\n return {\n yamlText,\n lineNumbers,\n };\n}\n\nexport const MissingEnvironmentsEmptyState = (props: {\n readMoreUrl?: string;\n entity?: Entity;\n}) => {\n const { entity, readMoreUrl } = props;\n const url =\n readMoreUrl ||\n 'https://backstage.io/docs/features/software-catalog/descriptor-format#specdependson-optional';\n\n const classes = useStyles();\n\n const entityKind = entity?.kind || 'Component';\n const { yamlText, lineNumbers } = generateYamlExample(entity);\n return (\n <EmptyState\n missing=\"field\"\n title=\"Missing Valid Environment Dependency\"\n description={\n <>\n You need to add a dependency to a kubernetes-cluster Resource with a\n kyverno.io/endpoint annotation defined if you want to use this plugin.\n </>\n }\n action={\n <>\n <Typography variant=\"body1\">\n Add the resource dependency to your {entityKind} YAML as shown in\n the highlighted example below:\n </Typography>\n <Box className={classes.code}>\n <CodeSnippet\n text={yamlText}\n language=\"yaml\"\n showLineNumbers\n highlightedNumbers={lineNumbers}\n customStyle={{ background: 'inherit', fontSize: '115%' }}\n />\n </Box>\n <Button color=\"primary\" component={Link} to={url}>\n Read more\n </Button>\n </>\n }\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AAOA,MAAM,SAAY,GAAA,UAAA;AAAA,EAChB,CAAU,KAAA,MAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,YAAc,EAAA,CAAA;AAAA,MACd,MAAQ,EAAA,KAAA,CAAM,OAAQ,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,MAC1B,UAAA,EACE,MAAM,OAAQ,CAAA,IAAA,KAAS,SAAS,MAAS,GAAA,KAAA,CAAM,QAAQ,MAAO,CAAA;AAAA;AAClE,GACF,CAAA;AAAA,EACA,EAAE,MAAM,sCAAuC;AACjD,CAAA;AAEA,SAAS,oBAAoB,MAG3B,EAAA;AACA,EAAM,MAAA,IAAA,GAAO,QAAQ,IAAQ,IAAA,WAAA;AAC7B,EAAM,MAAA,IAAA,GAAO,MAAQ,EAAA,QAAA,CAAS,IAAQ,IAAA,SAAA;AACtC,EAAM,MAAA,IAAA,GAAO,MAAQ,EAAA,IAAA,EAAM,IAAQ,IAAA,SAAA;AACnC,EAAM,MAAA,KAAA,GAAQ,MAAQ,EAAA,IAAA,EAAM,KAAS,IAAA,oBAAA;AAErC,EAAA,MAAM,QAAW,GAAA,CAAA;AAAA,MAAA,EACX,IAAI;AAAA;AAAA,QAAA,EAEF,IAAI;AAAA;AAAA,QAAA,EAEJ,IAAI;AAAA,SAAA,EACH,KAAK;AAAA;AAAA,UAAA,CAAA;AAId,EAAM,MAAA,WAAA,GAAwB,CAAC,CAAC,CAAA;AAEhC,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA;AAAA,GACF;AACF;AAEa,MAAA,6BAAA,GAAgC,CAAC,KAGxC,KAAA;AACJ,EAAM,MAAA,EAAE,MAAQ,EAAA,WAAA,EAAgB,GAAA,KAAA;AAChC,EAAA,MAAM,MACJ,WACA,IAAA,8FAAA;AAEF,EAAA,MAAM,UAAU,SAAU,EAAA;AAE1B,EAAM,MAAA,UAAA,GAAa,QAAQ,IAAQ,IAAA,WAAA;AACnC,EAAA,MAAM,EAAE,QAAA,EAAU,WAAY,EAAA,GAAI,oBAAoB,MAAM,CAAA;AAC5D,EACE,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,OAAA;AAAA,MACR,KAAM,EAAA,sCAAA;AAAA,MACN,WAAA,kCACI,QAGF,EAAA,6IAAA,EAAA,CAAA;AAAA,MAEF,wBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,wBAAC,IAAA,CAAA,UAAA,EAAA,EAAW,SAAQ,OAAQ,EAAA,QAAA,EAAA;AAAA,UAAA,sCAAA;AAAA,UACW,UAAA;AAAA,UAAW;AAAA,SAElD,EAAA,CAAA;AAAA,wBACC,GAAA,CAAA,GAAA,EAAA,EAAI,SAAW,EAAA,OAAA,CAAQ,IACtB,EAAA,QAAA,kBAAA,GAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACC,IAAM,EAAA,QAAA;AAAA,YACN,QAAS,EAAA,MAAA;AAAA,YACT,eAAe,EAAA,IAAA;AAAA,YACf,kBAAoB,EAAA,WAAA;AAAA,YACpB,WAAa,EAAA,EAAE,UAAY,EAAA,SAAA,EAAW,UAAU,MAAO;AAAA;AAAA,SAE3D,EAAA,CAAA;AAAA,wBACA,GAAA,CAAC,UAAO,KAAM,EAAA,SAAA,EAAU,WAAW,IAAM,EAAA,EAAA,EAAI,KAAK,QAElD,EAAA,WAAA,EAAA;AAAA,OACF,EAAA;AAAA;AAAA,GAEJ;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { makeStyles, Paper, Box, Typography, Card, CardHeader, CardContent, Grid, Divider } from '@material-ui/core';
3
3
  import { SeverityComponent } from '../SeverityComponent/SeverityComponent.esm.js';
4
4
  import { StatusComponent } from '../StatusComponent/StatusComponent.esm.js';
@@ -52,10 +52,76 @@ const PolicyReportsDrawerComponent = ({
52
52
  }) => {
53
53
  const classes = useStyles();
54
54
  if (!content) {
55
- return /* @__PURE__ */ React.createElement(Paper, { className: classes.root }, /* @__PURE__ */ React.createElement(Box, { p: 2 }, /* @__PURE__ */ React.createElement(Typography, { variant: "body1", color: "textSecondary" }, "No policy information available")));
55
+ return /* @__PURE__ */ jsx(Paper, { className: classes.root, children: /* @__PURE__ */ jsx(Box, { p: 2, children: /* @__PURE__ */ jsx(Typography, { variant: "body1", color: "textSecondary", children: "No policy information available" }) }) });
56
56
  }
57
57
  const formattedDate = new Date(content.timestamp * 1e3).toLocaleString();
58
- return /* @__PURE__ */ React.createElement(Card, { className: classes.root, "data-testid": "policy-reports-drawer" }, /* @__PURE__ */ React.createElement(CardHeader, { title: "Policy Details" }), /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement(Typography, { variant: "h6", className: classes.sectionTitle }, "General Information"), /* @__PURE__ */ React.createElement(Grid, { container: true, spacing: 2 }, /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12, md: 6 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "ID"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyValue }, content.id))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12, md: 6 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "Name"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyValue }, content.name))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12, md: 6 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "Namespace"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyValue }, content.namespace))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12, md: 6 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "Kind"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyValue }, content.kind))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12, md: 6 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "Resource ID"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyValue }, content.resourceId))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12, md: 6 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "Timestamp"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyValue }, formattedDate)))), /* @__PURE__ */ React.createElement(Divider, { className: classes.divider }), /* @__PURE__ */ React.createElement(Typography, { variant: "h6", className: classes.sectionTitle }, "Status Information"), /* @__PURE__ */ React.createElement(Grid, { container: true, spacing: 2 }, /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12, md: 6 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "Status"), /* @__PURE__ */ React.createElement(StatusComponent, { status: content.status }))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12, md: 6 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "Severity"), /* @__PURE__ */ React.createElement(SeverityComponent, { severity: content.severity })))), /* @__PURE__ */ React.createElement(Divider, { className: classes.divider }), /* @__PURE__ */ React.createElement(Typography, { variant: "h6", className: classes.sectionTitle }, "Policy Information"), /* @__PURE__ */ React.createElement(Grid, { container: true, spacing: 2 }, /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "Policy"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyValue }, content.policy))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(Box, { className: classes.propertyContainer }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, "Rule"), /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyValue }, content.rule)))), /* @__PURE__ */ React.createElement(Divider, { className: classes.divider }), /* @__PURE__ */ React.createElement(Typography, { variant: "h6", className: classes.sectionTitle }, "Message"), /* @__PURE__ */ React.createElement(Paper, { elevation: 0, className: classes.message }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, content.message)), content.properties && Object.keys(content.properties).length > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Divider, { className: classes.divider }), /* @__PURE__ */ React.createElement(Typography, { variant: "h6", className: classes.sectionTitle }, "Additional Properties"), /* @__PURE__ */ React.createElement(Paper, { elevation: 0, className: classes.propertiesContainer }, Object.entries(content.properties).map(([key, value]) => /* @__PURE__ */ React.createElement(Box, { key, className: classes.propertyItem }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2", className: classes.propertyLabel }, key), /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, value)))))));
58
+ return /* @__PURE__ */ jsxs(Card, { className: classes.root, "data-testid": "policy-reports-drawer", children: [
59
+ /* @__PURE__ */ jsx(CardHeader, { title: "Policy Details" }),
60
+ /* @__PURE__ */ jsxs(CardContent, { children: [
61
+ /* @__PURE__ */ jsx(Typography, { variant: "h6", className: classes.sectionTitle, children: "General Information" }),
62
+ /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
63
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
64
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "ID" }),
65
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyValue, children: content.id })
66
+ ] }) }),
67
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
68
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "Name" }),
69
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyValue, children: content.name })
70
+ ] }) }),
71
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
72
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "Namespace" }),
73
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyValue, children: content.namespace })
74
+ ] }) }),
75
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
76
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "Kind" }),
77
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyValue, children: content.kind })
78
+ ] }) }),
79
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
80
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "Resource ID" }),
81
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyValue, children: content.resourceId })
82
+ ] }) }),
83
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
84
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "Timestamp" }),
85
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyValue, children: formattedDate })
86
+ ] }) })
87
+ ] }),
88
+ /* @__PURE__ */ jsx(Divider, { className: classes.divider }),
89
+ /* @__PURE__ */ jsx(Typography, { variant: "h6", className: classes.sectionTitle, children: "Status Information" }),
90
+ /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
91
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
92
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "Status" }),
93
+ /* @__PURE__ */ jsx(StatusComponent, { status: content.status })
94
+ ] }) }),
95
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
96
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "Severity" }),
97
+ /* @__PURE__ */ jsx(SeverityComponent, { severity: content.severity })
98
+ ] }) })
99
+ ] }),
100
+ /* @__PURE__ */ jsx(Divider, { className: classes.divider }),
101
+ /* @__PURE__ */ jsx(Typography, { variant: "h6", className: classes.sectionTitle, children: "Policy Information" }),
102
+ /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
103
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
104
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "Policy" }),
105
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyValue, children: content.policy })
106
+ ] }) }),
107
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsxs(Box, { className: classes.propertyContainer, children: [
108
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: "Rule" }),
109
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyValue, children: content.rule })
110
+ ] }) })
111
+ ] }),
112
+ /* @__PURE__ */ jsx(Divider, { className: classes.divider }),
113
+ /* @__PURE__ */ jsx(Typography, { variant: "h6", className: classes.sectionTitle, children: "Message" }),
114
+ /* @__PURE__ */ jsx(Paper, { elevation: 0, className: classes.message, children: /* @__PURE__ */ jsx(Typography, { variant: "body2", children: content.message }) }),
115
+ content.properties && Object.keys(content.properties).length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
116
+ /* @__PURE__ */ jsx(Divider, { className: classes.divider }),
117
+ /* @__PURE__ */ jsx(Typography, { variant: "h6", className: classes.sectionTitle, children: "Additional Properties" }),
118
+ /* @__PURE__ */ jsx(Paper, { elevation: 0, className: classes.propertiesContainer, children: Object.entries(content.properties).map(([key, value]) => /* @__PURE__ */ jsxs(Box, { className: classes.propertyItem, children: [
119
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", className: classes.propertyLabel, children: key }),
120
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", children: value })
121
+ ] }, key)) })
122
+ ] })
123
+ ] })
124
+ ] });
59
125
  };
60
126
 
61
127
  export { PolicyReportsDrawerComponent };
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyReportsDrawerComponent.esm.js","sources":["../../../src/components/PolicyReportsDrawerComponent/PolicyReportsDrawerComponent.tsx"],"sourcesContent":["import { ListResult } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport React from 'react';\nimport {\n Card,\n CardHeader,\n CardContent,\n Typography,\n Divider,\n Grid,\n Box,\n Paper,\n makeStyles,\n} from '@material-ui/core';\nimport { SeverityComponent } from '../SeverityComponent';\nimport { StatusComponent } from '../StatusComponent';\n\ninterface PolicyReportsDrawerProps {\n content: ListResult | undefined;\n}\n\n// Material-UI styles\nconst useStyles = makeStyles(theme => ({\n root: {\n marginBottom: theme.spacing(2),\n },\n sectionTitle: {\n marginBottom: theme.spacing(1),\n fontWeight: 500,\n },\n propertyLabel: {\n color: theme.palette.text.secondary,\n fontWeight: 500,\n },\n propertyValue: {\n textAlign: 'right',\n },\n propertyContainer: {\n marginBottom: theme.spacing(1),\n display: 'flex',\n justifyContent: 'space-between',\n },\n divider: {\n margin: theme.spacing(2, 0),\n },\n message: {\n padding: theme.spacing(2),\n backgroundColor: theme.palette.grey[50],\n borderRadius: theme.shape.borderRadius,\n color: 'black',\n },\n propertiesContainer: {\n padding: theme.spacing(2),\n backgroundColor: theme.palette.grey[50],\n borderRadius: theme.shape.borderRadius,\n },\n propertyItem: {\n display: 'flex',\n justifyContent: 'space-between',\n borderBottom: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(1, 0),\n '&:last-child': {\n borderBottom: 'none',\n },\n },\n}));\n\nexport const PolicyReportsDrawerComponent = ({\n content,\n}: PolicyReportsDrawerProps) => {\n const classes = useStyles();\n\n if (!content) {\n return (\n <Paper className={classes.root}>\n <Box p={2}>\n <Typography variant=\"body1\" color=\"textSecondary\">\n No policy information available\n </Typography>\n </Box>\n </Paper>\n );\n }\n\n // Format timestamp to readable date\n const formattedDate = new Date(content.timestamp * 1000).toLocaleString();\n\n return (\n <Card className={classes.root} data-testid=\"policy-reports-drawer\">\n <CardHeader title=\"Policy Details\" />\n <CardContent>\n {/* General Information */}\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n General Information\n </Typography>\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n ID\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.id}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Name\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.name}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Namespace\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.namespace}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Kind\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.kind}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Resource ID\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.resourceId}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Timestamp\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {formattedDate}\n </Typography>\n </Box>\n </Grid>\n </Grid>\n\n <Divider className={classes.divider} />\n\n {/* Status Information */}\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n Status Information\n </Typography>\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Status\n </Typography>\n <StatusComponent status={content.status} />\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Severity\n </Typography>\n <SeverityComponent severity={content.severity} />\n </Box>\n </Grid>\n </Grid>\n\n <Divider className={classes.divider} />\n\n {/* Policy Information */}\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n Policy Information\n </Typography>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Policy\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.policy}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Rule\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.rule}\n </Typography>\n </Box>\n </Grid>\n </Grid>\n\n <Divider className={classes.divider} />\n\n {/* Message */}\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n Message\n </Typography>\n <Paper elevation={0} className={classes.message}>\n <Typography variant=\"body2\">{content.message}</Typography>\n </Paper>\n\n {/* Additional Properties */}\n {content.properties && Object.keys(content.properties).length > 0 && (\n <>\n <Divider className={classes.divider} />\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n Additional Properties\n </Typography>\n <Paper elevation={0} className={classes.propertiesContainer}>\n {Object.entries(content.properties).map(([key, value]) => (\n <Box key={key} className={classes.propertyItem}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n {key}\n </Typography>\n <Typography variant=\"body2\">{value}</Typography>\n </Box>\n ))}\n </Paper>\n </>\n )}\n </CardContent>\n </Card>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolicyReportsDrawerComponent.esm.js","sources":["../../../src/components/PolicyReportsDrawerComponent/PolicyReportsDrawerComponent.tsx"],"sourcesContent":["import { ListResult } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport {\n Card,\n CardHeader,\n CardContent,\n Typography,\n Divider,\n Grid,\n Box,\n Paper,\n makeStyles,\n} from '@material-ui/core';\nimport { SeverityComponent } from '../SeverityComponent';\nimport { StatusComponent } from '../StatusComponent';\n\ninterface PolicyReportsDrawerProps {\n content: ListResult | undefined;\n}\n\n// Material-UI styles\nconst useStyles = makeStyles(theme => ({\n root: {\n marginBottom: theme.spacing(2),\n },\n sectionTitle: {\n marginBottom: theme.spacing(1),\n fontWeight: 500,\n },\n propertyLabel: {\n color: theme.palette.text.secondary,\n fontWeight: 500,\n },\n propertyValue: {\n textAlign: 'right',\n },\n propertyContainer: {\n marginBottom: theme.spacing(1),\n display: 'flex',\n justifyContent: 'space-between',\n },\n divider: {\n margin: theme.spacing(2, 0),\n },\n message: {\n padding: theme.spacing(2),\n backgroundColor: theme.palette.grey[50],\n borderRadius: theme.shape.borderRadius,\n color: 'black',\n },\n propertiesContainer: {\n padding: theme.spacing(2),\n backgroundColor: theme.palette.grey[50],\n borderRadius: theme.shape.borderRadius,\n },\n propertyItem: {\n display: 'flex',\n justifyContent: 'space-between',\n borderBottom: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(1, 0),\n '&:last-child': {\n borderBottom: 'none',\n },\n },\n}));\n\nexport const PolicyReportsDrawerComponent = ({\n content,\n}: PolicyReportsDrawerProps) => {\n const classes = useStyles();\n\n if (!content) {\n return (\n <Paper className={classes.root}>\n <Box p={2}>\n <Typography variant=\"body1\" color=\"textSecondary\">\n No policy information available\n </Typography>\n </Box>\n </Paper>\n );\n }\n\n // Format timestamp to readable date\n const formattedDate = new Date(content.timestamp * 1000).toLocaleString();\n\n return (\n <Card className={classes.root} data-testid=\"policy-reports-drawer\">\n <CardHeader title=\"Policy Details\" />\n <CardContent>\n {/* General Information */}\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n General Information\n </Typography>\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n ID\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.id}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Name\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.name}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Namespace\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.namespace}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Kind\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.kind}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Resource ID\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.resourceId}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Timestamp\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {formattedDate}\n </Typography>\n </Box>\n </Grid>\n </Grid>\n\n <Divider className={classes.divider} />\n\n {/* Status Information */}\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n Status Information\n </Typography>\n <Grid container spacing={2}>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Status\n </Typography>\n <StatusComponent status={content.status} />\n </Box>\n </Grid>\n <Grid item xs={12} md={6}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Severity\n </Typography>\n <SeverityComponent severity={content.severity} />\n </Box>\n </Grid>\n </Grid>\n\n <Divider className={classes.divider} />\n\n {/* Policy Information */}\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n Policy Information\n </Typography>\n <Grid container spacing={2}>\n <Grid item xs={12}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Policy\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.policy}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={12}>\n <Box className={classes.propertyContainer}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n Rule\n </Typography>\n <Typography variant=\"body2\" className={classes.propertyValue}>\n {content.rule}\n </Typography>\n </Box>\n </Grid>\n </Grid>\n\n <Divider className={classes.divider} />\n\n {/* Message */}\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n Message\n </Typography>\n <Paper elevation={0} className={classes.message}>\n <Typography variant=\"body2\">{content.message}</Typography>\n </Paper>\n\n {/* Additional Properties */}\n {content.properties && Object.keys(content.properties).length > 0 && (\n <>\n <Divider className={classes.divider} />\n <Typography variant=\"h6\" className={classes.sectionTitle}>\n Additional Properties\n </Typography>\n <Paper elevation={0} className={classes.propertiesContainer}>\n {Object.entries(content.properties).map(([key, value]) => (\n <Box key={key} className={classes.propertyItem}>\n <Typography variant=\"body2\" className={classes.propertyLabel}>\n {key}\n </Typography>\n <Typography variant=\"body2\">{value}</Typography>\n </Box>\n ))}\n </Paper>\n </>\n )}\n </CardContent>\n </Card>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
1
2
  import { ResponseErrorPanel, Table } from '@backstage/core-components';
2
- import React, { useState } from 'react';
3
+ import { useState } from 'react';
3
4
  import { makeStyles, Drawer } from '@material-ui/core';
4
5
  import Chip from '@material-ui/core/Chip';
5
6
  import { StatusComponent } from '../StatusComponent/StatusComponent.esm.js';
@@ -45,7 +46,7 @@ const PolicyReportsTable = ({
45
46
  field: "policy",
46
47
  render: (listResult) => {
47
48
  if (policyDocumentationUrl)
48
- return /* @__PURE__ */ React.createElement(
49
+ return /* @__PURE__ */ jsx(
49
50
  Chip,
50
51
  {
51
52
  label: listResult.policy,
@@ -53,17 +54,17 @@ const PolicyReportsTable = ({
53
54
  target: "_blank",
54
55
  href: `${policyDocumentationUrl}#${listResult.policy}`,
55
56
  clickable: true,
56
- icon: /* @__PURE__ */ React.createElement(Launch, { fontSize: "small" })
57
+ icon: /* @__PURE__ */ jsx(Launch, { fontSize: "small" })
57
58
  }
58
59
  );
59
- return /* @__PURE__ */ React.createElement(Chip, { label: listResult.policy });
60
+ return /* @__PURE__ */ jsx(Chip, { label: listResult.policy });
60
61
  }
61
62
  },
62
63
  {
63
64
  title: "rule",
64
65
  field: "rule",
65
66
  render: (listResult) => {
66
- return /* @__PURE__ */ React.createElement(Chip, { label: listResult.rule });
67
+ return /* @__PURE__ */ jsx(Chip, { label: listResult.rule });
67
68
  }
68
69
  },
69
70
  {
@@ -71,7 +72,7 @@ const PolicyReportsTable = ({
71
72
  field: "status",
72
73
  width: "30",
73
74
  render: (listResult) => {
74
- return /* @__PURE__ */ React.createElement(StatusComponent, { status: listResult.status });
75
+ return /* @__PURE__ */ jsx(StatusComponent, { status: listResult.status });
75
76
  }
76
77
  },
77
78
  {
@@ -79,7 +80,7 @@ const PolicyReportsTable = ({
79
80
  field: "severity",
80
81
  width: "30",
81
82
  render: (listResult) => {
82
- return /* @__PURE__ */ React.createElement(SeverityComponent, { severity: listResult.severity });
83
+ return /* @__PURE__ */ jsx(SeverityComponent, { severity: listResult.severity });
83
84
  }
84
85
  }
85
86
  ];
@@ -91,9 +92,9 @@ const PolicyReportsTable = ({
91
92
  setCurrentOffset,
92
93
  initialLoading
93
94
  } = usePaginatedPolicies(currentEnvironment, filter);
94
- if (policiesError) return /* @__PURE__ */ React.createElement(ResponseErrorPanel, { error: policiesError });
95
+ if (policiesError) return /* @__PURE__ */ jsx(ResponseErrorPanel, { error: policiesError });
95
96
  if (initialLoading)
96
- return /* @__PURE__ */ React.createElement(
97
+ return /* @__PURE__ */ jsx(
97
98
  Table,
98
99
  {
99
100
  options: { paging: false, padding: "dense" },
@@ -103,36 +104,39 @@ const PolicyReportsTable = ({
103
104
  title
104
105
  }
105
106
  );
106
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
107
- Drawer,
108
- {
109
- anchor: "right",
110
- open: showDrawer,
111
- onClose: () => setShowDrawer(false)
112
- },
113
- /* @__PURE__ */ React.createElement(PolicyReportsDrawerComponent, { content: drawerContent })
114
- ), /* @__PURE__ */ React.createElement(
115
- Table,
116
- {
117
- options: {
118
- sorting: true,
119
- padding: "dense"
120
- },
121
- onRowClick: (event, rowData) => {
122
- event?.preventDefault();
123
- setShowDrawer(true);
124
- setDrawerContent(rowData);
125
- },
126
- data: policies?.items ?? [],
127
- columns,
128
- title,
129
- totalCount: policies?.count,
130
- page: currentPage,
131
- onRowsPerPageChange: (page) => setCurrentOffset(page),
132
- onPageChange: (page) => setCurrentPage(page),
133
- emptyContent: /* @__PURE__ */ React.createElement("div", { className: classes.empty }, emptyContentText)
134
- }
135
- ));
107
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
108
+ /* @__PURE__ */ jsx(
109
+ Drawer,
110
+ {
111
+ anchor: "right",
112
+ open: showDrawer,
113
+ onClose: () => setShowDrawer(false),
114
+ children: /* @__PURE__ */ jsx(PolicyReportsDrawerComponent, { content: drawerContent })
115
+ }
116
+ ),
117
+ /* @__PURE__ */ jsx(
118
+ Table,
119
+ {
120
+ options: {
121
+ sorting: true,
122
+ padding: "dense"
123
+ },
124
+ onRowClick: (event, rowData) => {
125
+ event?.preventDefault();
126
+ setShowDrawer(true);
127
+ setDrawerContent(rowData);
128
+ },
129
+ data: policies?.items ?? [],
130
+ columns,
131
+ title,
132
+ totalCount: policies?.count,
133
+ page: currentPage,
134
+ onRowsPerPageChange: (page) => setCurrentOffset(page),
135
+ onPageChange: (page) => setCurrentPage(page),
136
+ emptyContent: /* @__PURE__ */ jsx("div", { className: classes.empty, children: emptyContentText })
137
+ }
138
+ )
139
+ ] });
136
140
  };
137
141
 
138
142
  export { PolicyReportsTable };
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyReportsTable.esm.js","sources":["../../../src/components/PolicyReportsTable/PolicyReportsTable.tsx"],"sourcesContent":["import {\n ResponseErrorPanel,\n Table,\n TableColumn,\n} from '@backstage/core-components';\nimport React, { useState } from 'react';\nimport {\n Filter,\n ListResult,\n} from '@kyverno/backstage-plugin-policy-reporter-common';\nimport { Drawer, makeStyles } from '@material-ui/core';\nimport Chip from '@material-ui/core/Chip';\nimport { StatusComponent } from '../StatusComponent';\nimport { SeverityComponent } from '../SeverityComponent';\nimport Launch from '@material-ui/icons/Launch';\nimport { Environment } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport { usePaginatedPolicies } from '../../hooks/usePaginatedPolicies';\nimport { PolicyReportsDrawerComponent } from '../PolicyReportsDrawerComponent/PolicyReportsDrawerComponent';\n\ninterface PolicyReportsTableProps {\n currentEnvironment: Environment;\n filter: Filter;\n title: string;\n emptyContentText: string;\n policyDocumentationUrl?: string;\n}\n\nexport const PolicyReportsTable = ({\n title,\n emptyContentText,\n currentEnvironment,\n filter,\n policyDocumentationUrl,\n}: PolicyReportsTableProps) => {\n const useStyles = makeStyles(theme => ({\n empty: {\n padding: theme.spacing(2),\n display: 'flex',\n justifyContent: 'center',\n },\n }));\n\n const [showDrawer, setShowDrawer] = useState<boolean>(false);\n const [drawerContent, setDrawerContent] = useState<ListResult | undefined>(\n undefined,\n );\n const classes = useStyles();\n\n const columns: TableColumn<ListResult>[] = [\n {\n title: 'name',\n field: 'name',\n },\n {\n title: 'namespace',\n field: 'namespace',\n },\n {\n title: 'kind',\n field: 'kind',\n },\n {\n title: 'policy',\n field: 'policy',\n render: (listResult: ListResult) => {\n // When policyDocumentationUrl is provided create link to the Policy section\n if (policyDocumentationUrl)\n return (\n <Chip\n label={listResult.policy}\n component=\"a\"\n target=\"_blank\"\n href={`${policyDocumentationUrl}#${listResult.policy}`}\n clickable\n icon={<Launch fontSize=\"small\" />}\n />\n );\n\n return <Chip label={listResult.policy} />;\n },\n },\n {\n title: 'rule',\n field: 'rule',\n render: (listResult: ListResult) => {\n return <Chip label={listResult.rule} />;\n },\n },\n {\n title: 'status',\n field: 'status',\n width: '30',\n render: (listResult: ListResult) => {\n return <StatusComponent status={listResult.status} />;\n },\n },\n {\n title: 'severity',\n field: 'severity',\n width: '30',\n render: (listResult: ListResult) => {\n return <SeverityComponent severity={listResult.severity} />;\n },\n },\n ];\n\n const {\n policies,\n policiesError,\n currentPage,\n setCurrentPage,\n setCurrentOffset,\n initialLoading,\n } = usePaginatedPolicies(currentEnvironment, filter);\n\n if (policiesError) return <ResponseErrorPanel error={policiesError} />;\n\n // Return loading table\n if (initialLoading)\n return (\n <Table\n options={{ paging: false, padding: 'dense' }}\n data={[]}\n columns={columns}\n isLoading\n title={title}\n />\n );\n\n return (\n <>\n <Drawer\n anchor=\"right\"\n open={showDrawer}\n onClose={() => setShowDrawer(false)}\n >\n <PolicyReportsDrawerComponent content={drawerContent} />\n </Drawer>\n <Table\n options={{\n sorting: true,\n padding: 'dense',\n }}\n onRowClick={(\n event?: React.MouseEvent<Element, MouseEvent>,\n rowData?: ListResult,\n ) => {\n event?.preventDefault();\n setShowDrawer(true);\n setDrawerContent(rowData);\n }}\n data={policies?.items ?? []}\n columns={columns}\n title={title}\n totalCount={policies?.count}\n page={currentPage}\n onRowsPerPageChange={page => setCurrentOffset(page)}\n onPageChange={page => setCurrentPage(page)}\n emptyContent={<div className={classes.empty}>{emptyContentText}</div>}\n />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolicyReportsTable.esm.js","sources":["../../../src/components/PolicyReportsTable/PolicyReportsTable.tsx"],"sourcesContent":["import {\n ResponseErrorPanel,\n Table,\n TableColumn,\n} from '@backstage/core-components';\nimport { useState } from 'react';\nimport {\n Filter,\n ListResult,\n} from '@kyverno/backstage-plugin-policy-reporter-common';\nimport { Drawer, makeStyles } from '@material-ui/core';\nimport Chip from '@material-ui/core/Chip';\nimport { StatusComponent } from '../StatusComponent';\nimport { SeverityComponent } from '../SeverityComponent';\nimport Launch from '@material-ui/icons/Launch';\nimport { Environment } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport { usePaginatedPolicies } from '../../hooks/usePaginatedPolicies';\nimport { PolicyReportsDrawerComponent } from '../PolicyReportsDrawerComponent/PolicyReportsDrawerComponent';\n\ninterface PolicyReportsTableProps {\n currentEnvironment: Environment;\n filter: Filter;\n title: string;\n emptyContentText: string;\n policyDocumentationUrl?: string;\n}\n\nexport const PolicyReportsTable = ({\n title,\n emptyContentText,\n currentEnvironment,\n filter,\n policyDocumentationUrl,\n}: PolicyReportsTableProps) => {\n const useStyles = makeStyles(theme => ({\n empty: {\n padding: theme.spacing(2),\n display: 'flex',\n justifyContent: 'center',\n },\n }));\n\n const [showDrawer, setShowDrawer] = useState<boolean>(false);\n const [drawerContent, setDrawerContent] = useState<ListResult | undefined>(\n undefined,\n );\n const classes = useStyles();\n\n const columns: TableColumn<ListResult>[] = [\n {\n title: 'name',\n field: 'name',\n },\n {\n title: 'namespace',\n field: 'namespace',\n },\n {\n title: 'kind',\n field: 'kind',\n },\n {\n title: 'policy',\n field: 'policy',\n render: (listResult: ListResult) => {\n // When policyDocumentationUrl is provided create link to the Policy section\n if (policyDocumentationUrl)\n return (\n <Chip\n label={listResult.policy}\n component=\"a\"\n target=\"_blank\"\n href={`${policyDocumentationUrl}#${listResult.policy}`}\n clickable\n icon={<Launch fontSize=\"small\" />}\n />\n );\n\n return <Chip label={listResult.policy} />;\n },\n },\n {\n title: 'rule',\n field: 'rule',\n render: (listResult: ListResult) => {\n return <Chip label={listResult.rule} />;\n },\n },\n {\n title: 'status',\n field: 'status',\n width: '30',\n render: (listResult: ListResult) => {\n return <StatusComponent status={listResult.status} />;\n },\n },\n {\n title: 'severity',\n field: 'severity',\n width: '30',\n render: (listResult: ListResult) => {\n return <SeverityComponent severity={listResult.severity} />;\n },\n },\n ];\n\n const {\n policies,\n policiesError,\n currentPage,\n setCurrentPage,\n setCurrentOffset,\n initialLoading,\n } = usePaginatedPolicies(currentEnvironment, filter);\n\n if (policiesError) return <ResponseErrorPanel error={policiesError} />;\n\n // Return loading table\n if (initialLoading)\n return (\n <Table\n options={{ paging: false, padding: 'dense' }}\n data={[]}\n columns={columns}\n isLoading\n title={title}\n />\n );\n\n return (\n <>\n <Drawer\n anchor=\"right\"\n open={showDrawer}\n onClose={() => setShowDrawer(false)}\n >\n <PolicyReportsDrawerComponent content={drawerContent} />\n </Drawer>\n <Table\n options={{\n sorting: true,\n padding: 'dense',\n }}\n onRowClick={(\n event?: React.MouseEvent<Element, MouseEvent>,\n rowData?: ListResult,\n ) => {\n event?.preventDefault();\n setShowDrawer(true);\n setDrawerContent(rowData);\n }}\n data={policies?.items ?? []}\n columns={columns}\n title={title}\n totalCount={policies?.count}\n page={currentPage}\n onRowsPerPageChange={page => setCurrentOffset(page)}\n onPageChange={page => setCurrentPage(page)}\n emptyContent={<div className={classes.empty}>{emptyContentText}</div>}\n />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import MenuItem from '@material-ui/core/MenuItem';
3
3
  import InputLabel from '@material-ui/core/InputLabel';
4
4
  import FormControl from '@material-ui/core/FormControl';
@@ -26,18 +26,21 @@ const SelectEnvironment = ({
26
26
  setCurrentEnvironment(environments[Number(event.target.value)]);
27
27
  };
28
28
  const isSingleEnvironment = environments.length === 1;
29
- return /* @__PURE__ */ React.createElement(FormControl, { className: classes.formControl }, /* @__PURE__ */ React.createElement(InputLabel, { id: "select-environment-label" }, "Environment"), /* @__PURE__ */ React.createElement(
30
- Select,
31
- {
32
- labelId: "select-environment-label",
33
- id: "select-environment",
34
- value: String(currentEnvironment.id),
35
- onChange: handleChange,
36
- disabled: isSingleEnvironment,
37
- className: isSingleEnvironment ? classes.hideDropdownArrow : ""
38
- },
39
- environments.map((env) => /* @__PURE__ */ React.createElement(MenuItem, { key: env.name, value: env.id }, env.name))
40
- ));
29
+ return /* @__PURE__ */ jsxs(FormControl, { className: classes.formControl, children: [
30
+ /* @__PURE__ */ jsx(InputLabel, { id: "select-environment-label", children: "Environment" }),
31
+ /* @__PURE__ */ jsx(
32
+ Select,
33
+ {
34
+ labelId: "select-environment-label",
35
+ id: "select-environment",
36
+ value: String(currentEnvironment.id),
37
+ onChange: handleChange,
38
+ disabled: isSingleEnvironment,
39
+ className: isSingleEnvironment ? classes.hideDropdownArrow : "",
40
+ children: environments.map((env) => /* @__PURE__ */ jsx(MenuItem, { value: env.id, children: env.name }, env.name))
41
+ }
42
+ )
43
+ ] });
41
44
  };
42
45
 
43
46
  export { SelectEnvironment };
@@ -1 +1 @@
1
- {"version":3,"file":"SelectEnvironment.esm.js","sources":["../../../src/components/SelectEnvironment/SelectEnvironment.tsx"],"sourcesContent":["import React from 'react';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport { Environment } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n formControl: {\n margin: 8,\n minWidth: 150,\n },\n hideDropdownArrow: {\n '& .MuiSelect-icon-196.Mui-disabled': {\n display: 'none',\n },\n },\n});\n\ntype SelectEnvironmentProps = {\n environments: Environment[];\n currentEnvironment: Environment;\n setCurrentEnvironment: (environment: Environment) => void;\n};\n\nexport const SelectEnvironment = ({\n environments,\n currentEnvironment,\n setCurrentEnvironment,\n}: SelectEnvironmentProps) => {\n const classes = useStyles();\n\n const handleChange = (event: any) => {\n setCurrentEnvironment(environments[Number(event.target.value)]);\n };\n\n // Check if there is more then 1 environment\n const isSingleEnvironment = environments.length === 1;\n\n return (\n <FormControl className={classes.formControl}>\n <InputLabel id=\"select-environment-label\">Environment</InputLabel>\n <Select\n labelId=\"select-environment-label\"\n id=\"select-environment\"\n value={String(currentEnvironment.id)}\n onChange={handleChange}\n disabled={isSingleEnvironment}\n className={isSingleEnvironment ? classes.hideDropdownArrow : ''}\n >\n {environments.map(env => (\n <MenuItem key={env.name} value={env.id}>\n {env.name}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAQA,MAAM,YAAY,UAAW,CAAA;AAAA,EAC3B,WAAa,EAAA;AAAA,IACX,MAAQ,EAAA,CAAA;AAAA,IACR,QAAU,EAAA;AAAA,GACZ;AAAA,EACA,iBAAmB,EAAA;AAAA,IACjB,oCAAsC,EAAA;AAAA,MACpC,OAAS,EAAA;AAAA;AACX;AAEJ,CAAC,CAAA;AAQM,MAAM,oBAAoB,CAAC;AAAA,EAChC,YAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAA8B,KAAA;AAC5B,EAAA,MAAM,UAAU,SAAU,EAAA;AAE1B,EAAM,MAAA,YAAA,GAAe,CAAC,KAAe,KAAA;AACnC,IAAA,qBAAA,CAAsB,aAAa,MAAO,CAAA,KAAA,CAAM,MAAO,CAAA,KAAK,CAAC,CAAC,CAAA;AAAA,GAChE;AAGA,EAAM,MAAA,mBAAA,GAAsB,aAAa,MAAW,KAAA,CAAA;AAEpD,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,WAAY,EAAA,EAAA,SAAA,EAAW,OAAQ,CAAA,WAAA,EAAA,sCAC7B,UAAW,EAAA,EAAA,EAAA,EAAG,0BAA2B,EAAA,EAAA,aAAW,CACrD,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,0BAAA;AAAA,MACR,EAAG,EAAA,oBAAA;AAAA,MACH,KAAA,EAAO,MAAO,CAAA,kBAAA,CAAmB,EAAE,CAAA;AAAA,MACnC,QAAU,EAAA,YAAA;AAAA,MACV,QAAU,EAAA,mBAAA;AAAA,MACV,SAAA,EAAW,mBAAsB,GAAA,OAAA,CAAQ,iBAAoB,GAAA;AAAA,KAAA;AAAA,IAE5D,YAAa,CAAA,GAAA,CAAI,CAChB,GAAA,qBAAA,KAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,GAAA,EAAK,GAAI,CAAA,IAAA,EAAM,KAAO,EAAA,GAAA,CAAI,EACjC,EAAA,EAAA,GAAA,CAAI,IACP,CACD;AAAA,GAEL,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"SelectEnvironment.esm.js","sources":["../../../src/components/SelectEnvironment/SelectEnvironment.tsx"],"sourcesContent":["import MenuItem from '@material-ui/core/MenuItem';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport { Environment } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n formControl: {\n margin: 8,\n minWidth: 150,\n },\n hideDropdownArrow: {\n '& .MuiSelect-icon-196.Mui-disabled': {\n display: 'none',\n },\n },\n});\n\ntype SelectEnvironmentProps = {\n environments: Environment[];\n currentEnvironment: Environment;\n setCurrentEnvironment: (environment: Environment) => void;\n};\n\nexport const SelectEnvironment = ({\n environments,\n currentEnvironment,\n setCurrentEnvironment,\n}: SelectEnvironmentProps) => {\n const classes = useStyles();\n\n const handleChange = (event: any) => {\n setCurrentEnvironment(environments[Number(event.target.value)]);\n };\n\n // Check if there is more then 1 environment\n const isSingleEnvironment = environments.length === 1;\n\n return (\n <FormControl className={classes.formControl}>\n <InputLabel id=\"select-environment-label\">Environment</InputLabel>\n <Select\n labelId=\"select-environment-label\"\n id=\"select-environment\"\n value={String(currentEnvironment.id)}\n onChange={handleChange}\n disabled={isSingleEnvironment}\n className={isSingleEnvironment ? classes.hideDropdownArrow : ''}\n >\n {environments.map(env => (\n <MenuItem key={env.name} value={env.id}>\n {env.name}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAOA,MAAM,YAAY,UAAW,CAAA;AAAA,EAC3B,WAAa,EAAA;AAAA,IACX,MAAQ,EAAA,CAAA;AAAA,IACR,QAAU,EAAA;AAAA,GACZ;AAAA,EACA,iBAAmB,EAAA;AAAA,IACjB,oCAAsC,EAAA;AAAA,MACpC,OAAS,EAAA;AAAA;AACX;AAEJ,CAAC,CAAA;AAQM,MAAM,oBAAoB,CAAC;AAAA,EAChC,YAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAA8B,KAAA;AAC5B,EAAA,MAAM,UAAU,SAAU,EAAA;AAE1B,EAAM,MAAA,YAAA,GAAe,CAAC,KAAe,KAAA;AACnC,IAAA,qBAAA,CAAsB,aAAa,MAAO,CAAA,KAAA,CAAM,MAAO,CAAA,KAAK,CAAC,CAAC,CAAA;AAAA,GAChE;AAGA,EAAM,MAAA,mBAAA,GAAsB,aAAa,MAAW,KAAA,CAAA;AAEpD,EAAA,uBACG,IAAA,CAAA,WAAA,EAAA,EAAY,SAAW,EAAA,OAAA,CAAQ,WAC9B,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,UAAA,EAAA,EAAW,EAAG,EAAA,0BAAA,EAA2B,QAAW,EAAA,aAAA,EAAA,CAAA;AAAA,oBACrD,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAQ,EAAA,0BAAA;AAAA,QACR,EAAG,EAAA,oBAAA;AAAA,QACH,KAAA,EAAO,MAAO,CAAA,kBAAA,CAAmB,EAAE,CAAA;AAAA,QACnC,QAAU,EAAA,YAAA;AAAA,QACV,QAAU,EAAA,mBAAA;AAAA,QACV,SAAA,EAAW,mBAAsB,GAAA,OAAA,CAAQ,iBAAoB,GAAA,EAAA;AAAA,QAE5D,QAAa,EAAA,YAAA,CAAA,GAAA,CAAI,CAChB,GAAA,qBAAA,GAAA,CAAC,QAAwB,EAAA,EAAA,KAAA,EAAO,GAAI,CAAA,EAAA,EACjC,QAAI,EAAA,GAAA,CAAA,IAAA,EAAA,EADQ,GAAI,CAAA,IAEnB,CACD;AAAA;AAAA;AACH,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import Chip from '@material-ui/core/Chip';
3
3
  import makeStyles from '@material-ui/core/styles/makeStyles';
4
4
 
@@ -24,15 +24,15 @@ const SeverityComponent = ({ severity }) => {
24
24
  const classes = useStyles();
25
25
  switch (severity) {
26
26
  case "high":
27
- return /* @__PURE__ */ React.createElement(Chip, { label: severity, className: classes.error });
27
+ return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.error });
28
28
  case "low":
29
- return /* @__PURE__ */ React.createElement(Chip, { label: severity, className: classes.success });
29
+ return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.success });
30
30
  case "medium":
31
- return /* @__PURE__ */ React.createElement(Chip, { label: severity, className: classes.warning });
31
+ return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.warning });
32
32
  case "info":
33
- return /* @__PURE__ */ React.createElement(Chip, { label: severity, className: classes.info });
33
+ return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.info });
34
34
  case "critical":
35
- return /* @__PURE__ */ React.createElement(Chip, { label: severity, className: classes.error });
35
+ return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.error });
36
36
  default:
37
37
  return null;
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SeverityComponent.esm.js","sources":["../../../src/components/SeverityComponent/SeverityComponent.tsx"],"sourcesContent":["import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { Severity } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nconst useStyles = makeStyles((theme: any) => ({\n error: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n },\n success: {\n backgroundColor: theme.palette.success.main,\n color: theme.palette.success.contrastText,\n },\n warning: {\n backgroundColor: theme.palette.warning.main,\n color: theme.palette.warning.contrastText,\n },\n info: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.info.contrastText,\n },\n}));\n\ntype SeverityComponentProps = {\n severity: Severity | null;\n};\n\nexport const SeverityComponent = ({ severity }: SeverityComponentProps) => {\n const classes = useStyles();\n switch (severity) {\n case 'high':\n return <Chip label={severity} className={classes.error} />;\n case 'low':\n return <Chip label={severity} className={classes.success} />;\n case 'medium':\n return <Chip label={severity} className={classes.warning} />;\n case 'info':\n return <Chip label={severity} className={classes.info} />;\n case 'critical':\n return <Chip label={severity} className={classes.error} />;\n default:\n return null;\n }\n};\n"],"names":[],"mappings":";;;;AAKA,MAAM,SAAA,GAAY,UAAW,CAAA,CAAC,KAAgB,MAAA;AAAA,EAC5C,KAAO,EAAA;AAAA,IACL,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,IAAA;AAAA,IACrC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA;AAAA,GAC7B;AAAA,EACA,OAAS,EAAA;AAAA,IACP,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA;AAAA,IACvC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,GAC/B;AAAA,EACA,OAAS,EAAA;AAAA,IACP,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA;AAAA,IACvC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,GAC/B;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,IAAA;AAAA,IACpC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA;AAAA;AAE9B,CAAE,CAAA,CAAA;AAMK,MAAM,iBAAoB,GAAA,CAAC,EAAE,QAAA,EAAuC,KAAA;AACzE,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAA,QAAQ,QAAU;AAAA,IAChB,KAAK,MAAA;AACH,MAAA,2CAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,KAAO,EAAA,CAAA;AAAA,IAC1D,KAAK,KAAA;AACH,MAAA,2CAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,OAAS,EAAA,CAAA;AAAA,IAC5D,KAAK,QAAA;AACH,MAAA,2CAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,OAAS,EAAA,CAAA;AAAA,IAC5D,KAAK,MAAA;AACH,MAAA,2CAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,IAAM,EAAA,CAAA;AAAA,IACzD,KAAK,UAAA;AACH,MAAA,2CAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,KAAO,EAAA,CAAA;AAAA,IAC1D;AACE,MAAO,OAAA,IAAA;AAAA;AAEb;;;;"}
1
+ {"version":3,"file":"SeverityComponent.esm.js","sources":["../../../src/components/SeverityComponent/SeverityComponent.tsx"],"sourcesContent":["import Chip from '@material-ui/core/Chip';\nimport { Severity } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nconst useStyles = makeStyles((theme: any) => ({\n error: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n },\n success: {\n backgroundColor: theme.palette.success.main,\n color: theme.palette.success.contrastText,\n },\n warning: {\n backgroundColor: theme.palette.warning.main,\n color: theme.palette.warning.contrastText,\n },\n info: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.info.contrastText,\n },\n}));\n\ntype SeverityComponentProps = {\n severity: Severity | null;\n};\n\nexport const SeverityComponent = ({ severity }: SeverityComponentProps) => {\n const classes = useStyles();\n switch (severity) {\n case 'high':\n return <Chip label={severity} className={classes.error} />;\n case 'low':\n return <Chip label={severity} className={classes.success} />;\n case 'medium':\n return <Chip label={severity} className={classes.warning} />;\n case 'info':\n return <Chip label={severity} className={classes.info} />;\n case 'critical':\n return <Chip label={severity} className={classes.error} />;\n default:\n return null;\n }\n};\n"],"names":[],"mappings":";;;;AAIA,MAAM,SAAA,GAAY,UAAW,CAAA,CAAC,KAAgB,MAAA;AAAA,EAC5C,KAAO,EAAA;AAAA,IACL,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,IAAA;AAAA,IACrC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA;AAAA,GAC7B;AAAA,EACA,OAAS,EAAA;AAAA,IACP,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA;AAAA,IACvC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,GAC/B;AAAA,EACA,OAAS,EAAA;AAAA,IACP,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA;AAAA,IACvC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,GAC/B;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,IAAA;AAAA,IACpC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA;AAAA;AAE9B,CAAE,CAAA,CAAA;AAMK,MAAM,iBAAoB,GAAA,CAAC,EAAE,QAAA,EAAuC,KAAA;AACzE,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAA,QAAQ,QAAU;AAAA,IAChB,KAAK,MAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,KAAO,EAAA,CAAA;AAAA,IAC1D,KAAK,KAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,OAAS,EAAA,CAAA;AAAA,IAC5D,KAAK,QAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,OAAS,EAAA,CAAA;AAAA,IAC5D,KAAK,MAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,IAAM,EAAA,CAAA;AAAA,IACzD,KAAK,UAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,KAAO,EAAA,CAAA;AAAA,IAC1D;AACE,MAAO,OAAA,IAAA;AAAA;AAEb;;;;"}
@@ -1,18 +1,18 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import { StatusWarning, StatusAborted, StatusError, StatusOK } from '@backstage/core-components';
3
3
 
4
4
  const StatusComponent = ({ status }) => {
5
5
  switch (status) {
6
6
  case "pass":
7
- return /* @__PURE__ */ React.createElement(StatusOK, null, "PASS");
7
+ return /* @__PURE__ */ jsx(StatusOK, { children: "PASS" });
8
8
  case "error":
9
- return /* @__PURE__ */ React.createElement(StatusError, null, "ERROR");
9
+ return /* @__PURE__ */ jsx(StatusError, { children: "ERROR" });
10
10
  case "fail":
11
- return /* @__PURE__ */ React.createElement(StatusError, null, "FAIL");
11
+ return /* @__PURE__ */ jsx(StatusError, { children: "FAIL" });
12
12
  case "skip":
13
- return /* @__PURE__ */ React.createElement(StatusAborted, null, "SKIP");
13
+ return /* @__PURE__ */ jsx(StatusAborted, { children: "SKIP" });
14
14
  case "warn":
15
- return /* @__PURE__ */ React.createElement(StatusWarning, null, "WARN");
15
+ return /* @__PURE__ */ jsx(StatusWarning, { children: "WARN" });
16
16
  default:
17
17
  return null;
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StatusComponent.esm.js","sources":["../../../src/components/StatusComponent/StatusComponent.tsx"],"sourcesContent":["import React from 'react';\nimport {\n StatusAborted,\n StatusError,\n StatusOK,\n StatusWarning,\n} from '@backstage/core-components';\nimport type { Status } from '@kyverno/backstage-plugin-policy-reporter-common';\n\ntype StatusComponentProps = {\n status: Status;\n};\n\nexport const StatusComponent = ({ status }: StatusComponentProps) => {\n switch (status) {\n case 'pass':\n return <StatusOK>PASS</StatusOK>;\n case 'error':\n return <StatusError>ERROR</StatusError>;\n case 'fail':\n return <StatusError>FAIL</StatusError>;\n case 'skip':\n return <StatusAborted>SKIP</StatusAborted>;\n case 'warn':\n return <StatusWarning>WARN</StatusWarning>;\n default:\n return null;\n }\n};\n"],"names":[],"mappings":";;;AAaO,MAAM,eAAkB,GAAA,CAAC,EAAE,MAAA,EAAmC,KAAA;AACnE,EAAA,QAAQ,MAAQ;AAAA,IACd,KAAK,MAAA;AACH,MAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,gBAAS,MAAI,CAAA;AAAA,IACvB,KAAK,OAAA;AACH,MAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,mBAAY,OAAK,CAAA;AAAA,IAC3B,KAAK,MAAA;AACH,MAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,mBAAY,MAAI,CAAA;AAAA,IAC1B,KAAK,MAAA;AACH,MAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,qBAAc,MAAI,CAAA;AAAA,IAC5B,KAAK,MAAA;AACH,MAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,qBAAc,MAAI,CAAA;AAAA,IAC5B;AACE,MAAO,OAAA,IAAA;AAAA;AAEb;;;;"}
1
+ {"version":3,"file":"StatusComponent.esm.js","sources":["../../../src/components/StatusComponent/StatusComponent.tsx"],"sourcesContent":["import {\n StatusAborted,\n StatusError,\n StatusOK,\n StatusWarning,\n} from '@backstage/core-components';\nimport type { Status } from '@kyverno/backstage-plugin-policy-reporter-common';\n\ntype StatusComponentProps = {\n status: Status;\n};\n\nexport const StatusComponent = ({ status }: StatusComponentProps) => {\n switch (status) {\n case 'pass':\n return <StatusOK>PASS</StatusOK>;\n case 'error':\n return <StatusError>ERROR</StatusError>;\n case 'fail':\n return <StatusError>FAIL</StatusError>;\n case 'skip':\n return <StatusAborted>SKIP</StatusAborted>;\n case 'warn':\n return <StatusWarning>WARN</StatusWarning>;\n default:\n return null;\n }\n};\n"],"names":[],"mappings":";;;AAYO,MAAM,eAAkB,GAAA,CAAC,EAAE,MAAA,EAAmC,KAAA;AACnE,EAAA,QAAQ,MAAQ;AAAA,IACd,KAAK,MAAA;AACH,MAAO,uBAAA,GAAA,CAAC,YAAS,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,IACvB,KAAK,OAAA;AACH,MAAO,uBAAA,GAAA,CAAC,eAAY,QAAK,EAAA,OAAA,EAAA,CAAA;AAAA,IAC3B,KAAK,MAAA;AACH,MAAO,uBAAA,GAAA,CAAC,eAAY,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,IAC1B,KAAK,MAAA;AACH,MAAO,uBAAA,GAAA,CAAC,iBAAc,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,IAC5B,KAAK,MAAA;AACH,MAAO,uBAAA,GAAA,CAAC,iBAAc,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,IAC5B;AACE,MAAO,OAAA,IAAA;AAAA;AAEb;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- import * as react from 'react';
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
3
3
 
4
4
  declare const policyReporterPlugin: _backstage_core_plugin_api.BackstagePlugin<{}, {}, {}>;
5
5
  declare const EntityKyvernoPoliciesContent: ({ annotationsDocumentationUrl, policyDocumentationUrl, }: {
6
6
  annotationsDocumentationUrl?: string;
7
7
  policyDocumentationUrl?: string;
8
- }) => react.JSX.Element;
8
+ }) => react_jsx_runtime.JSX.Element;
9
9
  declare const EntityCustomPoliciesContent: ({ annotationsDocumentationUrl, policyDocumentationUrl, sources, title, }: {
10
10
  annotationsDocumentationUrl?: string;
11
11
  policyDocumentationUrl?: string;
12
12
  sources: string[];
13
13
  title: string;
14
- }) => react.JSX.Element;
14
+ }) => react_jsx_runtime.JSX.Element;
15
15
 
16
16
  export { EntityCustomPoliciesContent, EntityKyvernoPoliciesContent, policyReporterPlugin };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyverno/backstage-plugin-policy-reporter",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "main": "dist/index.esm.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "Apache-2.0",
@@ -39,13 +39,13 @@
39
39
  "directory": "plugins/policy-reporter"
40
40
  },
41
41
  "dependencies": {
42
- "@backstage/catalog-client": "backstage:^",
43
- "@backstage/catalog-model": "backstage:^",
44
- "@backstage/core-components": "backstage:^",
45
- "@backstage/core-plugin-api": "backstage:^",
46
- "@backstage/plugin-catalog-react": "backstage:^",
47
- "@backstage/theme": "backstage:^",
48
- "@kyverno/backstage-plugin-policy-reporter-common": "workspace:^",
42
+ "@backstage/catalog-client": "^1.9.1",
43
+ "@backstage/catalog-model": "^1.7.3",
44
+ "@backstage/core-components": "^0.17.1",
45
+ "@backstage/core-plugin-api": "^1.10.6",
46
+ "@backstage/plugin-catalog-react": "^1.17.0",
47
+ "@backstage/theme": "^0.6.5",
48
+ "@kyverno/backstage-plugin-policy-reporter-common": "2.0.4",
49
49
  "@material-ui/core": "^4.9.13",
50
50
  "@material-ui/icons": "^4.9.1",
51
51
  "@material-ui/lab": "4.0.0-alpha.61",
@@ -55,10 +55,10 @@
55
55
  "react": "^16.13.1 || ^17.0.0 || ^18.0.0"
56
56
  },
57
57
  "devDependencies": {
58
- "@backstage/cli": "backstage:^",
59
- "@backstage/core-app-api": "backstage:^",
60
- "@backstage/dev-utils": "backstage:^",
61
- "@backstage/test-utils": "backstage:^",
58
+ "@backstage/cli": "^0.32.0",
59
+ "@backstage/core-app-api": "^1.16.1",
60
+ "@backstage/dev-utils": "^1.1.9",
61
+ "@backstage/test-utils": "^1.7.7",
62
62
  "@testing-library/jest-dom": "^6.0.0",
63
63
  "@testing-library/react": "^14.0.0",
64
64
  "@testing-library/user-event": "^14.0.0",
@@ -67,5 +67,12 @@
67
67
  "files": [
68
68
  "dist"
69
69
  ],
70
+ "typesVersions": {
71
+ "*": {
72
+ "package.json": [
73
+ "package.json"
74
+ ]
75
+ }
76
+ },
70
77
  "module": "./dist/index.esm.js"
71
78
  }