@backstage-community/plugin-ilert 0.7.0 → 0.8.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 (95) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/ILertIcon.esm.js +63 -56
  3. package/dist/ILertIcon.esm.js.map +1 -1
  4. package/dist/components/Alert/AlertActionsMenu.esm.js +49 -42
  5. package/dist/components/Alert/AlertActionsMenu.esm.js.map +1 -1
  6. package/dist/components/Alert/AlertAssignModal.esm.js +68 -60
  7. package/dist/components/Alert/AlertAssignModal.esm.js.map +1 -1
  8. package/dist/components/Alert/AlertLink.esm.js +5 -2
  9. package/dist/components/Alert/AlertLink.esm.js.map +1 -1
  10. package/dist/components/Alert/AlertNewModal.esm.js +109 -87
  11. package/dist/components/Alert/AlertNewModal.esm.js.map +1 -1
  12. package/dist/components/AlertSource/AlertSourceLink.esm.js +19 -16
  13. package/dist/components/AlertSource/AlertSourceLink.esm.js.map +1 -1
  14. package/dist/components/AlertsPage/AlertsPage.esm.js +44 -36
  15. package/dist/components/AlertsPage/AlertsPage.esm.js.map +1 -1
  16. package/dist/components/AlertsPage/AlertsTable.esm.js +15 -15
  17. package/dist/components/AlertsPage/AlertsTable.esm.js.map +1 -1
  18. package/dist/components/AlertsPage/StatusChip.esm.js +5 -5
  19. package/dist/components/AlertsPage/StatusChip.esm.js.map +1 -1
  20. package/dist/components/AlertsPage/TableTitle.esm.js +30 -24
  21. package/dist/components/AlertsPage/TableTitle.esm.js.map +1 -1
  22. package/dist/components/Errors/MissingAuthorizationHeaderError.esm.js +6 -6
  23. package/dist/components/Errors/MissingAuthorizationHeaderError.esm.js.map +1 -1
  24. package/dist/components/ILertCard/ILertCard.esm.js +63 -51
  25. package/dist/components/ILertCard/ILertCard.esm.js.map +1 -1
  26. package/dist/components/ILertCard/ILertCardActionsHeader.esm.js +42 -33
  27. package/dist/components/ILertCard/ILertCardActionsHeader.esm.js.map +1 -1
  28. package/dist/components/ILertCard/ILertCardEmptyState.esm.js +28 -20
  29. package/dist/components/ILertCard/ILertCardEmptyState.esm.js.map +1 -1
  30. package/dist/components/ILertCard/ILertCardHeaderStatus.esm.js +3 -3
  31. package/dist/components/ILertCard/ILertCardHeaderStatus.esm.js.map +1 -1
  32. package/dist/components/ILertCard/ILertCardMaintenanceModal.esm.js +36 -27
  33. package/dist/components/ILertCard/ILertCardMaintenanceModal.esm.js.map +1 -1
  34. package/dist/components/ILertCard/ILertCardOnCall.esm.js +34 -28
  35. package/dist/components/ILertCard/ILertCardOnCall.esm.js.map +1 -1
  36. package/dist/components/ILertCard/ILertCardOnCallEmptyState.esm.js +6 -6
  37. package/dist/components/ILertCard/ILertCardOnCallEmptyState.esm.js.map +1 -1
  38. package/dist/components/ILertCard/ILertCardOnCallItem.esm.js +41 -31
  39. package/dist/components/ILertCard/ILertCardOnCallItem.esm.js.map +1 -1
  40. package/dist/components/ILertPage/ILertPage.esm.js +25 -17
  41. package/dist/components/ILertPage/ILertPage.esm.js.map +1 -1
  42. package/dist/components/OnCallSchedulesPage/OnCallSchedulesGrid.esm.js +45 -35
  43. package/dist/components/OnCallSchedulesPage/OnCallSchedulesGrid.esm.js.map +1 -1
  44. package/dist/components/OnCallSchedulesPage/OnCallSchedulesPage.esm.js +14 -11
  45. package/dist/components/OnCallSchedulesPage/OnCallSchedulesPage.esm.js.map +1 -1
  46. package/dist/components/OnCallSchedulesPage/OnCallShiftItem.esm.js +31 -23
  47. package/dist/components/OnCallSchedulesPage/OnCallShiftItem.esm.js.map +1 -1
  48. package/dist/components/Service/ServiceActionsMenu.esm.js +29 -25
  49. package/dist/components/Service/ServiceActionsMenu.esm.js.map +1 -1
  50. package/dist/components/Service/ServiceLink.esm.js +5 -2
  51. package/dist/components/Service/ServiceLink.esm.js.map +1 -1
  52. package/dist/components/ServicesPage/ServicesPage.esm.js +17 -14
  53. package/dist/components/ServicesPage/ServicesPage.esm.js.map +1 -1
  54. package/dist/components/ServicesPage/ServicesTable.esm.js +9 -9
  55. package/dist/components/ServicesPage/ServicesTable.esm.js.map +1 -1
  56. package/dist/components/ServicesPage/StatusChip.esm.js +7 -7
  57. package/dist/components/ServicesPage/StatusChip.esm.js.map +1 -1
  58. package/dist/components/Shift/ShiftOverrideModal.esm.js +83 -74
  59. package/dist/components/Shift/ShiftOverrideModal.esm.js.map +1 -1
  60. package/dist/components/StatusPage/StatusPageActionsMenu.esm.js +32 -26
  61. package/dist/components/StatusPage/StatusPageActionsMenu.esm.js.map +1 -1
  62. package/dist/components/StatusPage/StatusPageLink.esm.js +5 -2
  63. package/dist/components/StatusPage/StatusPageLink.esm.js.map +1 -1
  64. package/dist/components/StatusPage/StatusPageURL.esm.js +2 -2
  65. package/dist/components/StatusPage/StatusPageURL.esm.js.map +1 -1
  66. package/dist/components/StatusPagePage/StatusChip.esm.js +7 -7
  67. package/dist/components/StatusPagePage/StatusChip.esm.js.map +1 -1
  68. package/dist/components/StatusPagePage/StatusPagesPage.esm.js +17 -14
  69. package/dist/components/StatusPagePage/StatusPagesPage.esm.js.map +1 -1
  70. package/dist/components/StatusPagePage/StatusPagesTable.esm.js +10 -10
  71. package/dist/components/StatusPagePage/StatusPagesTable.esm.js.map +1 -1
  72. package/dist/components/StatusPagePage/VisibilityChip.esm.js +4 -4
  73. package/dist/components/StatusPagePage/VisibilityChip.esm.js.map +1 -1
  74. package/dist/hooks/useAlertActions.esm.js +3 -5
  75. package/dist/hooks/useAlertActions.esm.js.map +1 -1
  76. package/dist/hooks/useAlertSource.esm.js +3 -5
  77. package/dist/hooks/useAlertSource.esm.js.map +1 -1
  78. package/dist/hooks/useAlertSourceOnCalls.esm.js +3 -3
  79. package/dist/hooks/useAlertSourceOnCalls.esm.js.map +1 -1
  80. package/dist/hooks/useAlerts.esm.js +6 -9
  81. package/dist/hooks/useAlerts.esm.js.map +1 -1
  82. package/dist/hooks/useAssignAlert.esm.js +6 -4
  83. package/dist/hooks/useAssignAlert.esm.js.map +1 -1
  84. package/dist/hooks/useNewAlert.esm.js +6 -10
  85. package/dist/hooks/useNewAlert.esm.js.map +1 -1
  86. package/dist/hooks/useOnCallSchedules.esm.js +5 -3
  87. package/dist/hooks/useOnCallSchedules.esm.js.map +1 -1
  88. package/dist/hooks/useServices.esm.js +4 -4
  89. package/dist/hooks/useServices.esm.js.map +1 -1
  90. package/dist/hooks/useShiftOverride.esm.js +4 -4
  91. package/dist/hooks/useShiftOverride.esm.js.map +1 -1
  92. package/dist/hooks/useStatusPages.esm.js +4 -6
  93. package/dist/hooks/useStatusPages.esm.js.map +1 -1
  94. package/dist/index.d.ts +6 -8
  95. package/package.json +13 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @backstage-community/plugin-ilert
