@perses-dev/alert-manager-plugin 0.1.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 (380) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +41 -0
  3. package/__mf/css/async/7790.85c2cbf6.css +1 -0
  4. package/__mf/font/inter-cyrillic-300-normal.432f2b21.woff +0 -0
  5. package/__mf/font/inter-cyrillic-300-normal.9da91009.woff2 +0 -0
  6. package/__mf/font/inter-cyrillic-400-normal.372704ff.woff2 +0 -0
  7. package/__mf/font/inter-cyrillic-400-normal.a6b6ef6f.woff +0 -0
  8. package/__mf/font/inter-cyrillic-500-normal.7c15bba8.woff2 +0 -0
  9. package/__mf/font/inter-cyrillic-500-normal.b9f8c929.woff +0 -0
  10. package/__mf/font/inter-cyrillic-600-normal.2f42892a.woff2 +0 -0
  11. package/__mf/font/inter-cyrillic-600-normal.c3987adc.woff +0 -0
  12. package/__mf/font/inter-cyrillic-700-normal.93eba3c3.woff +0 -0
  13. package/__mf/font/inter-cyrillic-700-normal.e9e5b2dc.woff2 +0 -0
  14. package/__mf/font/inter-cyrillic-900-normal.f285bd7a.woff2 +0 -0
  15. package/__mf/font/inter-cyrillic-900-normal.ffbd8a3a.woff +0 -0
  16. package/__mf/font/inter-cyrillic-ext-300-normal.95bb9038.woff2 +0 -0
  17. package/__mf/font/inter-cyrillic-ext-300-normal.cfc143a9.woff +0 -0
  18. package/__mf/font/inter-cyrillic-ext-400-normal.2a31c04b.woff +0 -0
  19. package/__mf/font/inter-cyrillic-ext-400-normal.f572b170.woff2 +0 -0
  20. package/__mf/font/inter-cyrillic-ext-500-normal.5a6bb1da.woff +0 -0
  21. package/__mf/font/inter-cyrillic-ext-500-normal.fe0d9b14.woff2 +0 -0
  22. package/__mf/font/inter-cyrillic-ext-600-normal.ecbdecad.woff +0 -0
  23. package/__mf/font/inter-cyrillic-ext-600-normal.f7b3c15b.woff2 +0 -0
  24. package/__mf/font/inter-cyrillic-ext-700-normal.4b4022a6.woff +0 -0
  25. package/__mf/font/inter-cyrillic-ext-700-normal.74b516d2.woff2 +0 -0
  26. package/__mf/font/inter-cyrillic-ext-900-normal.9970ddb5.woff +0 -0
  27. package/__mf/font/inter-cyrillic-ext-900-normal.a0d59adc.woff2 +0 -0
  28. package/__mf/font/inter-greek-300-normal.0d7be683.woff2 +0 -0
  29. package/__mf/font/inter-greek-300-normal.8f0b988e.woff +0 -0
  30. package/__mf/font/inter-greek-400-normal.cc58c11b.woff +0 -0
  31. package/__mf/font/inter-greek-400-normal.d7020e3c.woff2 +0 -0
  32. package/__mf/font/inter-greek-500-normal.d9a33207.woff +0 -0
  33. package/__mf/font/inter-greek-500-normal.f41f43db.woff2 +0 -0
  34. package/__mf/font/inter-greek-600-normal.4ec0c1c1.woff +0 -0
  35. package/__mf/font/inter-greek-600-normal.cc532937.woff2 +0 -0
  36. package/__mf/font/inter-greek-700-normal.5ec6c758.woff +0 -0
  37. package/__mf/font/inter-greek-700-normal.97f0eeeb.woff2 +0 -0
  38. package/__mf/font/inter-greek-900-normal.46b66369.woff2 +0 -0
  39. package/__mf/font/inter-greek-900-normal.9ae3a3c5.woff +0 -0
  40. package/__mf/font/inter-greek-ext-300-normal.10247a66.woff2 +0 -0
  41. package/__mf/font/inter-greek-ext-300-normal.4668e5cb.woff +0 -0
  42. package/__mf/font/inter-greek-ext-400-normal.4ce1df5d.woff2 +0 -0
  43. package/__mf/font/inter-greek-ext-400-normal.88ede1ea.woff +0 -0
  44. package/__mf/font/inter-greek-ext-500-normal.7a4aa726.woff +0 -0
  45. package/__mf/font/inter-greek-ext-500-normal.cbd51e2d.woff2 +0 -0
  46. package/__mf/font/inter-greek-ext-600-normal.089a95ee.woff +0 -0
  47. package/__mf/font/inter-greek-ext-600-normal.1f33d317.woff2 +0 -0
  48. package/__mf/font/inter-greek-ext-700-normal.31f1075d.woff +0 -0
  49. package/__mf/font/inter-greek-ext-700-normal.827cd618.woff2 +0 -0
  50. package/__mf/font/inter-greek-ext-900-normal.531bcee7.woff +0 -0
  51. package/__mf/font/inter-greek-ext-900-normal.8a9b36b9.woff2 +0 -0
  52. package/__mf/font/inter-latin-300-normal.15fb600d.woff2 +0 -0
  53. package/__mf/font/inter-latin-300-normal.6f95f590.woff +0 -0
  54. package/__mf/font/inter-latin-400-normal.2c7a775c.woff +0 -0
  55. package/__mf/font/inter-latin-400-normal.ef6d3f52.woff2 +0 -0
  56. package/__mf/font/inter-latin-500-normal.b7b43ace.woff2 +0 -0
  57. package/__mf/font/inter-latin-500-normal.cb4c8ceb.woff +0 -0
  58. package/__mf/font/inter-latin-600-normal.8fb1a964.woff2 +0 -0
  59. package/__mf/font/inter-latin-600-normal.ce0f5f43.woff +0 -0
  60. package/__mf/font/inter-latin-700-normal.953b7aa5.woff2 +0 -0
  61. package/__mf/font/inter-latin-700-normal.9c21d4dc.woff +0 -0
  62. package/__mf/font/inter-latin-900-normal.2a8028ec.woff2 +0 -0
  63. package/__mf/font/inter-latin-900-normal.fa252135.woff +0 -0
  64. package/__mf/font/inter-latin-ext-300-normal.167cc8c9.woff2 +0 -0
  65. package/__mf/font/inter-latin-ext-300-normal.f695be66.woff +0 -0
  66. package/__mf/font/inter-latin-ext-400-normal.32a25442.woff2 +0 -0
  67. package/__mf/font/inter-latin-ext-400-normal.4edcaace.woff +0 -0
  68. package/__mf/font/inter-latin-ext-500-normal.a19a84a6.woff +0 -0
  69. package/__mf/font/inter-latin-ext-500-normal.d9b491de.woff2 +0 -0
  70. package/__mf/font/inter-latin-ext-600-normal.38b075d8.woff2 +0 -0
  71. package/__mf/font/inter-latin-ext-600-normal.49faa47a.woff +0 -0
  72. package/__mf/font/inter-latin-ext-700-normal.93534b50.woff +0 -0
  73. package/__mf/font/inter-latin-ext-700-normal.b63daa1a.woff2 +0 -0
  74. package/__mf/font/inter-latin-ext-900-normal.0efdb307.woff +0 -0
  75. package/__mf/font/inter-latin-ext-900-normal.9c0fc2c7.woff2 +0 -0
  76. package/__mf/font/inter-vietnamese-300-normal.aad496d8.woff +0 -0
  77. package/__mf/font/inter-vietnamese-300-normal.ad9ef503.woff2 +0 -0
  78. package/__mf/font/inter-vietnamese-400-normal.a9dd2faf.woff +0 -0
  79. package/__mf/font/inter-vietnamese-400-normal.de4fc44f.woff2 +0 -0
  80. package/__mf/font/inter-vietnamese-500-normal.7c0a695f.woff2 +0 -0
  81. package/__mf/font/inter-vietnamese-500-normal.a3a73b95.woff +0 -0
  82. package/__mf/font/inter-vietnamese-600-normal.9d518599.woff2 +0 -0
  83. package/__mf/font/inter-vietnamese-600-normal.c5ce3fcb.woff +0 -0
  84. package/__mf/font/inter-vietnamese-700-normal.bc68b199.woff +0 -0
  85. package/__mf/font/inter-vietnamese-700-normal.faf12809.woff2 +0 -0
  86. package/__mf/font/inter-vietnamese-900-normal.2b782045.woff +0 -0
  87. package/__mf/font/inter-vietnamese-900-normal.e639b65a.woff2 +0 -0
  88. package/__mf/js/AlertManager.f762e62c.js +7 -0
  89. package/__mf/js/async/1616.24f00c9d.js +1 -0
  90. package/__mf/js/async/1728.83bb9a7c.js +1 -0
  91. package/__mf/js/async/1871.23ff54b3.js +1 -0
  92. package/__mf/js/async/1969.a83b1b48.js +1 -0
  93. package/__mf/js/async/2218.7829c9d9.js +2 -0
  94. package/__mf/js/async/2218.7829c9d9.js.LICENSE.txt +9 -0
  95. package/__mf/js/async/2377.f8875a4e.js +1 -0
  96. package/__mf/js/async/2657.fe8dd44f.js +1 -0
  97. package/__mf/js/async/2954.3ac1f636.js +2 -0
  98. package/__mf/js/async/392.7e11dd69.js +2 -0
  99. package/__mf/js/async/392.7e11dd69.js.LICENSE.txt +8 -0
  100. package/__mf/js/async/3963.fb6246d2.js +1 -0
  101. package/__mf/js/async/4121.ec666be2.js +2 -0
  102. package/__mf/js/async/4121.ec666be2.js.LICENSE.txt +9 -0
  103. package/__mf/js/async/4133.e94df4f8.js +28 -0
  104. package/__mf/js/async/4213.a0c4f2eb.js +1 -0
  105. package/__mf/js/async/4397.d399eecb.js +2 -0
  106. package/__mf/js/async/4397.d399eecb.js.LICENSE.txt +37 -0
  107. package/__mf/js/async/4466.a8145edd.js +74 -0
  108. package/__mf/js/async/4732.e866a740.js +1 -0
  109. package/__mf/js/async/4788.49ffeac3.js +1 -0
  110. package/__mf/js/async/5038.269393e3.js +2 -0
  111. package/__mf/js/async/5038.269393e3.js.LICENSE.txt +9 -0
  112. package/__mf/js/async/573.214f2003.js +2 -0
  113. package/__mf/js/async/573.214f2003.js.LICENSE.txt +9 -0
  114. package/__mf/js/async/6274.8c77cb1a.js +2 -0
  115. package/__mf/js/async/6274.8c77cb1a.js.LICENSE.txt +8 -0
  116. package/__mf/js/async/6390.3f6f279d.js +2 -0
  117. package/__mf/js/async/6390.3f6f279d.js.LICENSE.txt +9 -0
  118. package/__mf/js/async/6401.1a59dbad.js +1 -0
  119. package/__mf/js/async/6593.acc8b704.js +4 -0
  120. package/__mf/js/async/6593.acc8b704.js.LICENSE.txt +24 -0
  121. package/__mf/js/async/6594.b02adfd9.js +2 -0
  122. package/__mf/js/async/6594.b02adfd9.js.LICENSE.txt +9 -0
  123. package/__mf/js/async/663.5445c7e0.js +1 -0
  124. package/__mf/js/async/6854.1d628838.js +1 -0
  125. package/__mf/js/async/7177.27c86137.js +1 -0
  126. package/__mf/js/async/7192.ede9860b.js +1 -0
  127. package/__mf/js/async/733.22ab2a8a.js +1 -0
  128. package/__mf/js/async/7422.33d76364.js +2 -0
  129. package/__mf/js/async/7422.33d76364.js.LICENSE.txt +9 -0
  130. package/__mf/js/async/7790.a75199e6.js +7 -0
  131. package/__mf/js/async/7790.a75199e6.js.LICENSE.txt +64 -0
  132. package/__mf/js/async/7862.556c038f.js +2 -0
  133. package/__mf/js/async/7862.556c038f.js.LICENSE.txt +9 -0
  134. package/__mf/js/async/7984.49fa1156.js +22 -0
  135. package/__mf/js/async/7984.49fa1156.js.LICENSE.txt +19 -0
  136. package/__mf/js/async/804.23da0d30.js +37 -0
  137. package/__mf/js/async/8470.2df0db71.js +2 -0
  138. package/__mf/js/async/8470.2df0db71.js.LICENSE.txt +19 -0
  139. package/__mf/js/async/8697.c13c6603.js +1 -0
  140. package/__mf/js/async/8907.9e3edf43.js +1 -0
  141. package/__mf/js/async/9040.94717f28.js +10 -0
  142. package/__mf/js/async/9040.94717f28.js.LICENSE.txt +17 -0
  143. package/__mf/js/async/9184.27a439a4.js +1 -0
  144. package/__mf/js/async/9235.00f9412f.js +1 -0
  145. package/__mf/js/async/941.d3bc6208.js +2 -0
  146. package/__mf/js/async/941.d3bc6208.js.LICENSE.txt +9 -0
  147. package/__mf/js/async/9634.3a366799.js +1 -0
  148. package/__mf/js/async/9836.cc839227.js +1 -0
  149. package/__mf/js/async/__federation_expose_AlertManagerAlertsExplorer.d4fb76c0.js +2 -0
  150. package/__mf/js/async/__federation_expose_AlertManagerAlertsExplorer.d4fb76c0.js.LICENSE.txt +9 -0
  151. package/__mf/js/async/__federation_expose_AlertManagerAlertsQuery.9ea3093c.js +1 -0
  152. package/__mf/js/async/__federation_expose_AlertManagerDatasource.2fbf067c.js +2 -0
  153. package/__mf/js/async/__federation_expose_AlertManagerDatasource.2fbf067c.js.LICENSE.txt +9 -0
  154. package/__mf/js/async/__federation_expose_AlertManagerSilencesExplorer.d2527c12.js +2 -0
  155. package/__mf/js/async/__federation_expose_AlertManagerSilencesExplorer.d2527c12.js.LICENSE.txt +9 -0
  156. package/__mf/js/async/__federation_expose_AlertManagerSilencesQuery.7aca31d3.js +2 -0
  157. package/__mf/js/async/__federation_expose_AlertManagerSilencesQuery.7aca31d3.js.LICENSE.txt +9 -0
  158. package/__mf/js/async/__federation_expose_AlertTable.4a636b80.js +1 -0
  159. package/__mf/js/async/__federation_expose_SilenceTable.11259028.js +1 -0
  160. package/__mf/js/async/lib-router.19f64904.js +2 -0
  161. package/__mf/js/async/lib-router.19f64904.js.LICENSE.txt +32 -0
  162. package/__mf/js/main.a1362788.js +7 -0
  163. package/lib/bootstrap.d.ts +2 -0
  164. package/lib/bootstrap.d.ts.map +1 -0
  165. package/lib/bootstrap.js +19 -0
  166. package/lib/bootstrap.js.map +1 -0
  167. package/lib/cjs/bootstrap.js +26 -0
  168. package/lib/cjs/components/ColumnsEditor.js +271 -0
  169. package/lib/cjs/components/LazyTextField.js +50 -0
  170. package/lib/cjs/components/MatcherEditor.js +153 -0
  171. package/lib/cjs/components/MatchersList.js +46 -0
  172. package/lib/cjs/components/SilenceForm.js +205 -0
  173. package/lib/cjs/components/StatusBadge.js +71 -0
  174. package/lib/cjs/components/index.js +44 -0
  175. package/lib/cjs/explore/AlertManagerAlertsExplorer.js +79 -0
  176. package/lib/cjs/explore/AlertManagerSilencesExplorer.js +153 -0
  177. package/lib/cjs/getPluginModule.js +39 -0
  178. package/lib/cjs/index-federation.js +55 -0
  179. package/lib/cjs/index.js +39 -0
  180. package/lib/cjs/model/alertmanager-client.js +128 -0
  181. package/lib/cjs/model/alertmanager-selectors.js +66 -0
  182. package/lib/cjs/model/api-types.js +22 -0
  183. package/lib/cjs/model/index.js +32 -0
  184. package/lib/cjs/plugins/AlertManagerDatasourceEditor.js +71 -0
  185. package/lib/cjs/plugins/alert-table/AlertTable.js +56 -0
  186. package/lib/cjs/plugins/alert-table/AlertTableColumnsEditor.js +110 -0
  187. package/lib/cjs/plugins/alert-table/AlertTableDeduplicationEditor.js +138 -0
  188. package/lib/cjs/plugins/alert-table/AlertTableLabelsEditor.js +277 -0
  189. package/lib/cjs/plugins/alert-table/AlertTableOptionsEditor.js +128 -0
  190. package/lib/cjs/plugins/alert-table/AlertTablePanel.js +773 -0
  191. package/lib/cjs/plugins/alert-table/alert-table-model.js +142 -0
  192. package/lib/cjs/plugins/alert-table/alert-table-sorting.js +205 -0
  193. package/lib/cjs/plugins/alert-table/label-colors.js +170 -0
  194. package/lib/cjs/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js +51 -0
  195. package/lib/cjs/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js +138 -0
  196. package/lib/cjs/plugins/alertmanager-alerts-query/get-alerts-data.js +124 -0
  197. package/lib/cjs/plugins/alertmanager-datasource.js +69 -0
  198. package/lib/cjs/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js +45 -0
  199. package/lib/cjs/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js +78 -0
  200. package/lib/cjs/plugins/alertmanager-silences-query/get-silences-data.js +64 -0
  201. package/lib/cjs/plugins/index.js +74 -0
  202. package/lib/cjs/plugins/silence-table/SilenceTable.js +42 -0
  203. package/lib/cjs/plugins/silence-table/SilenceTableColumnsEditor.js +137 -0
  204. package/lib/cjs/plugins/silence-table/SilenceTableOptionsEditor.js +63 -0
  205. package/lib/cjs/plugins/silence-table/SilenceTablePanel.js +345 -0
  206. package/lib/cjs/plugins/silence-table/silence-table-model.js +116 -0
  207. package/lib/cjs/plugins/silence-table/silence-table-sorting.js +68 -0
  208. package/lib/cjs/plugins/types.js +16 -0
  209. package/lib/cjs/setup-tests.js +18 -0
  210. package/lib/components/ColumnsEditor.d.ts +25 -0
  211. package/lib/components/ColumnsEditor.d.ts.map +1 -0
  212. package/lib/components/ColumnsEditor.js +258 -0
  213. package/lib/components/ColumnsEditor.js.map +1 -0
  214. package/lib/components/LazyTextField.d.ts +12 -0
  215. package/lib/components/LazyTextField.d.ts.map +1 -0
  216. package/lib/components/LazyTextField.js +42 -0
  217. package/lib/components/LazyTextField.js.map +1 -0
  218. package/lib/components/MatcherEditor.d.ts +17 -0
  219. package/lib/components/MatcherEditor.d.ts.map +1 -0
  220. package/lib/components/MatcherEditor.js +142 -0
  221. package/lib/components/MatcherEditor.js.map +1 -0
  222. package/lib/components/MatchersList.d.ts +10 -0
  223. package/lib/components/MatchersList.d.ts.map +1 -0
  224. package/lib/components/MatchersList.js +40 -0
  225. package/lib/components/MatchersList.js.map +1 -0
  226. package/lib/components/SilenceForm.d.ts +13 -0
  227. package/lib/components/SilenceForm.d.ts.map +1 -0
  228. package/lib/components/SilenceForm.js +194 -0
  229. package/lib/components/SilenceForm.js.map +1 -0
  230. package/lib/components/StatusBadge.d.ts +10 -0
  231. package/lib/components/StatusBadge.d.ts.map +1 -0
  232. package/lib/components/StatusBadge.js +65 -0
  233. package/lib/components/StatusBadge.js.map +1 -0
  234. package/lib/components/index.d.ts +11 -0
  235. package/lib/components/index.d.ts.map +1 -0
  236. package/lib/components/index.js +19 -0
  237. package/lib/components/index.js.map +1 -0
  238. package/lib/explore/AlertManagerAlertsExplorer.d.ts +3 -0
  239. package/lib/explore/AlertManagerAlertsExplorer.d.ts.map +1 -0
  240. package/lib/explore/AlertManagerAlertsExplorer.js +71 -0
  241. package/lib/explore/AlertManagerAlertsExplorer.js.map +1 -0
  242. package/lib/explore/AlertManagerSilencesExplorer.d.ts +3 -0
  243. package/lib/explore/AlertManagerSilencesExplorer.d.ts.map +1 -0
  244. package/lib/explore/AlertManagerSilencesExplorer.js +140 -0
  245. package/lib/explore/AlertManagerSilencesExplorer.js.map +1 -0
  246. package/lib/getPluginModule.d.ts +3 -0
  247. package/lib/getPluginModule.d.ts.map +1 -0
  248. package/lib/getPluginModule.js +26 -0
  249. package/lib/getPluginModule.js.map +1 -0
  250. package/lib/index-federation.d.ts +1 -0
  251. package/lib/index-federation.d.ts.map +1 -0
  252. package/lib/index-federation.js +15 -0
  253. package/lib/index-federation.js.map +1 -0
  254. package/lib/index.d.ts +5 -0
  255. package/lib/index.d.ts.map +1 -0
  256. package/lib/index.js +18 -0
  257. package/lib/index.js.map +1 -0
  258. package/lib/model/alertmanager-client.d.ts +27 -0
  259. package/lib/model/alertmanager-client.d.ts.map +1 -0
  260. package/lib/model/alertmanager-client.js +100 -0
  261. package/lib/model/alertmanager-client.js.map +1 -0
  262. package/lib/model/alertmanager-selectors.d.ts +13 -0
  263. package/lib/model/alertmanager-selectors.d.ts.map +1 -0
  264. package/lib/model/alertmanager-selectors.js +41 -0
  265. package/lib/model/alertmanager-selectors.js.map +1 -0
  266. package/lib/model/api-types.d.ts +120 -0
  267. package/lib/model/api-types.d.ts.map +1 -0
  268. package/lib/model/api-types.js +23 -0
  269. package/lib/model/api-types.js.map +1 -0
  270. package/lib/model/index.d.ts +4 -0
  271. package/lib/model/index.d.ts.map +1 -0
  272. package/lib/model/index.js +17 -0
  273. package/lib/model/index.js.map +1 -0
  274. package/lib/plugins/AlertManagerDatasourceEditor.d.ts +9 -0
  275. package/lib/plugins/AlertManagerDatasourceEditor.d.ts.map +1 -0
  276. package/lib/plugins/AlertManagerDatasourceEditor.js +63 -0
  277. package/lib/plugins/AlertManagerDatasourceEditor.js.map +1 -0
  278. package/lib/plugins/alert-table/AlertTable.d.ts +8 -0
  279. package/lib/plugins/alert-table/AlertTable.d.ts.map +1 -0
  280. package/lib/plugins/alert-table/AlertTable.js +50 -0
  281. package/lib/plugins/alert-table/AlertTable.js.map +1 -0
  282. package/lib/plugins/alert-table/AlertTableColumnsEditor.d.ts +5 -0
  283. package/lib/plugins/alert-table/AlertTableColumnsEditor.d.ts.map +1 -0
  284. package/lib/plugins/alert-table/AlertTableColumnsEditor.js +102 -0
  285. package/lib/plugins/alert-table/AlertTableColumnsEditor.js.map +1 -0
  286. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.d.ts +5 -0
  287. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.d.ts.map +1 -0
  288. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.js +130 -0
  289. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.js.map +1 -0
  290. package/lib/plugins/alert-table/AlertTableLabelsEditor.d.ts +5 -0
  291. package/lib/plugins/alert-table/AlertTableLabelsEditor.d.ts.map +1 -0
  292. package/lib/plugins/alert-table/AlertTableLabelsEditor.js +264 -0
  293. package/lib/plugins/alert-table/AlertTableLabelsEditor.js.map +1 -0
  294. package/lib/plugins/alert-table/AlertTableOptionsEditor.d.ts +5 -0
  295. package/lib/plugins/alert-table/AlertTableOptionsEditor.d.ts.map +1 -0
  296. package/lib/plugins/alert-table/AlertTableOptionsEditor.js +120 -0
  297. package/lib/plugins/alert-table/AlertTableOptionsEditor.js.map +1 -0
  298. package/lib/plugins/alert-table/AlertTablePanel.d.ts +11 -0
  299. package/lib/plugins/alert-table/AlertTablePanel.d.ts.map +1 -0
  300. package/lib/plugins/alert-table/AlertTablePanel.js +763 -0
  301. package/lib/plugins/alert-table/AlertTablePanel.js.map +1 -0
  302. package/lib/plugins/alert-table/alert-table-model.d.ts +73 -0
  303. package/lib/plugins/alert-table/alert-table-model.d.ts.map +1 -0
  304. package/lib/plugins/alert-table/alert-table-model.js +127 -0
  305. package/lib/plugins/alert-table/alert-table-model.js.map +1 -0
  306. package/lib/plugins/alert-table/alert-table-sorting.d.ts +13 -0
  307. package/lib/plugins/alert-table/alert-table-sorting.d.ts.map +1 -0
  308. package/lib/plugins/alert-table/alert-table-sorting.js +180 -0
  309. package/lib/plugins/alert-table/alert-table-sorting.js.map +1 -0
  310. package/lib/plugins/alert-table/label-colors.d.ts +6 -0
  311. package/lib/plugins/alert-table/label-colors.d.ts.map +1 -0
  312. package/lib/plugins/alert-table/label-colors.js +148 -0
  313. package/lib/plugins/alert-table/label-colors.js.map +1 -0
  314. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.d.ts +4 -0
  315. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.d.ts.map +1 -0
  316. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js +43 -0
  317. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js.map +1 -0
  318. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.d.ts +9 -0
  319. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.d.ts.map +1 -0
  320. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js +130 -0
  321. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js.map +1 -0
  322. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.d.ts +8 -0
  323. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.d.ts.map +1 -0
  324. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.js +118 -0
  325. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.js.map +1 -0
  326. package/lib/plugins/alertmanager-datasource.d.ts +5 -0
  327. package/lib/plugins/alertmanager-datasource.d.ts.map +1 -0
  328. package/lib/plugins/alertmanager-datasource.js +61 -0
  329. package/lib/plugins/alertmanager-datasource.js.map +1 -0
  330. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.d.ts +4 -0
  331. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.d.ts.map +1 -0
  332. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js +37 -0
  333. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js.map +1 -0
  334. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.d.ts +9 -0
  335. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.d.ts.map +1 -0
  336. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js +70 -0
  337. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js.map +1 -0
  338. package/lib/plugins/alertmanager-silences-query/get-silences-data.d.ts +8 -0
  339. package/lib/plugins/alertmanager-silences-query/get-silences-data.d.ts.map +1 -0
  340. package/lib/plugins/alertmanager-silences-query/get-silences-data.js +58 -0
  341. package/lib/plugins/alertmanager-silences-query/get-silences-data.js.map +1 -0
  342. package/lib/plugins/index.d.ts +19 -0
  343. package/lib/plugins/index.d.ts.map +1 -0
  344. package/lib/plugins/index.js +30 -0
  345. package/lib/plugins/index.js.map +1 -0
  346. package/lib/plugins/silence-table/SilenceTable.d.ts +7 -0
  347. package/lib/plugins/silence-table/SilenceTable.d.ts.map +1 -0
  348. package/lib/plugins/silence-table/SilenceTable.js +36 -0
  349. package/lib/plugins/silence-table/SilenceTable.js.map +1 -0
  350. package/lib/plugins/silence-table/SilenceTableColumnsEditor.d.ts +5 -0
  351. package/lib/plugins/silence-table/SilenceTableColumnsEditor.d.ts.map +1 -0
  352. package/lib/plugins/silence-table/SilenceTableColumnsEditor.js +129 -0
  353. package/lib/plugins/silence-table/SilenceTableColumnsEditor.js.map +1 -0
  354. package/lib/plugins/silence-table/SilenceTableOptionsEditor.d.ts +5 -0
  355. package/lib/plugins/silence-table/SilenceTableOptionsEditor.d.ts.map +1 -0
  356. package/lib/plugins/silence-table/SilenceTableOptionsEditor.js +55 -0
  357. package/lib/plugins/silence-table/SilenceTableOptionsEditor.js.map +1 -0
  358. package/lib/plugins/silence-table/SilenceTablePanel.d.ts +11 -0
  359. package/lib/plugins/silence-table/SilenceTablePanel.d.ts.map +1 -0
  360. package/lib/plugins/silence-table/SilenceTablePanel.js +335 -0
  361. package/lib/plugins/silence-table/SilenceTablePanel.js.map +1 -0
  362. package/lib/plugins/silence-table/silence-table-model.d.ts +29 -0
  363. package/lib/plugins/silence-table/silence-table-model.d.ts.map +1 -0
  364. package/lib/plugins/silence-table/silence-table-model.js +90 -0
  365. package/lib/plugins/silence-table/silence-table-model.js.map +1 -0
  366. package/lib/plugins/silence-table/silence-table-sorting.d.ts +9 -0
  367. package/lib/plugins/silence-table/silence-table-sorting.d.ts.map +1 -0
  368. package/lib/plugins/silence-table/silence-table-sorting.js +60 -0
  369. package/lib/plugins/silence-table/silence-table-sorting.js.map +1 -0
  370. package/lib/plugins/types.d.ts +30 -0
  371. package/lib/plugins/types.d.ts.map +1 -0
  372. package/lib/plugins/types.js +17 -0
  373. package/lib/plugins/types.js.map +1 -0
  374. package/lib/setup-tests.d.ts +2 -0
  375. package/lib/setup-tests.d.ts.map +1 -0
  376. package/lib/setup-tests.js +16 -0
  377. package/lib/setup-tests.js.map +1 -0
  378. package/mf-manifest.json +631 -0
  379. package/mf-stats.json +752 -0
  380. package/package.json +115 -0
