@pagerduty/backstage-plugin 0.15.9 → 0.15.10-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +36 -0
  2. package/package.json +32 -19
  3. package/assets/PD-Green.svg +0 -21
  4. package/assets/PD-Icon.svg +0 -13
  5. package/assets/PD-White.svg +0 -21
  6. package/assets/emptystate.svg +0 -6
  7. package/assets/forbiddenstate.svg +0 -25
  8. package/dist/api/client.esm.js +0 -225
  9. package/dist/api/client.esm.js.map +0 -1
  10. package/dist/assets/PD-Green.svg +0 -21
  11. package/dist/assets/PD-Icon.svg +0 -13
  12. package/dist/assets/PD-White.svg +0 -21
  13. package/dist/assets/emptystate.svg +0 -6
  14. package/dist/assets/forbiddenstate.svg +0 -25
  15. package/dist/components/ChangeEvents/ChangeEventEmptyState.esm.js +0 -29
  16. package/dist/components/ChangeEvents/ChangeEventEmptyState.esm.js.map +0 -1
  17. package/dist/components/ChangeEvents/ChangeEventForbiddenState.esm.js +0 -29
  18. package/dist/components/ChangeEvents/ChangeEventForbiddenState.esm.js.map +0 -1
  19. package/dist/components/ChangeEvents/ChangeEventListItem.esm.js +0 -82
  20. package/dist/components/ChangeEvents/ChangeEventListItem.esm.js.map +0 -1
  21. package/dist/components/ChangeEvents/ChangeEvents.esm.js +0 -52
  22. package/dist/components/ChangeEvents/ChangeEvents.esm.js.map +0 -1
  23. package/dist/components/EntityPagerDutyCard/index.esm.js +0 -26
  24. package/dist/components/EntityPagerDutyCard/index.esm.js.map +0 -1
  25. package/dist/components/EntityPagerDutySmallCard/index.esm.js +0 -26
  26. package/dist/components/EntityPagerDutySmallCard/index.esm.js.map +0 -1
  27. package/dist/components/Errors/ForbiddenError.esm.js +0 -24
  28. package/dist/components/Errors/ForbiddenError.esm.js.map +0 -1
  29. package/dist/components/Errors/MissingTokenError.esm.js +0 -24
  30. package/dist/components/Errors/MissingTokenError.esm.js.map +0 -1
  31. package/dist/components/Errors/ServiceNotFoundError.esm.js +0 -24
  32. package/dist/components/Errors/ServiceNotFoundError.esm.js.map +0 -1
  33. package/dist/components/Escalation/EscalationPolicy.esm.js +0 -61
  34. package/dist/components/Escalation/EscalationPolicy.esm.js.map +0 -1
  35. package/dist/components/Escalation/EscalationUser.esm.js +0 -107
  36. package/dist/components/Escalation/EscalationUser.esm.js.map +0 -1
  37. package/dist/components/Escalation/EscalationUsersEmptyState.esm.js +0 -23
  38. package/dist/components/Escalation/EscalationUsersEmptyState.esm.js.map +0 -1
  39. package/dist/components/Escalation/EscalationUsersForbiddenState.esm.js +0 -23
  40. package/dist/components/Escalation/EscalationUsersForbiddenState.esm.js.map +0 -1
  41. package/dist/components/HomePagePagerDutyCard/Content.esm.js +0 -9
  42. package/dist/components/HomePagePagerDutyCard/Content.esm.js.map +0 -1
  43. package/dist/components/HomePagePagerDutyCard/index.esm.js +0 -2
  44. package/dist/components/HomePagePagerDutyCard/index.esm.js.map +0 -1
  45. package/dist/components/Icons/index.esm.js +0 -9
  46. package/dist/components/Icons/index.esm.js.map +0 -1
  47. package/dist/components/Incident/IncidentEmptyState.esm.js +0 -29
  48. package/dist/components/Incident/IncidentEmptyState.esm.js.map +0 -1
  49. package/dist/components/Incident/IncidentForbiddenState.esm.js +0 -29
  50. package/dist/components/Incident/IncidentForbiddenState.esm.js.map +0 -1
  51. package/dist/components/Incident/IncidentListItem.esm.js +0 -126
  52. package/dist/components/Incident/IncidentListItem.esm.js.map +0 -1
  53. package/dist/components/Incident/Incidents.esm.js +0 -46
  54. package/dist/components/Incident/Incidents.esm.js.map +0 -1
  55. package/dist/components/PagerDutyCard/index.esm.js +0 -239
  56. package/dist/components/PagerDutyCard/index.esm.js.map +0 -1
  57. package/dist/components/PagerDutyCardCommon/InsightsCard.esm.js +0 -41
  58. package/dist/components/PagerDutyCardCommon/InsightsCard.esm.js.map +0 -1
  59. package/dist/components/PagerDutyCardCommon/OpenServiceButton.esm.js +0 -48
  60. package/dist/components/PagerDutyCardCommon/OpenServiceButton.esm.js.map +0 -1
  61. package/dist/components/PagerDutyCardCommon/ServiceStandardsCard.esm.js +0 -113
  62. package/dist/components/PagerDutyCardCommon/ServiceStandardsCard.esm.js.map +0 -1
  63. package/dist/components/PagerDutyCardCommon/StatusCard.esm.js +0 -109
  64. package/dist/components/PagerDutyCardCommon/StatusCard.esm.js.map +0 -1
  65. package/dist/components/PagerDutyCardCommon/TriggerIncidentButton.esm.js +0 -71
  66. package/dist/components/PagerDutyCardCommon/TriggerIncidentButton.esm.js.map +0 -1
  67. package/dist/components/PagerDutyPage/MappingTable.esm.js +0 -271
  68. package/dist/components/PagerDutyPage/MappingTable.esm.js.map +0 -1
  69. package/dist/components/PagerDutyPage/ServiceMappingComponent.esm.js +0 -50
  70. package/dist/components/PagerDutyPage/ServiceMappingComponent.esm.js.map +0 -1
  71. package/dist/components/PagerDutyPage/index.esm.js +0 -152
  72. package/dist/components/PagerDutyPage/index.esm.js.map +0 -1
  73. package/dist/components/PagerDutySmallCard/index.esm.js +0 -247
  74. package/dist/components/PagerDutySmallCard/index.esm.js.map +0 -1
  75. package/dist/components/TriggerButton/index.esm.js +0 -51
  76. package/dist/components/TriggerButton/index.esm.js.map +0 -1
  77. package/dist/components/TriggerDialog/TriggerDialog.esm.js +0 -116
  78. package/dist/components/TriggerDialog/TriggerDialog.esm.js.map +0 -1
  79. package/dist/components/constants.esm.js +0 -6
  80. package/dist/components/constants.esm.js.map +0 -1
  81. package/dist/components/pagerDutyEntity.esm.js +0 -14
  82. package/dist/components/pagerDutyEntity.esm.js.map +0 -1
  83. package/dist/deprecated.esm.js +0 -10
  84. package/dist/deprecated.esm.js.map +0 -1
  85. package/dist/hooks/index.esm.js +0 -10
  86. package/dist/hooks/index.esm.js.map +0 -1
  87. package/dist/index.d.ts +0 -182
  88. package/dist/index.esm.js +0 -8
  89. package/dist/index.esm.js.map +0 -1
  90. package/dist/plugin.esm.js +0 -78
  91. package/dist/plugin.esm.js.map +0 -1