2
2
 
3
+ ## 0.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 61d6306: Backstage version bump to v1.38.1
8
+
9
+ ## 0.7.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 4aad9f3: remove unused devDependency `canvas`
14
+
3
15
  ## 0.7.0
4
16
 
5
17
  ### Minor Changes
@@ -1,61 +1,68 @@
1
- import React from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import SvgIcon from '@material-ui/core/SvgIcon';
3
3
 
4
- const ILertIcon = (props) => /* @__PURE__ */ React.createElement(SvgIcon, { ...props }, /* @__PURE__ */ React.createElement("g", null, /* @__PURE__ */ React.createElement(
5
- "path",
6
- {
7
- stroke: "none",
8
- fillRule: "nonzero",
9
- fill: "#fff",
10
- fillOpacity: "1",
11
- d: "M 0 9.277344 L 0 18.574219 C 0 20.832031 1.847656 22.679688 4.105469 22.679688 L 12.582031 22.679688 C 6.21875 21.007812 1.277344 15.792969 0 9.277344 Z M 0 9.277344"
12
- }
13
- ), /* @__PURE__ */ React.createElement(
14
- "path",
15
- {
16
- stroke: "none",
17
- fillRule: "nonzero",
18
- fill: "#fff",
19
- fillOpacity: "1",
20
- d: "M 19.527344 22.5625 C 21.328125 22.128906 22.679688 20.503906 22.679688 18.574219 L 22.679688 16.273438 C 21.691406 16.820312 20.632812 17.222656 19.527344 17.46875 Z M 19.527344 22.5625"
21
- }
22
- ), /* @__PURE__ */ React.createElement(
23
- "path",
24
- {
25
- stroke: "none",
26
- fillRule: "nonzero",
27
- fill: "#fff",
28
- fillOpacity: "1",
29
- d: "M 14.417969 17.46875 C 9.136719 16.296875 5.171875 11.578125 5.171875 5.945312 C 5.167969 3.855469 5.726562 1.804688 6.785156 0 L 4.105469 0 C 1.847656 0 0 1.847656 0 4.105469 L 0 6.882812 C 0.433594 14.816406 6.335938 21.316406 13.992188 22.679688 L 14.421875 22.679688 Z M 14.417969 17.46875"
30
- }
31
- ), /* @__PURE__ */ React.createElement(
32
- "path",
33
- {
34
- stroke: "none",
35
- fillRule: "nonzero",
36
- fill: "#fff",
37
- fillOpacity: "1",
38
- d: "M 19.527344 12.375 L 19.527344 17.160156 C 20.632812 16.910156 21.695312 16.496094 22.679688 15.929688 L 22.679688 9.855469 C 21.902344 10.988281 20.804688 11.863281 19.527344 12.375 Z M 19.527344 12.375"
39
- }
40
- ), /* @__PURE__ */ React.createElement(
41
- "path",
42
- {
43
- stroke: "none",
44
- fillRule: "nonzero",
45
- fill: "#fff",
46
- fillOpacity: "1",
47
- d: "M 14.417969 17.160156 L 14.417969 12.375 C 11.863281 11.355469 10.054688 8.859375 10.054688 5.945312 C 10.054688 3.503906 11.34375 1.246094 13.441406 0 L 7.128906 0 C 6.039062 1.792969 5.464844 3.847656 5.46875 5.945312 C 5.46875 11.410156 9.300781 15.996094 14.417969 17.160156 Z M 14.417969 17.160156"
48
- }
49
- ), /* @__PURE__ */ React.createElement(
50
- "path",
51
- {
52
- stroke: "none",
53
- fillRule: "nonzero",
54
- fill: "#fff",
55
- fillOpacity: "1",
56
- d: "M 10.355469 5.945312 C 10.355469 8.613281 11.957031 11.019531 14.417969 12.050781 L 14.417969 9.917969 C 15.972656 10.925781 17.972656 10.925781 19.527344 9.917969 L 19.527344 12.050781 C 20.847656 11.496094 21.953125 10.53125 22.679688 9.300781 L 22.679688 4.105469 C 22.679688 1.847656 20.832031 0 18.574219 0 L 14.066406 0 C 11.796875 1.113281 10.355469 3.417969 10.355469 5.945312 Z M 16.972656 2.5625 C 18.84375 2.5625 20.355469 4.078125 20.355469 5.945312 C 20.355469 7.8125 18.84375 9.328125 16.972656 9.328125 C 15.105469 9.328125 13.589844 7.8125 13.589844 5.945312 C 13.59375 4.078125 15.105469 2.566406 16.972656 2.5625 Z M 16.972656 2.5625"
57
- }
58
- )));
4
+ const ILertIcon = (props) => /* @__PURE__ */ jsx(SvgIcon, { ...props, children: /* @__PURE__ */ jsxs("g", { children: [
5
+ /* @__PURE__ */ jsx(
6
+ "path",
7
+ {
8
+ stroke: "none",
9
+ fillRule: "nonzero",
10
+ fill: "#fff",
11
+ fillOpacity: "1",
12
+ d: "M 0 9.277344 L 0 18.574219 C 0 20.832031 1.847656 22.679688 4.105469 22.679688 L 12.582031 22.679688 C 6.21875 21.007812 1.277344 15.792969 0 9.277344 Z M 0 9.277344"
13
+ }
14
+ ),
15
+ /* @__PURE__ */ jsx(
16
+ "path",
17
+ {
18
+ stroke: "none",
19
+ fillRule: "nonzero",
20
+ fill: "#fff",
21
+ fillOpacity: "1",
22
+ d: "M 19.527344 22.5625 C 21.328125 22.128906 22.679688 20.503906 22.679688 18.574219 L 22.679688 16.273438 C 21.691406 16.820312 20.632812 17.222656 19.527344 17.46875 Z M 19.527344 22.5625"
23
+ }
24
+ ),
25
+ /* @__PURE__ */ jsx(
26
+ "path",
27
+ {
28
+ stroke: "none",
29
+ fillRule: "nonzero",
30
+ fill: "#fff",
31
+ fillOpacity: "1",
32
+ d: "M 14.417969 17.46875 C 9.136719 16.296875 5.171875 11.578125 5.171875 5.945312 C 5.167969 3.855469 5.726562 1.804688 6.785156 0 L 4.105469 0 C 1.847656 0 0 1.847656 0 4.105469 L 0 6.882812 C 0.433594 14.816406 6.335938 21.316406 13.992188 22.679688 L 14.421875 22.679688 Z M 14.417969 17.46875"
33
+ }
34
+ ),
35
+ /* @__PURE__ */ jsx(
36
+ "path",
37
+ {
38
+ stroke: "none",
39
+ fillRule: "nonzero",
40
+ fill: "#fff",
41
+ fillOpacity: "1",
42
+ d: "M 19.527344 12.375 L 19.527344 17.160156 C 20.632812 16.910156 21.695312 16.496094 22.679688 15.929688 L 22.679688 9.855469 C 21.902344 10.988281 20.804688 11.863281 19.527344 12.375 Z M 19.527344 12.375"
43
+ }
44
+ ),
45
+ /* @__PURE__ */ jsx(
46
+ "path",
47
+ {
48
+ stroke: "none",
49
+ fillRule: "nonzero",
50
+ fill: "#fff",
51
+ fillOpacity: "1",
52
+ d: "M 14.417969 17.160156 L 14.417969 12.375 C 11.863281 11.355469 10.054688 8.859375 10.054688 5.945312 C 10.054688 3.503906 11.34375 1.246094 13.441406 0 L 7.128906 0 C 6.039062 1.792969 5.464844 3.847656 5.46875 5.945312 C 5.46875 11.410156 9.300781 15.996094 14.417969 17.160156 Z M 14.417969 17.160156"
53
+ }
54
+ ),
55
+ /* @__PURE__ */ jsx(
56
+ "path",
57
+ {
58
+ stroke: "none",
59
+ fillRule: "nonzero",
60
+ fill: "#fff",
61
+ fillOpacity: "1",
62
+ d: "M 10.355469 5.945312 C 10.355469 8.613281 11.957031 11.019531 14.417969 12.050781 L 14.417969 9.917969 C 15.972656 10.925781 17.972656 10.925781 19.527344 9.917969 L 19.527344 12.050781 C 20.847656 11.496094 21.953125 10.53125 22.679688 9.300781 L 22.679688 4.105469 C 22.679688 1.847656 20.832031 0 18.574219 0 L 14.066406 0 C 11.796875 1.113281 10.355469 3.417969 10.355469 5.945312 Z M 16.972656 2.5625 C 18.84375 2.5625 20.355469 4.078125 20.355469 5.945312 C 20.355469 7.8125 18.84375 9.328125 16.972656 9.328125 C 15.105469 9.328125 13.589844 7.8125 13.589844 5.945312 C 13.59375 4.078125 15.105469 2.566406 16.972656 2.5625 Z M 16.972656 2.5625"
63
+ }
64
+ )
65
+ ] }) });
59
66
 