@@ -0,0 +1,37 @@
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
+ import { isVariableDatasource, parseVariables } from '@perses-dev/plugin-system';
14
+ import { getSilencesData } from './get-silences-data';
15
+ import { AlertManagerSilencesQueryEditor } from './AlertManagerSilencesQueryEditor';
16
+ export const AlertManagerSilencesQuery = {
17
+ getSilencesData,
18
+ OptionsEditorComponent: AlertManagerSilencesQueryEditor,
19
+ createInitialOptions: ()=>({
20
+ datasource: undefined,
21
+ filters: []
22
+ }),
23
+ dependsOn: (spec)=>{
24
+ const datasourceVariables = isVariableDatasource(spec.datasource) ? parseVariables(spec.datasource ?? '') : [];
25
+ const filterVariables = spec.filters?.flatMap((f)=>parseVariables(f)) ?? [];
26
+ return {
27
+ variables: [
28
+ ...new Set([
29
+ ...datasourceVariables,
30
+ ...filterVariables
31
+ ])
32
+ ]
33
+ };
34
+ }
35
+ };
36
+
37
+ //# sourceMappingURL=AlertManagerSilencesQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.ts"],"sourcesContent":["// Copyright The Perses Authors\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 { isVariableDatasource, parseVariables, SilencesQueryPlugin } from '@perses-dev/plugin-system';\nimport { AlertManagerSilencesQuerySpec } from '../types';\nimport { getSilencesData } from './get-silences-data';\nimport { AlertManagerSilencesQueryEditor } from './AlertManagerSilencesQueryEditor';\n\nexport const AlertManagerSilencesQuery: SilencesQueryPlugin<AlertManagerSilencesQuerySpec> = {\n getSilencesData,\n OptionsEditorComponent: AlertManagerSilencesQueryEditor,\n createInitialOptions: (): AlertManagerSilencesQuerySpec => ({\n datasource: undefined,\n filters: [],\n }),\n dependsOn: (spec: AlertManagerSilencesQuerySpec) => {\n const datasourceVariables = isVariableDatasource(spec.datasource) ? parseVariables(spec.datasource ?? '') : [];\n const filterVariables = spec.filters?.flatMap((f) => parseVariables(f)) ?? [];\n return {\n variables: [...new Set([...datasourceVariables, ...filterVariables])],\n };\n },\n};\n"],"names":["isVariableDatasource","parseVariables","getSilencesData","AlertManagerSilencesQueryEditor","AlertManagerSilencesQuery","OptionsEditorComponent","createInitialOptions","datasource","undefined","filters","dependsOn","spec","datasourceVariables","filterVariables","flatMap","f","variables","Set"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,oBAAoB,EAAEC,cAAc,QAA6B,4BAA4B;AAEtG,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,+BAA+B,QAAQ,oCAAoC;AAEpF,OAAO,MAAMC,4BAAgF;IAC3FF;IACAG,wBAAwBF;IACxBG,sBAAsB,IAAsC,CAAA;YAC1DC,YAAYC;YACZC,SAAS,EAAE;QACb,CAAA;IACAC,WAAW,CAACC;QACV,MAAMC,sBAAsBZ,qBAAqBW,KAAKJ,UAAU,IAAIN,eAAeU,KAAKJ,UAAU,IAAI,MAAM,EAAE;QAC9G,MAAMM,kBAAkBF,KAAKF,OAAO,EAAEK,QAAQ,CAACC,IAAMd,eAAec,OAAO,EAAE;QAC7E,OAAO;YACLC,WAAW;mBAAI,IAAIC,IAAI;uBAAIL;uBAAwBC;iBAAgB;aAAE;QACvE;IACF;AACF,EAAE"}
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from 'react';
2
+ import { AlertManagerSilencesQuerySpec } from '../types';
3
+ interface AlertManagerSilencesQueryEditorProps {
4
+ value: AlertManagerSilencesQuerySpec;
5
+ onChange: (next: AlertManagerSilencesQuerySpec) => void;
6
+ }
7
+ export declare function AlertManagerSilencesQueryEditor(props: AlertManagerSilencesQueryEditorProps): ReactElement;
8
+ export {};
9
+ //# sourceMappingURL=AlertManagerSilencesQueryEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertManagerSilencesQueryEditor.d.ts","sourceRoot":"","sources":["../../../../src/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAe,MAAM,OAAO,CAAC;AAQlD,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAEzD,UAAU,oCAAoC;IAC5C,KAAK,EAAE,6BAA6B,CAAC;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,6BAA6B,KAAK,IAAI,CAAC;CACzD;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,oCAAoC,GAAG,YAAY,CAuDzG"}
@@ -0,0 +1,70 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright The Perses Authors
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ import { FormControl, Stack } from '@mui/material';
15
+ import { useId } from '@perses-dev/components';
16
+ import { DatasourceSelect } from '@perses-dev/plugin-system';
17
+ import { produce } from 'immer';
18
+ import { useCallback } from 'react';
19
+ import { LazyTextField } from '../../components/LazyTextField';
20
+ import { ALERTMANAGER_DATASOURCE_KIND, DEFAULT_ALERTMANAGER, isAlertManagerDatasourceSelector, isDefaultAlertManagerSelector } from '../../model';
21
+ export function AlertManagerSilencesQueryEditor(props) {
22
+ const { onChange, value } = props;
23
+ const datasourceSelectValue = value.datasource ?? DEFAULT_ALERTMANAGER;
24
+ const datasourceSelectLabelID = useId('alertmanager-silences-datasource-label');
25
+ const handleDatasourceChange = (next)=>{
26
+ if (isAlertManagerDatasourceSelector(next)) {
27
+ onChange(produce(value, (draft)=>{
28
+ draft.datasource = isDefaultAlertManagerSelector(next) ? undefined : next;
29
+ }));
30
+ return;
31
+ }
32
+ throw new Error('Got unexpected non-AlertManager datasource selector');
33
+ };
34
+ const handleFiltersChange = useCallback((filtersText)=>{
35
+ onChange(produce(value, (draft)=>{
36
+ draft.filters = filtersText.split('\n').map((f)=>f.trim()).filter((f)=>f !== '');
37
+ }));
38
+ }, [
39
+ onChange,
40
+ value
41
+ ]);
42
+ return /*#__PURE__*/ _jsxs(Stack, {
43
+ spacing: 2,
44
+ children: [
45
+ /*#__PURE__*/ _jsx(FormControl, {
46
+ margin: "dense",
47
+ fullWidth: false,
48
+ children: /*#__PURE__*/ _jsx(DatasourceSelect, {
49
+ datasourcePluginKind: ALERTMANAGER_DATASOURCE_KIND,
50
+ value: datasourceSelectValue,
51
+ onChange: handleDatasourceChange,
52
+ labelId: datasourceSelectLabelID,
53
+ label: "Alert Manager Datasource",
54
+ notched: true
55
+ })
56
+ }),
57
+ /*#__PURE__*/ _jsx(LazyTextField, {
58
+ label: "Filters (one per line)",
59
+ value: (value.filters ?? []).join('\n'),
60
+ onCommit: handleFiltersChange,
61
+ placeholder: 'alertname="HighMemory"\nseverity="critical"\nenvironment=~"${env:pipe}"',
62
+ helperText: "PromQL-style matchers, one per line.",
63
+ multiline: true,
64
+ minRows: 3
65
+ })
66
+ ]
67
+ });
68
+ }
69
+
70
+ //# sourceMappingURL=AlertManagerSilencesQueryEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\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 { FormControl, Stack } from '@mui/material';\nimport { useId } from '@perses-dev/components';\nimport { DatasourceSelect, DatasourceSelectProps } from '@perses-dev/plugin-system';\nimport { produce } from 'immer';\nimport { ReactElement, useCallback } from 'react';\nimport { LazyTextField } from '../../components/LazyTextField';\nimport {\n ALERTMANAGER_DATASOURCE_KIND,\n DEFAULT_ALERTMANAGER,\n isAlertManagerDatasourceSelector,\n isDefaultAlertManagerSelector,\n} from '../../model';\nimport { AlertManagerSilencesQuerySpec } from '../types';\n\ninterface AlertManagerSilencesQueryEditorProps {\n value: AlertManagerSilencesQuerySpec;\n onChange: (next: AlertManagerSilencesQuerySpec) => void;\n}\n\nexport function AlertManagerSilencesQueryEditor(props: AlertManagerSilencesQueryEditorProps): ReactElement {\n const { onChange, value } = props;\n const datasourceSelectValue = value.datasource ?? DEFAULT_ALERTMANAGER;\n const datasourceSelectLabelID = useId('alertmanager-silences-datasource-label');\n\n const handleDatasourceChange: DatasourceSelectProps['onChange'] = (next) => {\n if (isAlertManagerDatasourceSelector(next)) {\n onChange(\n produce(value, (draft) => {\n draft.datasource = isDefaultAlertManagerSelector(next) ? undefined : next;\n })\n );\n return;\n }\n\n throw new Error('Got unexpected non-AlertManager datasource selector');\n };\n\n const handleFiltersChange = useCallback(\n (filtersText: string): void => {\n onChange(\n produce(value, (draft) => {\n draft.filters = filtersText\n .split('\\n')\n .map((f) => f.trim())\n .filter((f) => f !== '');\n })\n );\n },\n [onChange, value]\n );\n\n return (\n <Stack spacing={2}>\n <FormControl margin=\"dense\" fullWidth={false}>\n <DatasourceSelect\n datasourcePluginKind={ALERTMANAGER_DATASOURCE_KIND}\n value={datasourceSelectValue}\n onChange={handleDatasourceChange}\n labelId={datasourceSelectLabelID}\n label=\"Alert Manager Datasource\"\n notched\n />\n </FormControl>\n <LazyTextField\n label=\"Filters (one per line)\"\n value={(value.filters ?? []).join('\\n')}\n onCommit={handleFiltersChange}\n placeholder={'alertname=\"HighMemory\"\\nseverity=\"critical\"\\nenvironment=~\"${env:pipe}\"'}\n helperText=\"PromQL-style matchers, one per line.\"\n multiline\n minRows={3}\n />\n </Stack>\n );\n}\n"],"names":["FormControl","Stack","useId","DatasourceSelect","produce","useCallback","LazyTextField","ALERTMANAGER_DATASOURCE_KIND","DEFAULT_ALERTMANAGER","isAlertManagerDatasourceSelector","isDefaultAlertManagerSelector","AlertManagerSilencesQueryEditor","props","onChange","value","datasourceSelectValue","datasource","datasourceSelectLabelID","handleDatasourceChange","next","draft","undefined","Error","handleFiltersChange","filtersText","filters","split","map","f","trim","filter","spacing","margin","fullWidth","datasourcePluginKind","labelId","label","notched","join","onCommit","placeholder","helperText","multiline","minRows"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,WAAW,EAAEC,KAAK,QAAQ,gBAAgB;AACnD,SAASC,KAAK,QAAQ,yBAAyB;AAC/C,SAASC,gBAAgB,QAA+B,4BAA4B;AACpF,SAASC,OAAO,QAAQ,QAAQ;AAChC,SAAuBC,WAAW,QAAQ,QAAQ;AAClD,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SACEC,4BAA4B,EAC5BC,oBAAoB,EACpBC,gCAAgC,EAChCC,6BAA6B,QACxB,cAAc;AAQrB,OAAO,SAASC,gCAAgCC,KAA2C;IACzF,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGF;IAC5B,MAAMG,wBAAwBD,MAAME,UAAU,IAAIR;IAClD,MAAMS,0BAA0Bf,MAAM;IAEtC,MAAMgB,yBAA4D,CAACC;QACjE,IAAIV,iCAAiCU,OAAO;YAC1CN,SACET,QAAQU,OAAO,CAACM;gBACdA,MAAMJ,UAAU,GAAGN,8BAA8BS,QAAQE,YAAYF;YACvE;YAEF;QACF;QAEA,MAAM,IAAIG,MAAM;IAClB;IAEA,MAAMC,sBAAsBlB,YAC1B,CAACmB;QACCX,SACET,QAAQU,OAAO,CAACM;YACdA,MAAMK,OAAO,GAAGD,YACbE,KAAK,CAAC,MACNC,GAAG,CAAC,CAACC,IAAMA,EAAEC,IAAI,IACjBC,MAAM,CAAC,CAACF,IAAMA,MAAM;QACzB;IAEJ,GACA;QAACf;QAAUC;KAAM;IAGnB,qBACE,MAACb;QAAM8B,SAAS;;0BACd,KAAC/B;gBAAYgC,QAAO;gBAAQC,WAAW;0BACrC,cAAA,KAAC9B;oBACC+B,sBAAsB3B;oBACtBO,OAAOC;oBACPF,UAAUK;oBACViB,SAASlB;oBACTmB,OAAM;oBACNC,OAAO;;;0BAGX,KAAC/B;gBACC8B,OAAM;gBACNtB,OAAO,AAACA,CAAAA,MAAMW,OAAO,IAAI,EAAE,AAAD,EAAGa,IAAI,CAAC;gBAClCC,UAAUhB;gBACViB,aAAa;gBACbC,YAAW;gBACXC,SAAS;gBACTC,SAAS;;;;AAIjB"}
@@ -0,0 +1,8 @@
1
+ import { SilencesQueryContext } from '@perses-dev/plugin-system';
2
+ import { SilencesData } from '@perses-dev/spec';
3
+ import { AlertManagerSilencesQuerySpec } from '../types';
4
+ /**
5
+ * Get silences data from Alert Manager, transforming the API response into the plugin-system SilencesData format.
6
+ */
7
+ export declare function getSilencesData(spec: AlertManagerSilencesQuerySpec, context: SilencesQueryContext): Promise<SilencesData>;
8
+ //# sourceMappingURL=get-silences-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-silences-data.d.ts","sourceRoot":"","sources":["../../../../src/plugins/alertmanager-silences-query/get-silences-data.ts"],"names":[],"mappings":"AAaA,OAAO,EAAqD,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,EAAW,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAsBzD;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,6BAA6B,EACnC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,YAAY,CAAC,CAsBvB"}
@@ -0,0 +1,58 @@
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
+ import { datasourceSelectValueToSelector, replaceVariables } from '@perses-dev/plugin-system';
14
+ import { ALERTMANAGER_DATASOURCE_KIND, DEFAULT_ALERTMANAGER } from '../../model';
15
+ /**
16
+ * Transform a GettableSilence from the Alertmanager API into our normalized Silence format.
17
+ */ function transformSilence(apiSilence) {
18
+ return {
19
+ id: apiSilence.id,
20
+ state: apiSilence.status.state,
21
+ matchers: apiSilence.matchers.map((m)=>({
22
+ name: m.name,
23
+ value: m.value,
24
+ isRegex: m.isRegex,
25
+ isEqual: m.isEqual
26
+ })),
27
+ startsAt: apiSilence.startsAt,
28
+ endsAt: apiSilence.endsAt,
29
+ createdBy: apiSilence.createdBy,
30
+ comment: apiSilence.comment,
31
+ updatedAt: apiSilence.updatedAt
32
+ };
33
+ }
34
+ /**
35
+ * Get silences data from Alert Manager, transforming the API response into the plugin-system SilencesData format.
36
+ */ export async function getSilencesData(spec, context) {
37
+ const listDatasourceSelectItems = await context.datasourceStore.listDatasourceSelectItems(ALERTMANAGER_DATASOURCE_KIND);
38
+ const datasourceSelector = datasourceSelectValueToSelector(spec.datasource, context.variableState, listDatasourceSelectItems) ?? DEFAULT_ALERTMANAGER;
39
+ const client = await context.datasourceStore.getDatasourceClient(datasourceSelector);
40
+ const interpolatedFilters = spec.filters?.map((f)=>replaceVariables(f, context.variableState));
41
+ const apiSilences = await client.getSilences({
42
+ filter: interpolatedFilters
43
+ });
44
+ const silences = apiSilences.map(transformSilence);
45
+ return {
46
+ silences,
47
+ metadata: {
48
+ executedQueryString: buildQueryString(spec)
49
+ }
50
+ };
51
+ }
52
+ function buildQueryString(spec) {
53
+ return JSON.stringify(Object.fromEntries(Object.entries({
54
+ filters: spec.filters
55
+ }).filter(([, value])=>value !== undefined)));
56
+ }
57
+
58
+ //# sourceMappingURL=get-silences-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/plugins/alertmanager-silences-query/get-silences-data.ts"],"sourcesContent":["// Copyright The Perses Authors\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 { datasourceSelectValueToSelector, replaceVariables, SilencesQueryContext } from '@perses-dev/plugin-system';\nimport { Silence, SilencesData } from '@perses-dev/spec';\nimport { ALERTMANAGER_DATASOURCE_KIND, AlertManagerClient, DEFAULT_ALERTMANAGER, GettableSilence } from '../../model';\nimport { AlertManagerSilencesQuerySpec } from '../types';\n/**\n * Transform a GettableSilence from the Alertmanager API into our normalized Silence format.\n */\nfunction transformSilence(apiSilence: GettableSilence): Silence {\n return {\n id: apiSilence.id,\n state: apiSilence.status.state,\n matchers: apiSilence.matchers.map((m) => ({\n name: m.name,\n value: m.value,\n isRegex: m.isRegex,\n isEqual: m.isEqual,\n })),\n startsAt: apiSilence.startsAt,\n endsAt: apiSilence.endsAt,\n createdBy: apiSilence.createdBy,\n comment: apiSilence.comment,\n updatedAt: apiSilence.updatedAt,\n };\n}\n\n/**\n * Get silences data from Alert Manager, transforming the API response into the plugin-system SilencesData format.\n */\nexport async function getSilencesData(\n spec: AlertManagerSilencesQuerySpec,\n context: SilencesQueryContext\n): Promise<SilencesData> {\n const listDatasourceSelectItems =\n await context.datasourceStore.listDatasourceSelectItems(ALERTMANAGER_DATASOURCE_KIND);\n const datasourceSelector =\n datasourceSelectValueToSelector(spec.datasource, context.variableState, listDatasourceSelectItems) ??\n DEFAULT_ALERTMANAGER;\n const client = await context.datasourceStore.getDatasourceClient<AlertManagerClient>(datasourceSelector);\n\n const interpolatedFilters = spec.filters?.map((f) => replaceVariables(f, context.variableState));\n\n const apiSilences = await client.getSilences({\n filter: interpolatedFilters,\n });\n\n const silences = apiSilences.map(transformSilence);\n\n return {\n silences,\n metadata: {\n executedQueryString: buildQueryString(spec),\n },\n };\n}\n\nfunction buildQueryString(spec: AlertManagerSilencesQuerySpec): string {\n return JSON.stringify(\n Object.fromEntries(\n Object.entries({\n filters: spec.filters,\n }).filter(([, value]) => value !== undefined)\n )\n );\n}\n"],"names":["datasourceSelectValueToSelector","replaceVariables","ALERTMANAGER_DATASOURCE_KIND","DEFAULT_ALERTMANAGER","transformSilence","apiSilence","id","state","status","matchers","map","m","name","value","isRegex","isEqual","startsAt","endsAt","createdBy","comment","updatedAt","getSilencesData","spec","context","listDatasourceSelectItems","datasourceStore","datasourceSelector","datasource","variableState","client","getDatasourceClient","interpolatedFilters","filters","f","apiSilences","getSilences","filter","silences","metadata","executedQueryString","buildQueryString","JSON","stringify","Object","fromEntries","entries","undefined"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,+BAA+B,EAAEC,gBAAgB,QAA8B,4BAA4B;AAEpH,SAASC,4BAA4B,EAAsBC,oBAAoB,QAAyB,cAAc;AAEtH;;CAEC,GACD,SAASC,iBAAiBC,UAA2B;IACnD,OAAO;QACLC,IAAID,WAAWC,EAAE;QACjBC,OAAOF,WAAWG,MAAM,CAACD,KAAK;QAC9BE,UAAUJ,WAAWI,QAAQ,CAACC,GAAG,CAAC,CAACC,IAAO,CAAA;gBACxCC,MAAMD,EAAEC,IAAI;gBACZC,OAAOF,EAAEE,KAAK;gBACdC,SAASH,EAAEG,OAAO;gBAClBC,SAASJ,EAAEI,OAAO;YACpB,CAAA;QACAC,UAAUX,WAAWW,QAAQ;QAC7BC,QAAQZ,WAAWY,MAAM;QACzBC,WAAWb,WAAWa,SAAS;QAC/BC,SAASd,WAAWc,OAAO;QAC3BC,WAAWf,WAAWe,SAAS;IACjC;AACF;AAEA;;CAEC,GACD,OAAO,eAAeC,gBACpBC,IAAmC,EACnCC,OAA6B;IAE7B,MAAMC,4BACJ,MAAMD,QAAQE,eAAe,CAACD,yBAAyB,CAACtB;IAC1D,MAAMwB,qBACJ1B,gCAAgCsB,KAAKK,UAAU,EAAEJ,QAAQK,aAAa,EAAEJ,8BACxErB;IACF,MAAM0B,SAAS,MAAMN,QAAQE,eAAe,CAACK,mBAAmB,CAAqBJ;IAErF,MAAMK,sBAAsBT,KAAKU,OAAO,EAAEtB,IAAI,CAACuB,IAAMhC,iBAAiBgC,GAAGV,QAAQK,aAAa;IAE9F,MAAMM,cAAc,MAAML,OAAOM,WAAW,CAAC;QAC3CC,QAAQL;IACV;IAEA,MAAMM,WAAWH,YAAYxB,GAAG,CAACN;IAEjC,OAAO;QACLiC;QACAC,UAAU;YACRC,qBAAqBC,iBAAiBlB;QACxC;IACF;AACF;AAEA,SAASkB,iBAAiBlB,IAAmC;IAC3D,OAAOmB,KAAKC,SAAS,CACnBC,OAAOC,WAAW,CAChBD,OAAOE,OAAO,CAAC;QACbb,SAASV,KAAKU,OAAO;IACvB,GAAGI,MAAM,CAAC,CAAC,GAAGvB,MAAM,GAAKA,UAAUiC;AAGzC"}
@@ -0,0 +1,19 @@
1
+ export * from './alertmanager-datasource';
2
+ export * from './types';
3
+ export * from './AlertManagerDatasourceEditor';
4
+ export * from './alertmanager-alerts-query/AlertManagerAlertsQuery';
5
+ export * from './alertmanager-alerts-query/get-alerts-data';
6
+ export * from './alertmanager-alerts-query/AlertManagerAlertsQueryEditor';
7
+ export * from './alertmanager-silences-query/AlertManagerSilencesQuery';
8
+ export * from './alertmanager-silences-query/get-silences-data';
9
+ export * from './alertmanager-silences-query/AlertManagerSilencesQueryEditor';
10
+ export * from './alert-table/AlertTable';
11
+ export * from './alert-table/alert-table-model';
12
+ export * from './alert-table/AlertTablePanel';
13
+ export * from './silence-table/SilenceTable';
14
+ export { ALL_SILENCE_ACTIONS, DEFAULT_COLUMN_HEADERS, DEFAULT_SILENCE_COLUMNS, getSilenceDuration, getSilenceFieldValue, inferSortMode, } from './silence-table/silence-table-model';
15
+ export type { SilenceAction, SilenceColumnDefinition, SilenceColumnSortMode, SilenceFieldName, SilenceTableOptions, } from './silence-table/silence-table-model';
16
+ export { compareSilencesByColumn } from './silence-table/silence-table-sorting';
17
+ export type { SilenceSortState } from './silence-table/silence-table-sorting';
18
+ export * from './silence-table/SilenceTablePanel';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAaA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,yDAAyD,CAAC;AACxE,cAAc,iDAAiD,CAAC;AAChE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,GACd,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EACV,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,30 @@
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
+ export * from './alertmanager-datasource';
14
+ export * from './types';
15
+ export * from './AlertManagerDatasourceEditor';
16
+ export * from './alertmanager-alerts-query/AlertManagerAlertsQuery';
17
+ export * from './alertmanager-alerts-query/get-alerts-data';
18
+ export * from './alertmanager-alerts-query/AlertManagerAlertsQueryEditor';
19
+ export * from './alertmanager-silences-query/AlertManagerSilencesQuery';
20
+ export * from './alertmanager-silences-query/get-silences-data';
21
+ export * from './alertmanager-silences-query/AlertManagerSilencesQueryEditor';
22
+ export * from './alert-table/AlertTable';
23
+ export * from './alert-table/alert-table-model';
24
+ export * from './alert-table/AlertTablePanel';
25
+ export * from './silence-table/SilenceTable';
26
+ export { ALL_SILENCE_ACTIONS, DEFAULT_COLUMN_HEADERS, DEFAULT_SILENCE_COLUMNS, getSilenceDuration, getSilenceFieldValue, inferSortMode } from './silence-table/silence-table-model';
27
+ export { compareSilencesByColumn } from './silence-table/silence-table-sorting';
28
+ export * from './silence-table/SilenceTablePanel';
29
+
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/plugins/index.ts"],"sourcesContent":["// Copyright The Perses Authors\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\nexport * from './alertmanager-datasource';\nexport * from './types';\nexport * from './AlertManagerDatasourceEditor';\nexport * from './alertmanager-alerts-query/AlertManagerAlertsQuery';\nexport * from './alertmanager-alerts-query/get-alerts-data';\nexport * from './alertmanager-alerts-query/AlertManagerAlertsQueryEditor';\nexport * from './alertmanager-silences-query/AlertManagerSilencesQuery';\nexport * from './alertmanager-silences-query/get-silences-data';\nexport * from './alertmanager-silences-query/AlertManagerSilencesQueryEditor';\nexport * from './alert-table/AlertTable';\nexport * from './alert-table/alert-table-model';\nexport * from './alert-table/AlertTablePanel';\nexport * from './silence-table/SilenceTable';\nexport {\n ALL_SILENCE_ACTIONS,\n DEFAULT_COLUMN_HEADERS,\n DEFAULT_SILENCE_COLUMNS,\n getSilenceDuration,\n getSilenceFieldValue,\n inferSortMode,\n} from './silence-table/silence-table-model';\nexport type {\n SilenceAction,\n SilenceColumnDefinition,\n SilenceColumnSortMode,\n SilenceFieldName,\n SilenceTableOptions,\n} from './silence-table/silence-table-model';\nexport { compareSilencesByColumn } from './silence-table/silence-table-sorting';\nexport type { SilenceSortState } from './silence-table/silence-table-sorting';\nexport * from './silence-table/SilenceTablePanel';\n"],"names":["ALL_SILENCE_ACTIONS","DEFAULT_COLUMN_HEADERS","DEFAULT_SILENCE_COLUMNS","getSilenceDuration","getSilenceFieldValue","inferSortMode","compareSilencesByColumn"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,4BAA4B;AAC1C,cAAc,UAAU;AACxB,cAAc,iCAAiC;AAC/C,cAAc,sDAAsD;AACpE,cAAc,8CAA8C;AAC5D,cAAc,4DAA4D;AAC1E,cAAc,0DAA0D;AACxE,cAAc,kDAAkD;AAChE,cAAc,gEAAgE;AAC9E,cAAc,2BAA2B;AACzC,cAAc,kCAAkC;AAChD,cAAc,gCAAgC;AAC9C,cAAc,+BAA+B;AAC7C,SACEA,mBAAmB,EACnBC,sBAAsB,EACtBC,uBAAuB,EACvBC,kBAAkB,EAClBC,oBAAoB,EACpBC,aAAa,QACR,sCAAsC;AAQ7C,SAASC,uBAAuB,QAAQ,wCAAwC;AAEhF,cAAc,oCAAoC"}
@@ -0,0 +1,7 @@
1
+ import { PanelPlugin } from '@perses-dev/plugin-system';
2
+ import { SilenceTableOptions } from './silence-table-model';
3
+ /**
4
+ * Panel plugin for displaying Alert Manager silences in a table.
5
+ */
6
+ export declare const SilenceTable: PanelPlugin<SilenceTableOptions>;
7
+ //# sourceMappingURL=SilenceTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SilenceTable.d.ts","sourceRoot":"","sources":["../../../../src/plugins/silence-table/SilenceTable.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,mBAAmB,CAQzD,CAAC"}
@@ -0,0 +1,36 @@
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
+ import { SilenceTableColumnsEditor } from './SilenceTableColumnsEditor';
14
+ import { SilenceTableOptionsEditor } from './SilenceTableOptionsEditor';
15
+ import { SilenceTablePanel } from './SilenceTablePanel';
16
+ /**
17
+ * Panel plugin for displaying Alert Manager silences in a table.
18
+ */ export const SilenceTable = {
19
+ PanelComponent: SilenceTablePanel,
20
+ supportedQueryTypes: [
21
+ 'SilencesQuery'
22
+ ],
23
+ panelOptionsEditorComponents: [
24
+ {
25
+ label: 'General',
26
+ content: SilenceTableOptionsEditor
27
+ },
28
+ {
29
+ label: 'Columns',
30
+ content: SilenceTableColumnsEditor
31
+ }
32
+ ],
33
+ createInitialOptions: ()=>({})
34
+ };
35
+
36
+ //# sourceMappingURL=SilenceTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/plugins/silence-table/SilenceTable.ts"],"sourcesContent":["// Copyright The Perses Authors\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 { PanelPlugin } from '@perses-dev/plugin-system';\nimport { SilenceTableColumnsEditor } from './SilenceTableColumnsEditor';\nimport { SilenceTableOptionsEditor } from './SilenceTableOptionsEditor';\nimport { SilenceTablePanel } from './SilenceTablePanel';\nimport { SilenceTableOptions } from './silence-table-model';\n\n/**\n * Panel plugin for displaying Alert Manager silences in a table.\n */\nexport const SilenceTable: PanelPlugin<SilenceTableOptions> = {\n PanelComponent: SilenceTablePanel as PanelPlugin<SilenceTableOptions>['PanelComponent'],\n supportedQueryTypes: ['SilencesQuery'],\n panelOptionsEditorComponents: [\n { label: 'General', content: SilenceTableOptionsEditor },\n { label: 'Columns', content: SilenceTableColumnsEditor },\n ],\n createInitialOptions: () => ({}),\n};\n"],"names":["SilenceTableColumnsEditor","SilenceTableOptionsEditor","SilenceTablePanel","SilenceTable","PanelComponent","supportedQueryTypes","panelOptionsEditorComponents","label","content","createInitialOptions"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,SAASA,yBAAyB,QAAQ,8BAA8B;AACxE,SAASC,yBAAyB,QAAQ,8BAA8B;AACxE,SAASC,iBAAiB,QAAQ,sBAAsB;AAGxD;;CAEC,GACD,OAAO,MAAMC,eAAiD;IAC5DC,gBAAgBF;IAChBG,qBAAqB;QAAC;KAAgB;IACtCC,8BAA8B;QAC5B;YAAEC,OAAO;YAAWC,SAASP;QAA0B;QACvD;YAAEM,OAAO;YAAWC,SAASR;QAA0B;KACxD;IACDS,sBAAsB,IAAO,CAAA,CAAC,CAAA;AAChC,EAAE"}
@@ -0,0 +1,5 @@
1
+ import { OptionsEditorProps } from '@perses-dev/plugin-system';
2
+ import { ReactElement } from 'react';
3
+ import { SilenceTableOptions } from './silence-table-model';
4
+ export declare function SilenceTableColumnsEditor(props: OptionsEditorProps<SilenceTableOptions>): ReactElement;
5
+ //# sourceMappingURL=SilenceTableColumnsEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SilenceTableColumnsEditor.d.ts","sourceRoot":"","sources":["../../../../src/plugins/silence-table/SilenceTableColumnsEditor.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAe,MAAM,OAAO,CAAC;AAElD,OAAO,EAML,mBAAmB,EAEpB,MAAM,uBAAuB,CAAC;AAuB/B,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAuGtG"}
@@ -0,0 +1,129 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright The Perses Authors
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ import { FormControl, InputLabel, MenuItem, Select } from '@mui/material';
15
+ import { produce } from 'immer';
16
+ import { useCallback } from 'react';
17
+ import { ColumnsEditor } from '../../components/ColumnsEditor';
18
+ import { DEFAULT_COLUMN_HEADERS, DEFAULT_SILENCE_COLUMNS, inferSortMode } from './silence-table-model';
19
+ const DEFAULT_FIELD_NAMES = new Set(DEFAULT_SILENCE_COLUMNS.map((c)=>c.name));
20
+ const ALL_FIELDS = [
21
+ 'status',
22
+ 'matchers',
23
+ 'createdBy',
24
+ 'startsAt',
25
+ 'endsAt',
26
+ 'duration',
27
+ 'comment',
28
+ 'updatedAt'
29
+ ];
30
+ const FIELD_OPTIONS = ALL_FIELDS.filter((f)=>!DEFAULT_FIELD_NAMES.has(f));
31
+ const SORT_MODE_LABELS = {
32
+ alphabetical: 'Alphabetical',
33
+ date: 'Date (chronological)',
34
+ status: 'Status (active > pending > expired)'
35
+ };
36
+ export function SilenceTableColumnsEditor(props) {
37
+ const { value, onChange } = props;
38
+ const columns = value.columns ?? [];
39
+ const handleAddColumn = useCallback(()=>{
40
+ onChange(produce(value, (draft)=>{
41
+ if (!draft.columns) draft.columns = [];
42
+ draft.columns.push({
43
+ name: FIELD_OPTIONS[0] ?? 'updatedAt'
44
+ });
45
+ }));
46
+ }, [
47
+ value,
48
+ onChange
49
+ ]);
50
+ const handleRemoveColumn = useCallback((index)=>{
51
+ onChange(produce(value, (draft)=>{
52
+ draft.columns?.splice(index, 1);
53
+ }));
54
+ }, [
55
+ value,
56
+ onChange
57
+ ]);
58
+ const handleUpdateColumn = useCallback((index, updater)=>{
59
+ onChange(produce(value, (draft)=>{
60
+ const column = draft.columns?.[index];
61
+ if (column) {
62
+ updater(column);
63
+ }
64
+ }));
65
+ }, [
66
+ value,
67
+ onChange
68
+ ]);
69
+ const handleMoveUp = useCallback((index)=>{
70
+ if (index <= 0) return;
71
+ onChange(produce(value, (draft)=>{
72
+ if (!draft.columns) return;
73
+ const item = draft.columns.splice(index, 1)[0];
74
+ draft.columns.splice(index - 1, 0, item);
75
+ }));
76
+ }, [
77
+ value,
78
+ onChange
79
+ ]);
80
+ const handleMoveDown = useCallback((index)=>{
81
+ onChange(produce(value, (draft)=>{
82
+ if (!draft.columns || index >= draft.columns.length - 1) return;
83
+ const item = draft.columns.splice(index, 1)[0];
84
+ draft.columns.splice(index + 1, 0, item);
85
+ }));
86
+ }, [
87
+ value,
88
+ onChange
89
+ ]);
90
+ return /*#__PURE__*/ _jsx(ColumnsEditor, {
91
+ columns: columns,
92
+ description: "Status and Matchers are always shown. Add extra columns below.",
93
+ sortModeLabels: SORT_MODE_LABELS,
94
+ defaultSortMode: "alphabetical",
95
+ getDisplayName: (col)=>col.header || DEFAULT_COLUMN_HEADERS[col.name] || 'New column',
96
+ getHeaderPlaceholder: (col)=>DEFAULT_COLUMN_HEADERS[col.name] || 'Column header',
97
+ onAdd: handleAddColumn,
98
+ onRemove: handleRemoveColumn,
99
+ onUpdate: handleUpdateColumn,
100
+ onMoveUp: handleMoveUp,
101
+ onMoveDown: handleMoveDown,
102
+ renderNameField: (col, index, onUpdate)=>/*#__PURE__*/ _jsxs(FormControl, {
103
+ size: "small",
104
+ fullWidth: true,
105
+ children: [
106
+ /*#__PURE__*/ _jsx(InputLabel, {
107
+ id: `field-name-label-${index}`,
108
+ children: "Field"
109
+ }),
110
+ /*#__PURE__*/ _jsx(Select, {
111
+ labelId: `field-name-label-${index}`,
112
+ value: col.name,
113
+ onChange: (e)=>onUpdate(index, (draft)=>{
114
+ const field = e.target.value;
115
+ draft.name = field;
116
+ draft.sortMode = inferSortMode(field);
117
+ }),
118
+ label: "Field",
119
+ children: FIELD_OPTIONS.map((field)=>/*#__PURE__*/ _jsx(MenuItem, {
120
+ value: field,
121
+ children: DEFAULT_COLUMN_HEADERS[field]
122
+ }, field))
123
+ })
124
+ ]
125
+ })
126
+ });
127
+ }
128
+
129
+ //# sourceMappingURL=SilenceTableColumnsEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/plugins/silence-table/SilenceTableColumnsEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\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 { FormControl, InputLabel, MenuItem, Select } from '@mui/material';\nimport { OptionsEditorProps } from '@perses-dev/plugin-system';\nimport { produce } from 'immer';\nimport { ReactElement, useCallback } from 'react';\nimport { ColumnsEditor } from '../../components/ColumnsEditor';\nimport {\n DEFAULT_COLUMN_HEADERS,\n DEFAULT_SILENCE_COLUMNS,\n SilenceColumnDefinition,\n SilenceColumnSortMode,\n SilenceFieldName,\n SilenceTableOptions,\n inferSortMode,\n} from './silence-table-model';\n\nconst DEFAULT_FIELD_NAMES = new Set(DEFAULT_SILENCE_COLUMNS.map((c) => c.name));\n\nconst ALL_FIELDS: SilenceFieldName[] = [\n 'status',\n 'matchers',\n 'createdBy',\n 'startsAt',\n 'endsAt',\n 'duration',\n 'comment',\n 'updatedAt',\n];\n\nconst FIELD_OPTIONS: SilenceFieldName[] = ALL_FIELDS.filter((f) => !DEFAULT_FIELD_NAMES.has(f));\n\nconst SORT_MODE_LABELS: Record<SilenceColumnSortMode, string> = {\n alphabetical: 'Alphabetical',\n date: 'Date (chronological)',\n status: 'Status (active > pending > expired)',\n};\n\nexport function SilenceTableColumnsEditor(props: OptionsEditorProps<SilenceTableOptions>): ReactElement {\n const { value, onChange } = props;\n const columns = value.columns ?? [];\n\n const handleAddColumn = useCallback((): void => {\n onChange(\n produce(value, (draft) => {\n if (!draft.columns) draft.columns = [];\n draft.columns.push({ name: FIELD_OPTIONS[0] ?? 'updatedAt' });\n })\n );\n }, [value, onChange]);\n\n const handleRemoveColumn = useCallback(\n (index: number): void => {\n onChange(\n produce(value, (draft) => {\n draft.columns?.splice(index, 1);\n })\n );\n },\n [value, onChange]\n );\n\n const handleUpdateColumn = useCallback(\n (index: number, updater: (draft: SilenceColumnDefinition) => void): void => {\n onChange(\n produce(value, (draft) => {\n const column = draft.columns?.[index];\n if (column) {\n updater(column);\n }\n })\n );\n },\n [value, onChange]\n );\n\n const handleMoveUp = useCallback(\n (index: number): void => {\n if (index <= 0) return;\n onChange(\n produce(value, (draft) => {\n if (!draft.columns) return;\n const item = draft.columns.splice(index, 1)[0]!;\n draft.columns.splice(index - 1, 0, item);\n })\n );\n },\n [value, onChange]\n );\n\n const handleMoveDown = useCallback(\n (index: number): void => {\n onChange(\n produce(value, (draft) => {\n if (!draft.columns || index >= draft.columns.length - 1) return;\n const item = draft.columns.splice(index, 1)[0]!;\n draft.columns.splice(index + 1, 0, item);\n })\n );\n },\n [value, onChange]\n );\n\n return (\n <ColumnsEditor<SilenceColumnDefinition>\n columns={columns}\n description=\"Status and Matchers are always shown. Add extra columns below.\"\n sortModeLabels={SORT_MODE_LABELS}\n defaultSortMode=\"alphabetical\"\n getDisplayName={(col) => col.header || DEFAULT_COLUMN_HEADERS[col.name] || 'New column'}\n getHeaderPlaceholder={(col) => DEFAULT_COLUMN_HEADERS[col.name] || 'Column header'}\n onAdd={handleAddColumn}\n onRemove={handleRemoveColumn}\n onUpdate={handleUpdateColumn}\n onMoveUp={handleMoveUp}\n onMoveDown={handleMoveDown}\n renderNameField={(col, index, onUpdate) => (\n <FormControl size=\"small\" fullWidth>\n <InputLabel id={`field-name-label-${index}`}>Field</InputLabel>\n <Select\n labelId={`field-name-label-${index}`}\n value={col.name}\n onChange={(e) =>\n onUpdate(index, (draft) => {\n const field = e.target.value as SilenceFieldName;\n draft.name = field;\n draft.sortMode = inferSortMode(field);\n })\n }\n label=\"Field\"\n >\n {FIELD_OPTIONS.map((field) => (\n <MenuItem key={field} value={field}>\n {DEFAULT_COLUMN_HEADERS[field]}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n />\n );\n}\n"],"names":["FormControl","InputLabel","MenuItem","Select","produce","useCallback","ColumnsEditor","DEFAULT_COLUMN_HEADERS","DEFAULT_SILENCE_COLUMNS","inferSortMode","DEFAULT_FIELD_NAMES","Set","map","c","name","ALL_FIELDS","FIELD_OPTIONS","filter","f","has","SORT_MODE_LABELS","alphabetical","date","status","SilenceTableColumnsEditor","props","value","onChange","columns","handleAddColumn","draft","push","handleRemoveColumn","index","splice","handleUpdateColumn","updater","column","handleMoveUp","item","handleMoveDown","length","description","sortModeLabels","defaultSortMode","getDisplayName","col","header","getHeaderPlaceholder","onAdd","onRemove","onUpdate","onMoveUp","onMoveDown","renderNameField","size","fullWidth","id","labelId","e","field","target","sortMode","label"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,WAAW,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,gBAAgB;AAE1E,SAASC,OAAO,QAAQ,QAAQ;AAChC,SAAuBC,WAAW,QAAQ,QAAQ;AAClD,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SACEC,sBAAsB,EACtBC,uBAAuB,EAKvBC,aAAa,QACR,wBAAwB;AAE/B,MAAMC,sBAAsB,IAAIC,IAAIH,wBAAwBI,GAAG,CAAC,CAACC,IAAMA,EAAEC,IAAI;AAE7E,MAAMC,aAAiC;IACrC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,MAAMC,gBAAoCD,WAAWE,MAAM,CAAC,CAACC,IAAM,CAACR,oBAAoBS,GAAG,CAACD;AAE5F,MAAME,mBAA0D;IAC9DC,cAAc;IACdC,MAAM;IACNC,QAAQ;AACV;AAEA,OAAO,SAASC,0BAA0BC,KAA8C;IACtF,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGF;IAC5B,MAAMG,UAAUF,MAAME,OAAO,IAAI,EAAE;IAEnC,MAAMC,kBAAkBxB,YAAY;QAClCsB,SACEvB,QAAQsB,OAAO,CAACI;YACd,IAAI,CAACA,MAAMF,OAAO,EAAEE,MAAMF,OAAO,GAAG,EAAE;YACtCE,MAAMF,OAAO,CAACG,IAAI,CAAC;gBAAEjB,MAAME,aAAa,CAAC,EAAE,IAAI;YAAY;QAC7D;IAEJ,GAAG;QAACU;QAAOC;KAAS;IAEpB,MAAMK,qBAAqB3B,YACzB,CAAC4B;QACCN,SACEvB,QAAQsB,OAAO,CAACI;YACdA,MAAMF,OAAO,EAAEM,OAAOD,OAAO;QAC/B;IAEJ,GACA;QAACP;QAAOC;KAAS;IAGnB,MAAMQ,qBAAqB9B,YACzB,CAAC4B,OAAeG;QACdT,SACEvB,QAAQsB,OAAO,CAACI;YACd,MAAMO,SAASP,MAAMF,OAAO,EAAE,CAACK,MAAM;YACrC,IAAII,QAAQ;gBACVD,QAAQC;YACV;QACF;IAEJ,GACA;QAACX;QAAOC;KAAS;IAGnB,MAAMW,eAAejC,YACnB,CAAC4B;QACC,IAAIA,SAAS,GAAG;QAChBN,SACEvB,QAAQsB,OAAO,CAACI;YACd,IAAI,CAACA,MAAMF,OAAO,EAAE;YACpB,MAAMW,OAAOT,MAAMF,OAAO,CAACM,MAAM,CAACD,OAAO,EAAE,CAAC,EAAE;YAC9CH,MAAMF,OAAO,CAACM,MAAM,CAACD,QAAQ,GAAG,GAAGM;QACrC;IAEJ,GACA;QAACb;QAAOC;KAAS;IAGnB,MAAMa,iBAAiBnC,YACrB,CAAC4B;QACCN,SACEvB,QAAQsB,OAAO,CAACI;YACd,IAAI,CAACA,MAAMF,OAAO,IAAIK,SAASH,MAAMF,OAAO,CAACa,MAAM,GAAG,GAAG;YACzD,MAAMF,OAAOT,MAAMF,OAAO,CAACM,MAAM,CAACD,OAAO,EAAE,CAAC,EAAE;YAC9CH,MAAMF,OAAO,CAACM,MAAM,CAACD,QAAQ,GAAG,GAAGM;QACrC;IAEJ,GACA;QAACb;QAAOC;KAAS;IAGnB,qBACE,KAACrB;QACCsB,SAASA;QACTc,aAAY;QACZC,gBAAgBvB;QAChBwB,iBAAgB;QAChBC,gBAAgB,CAACC,MAAQA,IAAIC,MAAM,IAAIxC,sBAAsB,CAACuC,IAAIhC,IAAI,CAAC,IAAI;QAC3EkC,sBAAsB,CAACF,MAAQvC,sBAAsB,CAACuC,IAAIhC,IAAI,CAAC,IAAI;QACnEmC,OAAOpB;QACPqB,UAAUlB;QACVmB,UAAUhB;QACViB,UAAUd;QACVe,YAAYb;QACZc,iBAAiB,CAACR,KAAKb,OAAOkB,yBAC5B,MAACnD;gBAAYuD,MAAK;gBAAQC,SAAS;;kCACjC,KAACvD;wBAAWwD,IAAI,CAAC,iBAAiB,EAAExB,OAAO;kCAAE;;kCAC7C,KAAC9B;wBACCuD,SAAS,CAAC,iBAAiB,EAAEzB,OAAO;wBACpCP,OAAOoB,IAAIhC,IAAI;wBACfa,UAAU,CAACgC,IACTR,SAASlB,OAAO,CAACH;gCACf,MAAM8B,QAAQD,EAAEE,MAAM,CAACnC,KAAK;gCAC5BI,MAAMhB,IAAI,GAAG8C;gCACb9B,MAAMgC,QAAQ,GAAGrD,cAAcmD;4BACjC;wBAEFG,OAAM;kCAEL/C,cAAcJ,GAAG,CAAC,CAACgD,sBAClB,KAAC1D;gCAAqBwB,OAAOkC;0CAC1BrD,sBAAsB,CAACqD,MAAM;+BADjBA;;;;;AAS7B"}
@@ -0,0 +1,5 @@
1
+ import { OptionsEditorProps } from '@perses-dev/plugin-system';
2
+ import { ReactElement } from 'react';
3
+ import { SilenceTableOptions } from './silence-table-model';
4
+ export declare function SilenceTableOptionsEditor(props: OptionsEditorProps<SilenceTableOptions>): ReactElement;
5
+ //# sourceMappingURL=SilenceTableOptionsEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SilenceTableOptionsEditor.d.ts","sourceRoot":"","sources":["../../../../src/plugins/silence-table/SilenceTableOptionsEditor.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAe,MAAM,OAAO,CAAC;AAClD,OAAO,EAAsC,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAMhG,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAuCtG"}
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright The Perses Authors
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ import { Checkbox, FormControlLabel } from '@mui/material';
15
+ import { OptionsEditorGroup } from '@perses-dev/components';
16
+ import { produce } from 'immer';
17
+ import { useCallback } from 'react';
18
+ import { ALL_SILENCE_ACTIONS } from './silence-table-model';
19
+ const ACTION_LABELS = {
20
+ expire: 'Expire silence'
21
+ };
22
+ export function SilenceTableOptionsEditor(props) {
23
+ const { value, onChange } = props;
24
+ const effectiveActions = value.allowedActions ?? ALL_SILENCE_ACTIONS;
25
+ const handleToggle = useCallback((action, checked)=>{
26
+ onChange(produce(value, (draft)=>{
27
+ const current = draft.allowedActions ?? [
28
+ ...ALL_SILENCE_ACTIONS
29
+ ];
30
+ if (checked) {
31
+ if (!current.includes(action)) current.push(action);
32
+ } else {
33
+ const idx = current.indexOf(action);
34
+ if (idx >= 0) current.splice(idx, 1);
35
+ }
36
+ draft.allowedActions = current;
37
+ }));
38
+ }, [
39
+ value,
40
+ onChange
41
+ ]);
42
+ return /*#__PURE__*/ _jsx(OptionsEditorGroup, {
43
+ title: "Actions",
44
+ children: ALL_SILENCE_ACTIONS.map((action)=>/*#__PURE__*/ _jsx(FormControlLabel, {
45
+ control: /*#__PURE__*/ _jsx(Checkbox, {
46
+ checked: effectiveActions.includes(action),
47
+ onChange: (e)=>handleToggle(action, e.target.checked),
48
+ size: "small"
49
+ }),
50
+ label: ACTION_LABELS[action]
51
+ }, action))
52
+ });
53
+ }
54
+
55
+ //# sourceMappingURL=SilenceTableOptionsEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/plugins/silence-table/SilenceTableOptionsEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\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 { Checkbox, FormControlLabel } from '@mui/material';\nimport { OptionsEditorGroup } from '@perses-dev/components';\nimport { OptionsEditorProps } from '@perses-dev/plugin-system';\nimport { produce } from 'immer';\nimport { ReactElement, useCallback } from 'react';\nimport { ALL_SILENCE_ACTIONS, SilenceAction, SilenceTableOptions } from './silence-table-model';\n\nconst ACTION_LABELS: Record<SilenceAction, string> = {\n expire: 'Expire silence',\n};\n\nexport function SilenceTableOptionsEditor(props: OptionsEditorProps<SilenceTableOptions>): ReactElement {\n const { value, onChange } = props;\n const effectiveActions = value.allowedActions ?? ALL_SILENCE_ACTIONS;\n\n const handleToggle = useCallback(\n (action: SilenceAction, checked: boolean) => {\n onChange(\n produce(value, (draft) => {\n const current = draft.allowedActions ?? [...ALL_SILENCE_ACTIONS];\n if (checked) {\n if (!current.includes(action)) current.push(action);\n } else {\n const idx = current.indexOf(action);\n if (idx >= 0) current.splice(idx, 1);\n }\n draft.allowedActions = current;\n })\n );\n },\n [value, onChange]\n );\n\n return (\n <OptionsEditorGroup title=\"Actions\">\n {ALL_SILENCE_ACTIONS.map((action) => (\n <FormControlLabel\n key={action}\n control={\n <Checkbox\n checked={effectiveActions.includes(action)}\n onChange={(e) => handleToggle(action, e.target.checked)}\n size=\"small\"\n />\n }\n label={ACTION_LABELS[action]}\n />\n ))}\n </OptionsEditorGroup>\n );\n}\n"],"names":["Checkbox","FormControlLabel","OptionsEditorGroup","produce","useCallback","ALL_SILENCE_ACTIONS","ACTION_LABELS","expire","SilenceTableOptionsEditor","props","value","onChange","effectiveActions","allowedActions","handleToggle","action","checked","draft","current","includes","push","idx","indexOf","splice","title","map","control","e","target","size","label"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,QAAQ,EAAEC,gBAAgB,QAAQ,gBAAgB;AAC3D,SAASC,kBAAkB,QAAQ,yBAAyB;AAE5D,SAASC,OAAO,QAAQ,QAAQ;AAChC,SAAuBC,WAAW,QAAQ,QAAQ;AAClD,SAASC,mBAAmB,QAA4C,wBAAwB;AAEhG,MAAMC,gBAA+C;IACnDC,QAAQ;AACV;AAEA,OAAO,SAASC,0BAA0BC,KAA8C;IACtF,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGF;IAC5B,MAAMG,mBAAmBF,MAAMG,cAAc,IAAIR;IAEjD,MAAMS,eAAeV,YACnB,CAACW,QAAuBC;QACtBL,SACER,QAAQO,OAAO,CAACO;YACd,MAAMC,UAAUD,MAAMJ,cAAc,IAAI;mBAAIR;aAAoB;YAChE,IAAIW,SAAS;gBACX,IAAI,CAACE,QAAQC,QAAQ,CAACJ,SAASG,QAAQE,IAAI,CAACL;YAC9C,OAAO;gBACL,MAAMM,MAAMH,QAAQI,OAAO,CAACP;gBAC5B,IAAIM,OAAO,GAAGH,QAAQK,MAAM,CAACF,KAAK;YACpC;YACAJ,MAAMJ,cAAc,GAAGK;QACzB;IAEJ,GACA;QAACR;QAAOC;KAAS;IAGnB,qBACE,KAACT;QAAmBsB,OAAM;kBACvBnB,oBAAoBoB,GAAG,CAAC,CAACV,uBACxB,KAACd;gBAECyB,uBACE,KAAC1B;oBACCgB,SAASJ,iBAAiBO,QAAQ,CAACJ;oBACnCJ,UAAU,CAACgB,IAAMb,aAAaC,QAAQY,EAAEC,MAAM,CAACZ,OAAO;oBACtDa,MAAK;;gBAGTC,OAAOxB,aAAa,CAACS,OAAO;eARvBA;;AAaf"}
@@ -0,0 +1,11 @@
1
+ import { PanelProps } from '@perses-dev/plugin-system';
2
+ import { SilencesData } from '@perses-dev/spec';
3
+ import { ReactElement } from 'react';
4
+ import { SilenceTableOptions } from './silence-table-model';
5
+ export type SilenceTablePanelProps = PanelProps<SilenceTableOptions, SilencesData>;
6
+ /**
7
+ * Silence table panel component.
8
+ * Displays silences with matchers, status, creator, duration, and actions.
9
+ */
10
+ export declare function SilenceTablePanel({ spec, queryResults, contentDimensions }: SilenceTablePanelProps): ReactElement;
11
+ //# sourceMappingURL=SilenceTablePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SilenceTablePanel.d.ts","sourceRoot":"","sources":["../../../../src/plugins/silence-table/SilenceTablePanel.tsx"],"names":[],"mappings":"AA8BA,OAAO,EAAE,UAAU,EAAuB,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAW,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIzD,OAAO,EAAE,YAAY,EAAkC,MAAM,OAAO,CAAC;AAIrE,OAAO,EAOL,mBAAmB,EAGpB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;AA2EnF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,EAAE,sBAAsB,GAAG,YAAY,CAwKjH"}