@@ -1,41 +0,0 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { makeStyles, Card, Typography } from '@material-ui/core';
3
- import validateColor from 'validate-color';
4
-
5
- function IncidentCounterCard({ count, label, color, compact }) {
6
- const textColor = color && validateColor(color) ? color : "black";
7
- const useStyles = makeStyles(() => ({
8
- cardStyle: {
9
- marginRight: "10px",
10
- height: compact !== true ? "120px" : "80px",
11
- display: "flex",
12
- alignItems: "center",
13
- justifyContent: "center",
14
- backgroundColor: "rgba(0, 0, 0, 0.03)"
15
- },
16
- largeTextStyle: {
17
- color: textColor,
18
- fontSize: "30px",
19
- marginTop: "-10px"
20
- },
21
- smallTextStyle: {
22
- color: textColor,
23
- fontWeight: "bold",
24
- fontSize: "10px",
25
- marginTop: "-5px",
26
- textTransform: "uppercase",
27
- flexWrap: "wrap"
28
- }
29
- }));
30
- const { cardStyle, largeTextStyle, smallTextStyle } = useStyles();
31
- return /* @__PURE__ */ jsx(Card, { className: cardStyle, children: count !== void 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
32
- /* @__PURE__ */ jsx(Typography, { className: largeTextStyle, children: count }),
33
- /* @__PURE__ */ jsx(Typography, { className: smallTextStyle, children: label })
34
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
35
- /* @__PURE__ */ jsx(Typography, { className: largeTextStyle, children: "-" }),
36
- /* @__PURE__ */ jsx(Typography, { className: smallTextStyle, children: label })
37
- ] }) });
38
- }
39
-
40
- export { IncidentCounterCard as default };
41
- //# sourceMappingURL=InsightsCard.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InsightsCard.esm.js","sources":["../../../src/components/PagerDutyCardCommon/InsightsCard.tsx"],"sourcesContent":["import { BackstageTheme } from '@backstage/theme';\nimport { Card, Typography, makeStyles } from '@material-ui/core';\nimport validateColor from 'validate-color';\n\ntype Props = {\n count: number | undefined;\n label: string;\n color: string;\n compact?: boolean;\n};\n\nfunction IncidentCounterCard({ count, label, color, compact }: Props) {\n const textColor = color && validateColor(color) ? color : 'black';\n\n const useStyles = makeStyles<BackstageTheme>(() => ({\n cardStyle: {\n marginRight: '10px',\n height: compact !== true ? '120px' : '80px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n },\n largeTextStyle: {\n color: textColor,\n fontSize: '30px',\n marginTop: '-10px',\n },\n smallTextStyle: {\n color: textColor,\n fontWeight: 'bold',\n fontSize: '10px',\n marginTop: '-5px',\n textTransform: 'uppercase',\n flexWrap: 'wrap',\n },\n }));\n\n const { cardStyle, largeTextStyle, smallTextStyle } = useStyles();\n\n return (\n <Card className={cardStyle}>\n {count !== undefined ? (\n <>\n <Typography className={largeTextStyle}>{count}</Typography>\n <Typography className={smallTextStyle}>{label}</Typography>\n </>\n ) : (\n <>\n <Typography className={largeTextStyle}>-</Typography>\n <Typography className={smallTextStyle}>{label}</Typography>\n </>\n )}\n </Card>\n );\n}\n\nexport default IncidentCounterCard;\n"],"names":[],"mappings":";;;;AAWA,SAAS,oBAAoB,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,SAAQ,EAAU;AACpE,EAAA,MAAM,SAAA,GAAY,KAAA,IAAS,aAAA,CAAc,KAAK,IAAI,KAAA,GAAQ,OAAA;AAE1D,EAAA,MAAM,SAAA,GAAY,WAA2B,OAAO;AAAA,IAClD,SAAA,EAAW;AAAA,MACT,WAAA,EAAa,MAAA;AAAA,MACb,MAAA,EAAQ,OAAA,KAAY,IAAA,GAAO,OAAA,GAAU,MAAA;AAAA,MACrC,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,MAAA;AAAA,MACV,SAAA,EAAW;AAAA,KACb;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,KAAA,EAAO,SAAA;AAAA,MACP,UAAA,EAAY,MAAA;AAAA,MACZ,QAAA,EAAU,MAAA;AAAA,MACV,SAAA,EAAW,MAAA;AAAA,MACX,aAAA,EAAe,WAAA;AAAA,MACf,QAAA,EAAU;AAAA;AACZ,GACF,CAAE,CAAA;AAEF,EAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,cAAA,KAAmB,SAAA,EAAU;AAEhE,EAAA,2BACG,IAAA,EAAA,EAAK,SAAA,EAAW,SAAA,EACd,QAAA,EAAA,KAAA,KAAU,yBACT,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,cAAA,EAAiB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBAC9C,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,cAAA,EAAiB,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAChD,oBAEA,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,cAAA,EAAgB,QAAA,EAAA,GAAA,EAAC,CAAA;AAAA,oBACxC,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,cAAA,EAAiB,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAChD,CAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -1,48 +0,0 @@
1
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
- import { makeStyles, IconButton, Typography } from '@material-ui/core';
3
- import OpenInBrowserIcon from '@material-ui/icons/OpenInBrowser';
4
-
5
- function OpenServiceButton({
6
- serviceUrl,
7
- compact
8
- }) {
9
- const useStyles = makeStyles((theme) => ({
10
- buttonStyle: {
11
- color: theme.palette.text.primary,
12
- "&:hover": {
13
- backgroundColor: "transparent",
14
- textDecoration: "underline"
15
- }
16
- },
17
- containerStyle: {
18
- fontSize: compact !== true ? "12px" : "10px",
19
- width: compact !== true ? "85px" : "70px"
20
- },
21
- iconStyle: {
22
- fontSize: "30px",
23
- marginBottom: "-10px"
24
- },
25
- textStyle: {
26
- marginBottom: "-10px"
27
- }
28
- }));
29
- const { buttonStyle, containerStyle, iconStyle, textStyle } = useStyles();
30
- function navigateToService() {
31
- window.open(serviceUrl, "_blank");
32
- }
33
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
34
- IconButton,
35
- {
36
- "aria-label": "open-service-in-browser",
37
- onClick: navigateToService,
38
- className: buttonStyle,
39
- children: /* @__PURE__ */ jsxs("div", { className: containerStyle, children: [
40
- /* @__PURE__ */ jsx(OpenInBrowserIcon, { className: iconStyle }),
41
- /* @__PURE__ */ jsx(Typography, { className: textStyle, children: "Open service in PagerDuty" })
42
- ] })
43
- }
44
- ) });
45
- }
46
-
47
- export { OpenServiceButton };
48
- //# sourceMappingURL=OpenServiceButton.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OpenServiceButton.esm.js","sources":["../../../src/components/PagerDutyCardCommon/OpenServiceButton.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 */\n\n// eslint-disable-next-line @backstage/no-undeclared-imports\nimport { makeStyles, IconButton, Typography } from '@material-ui/core';\nimport { BackstageTheme } from '@backstage/theme';\n\nimport OpenInBrowser from '@material-ui/icons/OpenInBrowser';\n\ntype OpenServiceButtonProps = {\n serviceUrl: string;\n compact?: boolean;\n};\n\n/** @public */\nexport function OpenServiceButton({\n serviceUrl,\n compact,\n}: OpenServiceButtonProps) {\n const useStyles = makeStyles<BackstageTheme>(theme => ({\n buttonStyle: {\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor: 'transparent',\n textDecoration: 'underline',\n },\n },\n containerStyle: {\n fontSize: compact !== true ? '12px' : '10px',\n width: compact !== true ? '85px' : '70px',\n },\n iconStyle: {\n fontSize: '30px',\n marginBottom: '-10px',\n },\n textStyle: {\n marginBottom: '-10px',\n },\n }));\n\n const { buttonStyle, containerStyle, iconStyle, textStyle } = useStyles();\n\n function navigateToService() {\n window.open(serviceUrl, '_blank');\n }\n\n return (\n <>\n <IconButton\n aria-label=\"open-service-in-browser\"\n onClick={navigateToService}\n className={buttonStyle}\n >\n <div className={containerStyle}>\n <OpenInBrowser className={iconStyle} />\n <Typography className={textStyle}>\n Open service in PagerDuty\n </Typography>\n </div>\n </IconButton>\n </>\n );\n}\n"],"names":["OpenInBrowser"],"mappings":";;;;AA4BO,SAAS,iBAAA,CAAkB;AAAA,EAChC,UAAA;AAAA,EACA;AACF,CAAA,EAA2B;AACzB,EAAA,MAAM,SAAA,GAAY,WAA2B,CAAA,KAAA,MAAU;AAAA,IACrD,WAAA,EAAa;AAAA,MACX,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,OAAA;AAAA,MAC1B,SAAA,EAAW;AAAA,QACT,eAAA,EAAiB,aAAA;AAAA,QACjB,cAAA,EAAgB;AAAA;AAClB,KACF;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,QAAA,EAAU,OAAA,KAAY,IAAA,GAAO,MAAA,GAAS,MAAA;AAAA,MACtC,KAAA,EAAO,OAAA,KAAY,IAAA,GAAO,MAAA,GAAS;AAAA,KACrC;AAAA,IACA,SAAA,EAAW;AAAA,MACT,QAAA,EAAU,MAAA;AAAA,MACV,YAAA,EAAc;AAAA,KAChB;AAAA,IACA,SAAA,EAAW;AAAA,MACT,YAAA,EAAc;AAAA;AAChB,GACF,CAAE,CAAA;AAEF,EAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,SAAA,EAAW,SAAA,KAAc,SAAA,EAAU;AAExE,EAAA,SAAS,iBAAA,GAAoB;AAC3B,IAAA,MAAA,CAAO,IAAA,CAAK,YAAY,QAAQ,CAAA;AAAA,EAClC;AAEA,EAAA,uBACE,GAAA,CAAA,QAAA,EAAA,EACE,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,yBAAA;AAAA,MACX,OAAA,EAAS,iBAAA;AAAA,MACT,SAAA,EAAW,WAAA;AAAA,MAEX,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,cAAA,EACd,QAAA,EAAA;AAAA,wBAAA,GAAA,CAACA,iBAAA,EAAA,EAAc,WAAW,SAAA,EAAW,CAAA;AAAA,wBACrC,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,SAAA,EAAW,QAAA,EAAA,2BAAA,EAElC;AAAA,OAAA,EACF;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
@@ -1,113 +0,0 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { makeStyles, withStyles, LinearProgress, Card, Typography, IconButton, Tooltip } from '@material-ui/core';
3
- import InfoIcon from '@material-ui/icons/Info';
4
- import CheckCircle from '@material-ui/icons/CheckCircle';
5
- import RadioButtonUncheckedIcon from '@material-ui/icons/RadioButtonUnchecked';
6
-
7
- function colorFromPercentage(theme, percentage) {
8
- if (percentage < 0.5) {
9
- return theme.palette.error.main;
10
- } else if (percentage < 0.8) {
11
- return theme.palette.warning.main;
12
- }
13
- return theme.palette.success.main;
14
- }
15
- function ServiceStandardsCard({ total, completed, standards, compact }) {
16
- const useStyles = makeStyles((theme) => ({
17
- cardStyle: {
18
- height: compact !== true ? "120px" : "80px",
19
- display: "grid",
20
- gridTemplateRows: "1fr auto auto",
21
- backgroundColor: "rgba(0, 0, 0, 0.03)"
22
- },
23
- containerStyle: {
24
- display: "flex",
25
- justifyContent: "center",
26
- marginTop: compact !== true ? "-100px" : "-50px"
27
- },
28
- largeTextStyle: {
29
- fontSize: compact !== true ? "50px" : "40px",
30
- color: completed !== void 0 && total !== void 0 ? colorFromPercentage(theme, completed / total) : colorFromPercentage(theme, 0),
31
- alignSelf: "center",
32
- justifyContent: "center"
33
- },
34
- smallTextStyle: {
35
- color: theme.palette.textSubtle,
36
- fontSize: compact !== true ? "14px" : "12px",
37
- fontWeight: "bold",
38
- alignSelf: "center",
39
- justifyContent: "center",
40
- marginLeft: "-2px",
41
- marginTop: compact !== true ? "25px" : "20px"
42
- },
43
- tooltipContainer: {},
44
- tooltipIcon: {
45
- marginRight: "5px"
46
- },
47
- standardItem: {
48
- display: "flex",
49
- alignItems: "center"
50
- }
51
- }));
52
- const BorderLinearProgress = withStyles((theme) => ({
53
- root: {
54
- height: 10,
55
- borderRadius: 5,
56
- margin: 5
57
- },
58
- colorPrimary: {
59
- backgroundColor: theme.palette.grey[theme.palette.type === "light" ? 200 : 700]
60
- },
61
- bar: {
62
- borderRadius: 5,
63
- backgroundColor: completed !== void 0 && total !== void 0 ? colorFromPercentage(theme, completed / total) : colorFromPercentage(theme, 0)
64
- }
65
- }))(LinearProgress);
66
- const {
67
- cardStyle,
68
- containerStyle,
69
- largeTextStyle,
70
- smallTextStyle,
71
- tooltipContainer,
72
- tooltipIcon,
73
- standardItem
74
- } = useStyles();
75
- if (standards === void 0 || completed === void 0 || total === void 0) {
76
- return /* @__PURE__ */ jsx(Card, { className: cardStyle, children: /* @__PURE__ */ jsx("div", { className: containerStyle, children: /* @__PURE__ */ jsx(Typography, { className: smallTextStyle, children: "Unable to retrieve Scores" }) }) });
77
- }
78
- return /* @__PURE__ */ jsx(Card, { className: cardStyle, children: completed !== void 0 && total !== void 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
79
- /* @__PURE__ */ jsx("div", { className: tooltipContainer, children: /* @__PURE__ */ jsx(IconButton, { children: /* @__PURE__ */ jsx(
80
- Tooltip,
81
- {
82
- interactive: true,
83
- title: /* @__PURE__ */ jsx(Fragment, { children: standards?.map((standard, key) => /* @__PURE__ */ jsx(Typography, { children: standard.pass ? /* @__PURE__ */ jsxs(Typography, { className: standardItem, children: [
84
- /* @__PURE__ */ jsx(CheckCircle, { className: tooltipIcon }),
85
- " ",
86
- standard.name
87
- ] }) : /* @__PURE__ */ jsxs(Typography, { className: standardItem, children: [
88
- /* @__PURE__ */ jsx(RadioButtonUncheckedIcon, { className: tooltipIcon }),
89
- " ",
90
- standard.name
91
- ] }) }, key)) }),
92
- children: /* @__PURE__ */ jsx(InfoIcon, {})
93
- }
94
- ) }) }),
95
- /* @__PURE__ */ jsxs("div", { className: containerStyle, children: [
96
- /* @__PURE__ */ jsx(Typography, { className: largeTextStyle, children: completed }),
97
- /* @__PURE__ */ jsxs(Typography, { className: smallTextStyle, children: [
98
- "/",
99
- total
100
- ] })
101
- ] }),
102
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
103
- BorderLinearProgress,
104
- {
105
- variant: "determinate",
106
- value: completed / total * 100
107
- }
108
- ) })
109
- ] }) : /* @__PURE__ */ jsx("div", { className: containerStyle, children: /* @__PURE__ */ jsx(Typography, { className: smallTextStyle, children: "Unable to retrieve Scores" }) }) });
110
- }
111
-
112
- export { ServiceStandardsCard as default };
113
- //# sourceMappingURL=ServiceStandardsCard.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceStandardsCard.esm.js","sources":["../../../src/components/PagerDutyCardCommon/ServiceStandardsCard.tsx"],"sourcesContent":["import { BackstageTheme } from '@backstage/theme';\nimport {\n Card,\n IconButton,\n LinearProgress,\n Theme,\n Tooltip,\n Typography,\n makeStyles,\n withStyles,\n} from '@material-ui/core';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { PagerDutyServiceStandard } from '@pagerduty/backstage-plugin-common';\nimport CheckCircle from '@material-ui/icons/CheckCircle';\nimport RadioButtonUncheckedIcon from '@material-ui/icons/RadioButtonUnchecked';\n\ntype Props = {\n total: number | undefined;\n completed: number | undefined;\n standards: PagerDutyServiceStandard[] | undefined;\n compact?: boolean;\n};\n\nfunction colorFromPercentage(theme: Theme, percentage: number) {\n if (percentage < 0.5) {\n return theme.palette.error.main;\n } else if (percentage < 0.8) {\n return theme.palette.warning.main;\n }\n return theme.palette.success.main;\n}\n\nfunction ServiceStandardsCard({ total, completed, standards, compact }: Props) {\n const useStyles = makeStyles<BackstageTheme>(theme => ({\n cardStyle: {\n height: compact !== true ? '120px' : '80px',\n display: 'grid',\n gridTemplateRows: '1fr auto auto',\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n },\n containerStyle: {\n display: 'flex',\n justifyContent: 'center',\n marginTop: compact !== true ? '-100px' : '-50px',\n },\n largeTextStyle: {\n fontSize: compact !== true ? '50px' : '40px',\n color:\n completed !== undefined && total !== undefined\n ? colorFromPercentage(theme, completed / total)\n : colorFromPercentage(theme, 0),\n alignSelf: 'center',\n justifyContent: 'center',\n },\n smallTextStyle: {\n color: theme.palette.textSubtle,\n fontSize: compact !== true ? '14px' : '12px',\n fontWeight: 'bold',\n alignSelf: 'center',\n justifyContent: 'center',\n marginLeft: '-2px',\n marginTop: compact !== true ? '25px' : '20px',\n },\n tooltipContainer: {},\n tooltipIcon: {\n marginRight: '5px',\n },\n standardItem: {\n display: 'flex',\n alignItems: 'center',\n },\n }));\n\n const BorderLinearProgress = withStyles(theme => ({\n root: {\n height: 10,\n borderRadius: 5,\n margin: 5,\n },\n colorPrimary: {\n backgroundColor:\n theme.palette.grey[theme.palette.type === 'light' ? 200 : 700],\n },\n bar: {\n borderRadius: 5,\n backgroundColor:\n completed !== undefined && total !== undefined\n ? colorFromPercentage(theme, completed / total)\n : colorFromPercentage(theme, 0),\n },\n }))(LinearProgress);\n\n const {\n cardStyle,\n containerStyle,\n largeTextStyle,\n smallTextStyle,\n tooltipContainer,\n tooltipIcon,\n standardItem,\n } = useStyles();\n\n if (\n standards === undefined ||\n completed === undefined ||\n total === undefined\n ) {\n return (\n <Card className={cardStyle}>\n <div className={containerStyle}>\n <Typography className={smallTextStyle}>\n Unable to retrieve Scores\n </Typography>\n </div>\n </Card>\n );\n }\n\n return (\n <Card className={cardStyle}>\n {completed !== undefined && total !== undefined ? (\n <>\n <div className={tooltipContainer}>\n <IconButton>\n <Tooltip\n interactive\n title={\n <>\n {standards?.map((standard, key) => (\n <Typography key={key}>\n {standard.pass ? (\n <Typography className={standardItem}>\n <CheckCircle className={tooltipIcon} />{' '}\n {standard.name}\n </Typography>\n ) : (\n <Typography className={standardItem}>\n <RadioButtonUncheckedIcon className={tooltipIcon} />{' '}\n {standard.name}\n </Typography>\n )}\n </Typography>\n ))}\n </>\n }\n >\n <InfoIcon />\n </Tooltip>\n </IconButton>\n </div>\n <div className={containerStyle}>\n <Typography className={largeTextStyle}>{completed}</Typography>\n <Typography className={smallTextStyle}>/{total}</Typography>\n </div>\n <div>\n <BorderLinearProgress\n variant=\"determinate\"\n value={(completed! / total!) * 100}\n />\n </div>\n </>\n ) : (\n <div className={containerStyle}>\n <Typography className={smallTextStyle}>\n Unable to retrieve Scores\n </Typography>\n </div>\n )}\n </Card>\n );\n}\n\nexport default ServiceStandardsCard;\n"],"names":[],"mappings":";;;;;;AAuBA,SAAS,mBAAA,CAAoB,OAAc,UAAA,EAAoB;AAC7D,EAAA,IAAI,aAAa,GAAA,EAAK;AACpB,IAAA,OAAO,KAAA,CAAM,QAAQ,KAAA,CAAM,IAAA;AAAA,EAC7B,CAAA,MAAA,IAAW,aAAa,GAAA,EAAK;AAC3B,IAAA,OAAO,KAAA,CAAM,QAAQ,OAAA,CAAQ,IAAA;AAAA,EAC/B;AACA,EAAA,OAAO,KAAA,CAAM,QAAQ,OAAA,CAAQ,IAAA;AAC/B;AAEA,SAAS,qBAAqB,EAAE,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW,SAAQ,EAAU;AAC7E,EAAA,MAAM,SAAA,GAAY,WAA2B,CAAA,KAAA,MAAU;AAAA,IACrD,SAAA,EAAW;AAAA,MACT,MAAA,EAAQ,OAAA,KAAY,IAAA,GAAO,OAAA,GAAU,MAAA;AAAA,MACrC,OAAA,EAAS,MAAA;AAAA,MACT,gBAAA,EAAkB,eAAA;AAAA,MAClB,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,OAAA,EAAS,MAAA;AAAA,MACT,cAAA,EAAgB,QAAA;AAAA,MAChB,SAAA,EAAW,OAAA,KAAY,IAAA,GAAO,QAAA,GAAW;AAAA,KAC3C;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,QAAA,EAAU,OAAA,KAAY,IAAA,GAAO,MAAA,GAAS,MAAA;AAAA,MACtC,KAAA,EACE,SAAA,KAAc,MAAA,IAAa,KAAA,KAAU,MAAA,GACjC,mBAAA,CAAoB,KAAA,EAAO,SAAA,GAAY,KAAK,CAAA,GAC5C,mBAAA,CAAoB,KAAA,EAAO,CAAC,CAAA;AAAA,MAClC,SAAA,EAAW,QAAA;AAAA,MACX,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,KAAA,EAAO,MAAM,OAAA,CAAQ,UAAA;AAAA,MACrB,QAAA,EAAU,OAAA,KAAY,IAAA,GAAO,MAAA,GAAS,MAAA;AAAA,MACtC,UAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,QAAA;AAAA,MACX,cAAA,EAAgB,QAAA;AAAA,MAChB,UAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,OAAA,KAAY,IAAA,GAAO,MAAA,GAAS;AAAA,KACzC;AAAA,IACA,kBAAkB,EAAC;AAAA,IACnB,WAAA,EAAa;AAAA,MACX,WAAA,EAAa;AAAA,KACf;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY;AAAA;AACd,GACF,CAAE,CAAA;AAEF,EAAA,MAAM,oBAAA,GAAuB,WAAW,CAAA,KAAA,MAAU;AAAA,IAChD,IAAA,EAAM;AAAA,MACJ,MAAA,EAAQ,EAAA;AAAA,MACR,YAAA,EAAc,CAAA;AAAA,MACd,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,eAAA,EACE,MAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,OAAA,CAAQ,IAAA,KAAS,OAAA,GAAU,GAAA,GAAM,GAAG;AAAA,KACjE;AAAA,IACA,GAAA,EAAK;AAAA,MACH,YAAA,EAAc,CAAA;AAAA,MACd,eAAA,EACE,SAAA,KAAc,MAAA,IAAa,KAAA,KAAU,MAAA,GACjC,mBAAA,CAAoB,KAAA,EAAO,SAAA,GAAY,KAAK,CAAA,GAC5C,mBAAA,CAAoB,KAAA,EAAO,CAAC;AAAA;AACpC,GACF,CAAE,EAAE,cAAc,CAAA;AAElB,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,gBAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,MACE,SAAA,EAAU;AAEd,EAAA,IACE,SAAA,KAAc,MAAA,IACd,SAAA,KAAc,MAAA,IACd,UAAU,MAAA,EACV;AACA,IAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,SAAA,EACf,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,cAAA,EACd,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,cAAA,EAAgB,QAAA,EAAA,2BAAA,EAEvC,GACF,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA,CAAC,QAAK,SAAA,EAAW,SAAA,EACd,wBAAc,MAAA,IAAa,KAAA,KAAU,yBACpC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,gBAAA,EACd,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAW,IAAA;AAAA,QACX,KAAA,kBACE,GAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA,SAAA,EAAW,GAAA,CAAI,CAAC,QAAA,EAAU,GAAA,qBACzB,GAAA,CAAC,UAAA,EAAA,EACE,QAAA,EAAA,QAAA,CAAS,IAAA,mBACR,IAAA,CAAC,UAAA,EAAA,EAAW,WAAW,YAAA,EACrB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,WAAA,EAAA,EAAY,WAAW,WAAA,EAAa,CAAA;AAAA,UAAG,GAAA;AAAA,UACvC,QAAA,CAAS;AAAA,SAAA,EACZ,CAAA,mBAEA,IAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,YAAA,EACrB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,wBAAA,EAAA,EAAyB,WAAW,WAAA,EAAa,CAAA;AAAA,UAAG,GAAA;AAAA,UACpD,QAAA,CAAS;AAAA,SAAA,EACZ,CAAA,EAAA,EAVa,GAYjB,CACD,CAAA,EACH,CAAA;AAAA,QAGF,8BAAC,QAAA,EAAA,EAAS;AAAA;AAAA,OAEd,CAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,cAAA,EACd,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,cAAA,EAAiB,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,sBAClD,IAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,cAAA,EAAgB,QAAA,EAAA;AAAA,QAAA,GAAA;AAAA,QAAE;AAAA,OAAA,EAAM;AAAA,KAAA,EACjD,CAAA;AAAA,wBACC,KAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,aAAA;AAAA,QACR,KAAA,EAAQ,YAAa,KAAA,GAAU;AAAA;AAAA,KACjC,EACF;AAAA,GAAA,EACF,CAAA,mBAEA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,cAAA,EACd,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,cAAA,EAAgB,QAAA,EAAA,2BAAA,EAEvC,CAAA,EACF,CAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -1,109 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { Typography, Card } from '@material-ui/core';
3
- import { useEffect } from 'react';
4
- import { makeStyles } from '@material-ui/core/styles';
5
- import { useApi } from '@backstage/core-plugin-api';
6
- import { pagerDutyApiRef } from '../../api/client.esm.js';
7
- import { useAsyncFn } from 'react-use';
8
- import Alert from '@material-ui/lab/Alert/Alert';
9
- import { Progress } from '@backstage/core-components';
10
-
11
- function labelFromStatus(status) {
12
- let label;
13
- switch (status) {
14
- case "active":
15
- label = "OK";
16
- break;
17
- case "warning":
18
- label = "ACTIVE";
19
- break;
20
- case "critical":
21
- label = "ALARM";
22
- break;
23
- case "maintenance":
24
- label = "MAINTENANCE";
25
- break;
26
- case "disabled":
27
- label = "DISABLED";
28
- break;
29
- default:
30
- label = "OK";
31
- break;
32
- }
33
- return label;
34
- }
35
- function colorFromStatus(theme, status) {
36
- let color;
37
- switch (status) {
38
- case "active":
39
- color = theme.palette.success.main;
40
- break;
41
- case "warning":
42
- color = theme.palette.warningBackground;
43
- break;
44
- case "critical":
45
- color = theme.palette.error.main;
46
- break;
47
- case "maintenance":
48
- color = "#ebdc00";
49
- break;
50
- case "disabled":
51
- color = "#A9A9A9";
52
- break;
53
- default:
54
- color = theme.palette.success.main;
55
- break;
56
- }
57
- return color;
58
- }
59
- function StatusCard({ serviceId, refreshStatus, account, compact }) {
60
- const api = useApi(pagerDutyApiRef);
61
- const [{ value: status, loading, error }, getStatus] = useAsyncFn(
62
- async () => {
63
- const { service: foundService } = await api.getServiceById(
64
- serviceId,
65
- account
66
- );
67
- return foundService.status;
68
- }
69
- );
70
- const useStyles = makeStyles((theme) => ({
71
- cardStyle: {
72
- height: compact !== true ? "120px" : "80px",
73
- display: "flex",
74
- alignItems: "center",
75
- justifyContent: "center",
76
- backgroundColor: status !== void 0 ? colorFromStatus(theme, status) : colorFromStatus(theme, "active"),
77
- marginRight: "10px"
78
- },
79
- largeTextStyle: {
80
- color: "white",
81
- fontWeight: "bold",
82
- fontSize: "20px",
83
- wordWrap: "break-word"
84
- }
85
- }));
86
- const { cardStyle, largeTextStyle } = useStyles();
87
- useEffect(() => {
88
- getStatus();
89
- }, [refreshStatus, getStatus]);
90
- if (error) {
91
- if (error.message.includes("Forbidden")) {
92
- return /* @__PURE__ */ jsx(Typography, { children: "forbidden" });
93
- }
94
- return /* @__PURE__ */ jsxs(Alert, { severity: "error", children: [
95
- "Error encountered while fetching information. ",
96
- error.message
97
- ] });
98
- }
99
- if (loading) {
100
- return /* @__PURE__ */ jsx(Progress, {});
101
- }
102
- if (!status) {
103
- return /* @__PURE__ */ jsx(Typography, { children: "not found" });
104
- }
105
- return /* @__PURE__ */ jsx(Card, { className: cardStyle, children: status !== void 0 ? /* @__PURE__ */ jsx(Typography, { className: largeTextStyle, children: labelFromStatus(status) }) : /* @__PURE__ */ jsx(Typography, { className: largeTextStyle, children: "Unable to get status" }) });
106
- }
107
-
108
- export { StatusCard as default };
109
- //# sourceMappingURL=StatusCard.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatusCard.esm.js","sources":["../../../src/components/PagerDutyCardCommon/StatusCard.tsx"],"sourcesContent":["import { Card, Typography } from '@material-ui/core';\nimport { useEffect } from 'react';\nimport { Theme, makeStyles } from '@material-ui/core/styles';\nimport { BackstageTheme } from '@backstage/theme';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { pagerDutyApiRef } from '../../api';\nimport { useAsyncFn } from 'react-use';\nimport Alert from '@material-ui/lab/Alert/Alert';\nimport { Progress } from '@backstage/core-components';\n\ntype Props = {\n serviceId: string;\n refreshStatus: boolean;\n account?: string;\n compact?: boolean;\n};\n\nfunction labelFromStatus(status: string) {\n let label;\n switch (status) {\n case 'active':\n label = 'OK';\n break;\n case 'warning':\n label = 'ACTIVE';\n break;\n case 'critical':\n label = 'ALARM';\n break;\n case 'maintenance':\n label = 'MAINTENANCE';\n break;\n case 'disabled':\n label = 'DISABLED';\n break;\n default:\n label = 'OK';\n break;\n }\n\n return label;\n}\n\nfunction colorFromStatus(theme: Theme, status: string) {\n let color;\n switch (status) {\n case 'active':\n color = theme.palette.success.main;\n break;\n case 'warning':\n color = theme.palette.warningBackground;\n break;\n case 'critical':\n color = theme.palette.error.main;\n break;\n case 'maintenance':\n color = '#ebdc00';\n break;\n case 'disabled':\n color = '#A9A9A9';\n break;\n default:\n color = theme.palette.success.main;\n break;\n }\n\n return color;\n}\n\nfunction StatusCard({ serviceId, refreshStatus, account, compact }: Props) {\n const api = useApi(pagerDutyApiRef);\n const [{ value: status, loading, error }, getStatus] = useAsyncFn(\n async () => {\n const { service: foundService } = await api.getServiceById(\n serviceId,\n account,\n );\n return foundService.status;\n },\n );\n\n const useStyles = makeStyles<BackstageTheme>(theme => ({\n cardStyle: {\n height: compact !== true ? '120px' : '80px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor:\n status !== undefined\n ? colorFromStatus(theme, status)\n : colorFromStatus(theme, 'active'),\n marginRight: '10px',\n },\n largeTextStyle: {\n color: 'white',\n fontWeight: 'bold',\n fontSize: '20px',\n wordWrap: 'break-word',\n },\n }));\n\n const { cardStyle, largeTextStyle } = useStyles();\n\n useEffect(() => {\n getStatus();\n }, [refreshStatus, getStatus]);\n\n if (error) {\n if (error.message.includes('Forbidden')) {\n return <Typography>forbidden</Typography>;\n }\n\n return (\n <Alert severity=\"error\">\n Error encountered while fetching information. {error.message}\n </Alert>\n );\n }\n\n if (loading) {\n return <Progress />;\n }\n\n if (!status) {\n return <Typography>not found</Typography>;\n }\n\n return (\n <Card className={cardStyle}>\n {status !== undefined ? (\n <Typography className={largeTextStyle}>\n {labelFromStatus(status)}\n </Typography>\n ) : (\n <Typography className={largeTextStyle}>Unable to get status</Typography>\n )}\n </Card>\n );\n}\n\nexport default StatusCard;\n"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { useState, useCallback } from 'react';
3
- import { makeStyles, IconButton, Typography } from '@material-ui/core';
4
- import { TriggerDialog } from '../TriggerDialog/TriggerDialog.esm.js';
5
- import AddAlert from '@material-ui/icons/AddAlert';
6
-
7
- function TriggerIncidentButton({
8
- integrationKey,
9
- entityName,
10
- compact,
11
- handleRefresh
12
- }) {
13
- const useStyles = makeStyles((theme) => ({
14
- buttonStyle: {
15
- color: theme.palette.text.primary,
16
- "&:hover": {
17
- backgroundColor: "transparent",
18
- textDecoration: "underline"
19
- }
20
- },
21
- containerStyle: {
22
- fontSize: compact !== true ? "12px" : "10px",
23
- width: compact !== true ? "80px" : "60px",
24
- marginRight: "-10px"
25
- },
26
- iconStyle: {
27
- fontSize: "30px",
28
- marginBottom: "-10px"
29
- },
30
- textStyle: {
31
- marginBottom: "-10px"
32
- }
33
- }));
34
- const { buttonStyle, containerStyle, iconStyle, textStyle } = useStyles();
35
- const [dialogShown, setDialogShown] = useState(false);
36
- const showDialog = useCallback(() => {
37
- setDialogShown(true);
38
- }, [setDialogShown]);
39
- const hideDialog = useCallback(() => {
40
- setDialogShown(false);
41
- }, [setDialogShown]);
42
- const disabled = !integrationKey;
43
- return /* @__PURE__ */ jsxs(Fragment, { children: [
44
- /* @__PURE__ */ jsx(
45
- IconButton,
46
- {
47
- "aria-label": "create-incident",
48
- onClick: showDialog,
49
- className: disabled ? "" : buttonStyle,
50
- disabled,
51
- children: /* @__PURE__ */ jsxs("div", { className: containerStyle, children: [
52
- /* @__PURE__ */ jsx(AddAlert, { className: iconStyle }),
53
- /* @__PURE__ */ jsx(Typography, { className: textStyle, children: "Create new incident" })
54
- ] })
55
- }
56
- ),
57
- integrationKey && /* @__PURE__ */ jsx(
58
- TriggerDialog,
59
- {
60
- showDialog: dialogShown,
61
- handleDialog: hideDialog,
62
- integrationKey,
63
- serviceName: entityName,
64
- onIncidentCreated: handleRefresh
65
- }
66
- )
67
- ] });
68
- }
69
-
70
- export { TriggerIncidentButton };
71
- //# sourceMappingURL=TriggerIncidentButton.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerIncidentButton.esm.js","sources":["../../../src/components/PagerDutyCardCommon/TriggerIncidentButton.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 */\n\n// eslint-disable-next-line @backstage/no-undeclared-imports\nimport { useCallback, useState } from 'react';\nimport { makeStyles, IconButton, Typography } from '@material-ui/core';\nimport { BackstageTheme } from '@backstage/theme';\n\nimport { TriggerDialog } from '../TriggerDialog';\nimport AddAlert from '@material-ui/icons/AddAlert';\n\n/** @public */\nexport type TriggerIncidentButtonProps = {\n integrationKey: string | undefined;\n entityName: string;\n compact?: boolean;\n handleRefresh: () => void;\n};\n\n/** @public */\nexport function TriggerIncidentButton({\n integrationKey,\n entityName,\n compact,\n handleRefresh,\n}: TriggerIncidentButtonProps) {\n const useStyles = makeStyles<BackstageTheme>(theme => ({\n buttonStyle: {\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor: 'transparent',\n textDecoration: 'underline',\n },\n },\n containerStyle: {\n fontSize: compact !== true ? '12px' : '10px',\n width: compact !== true ? '80px' : '60px',\n marginRight: '-10px',\n },\n iconStyle: {\n fontSize: '30px',\n marginBottom: '-10px',\n },\n textStyle: {\n marginBottom: '-10px',\n },\n }));\n\n const { buttonStyle, containerStyle, iconStyle, textStyle } = useStyles();\n const [dialogShown, setDialogShown] = useState<boolean>(false);\n\n const showDialog = useCallback(() => {\n setDialogShown(true);\n }, [setDialogShown]);\n const hideDialog = useCallback(() => {\n setDialogShown(false);\n }, [setDialogShown]);\n\n const disabled = !integrationKey;\n\n return (\n <>\n <IconButton\n aria-label=\"create-incident\"\n onClick={showDialog}\n className={disabled ? '' : buttonStyle}\n disabled={disabled}\n >\n <div className={containerStyle}>\n <AddAlert className={iconStyle} />\n <Typography className={textStyle}>Create new incident</Typography>\n </div>\n </IconButton>\n {integrationKey && (\n <TriggerDialog\n showDialog={dialogShown}\n handleDialog={hideDialog}\n integrationKey={integrationKey}\n serviceName={entityName}\n onIncidentCreated={handleRefresh}\n />\n )}\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;AAiCO,SAAS,qBAAA,CAAsB;AAAA,EACpC,cAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAA+B;AAC7B,EAAA,MAAM,SAAA,GAAY,WAA2B,CAAA,KAAA,MAAU;AAAA,IACrD,WAAA,EAAa;AAAA,MACX,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,OAAA;AAAA,MAC1B,SAAA,EAAW;AAAA,QACT,eAAA,EAAiB,aAAA;AAAA,QACjB,cAAA,EAAgB;AAAA;AAClB,KACF;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,QAAA,EAAU,OAAA,KAAY,IAAA,GAAO,MAAA,GAAS,MAAA;AAAA,MACtC,KAAA,EAAO,OAAA,KAAY,IAAA,GAAO,MAAA,GAAS,MAAA;AAAA,MACnC,WAAA,EAAa;AAAA,KACf;AAAA,IACA,SAAA,EAAW;AAAA,MACT,QAAA,EAAU,MAAA;AAAA,MACV,YAAA,EAAc;AAAA,KAChB;AAAA,IACA,SAAA,EAAW;AAAA,MACT,YAAA,EAAc;AAAA;AAChB,GACF,CAAE,CAAA;AAEF,EAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,SAAA,EAAW,SAAA,KAAc,SAAA,EAAU;AACxE,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAkB,KAAK,CAAA;AAE7D,EAAA,MAAM,UAAA,GAAa,YAAY,MAAM;AACnC,IAAA,cAAA,CAAe,IAAI,CAAA;AAAA,EACrB,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AACnB,EAAA,MAAM,UAAA,GAAa,YAAY,MAAM;AACnC,IAAA,cAAA,CAAe,KAAK,CAAA;AAAA,EACtB,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,EAAA,MAAM,WAAW,CAAC,cAAA;AAElB,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAW,iBAAA;AAAA,QACX,OAAA,EAAS,UAAA;AAAA,QACT,SAAA,EAAW,WAAW,EAAA,GAAK,WAAA;AAAA,QAC3B,QAAA;AAAA,QAEA,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,cAAA,EACd,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAW,SAAA,EAAW,CAAA;AAAA,0BAChC,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,SAAA,EAAW,QAAA,EAAA,qBAAA,EAAmB;AAAA,SAAA,EACvD;AAAA;AAAA,KACF;AAAA,IACC,cAAA,oBACC,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAY,WAAA;AAAA,QACZ,YAAA,EAAc,UAAA;AAAA,QACd,cAAA;AAAA,QACA,WAAA,EAAa,UAAA;AAAA,QACb,iBAAA,EAAmB;AAAA;AAAA;AACrB,GAAA,EAEJ,CAAA;AAEJ;;;;"}