60
67
  export { ILertIcon };
61
68
  //# sourceMappingURL=ILertIcon.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ILertIcon.esm.js","sources":["../src/ILertIcon.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 React from 'react';\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\n\n/**\n * @public\n */\nexport const ILertIcon = (props: SvgIconProps) => (\n <SvgIcon {...props}>\n <g>\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 0 9.277344 L 0 18.574219 C 0 20.832031 1.847656 22.679688 4.105469 22.679688 L 12.582031 22.679688 C 6.21875 21.007812 1.277344 15.792969 0 9.277344 Z M 0 9.277344\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 19.527344 22.5625 C 21.328125 22.128906 22.679688 20.503906 22.679688 18.574219 L 22.679688 16.273438 C 21.691406 16.820312 20.632812 17.222656 19.527344 17.46875 Z M 19.527344 22.5625\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 14.417969 17.46875 C 9.136719 16.296875 5.171875 11.578125 5.171875 5.945312 C 5.167969 3.855469 5.726562 1.804688 6.785156 0 L 4.105469 0 C 1.847656 0 0 1.847656 0 4.105469 L 0 6.882812 C 0.433594 14.816406 6.335938 21.316406 13.992188 22.679688 L 14.421875 22.679688 Z M 14.417969 17.46875\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 19.527344 12.375 L 19.527344 17.160156 C 20.632812 16.910156 21.695312 16.496094 22.679688 15.929688 L 22.679688 9.855469 C 21.902344 10.988281 20.804688 11.863281 19.527344 12.375 Z M 19.527344 12.375\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 14.417969 17.160156 L 14.417969 12.375 C 11.863281 11.355469 10.054688 8.859375 10.054688 5.945312 C 10.054688 3.503906 11.34375 1.246094 13.441406 0 L 7.128906 0 C 6.039062 1.792969 5.464844 3.847656 5.46875 5.945312 C 5.46875 11.410156 9.300781 15.996094 14.417969 17.160156 Z M 14.417969 17.160156\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 10.355469 5.945312 C 10.355469 8.613281 11.957031 11.019531 14.417969 12.050781 L 14.417969 9.917969 C 15.972656 10.925781 17.972656 10.925781 19.527344 9.917969 L 19.527344 12.050781 C 20.847656 11.496094 21.953125 10.53125 22.679688 9.300781 L 22.679688 4.105469 C 22.679688 1.847656 20.832031 0 18.574219 0 L 14.066406 0 C 11.796875 1.113281 10.355469 3.417969 10.355469 5.945312 Z M 16.972656 2.5625 C 18.84375 2.5625 20.355469 4.078125 20.355469 5.945312 C 20.355469 7.8125 18.84375 9.328125 16.972656 9.328125 C 15.105469 9.328125 13.589844 7.8125 13.589844 5.945312 C 13.59375 4.078125 15.105469 2.566406 16.972656 2.5625 Z M 16.972656 2.5625\"\n />\n </g>\n </SvgIcon>\n);\n"],"names":[],"mappings":";;;AAsBa,MAAA,SAAA,GAAY,CAAC,KACxB,qBAAA,KAAA,CAAA,aAAA,CAAC,WAAS,GAAG,KAAA,EAAA,sCACV,GACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,MAAO,EAAA,MAAA;AAAA,IACP,QAAS,EAAA,SAAA;AAAA,IACT,IAAK,EAAA,MAAA;AAAA,IACL,WAAY,EAAA,GAAA;AAAA,IACZ,CAAE,EAAA;AAAA;AACJ,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,MAAO,EAAA,MAAA;AAAA,IACP,QAAS,EAAA,SAAA;AAAA,IACT,IAAK,EAAA,MAAA;AAAA,IACL,WAAY,EAAA,GAAA;AAAA,IACZ,CAAE,EAAA;AAAA;AACJ,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,MAAO,EAAA,MAAA;AAAA,IACP,QAAS,EAAA,SAAA;AAAA,IACT,IAAK,EAAA,MAAA;AAAA,IACL,WAAY,EAAA,GAAA;AAAA,IACZ,CAAE,EAAA;AAAA;AACJ,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,MAAO,EAAA,MAAA;AAAA,IACP,QAAS,EAAA,SAAA;AAAA,IACT,IAAK,EAAA,MAAA;AAAA,IACL,WAAY,EAAA,GAAA;AAAA,IACZ,CAAE,EAAA;AAAA;AACJ,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,MAAO,EAAA,MAAA;AAAA,IACP,QAAS,EAAA,SAAA;AAAA,IACT,IAAK,EAAA,MAAA;AAAA,IACL,WAAY,EAAA,GAAA;AAAA,IACZ,CAAE,EAAA;AAAA;AACJ,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,MAAO,EAAA,MAAA;AAAA,IACP,QAAS,EAAA,SAAA;AAAA,IACT,IAAK,EAAA,MAAA;AAAA,IACL,WAAY,EAAA,GAAA;AAAA,IACZ,CAAE,EAAA;AAAA;AACJ,CACF,CACF;;;;"}
