@perses-dev/alert-manager-plugin 0.1.1 → 0.2.0-beta.2

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 (334) hide show
  1. package/__mf/js/AlertManager.42d95b33.js +7 -0
  2. package/__mf/js/async/1299.d5af4767.js +1 -0
  3. package/__mf/js/async/1522.04dc197d.js +22 -0
  4. package/__mf/js/async/1616.0c9baa4c.js +1 -0
  5. package/__mf/js/async/1871.5e21fb62.js +1 -0
  6. package/__mf/js/async/1969.e54f3991.js +1 -0
  7. package/__mf/js/async/2043.4e8f2371.js +2 -0
  8. package/__mf/js/async/{430.74d85c4b.js.LICENSE.txt → 2043.4e8f2371.js.LICENSE.txt} +1 -41
  9. package/__mf/js/async/2197.53bcb69e.js +1 -0
  10. package/__mf/js/async/2218.8b7e30c2.js +2 -0
  11. package/__mf/js/async/2317.e656eab3.js +2 -0
  12. package/__mf/js/async/2377.5295b064.js +1 -0
  13. package/__mf/js/async/2650.0b5955b5.js +3 -0
  14. package/__mf/js/async/2657.e6a11726.js +1 -0
  15. package/__mf/js/async/3222.6ad1b128.js +1 -0
  16. package/__mf/js/async/3514.e71d5cb9.js +2 -0
  17. package/__mf/js/async/3910.1bd28e15.js +1 -0
  18. package/__mf/js/async/392.26ae5cc4.js +2 -0
  19. package/__mf/js/async/3963.181d3782.js +1 -0
  20. package/__mf/js/async/4077.91abd1da.js +1 -0
  21. package/__mf/js/async/4121.f9595b70.js +2 -0
  22. package/__mf/js/async/4133.cc678ae9.js +28 -0
  23. package/__mf/js/async/4213.005a1a65.js +1 -0
  24. package/__mf/js/async/{4466.a8145edd.js → 4466.7cca717d.js} +3 -3
  25. package/__mf/js/async/4481.5bc5aa13.js +2 -0
  26. package/__mf/js/async/4496.3760da2f.js +1 -0
  27. package/__mf/js/async/4978.f1550309.js +1 -0
  28. package/__mf/js/async/5038.b1e9133a.js +2 -0
  29. package/__mf/js/async/5071.eeb1c9b1.js +1 -0
  30. package/__mf/js/async/5428.6922d4df.js +1 -0
  31. package/__mf/js/async/5759.84fc4d0b.js +7 -0
  32. package/__mf/js/async/{3540.96681482.js.LICENSE.txt → 5759.84fc4d0b.js.LICENSE.txt} +41 -1
  33. package/__mf/js/async/6274.9f68ee7d.js +2 -0
  34. package/__mf/js/async/6390.0fd40bd8.js +2 -0
  35. package/__mf/js/async/6401.7bf2c4c2.js +1 -0
  36. package/__mf/js/async/6594.b3a19fc1.js +2 -0
  37. package/__mf/js/async/6854.f05f8da0.js +1 -0
  38. package/__mf/js/async/6911.bc380f0c.js +37 -0
  39. package/__mf/js/async/7177.83345474.js +1 -0
  40. package/__mf/js/async/7192.715c4cb3.js +1 -0
  41. package/__mf/js/async/733.8bc3bc96.js +1 -0
  42. package/__mf/js/async/7862.10a19eef.js +2 -0
  43. package/__mf/js/async/7978.4ca49c3a.js +1 -0
  44. package/__mf/js/async/8470.7ebe8e66.js +2 -0
  45. package/__mf/js/async/8697.7b6d10e1.js +1 -0
  46. package/__mf/js/async/873.fcc6e5b7.js +1 -0
  47. package/__mf/js/async/8907.5d1f9505.js +1 -0
  48. package/__mf/js/async/{9040.94717f28.js → 9040.8de751d6.js} +4 -4
  49. package/__mf/js/async/9184.307e83da.js +1 -0
  50. package/__mf/js/async/9235.1b0d1de0.js +1 -0
  51. package/__mf/js/async/941.36858244.js +2 -0
  52. package/__mf/js/async/9588.31544c69.js +1 -0
  53. package/__mf/js/async/9836.e4cf02db.js +1 -0
  54. package/__mf/js/async/__federation_expose_AlertManagerAlertsExplorer.4fbf2fa1.js +2 -0
  55. package/__mf/js/async/__federation_expose_AlertManagerAlertsQuery.27d99dac.js +1 -0
  56. package/__mf/js/async/__federation_expose_AlertManagerDatasource.c2b36e70.js +2 -0
  57. package/__mf/js/async/__federation_expose_AlertManagerSilencesExplorer.65e1901a.js +2 -0
  58. package/__mf/js/async/__federation_expose_AlertManagerSilencesQuery.f619a448.js +2 -0
  59. package/__mf/js/async/__federation_expose_AlertTable.6c37126b.js +1 -0
  60. package/__mf/js/async/__federation_expose_SilenceTable.3a614a2f.js +1 -0
  61. package/__mf/js/async/lib-router.20ba053c.js +2 -0
  62. package/__mf/js/{main.259f5b24.js → main.babca431.js} +2 -2
  63. package/lib/bootstrap.js +2 -2
  64. package/lib/components/ColumnsEditor.d.ts +1 -1
  65. package/lib/components/ColumnsEditor.d.ts.map +1 -1
  66. package/lib/components/ColumnsEditor.js +7 -7
  67. package/lib/components/ColumnsEditor.js.map +1 -1
  68. package/lib/components/LazyTextField.d.ts +1 -1
  69. package/lib/components/LazyTextField.d.ts.map +1 -1
  70. package/lib/components/LazyTextField.js +2 -2
  71. package/lib/components/LazyTextField.js.map +1 -1
  72. package/lib/components/MatcherEditor.d.ts +1 -1
  73. package/lib/components/MatcherEditor.d.ts.map +1 -1
  74. package/lib/components/MatcherEditor.js +4 -4
  75. package/lib/components/MatcherEditor.js.map +1 -1
  76. package/lib/components/MatchersList.d.ts +2 -2
  77. package/lib/components/MatchersList.d.ts.map +1 -1
  78. package/lib/components/MatchersList.js +1 -1
  79. package/lib/components/MatchersList.js.map +1 -1
  80. package/lib/components/SilenceForm.d.ts +2 -2
  81. package/lib/components/SilenceForm.d.ts.map +1 -1
  82. package/lib/components/SilenceForm.js +4 -4
  83. package/lib/components/SilenceForm.js.map +1 -1
  84. package/lib/components/StatusBadge.d.ts +1 -1
  85. package/lib/components/StatusBadge.d.ts.map +1 -1
  86. package/lib/components/StatusBadge.js +1 -1
  87. package/lib/components/StatusBadge.js.map +1 -1
  88. package/lib/components/index.js +5 -5
  89. package/lib/components/index.js.map +1 -1
  90. package/lib/explore/AlertManagerAlertsExplorer.d.ts +1 -1
  91. package/lib/explore/AlertManagerAlertsExplorer.d.ts.map +1 -1
  92. package/lib/explore/AlertManagerAlertsExplorer.js +5 -5
  93. package/lib/explore/AlertManagerAlertsExplorer.js.map +1 -1
  94. package/lib/explore/AlertManagerSilencesExplorer.d.ts +1 -1
  95. package/lib/explore/AlertManagerSilencesExplorer.d.ts.map +1 -1
  96. package/lib/explore/AlertManagerSilencesExplorer.js +10 -10
  97. package/lib/explore/AlertManagerSilencesExplorer.js.map +1 -1
  98. package/lib/getPluginModule.d.ts +1 -1
  99. package/lib/getPluginModule.d.ts.map +1 -1
  100. package/lib/getPluginModule.js +3 -1
  101. package/lib/getPluginModule.js.map +1 -1
  102. package/lib/index-federation.js +1 -1
  103. package/lib/index.js +4 -4
  104. package/lib/index.js.map +1 -1
  105. package/lib/model/alertmanager-client.d.ts +3 -3
  106. package/lib/model/alertmanager-client.d.ts.map +1 -1
  107. package/lib/model/alertmanager-client.js +4 -2
  108. package/lib/model/alertmanager-client.js.map +1 -1
  109. package/lib/model/alertmanager-selectors.d.ts +2 -2
  110. package/lib/model/alertmanager-selectors.d.ts.map +1 -1
  111. package/lib/model/alertmanager-selectors.js +1 -1
  112. package/lib/model/alertmanager-selectors.js.map +1 -1
  113. package/lib/model/index.js +3 -3
  114. package/lib/model/index.js.map +1 -1
  115. package/lib/plugins/AlertManagerDatasourceEditor.d.ts +2 -2
  116. package/lib/plugins/AlertManagerDatasourceEditor.d.ts.map +1 -1
  117. package/lib/plugins/AlertManagerDatasourceEditor.js +1 -1
  118. package/lib/plugins/AlertManagerDatasourceEditor.js.map +1 -1
  119. package/lib/plugins/alert-table/AlertTable.d.ts +3 -3
  120. package/lib/plugins/alert-table/AlertTable.d.ts.map +1 -1
  121. package/lib/plugins/alert-table/AlertTable.js +5 -5
  122. package/lib/plugins/alert-table/AlertTable.js.map +1 -1
  123. package/lib/plugins/alert-table/AlertTableColumnsEditor.d.ts +3 -3
  124. package/lib/plugins/alert-table/AlertTableColumnsEditor.d.ts.map +1 -1
  125. package/lib/plugins/alert-table/AlertTableColumnsEditor.js +4 -4
  126. package/lib/plugins/alert-table/AlertTableColumnsEditor.js.map +1 -1
  127. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.d.ts +3 -3
  128. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.d.ts.map +1 -1
  129. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.js +4 -4
  130. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.js.map +1 -1
  131. package/lib/plugins/alert-table/AlertTableLabelsEditor.d.ts +3 -3
  132. package/lib/plugins/alert-table/AlertTableLabelsEditor.d.ts.map +1 -1
  133. package/lib/plugins/alert-table/AlertTableLabelsEditor.js +6 -6
  134. package/lib/plugins/alert-table/AlertTableLabelsEditor.js.map +1 -1
  135. package/lib/plugins/alert-table/AlertTableOptionsEditor.d.ts +3 -3
  136. package/lib/plugins/alert-table/AlertTableOptionsEditor.d.ts.map +1 -1
  137. package/lib/plugins/alert-table/AlertTableOptionsEditor.js +5 -5
  138. package/lib/plugins/alert-table/AlertTableOptionsEditor.js.map +1 -1
  139. package/lib/plugins/alert-table/AlertTablePanel.d.ts +4 -4
  140. package/lib/plugins/alert-table/AlertTablePanel.d.ts.map +1 -1
  141. package/lib/plugins/alert-table/AlertTablePanel.js +21 -21
  142. package/lib/plugins/alert-table/AlertTablePanel.js.map +1 -1
  143. package/lib/plugins/alert-table/alert-table-model.d.ts +1 -1
  144. package/lib/plugins/alert-table/alert-table-model.d.ts.map +1 -1
  145. package/lib/plugins/alert-table/alert-table-model.js +2 -2
  146. package/lib/plugins/alert-table/alert-table-model.js.map +1 -1
  147. package/lib/plugins/alert-table/alert-table-sorting.d.ts +2 -2
  148. package/lib/plugins/alert-table/alert-table-sorting.d.ts.map +1 -1
  149. package/lib/plugins/alert-table/alert-table-sorting.js +1 -1
  150. package/lib/plugins/alert-table/alert-table-sorting.js.map +1 -1
  151. package/lib/plugins/alert-table/label-colors.d.ts +1 -1
  152. package/lib/plugins/alert-table/label-colors.d.ts.map +1 -1
  153. package/lib/plugins/alert-table/label-colors.js.map +1 -1
  154. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.d.ts +2 -2
  155. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.d.ts.map +1 -1
  156. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js +3 -3
  157. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js.map +1 -1
  158. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.d.ts +2 -2
  159. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.d.ts.map +1 -1
  160. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js +7 -7
  161. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js.map +1 -1
  162. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.d.ts +3 -3
  163. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.d.ts.map +1 -1
  164. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.js +2 -2
  165. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.js.map +1 -1
  166. package/lib/plugins/alertmanager-datasource.d.ts +3 -3
  167. package/lib/plugins/alertmanager-datasource.d.ts.map +1 -1
  168. package/lib/plugins/alertmanager-datasource.js +2 -2
  169. package/lib/plugins/alertmanager-datasource.js.map +1 -1
  170. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.d.ts +2 -2
  171. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.d.ts.map +1 -1
  172. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js +3 -3
  173. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js.map +1 -1
  174. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.d.ts +2 -2
  175. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.d.ts.map +1 -1
  176. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js +7 -7
  177. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js.map +1 -1
  178. package/lib/plugins/alertmanager-silences-query/get-silences-data.d.ts +3 -3
  179. package/lib/plugins/alertmanager-silences-query/get-silences-data.d.ts.map +1 -1
  180. package/lib/plugins/alertmanager-silences-query/get-silences-data.js +2 -2
  181. package/lib/plugins/alertmanager-silences-query/get-silences-data.js.map +1 -1
  182. package/lib/plugins/index.js +16 -16
  183. package/lib/plugins/index.js.map +1 -1
  184. package/lib/plugins/silence-table/SilenceTable.d.ts +2 -2
  185. package/lib/plugins/silence-table/SilenceTable.d.ts.map +1 -1
  186. package/lib/plugins/silence-table/SilenceTable.js +3 -3
  187. package/lib/plugins/silence-table/SilenceTable.js.map +1 -1
  188. package/lib/plugins/silence-table/SilenceTableColumnsEditor.d.ts +3 -3
  189. package/lib/plugins/silence-table/SilenceTableColumnsEditor.d.ts.map +1 -1
  190. package/lib/plugins/silence-table/SilenceTableColumnsEditor.js +5 -5
  191. package/lib/plugins/silence-table/SilenceTableColumnsEditor.js.map +1 -1
  192. package/lib/plugins/silence-table/SilenceTableOptionsEditor.d.ts +3 -3
  193. package/lib/plugins/silence-table/SilenceTableOptionsEditor.d.ts.map +1 -1
  194. package/lib/plugins/silence-table/SilenceTableOptionsEditor.js +5 -5
  195. package/lib/plugins/silence-table/SilenceTableOptionsEditor.js.map +1 -1
  196. package/lib/plugins/silence-table/SilenceTablePanel.d.ts +4 -4
  197. package/lib/plugins/silence-table/SilenceTablePanel.d.ts.map +1 -1
  198. package/lib/plugins/silence-table/SilenceTablePanel.js +13 -13
  199. package/lib/plugins/silence-table/SilenceTablePanel.js.map +1 -1
  200. package/lib/plugins/silence-table/silence-table-model.d.ts +1 -1
  201. package/lib/plugins/silence-table/silence-table-model.d.ts.map +1 -1
  202. package/lib/plugins/silence-table/silence-table-model.js.map +1 -1
  203. package/lib/plugins/silence-table/silence-table-sorting.d.ts +2 -2
  204. package/lib/plugins/silence-table/silence-table-sorting.d.ts.map +1 -1
  205. package/lib/plugins/silence-table/silence-table-sorting.js +1 -1
  206. package/lib/plugins/silence-table/silence-table-sorting.js.map +1 -1
  207. package/lib/plugins/types.d.ts +3 -3
  208. package/lib/plugins/types.d.ts.map +1 -1
  209. package/lib/plugins/types.js.map +1 -1
  210. package/lib/setup-tests.d.ts +1 -1
  211. package/lib/setup-tests.d.ts.map +1 -1
  212. package/lib/setup-tests.js +2 -2
  213. package/lib/setup-tests.js.map +1 -1
  214. package/mf-manifest.json +302 -308
  215. package/mf-stats.json +308 -314
  216. package/package.json +12 -12
  217. package/__mf/js/AlertManager.377d377b.js +0 -7
  218. package/__mf/js/async/1616.24f00c9d.js +0 -1
  219. package/__mf/js/async/1728.8a326412.js +0 -1
  220. package/__mf/js/async/1871.23ff54b3.js +0 -1
  221. package/__mf/js/async/1969.a83b1b48.js +0 -1
  222. package/__mf/js/async/2218.7829c9d9.js +0 -2
  223. package/__mf/js/async/2377.f8875a4e.js +0 -1
  224. package/__mf/js/async/2657.fe8dd44f.js +0 -1
  225. package/__mf/js/async/2842.993baf22.js +0 -1
  226. package/__mf/js/async/3468.1679f87f.js +0 -1
  227. package/__mf/js/async/3540.96681482.js +0 -2
  228. package/__mf/js/async/392.7e11dd69.js +0 -2
  229. package/__mf/js/async/3963.fb6246d2.js +0 -1
  230. package/__mf/js/async/3981.84d12fdc.js +0 -4
  231. package/__mf/js/async/3981.84d12fdc.js.LICENSE.txt +0 -24
  232. package/__mf/js/async/4121.ec666be2.js +0 -2
  233. package/__mf/js/async/4133.e94df4f8.js +0 -28
  234. package/__mf/js/async/4213.a0c4f2eb.js +0 -1
  235. package/__mf/js/async/430.74d85c4b.js +0 -7
  236. package/__mf/js/async/4788.49ffeac3.js +0 -1
  237. package/__mf/js/async/5038.269393e3.js +0 -2
  238. package/__mf/js/async/5481.cf6703fd.js +0 -2
  239. package/__mf/js/async/5570.d4dd47e0.js +0 -1
  240. package/__mf/js/async/573.ce8ce2ef.js +0 -2
  241. package/__mf/js/async/6274.8c77cb1a.js +0 -2
  242. package/__mf/js/async/6390.3f6f279d.js +0 -2
  243. package/__mf/js/async/6401.1a59dbad.js +0 -1
  244. package/__mf/js/async/6594.b02adfd9.js +0 -2
  245. package/__mf/js/async/663.5445c7e0.js +0 -1
  246. package/__mf/js/async/6854.1d628838.js +0 -1
  247. package/__mf/js/async/7177.27c86137.js +0 -1
  248. package/__mf/js/async/7192.ede9860b.js +0 -1
  249. package/__mf/js/async/7283.8c1cb6ee.js +0 -2
  250. package/__mf/js/async/7984.163a6ddb.js +0 -22
  251. package/__mf/js/async/804.23da0d30.js +0 -37
  252. package/__mf/js/async/8470.2df0db71.js +0 -2
  253. package/__mf/js/async/8697.c13c6603.js +0 -1
  254. package/__mf/js/async/8711.c7dc09b8.js +0 -2
  255. package/__mf/js/async/8907.9e3edf43.js +0 -1
  256. package/__mf/js/async/9184.27a439a4.js +0 -1
  257. package/__mf/js/async/9235.00f9412f.js +0 -1
  258. package/__mf/js/async/941.d3bc6208.js +0 -2
  259. package/__mf/js/async/9537.36ff6f15.js +0 -1
  260. package/__mf/js/async/9634.3a366799.js +0 -1
  261. package/__mf/js/async/983.36857235.js +0 -1
  262. package/__mf/js/async/9836.cc839227.js +0 -1
  263. package/__mf/js/async/__federation_expose_AlertManagerAlertsExplorer.47ee46dc.js +0 -2
  264. package/__mf/js/async/__federation_expose_AlertManagerAlertsQuery.22b0e5bc.js +0 -1
  265. package/__mf/js/async/__federation_expose_AlertManagerDatasource.7ee7440a.js +0 -2
  266. package/__mf/js/async/__federation_expose_AlertManagerSilencesExplorer.35860f1b.js +0 -2
  267. package/__mf/js/async/__federation_expose_AlertManagerSilencesQuery.52a24c9e.js +0 -2
  268. package/__mf/js/async/__federation_expose_AlertTable.5d005bae.js +0 -1
  269. package/__mf/js/async/__federation_expose_SilenceTable.3fc487a4.js +0 -2
  270. package/__mf/js/async/__federation_expose_SilenceTable.3fc487a4.js.LICENSE.txt +0 -9
  271. package/__mf/js/async/lib-router.19f64904.js +0 -2
  272. package/lib/cjs/bootstrap.js +0 -26
  273. package/lib/cjs/components/ColumnsEditor.js +0 -271
  274. package/lib/cjs/components/LazyTextField.js +0 -50
  275. package/lib/cjs/components/MatcherEditor.js +0 -153
  276. package/lib/cjs/components/MatchersList.js +0 -46
  277. package/lib/cjs/components/SilenceForm.js +0 -205
  278. package/lib/cjs/components/StatusBadge.js +0 -71
  279. package/lib/cjs/components/index.js +0 -44
  280. package/lib/cjs/explore/AlertManagerAlertsExplorer.js +0 -79
  281. package/lib/cjs/explore/AlertManagerSilencesExplorer.js +0 -153
  282. package/lib/cjs/getPluginModule.js +0 -39
  283. package/lib/cjs/index-federation.js +0 -55
  284. package/lib/cjs/index.js +0 -39
  285. package/lib/cjs/model/alertmanager-client.js +0 -128
  286. package/lib/cjs/model/alertmanager-selectors.js +0 -66
  287. package/lib/cjs/model/api-types.js +0 -22
  288. package/lib/cjs/model/index.js +0 -32
  289. package/lib/cjs/plugins/AlertManagerDatasourceEditor.js +0 -71
  290. package/lib/cjs/plugins/alert-table/AlertTable.js +0 -56
  291. package/lib/cjs/plugins/alert-table/AlertTableColumnsEditor.js +0 -110
  292. package/lib/cjs/plugins/alert-table/AlertTableDeduplicationEditor.js +0 -138
  293. package/lib/cjs/plugins/alert-table/AlertTableLabelsEditor.js +0 -277
  294. package/lib/cjs/plugins/alert-table/AlertTableOptionsEditor.js +0 -128
  295. package/lib/cjs/plugins/alert-table/AlertTablePanel.js +0 -773
  296. package/lib/cjs/plugins/alert-table/alert-table-model.js +0 -142
  297. package/lib/cjs/plugins/alert-table/alert-table-sorting.js +0 -205
  298. package/lib/cjs/plugins/alert-table/label-colors.js +0 -170
  299. package/lib/cjs/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js +0 -51
  300. package/lib/cjs/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js +0 -138
  301. package/lib/cjs/plugins/alertmanager-alerts-query/get-alerts-data.js +0 -124
  302. package/lib/cjs/plugins/alertmanager-datasource.js +0 -69
  303. package/lib/cjs/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js +0 -45
  304. package/lib/cjs/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js +0 -78
  305. package/lib/cjs/plugins/alertmanager-silences-query/get-silences-data.js +0 -64
  306. package/lib/cjs/plugins/index.js +0 -74
  307. package/lib/cjs/plugins/silence-table/SilenceTable.js +0 -42
  308. package/lib/cjs/plugins/silence-table/SilenceTableColumnsEditor.js +0 -137
  309. package/lib/cjs/plugins/silence-table/SilenceTableOptionsEditor.js +0 -63
  310. package/lib/cjs/plugins/silence-table/SilenceTablePanel.js +0 -345
  311. package/lib/cjs/plugins/silence-table/silence-table-model.js +0 -116
  312. package/lib/cjs/plugins/silence-table/silence-table-sorting.js +0 -68
  313. package/lib/cjs/plugins/types.js +0 -16
  314. package/lib/cjs/setup-tests.js +0 -18
  315. /package/__mf/css/async/{430.85c2cbf6.css → 5759.85c2cbf6.css} +0 -0
  316. /package/__mf/js/async/{7984.163a6ddb.js.LICENSE.txt → 1522.04dc197d.js.LICENSE.txt} +0 -0
  317. /package/__mf/js/async/{2218.7829c9d9.js.LICENSE.txt → 2218.8b7e30c2.js.LICENSE.txt} +0 -0
  318. /package/__mf/js/async/{5038.269393e3.js.LICENSE.txt → 2317.e656eab3.js.LICENSE.txt} +0 -0
  319. /package/__mf/js/async/{6390.3f6f279d.js.LICENSE.txt → 3514.e71d5cb9.js.LICENSE.txt} +0 -0
  320. /package/__mf/js/async/{392.7e11dd69.js.LICENSE.txt → 392.26ae5cc4.js.LICENSE.txt} +0 -0
  321. /package/__mf/js/async/{4121.ec666be2.js.LICENSE.txt → 4121.f9595b70.js.LICENSE.txt} +0 -0
  322. /package/__mf/js/async/{6594.b02adfd9.js.LICENSE.txt → 5038.b1e9133a.js.LICENSE.txt} +0 -0
  323. /package/__mf/js/async/{6274.8c77cb1a.js.LICENSE.txt → 6274.9f68ee7d.js.LICENSE.txt} +0 -0
  324. /package/__mf/js/async/{7283.8c1cb6ee.js.LICENSE.txt → 6390.0fd40bd8.js.LICENSE.txt} +0 -0
  325. /package/__mf/js/async/{8711.c7dc09b8.js.LICENSE.txt → 6594.b3a19fc1.js.LICENSE.txt} +0 -0
  326. /package/__mf/js/async/{5481.cf6703fd.js.LICENSE.txt → 7862.10a19eef.js.LICENSE.txt} +0 -0
  327. /package/__mf/js/async/{8470.2df0db71.js.LICENSE.txt → 8470.7ebe8e66.js.LICENSE.txt} +0 -0
  328. /package/__mf/js/async/{9040.94717f28.js.LICENSE.txt → 9040.8de751d6.js.LICENSE.txt} +0 -0
  329. /package/__mf/js/async/{941.d3bc6208.js.LICENSE.txt → 941.36858244.js.LICENSE.txt} +0 -0
  330. /package/__mf/js/async/{__federation_expose_AlertManagerAlertsExplorer.47ee46dc.js.LICENSE.txt → __federation_expose_AlertManagerAlertsExplorer.4fbf2fa1.js.LICENSE.txt} +0 -0
  331. /package/__mf/js/async/{__federation_expose_AlertManagerDatasource.7ee7440a.js.LICENSE.txt → __federation_expose_AlertManagerDatasource.c2b36e70.js.LICENSE.txt} +0 -0
  332. /package/__mf/js/async/{__federation_expose_AlertManagerSilencesExplorer.35860f1b.js.LICENSE.txt → __federation_expose_AlertManagerSilencesExplorer.65e1901a.js.LICENSE.txt} +0 -0
  333. /package/__mf/js/async/{__federation_expose_AlertManagerSilencesQuery.52a24c9e.js.LICENSE.txt → __federation_expose_AlertManagerSilencesQuery.f619a448.js.LICENSE.txt} +0 -0
  334. /package/__mf/js/async/{lib-router.19f64904.js.LICENSE.txt → lib-router.20ba053c.js.LICENSE.txt} +0 -0
