@backstage/plugin-kubernetes-react 0.5.6-next.0 → 0.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/dist/components/Cluster/Cluster.esm.js +64 -39
- package/dist/components/Cluster/Cluster.esm.js.map +1 -1
- package/dist/components/CronJobsAccordions/CronJobsAccordions.esm.js +44 -32
- package/dist/components/CronJobsAccordions/CronJobsAccordions.esm.js.map +1 -1
- package/dist/components/CronJobsAccordions/CronJobsDrawer.esm.js +20 -17
- package/dist/components/CronJobsAccordions/CronJobsDrawer.esm.js.map +1 -1
- package/dist/components/CustomResources/ArgoRollouts/Rollout.esm.js +149 -100
- package/dist/components/CustomResources/ArgoRollouts/Rollout.esm.js.map +1 -1
- package/dist/components/CustomResources/ArgoRollouts/RolloutDrawer.esm.js +20 -17
- package/dist/components/CustomResources/ArgoRollouts/RolloutDrawer.esm.js.map +1 -1
- package/dist/components/CustomResources/ArgoRollouts/StepsProgress.esm.js +8 -5
- package/dist/components/CustomResources/ArgoRollouts/StepsProgress.esm.js.map +1 -1
- package/dist/components/CustomResources/CustomResources.esm.js +8 -7
- package/dist/components/CustomResources/CustomResources.esm.js.map +1 -1
- package/dist/components/CustomResources/DefaultCustomResource.esm.js +41 -39
- package/dist/components/CustomResources/DefaultCustomResource.esm.js.map +1 -1
- package/dist/components/CustomResources/DefaultCustomResourceDrawer.esm.js +19 -16
- package/dist/components/CustomResources/DefaultCustomResourceDrawer.esm.js.map +1 -1
- package/dist/components/DaemonSetsAccordions/DaemonSetsAccordions.esm.js +59 -43
- package/dist/components/DaemonSetsAccordions/DaemonSetsAccordions.esm.js.map +1 -1
- package/dist/components/DaemonSetsAccordions/DaemonSetsDrawer.esm.js +19 -16
- package/dist/components/DaemonSetsAccordions/DaemonSetsDrawer.esm.js.map +1 -1
- package/dist/components/DeploymentsAccordions/DeploymentDrawer.esm.js +19 -16
- package/dist/components/DeploymentsAccordions/DeploymentDrawer.esm.js.map +1 -1
- package/dist/components/DeploymentsAccordions/DeploymentsAccordions.esm.js +102 -70
- package/dist/components/DeploymentsAccordions/DeploymentsAccordions.esm.js.map +1 -1
- package/dist/components/ErrorPanel/ErrorPanel.esm.js +21 -9
- package/dist/components/ErrorPanel/ErrorPanel.esm.js.map +1 -1
- package/dist/components/ErrorReporting/ErrorReporting.esm.js +7 -4
- package/dist/components/ErrorReporting/ErrorReporting.esm.js.map +1 -1
- package/dist/components/HorizontalPodAutoscalers/HorizontalPodAutoscalerDrawer.esm.js +6 -5
- package/dist/components/HorizontalPodAutoscalers/HorizontalPodAutoscalerDrawer.esm.js.map +1 -1
- package/dist/components/IngressesAccordions/IngressDrawer.esm.js +19 -16
- package/dist/components/IngressesAccordions/IngressDrawer.esm.js.map +1 -1
- package/dist/components/IngressesAccordions/IngressesAccordions.esm.js +15 -11
- package/dist/components/IngressesAccordions/IngressesAccordions.esm.js.map +1 -1
- package/dist/components/JobsAccordions/JobsAccordions.esm.js +49 -31
- package/dist/components/JobsAccordions/JobsAccordions.esm.js.map +1 -1
- package/dist/components/JobsAccordions/JobsDrawer.esm.js +18 -15
- package/dist/components/JobsAccordions/JobsDrawer.esm.js.map +1 -1
- package/dist/components/KubernetesDialog/KubernetesDialog.esm.js +40 -31
- package/dist/components/KubernetesDialog/KubernetesDialog.esm.js.map +1 -1
- package/dist/components/KubernetesDrawer/KubernetesDrawer.esm.js +57 -42
- package/dist/components/KubernetesDrawer/KubernetesDrawer.esm.js.map +1 -1
- package/dist/components/KubernetesDrawer/KubernetesStructuredMetadataTableDrawer.esm.js +95 -75
- package/dist/components/KubernetesDrawer/KubernetesStructuredMetadataTableDrawer.esm.js.map +1 -1
- package/dist/components/KubernetesDrawer/ManifestYaml.esm.js +36 -32
- package/dist/components/KubernetesDrawer/ManifestYaml.esm.js.map +1 -1
- package/dist/components/PodExecTerminal/PodExecTerminal.esm.js +4 -3
- package/dist/components/PodExecTerminal/PodExecTerminal.esm.js.map +1 -1
- package/dist/components/PodExecTerminal/PodExecTerminalDialog.esm.js +7 -6
- package/dist/components/PodExecTerminal/PodExecTerminalDialog.esm.js.map +1 -1
- package/dist/components/Pods/ErrorList/ErrorList.esm.js +27 -21
- package/dist/components/Pods/ErrorList/ErrorList.esm.js.map +1 -1
- package/dist/components/Pods/Events/Events.esm.js +30 -23
- package/dist/components/Pods/Events/Events.esm.js.map +1 -1
- package/dist/components/Pods/FixDialog/FixDialog.esm.js +85 -51
- package/dist/components/Pods/FixDialog/FixDialog.esm.js.map +1 -1
- package/dist/components/Pods/PodDelete/PodDeleteButton.esm.js +25 -21
- package/dist/components/Pods/PodDelete/PodDeleteButton.esm.js.map +1 -1
- package/dist/components/Pods/PodDrawer/ContainerCard.esm.js +137 -95
- package/dist/components/Pods/PodDrawer/ContainerCard.esm.js.map +1 -1
- package/dist/components/Pods/PodDrawer/PendingPodContent.esm.js +36 -9
- package/dist/components/Pods/PodDrawer/PendingPodContent.esm.js.map +1 -1
- package/dist/components/Pods/PodDrawer/PodDrawer.esm.js +89 -64
- package/dist/components/Pods/PodDrawer/PodDrawer.esm.js.map +1 -1
- package/dist/components/Pods/PodLogs/PodLogs.esm.js +30 -25
- package/dist/components/Pods/PodLogs/PodLogs.esm.js.map +1 -1
- package/dist/components/Pods/PodLogs/PodLogsDialog.esm.js +6 -6
- package/dist/components/Pods/PodLogs/PodLogsDialog.esm.js.map +1 -1
- package/dist/components/Pods/PodsTable.esm.js +12 -11
- package/dist/components/Pods/PodsTable.esm.js.map +1 -1
- package/dist/components/ResourceUtilization/ResourceUtilization.esm.js +24 -15
- package/dist/components/ResourceUtilization/ResourceUtilization.esm.js.map +1 -1
- package/dist/components/ServicesAccordions/ServiceDrawer.esm.js +19 -16
- package/dist/components/ServicesAccordions/ServiceDrawer.esm.js.map +1 -1
- package/dist/components/ServicesAccordions/ServicesAccordions.esm.js +21 -12
- package/dist/components/ServicesAccordions/ServicesAccordions.esm.js.map +1 -1
- package/dist/components/StatefulSetsAccordions/StatefulSetDrawer.esm.js +19 -16
- package/dist/components/StatefulSetsAccordions/StatefulSetDrawer.esm.js.map +1 -1
- package/dist/components/StatefulSetsAccordions/StatefulSetsAccordions.esm.js +98 -66
- package/dist/components/StatefulSetsAccordions/StatefulSetsAccordions.esm.js.map +1 -1
- package/dist/hooks/Cluster.esm.js +2 -2
- package/dist/hooks/Cluster.esm.js.map +1 -1
- package/dist/hooks/GroupedResponses.esm.js +2 -2
- package/dist/hooks/GroupedResponses.esm.js.map +1 -1
- package/dist/hooks/PodNamesWithErrors.esm.js +2 -2
- package/dist/hooks/PodNamesWithErrors.esm.js.map +1 -1
- package/dist/hooks/PodNamesWithMetrics.esm.js +2 -2
- package/dist/hooks/PodNamesWithMetrics.esm.js.map +1 -1
- package/dist/hooks/useMatchingErrors.esm.js +2 -2
- package/dist/hooks/useMatchingErrors.esm.js.map +1 -1
- package/dist/hooks/usePodMetrics.esm.js +4 -2
- package/dist/hooks/usePodMetrics.esm.js.map +1 -1
- package/dist/index.d.ts +47 -46
- package/dist/utils/pod.esm.js +25 -15
- package/dist/utils/pod.esm.js.map +1 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IngressesAccordions.esm.js","sources":["../../../src/components/IngressesAccordions/IngressesAccordions.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport
|
|
1
|
+
{"version":3,"file":"IngressesAccordions.esm.js","sources":["../../../src/components/IngressesAccordions/IngressesAccordions.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useContext } from 'react';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Grid from '@material-ui/core/Grid';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { V1Ingress } from '@kubernetes/client-node';\nimport { IngressDrawer } from './IngressDrawer';\nimport { GroupedResponsesContext } from '../../hooks';\nimport { StructuredMetadataTable } from '@backstage/core-components';\n\n/**\n *\n *\n * @public\n */\nexport type IngressesAccordionsProps = {};\n\ntype IngressAccordionProps = {\n ingress: V1Ingress;\n};\n\ntype IngressSummaryProps = {\n ingress: V1Ingress;\n};\n\nconst IngressSummary = ({ ingress }: IngressSummaryProps) => {\n return (\n <Grid\n container\n direction=\"row\"\n justifyContent=\"flex-start\"\n alignItems=\"center\"\n >\n <Grid xs={12} item>\n <IngressDrawer ingress={ingress} />\n </Grid>\n </Grid>\n );\n};\n\ntype IngressCardProps = {\n ingress: V1Ingress;\n};\n\nconst IngressCard = ({ ingress }: IngressCardProps) => {\n return (\n <StructuredMetadataTable\n metadata={{\n ...ingress.spec,\n }}\n options={{\n nestedValuesAsYaml: true,\n }}\n />\n );\n};\n\nconst IngressAccordion = ({ ingress }: IngressAccordionProps) => {\n return (\n <Accordion TransitionProps={{ unmountOnExit: true }}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <IngressSummary ingress={ingress} />\n </AccordionSummary>\n <AccordionDetails>\n <IngressCard ingress={ingress} />\n </AccordionDetails>\n </Accordion>\n );\n};\n\n/**\n *\n *\n * @public\n */\nexport const IngressesAccordions = ({}: IngressesAccordionsProps) => {\n const groupedResponses = useContext(GroupedResponsesContext);\n return (\n <Grid\n container\n direction=\"row\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {groupedResponses.ingresses.map((ingress, i) => (\n <Grid item key={i} xs>\n <IngressAccordion ingress={ingress} />\n </Grid>\n ))}\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAM,cAAiB,GAAA,CAAC,EAAE,OAAA,EAAmC,KAAA;AAC3D,EACE,uBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAS,EAAA,IAAA;AAAA,MACT,SAAU,EAAA,KAAA;AAAA,MACV,cAAe,EAAA,YAAA;AAAA,MACf,UAAW,EAAA,QAAA;AAAA,MAEX,QAAA,kBAAA,GAAA,CAAC,QAAK,EAAI,EAAA,EAAA,EAAI,MAAI,IAChB,EAAA,QAAA,kBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,OAAA,EAAkB,CACnC,EAAA;AAAA;AAAA,GACF;AAEJ,CAAA;AAMA,MAAM,WAAc,GAAA,CAAC,EAAE,OAAA,EAAgC,KAAA;AACrD,EACE,uBAAA,GAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,QAAU,EAAA;AAAA,QACR,GAAG,OAAQ,CAAA;AAAA,OACb;AAAA,MACA,OAAS,EAAA;AAAA,QACP,kBAAoB,EAAA;AAAA;AACtB;AAAA,GACF;AAEJ,CAAA;AAEA,MAAM,gBAAmB,GAAA,CAAC,EAAE,OAAA,EAAqC,KAAA;AAC/D,EAAA,4BACG,SAAU,EAAA,EAAA,eAAA,EAAiB,EAAE,aAAA,EAAe,MAC3C,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,gBAAA,EAAA,EAAiB,4BAAa,GAAA,CAAA,cAAA,EAAA,EAAe,GAC5C,QAAC,kBAAA,GAAA,CAAA,cAAA,EAAA,EAAe,SAAkB,CACpC,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,gBAAA,EAAA,EACC,QAAC,kBAAA,GAAA,CAAA,WAAA,EAAA,EAAY,SAAkB,CACjC,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ,CAAA;AAOa,MAAA,mBAAA,GAAsB,CAAC,EAAiC,KAAA;AACnE,EAAM,MAAA,gBAAA,GAAmB,WAAW,uBAAuB,CAAA;AAC3D,EACE,uBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAS,EAAA,IAAA;AAAA,MACT,SAAU,EAAA,KAAA;AAAA,MACV,cAAe,EAAA,YAAA;AAAA,MACf,UAAW,EAAA,YAAA;AAAA,MAEV,2BAAiB,SAAU,CAAA,GAAA,CAAI,CAAC,OAAA,EAAS,sBACvC,GAAA,CAAA,IAAA,EAAA,EAAK,IAAI,EAAA,IAAA,EAAS,IAAE,IACnB,EAAA,QAAA,kBAAA,GAAA,CAAC,oBAAiB,OAAkB,EAAA,CAAA,EAAA,EADtB,CAEhB,CACD;AAAA;AAAA,GACH;AAEJ;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useContext } from 'react';
|
|
2
3
|
import Accordion from '@material-ui/core/Accordion';
|
|
3
4
|
import AccordionDetails from '@material-ui/core/AccordionDetails';
|
|
4
5
|
import AccordionSummary from '@material-ui/core/AccordionSummary';
|
|
@@ -46,53 +47,70 @@ import { JobDrawer } from './JobsDrawer.esm.js';
|
|
|
46
47
|
import { getOwnedResources } from '../../utils/owner.esm.js';
|
|
47
48
|
|
|
48
49
|
const JobSummary = ({ job }) => {
|
|
49
|
-
return /* @__PURE__ */
|
|
50
|
+
return /* @__PURE__ */ jsxs(
|
|
50
51
|
Grid,
|
|
51
52
|
{
|
|
52
53
|
container: true,
|
|
53
54
|
direction: "row",
|
|
54
55
|
justifyContent: "space-between",
|
|
55
56
|
alignItems: "center",
|
|
56
|
-
spacing: 0
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
57
|
+
spacing: 0,
|
|
58
|
+
children: [
|
|
59
|
+
/* @__PURE__ */ jsx(Grid, { xs: 6, item: true, children: /* @__PURE__ */ jsx(JobDrawer, { job }) }),
|
|
60
|
+
/* @__PURE__ */ jsxs(
|
|
61
|
+
Grid,
|
|
62
|
+
{
|
|
63
|
+
item: true,
|
|
64
|
+
container: true,
|
|
65
|
+
xs: 6,
|
|
66
|
+
direction: "column",
|
|
67
|
+
justifyContent: "flex-start",
|
|
68
|
+
alignItems: "flex-end",
|
|
69
|
+
spacing: 0,
|
|
70
|
+
children: [
|
|
71
|
+
/* @__PURE__ */ jsxs(Grid, { item: true, children: [
|
|
72
|
+
job.status?.succeeded && /* @__PURE__ */ jsx(StatusOK, { children: "Succeeded" }),
|
|
73
|
+
job.status?.active && /* @__PURE__ */ jsx(StatusPending, { children: "Running" }),
|
|
74
|
+
job.status?.failed && /* @__PURE__ */ jsx(StatusError, { children: "Failed" })
|
|
75
|
+
] }),
|
|
76
|
+
/* @__PURE__ */ jsxs(Grid, { item: true, children: [
|
|
77
|
+
"Start time: ",
|
|
78
|
+
job.status?.startTime?.toString()
|
|
79
|
+
] }),
|
|
80
|
+
job.status?.completionTime && /* @__PURE__ */ jsxs(Grid, { item: true, children: [
|
|
81
|
+
"Completion time: ",
|
|
82
|
+
job.status.completionTime.toString()
|
|
83
|
+
] })
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
]
|
|
88
|
+
}
|
|
74
89
|
);
|
|
75
90
|
};
|
|
76
91
|
const JobAccordion = ({ job, ownedPods }) => {
|
|
77
|
-
return /* @__PURE__ */
|
|
92
|
+
return /* @__PURE__ */ jsxs(Accordion, { TransitionProps: { unmountOnExit: true }, variant: "outlined", children: [
|
|
93
|
+
/* @__PURE__ */ jsx(AccordionSummary, { expandIcon: /* @__PURE__ */ jsx(ExpandMoreIcon, {}), children: /* @__PURE__ */ jsx(JobSummary, { job }) }),
|
|
94
|
+
/* @__PURE__ */ jsx(AccordionDetails, { children: /* @__PURE__ */ jsx(PodsTable, { pods: ownedPods }) })
|
|
95
|
+
] });
|
|
78
96
|
};
|
|
79
97
|
const JobsAccordions = ({ jobs }) => {
|
|
80
98
|
const groupedResponses = useContext(GroupedResponsesContext);
|
|
81
|
-
return /* @__PURE__ */
|
|
99
|
+
return /* @__PURE__ */ jsx(
|
|
82
100
|
Grid,
|
|
83
101
|
{
|
|
84
102
|
container: true,
|
|
85
103
|
direction: "column",
|
|
86
104
|
justifyContent: "flex-start",
|
|
87
|
-
alignItems: "flex-start"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
105
|
+
alignItems: "flex-start",
|
|
106
|
+
children: jobs.map((job, i) => /* @__PURE__ */ jsx(Grid, { container: true, item: true, xs: true, children: /* @__PURE__ */ jsx(Grid, { item: true, xs: true, children: /* @__PURE__ */ jsx(
|
|
107
|
+
JobAccordion,
|
|
108
|
+
{
|
|
109
|
+
ownedPods: getOwnedResources(job, groupedResponses.pods),
|
|
110
|
+
job
|
|
111
|
+
}
|
|
112
|
+
) }) }, i))
|
|
113
|
+
}
|
|
96
114
|
);
|
|
97
115
|
};
|
|
98
116
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobsAccordions.esm.js","sources":["../../../src/components/JobsAccordions/JobsAccordions.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport
|
|
1
|
+
{"version":3,"file":"JobsAccordions.esm.js","sources":["../../../src/components/JobsAccordions/JobsAccordions.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ReactNode, useContext } from 'react';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Grid from '@material-ui/core/Grid';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { V1Job, V1Pod } from '@kubernetes/client-node';\nimport { PodsTable } from '../Pods';\nimport { JobDrawer } from './JobsDrawer';\nimport { getOwnedResources } from '../../utils/owner';\nimport { GroupedResponsesContext } from '../../hooks';\nimport {\n StatusError,\n StatusOK,\n StatusPending,\n} from '@backstage/core-components';\n\n/**\n *\n *\n * @public\n */\nexport type JobsAccordionsProps = {\n jobs: V1Job[];\n children?: ReactNode;\n};\n\ntype JobAccordionProps = {\n job: V1Job;\n ownedPods: V1Pod[];\n children?: ReactNode;\n};\n\ntype JobSummaryProps = {\n job: V1Job;\n children?: ReactNode;\n};\n\nconst JobSummary = ({ job }: JobSummaryProps) => {\n return (\n <Grid\n container\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n spacing={0}\n >\n <Grid xs={6} item>\n <JobDrawer job={job} />\n </Grid>\n <Grid\n item\n container\n xs={6}\n direction=\"column\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-end\"\n spacing={0}\n >\n <Grid item>\n {job.status?.succeeded && <StatusOK>Succeeded</StatusOK>}\n {job.status?.active && <StatusPending>Running</StatusPending>}\n {job.status?.failed && <StatusError>Failed</StatusError>}\n </Grid>\n <Grid item>Start time: {job.status?.startTime?.toString()}</Grid>\n {job.status?.completionTime && (\n <Grid item>\n Completion time: {job.status.completionTime.toString()}\n </Grid>\n )}\n </Grid>\n </Grid>\n );\n};\n\nconst JobAccordion = ({ job, ownedPods }: JobAccordionProps) => {\n return (\n <Accordion TransitionProps={{ unmountOnExit: true }} variant=\"outlined\">\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <JobSummary job={job} />\n </AccordionSummary>\n <AccordionDetails>\n <PodsTable pods={ownedPods} />\n </AccordionDetails>\n </Accordion>\n );\n};\n\n/**\n *\n *\n * @public\n */\nexport const JobsAccordions = ({ jobs }: JobsAccordionsProps) => {\n const groupedResponses = useContext(GroupedResponsesContext);\n\n return (\n <Grid\n container\n direction=\"column\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n {jobs.map((job, i) => (\n <Grid container item key={i} xs>\n <Grid item xs>\n <JobAccordion\n ownedPods={getOwnedResources(job, groupedResponses.pods)}\n job={job}\n />\n </Grid>\n </Grid>\n ))}\n </Grid>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { KubernetesStructuredMetadataTableDrawer } from '../KubernetesDrawer/KubernetesStructuredMetadataTableDrawer.esm.js';
|
|
3
3
|
import '../KubernetesDrawer/KubernetesDrawer.esm.js';
|
|
4
4
|
import '@backstage/core-components';
|
|
5
5
|
import '@material-ui/core/FormControlLabel';
|
|
6
6
|
import '@material-ui/core/Switch';
|
|
7
7
|
import 'js-yaml';
|
|
8
|
+
import 'react';
|
|
8
9
|
import Typography from '@material-ui/core/Typography';
|
|
9
10
|
import Grid from '@material-ui/core/Grid';
|
|
10
11
|
|
|
@@ -12,7 +13,7 @@ const JobDrawer = ({
|
|
|
12
13
|
job,
|
|
13
14
|
expanded
|
|
14
15
|
}) => {
|
|
15
|
-
return /* @__PURE__ */
|
|
16
|
+
return /* @__PURE__ */ jsx(
|
|
16
17
|
KubernetesStructuredMetadataTableDrawer,
|
|
17
18
|
{
|
|
18
19
|
object: job,
|
|
@@ -25,20 +26,22 @@ const JobDrawer = ({
|
|
|
25
26
|
backoffLimit: jobObj.spec?.backoffLimit ?? "???",
|
|
26
27
|
startTime: jobObj.status?.startTime ?? "???"
|
|
27
28
|
};
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
/* @__PURE__ */ React__default.createElement(
|
|
31
|
-
Grid,
|
|
32
|
-
{
|
|
33
|
-
container: true,
|
|
34
|
-
direction: "column",
|
|
35
|
-
justifyContent: "flex-start",
|
|
36
|
-
alignItems: "flex-start",
|
|
37
|
-
spacing: 0
|
|
38
29
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
children: /* @__PURE__ */ jsxs(
|
|
31
|
+
Grid,
|
|
32
|
+
{
|
|
33
|
+
container: true,
|
|
34
|
+
direction: "column",
|
|
35
|
+
justifyContent: "flex-start",
|
|
36
|
+
alignItems: "flex-start",
|
|
37
|
+
spacing: 0,
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(Typography, { variant: "body1", children: job.metadata?.name ?? "unknown object" }) }),
|
|
40
|
+
/* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(Typography, { color: "textSecondary", variant: "subtitle1", children: "Job" }) })
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
}
|
|
42
45
|
);
|
|
43
46
|
};
|
|
44
47
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobsDrawer.esm.js","sources":["../../../src/components/JobsAccordions/JobsDrawer.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport
|
|
1
|
+
{"version":3,"file":"JobsDrawer.esm.js","sources":["../../../src/components/JobsAccordions/JobsDrawer.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1Job } from '@kubernetes/client-node';\nimport { KubernetesStructuredMetadataTableDrawer } from '../KubernetesDrawer';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\n\nexport const JobDrawer = ({\n job,\n expanded,\n}: {\n job: V1Job;\n expanded?: boolean;\n}) => {\n return (\n <KubernetesStructuredMetadataTableDrawer\n object={job}\n expanded={expanded}\n kind=\"Job\"\n renderObject={(jobObj: V1Job) => {\n return {\n parallelism: jobObj.spec?.parallelism ?? '???',\n completions: jobObj.spec?.completions ?? '???',\n backoffLimit: jobObj.spec?.backoffLimit ?? '???',\n startTime: jobObj.status?.startTime ?? '???',\n };\n }}\n >\n <Grid\n container\n direction=\"column\"\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n spacing={0}\n >\n <Grid item>\n <Typography variant=\"body1\">\n {job.metadata?.name ?? 'unknown object'}\n </Typography>\n </Grid>\n <Grid item>\n <Typography color=\"textSecondary\" variant=\"subtitle1\">\n Job\n </Typography>\n </Grid>\n </Grid>\n </KubernetesStructuredMetadataTableDrawer>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAoBO,MAAM,YAAY,CAAC;AAAA,EACxB,GAAA;AAAA,EACA;AACF,CAGM,KAAA;AACJ,EACE,uBAAA,GAAA;AAAA,IAAC,uCAAA;AAAA,IAAA;AAAA,MACC,MAAQ,EAAA,GAAA;AAAA,MACR,QAAA;AAAA,MACA,IAAK,EAAA,KAAA;AAAA,MACL,YAAA,EAAc,CAAC,MAAkB,KAAA;AAC/B,QAAO,OAAA;AAAA,UACL,WAAA,EAAa,MAAO,CAAA,IAAA,EAAM,WAAe,IAAA,KAAA;AAAA,UACzC,WAAA,EAAa,MAAO,CAAA,IAAA,EAAM,WAAe,IAAA,KAAA;AAAA,UACzC,YAAA,EAAc,MAAO,CAAA,IAAA,EAAM,YAAgB,IAAA,KAAA;AAAA,UAC3C,SAAA,EAAW,MAAO,CAAA,MAAA,EAAQ,SAAa,IAAA;AAAA,SACzC;AAAA,OACF;AAAA,MAEA,QAAA,kBAAA,IAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,SAAS,EAAA,IAAA;AAAA,UACT,SAAU,EAAA,QAAA;AAAA,UACV,cAAe,EAAA,YAAA;AAAA,UACf,UAAW,EAAA,YAAA;AAAA,UACX,OAAS,EAAA,CAAA;AAAA,UAET,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,IAAA,EAAA,EAAK,IAAI,EAAA,IAAA,EACR,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,OAAQ,EAAA,OAAA,EACjB,QAAI,EAAA,GAAA,CAAA,QAAA,EAAU,IAAQ,IAAA,gBAAA,EACzB,CACF,EAAA,CAAA;AAAA,4BACA,GAAA,CAAC,IAAK,EAAA,EAAA,IAAA,EAAI,IACR,EAAA,QAAA,kBAAA,GAAA,CAAC,UAAW,EAAA,EAAA,KAAA,EAAM,eAAgB,EAAA,OAAA,EAAQ,WAAY,EAAA,QAAA,EAAA,KAAA,EAEtD,CACF,EAAA;AAAA;AAAA;AAAA;AACF;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
1
2
|
import Button from '@material-ui/core/Button';
|
|
2
3
|
import Dialog from '@material-ui/core/Dialog';
|
|
3
4
|
import DialogContent from '@material-ui/core/DialogContent';
|
|
@@ -5,7 +6,7 @@ import DialogTitle from '@material-ui/core/DialogTitle';
|
|
|
5
6
|
import IconButton from '@material-ui/core/IconButton';
|
|
6
7
|
import { makeStyles, createStyles } from '@material-ui/core/styles';
|
|
7
8
|
import CloseIcon from '@material-ui/icons/Close';
|
|
8
|
-
import
|
|
9
|
+
import { useState } from 'react';
|
|
9
10
|
|
|
10
11
|
const useStyles = makeStyles(
|
|
11
12
|
(theme) => createStyles({
|
|
@@ -35,37 +36,45 @@ const KubernetesDialog = ({
|
|
|
35
36
|
const closeDialog = () => {
|
|
36
37
|
setOpen(false);
|
|
37
38
|
};
|
|
38
|
-
return /* @__PURE__ */
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
maxWidth: "xl",
|
|
42
|
-
fullWidth: true,
|
|
43
|
-
open,
|
|
44
|
-
onClose: closeDialog,
|
|
45
|
-
PaperProps: { className: classes.dialogPaper }
|
|
46
|
-
},
|
|
47
|
-
/* @__PURE__ */ React__default.createElement(DialogTitle, { id: "dialog-title" }, title, /* @__PURE__ */ React__default.createElement(
|
|
48
|
-
IconButton,
|
|
39
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
40
|
+
/* @__PURE__ */ jsxs(
|
|
41
|
+
Dialog,
|
|
49
42
|
{
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
43
|
+
maxWidth: "xl",
|
|
44
|
+
fullWidth: true,
|
|
45
|
+
open,
|
|
46
|
+
onClose: closeDialog,
|
|
47
|
+
PaperProps: { className: classes.dialogPaper },
|
|
48
|
+
children: [
|
|
49
|
+
/* @__PURE__ */ jsxs(DialogTitle, { id: "dialog-title", children: [
|
|
50
|
+
title,
|
|
51
|
+
/* @__PURE__ */ jsx(
|
|
52
|
+
IconButton,
|
|
53
|
+
{
|
|
54
|
+
"aria-label": "close",
|
|
55
|
+
className: classes.closeButton,
|
|
56
|
+
onClick: closeDialog,
|
|
57
|
+
children: /* @__PURE__ */ jsx(CloseIcon, {})
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
] }),
|
|
61
|
+
/* @__PURE__ */ jsx(DialogContent, { className: classes.dialogContent, children })
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
),
|
|
65
|
+
/* @__PURE__ */ jsx(
|
|
66
|
+
Button,
|
|
67
|
+
{
|
|
68
|
+
variant: "outlined",
|
|
69
|
+
"aria-label": buttonAriaLabel,
|
|
70
|
+
component: "label",
|
|
71
|
+
disabled,
|
|
72
|
+
onClick: openDialog,
|
|
73
|
+
startIcon: buttonIcon,
|
|
74
|
+
children: buttonText
|
|
75
|
+
}
|
|
76
|
+
)
|
|
77
|
+
] });
|
|
69
78
|
};
|
|
70
79
|
|
|
71
80
|
export { KubernetesDialog };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KubernetesDialog.esm.js","sources":["../../../src/components/KubernetesDialog/KubernetesDialog.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport IconButton from '@material-ui/core/IconButton';\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles';\nimport CloseIcon from '@material-ui/icons/Close';\nimport
|
|
1
|
+
{"version":3,"file":"KubernetesDialog.esm.js","sources":["../../../src/components/KubernetesDialog/KubernetesDialog.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport IconButton from '@material-ui/core/IconButton';\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { ReactNode, useState } from 'react';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialogPaper: { minHeight: 'calc(100% - 64px)' },\n dialogContent: { flexBasis: 0 },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n },\n }),\n);\n\nexport interface KubernetesDialogProps {\n buttonAriaLabel: string;\n buttonIcon: ReactNode;\n buttonText: string;\n children?: ReactNode;\n disabled?: boolean;\n title: string;\n}\n\n/**\n * Dialog component for use in the Kubernetes plugin\n *\n * @public\n */\nexport const KubernetesDialog = ({\n buttonAriaLabel,\n buttonIcon,\n buttonText,\n children,\n disabled,\n title,\n}: KubernetesDialogProps) => {\n const classes = useStyles();\n\n const [open, setOpen] = useState(false);\n const openDialog = () => {\n setOpen(true);\n };\n const closeDialog = () => {\n setOpen(false);\n };\n\n return (\n <>\n <Dialog\n maxWidth=\"xl\"\n fullWidth\n open={open}\n onClose={closeDialog}\n PaperProps={{ className: classes.dialogPaper }}\n >\n <DialogTitle id=\"dialog-title\">\n {title}\n <IconButton\n aria-label=\"close\"\n className={classes.closeButton}\n onClick={closeDialog}\n >\n <CloseIcon />\n </IconButton>\n </DialogTitle>\n <DialogContent className={classes.dialogContent}>\n {children}\n </DialogContent>\n </Dialog>\n <Button\n variant=\"outlined\"\n aria-label={buttonAriaLabel}\n component=\"label\"\n disabled={disabled}\n onClick={openDialog}\n startIcon={buttonIcon}\n >\n {buttonText}\n </Button>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AAyBA,MAAM,SAAY,GAAA,UAAA;AAAA,EAAW,CAAC,UAC5B,YAAa,CAAA;AAAA,IACX,WAAA,EAAa,EAAE,SAAA,EAAW,mBAAoB,EAAA;AAAA,IAC9C,aAAA,EAAe,EAAE,SAAA,EAAW,CAAE,EAAA;AAAA,IAC9B,WAAa,EAAA;AAAA,MACX,QAAU,EAAA,UAAA;AAAA,MACV,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,MACtB,GAAA,EAAK,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,MACpB,KAAO,EAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,CAAK,GAAG;AAAA;AAC/B,GACD;AACH,CAAA;AAgBO,MAAM,mBAAmB,CAAC;AAAA,EAC/B,eAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAA6B,KAAA;AAC3B,EAAA,MAAM,UAAU,SAAU,EAAA;AAE1B,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAS,KAAK,CAAA;AACtC,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,GACd;AACA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,GACf;AAEA,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAS,EAAA,IAAA;AAAA,QACT,SAAS,EAAA,IAAA;AAAA,QACT,IAAA;AAAA,QACA,OAAS,EAAA,WAAA;AAAA,QACT,UAAY,EAAA,EAAE,SAAW,EAAA,OAAA,CAAQ,WAAY,EAAA;AAAA,QAE7C,QAAA,EAAA;AAAA,0BAAC,IAAA,CAAA,WAAA,EAAA,EAAY,IAAG,cACb,EAAA,QAAA,EAAA;AAAA,YAAA,KAAA;AAAA,4BACD,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,YAAW,EAAA,OAAA;AAAA,gBACX,WAAW,OAAQ,CAAA,WAAA;AAAA,gBACnB,OAAS,EAAA,WAAA;AAAA,gBAET,8BAAC,SAAU,EAAA,EAAA;AAAA;AAAA;AACb,WACF,EAAA,CAAA;AAAA,0BACC,GAAA,CAAA,aAAA,EAAA,EAAc,SAAW,EAAA,OAAA,CAAQ,eAC/B,QACH,EAAA;AAAA;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAQ,EAAA,UAAA;AAAA,QACR,YAAY,EAAA,eAAA;AAAA,QACZ,SAAU,EAAA,OAAA;AAAA,QACV,QAAA;AAAA,QACA,OAAS,EAAA,UAAA;AAAA,QACT,SAAW,EAAA,UAAA;AAAA,QAEV,QAAA,EAAA;AAAA;AAAA;AACH,GACF,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import Drawer from '@material-ui/core/Drawer';
|
|
3
4
|
import Grid from '@material-ui/core/Grid';
|
|
4
5
|
import IconButton from '@material-ui/core/IconButton';
|
|
@@ -33,31 +34,42 @@ const KubernetesDrawerContent = ({
|
|
|
33
34
|
}) => {
|
|
34
35
|
const classes = useDrawerContentStyles();
|
|
35
36
|
const [isYaml, setIsYaml] = useState(false);
|
|
36
|
-
return /* @__PURE__ */
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
37
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
38
|
+
/* @__PURE__ */ jsx("div", { className: classes.header, children: /* @__PURE__ */ jsxs(Grid, { container: true, justifyContent: "flex-start", alignItems: "flex-start", children: [
|
|
39
|
+
/* @__PURE__ */ jsx(Grid, { item: true, xs: 11, children: /* @__PURE__ */ jsx(Typography, { variant: "h5", children: kubernetesObject.metadata?.name }) }),
|
|
40
|
+
/* @__PURE__ */ jsx(Grid, { item: true, xs: 1, children: /* @__PURE__ */ jsx(
|
|
41
|
+
IconButton,
|
|
42
|
+
{
|
|
43
|
+
title: "Close the drawer",
|
|
44
|
+
onClick: () => close(),
|
|
45
|
+
color: "inherit",
|
|
46
|
+
children: /* @__PURE__ */ jsx(CloseIcon, { className: classes.icon })
|
|
47
|
+
},
|
|
48
|
+
"dismiss"
|
|
49
|
+
) }),
|
|
50
|
+
/* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: header }),
|
|
51
|
+
/* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(
|
|
52
|
+
FormControlLabel,
|
|
50
53
|
{
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
control: /* @__PURE__ */ jsx(
|
|
55
|
+
Switch,
|
|
56
|
+
{
|
|
57
|
+
checked: isYaml,
|
|
58
|
+
onChange: (event) => {
|
|
59
|
+
setIsYaml(event.target.checked);
|
|
60
|
+
},
|
|
61
|
+
name: "YAML"
|
|
62
|
+
}
|
|
63
|
+
),
|
|
64
|
+
label: "YAML"
|
|
56
65
|
}
|
|
57
|
-
)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
66
|
+
) })
|
|
67
|
+
] }) }),
|
|
68
|
+
/* @__PURE__ */ jsxs("div", { className: classes.content, children: [
|
|
69
|
+
isYaml && /* @__PURE__ */ jsx(ManifestYaml, { object: kubernetesObject }),
|
|
70
|
+
!isYaml && children
|
|
71
|
+
] })
|
|
72
|
+
] });
|
|
61
73
|
};
|
|
62
74
|
const useDrawerStyles = makeStyles(
|
|
63
75
|
(theme) => createStyles({
|
|
@@ -89,27 +101,30 @@ const KubernetesDrawer = ({
|
|
|
89
101
|
e.stopPropagation();
|
|
90
102
|
setIsOpen(newValue);
|
|
91
103
|
};
|
|
92
|
-
return /* @__PURE__ */
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
paper: classes.paper
|
|
97
|
-
},
|
|
98
|
-
anchor: "right",
|
|
99
|
-
open: isOpen,
|
|
100
|
-
onClose: (e) => toggleDrawer(e, false),
|
|
101
|
-
onClick: (event) => event.stopPropagation()
|
|
102
|
-
},
|
|
103
|
-
isOpen && /* @__PURE__ */ React__default.createElement(
|
|
104
|
-
KubernetesDrawerContent,
|
|
104
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
105
|
+
/* @__PURE__ */ jsx(DrawerButton, { onClick: () => setIsOpen(true), children: label }),
|
|
106
|
+
/* @__PURE__ */ jsx(
|
|
107
|
+
Drawer,
|
|
105
108
|
{
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
109
|
+
classes: {
|
|
110
|
+
paper: classes.paper
|
|
111
|
+
},
|
|
112
|
+
anchor: "right",
|
|
113
|
+
open: isOpen,
|
|
114
|
+
onClose: (e) => toggleDrawer(e, false),
|
|
115
|
+
onClick: (event) => event.stopPropagation(),
|
|
116
|
+
children: isOpen && /* @__PURE__ */ jsx(
|
|
117
|
+
KubernetesDrawerContent,
|
|
118
|
+
{
|
|
119
|
+
header: drawerContentsHeader,
|
|
120
|
+
kubernetesObject,
|
|
121
|
+
children,
|
|
122
|
+
close: () => setIsOpen(false)
|
|
123
|
+
}
|
|
124
|
+
)
|
|
110
125
|
}
|
|
111
126
|
)
|
|
112
|
-
)
|
|
127
|
+
] });
|
|
113
128
|
};
|
|
114
129
|
|
|
115
130
|
export { KubernetesDrawer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KubernetesDrawer.esm.js","sources":["../../../src/components/KubernetesDrawer/KubernetesDrawer.tsx"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport
|
|
1
|
+
{"version":3,"file":"KubernetesDrawer.esm.js","sources":["../../../src/components/KubernetesDrawer/KubernetesDrawer.tsx"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ReactNode, ChangeEvent, useState } from 'react';\n\nimport { IObjectMeta } from '@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta';\nimport Drawer from '@material-ui/core/Drawer';\nimport Grid from '@material-ui/core/Grid';\nimport IconButton from '@material-ui/core/IconButton';\nimport Switch from '@material-ui/core/Switch';\nimport Typography from '@material-ui/core/Typography';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport {\n createStyles,\n makeStyles,\n Theme,\n withStyles,\n} from '@material-ui/core/styles';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { ManifestYaml } from './ManifestYaml';\n\nconst useDrawerContentStyles = makeStyles((_theme: Theme) =>\n createStyles({\n header: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n content: {\n height: '80%',\n },\n icon: {\n fontSize: 20,\n },\n }),\n);\n\n/**\n * The type of object that can be represented by the Drawer\n *\n * @public\n */\nexport interface KubernetesObject {\n kind: string;\n metadata?: IObjectMeta;\n}\n\ninterface KubernetesDrawerContentProps {\n close: () => void;\n kubernetesObject: KubernetesObject;\n header?: ReactNode;\n children?: ReactNode;\n}\n\nconst KubernetesDrawerContent = ({\n children,\n header,\n kubernetesObject,\n close,\n}: KubernetesDrawerContentProps) => {\n const classes = useDrawerContentStyles();\n const [isYaml, setIsYaml] = useState<boolean>(false);\n\n return (\n <>\n <div className={classes.header}>\n <Grid container justifyContent=\"flex-start\" alignItems=\"flex-start\">\n <Grid item xs={11}>\n <Typography variant=\"h5\">\n {kubernetesObject.metadata?.name}\n </Typography>\n </Grid>\n <Grid item xs={1}>\n <IconButton\n key=\"dismiss\"\n title=\"Close the drawer\"\n onClick={() => close()}\n color=\"inherit\"\n >\n <CloseIcon className={classes.icon} />\n </IconButton>\n </Grid>\n <Grid item xs={12}>\n {header}\n </Grid>\n <Grid item xs={12}>\n <FormControlLabel\n control={\n <Switch\n checked={isYaml}\n onChange={event => {\n setIsYaml(event.target.checked);\n }}\n name=\"YAML\"\n />\n }\n label=\"YAML\"\n />\n </Grid>\n </Grid>\n </div>\n <div className={classes.content}>\n {isYaml && <ManifestYaml object={kubernetesObject} />}\n {!isYaml && children}\n </div>\n </>\n );\n};\n\n/**\n * Props of KubernetesDrawer\n *\n * @public\n */\nexport interface KubernetesDrawerProps {\n open?: boolean;\n kubernetesObject: KubernetesObject;\n label: ReactNode;\n drawerContentsHeader?: ReactNode;\n children?: ReactNode;\n}\n\nconst useDrawerStyles = makeStyles((theme: Theme) =>\n createStyles({\n paper: {\n width: '50%',\n justifyContent: 'space-between',\n padding: theme.spacing(2.5),\n },\n }),\n);\n\nconst DrawerButton = withStyles({\n root: {\n padding: '6px 5px',\n },\n label: {\n textTransform: 'none',\n },\n})(Button);\n\n/**\n * Button/Drawer component for Kubernetes Objects\n *\n * @public\n */\nexport const KubernetesDrawer = ({\n open,\n label,\n drawerContentsHeader,\n kubernetesObject,\n children,\n}: KubernetesDrawerProps) => {\n const classes = useDrawerStyles();\n const [isOpen, setIsOpen] = useState<boolean>(open ?? false);\n\n const toggleDrawer = (e: ChangeEvent<{}>, newValue: boolean) => {\n e.stopPropagation();\n setIsOpen(newValue);\n };\n\n return (\n <>\n <DrawerButton onClick={() => setIsOpen(true)}>{label}</DrawerButton>\n <Drawer\n classes={{\n paper: classes.paper,\n }}\n anchor=\"right\"\n open={isOpen}\n onClose={(e: any) => toggleDrawer(e, false)}\n onClick={event => event.stopPropagation()}\n >\n {isOpen && (\n <KubernetesDrawerContent\n header={drawerContentsHeader}\n kubernetesObject={kubernetesObject}\n children={children}\n close={() => setIsOpen(false)}\n />\n )}\n </Drawer>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|