1
+ {"version":3,"file":"ILertIcon.esm.js","sources":["../src/ILertIcon.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\n\n/**\n * @public\n */\nexport const ILertIcon = (props: SvgIconProps) => (\n <SvgIcon {...props}>\n <g>\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 0 9.277344 L 0 18.574219 C 0 20.832031 1.847656 22.679688 4.105469 22.679688 L 12.582031 22.679688 C 6.21875 21.007812 1.277344 15.792969 0 9.277344 Z M 0 9.277344\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 19.527344 22.5625 C 21.328125 22.128906 22.679688 20.503906 22.679688 18.574219 L 22.679688 16.273438 C 21.691406 16.820312 20.632812 17.222656 19.527344 17.46875 Z M 19.527344 22.5625\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 14.417969 17.46875 C 9.136719 16.296875 5.171875 11.578125 5.171875 5.945312 C 5.167969 3.855469 5.726562 1.804688 6.785156 0 L 4.105469 0 C 1.847656 0 0 1.847656 0 4.105469 L 0 6.882812 C 0.433594 14.816406 6.335938 21.316406 13.992188 22.679688 L 14.421875 22.679688 Z M 14.417969 17.46875\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 19.527344 12.375 L 19.527344 17.160156 C 20.632812 16.910156 21.695312 16.496094 22.679688 15.929688 L 22.679688 9.855469 C 21.902344 10.988281 20.804688 11.863281 19.527344 12.375 Z M 19.527344 12.375\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 14.417969 17.160156 L 14.417969 12.375 C 11.863281 11.355469 10.054688 8.859375 10.054688 5.945312 C 10.054688 3.503906 11.34375 1.246094 13.441406 0 L 7.128906 0 C 6.039062 1.792969 5.464844 3.847656 5.46875 5.945312 C 5.46875 11.410156 9.300781 15.996094 14.417969 17.160156 Z M 14.417969 17.160156\"\n />\n <path\n stroke=\"none\"\n fillRule=\"nonzero\"\n fill=\"#fff\"\n fillOpacity=\"1\"\n d=\"M 10.355469 5.945312 C 10.355469 8.613281 11.957031 11.019531 14.417969 12.050781 L 14.417969 9.917969 C 15.972656 10.925781 17.972656 10.925781 19.527344 9.917969 L 19.527344 12.050781 C 20.847656 11.496094 21.953125 10.53125 22.679688 9.300781 L 22.679688 4.105469 C 22.679688 1.847656 20.832031 0 18.574219 0 L 14.066406 0 C 11.796875 1.113281 10.355469 3.417969 10.355469 5.945312 Z M 16.972656 2.5625 C 18.84375 2.5625 20.355469 4.078125 20.355469 5.945312 C 20.355469 7.8125 18.84375 9.328125 16.972656 9.328125 C 15.105469 9.328125 13.589844 7.8125 13.589844 5.945312 C 13.59375 4.078125 15.105469 2.566406 16.972656 2.5625 Z M 16.972656 2.5625\"\n />\n </g>\n </SvgIcon>\n);\n"],"names":[],"mappings":";;;AAqBa,MAAA,SAAA,GAAY,CAAC,KACxB,qBAAA,GAAA,CAAC,WAAS,GAAG,KAAA,EACX,+BAAC,GACC,EAAA,EAAA,QAAA,EAAA;AAAA,kBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,MAAA;AAAA,MACP,QAAS,EAAA,SAAA;AAAA,MACT,IAAK,EAAA,MAAA;AAAA,MACL,WAAY,EAAA,GAAA;AAAA,MACZ,CAAE,EAAA;AAAA;AAAA,GACJ;AAAA,kBACA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,MAAA;AAAA,MACP,QAAS,EAAA,SAAA;AAAA,MACT,IAAK,EAAA,MAAA;AAAA,MACL,WAAY,EAAA,GAAA;AAAA,MACZ,CAAE,EAAA;AAAA;AAAA,GACJ;AAAA,kBACA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,MAAA;AAAA,MACP,QAAS,EAAA,SAAA;AAAA,MACT,IAAK,EAAA,MAAA;AAAA,MACL,WAAY,EAAA,GAAA;AAAA,MACZ,CAAE,EAAA;AAAA;AAAA,GACJ;AAAA,kBACA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,MAAA;AAAA,MACP,QAAS,EAAA,SAAA;AAAA,MACT,IAAK,EAAA,MAAA;AAAA,MACL,WAAY,EAAA,GAAA;AAAA,MACZ,CAAE,EAAA;AAAA;AAAA,GACJ;AAAA,kBACA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,MAAA;AAAA,MACP,QAAS,EAAA,SAAA;AAAA,MACT,IAAK,EAAA,MAAA;AAAA,MACL,WAAY,EAAA,GAAA;AAAA,MACZ,CAAE,EAAA;AAAA;AAAA,GACJ;AAAA,kBACA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,MAAA;AAAA,MACP,QAAS,EAAA,SAAA;AAAA,MACT,IAAK,EAAA,MAAA;AAAA,MACL,WAAY,EAAA,GAAA;AAAA,MACZ,CAAE,EAAA;AAAA;AAAA;AACJ,CAAA,EACF,CACF,EAAA;;;;"}
@@ -1,9 +1,10 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
1
2
  import IconButton from '@material-ui/core/IconButton';
2
3
  import Menu from '@material-ui/core/Menu';
3
4
  import MenuItem from '@material-ui/core/MenuItem';
4
5
  import Typography from '@material-ui/core/Typography';
5
6
  import MoreVertIcon from '@material-ui/icons/MoreVert';
6
- import React from 'react';
7
+ import { useState } from 'react';
7
8
  import { ilertApiRef } from '../../api/client.esm.js';
8
9
  import { useAlertActions } from '../../hooks/useAlertActions.esm.js';
9
10
  import { AlertAssignModal } from './AlertAssignModal.esm.js';