@@ -1,773 +0,0 @@
1
- // Copyright The Perses Authors
2
- // Licensed under the Apache License, Version 2.0 (the "License");
3
- // you may not use this file except in compliance with the License.
4
- // You may obtain a copy of the License at
5
- //
6
- // http://www.apache.org/licenses/LICENSE-2.0
7
- //
8
- // Unless required by applicable law or agreed to in writing, software
9
- // distributed under the License is distributed on an "AS IS" BASIS,
10
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- // See the License for the specific language governing permissions and
12
- // limitations under the License.
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
- Object.defineProperty(exports, "AlertTablePanel", {
18
- enumerable: true,
19
- get: function() {
20
- return AlertTablePanel;
21
- }
22
- });
23
- const _jsxruntime = require("react/jsx-runtime");
24
- const _material = require("@mui/material");
25
- const _components = require("@perses-dev/components");
26
- const _pluginsystem = require("@perses-dev/plugin-system");
27
- const _reactquery = require("@tanstack/react-query");
28
- const _BellOff = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/BellOff"));
29
- const _BookOpen = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/BookOpen"));
30
- const _ChevronDown = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/ChevronDown"));
31
- const _ChevronRight = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/ChevronRight"));
32
- const _Magnify = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/Magnify"));
33
- const _UnfoldLessHorizontal = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/UnfoldLessHorizontal"));
34
- const _UnfoldMoreHorizontal = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/UnfoldMoreHorizontal"));
35
- const _react = require("react");
36
- const _SilenceForm = require("../../components/SilenceForm");
37
- const _StatusBadge = require("../../components/StatusBadge");
38
- const _model = require("../../model");
39
- const _alerttablemodel = require("./alert-table-model");
40
- const _alerttablesorting = require("./alert-table-sorting");
41
- const _labelcolors = require("./label-colors");
42
- function _interop_require_default(obj) {
43
- return obj && obj.__esModule ? obj : {
44
- default: obj
45
- };
46
- }
47
- function GroupSummaryChips({ summary }) {
48
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
49
- direction: "row",
50
- spacing: 0.5,
51
- children: [
52
- summary.firing > 0 && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
53
- label: `${summary.firing} firing`,
54
- color: "error",
55
- size: "small"
56
- }),
57
- summary.suppressed > 0 && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
58
- label: `${summary.suppressed} silenced`,
59
- color: "warning",
60
- size: "small"
61
- }),
62
- summary.pending > 0 && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
63
- label: `${summary.pending} pending`,
64
- color: "default",
65
- size: "small"
66
- })
67
- ]
68
- });
69
- }
70
- function LabelValueSummaryChips({ summary, mapping }) {
71
- const counts = summary.labelCounts?.[mapping.labelKey];
72
- if (!counts || Object.keys(counts).length === 0) {
73
- return null;
74
- }
75
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
76
- direction: "row",
77
- spacing: 0.5,
78
- children: Object.entries(counts).sort(([, a], [, b])=>b - a).map(([value, count])=>{
79
- const bgColor = (0, _labelcolors.getLabelColor)(value, mapping);
80
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
81
- label: `${count} ${value}`,
82
- size: "small",
83
- sx: {
84
- backgroundColor: bgColor,
85
- color: '#fff',
86
- fontWeight: 500
87
- }
88
- }, value);
89
- })
90
- });
91
- }
92
- function AlertRow({ alert, allowedActions, columnDefs, columnKeySet, mappingsByKey, runbookAnnotationKey, onSilence, duplicateCount, showDuplicates }) {
93
- const runbookUrl = alert.annotations?.[runbookAnnotationKey];
94
- const showActions = allowedActions.length > 0;
95
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.TableRow, {
96
- hover: true,
97
- children: [
98
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
99
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_StatusBadge.StatusBadge, {
100
- status: alert.suppressed ? 'suppressed' : alert.state,
101
- variant: "alert"
102
- })
103
- }),
104
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
105
- children: alert.name
106
- }),
107
- columnDefs.map((col, colIdx)=>{
108
- const value = alert.labels[col.name];
109
- const mapping = mappingsByKey.get(col.name);
110
- if (value !== undefined && mapping) {
111
- const bgColor = (0, _labelcolors.getLabelColor)(value, mapping);
112
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
113
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
114
- label: value,
115
- size: "small",
116
- sx: {
117
- backgroundColor: bgColor,
118
- color: '#fff',
119
- fontWeight: 500
120
- }
121
- })
122
- }, colIdx);
123
- }
124
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
125
- children: value ?? ''
126
- }, colIdx);
127
- }),
128
- showDuplicates && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
129
- children: duplicateCount !== undefined && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
130
- label: `${duplicateCount}`,
131
- size: "small",
132
- variant: "outlined",
133
- color: "info"
134
- })
135
- }),
136
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
137
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
138
- direction: "row",
139
- spacing: 0.5,
140
- flexWrap: "wrap",
141
- useFlexGap: true,
142
- children: Object.entries(alert.labels).filter(([key])=>key !== 'alertname' && !columnKeySet.has(key)).map(([key, value])=>{
143
- const mapping = mappingsByKey.get(key);
144
- if (mapping) {
145
- const bgColor = (0, _labelcolors.getLabelColor)(value, mapping);
146
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
147
- label: `${key}=${value}`,
148
- size: "small",
149
- sx: {
150
- backgroundColor: bgColor,
151
- color: '#fff',
152
- fontWeight: 500
153
- }
154
- }, key);
155
- }
156
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
157
- label: `${key}=${value}`,
158
- size: "small",
159
- variant: "outlined"
160
- }, key);
161
- })
162
- })
163
- }),
164
- showActions && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
165
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
166
- direction: "row",
167
- spacing: 0.5,
168
- children: [
169
- allowedActions.includes('silence') && !alert.suppressed && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Tooltip, {
170
- title: "Silence this alert",
171
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
172
- size: "small",
173
- "aria-label": "Silence alert",
174
- onClick: ()=>onSilence(alert),
175
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_BellOff.default, {
176
- fontSize: "small"
177
- })
178
- })
179
- }),
180
- allowedActions.includes('runbook') && runbookUrl && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Tooltip, {
181
- title: "View runbook",
182
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
183
- size: "small",
184
- "aria-label": "View runbook",
185
- component: "a",
186
- href: runbookUrl,
187
- target: "_blank",
188
- rel: "noopener noreferrer",
189
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_BookOpen.default, {
190
- fontSize: "small"
191
- })
192
- })
193
- })
194
- ]
195
- })
196
- })
197
- ]
198
- });
199
- }
200
- function AlertGroupRow({ group, expanded, allowedActions, columnDefs, columnKeySet, labelColorMappings, mappingsByKey, runbookAnnotationKey, onToggle, onSilence, duplicateCounts, showDuplicates }) {
201
- const showActions = allowedActions.length > 0;
202
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
203
- children: [
204
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.TableRow, {
205
- sx: {
206
- cursor: 'pointer',
207
- '& > td': {
208
- fontWeight: 'bold'
209
- }
210
- },
211
- onClick: onToggle,
212
- children: [
213
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
214
- colSpan: 2,
215
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
216
- direction: "row",
217
- spacing: 1,
218
- alignItems: "center",
219
- children: [
220
- expanded ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_ChevronDown.default, {}) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_ChevronRight.default, {}),
221
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
222
- variant: "body2",
223
- fontWeight: "bold",
224
- children: group.key || 'Ungrouped'
225
- }),
226
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
227
- label: `${group.summary.total}`,
228
- size: "small",
229
- variant: "outlined"
230
- })
231
- ]
232
- })
233
- }),
234
- columnDefs.map((col, colIdx)=>{
235
- const counts = group.summary.labelCounts?.[col.name];
236
- const mapping = mappingsByKey.get(col.name);
237
- if (counts && mapping) {
238
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
239
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LabelValueSummaryChips, {
240
- summary: group.summary,
241
- mapping: mapping
242
- })
243
- }, colIdx);
244
- }
245
- if (counts) {
246
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
247
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Stack, {
248
- direction: "row",
249
- spacing: 0.5,
250
- children: Object.entries(counts).sort(([, a], [, b])=>b - a).map(([value, count])=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Chip, {
251
- label: `${count} ${value}`,
252
- size: "small",
253
- variant: "outlined"
254
- }, value))
255
- })
256
- }, colIdx);
257
- }
258
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {}, colIdx);
259
- }),
260
- showDuplicates && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {}),
261
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
262
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
263
- direction: "row",
264
- spacing: 1,
265
- alignItems: "center",
266
- flexWrap: "wrap",
267
- useFlexGap: true,
268
- children: [
269
- /*#__PURE__*/ (0, _jsxruntime.jsx)(GroupSummaryChips, {
270
- summary: group.summary
271
- }),
272
- labelColorMappings.filter((mapping)=>!columnKeySet.has(mapping.labelKey)).map((mapping)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(LabelValueSummaryChips, {
273
- summary: group.summary,
274
- mapping: mapping
275
- }, mapping.labelKey))
276
- ]
277
- })
278
- }),
279
- showActions && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {})
280
- ]
281
- }),
282
- expanded && group.alerts.map((alert, idx)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(AlertRow, {
283
- alert: alert,
284
- allowedActions: allowedActions,
285
- columnDefs: columnDefs,
286
- columnKeySet: columnKeySet,
287
- mappingsByKey: mappingsByKey,
288
- runbookAnnotationKey: runbookAnnotationKey,
289
- onSilence: onSilence,
290
- duplicateCount: duplicateCounts.get(alert),
291
- showDuplicates: showDuplicates
292
- }, alert.id ?? String(idx)))
293
- ]
294
- });
295
- }
296
- function AlertTablePanel({ spec, queryResults, contentDimensions }) {
297
- const datasourceSelector = (0, _react.useMemo)(()=>(0, _model.extractDatasourceSelector)(queryResults), [
298
- queryResults
299
- ]);
300
- const { data: amClient } = (0, _pluginsystem.useDatasourceClient)(datasourceSelector);
301
- const queryClient = (0, _reactquery.useQueryClient)();
302
- const [silenceTarget, setSilenceTarget] = (0, _react.useState)(null);
303
- const silenceKeyRef = (0, _react.useRef)(0);
304
- const handleSetSilenceTarget = (0, _react.useCallback)((alert)=>{
305
- silenceKeyRef.current++;
306
- setSilenceTarget(alert);
307
- }, []);
308
- const [search, setSearch] = (0, _react.useState)('');
309
- const [expandedGroups, setExpandedGroups] = (0, _react.useState)(new Set());
310
- const { successSnackbar, exceptionSnackbar } = (0, _components.useSnackbar)();
311
- const handleSilenceSubmit = (0, _react.useCallback)(async (silence)=>{
312
- if (!amClient) return;
313
- try {
314
- await amClient.createSilence(silence);
315
- setSilenceTarget(null);
316
- successSnackbar('Silence created successfully');
317
- queryClient.invalidateQueries({
318
- queryKey: [
319
- 'query',
320
- 'AlertsQuery'
321
- ]
322
- });
323
- queryClient.invalidateQueries({
324
- queryKey: [
325
- 'query',
326
- 'SilencesQuery'
327
- ]
328
- });
329
- } catch (err) {
330
- exceptionSnackbar(err);
331
- }
332
- }, [
333
- amClient,
334
- queryClient,
335
- successSnackbar,
336
- exceptionSnackbar
337
- ]);
338
- const silenceInitial = (0, _react.useMemo)(()=>{
339
- if (!silenceTarget) return undefined;
340
- return {
341
- matchers: Object.entries(silenceTarget.labels).map(([name, value])=>({
342
- name,
343
- value,
344
- isEqual: true,
345
- isRegex: false
346
- }))
347
- };
348
- }, [
349
- silenceTarget
350
- ]);
351
- const defaultGroupBy = (0, _react.useMemo)(()=>spec.defaultGroupBy ?? [
352
- 'alertname'
353
- ], [
354
- spec.defaultGroupBy
355
- ]);
356
- const variableNames = (0, _react.useMemo)(()=>[
357
- ...new Set(defaultGroupBy.flatMap((entry)=>(0, _pluginsystem.parseVariables)(entry)))
358
- ], [
359
- defaultGroupBy
360
- ]);
361
- const variableState = (0, _pluginsystem.useAllVariableValues)(variableNames);
362
- const resolvedDefaultGroupBy = (0, _react.useMemo)(()=>{
363
- const result = [];
364
- for (const entry of defaultGroupBy){
365
- const vars = (0, _pluginsystem.parseVariables)(entry);
366
- if (vars.length === 0) {
367
- result.push(entry);
368
- } else if (vars.length === 1 && (entry === `$${vars[0]}` || entry === `\${${vars[0]}}`)) {
369
- const varState = variableState[vars[0] ?? ''];
370
- if (varState?.value) {
371
- if (Array.isArray(varState.value)) {
372
- result.push(...varState.value);
373
- } else {
374
- result.push(varState.value);
375
- }
376
- }
377
- } else {
378
- const resolved = (0, _pluginsystem.replaceVariablesInString)(entry, variableState);
379
- if (resolved) result.push(resolved);
380
- }
381
- }
382
- return result;
383
- }, [
384
- defaultGroupBy,
385
- variableState
386
- ]);
387
- const [groupBy, setGroupBy] = (0, _react.useState)(resolvedDefaultGroupBy);
388
- (0, _react.useEffect)(()=>{
389
- setGroupBy(resolvedDefaultGroupBy);
390
- }, [
391
- resolvedDefaultGroupBy
392
- ]);
393
- const effectiveActions = (0, _react.useMemo)(()=>spec.allowedActions ?? _alerttablemodel.ALL_ALERT_ACTIONS, [
394
- spec.allowedActions
395
- ]);
396
- const showActionsColumn = effectiveActions.length > 0;
397
- const runbookAnnotationKey = spec.runbookAnnotationKey || 'runbook_url';
398
- const columnDefs = (0, _react.useMemo)(()=>spec.columns ?? [], [
399
- spec.columns
400
- ]);
401
- const columnKeySet = (0, _react.useMemo)(()=>new Set(columnDefs.map((c)=>c.name)), [
402
- columnDefs
403
- ]);
404
- const labelColorMappings = (0, _react.useMemo)(()=>spec.labelColorMappings ?? [], [
405
- spec.labelColorMappings
406
- ]);
407
- const labelKeys = (0, _react.useMemo)(()=>labelColorMappings.map((m)=>m.labelKey), [
408
- labelColorMappings
409
- ]);
410
- const mappingsByKey = (0, _react.useMemo)(()=>new Map(labelColorMappings.map((m)=>[
411
- m.labelKey,
412
- m
413
- ])), [
414
- labelColorMappings
415
- ]);
416
- const allTrackedKeys = (0, _react.useMemo)(()=>[
417
- ...new Set([
418
- ...labelKeys,
419
- ...columnDefs.map((c)=>c.name)
420
- ])
421
- ], [
422
- labelKeys,
423
- columnDefs
424
- ]);
425
- const initialSort = (0, _react.useMemo)(()=>{
426
- const col = columnDefs.find((c)=>c.sort && c.enableSorting !== false);
427
- if (!col?.sort) return null;
428
- return {
429
- columnName: col.name,
430
- direction: col.sort,
431
- mode: col.sortMode ?? 'alphabetical'
432
- };
433
- }, [
434
- columnDefs
435
- ]);
436
- const [sortState, setSortState] = (0, _react.useState)(initialSort);
437
- const handleSortClick = (0, _react.useCallback)((columnName, sortMode = 'alphabetical')=>{
438
- setSortState((prev)=>{
439
- if (prev?.columnName === columnName) {
440
- return prev.direction === 'asc' ? {
441
- ...prev,
442
- direction: 'desc'
443
- } : null;
444
- }
445
- return {
446
- columnName,
447
- direction: 'asc',
448
- mode: sortMode
449
- };
450
- });
451
- }, []);
452
- // Flatten all alerts from all query results
453
- const allAlerts = (0, _react.useMemo)(()=>{
454
- return queryResults.flatMap((result)=>result.data?.alerts ?? []);
455
- }, [
456
- queryResults
457
- ]);
458
- // Deduplicate
459
- const dedupConfig = (0, _react.useMemo)(()=>spec.deduplication ?? {
460
- mode: 'fingerprint'
461
- }, [
462
- spec.deduplication
463
- ]);
464
- const dedupResult = (0, _react.useMemo)(()=>(0, _alerttablemodel.deduplicateAlerts)(allAlerts, dedupConfig), [
465
- allAlerts,
466
- dedupConfig
467
- ]);
468
- const dedupAlerts = dedupResult.alerts;
469
- const duplicateCounts = dedupResult.duplicateCounts;
470
- const hasDuplicates = duplicateCounts.size > 0;
471
- // Filter by search term
472
- const alerts = (0, _react.useMemo)(()=>{
473
- const term = search.trim().toLowerCase();
474
- if (!term) return dedupAlerts;
475
- return dedupAlerts.filter((a)=>{
476
- if (a.state.toLowerCase().includes(term)) return true;
477
- if (a.suppressed && ('suppressed'.includes(term) || 'silenced'.includes(term))) return true;
478
- if (Object.values(a.labels).some((v)=>v.toLowerCase().includes(term))) return true;
479
- if (a.annotations && Object.values(a.annotations).some((v)=>v.toLowerCase().includes(term))) return true;
480
- return false;
481
- });
482
- }, [
483
- dedupAlerts,
484
- search
485
- ]);
486
- // Extract available label keys for group-by selector
487
- const availableLabelKeys = (0, _react.useMemo)(()=>(0, _alerttablemodel.extractLabelKeys)(alerts), [
488
- alerts
489
- ]);
490
- // Group alerts
491
- const groups = (0, _react.useMemo)(()=>{
492
- let result;
493
- if (groupBy.length === 0) {
494
- result = [
495
- {
496
- key: '',
497
- alerts: [
498
- ...alerts
499
- ],
500
- summary: (0, _alerttablemodel.getGroupSummary)(alerts, allTrackedKeys)
501
- }
502
- ];
503
- } else {
504
- const groupMap = new Map();
505
- for (const alert of alerts){
506
- const key = (0, _alerttablemodel.getGroupKey)(alert, groupBy);
507
- const existing = groupMap.get(key) ?? [];
508
- existing.push(alert);
509
- groupMap.set(key, existing);
510
- }
511
- result = Array.from(groupMap.entries()).map(([key, groupAlerts])=>({
512
- key,
513
- alerts: groupAlerts,
514
- summary: (0, _alerttablemodel.getGroupSummary)(groupAlerts, allTrackedKeys)
515
- }));
516
- }
517
- if (sortState) {
518
- for (const group of result){
519
- group.alerts.sort((a, b)=>(0, _alerttablesorting.compareAlertsByColumn)(a, b, sortState));
520
- }
521
- result.sort((a, b)=>(0, _alerttablesorting.compareGroupsByColumn)(a.summary.labelCounts?.[sortState.columnName], b.summary.labelCounts?.[sortState.columnName], sortState));
522
- }
523
- return result;
524
- }, [
525
- alerts,
526
- groupBy,
527
- allTrackedKeys,
528
- sortState
529
- ]);
530
- const prevGroupKeysRef = (0, _react.useRef)('');
531
- (0, _react.useEffect)(()=>{
532
- const currentKeys = groups.map((g)=>g.key).join('\0');
533
- if (currentKeys === prevGroupKeysRef.current) return;
534
- prevGroupKeysRef.current = currentKeys;
535
- if (groups.length === 1) {
536
- setExpandedGroups(new Set(groups.map((g)=>g.key)));
537
- } else {
538
- setExpandedGroups(new Set());
539
- }
540
- }, [
541
- groups
542
- ]);
543
- const handleToggleGroup = (0, _react.useCallback)((key)=>{
544
- setExpandedGroups((prev)=>{
545
- const next = new Set(prev);
546
- if (next.has(key)) {
547
- next.delete(key);
548
- } else {
549
- next.add(key);
550
- }
551
- return next;
552
- });
553
- }, []);
554
- const handleExpandAll = (0, _react.useCallback)(()=>{
555
- setExpandedGroups(new Set(groups.map((g)=>g.key)));
556
- }, [
557
- groups
558
- ]);
559
- const handleCollapseAll = (0, _react.useCallback)(()=>{
560
- setExpandedGroups(new Set());
561
- }, []);
562
- const handleGroupByChange = (event)=>{
563
- const value = event.target.value;
564
- setGroupBy(typeof value === 'string' ? value.split(',') : value);
565
- };
566
- if (allAlerts.length === 0) {
567
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
568
- sx: {
569
- display: 'flex',
570
- justifyContent: 'center',
571
- alignItems: 'center',
572
- height: contentDimensions?.height ?? '100%'
573
- },
574
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
575
- children: "No alerts to display"
576
- })
577
- });
578
- }
579
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
580
- spacing: 1,
581
- sx: {
582
- height: contentDimensions?.height,
583
- overflow: 'auto'
584
- },
585
- children: [
586
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
587
- direction: "row",
588
- spacing: 2,
589
- alignItems: "center",
590
- sx: {
591
- px: 1,
592
- pt: 1
593
- },
594
- children: [
595
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
596
- size: "small",
597
- placeholder: "Search alerts...",
598
- value: search,
599
- onChange: (e)=>setSearch(e.target.value),
600
- sx: {
601
- minWidth: 200
602
- },
603
- slotProps: {
604
- htmlInput: {
605
- 'aria-label': 'Search alerts'
606
- },
607
- input: {
608
- startAdornment: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.InputAdornment, {
609
- position: "start",
610
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Magnify.default, {
611
- fontSize: "small"
612
- })
613
- })
614
- }
615
- }
616
- }),
617
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.FormControl, {
618
- size: "small",
619
- sx: {
620
- minWidth: 200
621
- },
622
- children: [
623
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.InputLabel, {
624
- id: "group-by-label",
625
- children: "Group by"
626
- }),
627
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Select, {
628
- labelId: "group-by-label",
629
- multiple: true,
630
- value: groupBy,
631
- onChange: handleGroupByChange,
632
- label: "Group by",
633
- renderValue: (selected)=>selected.join(', '),
634
- children: availableLabelKeys.map((key)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.MenuItem, {
635
- value: key,
636
- children: key
637
- }, key))
638
- })
639
- ]
640
- }),
641
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Typography, {
642
- variant: "body2",
643
- color: "text.secondary",
644
- sx: {
645
- flexGrow: 1
646
- },
647
- children: [
648
- alerts.length,
649
- " alert",
650
- alerts.length !== 1 ? 's' : '',
651
- " in ",
652
- groups.length,
653
- " group",
654
- groups.length !== 1 ? 's' : ''
655
- ]
656
- }),
657
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
658
- direction: "row",
659
- spacing: 0.5,
660
- children: [
661
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Tooltip, {
662
- title: "Expand all groups",
663
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
664
- size: "small",
665
- "aria-label": "Expand all groups",
666
- onClick: handleExpandAll,
667
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_UnfoldMoreHorizontal.default, {
668
- fontSize: "small"
669
- })
670
- })
671
- }),
672
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Tooltip, {
673
- title: "Collapse all groups",
674
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
675
- size: "small",
676
- "aria-label": "Collapse all groups",
677
- onClick: handleCollapseAll,
678
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_UnfoldLessHorizontal.default, {
679
- fontSize: "small"
680
- })
681
- })
682
- })
683
- ]
684
- })
685
- ]
686
- }),
687
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableContainer, {
688
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Table, {
689
- size: "small",
690
- stickyHeader: true,
691
- children: [
692
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableHead, {
693
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.TableRow, {
694
- children: [
695
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
696
- sortDirection: sortState?.columnName === _alerttablesorting.SORT_COL_STATUS ? sortState.direction : false,
697
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableSortLabel, {
698
- active: sortState?.columnName === _alerttablesorting.SORT_COL_STATUS,
699
- direction: sortState?.columnName === _alerttablesorting.SORT_COL_STATUS ? sortState.direction : 'asc',
700
- onClick: ()=>handleSortClick(_alerttablesorting.SORT_COL_STATUS, 'status'),
701
- children: "Status"
702
- })
703
- }),
704
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
705
- sortDirection: sortState?.columnName === _alerttablesorting.SORT_COL_ALERTNAME ? sortState.direction : false,
706
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableSortLabel, {
707
- active: sortState?.columnName === _alerttablesorting.SORT_COL_ALERTNAME,
708
- direction: sortState?.columnName === _alerttablesorting.SORT_COL_ALERTNAME ? sortState.direction : 'asc',
709
- onClick: ()=>handleSortClick(_alerttablesorting.SORT_COL_ALERTNAME, 'alphabetical'),
710
- children: "Alert Name"
711
- })
712
- }),
713
- columnDefs.map((col, colIdx)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
714
- sortDirection: sortState?.columnName === col.name ? sortState.direction : false,
715
- children: col.enableSorting !== false ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableSortLabel, {
716
- active: sortState?.columnName === col.name,
717
- direction: sortState?.columnName === col.name ? sortState.direction : 'asc',
718
- onClick: ()=>handleSortClick(col.name, col.sortMode),
719
- children: col.header ?? col.name
720
- }) : col.header ?? col.name
721
- }, colIdx)),
722
- hasDuplicates && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
723
- children: "Duplicates"
724
- }),
725
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
726
- children: "Labels"
727
- }),
728
- showActionsColumn && /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
729
- children: "Actions"
730
- })
731
- ]
732
- })
733
- }),
734
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableBody, {
735
- children: alerts.length === 0 ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableRow, {
736
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TableCell, {
737
- colSpan: 99,
738
- align: "center",
739
- sx: {
740
- py: 4
741
- },
742
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Typography, {
743
- color: "text.secondary",
744
- children: "No matching alerts"
745
- })
746
- })
747
- }) : groups.map((group)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(AlertGroupRow, {
748
- group: group,
749
- expanded: expandedGroups.has(group.key),
750
- allowedActions: effectiveActions,
751
- columnDefs: columnDefs,
752
- columnKeySet: columnKeySet,
753
- labelColorMappings: labelColorMappings,
754
- mappingsByKey: mappingsByKey,
755
- runbookAnnotationKey: runbookAnnotationKey,
756
- onToggle: ()=>handleToggleGroup(group.key),
757
- onSilence: handleSetSilenceTarget,
758
- duplicateCounts: duplicateCounts,
759
- showDuplicates: hasDuplicates
760
- }, group.key))
761
- })
762
- ]
763
- })
764
- }),
765
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_SilenceForm.SilenceForm, {
766
- open: !!silenceTarget,
767
- onClose: ()=>setSilenceTarget(null),
768
- onSubmit: handleSilenceSubmit,
769
- initialSilence: silenceInitial
770
- }, silenceKeyRef.current)
771
- ]
772
- });
773
- }