@@ -19,12 +20,12 @@ const AlertActionsMenu = ({
19
20
  const ilertApi = useApi(ilertApiRef);
20
21
  const alertApi = useApi(alertApiRef);
21
22
  const identityApi = useApi(identityApiRef);
22
- const [anchorEl, setAnchorEl] = React.useState(null);
23
+ const [anchorEl, setAnchorEl] = useState(null);
23
24
  const callback = onAlertChanged || ((_) => {
24
25
  });
25
26
  const setProcessing = setIsLoading || ((_) => {
26
27
  });
27
- const [isAssignAlertModalOpened, setIsAssignAlertModalOpened] = React.useState(false);
28
+ const [isAssignAlertModalOpened, setIsAssignAlertModalOpened] = useState(false);
28
29
  const [{ alertActions, isLoading }] = useAlertActions(
29
30
  alert,
30
31
  Boolean(anchorEl)
@@ -90,52 +91,58 @@ const AlertActionsMenu = ({
90
91
  const actions = alertActions.map((a) => {
91
92
  const successTrigger = a.history ? a.history.find((h) => h.success) : void 0;
92
93
  const triggeredBy = successTrigger && successTrigger.actor ? `${successTrigger.actor.firstName} ${successTrigger.actor.lastName}` : "";
93
- return /* @__PURE__ */ React.createElement(
94
+ return /* @__PURE__ */ jsx(
94
95
  MenuItem,
95
96
  {
96
- key: a.webhookId,
97
97
  onClick: handleTriggerAction(a),
98
- disabled: !!successTrigger
98
+ disabled: !!successTrigger,
99
+ children: /* @__PURE__ */ jsx(Typography, { variant: "inherit", noWrap: true, children: triggeredBy ? `${a.name} (by ${triggeredBy})` : a.name })
99
100
  },
100
- /* @__PURE__ */ React.createElement(Typography, { variant: "inherit", noWrap: true }, triggeredBy ? `${a.name} (by ${triggeredBy})` : a.name)
101
+ a.webhookId
101
102
  );
102
103
  });
103
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
104
- IconButton,
105
- {
106
- "aria-label": "more",
107
- "aria-controls": "long-menu",
108
- "aria-haspopup": "true",
109
- onClick: handleClick,
110
- size: "small"
111
- },
112
- /* @__PURE__ */ React.createElement(MoreVertIcon, null)
113
- ), /* @__PURE__ */ React.createElement(
114
- Menu,
115
- {
116
- id: `alert-actions-menu-${alert.id}`,
117
- anchorEl,
118
- keepMounted: true,
119
- open: Boolean(anchorEl),
120
- onClose: handleCloseMenu,
121
- PaperProps: {
122
- style: { maxHeight: 48 * 5.5 }
104
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
105
+ /* @__PURE__ */ jsx(
106
+ IconButton,
107
+ {
108
+ "aria-label": "more",
109
+ "aria-controls": "long-menu",
110
+ "aria-haspopup": "true",
111
+ onClick: handleClick,
112
+ size: "small",
113
+ children: /* @__PURE__ */ jsx(MoreVertIcon, {})
123
114
  }
124
- },
125
- alert.status === "PENDING" ? /* @__PURE__ */ React.createElement(MenuItem, { key: "ack", onClick: handleAccept }, /* @__PURE__ */ React.createElement(Typography, { variant: "inherit", noWrap: true }, "Accept")) : null,
126
- alert.status !== "RESOLVED" ? /* @__PURE__ */ React.createElement(MenuItem, { key: "close", onClick: handleResolve }, /* @__PURE__ */ React.createElement(Typography, { variant: "inherit", noWrap: true }, "Resolve")) : null,
127
- alert.status !== "RESOLVED" ? /* @__PURE__ */ React.createElement(MenuItem, { key: "assign", onClick: handleAssign }, /* @__PURE__ */ React.createElement(Typography, { variant: "inherit", noWrap: true }, "Assign")) : null,
128
- isLoading ? /* @__PURE__ */ React.createElement(MenuItem, { key: "loading" }, /* @__PURE__ */ React.createElement(Progress, { style: { width: "100%" } })) : actions,
129
- /* @__PURE__ */ React.createElement(MenuItem, { key: "details", onClick: handleCloseMenu }, /* @__PURE__ */ React.createElement(Typography, { variant: "inherit", noWrap: true }, /* @__PURE__ */ React.createElement(Link, { to: ilertApi.getAlertDetailsURL(alert) }, "View in iLert")))
130
- ), /* @__PURE__ */ React.createElement(
131
- AlertAssignModal,
132
- {
133
- alert,
134
- setIsModalOpened: setIsAssignAlertModalOpened,
135
- isModalOpened: isAssignAlertModalOpened,
136
- onAlertChanged
137
- }
138
- ));
115
+ ),
116
+ /* @__PURE__ */ jsxs(
117
+ Menu,
118
+ {
119
+ id: `alert-actions-menu-${alert.id}`,
120
+ anchorEl,
121
+ keepMounted: true,
122
+ open: Boolean(anchorEl),
123
+ onClose: handleCloseMenu,
124
+ PaperProps: {
125
+ style: { maxHeight: 48 * 5.5 }
126
+ },
127
+ children: [
128
+ alert.status === "PENDING" ? /* @__PURE__ */ jsx(MenuItem, { onClick: handleAccept, children: /* @__PURE__ */ jsx(Typography, { variant: "inherit", noWrap: true, children: "Accept" }) }, "ack") : null,
129
+ alert.status !== "RESOLVED" ? /* @__PURE__ */ jsx(MenuItem, { onClick: handleResolve, children: /* @__PURE__ */ jsx(Typography, { variant: "inherit", noWrap: true, children: "Resolve" }) }, "close") : null,
130
+ alert.status !== "RESOLVED" ? /* @__PURE__ */ jsx(MenuItem, { onClick: handleAssign, children: /* @__PURE__ */ jsx(Typography, { variant: "inherit", noWrap: true, children: "Assign" }) }, "assign") : null,
131
+ isLoading ? /* @__PURE__ */ jsx(MenuItem, { children: /* @__PURE__ */ jsx(Progress, { style: { width: "100%" } }) }, "loading") : actions,
132
+ /* @__PURE__ */ jsx(MenuItem, { onClick: handleCloseMenu, children: /* @__PURE__ */ jsx(Typography, { variant: "inherit", noWrap: true, children: /* @__PURE__ */ jsx(Link, { to: ilertApi.getAlertDetailsURL(alert), children: "View in iLert" }) }) }, "details")
133
+ ]
134
+ }
135
+ ),
136
+ /* @__PURE__ */ jsx(
137
+ AlertAssignModal,
138
+ {
139
+ alert,
140
+ setIsModalOpened: setIsAssignAlertModalOpened,
141
+ isModalOpened: isAssignAlertModalOpened,
142
+ onAlertChanged
143
+ }
144
+ )
145
+ ] });
139
146
  };
140
147
 
141
148
  export { AlertActionsMenu };
@@ -1 +1 @@
1
- {"version":3,"file":"AlertActionsMenu.esm.js","sources":["../../../src/components/Alert/AlertActionsMenu.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 IconButton from '@material-ui/core/IconButton';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Typography from '@material-ui/core/Typography';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport React from 'react';\nimport { ilertApiRef } from '../../api';\nimport { useAlertActions } from '../../hooks/useAlertActions';\nimport { Alert, AlertAction } from '../../types';\nimport { AlertAssignModal } from './AlertAssignModal';\n\nimport { DEFAULT_NAMESPACE, parseEntityRef } from '@backstage/catalog-model';\nimport { Link, Progress } from '@backstage/core-components';\nimport {\n alertApiRef,\n identityApiRef,\n useApi,\n} from '@backstage/core-plugin-api';\n\nexport const AlertActionsMenu = ({\n alert,\n onAlertChanged,\n setIsLoading,\n}: {\n alert: Alert;\n onAlertChanged?: (alert: Alert) => void;\n setIsLoading?: (isLoading: boolean) => void;\n}) => {\n const ilertApi = useApi(ilertApiRef);\n const alertApi = useApi(alertApiRef);\n const identityApi = useApi(identityApiRef);\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const callback = onAlertChanged || ((_: Alert): void => {});\n const setProcessing = setIsLoading || ((_: boolean): void => {});\n const [isAssignAlertModalOpened, setIsAssignAlertModalOpened] =\n React.useState(false);\n\n const [{ alertActions, isLoading }] = useAlertActions(\n alert,\n Boolean(anchorEl),\n );\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleCloseMenu = () => {\n setAnchorEl(null);\n };\n\n const handleAccept = async (): Promise<void> => {\n try {\n handleCloseMenu();\n setProcessing(true);\n\n const { userEntityRef } = await identityApi.getBackstageIdentity();\n const { name: userName } = parseEntityRef(userEntityRef, {\n defaultKind: 'User',\n defaultNamespace: DEFAULT_NAMESPACE,\n });\n const newAlert = await ilertApi.acceptAlert(alert, userName);\n alertApi.post({ message: 'Alert accepted.' });\n\n callback(newAlert);\n setProcessing(false);\n } catch (err) {\n setProcessing(false);\n alertApi.post({ message: err, severity: 'error' });\n }\n };\n\n const handleResolve = async (): Promise<void> => {\n try {\n handleCloseMenu();\n setProcessing(true);\n const { userEntityRef } = await identityApi.getBackstageIdentity();\n const { name: userName } = parseEntityRef(userEntityRef, {\n defaultKind: 'User',\n defaultNamespace: DEFAULT_NAMESPACE,\n });\n const newAlert = await ilertApi.resolveAlert(alert, userName);\n alertApi.post({ message: 'Alert resolved.' });\n\n callback(newAlert);\n setProcessing(false);\n } catch (err) {\n setProcessing(false);\n alertApi.post({ message: err, severity: 'error' });\n }\n };\n\n const handleAssign = () => {\n handleCloseMenu();\n setIsAssignAlertModalOpened(true);\n };\n\n const handleTriggerAction = (action: AlertAction) => async () => {\n try {\n handleCloseMenu();\n setProcessing(true);\n await ilertApi.triggerAlertAction(alert, action);\n alertApi.post({ message: 'Alert action triggered.' });\n setProcessing(false);\n } catch (err) {\n setProcessing(false);\n alertApi.post({ message: err, severity: 'error' });\n }\n };\n\n const actions: React.ReactNode[] = alertActions.map(a => {\n const successTrigger = a.history\n ? a.history.find(h => h.success)\n : undefined;\n const triggeredBy =\n successTrigger && successTrigger.actor\n ? `${successTrigger.actor.firstName} ${successTrigger.actor.lastName}`\n : '';\n return (\n <MenuItem\n key={a.webhookId}\n onClick={handleTriggerAction(a)}\n disabled={!!successTrigger}\n >\n <Typography variant=\"inherit\" noWrap>\n {triggeredBy ? `${a.name} (by ${triggeredBy})` : a.name}\n </Typography>\n </MenuItem>\n );\n });\n\n return (\n <>\n <IconButton\n aria-label=\"more\"\n aria-controls=\"long-menu\"\n aria-haspopup=\"true\"\n onClick={handleClick}\n size=\"small\"\n >\n <MoreVertIcon />\n </IconButton>\n <Menu\n id={`alert-actions-menu-${alert.id}`}\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={handleCloseMenu}\n PaperProps={{\n style: { maxHeight: 48 * 5.5 },\n }}\n >\n {alert.status === 'PENDING' ? (\n <MenuItem key=\"ack\" onClick={handleAccept}>\n <Typography variant=\"inherit\" noWrap>\n Accept\n </Typography>\n </MenuItem>\n ) : null}\n\n {alert.status !== 'RESOLVED' ? (\n <MenuItem key=\"close\" onClick={handleResolve}>\n <Typography variant=\"inherit\" noWrap>\n Resolve\n </Typography>\n </MenuItem>\n ) : null}\n\n {alert.status !== 'RESOLVED' ? (\n <MenuItem key=\"assign\" onClick={handleAssign}>\n <Typography variant=\"inherit\" noWrap>\n Assign\n </Typography>\n </MenuItem>\n ) : null}\n\n {isLoading ? (\n <MenuItem key=\"loading\">\n <Progress style={{ width: '100%' }} />\n </MenuItem>\n ) : (\n actions\n )}\n\n <MenuItem key=\"details\" onClick={handleCloseMenu}>\n <Typography variant=\"inherit\" noWrap>\n <Link to={ilertApi.getAlertDetailsURL(alert)}>View in iLert</Link>\n </Typography>\n </MenuItem>\n </Menu>\n <AlertAssignModal\n alert={alert}\n setIsModalOpened={setIsAssignAlertModalOpened}\n isModalOpened={isAssignAlertModalOpened}\n onAlertChanged={onAlertChanged}\n />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AlertActionsMenu.esm.js","sources":["../../../src/components/Alert/AlertActionsMenu.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 IconButton from '@material-ui/core/IconButton';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Typography from '@material-ui/core/Typography';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport type { MouseEvent, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { ilertApiRef } from '../../api';\nimport { useAlertActions } from '../../hooks/useAlertActions';\nimport { Alert, AlertAction } from '../../types';\nimport { AlertAssignModal } from './AlertAssignModal';\n\nimport { DEFAULT_NAMESPACE, parseEntityRef } from '@backstage/catalog-model';\nimport { Link, Progress } from '@backstage/core-components';\nimport {\n alertApiRef,\n identityApiRef,\n useApi,\n} from '@backstage/core-plugin-api';\n\nexport const AlertActionsMenu = ({\n alert,\n onAlertChanged,\n setIsLoading,\n}: {\n alert: Alert;\n onAlertChanged?: (alert: Alert) => void;\n setIsLoading?: (isLoading: boolean) => void;\n}) => {\n const ilertApi = useApi(ilertApiRef);\n const alertApi = useApi(alertApiRef);\n const identityApi = useApi(identityApiRef);\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const callback = onAlertChanged || ((_: Alert): void => {});\n const setProcessing = setIsLoading || ((_: boolean): void => {});\n const [isAssignAlertModalOpened, setIsAssignAlertModalOpened] =\n useState(false);\n\n const [{ alertActions, isLoading }] = useAlertActions(\n alert,\n Boolean(anchorEl),\n );\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleCloseMenu = () => {\n setAnchorEl(null);\n };\n\n const handleAccept = async (): Promise<void> => {\n try {\n handleCloseMenu();\n setProcessing(true);\n\n const { userEntityRef } = await identityApi.getBackstageIdentity();\n const { name: userName } = parseEntityRef(userEntityRef, {\n defaultKind: 'User',\n defaultNamespace: DEFAULT_NAMESPACE,\n });\n const newAlert = await ilertApi.acceptAlert(alert, userName);\n alertApi.post({ message: 'Alert accepted.' });\n\n callback(newAlert);\n setProcessing(false);\n } catch (err) {\n setProcessing(false);\n alertApi.post({ message: err, severity: 'error' });\n }\n };\n\n const handleResolve = async (): Promise<void> => {\n try {\n handleCloseMenu();\n setProcessing(true);\n const { userEntityRef } = await identityApi.getBackstageIdentity();\n const { name: userName } = parseEntityRef(userEntityRef, {\n defaultKind: 'User',\n defaultNamespace: DEFAULT_NAMESPACE,\n });\n const newAlert = await ilertApi.resolveAlert(alert, userName);\n alertApi.post({ message: 'Alert resolved.' });\n\n callback(newAlert);\n setProcessing(false);\n } catch (err) {\n setProcessing(false);\n alertApi.post({ message: err, severity: 'error' });\n }\n };\n\n const handleAssign = () => {\n handleCloseMenu();\n setIsAssignAlertModalOpened(true);\n };\n\n const handleTriggerAction = (action: AlertAction) => async () => {\n try {\n handleCloseMenu();\n setProcessing(true);\n await ilertApi.triggerAlertAction(alert, action);\n alertApi.post({ message: 'Alert action triggered.' });\n setProcessing(false);\n } catch (err) {\n setProcessing(false);\n alertApi.post({ message: err, severity: 'error' });\n }\n };\n\n const actions: ReactNode[] = alertActions.map(a => {\n const successTrigger = a.history\n ? a.history.find(h => h.success)\n : undefined;\n const triggeredBy =\n successTrigger && successTrigger.actor\n ? `${successTrigger.actor.firstName} ${successTrigger.actor.lastName}`\n : '';\n return (\n <MenuItem\n key={a.webhookId}\n onClick={handleTriggerAction(a)}\n disabled={!!successTrigger}\n >\n <Typography variant=\"inherit\" noWrap>\n {triggeredBy ? `${a.name} (by ${triggeredBy})` : a.name}\n </Typography>\n </MenuItem>\n );\n });\n\n return (\n <>\n <IconButton\n aria-label=\"more\"\n aria-controls=\"long-menu\"\n aria-haspopup=\"true\"\n onClick={handleClick}\n size=\"small\"\n >\n <MoreVertIcon />\n </IconButton>\n <Menu\n id={`alert-actions-menu-${alert.id}`}\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={handleCloseMenu}\n PaperProps={{\n style: { maxHeight: 48 * 5.5 },\n }}\n >\n {alert.status === 'PENDING' ? (\n <MenuItem key=\"ack\" onClick={handleAccept}>\n <Typography variant=\"inherit\" noWrap>\n Accept\n </Typography>\n </MenuItem>\n ) : null}\n\n {alert.status !== 'RESOLVED' ? (\n <MenuItem key=\"close\" onClick={handleResolve}>\n <Typography variant=\"inherit\" noWrap>\n Resolve\n </Typography>\n </MenuItem>\n ) : null}\n\n {alert.status !== 'RESOLVED' ? (\n <MenuItem key=\"assign\" onClick={handleAssign}>\n <Typography variant=\"inherit\" noWrap>\n Assign\n </Typography>\n </MenuItem>\n ) : null}\n\n {isLoading ? (\n <MenuItem key=\"loading\">\n <Progress style={{ width: '100%' }} />\n </MenuItem>\n ) : (\n actions\n )}\n\n <MenuItem key=\"details\" onClick={handleCloseMenu}>\n <Typography variant=\"inherit\" noWrap>\n <Link to={ilertApi.getAlertDetailsURL(alert)}>View in iLert</Link>\n </Typography>\n </MenuItem>\n </Menu>\n <AlertAssignModal\n alert={alert}\n setIsModalOpened={setIsAssignAlertModalOpened}\n isModalOpened={isAssignAlertModalOpened}\n onAlertChanged={onAlertChanged}\n />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
1
2
  import { useApi, alertApiRef } from '@backstage/core-plugin-api';
2
3
  import Typography from '@material-ui/core/Typography';
3
4
  import Button from '@material-ui/core/Button';
@@ -9,7 +10,6 @@ import { makeStyles } from '@material-ui/core/styles';
9
10
  import TextField from '@material-ui/core/TextField';
10
11
  import Alert from '@material-ui/lab/Alert';
11
12
  import Autocomplete from '@material-ui/lab/Autocomplete';
12
- import React from 'react';
13
13
  import { ilertApiRef } from '../../api/client.esm.js';
14
14
  import { useAssignAlert } from '../../hooks/useAssignAlert.esm.js';
15
15
 
@@ -76,70 +76,78 @@ const AlertAssignModal = ({
76
76
  }, 250);
77
77
  };
78
78
  const canAssign = !!alertResponder;
79
- return /* @__PURE__ */ React.createElement(
79
+ return /* @__PURE__ */ jsxs(
80
80
  Dialog,
81
81
  {
82
82
  open: isModalOpened,
83
83
  onClose: handleClose,
84
- "aria-labelledby": "assign-alert-form-title"
85
- },
86
- /* @__PURE__ */ React.createElement(DialogTitle, { id: "assign-alert-form-title" }, "Select responder to assign"),
87
- /* @__PURE__ */ React.createElement(DialogContent, null, /* @__PURE__ */ React.createElement(Alert, { severity: "info" }, /* @__PURE__ */ React.createElement(Typography, { variant: "body1", gutterBottom: true, align: "justify" }, "This action will assign the alert to the selected responder.")), /* @__PURE__ */ React.createElement(
88
- Autocomplete,
89
- {
90
- disabled: isLoading,
91
- options: alertRespondersList,
92
- value: alertResponder,
93
- classes: {
94
- root: classes.formControl,
95
- option: classes.option
96
- },
97
- onChange: (_event, newValue) => {
98
- setAlertResponder(newValue);
99
- },
100
- autoHighlight: true,
101
- groupBy: (option) => {
102
- switch (option.group) {
103
- case "SUGGESTED":
104
- return "Suggested responders";
105
- case "USER":
106
- return "Users";
107
- case "ESCALATION_POLICY":
108
- return "Escalation policies";
109
- case "ON_CALL_SCHEDULE":
110
- return "Schedules";
111
- default:
112
- return "";
113
- }
114
- },
115
- getOptionLabel: (a) => a.name,
116
- renderOption: (a) => /* @__PURE__ */ React.createElement("div", { className: classes.optionWrapper }, /* @__PURE__ */ React.createElement(Typography, { noWrap: true }, a.name)),
117
- renderInput: (params) => /* @__PURE__ */ React.createElement(
118
- TextField,
119
- {
120
- ...params,
121
- label: "Responder",
122
- variant: "outlined",
123
- margin: "normal",
124
- inputProps: {
125
- ...params.inputProps,
126
- autoComplete: "new-password"
127
- // disable autocomplete and autofill
84
+ "aria-labelledby": "assign-alert-form-title",
85
+ children: [
86
+ /* @__PURE__ */ jsx(DialogTitle, { id: "assign-alert-form-title", children: "Select responder to assign" }),
87
+ /* @__PURE__ */ jsxs(DialogContent, { children: [
88
+ /* @__PURE__ */ jsx(Alert, { severity: "info", children: /* @__PURE__ */ jsx(Typography, { variant: "body1", gutterBottom: true, align: "justify", children: "This action will assign the alert to the selected responder." }) }),
89
+ /* @__PURE__ */ jsx(
90
+ Autocomplete,
91
+ {
92
+ disabled: isLoading,
93
+ options: alertRespondersList,
94
+ value: alertResponder,
95
+ classes: {
96
+ root: classes.formControl,
97
+ option: classes.option
98
+ },
99
+ onChange: (_event, newValue) => {
100
+ setAlertResponder(newValue);
101
+ },
102
+ autoHighlight: true,
103
+ groupBy: (option) => {
104
+ switch (option.group) {
105
+ case "SUGGESTED":
106
+ return "Suggested responders";
107
+ case "USER":
108
+ return "Users";
109
+ case "ESCALATION_POLICY":
110
+ return "Escalation policies";
111
+ case "ON_CALL_SCHEDULE":
112
+ return "Schedules";
113
+ default:
114
+ return "";
115
+ }
116
+ },
117
+ getOptionLabel: (a) => a.name,
118
+ renderOption: (a) => /* @__PURE__ */ jsx("div", { className: classes.optionWrapper, children: /* @__PURE__ */ jsx(Typography, { noWrap: true, children: a.name }) }),
119
+ renderInput: (params) => /* @__PURE__ */ jsx(
120
+ TextField,
121
+ {
122
+ ...params,
123
+ label: "Responder",
124
+ variant: "outlined",
125
+ margin: "normal",
126
+ inputProps: {
127
+ ...params.inputProps,
128
+ autoComplete: "new-password"
129
+ // disable autocomplete and autofill
130
+ }
131
+ }
132
+ )
128
133
  }
129
- }
130
- )
131
- }
132
- )),
133
- /* @__PURE__ */ React.createElement(DialogActions, null, /* @__PURE__ */ React.createElement(
134
- Button,
135
- {
136
- disabled: !canAssign,
137
- onClick: handleAssign,
138
- color: "primary",
139
- variant: "contained"
140
- },
141
- "Assign"
142
- ), /* @__PURE__ */ React.createElement(Button, { onClick: handleClose, color: "primary" }, "Cancel"))
134
+ )
135
+ ] }),
136
+ /* @__PURE__ */ jsxs(DialogActions, { children: [
137
+ /* @__PURE__ */ jsx(
138
+ Button,
139
+ {
140
+ disabled: !canAssign,
141
+ onClick: handleAssign,
142
+ color: "primary",
143
+ variant: "contained",
144
+ children: "Assign"
145
+ }
146
+ ),
147
+ /* @__PURE__ */ jsx(Button, { onClick: handleClose, color: "primary", children: "Cancel" })
148
+ ] })
149
+ ]
150
+ }
143
151
  );
144
152
  };
145
153
 
@@ -1 +1 @@
1
- {"version":3,"file":"AlertAssignModal.esm.js","sources":["../../../src/components/Alert/AlertAssignModal.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 { alertApiRef, useApi } from '@backstage/core-plugin-api';\nimport Typography from '@material-ui/core/Typography';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport { makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport MUIAlert from '@material-ui/lab/Alert';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport React from 'react';\nimport { ilertApiRef } from '../../api';\nimport { useAssignAlert } from '../../hooks/useAssignAlert';\nimport { Alert } from '../../types';\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n formControl: {\n minWidth: 120,\n width: '100%',\n },\n option: {\n fontSize: 15,\n '& > span': {\n marginRight: 10,\n fontSize: 18,\n },\n },\n optionWrapper: {\n display: 'flex',\n width: '100%',\n },\n sourceImage: {\n height: 22,\n paddingRight: 4,\n },\n}));\n\nexport const AlertAssignModal = ({\n alert,\n isModalOpened,\n setIsModalOpened,\n onAlertChanged,\n}: {\n alert: Alert | null;\n isModalOpened: boolean;\n setIsModalOpened: (open: boolean) => void;\n onAlertChanged?: (alert: Alert) => void;\n}) => {\n const [\n { alertRespondersList, alertResponder, isLoading },\n { setIsLoading, setAlertResponder, setAlertRespondersList },\n ] = useAssignAlert(alert, isModalOpened);\n const callback = onAlertChanged || ((_: Alert): void => {});\n const ilertApi = useApi(ilertApiRef);\n const alertApi = useApi(alertApiRef);\n const classes = useStyles();\n\n const handleClose = () => {\n setAlertRespondersList([]);\n setIsModalOpened(false);\n };\n\n const handleAssign = () => {\n if (!alert || !alertResponder) {\n return;\n }\n setIsLoading(true);\n setAlertRespondersList([]);\n setTimeout(async () => {\n try {\n const newAlert = await ilertApi.assignAlert(alert, alertResponder);\n callback(newAlert);\n alertApi.post({ message: 'Alert assigned.' });\n } catch (err) {\n alertApi.post({ message: err, severity: 'error' });\n }\n setIsLoading(false);\n setIsModalOpened(false);\n }, 250);\n };\n\n const canAssign = !!alertResponder;\n\n return (\n <Dialog\n open={isModalOpened}\n onClose={handleClose}\n aria-labelledby=\"assign-alert-form-title\"\n >\n <DialogTitle id=\"assign-alert-form-title\">\n Select responder to assign\n </DialogTitle>\n <DialogContent>\n <MUIAlert severity=\"info\">\n <Typography variant=\"body1\" gutterBottom align=\"justify\">\n This action will assign the alert to the selected responder.\n </Typography>\n </MUIAlert>\n <Autocomplete\n disabled={isLoading}\n options={alertRespondersList}\n value={alertResponder}\n classes={{\n root: classes.formControl,\n option: classes.option,\n }}\n onChange={(_event: any, newValue: any) => {\n setAlertResponder(newValue);\n }}\n autoHighlight\n groupBy={option => {\n switch (option.group) {\n case 'SUGGESTED':\n return 'Suggested responders';\n case 'USER':\n return 'Users';\n case 'ESCALATION_POLICY':\n return 'Escalation policies';\n case 'ON_CALL_SCHEDULE':\n return 'Schedules';\n default:\n return '';\n }\n }}\n getOptionLabel={a => a.name}\n renderOption={a => (\n <div className={classes.optionWrapper}>\n <Typography noWrap>{a.name}</Typography>\n </div>\n )}\n renderInput={params => (\n <TextField\n {...params}\n label=\"Responder\"\n variant=\"outlined\"\n margin=\"normal\"\n inputProps={{\n ...params.inputProps,\n autoComplete: 'new-password', // disable autocomplete and autofill\n }}\n />\n )}\n />\n </DialogContent>\n <DialogActions>\n <Button\n disabled={!canAssign}\n onClick={handleAssign}\n color=\"primary\"\n variant=\"contained\"\n >\n Assign\n </Button>\n <Button onClick={handleClose} color=\"primary\">\n Cancel\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":["MUIAlert"],"mappings":"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"}
1
+ {"version":3,"file":"AlertAssignModal.esm.js","sources":["../../../src/components/Alert/AlertAssignModal.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 { alertApiRef, useApi } from '@backstage/core-plugin-api';\nimport Typography from '@material-ui/core/Typography';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport { makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport MUIAlert from '@material-ui/lab/Alert';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { ilertApiRef } from '../../api';\nimport { useAssignAlert } from '../../hooks/useAssignAlert';\nimport { Alert } from '../../types';\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n formControl: {\n minWidth: 120,\n width: '100%',\n },\n option: {\n fontSize: 15,\n '& > span': {\n marginRight: 10,\n fontSize: 18,\n },\n },\n optionWrapper: {\n display: 'flex',\n width: '100%',\n },\n sourceImage: {\n height: 22,\n paddingRight: 4,\n },\n}));\n\nexport const AlertAssignModal = ({\n alert,\n isModalOpened,\n setIsModalOpened,\n onAlertChanged,\n}: {\n alert: Alert | null;\n isModalOpened: boolean;\n setIsModalOpened: (open: boolean) => void;\n onAlertChanged?: (alert: Alert) => void;\n}) => {\n const [\n { alertRespondersList, alertResponder, isLoading },\n { setIsLoading, setAlertResponder, setAlertRespondersList },\n ] = useAssignAlert(alert, isModalOpened);\n const callback = onAlertChanged || ((_: Alert): void => {});\n const ilertApi = useApi(ilertApiRef);\n const alertApi = useApi(alertApiRef);\n const classes = useStyles();\n\n const handleClose = () => {\n setAlertRespondersList([]);\n setIsModalOpened(false);\n };\n\n const handleAssign = () => {\n if (!alert || !alertResponder) {\n return;\n }\n setIsLoading(true);\n setAlertRespondersList([]);\n setTimeout(async () => {\n try {\n const newAlert = await ilertApi.assignAlert(alert, alertResponder);\n callback(newAlert);\n alertApi.post({ message: 'Alert assigned.' });\n } catch (err) {\n alertApi.post({ message: err, severity: 'error' });\n }\n setIsLoading(false);\n setIsModalOpened(false);\n }, 250);\n };\n\n const canAssign = !!alertResponder;\n\n return (\n <Dialog\n open={isModalOpened}\n onClose={handleClose}\n aria-labelledby=\"assign-alert-form-title\"\n >\n <DialogTitle id=\"assign-alert-form-title\">\n Select responder to assign\n </DialogTitle>\n <DialogContent>\n <MUIAlert severity=\"info\">\n <Typography variant=\"body1\" gutterBottom align=\"justify\">\n This action will assign the alert to the selected responder.\n </Typography>\n </MUIAlert>\n <Autocomplete\n disabled={isLoading}\n options={alertRespondersList}\n value={alertResponder}\n classes={{\n root: classes.formControl,\n option: classes.option,\n }}\n onChange={(_event: any, newValue: any) => {\n setAlertResponder(newValue);\n }}\n autoHighlight\n groupBy={option => {\n switch (option.group) {\n case 'SUGGESTED':\n return 'Suggested responders';\n case 'USER':\n return 'Users';\n case 'ESCALATION_POLICY':\n return 'Escalation policies';\n case 'ON_CALL_SCHEDULE':\n return 'Schedules';\n default:\n return '';\n }\n }}\n getOptionLabel={a => a.name}\n renderOption={a => (\n <div className={classes.optionWrapper}>\n <Typography noWrap>{a.name}</Typography>\n </div>\n )}\n renderInput={params => (\n <TextField\n {...params}\n label=\"Responder\"\n variant=\"outlined\"\n margin=\"normal\"\n inputProps={{\n ...params.inputProps,\n autoComplete: 'new-password', // disable autocomplete and autofill\n }}\n />\n )}\n />\n </DialogContent>\n <DialogActions>\n <Button\n disabled={!canAssign}\n onClick={handleAssign}\n color=\"primary\"\n variant=\"contained\"\n >\n Assign\n </Button>\n <Button onClick={handleClose} color=\"primary\">\n Cancel\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":["MUIAlert"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsxs } from 'react/jsx-runtime';
2
2
  import { ilertApiRef } from '../../api/client.esm.js';
3
3
  import { Link } from '@backstage/core-components';
4
4
  import { useApi } from '@backstage/core-plugin-api';
@@ -8,7 +8,10 @@ const AlertLink = ({ alert }) => {
8
8
  if (!alert) {
9
9
  return null;
10
10
  }
11
- return /* @__PURE__ */ React.createElement(Link, { to: ilertApi.getAlertDetailsURL(alert) }, "#", alert.id);
11
+ return /* @__PURE__ */ jsxs(Link, { to: ilertApi.getAlertDetailsURL(alert), children: [
12
+ "#",
13
+ alert.id
14
+ ] });
12
15
  };
13
16
 
14
17
  export { AlertLink };
@@ -1 +1 @@
1
- {"version":3,"file":"AlertLink.esm.js","sources":["../../../src/components/Alert/AlertLink.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 React from 'react';\nimport { ilertApiRef } from '../../api';\nimport { Alert } from '../../types';\n\nimport { Link } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\n\nexport const AlertLink = ({ alert }: { alert: Alert | null }) => {\n const ilertApi = useApi(ilertApiRef);\n\n if (!alert) {\n return null;\n }\n\n return <Link to={ilertApi.getAlertDetailsURL(alert)}>#{alert.id}</Link>;\n};\n"],"names":[],"mappings":";;;;;AAsBO,MAAM,SAAY,GAAA,CAAC,EAAE,KAAA,EAAqC,KAAA;AAC/D,EAAM,MAAA,QAAA,GAAW,OAAO,WAAW,CAAA;AAEnC,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAO,OAAA,IAAA;AAAA;AAGT,EAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,EAAI,EAAA,QAAA,CAAS,mBAAmB,KAAK,CAAA,EAAA,EAAG,GAAE,EAAA,KAAA,CAAM,EAAG,CAAA;AAClE;;;;"}
1
+ {"version":3,"file":"AlertLink.esm.js","sources":["../../../src/components/Alert/AlertLink.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 { ilertApiRef } from '../../api';\nimport { Alert } from '../../types';\n\nimport { Link } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\n\nexport const AlertLink = ({ alert }: { alert: Alert | null }) => {\n const ilertApi = useApi(ilertApiRef);\n\n if (!alert) {\n return null;\n }\n\n return <Link to={ilertApi.getAlertDetailsURL(alert)}>#{alert.id}</Link>;\n};\n"],"names":[],"mappings":";;;;;AAqBO,MAAM,SAAY,GAAA,CAAC,EAAE,KAAA,EAAqC,KAAA;AAC/D,EAAM,MAAA,QAAA,GAAW,OAAO,WAAW,CAAA;AAEnC,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,4BAAQ,IAAK,EAAA,EAAA,EAAA,EAAI,QAAS,CAAA,kBAAA,CAAmB,KAAK,CAAG,EAAA,QAAA,EAAA;AAAA,IAAA,GAAA;AAAA,IAAE,KAAM,CAAA;AAAA,GAAG,EAAA,CAAA;AAClE;;;;"}