@perses-dev/plugin-system 0.55.0-beta.3 → 0.55.0-beta.7

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 (555) hide show
  1. package/dist/components/Annotations/AnnotationEditorForm/AnnotationEditorForm.d.ts +3 -3
  2. package/dist/components/Annotations/AnnotationEditorForm/AnnotationEditorForm.d.ts.map +1 -1
  3. package/dist/components/Annotations/AnnotationEditorForm/AnnotationEditorForm.js +11 -11
  4. package/dist/components/Annotations/AnnotationEditorForm/AnnotationEditorForm.js.map +1 -1
  5. package/dist/components/Annotations/AnnotationEditorForm/AnnotationPreview.d.ts +3 -3
  6. package/dist/components/Annotations/AnnotationEditorForm/AnnotationPreview.d.ts.map +1 -1
  7. package/dist/components/Annotations/AnnotationEditorForm/AnnotationPreview.js +6 -6
  8. package/dist/components/Annotations/AnnotationEditorForm/AnnotationPreview.js.map +1 -1
  9. package/dist/components/Annotations/AnnotationEditorForm/index.js +1 -1
  10. package/dist/components/Annotations/AnnotationEditorForm/index.js.map +1 -1
  11. package/dist/components/Annotations/index.js +2 -2
  12. package/dist/components/Annotations/index.js.map +1 -1
  13. package/dist/components/CalculationSelector/CalculationSelector.d.ts +2 -2
  14. package/dist/components/CalculationSelector/CalculationSelector.d.ts.map +1 -1
  15. package/dist/components/CalculationSelector/CalculationSelector.js +2 -2
  16. package/dist/components/CalculationSelector/CalculationSelector.js.map +1 -1
  17. package/dist/components/CalculationSelector/index.js +1 -1
  18. package/dist/components/CalculationSelector/index.js.map +1 -1
  19. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts +2 -2
  20. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts.map +1 -1
  21. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js +7 -7
  22. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js.map +1 -1
  23. package/dist/components/DatasourceEditorForm/index.js +1 -1
  24. package/dist/components/DatasourceEditorForm/index.js.map +1 -1
  25. package/dist/components/DatasourceSelect/DatasourceSelect.d.ts +4 -4
  26. package/dist/components/DatasourceSelect/DatasourceSelect.d.ts.map +1 -1
  27. package/dist/components/DatasourceSelect/DatasourceSelect.js +7 -7
  28. package/dist/components/DatasourceSelect/DatasourceSelect.js.map +1 -1
  29. package/dist/components/DatasourceSelect/index.js +1 -1
  30. package/dist/components/DatasourceSelect/index.js.map +1 -1
  31. package/dist/components/DatasourceTestConnectionButton/DatasourceTestConnectionButton.d.ts +2 -2
  32. package/dist/components/DatasourceTestConnectionButton/DatasourceTestConnectionButton.d.ts.map +1 -1
  33. package/dist/components/DatasourceTestConnectionButton/DatasourceTestConnectionButton.js +4 -4
  34. package/dist/components/DatasourceTestConnectionButton/DatasourceTestConnectionButton.js.map +1 -1
  35. package/dist/components/DatasourceTestConnectionButton/index.js +1 -1
  36. package/dist/components/DatasourceTestConnectionButton/index.js.map +1 -1
  37. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.d.ts +2 -2
  38. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.d.ts.map +1 -1
  39. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.js +9 -9
  40. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.js.map +1 -1
  41. package/dist/components/HTTPSettingsEditor/index.js +1 -1
  42. package/dist/components/HTTPSettingsEditor/index.js.map +1 -1
  43. package/dist/components/ItemSelectionActionsOptionsEditor/ItemSelectionActionsOptionsEditor.d.ts +1 -1
  44. package/dist/components/ItemSelectionActionsOptionsEditor/ItemSelectionActionsOptionsEditor.d.ts.map +1 -1
  45. package/dist/components/ItemSelectionActionsOptionsEditor/ItemSelectionActionsOptionsEditor.js +28 -28
  46. package/dist/components/ItemSelectionActionsOptionsEditor/ItemSelectionActionsOptionsEditor.js.map +1 -1
  47. package/dist/components/ItemSelectionActionsOptionsEditor/index.js +1 -1
  48. package/dist/components/ItemSelectionActionsOptionsEditor/index.js.map +1 -1
  49. package/dist/components/LayoutEditor/LayoutEditor.d.ts +4 -4
  50. package/dist/components/LayoutEditor/LayoutEditor.d.ts.map +1 -1
  51. package/dist/components/LayoutEditor/LayoutEditor.js +7 -7
  52. package/dist/components/LayoutEditor/LayoutEditor.js.map +1 -1
  53. package/dist/components/LayoutEditor/RepeatLayoutPreview.d.ts +1 -1
  54. package/dist/components/LayoutEditor/RepeatLayoutPreview.d.ts.map +1 -1
  55. package/dist/components/LayoutEditor/RepeatLayoutPreview.js +4 -4
  56. package/dist/components/LayoutEditor/RepeatLayoutPreview.js.map +1 -1
  57. package/dist/components/LayoutEditor/RepeatVariableEditor.d.ts +4 -4
  58. package/dist/components/LayoutEditor/RepeatVariableEditor.d.ts.map +1 -1
  59. package/dist/components/LayoutEditor/RepeatVariableEditor.js +3 -3
  60. package/dist/components/LayoutEditor/RepeatVariableEditor.js.map +1 -1
  61. package/dist/components/LayoutEditor/index.js +3 -3
  62. package/dist/components/LayoutEditor/index.js.map +1 -1
  63. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.d.ts +2 -2
  64. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.d.ts.map +1 -1
  65. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js +5 -5
  66. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js.map +1 -1
  67. package/dist/components/LegendOptionsEditor/index.js +1 -1
  68. package/dist/components/LegendOptionsEditor/index.js.map +1 -1
  69. package/dist/components/LinksEditor/LinksEditor.d.ts +3 -3
  70. package/dist/components/LinksEditor/LinksEditor.d.ts.map +1 -1
  71. package/dist/components/LinksEditor/LinksEditor.js +6 -6
  72. package/dist/components/LinksEditor/LinksEditor.js.map +1 -1
  73. package/dist/components/LinksEditor/index.js +1 -1
  74. package/dist/components/LinksEditor/index.js.map +1 -1
  75. package/dist/components/MetricLabelInput/MetricLabelInput.d.ts +1 -1
  76. package/dist/components/MetricLabelInput/MetricLabelInput.d.ts.map +1 -1
  77. package/dist/components/MetricLabelInput/MetricLabelInput.js +2 -2
  78. package/dist/components/MetricLabelInput/MetricLabelInput.js.map +1 -1
  79. package/dist/components/MetricLabelInput/index.js +1 -1
  80. package/dist/components/MetricLabelInput/index.js.map +1 -1
  81. package/dist/components/MultiQueryEditor/MultiQueryEditor.d.ts +3 -3
  82. package/dist/components/MultiQueryEditor/MultiQueryEditor.d.ts.map +1 -1
  83. package/dist/components/MultiQueryEditor/MultiQueryEditor.js +6 -6
  84. package/dist/components/MultiQueryEditor/MultiQueryEditor.js.map +1 -1
  85. package/dist/components/MultiQueryEditor/QueryEditorContainer.d.ts +3 -3
  86. package/dist/components/MultiQueryEditor/QueryEditorContainer.d.ts.map +1 -1
  87. package/dist/components/MultiQueryEditor/QueryEditorContainer.js +14 -14
  88. package/dist/components/MultiQueryEditor/QueryEditorContainer.js.map +1 -1
  89. package/dist/components/MultiQueryEditor/index.js +2 -2
  90. package/dist/components/MultiQueryEditor/index.js.map +1 -1
  91. package/dist/components/MultiQueryEditor/utils.d.ts +1 -1
  92. package/dist/components/MultiQueryEditor/utils.d.ts.map +1 -1
  93. package/dist/components/MultiQueryEditor/utils.js.map +1 -1
  94. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts +1 -1
  95. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts.map +1 -1
  96. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js +4 -4
  97. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js.map +1 -1
  98. package/dist/components/OptionsEditorRadios/index.js +1 -1
  99. package/dist/components/OptionsEditorRadios/index.js.map +1 -1
  100. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts +1 -1
  101. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts.map +1 -1
  102. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.js +1 -1
  103. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.js.map +1 -1
  104. package/dist/components/OptionsEditorTabPanel/index.js +1 -1
  105. package/dist/components/OptionsEditorTabPanel/index.js.map +1 -1
  106. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.d.ts +1 -1
  107. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.d.ts.map +1 -1
  108. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.js +4 -4
  109. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.js.map +1 -1
  110. package/dist/components/OptionsEditorTabs/index.js +1 -1
  111. package/dist/components/OptionsEditorTabs/index.js.map +1 -1
  112. package/dist/components/PanelSpecEditor/PanelAnnotationsEditor.d.ts +2 -2
  113. package/dist/components/PanelSpecEditor/PanelAnnotationsEditor.d.ts.map +1 -1
  114. package/dist/components/PanelSpecEditor/PanelAnnotationsEditor.js +9 -9
  115. package/dist/components/PanelSpecEditor/PanelAnnotationsEditor.js.map +1 -1
  116. package/dist/components/PanelSpecEditor/PanelSpecEditor.d.ts +5 -5
  117. package/dist/components/PanelSpecEditor/PanelSpecEditor.d.ts.map +1 -1
  118. package/dist/components/PanelSpecEditor/PanelSpecEditor.js +9 -9
  119. package/dist/components/PanelSpecEditor/PanelSpecEditor.js.map +1 -1
  120. package/dist/components/PanelSpecEditor/index.js +1 -1
  121. package/dist/components/PanelSpecEditor/index.js.map +1 -1
  122. package/dist/components/PluginEditor/PluginEditor.d.ts +2 -2
  123. package/dist/components/PluginEditor/PluginEditor.d.ts.map +1 -1
  124. package/dist/components/PluginEditor/PluginEditor.js +7 -7
  125. package/dist/components/PluginEditor/PluginEditor.js.map +1 -1
  126. package/dist/components/PluginEditor/index.js +2 -2
  127. package/dist/components/PluginEditor/index.js.map +1 -1
  128. package/dist/components/PluginEditor/plugin-editor-api.d.ts +3 -3
  129. package/dist/components/PluginEditor/plugin-editor-api.d.ts.map +1 -1
  130. package/dist/components/PluginEditor/plugin-editor-api.js +4 -4
  131. package/dist/components/PluginEditor/plugin-editor-api.js.map +1 -1
  132. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts +3 -3
  133. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts.map +1 -1
  134. package/dist/components/PluginKindSelect/PluginKindSelect.js +6 -6
  135. package/dist/components/PluginKindSelect/PluginKindSelect.js.map +1 -1
  136. package/dist/components/PluginKindSelect/index.js +1 -1
  137. package/dist/components/PluginKindSelect/index.js.map +1 -1
  138. package/dist/components/PluginRegistry/PluginRegistry.d.ts +2 -2
  139. package/dist/components/PluginRegistry/PluginRegistry.d.ts.map +1 -1
  140. package/dist/components/PluginRegistry/PluginRegistry.js +5 -5
  141. package/dist/components/PluginRegistry/PluginRegistry.js.map +1 -1
  142. package/dist/components/PluginRegistry/getPluginSearchHelper.d.ts +2 -2
  143. package/dist/components/PluginRegistry/getPluginSearchHelper.d.ts.map +1 -1
  144. package/dist/components/PluginRegistry/getPluginSearchHelper.js +2 -2
  145. package/dist/components/PluginRegistry/getPluginSearchHelper.js.map +1 -1
  146. package/dist/components/PluginRegistry/index.js +1 -1
  147. package/dist/components/PluginRegistry/index.js.map +1 -1
  148. package/dist/components/PluginRegistry/plugin-indexes.d.ts +2 -1
  149. package/dist/components/PluginRegistry/plugin-indexes.d.ts.map +1 -1
  150. package/dist/components/PluginRegistry/plugin-indexes.js +3 -3
  151. package/dist/components/PluginRegistry/plugin-indexes.js.map +1 -1
  152. package/dist/components/PluginSpecEditor/DatasourceSpecEditor.d.ts +3 -3
  153. package/dist/components/PluginSpecEditor/DatasourceSpecEditor.d.ts.map +1 -1
  154. package/dist/components/PluginSpecEditor/DatasourceSpecEditor.js +3 -3
  155. package/dist/components/PluginSpecEditor/DatasourceSpecEditor.js.map +1 -1
  156. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts +4 -4
  157. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts.map +1 -1
  158. package/dist/components/PluginSpecEditor/PluginSpecEditor.js +4 -4
  159. package/dist/components/PluginSpecEditor/PluginSpecEditor.js.map +1 -1
  160. package/dist/components/PluginSpecEditor/index.js +1 -1
  161. package/dist/components/PluginSpecEditor/index.js.map +1 -1
  162. package/dist/components/SelectionOptionsEditor/SelectionOptionsEditor.d.ts +1 -1
  163. package/dist/components/SelectionOptionsEditor/SelectionOptionsEditor.d.ts.map +1 -1
  164. package/dist/components/SelectionOptionsEditor/SelectionOptionsEditor.js +3 -3
  165. package/dist/components/SelectionOptionsEditor/SelectionOptionsEditor.js.map +1 -1
  166. package/dist/components/SelectionOptionsEditor/index.js +1 -1
  167. package/dist/components/SelectionOptionsEditor/index.js.map +1 -1
  168. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts +4 -4
  169. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts.map +1 -1
  170. package/dist/components/TimeRangeControls/TimeRangeControls.js +15 -51
  171. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -1
  172. package/dist/components/TimeRangeControls/index.js +1 -1
  173. package/dist/components/TimeRangeControls/index.js.map +1 -1
  174. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts +3 -3
  175. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +1 -1
  176. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +11 -11
  177. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +1 -1
  178. package/dist/components/Variables/VariableEditorForm/VariablePreview.d.ts +2 -2
  179. package/dist/components/Variables/VariableEditorForm/VariablePreview.d.ts.map +1 -1
  180. package/dist/components/Variables/VariableEditorForm/VariablePreview.js +8 -7
  181. package/dist/components/Variables/VariableEditorForm/VariablePreview.js.map +1 -1
  182. package/dist/components/Variables/VariableEditorForm/index.js +3 -3
  183. package/dist/components/Variables/VariableEditorForm/index.js.map +1 -1
  184. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts +2 -2
  185. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts.map +1 -1
  186. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js +6 -6
  187. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js.map +1 -1
  188. package/dist/components/Variables/index.js +2 -2
  189. package/dist/components/Variables/index.js.map +1 -1
  190. package/dist/components/Variables/variable-model.d.ts +4 -4
  191. package/dist/components/Variables/variable-model.d.ts.map +1 -1
  192. package/dist/components/Variables/variable-model.js +3 -3
  193. package/dist/components/Variables/variable-model.js.map +1 -1
  194. package/dist/components/index.js +21 -21
  195. package/dist/components/index.js.map +1 -1
  196. package/dist/constants/index.js +2 -2
  197. package/dist/constants/index.js.map +1 -1
  198. package/dist/context/ValidationProvider.d.ts +5 -5
  199. package/dist/context/ValidationProvider.d.ts.map +1 -1
  200. package/dist/context/ValidationProvider.js +5 -5
  201. package/dist/context/ValidationProvider.js.map +1 -1
  202. package/dist/context/index.js +1 -1
  203. package/dist/context/index.js.map +1 -1
  204. package/dist/index.js +9 -9
  205. package/dist/index.js.map +1 -1
  206. package/dist/model/alerts-queries.d.ts +4 -4
  207. package/dist/model/alerts-queries.d.ts.map +1 -1
  208. package/dist/model/alerts-queries.js.map +1 -1
  209. package/dist/model/annotations.d.ts +3 -3
  210. package/dist/model/annotations.d.ts.map +1 -1
  211. package/dist/model/annotations.js.map +1 -1
  212. package/dist/model/calculations.d.ts +1 -1
  213. package/dist/model/calculations.d.ts.map +1 -1
  214. package/dist/model/calculations.js.map +1 -1
  215. package/dist/model/datasource.d.ts +2 -2
  216. package/dist/model/datasource.d.ts.map +1 -1
  217. package/dist/model/datasource.js.map +1 -1
  218. package/dist/model/explore.d.ts +2 -2
  219. package/dist/model/explore.d.ts.map +1 -1
  220. package/dist/model/explore.js.map +1 -1
  221. package/dist/model/index.js +17 -17
  222. package/dist/model/index.js.map +1 -1
  223. package/dist/model/json-queries.d.ts +3 -3
  224. package/dist/model/json-queries.d.ts.map +1 -1
  225. package/dist/model/json-queries.js.map +1 -1
  226. package/dist/model/legend.d.ts +2 -2
  227. package/dist/model/legend.d.ts.map +1 -1
  228. package/dist/model/legend.js +2 -2
  229. package/dist/model/legend.js.map +1 -1
  230. package/dist/model/log-queries.d.ts +3 -3
  231. package/dist/model/log-queries.d.ts.map +1 -1
  232. package/dist/model/log-queries.js.map +1 -1
  233. package/dist/model/panels.d.ts +4 -4
  234. package/dist/model/panels.d.ts.map +1 -1
  235. package/dist/model/panels.js.map +1 -1
  236. package/dist/model/plugin-base.d.ts +1 -1
  237. package/dist/model/plugin-base.d.ts.map +1 -1
  238. package/dist/model/plugin-base.js.map +1 -1
  239. package/dist/model/plugin-loading.d.ts +1 -1
  240. package/dist/model/plugin-loading.d.ts.map +1 -1
  241. package/dist/model/plugin-loading.js +1 -1
  242. package/dist/model/plugin-loading.js.map +1 -1
  243. package/dist/model/plugins.d.ts +14 -14
  244. package/dist/model/plugins.d.ts.map +1 -1
  245. package/dist/model/plugins.js.map +1 -1
  246. package/dist/model/profile-queries.d.ts +4 -4
  247. package/dist/model/profile-queries.d.ts.map +1 -1
  248. package/dist/model/profile-queries.js.map +1 -1
  249. package/dist/model/silences-queries.d.ts +4 -4
  250. package/dist/model/silences-queries.d.ts.map +1 -1
  251. package/dist/model/silences-queries.js.map +1 -1
  252. package/dist/model/time-series-queries.d.ts +4 -4
  253. package/dist/model/time-series-queries.d.ts.map +1 -1
  254. package/dist/model/time-series-queries.js.map +1 -1
  255. package/dist/model/trace-queries.d.ts +4 -4
  256. package/dist/model/trace-queries.d.ts.map +1 -1
  257. package/dist/model/trace-queries.js.map +1 -1
  258. package/dist/model/variables.d.ts +3 -3
  259. package/dist/model/variables.d.ts.map +1 -1
  260. package/dist/model/variables.js.map +1 -1
  261. package/dist/remote/PluginLoaderComponent.d.ts +1 -1
  262. package/dist/remote/PluginLoaderComponent.d.ts.map +1 -1
  263. package/dist/remote/PluginLoaderComponent.js +2 -2
  264. package/dist/remote/PluginLoaderComponent.js.map +1 -1
  265. package/dist/remote/PluginRuntime.d.ts +11 -2
  266. package/dist/remote/PluginRuntime.d.ts.map +1 -1
  267. package/dist/remote/PluginRuntime.js +65 -54
  268. package/dist/remote/PluginRuntime.js.map +1 -1
  269. package/dist/remote/index.d.ts +1 -0
  270. package/dist/remote/index.d.ts.map +1 -1
  271. package/dist/remote/index.js +3 -2
  272. package/dist/remote/index.js.map +1 -1
  273. package/dist/remote/remotePluginLoader.d.ts +2 -2
  274. package/dist/remote/remotePluginLoader.d.ts.map +1 -1
  275. package/dist/remote/remotePluginLoader.js +3 -3
  276. package/dist/remote/remotePluginLoader.js.map +1 -1
  277. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts +3 -3
  278. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts.map +1 -1
  279. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js +10 -10
  280. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js.map +1 -1
  281. package/dist/runtime/DataQueriesProvider/index.js +2 -2
  282. package/dist/runtime/DataQueriesProvider/index.js.map +1 -1
  283. package/dist/runtime/DataQueriesProvider/model.d.ts +3 -3
  284. package/dist/runtime/DataQueriesProvider/model.d.ts.map +1 -1
  285. package/dist/runtime/DataQueriesProvider/model.js.map +1 -1
  286. package/dist/runtime/RouterProvider.d.ts +2 -1
  287. package/dist/runtime/RouterProvider.d.ts.map +1 -1
  288. package/dist/runtime/RouterProvider.js +3 -3
  289. package/dist/runtime/RouterProvider.js.map +1 -1
  290. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts +3 -2
  291. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts.map +1 -1
  292. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js +6 -6
  293. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js.map +1 -1
  294. package/dist/runtime/TimeRangeProvider/TimeRangeProviders.d.ts +3 -2
  295. package/dist/runtime/TimeRangeProvider/TimeRangeProviders.d.ts.map +1 -1
  296. package/dist/runtime/TimeRangeProvider/TimeRangeProviders.js +4 -4
  297. package/dist/runtime/TimeRangeProvider/TimeRangeProviders.js.map +1 -1
  298. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.d.ts +6 -2
  299. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.d.ts.map +1 -1
  300. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.js +52 -4
  301. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.js.map +1 -1
  302. package/dist/runtime/TimeRangeProvider/index.js +4 -4
  303. package/dist/runtime/TimeRangeProvider/index.js.map +1 -1
  304. package/dist/runtime/TimeRangeProvider/query-params.d.ts +3 -3
  305. package/dist/runtime/TimeRangeProvider/query-params.d.ts.map +1 -1
  306. package/dist/runtime/TimeRangeProvider/query-params.js +4 -4
  307. package/dist/runtime/TimeRangeProvider/query-params.js.map +1 -1
  308. package/dist/runtime/TimeRangeProvider/refresh-interval.d.ts +1 -1
  309. package/dist/runtime/TimeRangeProvider/refresh-interval.d.ts.map +1 -1
  310. package/dist/runtime/TimeRangeProvider/refresh-interval.js +2 -2
  311. package/dist/runtime/TimeRangeProvider/refresh-interval.js.map +1 -1
  312. package/dist/runtime/UsageMetricsProvider.d.ts +3 -3
  313. package/dist/runtime/UsageMetricsProvider.d.ts.map +1 -1
  314. package/dist/runtime/UsageMetricsProvider.js +3 -3
  315. package/dist/runtime/UsageMetricsProvider.js.map +1 -1
  316. package/dist/runtime/alerts-queries.d.ts +2 -2
  317. package/dist/runtime/alerts-queries.d.ts.map +1 -1
  318. package/dist/runtime/alerts-queries.js +5 -5
  319. package/dist/runtime/alerts-queries.js.map +1 -1
  320. package/dist/runtime/annotations.d.ts +2 -2
  321. package/dist/runtime/annotations.d.ts.map +1 -1
  322. package/dist/runtime/annotations.js +6 -6
  323. package/dist/runtime/annotations.js.map +1 -1
  324. package/dist/runtime/builtin-variables.d.ts +2 -2
  325. package/dist/runtime/builtin-variables.d.ts.map +1 -1
  326. package/dist/runtime/builtin-variables.js +1 -1
  327. package/dist/runtime/builtin-variables.js.map +1 -1
  328. package/dist/runtime/datasources.d.ts +2 -2
  329. package/dist/runtime/datasources.d.ts.map +1 -1
  330. package/dist/runtime/datasources.js +2 -2
  331. package/dist/runtime/datasources.js.map +1 -1
  332. package/dist/runtime/index.js +16 -16
  333. package/dist/runtime/index.js.map +1 -1
  334. package/dist/runtime/item-actions.d.ts +3 -3
  335. package/dist/runtime/item-actions.d.ts.map +1 -1
  336. package/dist/runtime/item-actions.js +1 -1
  337. package/dist/runtime/item-actions.js.map +1 -1
  338. package/dist/runtime/json-queries.d.ts +2 -2
  339. package/dist/runtime/json-queries.d.ts.map +1 -1
  340. package/dist/runtime/json-queries.js +4 -4
  341. package/dist/runtime/json-queries.js.map +1 -1
  342. package/dist/runtime/log-queries.d.ts +3 -3
  343. package/dist/runtime/log-queries.d.ts.map +1 -1
  344. package/dist/runtime/log-queries.js +5 -5
  345. package/dist/runtime/log-queries.js.map +1 -1
  346. package/dist/runtime/plugin-registry.d.ts +3 -3
  347. package/dist/runtime/plugin-registry.d.ts.map +1 -1
  348. package/dist/runtime/plugin-registry.js +2 -2
  349. package/dist/runtime/plugin-registry.js.map +1 -1
  350. package/dist/runtime/profile-queries.d.ts +2 -2
  351. package/dist/runtime/profile-queries.d.ts.map +1 -1
  352. package/dist/runtime/profile-queries.js +4 -4
  353. package/dist/runtime/profile-queries.js.map +1 -1
  354. package/dist/runtime/silences-queries.d.ts +2 -2
  355. package/dist/runtime/silences-queries.d.ts.map +1 -1
  356. package/dist/runtime/silences-queries.js +5 -5
  357. package/dist/runtime/silences-queries.js.map +1 -1
  358. package/dist/runtime/time-series-queries.d.ts +3 -3
  359. package/dist/runtime/time-series-queries.d.ts.map +1 -1
  360. package/dist/runtime/time-series-queries.js +6 -6
  361. package/dist/runtime/time-series-queries.js.map +1 -1
  362. package/dist/runtime/trace-queries.d.ts +2 -2
  363. package/dist/runtime/trace-queries.d.ts.map +1 -1
  364. package/dist/runtime/trace-queries.js +6 -6
  365. package/dist/runtime/trace-queries.js.map +1 -1
  366. package/dist/runtime/utils.d.ts +1 -1
  367. package/dist/runtime/utils.d.ts.map +1 -1
  368. package/dist/runtime/utils.js.map +1 -1
  369. package/dist/runtime/variables.d.ts +1 -1
  370. package/dist/runtime/variables.d.ts.map +1 -1
  371. package/dist/runtime/variables.js +4 -4
  372. package/dist/runtime/variables.js.map +1 -1
  373. package/dist/schema/index.js +1 -1
  374. package/dist/schema/index.js.map +1 -1
  375. package/dist/schema/panel.d.ts +2 -2
  376. package/dist/schema/panel.d.ts.map +1 -1
  377. package/dist/schema/panel.js +2 -2
  378. package/dist/schema/panel.js.map +1 -1
  379. package/dist/test/index.js +2 -2
  380. package/dist/test/index.js.map +1 -1
  381. package/dist/test/mock-data.d.ts +1 -1
  382. package/dist/test/mock-data.d.ts.map +1 -1
  383. package/dist/test/mock-data.js.map +1 -1
  384. package/dist/test/render-hook.d.ts +2 -2
  385. package/dist/test/render-hook.d.ts.map +1 -1
  386. package/dist/test/render-hook.js +2 -2
  387. package/dist/test/render-hook.js.map +1 -1
  388. package/dist/test/render.d.ts +3 -3
  389. package/dist/test/render.d.ts.map +1 -1
  390. package/dist/test/render.js +3 -3
  391. package/dist/test/render.js.map +1 -1
  392. package/dist/test/setup-tests.js +1 -1
  393. package/dist/test/test-plugins/bert/index.d.ts +3 -3
  394. package/dist/test/test-plugins/bert/index.d.ts.map +1 -1
  395. package/dist/test/test-plugins/bert/index.js.map +1 -1
  396. package/dist/test/test-plugins/ernie/index.d.ts +1 -1
  397. package/dist/test/test-plugins/ernie/index.d.ts.map +1 -1
  398. package/dist/test/test-plugins/ernie/index.js.map +1 -1
  399. package/dist/test/test-plugins/index.d.ts +1 -1
  400. package/dist/test/test-plugins/index.d.ts.map +1 -1
  401. package/dist/test/test-plugins/index.js +5 -5
  402. package/dist/test/test-plugins/index.js.map +1 -1
  403. package/dist/test/utils.d.ts +2 -2
  404. package/dist/test/utils.d.ts.map +1 -1
  405. package/dist/test/utils.js +4 -4
  406. package/dist/test/utils.js.map +1 -1
  407. package/dist/test-utils/index.js +1 -1
  408. package/dist/test-utils/index.js.map +1 -1
  409. package/dist/test-utils/mock-plugin-registry.d.ts +2 -2
  410. package/dist/test-utils/mock-plugin-registry.d.ts.map +1 -1
  411. package/dist/test-utils/mock-plugin-registry.js +1 -1
  412. package/dist/test-utils/mock-plugin-registry.js.map +1 -1
  413. package/dist/utils/csv-export.js +1 -1
  414. package/dist/utils/csv-export.js.map +1 -1
  415. package/dist/utils/event.js +1 -1
  416. package/dist/utils/index.js +3 -3
  417. package/dist/utils/index.js.map +1 -1
  418. package/dist/utils/variables.js +1 -1
  419. package/package.json +9 -9
  420. package/dist/cjs/components/Annotations/AnnotationEditorForm/AnnotationEditorForm.js +0 -283
  421. package/dist/cjs/components/Annotations/AnnotationEditorForm/AnnotationPreview.js +0 -197
  422. package/dist/cjs/components/Annotations/AnnotationEditorForm/index.js +0 -30
  423. package/dist/cjs/components/Annotations/constants.js +0 -23
  424. package/dist/cjs/components/Annotations/index.js +0 -31
  425. package/dist/cjs/components/CalculationSelector/CalculationSelector.js +0 -49
  426. package/dist/cjs/components/CalculationSelector/index.js +0 -30
  427. package/dist/cjs/components/DatasourceEditorForm/DatasourceEditorForm.js +0 -271
  428. package/dist/cjs/components/DatasourceEditorForm/index.js +0 -30
  429. package/dist/cjs/components/DatasourceSelect/DatasourceSelect.js +0 -266
  430. package/dist/cjs/components/DatasourceSelect/index.js +0 -30
  431. package/dist/cjs/components/DatasourceTestConnectionButton/DatasourceTestConnectionButton.js +0 -53
  432. package/dist/cjs/components/DatasourceTestConnectionButton/index.js +0 -30
  433. package/dist/cjs/components/HTTPSettingsEditor/HTTPSettingsEditor.js +0 -593
  434. package/dist/cjs/components/HTTPSettingsEditor/index.js +0 -30
  435. package/dist/cjs/components/ItemSelectionActionsOptionsEditor/ItemSelectionActionsOptionsEditor.js +0 -1175
  436. package/dist/cjs/components/ItemSelectionActionsOptionsEditor/index.js +0 -30
  437. package/dist/cjs/components/LayoutEditor/LayoutEditor.js +0 -123
  438. package/dist/cjs/components/LayoutEditor/RepeatLayoutPreview.js +0 -105
  439. package/dist/cjs/components/LayoutEditor/RepeatVariableEditor.js +0 -176
  440. package/dist/cjs/components/LayoutEditor/index.js +0 -32
  441. package/dist/cjs/components/LegendOptionsEditor/LegendOptionsEditor.js +0 -211
  442. package/dist/cjs/components/LegendOptionsEditor/index.js +0 -30
  443. package/dist/cjs/components/LinksEditor/LinksEditor.js +0 -162
  444. package/dist/cjs/components/LinksEditor/index.js +0 -30
  445. package/dist/cjs/components/MetricLabelInput/MetricLabelInput.js +0 -41
  446. package/dist/cjs/components/MetricLabelInput/index.js +0 -30
  447. package/dist/cjs/components/MultiQueryEditor/MultiQueryEditor.js +0 -162
  448. package/dist/cjs/components/MultiQueryEditor/QueryEditorContainer.js +0 -250
  449. package/dist/cjs/components/MultiQueryEditor/index.js +0 -31
  450. package/dist/cjs/components/MultiQueryEditor/utils.js +0 -36
  451. package/dist/cjs/components/OptionsEditorRadios/OptionsEditorRadios.js +0 -69
  452. package/dist/cjs/components/OptionsEditorRadios/index.js +0 -30
  453. package/dist/cjs/components/OptionsEditorTabPanel/OptionsEditorTabPanel.js +0 -39
  454. package/dist/cjs/components/OptionsEditorTabPanel/index.js +0 -30
  455. package/dist/cjs/components/OptionsEditorTabs/OptionsEditorTabs.js +0 -61
  456. package/dist/cjs/components/OptionsEditorTabs/index.js +0 -30
  457. package/dist/cjs/components/PanelSpecEditor/PanelAnnotationsEditor.js +0 -246
  458. package/dist/cjs/components/PanelSpecEditor/PanelSpecEditor.js +0 -144
  459. package/dist/cjs/components/PanelSpecEditor/index.js +0 -30
  460. package/dist/cjs/components/PluginEditor/PluginEditor.js +0 -99
  461. package/dist/cjs/components/PluginEditor/index.js +0 -31
  462. package/dist/cjs/components/PluginEditor/plugin-editor-api.js +0 -136
  463. package/dist/cjs/components/PluginKindSelect/PluginKindSelect.js +0 -109
  464. package/dist/cjs/components/PluginKindSelect/index.js +0 -30
  465. package/dist/cjs/components/PluginRegistry/PluginRegistry.js +0 -86
  466. package/dist/cjs/components/PluginRegistry/getPluginSearchHelper.js +0 -92
  467. package/dist/cjs/components/PluginRegistry/index.js +0 -30
  468. package/dist/cjs/components/PluginRegistry/plugin-indexes.js +0 -88
  469. package/dist/cjs/components/PluginSpecEditor/DatasourceSpecEditor.js +0 -70
  470. package/dist/cjs/components/PluginSpecEditor/PluginSpecEditor.js +0 -69
  471. package/dist/cjs/components/PluginSpecEditor/index.js +0 -30
  472. package/dist/cjs/components/SelectionOptionsEditor/SelectionOptionsEditor.js +0 -43
  473. package/dist/cjs/components/SelectionOptionsEditor/index.js +0 -30
  474. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +0 -235
  475. package/dist/cjs/components/TimeRangeControls/index.js +0 -30
  476. package/dist/cjs/components/Variables/VariableEditorForm/VariableEditorForm.js +0 -613
  477. package/dist/cjs/components/Variables/VariableEditorForm/VariablePreview.js +0 -193
  478. package/dist/cjs/components/Variables/VariableEditorForm/index.js +0 -32
  479. package/dist/cjs/components/Variables/VariableEditorForm/variable-editor-form-model.js +0 -143
  480. package/dist/cjs/components/Variables/index.js +0 -31
  481. package/dist/cjs/components/Variables/variable-model.js +0 -211
  482. package/dist/cjs/components/index.js +0 -50
  483. package/dist/cjs/constants/index.js +0 -31
  484. package/dist/cjs/constants/repeat.js +0 -32
  485. package/dist/cjs/constants/user-interface-text.js +0 -32
  486. package/dist/cjs/context/ValidationProvider.js +0 -77
  487. package/dist/cjs/context/index.js +0 -30
  488. package/dist/cjs/index.js +0 -38
  489. package/dist/cjs/model/alerts-queries.js +0 -16
  490. package/dist/cjs/model/annotations.js +0 -16
  491. package/dist/cjs/model/calculations.js +0 -178
  492. package/dist/cjs/model/datasource.js +0 -16
  493. package/dist/cjs/model/explore.js +0 -16
  494. package/dist/cjs/model/index.js +0 -46
  495. package/dist/cjs/model/json-queries.js +0 -16
  496. package/dist/cjs/model/legend.js +0 -111
  497. package/dist/cjs/model/log-queries.js +0 -16
  498. package/dist/cjs/model/log-volume-utils.js +0 -124
  499. package/dist/cjs/model/panels.js +0 -16
  500. package/dist/cjs/model/plugin-base.js +0 -16
  501. package/dist/cjs/model/plugin-loading.js +0 -56
  502. package/dist/cjs/model/plugins.js +0 -26
  503. package/dist/cjs/model/profile-queries.js +0 -16
  504. package/dist/cjs/model/silences-queries.js +0 -16
  505. package/dist/cjs/model/time-series-queries.js +0 -26
  506. package/dist/cjs/model/trace-queries.js +0 -16
  507. package/dist/cjs/model/variables.js +0 -16
  508. package/dist/cjs/remote/PersesPlugin.types.js +0 -16
  509. package/dist/cjs/remote/PluginLoaderComponent.js +0 -87
  510. package/dist/cjs/remote/PluginRuntime.js +0 -323
  511. package/dist/cjs/remote/index.js +0 -31
  512. package/dist/cjs/remote/remotePluginLoader.js +0 -101
  513. package/dist/cjs/runtime/DataQueriesProvider/DataQueriesProvider.js +0 -162
  514. package/dist/cjs/runtime/DataQueriesProvider/index.js +0 -31
  515. package/dist/cjs/runtime/DataQueriesProvider/model.js +0 -34
  516. package/dist/cjs/runtime/RouterProvider.js +0 -114
  517. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeProvider.js +0 -215
  518. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeProviders.js +0 -66
  519. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeSettingsProvider.js +0 -126
  520. package/dist/cjs/runtime/TimeRangeProvider/index.js +0 -33
  521. package/dist/cjs/runtime/TimeRangeProvider/query-params.js +0 -250
  522. package/dist/cjs/runtime/TimeRangeProvider/refresh-interval.js +0 -30
  523. package/dist/cjs/runtime/UsageMetricsProvider.js +0 -102
  524. package/dist/cjs/runtime/alerts-queries.js +0 -101
  525. package/dist/cjs/runtime/annotations.js +0 -148
  526. package/dist/cjs/runtime/builtin-variables.js +0 -81
  527. package/dist/cjs/runtime/datasources.js +0 -80
  528. package/dist/cjs/runtime/index.js +0 -45
  529. package/dist/cjs/runtime/item-actions.js +0 -302
  530. package/dist/cjs/runtime/json-queries.js +0 -70
  531. package/dist/cjs/runtime/log-queries.js +0 -76
  532. package/dist/cjs/runtime/plugin-registry.js +0 -135
  533. package/dist/cjs/runtime/profile-queries.js +0 -73
  534. package/dist/cjs/runtime/silences-queries.js +0 -101
  535. package/dist/cjs/runtime/time-series-queries.js +0 -165
  536. package/dist/cjs/runtime/trace-queries.js +0 -106
  537. package/dist/cjs/runtime/utils.js +0 -39
  538. package/dist/cjs/runtime/variables.js +0 -160
  539. package/dist/cjs/schema/index.js +0 -30
  540. package/dist/cjs/schema/panel.js +0 -56
  541. package/dist/cjs/test/index.js +0 -31
  542. package/dist/cjs/test/mock-data.js +0 -366
  543. package/dist/cjs/test/render-hook.js +0 -31
  544. package/dist/cjs/test/render.js +0 -31
  545. package/dist/cjs/test/setup-tests.js +0 -26
  546. package/dist/cjs/test/test-plugins/bert/index.js +0 -99
  547. package/dist/cjs/test/test-plugins/ernie/index.js +0 -149
  548. package/dist/cjs/test/test-plugins/index.js +0 -81
  549. package/dist/cjs/test/utils.js +0 -58
  550. package/dist/cjs/test-utils/index.js +0 -30
  551. package/dist/cjs/test-utils/mock-plugin-registry.js +0 -81
  552. package/dist/cjs/utils/csv-export.js +0 -248
  553. package/dist/cjs/utils/event.js +0 -30
  554. package/dist/cjs/utils/index.js +0 -32
  555. package/dist/cjs/utils/variables.js +0 -44
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/remote/remotePluginLoader.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 { fetch as defaultFetch, type FetchFn } from '@perses-dev/client';\nimport {\n PluginLoader,\n PluginMetadata,\n PluginModuleResource,\n PluginType,\n getPluginModuleCompoundKey,\n} from '@perses-dev/plugin-system';\n\nimport { RemotePluginModule } from './PersesPlugin.types';\nimport { loadPlugin } from './PluginRuntime';\n\nconst isPluginMetadata = (plugin: unknown): plugin is PluginMetadata => {\n return (\n typeof plugin === 'object' &&\n plugin !== null &&\n 'kind' in plugin &&\n 'spec' in plugin &&\n typeof plugin.spec === 'object' &&\n plugin.spec !== null &&\n 'name' in plugin.spec\n );\n};\n\nconst isPluginModuleResource = (pluginModule: unknown): pluginModule is PluginModuleResource => {\n return (\n typeof pluginModule === 'object' &&\n pluginModule !== null &&\n 'metadata' in pluginModule &&\n 'spec' in pluginModule &&\n typeof pluginModule.spec === 'object' &&\n pluginModule.spec !== null &&\n 'plugins' in pluginModule.spec &&\n Array.isArray(pluginModule.spec.plugins) &&\n pluginModule.spec.plugins.every(isPluginMetadata)\n );\n};\n\ntype RemotePluginLoaderOptions = {\n /**\n * The API path for fetching available Perses plugins. Used to construct the full URL to the `/api/v1/plugins` endpoint.\n * @default ''\n **/\n apiPrefix?: string;\n /**\n * The base URL for loading plugin assets (e.g., JavaScript files). Used to construct the full URL to the `/plugins` directory\n * @default ''\n **/\n baseURL?: string;\n /**\n * Optional custom fetch function to use for network requests. If not provided, the default fetch implementation will be used.\n */\n fetchFn?: FetchFn;\n};\n\ntype ParsedPluginOptions = {\n pluginsApiPath: string;\n pluginsAssetsPath: string;\n};\n\nconst DEFAULT_PLUGINS_API_PATH = '/api/v1/plugins';\nconst DEFAULT_PLUGINS_ASSETS_PATH = '/plugins';\n\nconst paramToOptions = (options?: RemotePluginLoaderOptions): ParsedPluginOptions => {\n if (options === undefined) {\n return {\n pluginsApiPath: DEFAULT_PLUGINS_API_PATH,\n pluginsAssetsPath: DEFAULT_PLUGINS_ASSETS_PATH,\n };\n }\n\n return {\n pluginsApiPath: `${options?.apiPrefix ?? ''}${DEFAULT_PLUGINS_API_PATH}`,\n pluginsAssetsPath: `${options?.baseURL ?? ''}${DEFAULT_PLUGINS_ASSETS_PATH}`,\n };\n};\n\n/**\n * Get a PluginLoader that fetches the list of installed plugins from a remote server and loads them as needed.\n * @param options - Optional configuration options for the remote plugin loader.\n */\nexport function remotePluginLoader(options?: RemotePluginLoaderOptions): PluginLoader {\n const { pluginsApiPath, pluginsAssetsPath } = paramToOptions(options);\n const fetchFn = options?.fetchFn ?? defaultFetch;\n\n return {\n getInstalledPlugins: async (): Promise<PluginModuleResource[]> => {\n const pluginsResponse = await fetchFn(pluginsApiPath);\n\n const plugins = await pluginsResponse.json();\n let pluginModules: PluginModuleResource[] = [];\n\n if (Array.isArray(plugins)) {\n pluginModules = plugins.filter(isPluginModuleResource);\n } else {\n console.error('RemotePluginLoader: Error loading plugins, response is not an array');\n }\n\n if (!pluginModules.length) {\n console.error('RemotePluginLoader: No valid plugins found');\n }\n\n return pluginModules;\n },\n importPluginModule: async (resource): Promise<RemotePluginModule> => {\n const { name: pluginModuleName, version, registry } = resource.metadata;\n\n const pluginModule: RemotePluginModule = {};\n\n const loadPromises = resource.spec.plugins.map(async (plugin) => {\n const remotePluginModule = await loadPlugin({\n moduleName: pluginModuleName,\n pluginName: plugin.spec.name,\n registry,\n version,\n baseURL: pluginsAssetsPath,\n });\n\n const remotePlugin = remotePluginModule?.[plugin.spec.name];\n if (remotePlugin) {\n return { kind: plugin.kind as PluginType, name: plugin.spec.name, remotePlugin };\n } else {\n console.error(`RemotePluginLoader: Error loading plugin ${plugin.spec.name}`);\n return null;\n }\n });\n\n const loadedPlugins = await Promise.all(loadPromises);\n\n loadedPlugins.forEach((item) => {\n if (item?.remotePlugin) {\n pluginModule[getPluginModuleCompoundKey({ kind: item.kind, name: item.name, registry, version })] =\n item.remotePlugin;\n }\n });\n\n return pluginModule;\n },\n };\n}\n"],"names":["fetch","defaultFetch","getPluginModuleCompoundKey","loadPlugin","isPluginMetadata","plugin","spec","isPluginModuleResource","pluginModule","Array","isArray","plugins","every","DEFAULT_PLUGINS_API_PATH","DEFAULT_PLUGINS_ASSETS_PATH","paramToOptions","options","undefined","pluginsApiPath","pluginsAssetsPath","apiPrefix","baseURL","remotePluginLoader","fetchFn","getInstalledPlugins","pluginsResponse","json","pluginModules","filter","console","error","length","importPluginModule","resource","name","pluginModuleName","version","registry","metadata","loadPromises","map","remotePluginModule","moduleName","pluginName","remotePlugin","kind","loadedPlugins","Promise","all","forEach","item"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/remote/remotePluginLoader.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 { fetch as defaultFetch } from '@perses-dev/client';\nimport type { FetchFn } from '@perses-dev/client';\nimport type { PluginLoader, PluginMetadata, PluginModuleResource, PluginType } from '@perses-dev/plugin-system';\nimport { getPluginModuleCompoundKey } from '@perses-dev/plugin-system';\n\nimport type { RemotePluginModule } from './PersesPlugin.types';\nimport { loadPlugin } from './PluginRuntime';\n\nconst isPluginMetadata = (plugin: unknown): plugin is PluginMetadata => {\n return (\n typeof plugin === 'object' &&\n plugin !== null &&\n 'kind' in plugin &&\n 'spec' in plugin &&\n typeof plugin.spec === 'object' &&\n plugin.spec !== null &&\n 'name' in plugin.spec\n );\n};\n\nconst isPluginModuleResource = (pluginModule: unknown): pluginModule is PluginModuleResource => {\n return (\n typeof pluginModule === 'object' &&\n pluginModule !== null &&\n 'metadata' in pluginModule &&\n 'spec' in pluginModule &&\n typeof pluginModule.spec === 'object' &&\n pluginModule.spec !== null &&\n 'plugins' in pluginModule.spec &&\n Array.isArray(pluginModule.spec.plugins) &&\n pluginModule.spec.plugins.every(isPluginMetadata)\n );\n};\n\ntype RemotePluginLoaderOptions = {\n /**\n * The API path for fetching available Perses plugins. Used to construct the full URL to the `/api/v1/plugins` endpoint.\n * @default ''\n **/\n apiPrefix?: string;\n /**\n * The base URL for loading plugin assets (e.g., JavaScript files). Used to construct the full URL to the `/plugins` directory\n * @default ''\n **/\n baseURL?: string;\n /**\n * Optional custom fetch function to use for network requests. If not provided, the default fetch implementation will be used.\n */\n fetchFn?: FetchFn;\n};\n\ntype ParsedPluginOptions = {\n pluginsApiPath: string;\n pluginsAssetsPath: string;\n};\n\nconst DEFAULT_PLUGINS_API_PATH = '/api/v1/plugins';\nconst DEFAULT_PLUGINS_ASSETS_PATH = '/plugins';\n\nconst paramToOptions = (options?: RemotePluginLoaderOptions): ParsedPluginOptions => {\n if (options === undefined) {\n return {\n pluginsApiPath: DEFAULT_PLUGINS_API_PATH,\n pluginsAssetsPath: DEFAULT_PLUGINS_ASSETS_PATH,\n };\n }\n\n return {\n pluginsApiPath: `${options?.apiPrefix ?? ''}${DEFAULT_PLUGINS_API_PATH}`,\n pluginsAssetsPath: `${options?.baseURL ?? ''}${DEFAULT_PLUGINS_ASSETS_PATH}`,\n };\n};\n\n/**\n * Get a PluginLoader that fetches the list of installed plugins from a remote server and loads them as needed.\n * @param options - Optional configuration options for the remote plugin loader.\n */\nexport function remotePluginLoader(options?: RemotePluginLoaderOptions): PluginLoader {\n const { pluginsApiPath, pluginsAssetsPath } = paramToOptions(options);\n const fetchFn = options?.fetchFn ?? defaultFetch;\n\n return {\n getInstalledPlugins: async (): Promise<PluginModuleResource[]> => {\n const pluginsResponse = await fetchFn(pluginsApiPath);\n\n const plugins = await pluginsResponse.json();\n let pluginModules: PluginModuleResource[] = [];\n\n if (Array.isArray(plugins)) {\n pluginModules = plugins.filter(isPluginModuleResource);\n } else {\n console.error('RemotePluginLoader: Error loading plugins, response is not an array');\n }\n\n if (!pluginModules.length) {\n console.error('RemotePluginLoader: No valid plugins found');\n }\n\n return pluginModules;\n },\n importPluginModule: async (resource): Promise<RemotePluginModule> => {\n const { name: pluginModuleName, version, registry } = resource.metadata;\n\n const pluginModule: RemotePluginModule = {};\n\n const loadPromises = resource.spec.plugins.map(async (plugin) => {\n const remotePluginModule = await loadPlugin({\n moduleName: pluginModuleName,\n pluginName: plugin.spec.name,\n registry,\n version,\n baseURL: pluginsAssetsPath,\n });\n\n const remotePlugin = remotePluginModule?.[plugin.spec.name];\n if (remotePlugin) {\n return { kind: plugin.kind as PluginType, name: plugin.spec.name, remotePlugin };\n } else {\n console.error(`RemotePluginLoader: Error loading plugin ${plugin.spec.name}`);\n return null;\n }\n });\n\n const loadedPlugins = await Promise.all(loadPromises);\n\n loadedPlugins.forEach((item) => {\n if (item?.remotePlugin) {\n pluginModule[getPluginModuleCompoundKey({ kind: item.kind, name: item.name, registry, version })] =\n item.remotePlugin;\n }\n });\n\n return pluginModule;\n },\n };\n}\n"],"names":["fetch","defaultFetch","getPluginModuleCompoundKey","loadPlugin","isPluginMetadata","plugin","spec","isPluginModuleResource","pluginModule","Array","isArray","plugins","every","DEFAULT_PLUGINS_API_PATH","DEFAULT_PLUGINS_ASSETS_PATH","paramToOptions","options","undefined","pluginsApiPath","pluginsAssetsPath","apiPrefix","baseURL","remotePluginLoader","fetchFn","getInstalledPlugins","pluginsResponse","json","pluginModules","filter","console","error","length","importPluginModule","resource","name","pluginModuleName","version","registry","metadata","loadPromises","map","remotePluginModule","moduleName","pluginName","remotePlugin","kind","loadedPlugins","Promise","all","forEach","item"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { QueryType } from '@perses-dev/spec';
2
- import { ReactElement } from 'react';
3
- import { DataQueriesContextType, DataQueriesProviderProps, UseDataQueryResults } from './model';
1
+ import type { QueryType } from '@perses-dev/spec';
2
+ import type { ReactElement } from 'react';
3
+ import type { DataQueriesProviderProps, UseDataQueryResults, DataQueriesContextType } from './model';
4
4
  export declare const DataQueriesContext: import("react").Context<DataQueriesContextType | undefined>;
5
5
  export declare function useDataQueriesContext(): DataQueriesContextType;
6
6
  export declare function useDataQueries<T extends keyof QueryType>(queryType: T): UseDataQueryResults<QueryType[T]>;
@@ -1 +1 @@
1
- {"version":3,"file":"DataQueriesProvider.d.ts","sourceRoot":"","sources":["../../../src/runtime/DataQueriesProvider/DataQueriesProvider.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAA6B,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAiB,YAAY,EAAoC,MAAM,OAAO,CAAC;AAUtF,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,kBAAkB,6DAA+D,CAAC;AAE/F,wBAAgB,qBAAqB,IAAI,sBAAsB,CAM9D;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAuBzG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CAkGjF"}
1
+ {"version":3,"file":"DataQueriesProvider.d.ts","sourceRoot":"","sources":["../../../src/runtime/DataQueriesProvider/DataQueriesProvider.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAiB1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,sBAAsB,EAAa,MAAM,SAAS,CAAC;AAGhH,eAAO,MAAM,kBAAkB,6DAA+D,CAAC;AAE/F,wBAAgB,qBAAqB,IAAI,sBAAsB,CAM9D;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAuBzG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CAkGjF"}
@@ -11,16 +11,16 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
- import { createContext, useCallback, useContext, useMemo } from 'react';
15
- import { useAlertsQueries } from '../alerts-queries';
16
- import { useJsonQueries } from '../json-queries';
17
- import { useLogQueries } from '../log-queries';
18
- import { useProfileQueries } from '../profile-queries';
19
- import { useSilencesQueries } from '../silences-queries';
20
- import { useTimeSeriesQueries } from '../time-series-queries';
21
- import { useTraceQueries } from '../trace-queries';
22
- import { useUsageMetrics } from '../UsageMetricsProvider';
23
- import { transformQueryResults } from './model';
14
+ import { createContext, useCallback, useContext, useMemo } from "react";
15
+ import { useAlertsQueries } from "../alerts-queries.js";
16
+ import { useJsonQueries } from "../json-queries.js";
17
+ import { useLogQueries } from "../log-queries.js";
18
+ import { useProfileQueries } from "../profile-queries.js";
19
+ import { useSilencesQueries } from "../silences-queries.js";
20
+ import { useTimeSeriesQueries } from "../time-series-queries.js";
21
+ import { useTraceQueries } from "../trace-queries.js";
22
+ import { useUsageMetrics } from "../UsageMetricsProvider.js";
23
+ import { transformQueryResults } from "./model.js";
24
24
  export const DataQueriesContext = /*#__PURE__*/ createContext(undefined);
25
25
  export function useDataQueriesContext() {
26
26
  const ctx = useContext(DataQueriesContext);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/DataQueriesProvider/DataQueriesProvider.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 { QueryType, TimeSeriesQueryDefinition } from '@perses-dev/spec';\nimport { createContext, ReactElement, useCallback, useContext, useMemo } from 'react';\n\nimport { AlertsQueryDefinition, useAlertsQueries } from '../alerts-queries';\nimport { JsonQueryDefinition, useJsonQueries } from '../json-queries';\nimport { LogQueryDefinition, useLogQueries } from '../log-queries';\nimport { ProfileQueryDefinition, useProfileQueries } from '../profile-queries';\nimport { SilencesQueryDefinition, useSilencesQueries } from '../silences-queries';\nimport { useTimeSeriesQueries } from '../time-series-queries';\nimport { TraceQueryDefinition, useTraceQueries } from '../trace-queries';\nimport { useUsageMetrics } from '../UsageMetricsProvider';\nimport {\n DataQueriesContextType,\n DataQueriesProviderProps,\n QueryData,\n transformQueryResults,\n UseDataQueryResults,\n} from './model';\n\nexport const DataQueriesContext = createContext<DataQueriesContextType | undefined>(undefined);\n\nexport function useDataQueriesContext(): DataQueriesContextType {\n const ctx = useContext(DataQueriesContext);\n if (ctx === undefined) {\n throw new Error('No DataQueriesContext found. Did you forget a Provider?');\n }\n return ctx;\n}\n\nexport function useDataQueries<T extends keyof QueryType>(queryType: T): UseDataQueryResults<QueryType[T]> {\n const ctx = useDataQueriesContext();\n\n // Filter query definitions based on the specified query type\n const filteredQueryDefinitions = ctx.queryDefinitions.filter((definition) => definition.kind === queryType);\n\n // Filter the query results based on the specified query type\n const filteredQueryResults = ctx.queryResults.filter(\n (queryResult) => queryResult?.definition?.kind === queryType,\n ) as Array<QueryData<QueryType[T]>>;\n\n // Filter the errors based on the specified query type\n const filteredErrors = ctx.errors.filter((errors, index) => ctx.queryResults[index]?.definition?.kind === queryType);\n\n // Create a new context object with the filtered results and errors\n return {\n queryDefinitions: filteredQueryDefinitions,\n queryResults: filteredQueryResults,\n isFetching: filteredQueryResults.some((result) => result.isFetching),\n isLoading: filteredQueryResults.some((result) => result.isLoading),\n refetchAll: ctx.refetchAll,\n errors: filteredErrors,\n };\n}\n\nexport function DataQueriesProvider(props: DataQueriesProviderProps): ReactElement {\n const { definitions, options, children, queryOptions } = props;\n\n const usageMetrics = useUsageMetrics();\n\n // Filter definitions for time series query and other future query plugins\n const timeSeriesQueries = definitions.filter(\n (definition) => definition.kind === 'TimeSeriesQuery',\n ) as TimeSeriesQueryDefinition[];\n const timeSeriesResults = useTimeSeriesQueries(timeSeriesQueries, options, queryOptions);\n\n const traceQueries = definitions.filter((definition) => definition.kind === 'TraceQuery') as TraceQueryDefinition[];\n const traceResults = useTraceQueries(traceQueries);\n\n const profileQueries = definitions.filter(\n (definition) => definition.kind === 'ProfileQuery',\n ) as ProfileQueryDefinition[];\n const profileResults = useProfileQueries(profileQueries);\n\n const logQueries = definitions.filter((definition) => definition.kind === 'LogQuery') as LogQueryDefinition[];\n const logResults = useLogQueries(logQueries);\n\n const alertsQueries = definitions.filter(\n (definition) => definition.kind === 'AlertsQuery',\n ) as AlertsQueryDefinition[];\n const alertsResults = useAlertsQueries(alertsQueries);\n\n const silencesQueries = definitions.filter(\n (definition) => definition.kind === 'SilencesQuery',\n ) as SilencesQueryDefinition[];\n const silencesResults = useSilencesQueries(silencesQueries);\n\n const jsonQueries = definitions.filter((definition) => definition.kind === 'JsonQuery') as JsonQueryDefinition[];\n const jsonResults = useJsonQueries(jsonQueries);\n\n const refetchAll = useCallback(() => {\n timeSeriesResults.forEach((result) => result.refetch());\n traceResults.forEach((result) => result.refetch());\n profileResults.forEach((result) => result.refetch());\n logResults.forEach((result) => result.refetch());\n alertsResults.forEach((result) => result.refetch());\n silencesResults.forEach((result) => result.refetch());\n jsonResults.forEach((result) => result.refetch());\n }, [timeSeriesResults, traceResults, profileResults, logResults, alertsResults, silencesResults, jsonResults]);\n\n const ctx = useMemo(() => {\n const mergedQueryResults = [\n ...transformQueryResults(timeSeriesResults, timeSeriesQueries),\n ...transformQueryResults(traceResults, traceQueries),\n ...transformQueryResults(profileResults, profileQueries),\n ...transformQueryResults(logResults, logQueries),\n ...transformQueryResults(alertsResults, alertsQueries),\n ...transformQueryResults(silencesResults, silencesQueries),\n ...transformQueryResults(jsonResults, jsonQueries),\n ];\n\n if (queryOptions?.enabled) {\n for (const result of mergedQueryResults) {\n if (!result.isLoading && !result.isFetching && !result.error) {\n usageMetrics.markQuery(result.definition, 'success');\n } else if (result.error) {\n usageMetrics.markQuery(result.definition, 'error');\n } else {\n usageMetrics.markQuery(result.definition, 'pending');\n }\n }\n }\n\n return {\n queryDefinitions: definitions,\n queryResults: mergedQueryResults,\n isFetching: mergedQueryResults.some((result) => result.isFetching),\n isLoading: mergedQueryResults.some((result) => result.isLoading),\n refetchAll,\n errors: mergedQueryResults.map((result) => result.error),\n };\n }, [\n alertsQueries,\n alertsResults,\n logQueries,\n logResults,\n profileQueries,\n profileResults,\n silencesQueries,\n silencesResults,\n jsonQueries,\n jsonResults,\n timeSeriesQueries,\n timeSeriesResults,\n traceQueries,\n traceResults,\n definitions,\n queryOptions?.enabled,\n refetchAll,\n usageMetrics,\n ]);\n\n return <DataQueriesContext.Provider value={ctx}>{children}</DataQueriesContext.Provider>;\n}\n"],"names":["createContext","useCallback","useContext","useMemo","useAlertsQueries","useJsonQueries","useLogQueries","useProfileQueries","useSilencesQueries","useTimeSeriesQueries","useTraceQueries","useUsageMetrics","transformQueryResults","DataQueriesContext","undefined","useDataQueriesContext","ctx","Error","useDataQueries","queryType","filteredQueryDefinitions","queryDefinitions","filter","definition","kind","filteredQueryResults","queryResults","queryResult","filteredErrors","errors","index","isFetching","some","result","isLoading","refetchAll","DataQueriesProvider","props","definitions","options","children","queryOptions","usageMetrics","timeSeriesQueries","timeSeriesResults","traceQueries","traceResults","profileQueries","profileResults","logQueries","logResults","alertsQueries","alertsResults","silencesQueries","silencesResults","jsonQueries","jsonResults","forEach","refetch","mergedQueryResults","enabled","error","markQuery","map","Provider","value"],"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,aAAa,EAAgBC,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,QAAQ;AAEtF,SAAgCC,gBAAgB,QAAQ,oBAAoB;AAC5E,SAA8BC,cAAc,QAAQ,kBAAkB;AACtE,SAA6BC,aAAa,QAAQ,iBAAiB;AACnE,SAAiCC,iBAAiB,QAAQ,qBAAqB;AAC/E,SAAkCC,kBAAkB,QAAQ,sBAAsB;AAClF,SAASC,oBAAoB,QAAQ,yBAAyB;AAC9D,SAA+BC,eAAe,QAAQ,mBAAmB;AACzE,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,SAIEC,qBAAqB,QAEhB,UAAU;AAEjB,OAAO,MAAMC,mCAAqBb,cAAkDc,WAAW;AAE/F,OAAO,SAASC;IACd,MAAMC,MAAMd,WAAWW;IACvB,IAAIG,QAAQF,WAAW;QACrB,MAAM,IAAIG,MAAM;IAClB;IACA,OAAOD;AACT;AAEA,OAAO,SAASE,eAA0CC,SAAY;IACpE,MAAMH,MAAMD;IAEZ,6DAA6D;IAC7D,MAAMK,2BAA2BJ,IAAIK,gBAAgB,CAACC,MAAM,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKL;IAEjG,6DAA6D;IAC7D,MAAMM,uBAAuBT,IAAIU,YAAY,CAACJ,MAAM,CAClD,CAACK,cAAgBA,aAAaJ,YAAYC,SAASL;IAGrD,sDAAsD;IACtD,MAAMS,iBAAiBZ,IAAIa,MAAM,CAACP,MAAM,CAAC,CAACO,QAAQC,QAAUd,IAAIU,YAAY,CAACI,MAAM,EAAEP,YAAYC,SAASL;IAE1G,mEAAmE;IACnE,OAAO;QACLE,kBAAkBD;QAClBM,cAAcD;QACdM,YAAYN,qBAAqBO,IAAI,CAAC,CAACC,SAAWA,OAAOF,UAAU;QACnEG,WAAWT,qBAAqBO,IAAI,CAAC,CAACC,SAAWA,OAAOC,SAAS;QACjEC,YAAYnB,IAAImB,UAAU;QAC1BN,QAAQD;IACV;AACF;AAEA,OAAO,SAASQ,oBAAoBC,KAA+B;IACjE,MAAM,EAAEC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,YAAY,EAAE,GAAGJ;IAEzD,MAAMK,eAAe/B;IAErB,0EAA0E;IAC1E,MAAMgC,oBAAoBL,YAAYhB,MAAM,CAC1C,CAACC,aAAeA,WAAWC,IAAI,KAAK;IAEtC,MAAMoB,oBAAoBnC,qBAAqBkC,mBAAmBJ,SAASE;IAE3E,MAAMI,eAAeP,YAAYhB,MAAM,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAK;IAC5E,MAAMsB,eAAepC,gBAAgBmC;IAErC,MAAME,iBAAiBT,YAAYhB,MAAM,CACvC,CAACC,aAAeA,WAAWC,IAAI,KAAK;IAEtC,MAAMwB,iBAAiBzC,kBAAkBwC;IAEzC,MAAME,aAAaX,YAAYhB,MAAM,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAK;IAC1E,MAAM0B,aAAa5C,cAAc2C;IAEjC,MAAME,gBAAgBb,YAAYhB,MAAM,CACtC,CAACC,aAAeA,WAAWC,IAAI,KAAK;IAEtC,MAAM4B,gBAAgBhD,iBAAiB+C;IAEvC,MAAME,kBAAkBf,YAAYhB,MAAM,CACxC,CAACC,aAAeA,WAAWC,IAAI,KAAK;IAEtC,MAAM8B,kBAAkB9C,mBAAmB6C;IAE3C,MAAME,cAAcjB,YAAYhB,MAAM,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAK;IAC3E,MAAMgC,cAAcnD,eAAekD;IAEnC,MAAMpB,aAAalC,YAAY;QAC7B2C,kBAAkBa,OAAO,CAAC,CAACxB,SAAWA,OAAOyB,OAAO;QACpDZ,aAAaW,OAAO,CAAC,CAACxB,SAAWA,OAAOyB,OAAO;QAC/CV,eAAeS,OAAO,CAAC,CAACxB,SAAWA,OAAOyB,OAAO;QACjDR,WAAWO,OAAO,CAAC,CAACxB,SAAWA,OAAOyB,OAAO;QAC7CN,cAAcK,OAAO,CAAC,CAACxB,SAAWA,OAAOyB,OAAO;QAChDJ,gBAAgBG,OAAO,CAAC,CAACxB,SAAWA,OAAOyB,OAAO;QAClDF,YAAYC,OAAO,CAAC,CAACxB,SAAWA,OAAOyB,OAAO;IAChD,GAAG;QAACd;QAAmBE;QAAcE;QAAgBE;QAAYE;QAAeE;QAAiBE;KAAY;IAE7G,MAAMxC,MAAMb,QAAQ;QAClB,MAAMwD,qBAAqB;eACtB/C,sBAAsBgC,mBAAmBD;eACzC/B,sBAAsBkC,cAAcD;eACpCjC,sBAAsBoC,gBAAgBD;eACtCnC,sBAAsBsC,YAAYD;eAClCrC,sBAAsBwC,eAAeD;eACrCvC,sBAAsB0C,iBAAiBD;eACvCzC,sBAAsB4C,aAAaD;SACvC;QAED,IAAId,cAAcmB,SAAS;YACzB,KAAK,MAAM3B,UAAU0B,mBAAoB;gBACvC,IAAI,CAAC1B,OAAOC,SAAS,IAAI,CAACD,OAAOF,UAAU,IAAI,CAACE,OAAO4B,KAAK,EAAE;oBAC5DnB,aAAaoB,SAAS,CAAC7B,OAAOV,UAAU,EAAE;gBAC5C,OAAO,IAAIU,OAAO4B,KAAK,EAAE;oBACvBnB,aAAaoB,SAAS,CAAC7B,OAAOV,UAAU,EAAE;gBAC5C,OAAO;oBACLmB,aAAaoB,SAAS,CAAC7B,OAAOV,UAAU,EAAE;gBAC5C;YACF;QACF;QAEA,OAAO;YACLF,kBAAkBiB;YAClBZ,cAAciC;YACd5B,YAAY4B,mBAAmB3B,IAAI,CAAC,CAACC,SAAWA,OAAOF,UAAU;YACjEG,WAAWyB,mBAAmB3B,IAAI,CAAC,CAACC,SAAWA,OAAOC,SAAS;YAC/DC;YACAN,QAAQ8B,mBAAmBI,GAAG,CAAC,CAAC9B,SAAWA,OAAO4B,KAAK;QACzD;IACF,GAAG;QACDV;QACAC;QACAH;QACAC;QACAH;QACAC;QACAK;QACAC;QACAC;QACAC;QACAb;QACAC;QACAC;QACAC;QACAR;QACAG,cAAcmB;QACdzB;QACAO;KACD;IAED,qBAAO,KAAC7B,mBAAmBmD,QAAQ;QAACC,OAAOjD;kBAAMwB;;AACnD"}
1
+ {"version":3,"sources":["../../../src/runtime/DataQueriesProvider/DataQueriesProvider.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 type { QueryType, TimeSeriesQueryDefinition } from '@perses-dev/spec';\nimport type { ReactElement } from 'react';\nimport { createContext, useCallback, useContext, useMemo } from 'react';\n\nimport type { AlertsQueryDefinition } from '../alerts-queries';\nimport { useAlertsQueries } from '../alerts-queries';\nimport type { JsonQueryDefinition } from '../json-queries';\nimport { useJsonQueries } from '../json-queries';\nimport type { LogQueryDefinition } from '../log-queries';\nimport { useLogQueries } from '../log-queries';\nimport type { ProfileQueryDefinition } from '../profile-queries';\nimport { useProfileQueries } from '../profile-queries';\nimport type { SilencesQueryDefinition } from '../silences-queries';\nimport { useSilencesQueries } from '../silences-queries';\nimport { useTimeSeriesQueries } from '../time-series-queries';\nimport type { TraceQueryDefinition } from '../trace-queries';\nimport { useTraceQueries } from '../trace-queries';\nimport { useUsageMetrics } from '../UsageMetricsProvider';\nimport type { DataQueriesProviderProps, UseDataQueryResults, DataQueriesContextType, QueryData } from './model';\nimport { transformQueryResults } from './model';\n\nexport const DataQueriesContext = createContext<DataQueriesContextType | undefined>(undefined);\n\nexport function useDataQueriesContext(): DataQueriesContextType {\n const ctx = useContext(DataQueriesContext);\n if (ctx === undefined) {\n throw new Error('No DataQueriesContext found. Did you forget a Provider?');\n }\n return ctx;\n}\n\nexport function useDataQueries<T extends keyof QueryType>(queryType: T): UseDataQueryResults<QueryType[T]> {\n const ctx = useDataQueriesContext();\n\n // Filter query definitions based on the specified query type\n const filteredQueryDefinitions = ctx.queryDefinitions.filter((definition) => definition.kind === queryType);\n\n // Filter the query results based on the specified query type\n const filteredQueryResults = ctx.queryResults.filter(\n (queryResult) => queryResult?.definition?.kind === queryType,\n ) as Array<QueryData<QueryType[T]>>;\n\n // Filter the errors based on the specified query type\n const filteredErrors = ctx.errors.filter((errors, index) => ctx.queryResults[index]?.definition?.kind === queryType);\n\n // Create a new context object with the filtered results and errors\n return {\n queryDefinitions: filteredQueryDefinitions,\n queryResults: filteredQueryResults,\n isFetching: filteredQueryResults.some((result) => result.isFetching),\n isLoading: filteredQueryResults.some((result) => result.isLoading),\n refetchAll: ctx.refetchAll,\n errors: filteredErrors,\n };\n}\n\nexport function DataQueriesProvider(props: DataQueriesProviderProps): ReactElement {\n const { definitions, options, children, queryOptions } = props;\n\n const usageMetrics = useUsageMetrics();\n\n // Filter definitions for time series query and other future query plugins\n const timeSeriesQueries = definitions.filter(\n (definition) => definition.kind === 'TimeSeriesQuery',\n ) as TimeSeriesQueryDefinition[];\n const timeSeriesResults = useTimeSeriesQueries(timeSeriesQueries, options, queryOptions);\n\n const traceQueries = definitions.filter((definition) => definition.kind === 'TraceQuery') as TraceQueryDefinition[];\n const traceResults = useTraceQueries(traceQueries);\n\n const profileQueries = definitions.filter(\n (definition) => definition.kind === 'ProfileQuery',\n ) as ProfileQueryDefinition[];\n const profileResults = useProfileQueries(profileQueries);\n\n const logQueries = definitions.filter((definition) => definition.kind === 'LogQuery') as LogQueryDefinition[];\n const logResults = useLogQueries(logQueries);\n\n const alertsQueries = definitions.filter(\n (definition) => definition.kind === 'AlertsQuery',\n ) as AlertsQueryDefinition[];\n const alertsResults = useAlertsQueries(alertsQueries);\n\n const silencesQueries = definitions.filter(\n (definition) => definition.kind === 'SilencesQuery',\n ) as SilencesQueryDefinition[];\n const silencesResults = useSilencesQueries(silencesQueries);\n\n const jsonQueries = definitions.filter((definition) => definition.kind === 'JsonQuery') as JsonQueryDefinition[];\n const jsonResults = useJsonQueries(jsonQueries);\n\n const refetchAll = useCallback(() => {\n timeSeriesResults.forEach((result) => result.refetch());\n traceResults.forEach((result) => result.refetch());\n profileResults.forEach((result) => result.refetch());\n logResults.forEach((result) => result.refetch());\n alertsResults.forEach((result) => result.refetch());\n silencesResults.forEach((result) => result.refetch());\n jsonResults.forEach((result) => result.refetch());\n }, [timeSeriesResults, traceResults, profileResults, logResults, alertsResults, silencesResults, jsonResults]);\n\n const ctx = useMemo(() => {\n const mergedQueryResults = [\n ...transformQueryResults(timeSeriesResults, timeSeriesQueries),\n ...transformQueryResults(traceResults, traceQueries),\n ...transformQueryResults(profileResults, profileQueries),\n ...transformQueryResults(logResults, logQueries),\n ...transformQueryResults(alertsResults, alertsQueries),\n ...transformQueryResults(silencesResults, silencesQueries),\n ...transformQueryResults(jsonResults, jsonQueries),\n ];\n\n if (queryOptions?.enabled) {\n for (const result of mergedQueryResults) {\n if (!result.isLoading && !result.isFetching && !result.error) {\n usageMetrics.markQuery(result.definition, 'success');\n } else if (result.error) {\n usageMetrics.markQuery(result.definition, 'error');\n } else {\n usageMetrics.markQuery(result.definition, 'pending');\n }\n }\n }\n\n return {\n queryDefinitions: definitions,\n queryResults: mergedQueryResults,\n isFetching: mergedQueryResults.some((result) => result.isFetching),\n isLoading: mergedQueryResults.some((result) => result.isLoading),\n refetchAll,\n errors: mergedQueryResults.map((result) => result.error),\n };\n }, [\n alertsQueries,\n alertsResults,\n logQueries,\n logResults,\n profileQueries,\n profileResults,\n silencesQueries,\n silencesResults,\n jsonQueries,\n jsonResults,\n timeSeriesQueries,\n timeSeriesResults,\n traceQueries,\n traceResults,\n definitions,\n queryOptions?.enabled,\n refetchAll,\n usageMetrics,\n ]);\n\n return <DataQueriesContext.Provider value={ctx}>{children}</DataQueriesContext.Provider>;\n}\n"],"names":["createContext","useCallback","useContext","useMemo","useAlertsQueries","useJsonQueries","useLogQueries","useProfileQueries","useSilencesQueries","useTimeSeriesQueries","useTraceQueries","useUsageMetrics","transformQueryResults","DataQueriesContext","undefined","useDataQueriesContext","ctx","Error","useDataQueries","queryType","filteredQueryDefinitions","queryDefinitions","filter","definition","kind","filteredQueryResults","queryResults","queryResult","filteredErrors","errors","index","isFetching","some","result","isLoading","refetchAll","DataQueriesProvider","props","definitions","options","children","queryOptions","usageMetrics","timeSeriesQueries","timeSeriesResults","traceQueries","traceResults","profileQueries","profileResults","logQueries","logResults","alertsQueries","alertsResults","silencesQueries","silencesResults","jsonQueries","jsonResults","forEach","refetch","mergedQueryResults","enabled","error","markQuery","map","Provider","value"],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
- export * from './DataQueriesProvider';
14
- export * from './model';
13
+ export * from "./DataQueriesProvider.js";
14
+ export * from "./model.js";
15
15
 
16
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/DataQueriesProvider/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 './DataQueriesProvider';\nexport * from './model';\n"],"names":[],"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,wBAAwB;AACtC,cAAc,UAAU"}
1
+ {"version":3,"sources":["../../../src/runtime/DataQueriesProvider/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 './DataQueriesProvider';\nexport * from './model';\n"],"names":[],"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,2BAAwB;AACtC,cAAc,aAAU"}
@@ -1,6 +1,6 @@
1
- import { QueryDefinition, UnknownSpec, QueryDataType } from '@perses-dev/spec';
2
- import { QueryObserverOptions, UseQueryResult } from '@tanstack/react-query';
3
- import { ReactNode } from 'react';
1
+ import type { QueryDefinition, UnknownSpec, QueryDataType } from '@perses-dev/spec';
2
+ import type { QueryObserverOptions, UseQueryResult } from '@tanstack/react-query';
3
+ import type { ReactNode } from 'react';
4
4
  export type QueryOptions = Record<string, unknown>;
5
5
  export interface DataQueriesProviderProps<Kind = unknown, PluginSpec = UnknownSpec> {
6
6
  definitions: Array<QueryDefinition<Kind, PluginSpec>>;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/runtime/DataQueriesProvider/model.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,MAAM,WAAW,wBAAwB,CAAC,IAAI,GAAG,OAAO,EAAE,UAAU,GAAG,WAAW;IAChF,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAC1F,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,aAAa,IAAI;IACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,CAW5G"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/runtime/DataQueriesProvider/model.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,MAAM,WAAW,wBAAwB,CAAC,IAAI,GAAG,OAAO,EAAE,UAAU,GAAG,WAAW;IAChF,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAC1F,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,aAAa,IAAI;IACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,CAW5G"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/DataQueriesProvider/model.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 { QueryDefinition, UnknownSpec, QueryDataType } from '@perses-dev/spec';\nimport { QueryObserverOptions, UseQueryResult } from '@tanstack/react-query';\nimport { ReactNode } from 'react';\n\nexport type QueryOptions = Record<string, unknown>;\nexport interface DataQueriesProviderProps<Kind = unknown, PluginSpec = UnknownSpec> {\n definitions: Array<QueryDefinition<Kind, PluginSpec>>;\n children?: ReactNode;\n options?: QueryOptions;\n queryOptions?: Omit<QueryObserverOptions, 'queryKey'>;\n}\n\nexport interface DataQueriesContextType {\n queryDefinitions: QueryDefinition[];\n queryResults: QueryData[];\n refetchAll: () => void;\n isFetching: boolean;\n isLoading: boolean;\n errors: unknown[];\n}\n\nexport interface UseDataQueryResults<T> extends Omit<DataQueriesContextType, 'queryResults'> {\n queryResults: Array<QueryData<T>>;\n}\n\nexport type QueryData<T = QueryDataType> = {\n data?: T;\n definition: QueryDefinition;\n error: Error;\n isFetching: boolean;\n isLoading: boolean;\n refetch?: () => void;\n};\n\nexport function transformQueryResults(results: UseQueryResult[], definitions: QueryDefinition[]): QueryData[] {\n return results.map(({ data, isFetching, isLoading, refetch, error }, i) => {\n return {\n definition: definitions[i],\n data,\n isFetching,\n isLoading,\n refetch,\n error,\n } as QueryData;\n });\n}\n"],"names":["transformQueryResults","results","definitions","map","data","isFetching","isLoading","refetch","error","i","definition"],"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;AAoCjC,OAAO,SAASA,sBAAsBC,OAAyB,EAAEC,WAA8B;IAC7F,OAAOD,QAAQE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,KAAK,EAAE,EAAEC;QACnE,OAAO;YACLC,YAAYR,WAAW,CAACO,EAAE;YAC1BL;YACAC;YACAC;YACAC;YACAC;QACF;IACF;AACF"}
1
+ {"version":3,"sources":["../../../src/runtime/DataQueriesProvider/model.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 type { QueryDefinition, UnknownSpec, QueryDataType } from '@perses-dev/spec';\nimport type { QueryObserverOptions, UseQueryResult } from '@tanstack/react-query';\nimport type { ReactNode } from 'react';\n\nexport type QueryOptions = Record<string, unknown>;\nexport interface DataQueriesProviderProps<Kind = unknown, PluginSpec = UnknownSpec> {\n definitions: Array<QueryDefinition<Kind, PluginSpec>>;\n children?: ReactNode;\n options?: QueryOptions;\n queryOptions?: Omit<QueryObserverOptions, 'queryKey'>;\n}\n\nexport interface DataQueriesContextType {\n queryDefinitions: QueryDefinition[];\n queryResults: QueryData[];\n refetchAll: () => void;\n isFetching: boolean;\n isLoading: boolean;\n errors: unknown[];\n}\n\nexport interface UseDataQueryResults<T> extends Omit<DataQueriesContextType, 'queryResults'> {\n queryResults: Array<QueryData<T>>;\n}\n\nexport type QueryData<T = QueryDataType> = {\n data?: T;\n definition: QueryDefinition;\n error: Error;\n isFetching: boolean;\n isLoading: boolean;\n refetch?: () => void;\n};\n\nexport function transformQueryResults(results: UseQueryResult[], definitions: QueryDefinition[]): QueryData[] {\n return results.map(({ data, isFetching, isLoading, refetch, error }, i) => {\n return {\n definition: definitions[i],\n data,\n isFetching,\n isLoading,\n refetch,\n error,\n } as QueryData;\n });\n}\n"],"names":["transformQueryResults","results","definitions","map","data","isFetching","isLoading","refetch","error","i","definition"],"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;AAoCjC,OAAO,SAASA,sBAAsBC,OAAyB,EAAEC,WAA8B;IAC7F,OAAOD,QAAQE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,KAAK,EAAE,EAAEC;QACnE,OAAO;YACLC,YAAYR,WAAW,CAACO,EAAE;YAC1BL;YACAC;YACAC;YACAC;YACAC;QACF;IACF;AACF"}
@@ -1,4 +1,5 @@
1
- import React, { ReactNode, ReactElement } from 'react';
1
+ import type { ReactNode, ReactElement } from 'react';
2
+ import React from 'react';
2
3
  interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
3
4
  to: string;
4
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouterProvider.d.ts","sourceRoot":"","sources":["../../src/runtime/RouterProvider.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAG3F,UAAU,SAAU,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACvE,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC;IAC3F,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,aAAa,8CAA0D,CAAC;AAErF,wBAAgB,gBAAgB,IAAI,iBAAiB,CAOpD;AAED,UAAU,mBAAmB;IAC3B,eAAe,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACtD,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAQvE;AAED,UAAU,wBAAwB;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CASjF"}
1
+ {"version":3,"file":"RouterProvider.d.ts","sourceRoot":"","sources":["../../src/runtime/RouterProvider.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,KAA6C,MAAM,OAAO,CAAC;AAGlE,UAAU,SAAU,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACvE,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC;IAC3F,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,aAAa,8CAA0D,CAAC;AAErF,wBAAgB,gBAAgB,IAAI,iBAAiB,CAOpD;AAED,UAAU,mBAAmB;IAC3B,eAAe,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACtD,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAQvE;AAED,UAAU,wBAAwB;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CASjF"}
@@ -1,4 +1,3 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  // Copyright The Perses Authors
3
2
  // Licensed under the Apache License, Version 2.0 (the "License");
4
3
  // you may not use this file except in compliance with the License.
@@ -11,8 +10,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
11
  // See the License for the specific language governing permissions and
13
12
  // limitations under the License.
14
- import React, { createContext, useContext, useMemo } from 'react';
15
- import { Link as RouterLink, useNavigate } from 'react-router-dom';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import React, { createContext, useContext, useMemo } from "react";
15
+ import { Link as RouterLink, useNavigate } from "react-router-dom";
16
16
  export const RouterContext = /*#__PURE__*/ createContext(undefined);
17
17
  export function useRouterContext() {
18
18
  const ctx = useContext(RouterContext);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/runtime/RouterProvider.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 React, { createContext, useContext, ReactNode, ReactElement, useMemo } from 'react';\nimport { Link as RouterLink, useNavigate } from 'react-router-dom';\n\ninterface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n to: string;\n}\n\nexport interface RouterContextType {\n RouterComponent?: (props: LinkProps & React.RefAttributes<HTMLAnchorElement>) => ReactNode;\n navigate?: (to: string) => void;\n}\n\nexport const RouterContext = createContext<RouterContextType | undefined>(undefined);\n\nexport function useRouterContext(): RouterContextType {\n const ctx = useContext(RouterContext);\n if (ctx === undefined) {\n console.warn('No RouterContext found. Did you forget a <RouterProvider>?');\n return {};\n }\n return ctx;\n}\n\ninterface RouterProviderProps {\n RouterComponent: RouterContextType['RouterComponent'];\n navigate: RouterContextType['navigate'];\n children?: React.ReactNode;\n}\n\n/**\n * Some panel plugins (TraceTable, ScatterPlot, TracingGanttChart) support linking to other pages,\n * e.g. clicking on a trace in the TraceTable should navigate to the TracingGanttChart.\n *\n * We can't use react-router in the panel, because panels might be embedded into React applications\n * which use a different routing library, or a different major version of react-router.\n *\n * This provider abstracts the basic routing functionality, to remove the dependency on the exact version of react-router.\n */\nexport function RouterProvider(props: RouterProviderProps): ReactElement {\n const { RouterComponent, navigate, children } = props;\n\n const ctx = useMemo(() => {\n return { RouterComponent, navigate };\n }, [RouterComponent, navigate]);\n\n return <RouterContext.Provider value={ctx}>{children}</RouterContext.Provider>;\n}\n\ninterface ReactRouterProviderProps {\n children?: React.ReactNode;\n}\n\n/** An implementation of RouterProvider for using the react-router library, shipped with Perses */\nexport function ReactRouterProvider(props: ReactRouterProviderProps): ReactElement {\n const { children } = props;\n const navigate = useNavigate();\n\n return (\n <RouterProvider RouterComponent={RouterLink} navigate={navigate}>\n {children}\n </RouterProvider>\n );\n}\n"],"names":["React","createContext","useContext","useMemo","Link","RouterLink","useNavigate","RouterContext","undefined","useRouterContext","ctx","console","warn","RouterProvider","props","RouterComponent","navigate","children","Provider","value","ReactRouterProvider"],"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,OAAOA,SAASC,aAAa,EAAEC,UAAU,EAA2BC,OAAO,QAAQ,QAAQ;AAC3F,SAASC,QAAQC,UAAU,EAAEC,WAAW,QAAQ,mBAAmB;AAWnE,OAAO,MAAMC,8BAAgBN,cAA6CO,WAAW;AAErF,OAAO,SAASC;IACd,MAAMC,MAAMR,WAAWK;IACvB,IAAIG,QAAQF,WAAW;QACrBG,QAAQC,IAAI,CAAC;QACb,OAAO,CAAC;IACV;IACA,OAAOF;AACT;AAQA;;;;;;;;CAQC,GACD,OAAO,SAASG,eAAeC,KAA0B;IACvD,MAAM,EAAEC,eAAe,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IAEhD,MAAMJ,MAAMP,QAAQ;QAClB,OAAO;YAAEY;YAAiBC;QAAS;IACrC,GAAG;QAACD;QAAiBC;KAAS;IAE9B,qBAAO,KAACT,cAAcW,QAAQ;QAACC,OAAOT;kBAAMO;;AAC9C;AAMA,gGAAgG,GAChG,OAAO,SAASG,oBAAoBN,KAA+B;IACjE,MAAM,EAAEG,QAAQ,EAAE,GAAGH;IACrB,MAAME,WAAWV;IAEjB,qBACE,KAACO;QAAeE,iBAAiBV;QAAYW,UAAUA;kBACpDC;;AAGP"}
1
+ {"version":3,"sources":["../../src/runtime/RouterProvider.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 type { ReactNode, ReactElement } from 'react';\nimport React, { createContext, useContext, useMemo } from 'react';\nimport { Link as RouterLink, useNavigate } from 'react-router-dom';\n\ninterface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n to: string;\n}\n\nexport interface RouterContextType {\n RouterComponent?: (props: LinkProps & React.RefAttributes<HTMLAnchorElement>) => ReactNode;\n navigate?: (to: string) => void;\n}\n\nexport const RouterContext = createContext<RouterContextType | undefined>(undefined);\n\nexport function useRouterContext(): RouterContextType {\n const ctx = useContext(RouterContext);\n if (ctx === undefined) {\n console.warn('No RouterContext found. Did you forget a <RouterProvider>?');\n return {};\n }\n return ctx;\n}\n\ninterface RouterProviderProps {\n RouterComponent: RouterContextType['RouterComponent'];\n navigate: RouterContextType['navigate'];\n children?: React.ReactNode;\n}\n\n/**\n * Some panel plugins (TraceTable, ScatterPlot, TracingGanttChart) support linking to other pages,\n * e.g. clicking on a trace in the TraceTable should navigate to the TracingGanttChart.\n *\n * We can't use react-router in the panel, because panels might be embedded into React applications\n * which use a different routing library, or a different major version of react-router.\n *\n * This provider abstracts the basic routing functionality, to remove the dependency on the exact version of react-router.\n */\nexport function RouterProvider(props: RouterProviderProps): ReactElement {\n const { RouterComponent, navigate, children } = props;\n\n const ctx = useMemo(() => {\n return { RouterComponent, navigate };\n }, [RouterComponent, navigate]);\n\n return <RouterContext.Provider value={ctx}>{children}</RouterContext.Provider>;\n}\n\ninterface ReactRouterProviderProps {\n children?: React.ReactNode;\n}\n\n/** An implementation of RouterProvider for using the react-router library, shipped with Perses */\nexport function ReactRouterProvider(props: ReactRouterProviderProps): ReactElement {\n const { children } = props;\n const navigate = useNavigate();\n\n return (\n <RouterProvider RouterComponent={RouterLink} navigate={navigate}>\n {children}\n </RouterProvider>\n );\n}\n"],"names":["React","createContext","useContext","useMemo","Link","RouterLink","useNavigate","RouterContext","undefined","useRouterContext","ctx","console","warn","RouterProvider","props","RouterComponent","navigate","children","Provider","value","ReactRouterProvider"],"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,OAAOA,SAASC,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,QAAQ;AAClE,SAASC,QAAQC,UAAU,EAAEC,WAAW,QAAQ,mBAAmB;AAWnE,OAAO,MAAMC,8BAAgBN,cAA6CO,WAAW;AAErF,OAAO,SAASC;IACd,MAAMC,MAAMR,WAAWK;IACvB,IAAIG,QAAQF,WAAW;QACrBG,QAAQC,IAAI,CAAC;QACb,OAAO,CAAC;IACV;IACA,OAAOF;AACT;AAQA;;;;;;;;CAQC,GACD,OAAO,SAASG,eAAeC,KAA0B;IACvD,MAAM,EAAEC,eAAe,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IAEhD,MAAMJ,MAAMP,QAAQ;QAClB,OAAO;YAAEY;YAAiBC;QAAS;IACrC,GAAG;QAACD;QAAiBC;KAAS;IAE9B,qBAAO,KAACT,cAAcW,QAAQ;QAACC,OAAOT;kBAAMO;;AAC9C;AAMA,gGAAgG,GAChG,OAAO,SAASG,oBAAoBN,KAA+B;IACjE,MAAM,EAAEG,QAAQ,EAAE,GAAGH;IACrB,MAAME,WAAWV;IAEjB,qBACE,KAACO;QAAeE,iBAAiBV;QAAYW,UAAUA;kBACpDC;;AAGP"}
@@ -1,5 +1,6 @@
1
- import { AbsoluteTimeRange, DurationString, TimeRangeValue } from '@perses-dev/spec';
2
- import React, { ReactElement } from 'react';
1
+ import type { AbsoluteTimeRange, DurationString, TimeRangeValue } from '@perses-dev/spec';
2
+ import type { ReactElement } from 'react';
3
+ import React from 'react';
3
4
  export interface TimeRangeProviderProps {
4
5
  timeRange: TimeRangeValue;
5
6
  refreshInterval?: DurationString;
@@ -1 +1 @@
1
- {"version":3,"file":"TimeRangeProvider.d.ts","sourceRoot":"","sources":["../../../src/runtime/TimeRangeProvider/TimeRangeProvider.tsx"],"names":[],"mappings":"AAaA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EAIf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,EAAiB,YAAY,EAAyD,MAAM,OAAO,CAAC;AAKlH,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,cAAc,CAAC;IAC1B,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,YAAY,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,kBAAkB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,cAAc,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,gBAAgB,sCAAkD,CAAC;AAEhF,wBAAgB,mBAAmB,IAAI,SAAS,CAM/C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAExC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CAoF7E"}
1
+ {"version":3,"file":"TimeRangeProvider.d.ts","sourceRoot":"","sources":["../../../src/runtime/TimeRangeProvider/TimeRangeProvider.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAA+E,MAAM,OAAO,CAAC;AAKpG,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,cAAc,CAAC;IAC1B,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,YAAY,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,kBAAkB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,cAAc,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,gBAAgB,sCAAkD,CAAC;AAEhF,wBAAgB,mBAAmB,IAAI,SAAS,CAM/C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAExC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CAoF7E"}
@@ -1,4 +1,3 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  // Copyright The Perses Authors
3
2
  // Licensed under the Apache License, Version 2.0 (the "License");
4
3
  // you may not use this file except in compliance with the License.
@@ -11,11 +10,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
11
  // See the License for the specific language governing permissions and
13
12
  // limitations under the License.
14
- import { isRelativeTimeRange, toAbsoluteTimeRange, getSuggestedStepMs } from '@perses-dev/spec';
15
- import { useQueryClient } from '@tanstack/react-query';
16
- import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
17
- import { getRefreshIntervalInMs } from './refresh-interval';
18
- import { useDisableAutoRefreshSetting } from './TimeRangeSettingsProvider';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { isRelativeTimeRange, toAbsoluteTimeRange, getSuggestedStepMs } from "@perses-dev/spec";
15
+ import { useQueryClient } from "@tanstack/react-query";
16
+ import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
17
+ import { getRefreshIntervalInMs } from "./refresh-interval.js";
18
+ import { useDisableAutoRefreshSetting } from "./TimeRangeSettingsProvider.js";
19
19
  export const TimeRangeContext = /*#__PURE__*/ createContext(undefined);
20
20
  export function useTimeRangeContext() {
21
21
  const ctx = useContext(TimeRangeContext);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/TimeRangeProvider/TimeRangeProvider.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 {\n AbsoluteTimeRange,\n DurationString,\n TimeRangeValue,\n isRelativeTimeRange,\n toAbsoluteTimeRange,\n getSuggestedStepMs,\n} from '@perses-dev/spec';\nimport { useQueryClient } from '@tanstack/react-query';\nimport React, { createContext, ReactElement, useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { getRefreshIntervalInMs } from './refresh-interval';\nimport { useDisableAutoRefreshSetting } from './TimeRangeSettingsProvider';\n\nexport interface TimeRangeProviderProps {\n timeRange: TimeRangeValue;\n refreshInterval?: DurationString;\n setTimeRange: (value: TimeRangeValue) => void;\n setRefreshInterval: (value: DurationString) => void;\n children?: React.ReactNode;\n}\n\nexport interface TimeRange {\n timeRange: TimeRangeValue;\n absoluteTimeRange: AbsoluteTimeRange; // resolved absolute time for plugins to use\n setTimeRange: (value: TimeRangeValue) => void;\n refresh: () => void;\n refreshInterval?: DurationString;\n refreshIntervalInMs: number;\n setRefreshInterval: (value: DurationString) => void;\n}\n\nexport const TimeRangeContext = createContext<TimeRange | undefined>(undefined);\n\nexport function useTimeRangeContext(): TimeRange {\n const ctx = useContext(TimeRangeContext);\n if (ctx === undefined) {\n throw new Error('No TimeRangeContext found. Did you forget a Provider?');\n }\n return ctx;\n}\n\n/**\n * Get and set the current resolved time range at runtime.\n */\nexport function useTimeRange(): TimeRange {\n return useTimeRangeContext();\n}\n\n/**\n * Gets the suggested step for a graph query in ms for the currently selected time range.\n */\nexport function useSuggestedStepMs(width?: number): number {\n const { absoluteTimeRange } = useTimeRange();\n if (width === undefined) return 0;\n return getSuggestedStepMs(absoluteTimeRange, width);\n}\n\n/**\n * Provider implementation that supplies the time range state at runtime.\n */\nexport function TimeRangeProvider(props: TimeRangeProviderProps): ReactElement {\n const { timeRange, refreshInterval, children, setTimeRange, setRefreshInterval } = props;\n const disableAutoRefresh = useDisableAutoRefreshSetting();\n\n const queryClient = useQueryClient();\n const [absoluteTimeRange, setAbsoluteTimeRange] = useState<AbsoluteTimeRange>(\n isRelativeTimeRange(timeRange) ? toAbsoluteTimeRange(timeRange) : timeRange,\n );\n\n const handleSetTimeRange = useCallback(\n (value: TimeRangeValue) => {\n setTimeRange(value);\n setAbsoluteTimeRange(isRelativeTimeRange(value) ? toAbsoluteTimeRange(value) : value);\n },\n [setTimeRange],\n );\n\n // When auto-refresh is disabled by admin, leave URL/spec values untouched and no-op changes.\n const handleSetRefreshInterval = useCallback(\n (value: DurationString) => {\n if (disableAutoRefresh) {\n return;\n }\n setRefreshInterval(value);\n },\n [disableAutoRefresh, setRefreshInterval],\n );\n\n // Refresh is called when clicking on the refresh button, it refreshes all queries including variables\n const refresh = useCallback(() => {\n setAbsoluteTimeRange(isRelativeTimeRange(timeRange) ? toAbsoluteTimeRange(timeRange) : timeRange);\n queryClient\n .invalidateQueries({ queryKey: ['query'] })\n .finally(() => queryClient.removeQueries({ queryKey: ['query'], type: 'inactive' }));\n queryClient\n .invalidateQueries({ queryKey: ['variable'] })\n .finally(() => queryClient.removeQueries({ queryKey: ['variable'], type: 'inactive' }));\n }, [queryClient, timeRange]);\n\n // Auto refresh is only refreshing queries of panels\n const autoRefresh = useCallback(() => {\n setAbsoluteTimeRange(isRelativeTimeRange(timeRange) ? toAbsoluteTimeRange(timeRange) : timeRange);\n queryClient.invalidateQueries({ queryKey: ['query'] }).finally(() => {\n queryClient.removeQueries({ queryKey: ['query'], type: 'inactive' });\n queryClient.removeQueries({ queryKey: ['variable'], type: 'inactive' }); // Timerange is in queryKey, can lead to memory leak when using relative timerange\n });\n }, [queryClient, timeRange]);\n\n // Gate the timer only — do not rewrite refreshInterval / ?refresh= so re-enabling restores them.\n const refreshIntervalInMs = useMemo(\n () => (disableAutoRefresh ? 0 : getRefreshIntervalInMs(refreshInterval)),\n [disableAutoRefresh, refreshInterval],\n );\n useEffect(() => {\n if (refreshIntervalInMs > 0) {\n const interval = setInterval(() => {\n autoRefresh();\n }, refreshIntervalInMs);\n\n return (): void => clearInterval(interval);\n }\n }, [autoRefresh, refreshIntervalInMs]);\n\n const ctx = useMemo(() => {\n return {\n timeRange: timeRange,\n setTimeRange: handleSetTimeRange,\n absoluteTimeRange: absoluteTimeRange,\n refresh,\n refreshInterval: refreshInterval,\n refreshIntervalInMs: refreshIntervalInMs,\n setRefreshInterval: handleSetRefreshInterval,\n };\n }, [\n absoluteTimeRange,\n handleSetTimeRange,\n refresh,\n refreshInterval,\n refreshIntervalInMs,\n handleSetRefreshInterval,\n timeRange,\n ]);\n\n return <TimeRangeContext.Provider value={ctx}>{children}</TimeRangeContext.Provider>;\n}\n"],"names":["isRelativeTimeRange","toAbsoluteTimeRange","getSuggestedStepMs","useQueryClient","React","createContext","useCallback","useContext","useEffect","useMemo","useState","getRefreshIntervalInMs","useDisableAutoRefreshSetting","TimeRangeContext","undefined","useTimeRangeContext","ctx","Error","useTimeRange","useSuggestedStepMs","width","absoluteTimeRange","TimeRangeProvider","props","timeRange","refreshInterval","children","setTimeRange","setRefreshInterval","disableAutoRefresh","queryClient","setAbsoluteTimeRange","handleSetTimeRange","value","handleSetRefreshInterval","refresh","invalidateQueries","queryKey","finally","removeQueries","type","autoRefresh","refreshIntervalInMs","interval","setInterval","clearInterval","Provider"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/runtime/TimeRangeProvider/TimeRangeProvider.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 type { AbsoluteTimeRange, DurationString, TimeRangeValue } from '@perses-dev/spec';\nimport { isRelativeTimeRange, toAbsoluteTimeRange, getSuggestedStepMs } from '@perses-dev/spec';\nimport { useQueryClient } from '@tanstack/react-query';\nimport type { ReactElement } from 'react';\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { getRefreshIntervalInMs } from './refresh-interval';\nimport { useDisableAutoRefreshSetting } from './TimeRangeSettingsProvider';\n\nexport interface TimeRangeProviderProps {\n timeRange: TimeRangeValue;\n refreshInterval?: DurationString;\n setTimeRange: (value: TimeRangeValue) => void;\n setRefreshInterval: (value: DurationString) => void;\n children?: React.ReactNode;\n}\n\nexport interface TimeRange {\n timeRange: TimeRangeValue;\n absoluteTimeRange: AbsoluteTimeRange; // resolved absolute time for plugins to use\n setTimeRange: (value: TimeRangeValue) => void;\n refresh: () => void;\n refreshInterval?: DurationString;\n refreshIntervalInMs: number;\n setRefreshInterval: (value: DurationString) => void;\n}\n\nexport const TimeRangeContext = createContext<TimeRange | undefined>(undefined);\n\nexport function useTimeRangeContext(): TimeRange {\n const ctx = useContext(TimeRangeContext);\n if (ctx === undefined) {\n throw new Error('No TimeRangeContext found. Did you forget a Provider?');\n }\n return ctx;\n}\n\n/**\n * Get and set the current resolved time range at runtime.\n */\nexport function useTimeRange(): TimeRange {\n return useTimeRangeContext();\n}\n\n/**\n * Gets the suggested step for a graph query in ms for the currently selected time range.\n */\nexport function useSuggestedStepMs(width?: number): number {\n const { absoluteTimeRange } = useTimeRange();\n if (width === undefined) return 0;\n return getSuggestedStepMs(absoluteTimeRange, width);\n}\n\n/**\n * Provider implementation that supplies the time range state at runtime.\n */\nexport function TimeRangeProvider(props: TimeRangeProviderProps): ReactElement {\n const { timeRange, refreshInterval, children, setTimeRange, setRefreshInterval } = props;\n const disableAutoRefresh = useDisableAutoRefreshSetting();\n\n const queryClient = useQueryClient();\n const [absoluteTimeRange, setAbsoluteTimeRange] = useState<AbsoluteTimeRange>(\n isRelativeTimeRange(timeRange) ? toAbsoluteTimeRange(timeRange) : timeRange,\n );\n\n const handleSetTimeRange = useCallback(\n (value: TimeRangeValue) => {\n setTimeRange(value);\n setAbsoluteTimeRange(isRelativeTimeRange(value) ? toAbsoluteTimeRange(value) : value);\n },\n [setTimeRange],\n );\n\n // When auto-refresh is disabled by admin, leave URL/spec values untouched and no-op changes.\n const handleSetRefreshInterval = useCallback(\n (value: DurationString) => {\n if (disableAutoRefresh) {\n return;\n }\n setRefreshInterval(value);\n },\n [disableAutoRefresh, setRefreshInterval],\n );\n\n // Refresh is called when clicking on the refresh button, it refreshes all queries including variables\n const refresh = useCallback(() => {\n setAbsoluteTimeRange(isRelativeTimeRange(timeRange) ? toAbsoluteTimeRange(timeRange) : timeRange);\n queryClient\n .invalidateQueries({ queryKey: ['query'] })\n .finally(() => queryClient.removeQueries({ queryKey: ['query'], type: 'inactive' }));\n queryClient\n .invalidateQueries({ queryKey: ['variable'] })\n .finally(() => queryClient.removeQueries({ queryKey: ['variable'], type: 'inactive' }));\n }, [queryClient, timeRange]);\n\n // Auto refresh is only refreshing queries of panels\n const autoRefresh = useCallback(() => {\n setAbsoluteTimeRange(isRelativeTimeRange(timeRange) ? toAbsoluteTimeRange(timeRange) : timeRange);\n queryClient.invalidateQueries({ queryKey: ['query'] }).finally(() => {\n queryClient.removeQueries({ queryKey: ['query'], type: 'inactive' });\n queryClient.removeQueries({ queryKey: ['variable'], type: 'inactive' }); // Timerange is in queryKey, can lead to memory leak when using relative timerange\n });\n }, [queryClient, timeRange]);\n\n // Gate the timer only — do not rewrite refreshInterval / ?refresh= so re-enabling restores them.\n const refreshIntervalInMs = useMemo(\n () => (disableAutoRefresh ? 0 : getRefreshIntervalInMs(refreshInterval)),\n [disableAutoRefresh, refreshInterval],\n );\n useEffect(() => {\n if (refreshIntervalInMs > 0) {\n const interval = setInterval(() => {\n autoRefresh();\n }, refreshIntervalInMs);\n\n return (): void => clearInterval(interval);\n }\n }, [autoRefresh, refreshIntervalInMs]);\n\n const ctx = useMemo(() => {\n return {\n timeRange: timeRange,\n setTimeRange: handleSetTimeRange,\n absoluteTimeRange: absoluteTimeRange,\n refresh,\n refreshInterval: refreshInterval,\n refreshIntervalInMs: refreshIntervalInMs,\n setRefreshInterval: handleSetRefreshInterval,\n };\n }, [\n absoluteTimeRange,\n handleSetTimeRange,\n refresh,\n refreshInterval,\n refreshIntervalInMs,\n handleSetRefreshInterval,\n timeRange,\n ]);\n\n return <TimeRangeContext.Provider value={ctx}>{children}</TimeRangeContext.Provider>;\n}\n"],"names":["isRelativeTimeRange","toAbsoluteTimeRange","getSuggestedStepMs","useQueryClient","React","createContext","useCallback","useContext","useEffect","useMemo","useState","getRefreshIntervalInMs","useDisableAutoRefreshSetting","TimeRangeContext","undefined","useTimeRangeContext","ctx","Error","useTimeRange","useSuggestedStepMs","width","absoluteTimeRange","TimeRangeProvider","props","timeRange","refreshInterval","children","setTimeRange","setRefreshInterval","disableAutoRefresh","queryClient","setAbsoluteTimeRange","handleSetTimeRange","value","handleSetRefreshInterval","refresh","invalidateQueries","queryKey","finally","removeQueries","type","autoRefresh","refreshIntervalInMs","interval","setInterval","clearInterval","Provider"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { DurationString, TimeRangeValue } from '@perses-dev/spec';
2
- import React, { ReactElement } from 'react';
1
+ import type { DurationString, TimeRangeValue } from '@perses-dev/spec';
2
+ import type { ReactElement } from 'react';
3
+ import React from 'react';
3
4
  export interface TimeRangeProvidersProps {
4
5
  initialTimeRange: TimeRangeValue;
5
6
  initialRefreshInterval?: DurationString;
@@ -1 +1 @@
1
- {"version":3,"file":"TimeRangeProviders.d.ts","sourceRoot":"","sources":["../../../src/runtime/TimeRangeProvider/TimeRangeProviders.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK5C,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,cAAc,CAAC;IACjC,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,gCAAgC,CAAC,EAC/C,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,GACT,EAAE,uBAAuB,GAAG,YAAY,CAexC;AAED,wBAAgB,sBAAsB,CAAC,EACrC,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,GACT,EAAE,uBAAuB,GAAG,YAAY,CAcxC"}
1
+ {"version":3,"file":"TimeRangeProviders.d.ts","sourceRoot":"","sources":["../../../src/runtime/TimeRangeProvider/TimeRangeProviders.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,cAAc,CAAC;IACjC,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,gCAAgC,CAAC,EAC/C,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,GACT,EAAE,uBAAuB,GAAG,YAAY,CAexC;AAED,wBAAgB,sBAAsB,CAAC,EACrC,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,GACT,EAAE,uBAAuB,GAAG,YAAY,CAcxC"}
@@ -11,10 +11,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { TimeZoneProvider } from '@perses-dev/components';
15
- import React from 'react';
16
- import { useSetRefreshIntervalParams, useTimeRangeParams, useTimeZoneParams } from './query-params';
17
- import { TimeRangeProvider } from './TimeRangeProvider';
14
+ import { TimeZoneProvider } from "@perses-dev/components";
15
+ import React from "react";
16
+ import { useSetRefreshIntervalParams, useTimeRangeParams, useTimeZoneParams } from "./query-params.js";
17
+ import { TimeRangeProvider } from "./TimeRangeProvider.js";
18
18
  export function TimeRangeProviderWithQueryParams({ initialTimeRange, initialRefreshInterval, children }) {
19
19
  const { timeRange, setTimeRange } = useTimeRangeParams(initialTimeRange);
20
20
  const { refreshInterval, setRefreshInterval } = useSetRefreshIntervalParams(initialRefreshInterval);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/TimeRangeProvider/TimeRangeProviders.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 { TimeZoneProvider } from '@perses-dev/components';\nimport { DurationString, TimeRangeValue } from '@perses-dev/spec';\nimport React, { ReactElement } from 'react';\n\nimport { useSetRefreshIntervalParams, useTimeRangeParams, useTimeZoneParams } from './query-params';\nimport { TimeRangeProvider } from './TimeRangeProvider';\n\nexport interface TimeRangeProvidersProps {\n initialTimeRange: TimeRangeValue;\n initialRefreshInterval?: DurationString;\n children?: React.ReactNode;\n}\n\nexport function TimeRangeProviderWithQueryParams({\n initialTimeRange,\n initialRefreshInterval,\n children,\n}: TimeRangeProvidersProps): ReactElement {\n const { timeRange, setTimeRange } = useTimeRangeParams(initialTimeRange);\n const { refreshInterval, setRefreshInterval } = useSetRefreshIntervalParams(initialRefreshInterval);\n const { timeZone } = useTimeZoneParams('local');\n\n return (\n <TimeRangeProvider\n timeRange={timeRange}\n refreshInterval={refreshInterval}\n setTimeRange={setTimeRange}\n setRefreshInterval={setRefreshInterval}\n >\n <TimeZoneProvider timeZone={timeZone}>{children}</TimeZoneProvider>\n </TimeRangeProvider>\n );\n}\n\nexport function TimeRangeProviderBasic({\n initialTimeRange,\n initialRefreshInterval,\n children,\n}: TimeRangeProvidersProps): ReactElement {\n const [timeRange, setTimeRange] = React.useState<TimeRangeValue>(initialTimeRange);\n const [refreshInterval, setRefreshInterval] = React.useState<DurationString | undefined>(initialRefreshInterval);\n\n return (\n <TimeRangeProvider\n timeRange={timeRange}\n refreshInterval={refreshInterval}\n setTimeRange={setTimeRange}\n setRefreshInterval={setRefreshInterval}\n >\n {children}\n </TimeRangeProvider>\n );\n}\n"],"names":["TimeZoneProvider","React","useSetRefreshIntervalParams","useTimeRangeParams","useTimeZoneParams","TimeRangeProvider","TimeRangeProviderWithQueryParams","initialTimeRange","initialRefreshInterval","children","timeRange","setTimeRange","refreshInterval","setRefreshInterval","timeZone","TimeRangeProviderBasic","useState"],"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,gBAAgB,QAAQ,yBAAyB;AAE1D,OAAOC,WAA6B,QAAQ;AAE5C,SAASC,2BAA2B,EAAEC,kBAAkB,EAAEC,iBAAiB,QAAQ,iBAAiB;AACpG,SAASC,iBAAiB,QAAQ,sBAAsB;AAQxD,OAAO,SAASC,iCAAiC,EAC/CC,gBAAgB,EAChBC,sBAAsB,EACtBC,QAAQ,EACgB;IACxB,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAE,GAAGR,mBAAmBI;IACvD,MAAM,EAAEK,eAAe,EAAEC,kBAAkB,EAAE,GAAGX,4BAA4BM;IAC5E,MAAM,EAAEM,QAAQ,EAAE,GAAGV,kBAAkB;IAEvC,qBACE,KAACC;QACCK,WAAWA;QACXE,iBAAiBA;QACjBD,cAAcA;QACdE,oBAAoBA;kBAEpB,cAAA,KAACb;YAAiBc,UAAUA;sBAAWL;;;AAG7C;AAEA,OAAO,SAASM,uBAAuB,EACrCR,gBAAgB,EAChBC,sBAAsB,EACtBC,QAAQ,EACgB;IACxB,MAAM,CAACC,WAAWC,aAAa,GAAGV,MAAMe,QAAQ,CAAiBT;IACjE,MAAM,CAACK,iBAAiBC,mBAAmB,GAAGZ,MAAMe,QAAQ,CAA6BR;IAEzF,qBACE,KAACH;QACCK,WAAWA;QACXE,iBAAiBA;QACjBD,cAAcA;QACdE,oBAAoBA;kBAEnBJ;;AAGP"}
1
+ {"version":3,"sources":["../../../src/runtime/TimeRangeProvider/TimeRangeProviders.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 { TimeZoneProvider } from '@perses-dev/components';\nimport type { DurationString, TimeRangeValue } from '@perses-dev/spec';\nimport type { ReactElement } from 'react';\nimport React from 'react';\n\nimport { useSetRefreshIntervalParams, useTimeRangeParams, useTimeZoneParams } from './query-params';\nimport { TimeRangeProvider } from './TimeRangeProvider';\n\nexport interface TimeRangeProvidersProps {\n initialTimeRange: TimeRangeValue;\n initialRefreshInterval?: DurationString;\n children?: React.ReactNode;\n}\n\nexport function TimeRangeProviderWithQueryParams({\n initialTimeRange,\n initialRefreshInterval,\n children,\n}: TimeRangeProvidersProps): ReactElement {\n const { timeRange, setTimeRange } = useTimeRangeParams(initialTimeRange);\n const { refreshInterval, setRefreshInterval } = useSetRefreshIntervalParams(initialRefreshInterval);\n const { timeZone } = useTimeZoneParams('local');\n\n return (\n <TimeRangeProvider\n timeRange={timeRange}\n refreshInterval={refreshInterval}\n setTimeRange={setTimeRange}\n setRefreshInterval={setRefreshInterval}\n >\n <TimeZoneProvider timeZone={timeZone}>{children}</TimeZoneProvider>\n </TimeRangeProvider>\n );\n}\n\nexport function TimeRangeProviderBasic({\n initialTimeRange,\n initialRefreshInterval,\n children,\n}: TimeRangeProvidersProps): ReactElement {\n const [timeRange, setTimeRange] = React.useState<TimeRangeValue>(initialTimeRange);\n const [refreshInterval, setRefreshInterval] = React.useState<DurationString | undefined>(initialRefreshInterval);\n\n return (\n <TimeRangeProvider\n timeRange={timeRange}\n refreshInterval={refreshInterval}\n setTimeRange={setTimeRange}\n setRefreshInterval={setRefreshInterval}\n >\n {children}\n </TimeRangeProvider>\n );\n}\n"],"names":["TimeZoneProvider","React","useSetRefreshIntervalParams","useTimeRangeParams","useTimeZoneParams","TimeRangeProvider","TimeRangeProviderWithQueryParams","initialTimeRange","initialRefreshInterval","children","timeRange","setTimeRange","refreshInterval","setRefreshInterval","timeZone","TimeRangeProviderBasic","useState"],"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,gBAAgB,QAAQ,yBAAyB;AAG1D,OAAOC,WAAW,QAAQ;AAE1B,SAASC,2BAA2B,EAAEC,kBAAkB,EAAEC,iBAAiB,QAAQ,oBAAiB;AACpG,SAASC,iBAAiB,QAAQ,yBAAsB;AAQxD,OAAO,SAASC,iCAAiC,EAC/CC,gBAAgB,EAChBC,sBAAsB,EACtBC,QAAQ,EACgB;IACxB,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAE,GAAGR,mBAAmBI;IACvD,MAAM,EAAEK,eAAe,EAAEC,kBAAkB,EAAE,GAAGX,4BAA4BM;IAC5E,MAAM,EAAEM,QAAQ,EAAE,GAAGV,kBAAkB;IAEvC,qBACE,KAACC;QACCK,WAAWA;QACXE,iBAAiBA;QACjBD,cAAcA;QACdE,oBAAoBA;kBAEpB,cAAA,KAACb;YAAiBc,UAAUA;sBAAWL;;;AAG7C;AAEA,OAAO,SAASM,uBAAuB,EACrCR,gBAAgB,EAChBC,sBAAsB,EACtBC,QAAQ,EACgB;IACxB,MAAM,CAACC,WAAWC,aAAa,GAAGV,MAAMe,QAAQ,CAAiBT;IACjE,MAAM,CAACK,iBAAiBC,mBAAmB,GAAGZ,MAAMe,QAAQ,CAA6BR;IAEzF,qBACE,KAACH;QACCK,WAAWA;QACXE,iBAAiBA;QACjBD,cAAcA;QACdE,oBAAoBA;kBAEnBJ;;AAGP"}
@@ -1,9 +1,11 @@
1
- import { TimeOption } from '@perses-dev/components';
2
- import { ReactElement, ReactNode } from 'react';
1
+ import type { TimeOption } from '@perses-dev/components';
2
+ import type { ReactElement, ReactNode } from 'react';
3
+ export declare const DEFAULT_REFRESH_INTERVAL_OPTIONS: TimeOption[];
3
4
  export interface TimeRangeSettingsProviderProps {
4
5
  showCustom?: boolean;
5
6
  showZoomButtons?: boolean;
6
7
  disableAutoRefresh?: boolean;
8
+ autoRefreshIntervalOptions?: TimeOption[];
7
9
  options?: TimeOption[];
8
10
  children: ReactNode;
9
11
  }
@@ -11,6 +13,7 @@ export interface TimeRangeSettings {
11
13
  showCustom: boolean;
12
14
  showZoomButtons: boolean;
13
15
  disableAutoRefresh: boolean;
16
+ autoRefreshIntervalOptions: TimeOption[];
14
17
  options: TimeOption[];
15
18
  }
16
19
  export declare const TimeRangeSettingsContext: import("react").Context<TimeRangeSettings>;
@@ -39,6 +42,7 @@ export declare function useTimeRangeOptionsSetting(override?: TimeOption[]): Tim
39
42
  * @param override If set, the value of the provider will be overridden by this value.
40
43
  */
41
44
  export declare function useDisableAutoRefreshSetting(override?: boolean): boolean;
45
+ export declare function useAutoRefreshIntervalsOptions(override?: TimeOption[]): TimeOption[];
42
46
  /**
43
47
  * Provider implementation that supplies the time range state at runtime.
44
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TimeRangeSettingsProvider.d.ts","sourceRoot":"","sources":["../../../src/runtime/TimeRangeProvider/TimeRangeSettingsProvider.tsx"],"names":[],"mappings":"AAaA,OAAO,EAA2B,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAiB,YAAY,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAUpF,MAAM,WAAW,8BAA8B;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,4CAA6D,CAAC;AAEnG,wBAAgB,2BAA2B,IAAI,iBAAiB,CAM/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAMzE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAMnE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAMhF;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAMxE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,GAAG,YAAY,CAa7F"}
1
+ {"version":3,"file":"TimeRangeSettingsProvider.d.ts","sourceRoot":"","sources":["../../../src/runtime/TimeRangeProvider/TimeRangeSettingsProvider.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrD,eAAO,MAAM,gCAAgC,EAAE,UAAU,EAOxD,CAAC;AAUF,MAAM,WAAW,8BAA8B;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0BAA0B,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0BAA0B,EAAE,UAAU,EAAE,CAAC;IACzC,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,4CAA6D,CAAC;AAEnG,wBAAgB,2BAA2B,IAAI,iBAAiB,CAM/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAMzE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAMnE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAMhF;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAMxE;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAMpF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,GAAG,YAAY,CAsB7F"}
@@ -1,4 +1,3 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  // Copyright The Perses Authors
3
2
  // Licensed under the Apache License, Version 2.0 (the "License");
4
3
  // you may not use this file except in compliance with the License.
@@ -11,8 +10,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
11
  // See the License for the specific language governing permissions and
13
12
  // limitations under the License.
14
- import { buildRelativeTimeOption } from '@perses-dev/components';
15
- import { createContext, useContext, useMemo } from 'react';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { buildRelativeTimeOption } from "@perses-dev/components";
15
+ import { createContext, useContext, useMemo } from "react";
16
16
  const DEFAULT_OPTIONS = [
17
17
  '5m',
18
18
  '15m',
@@ -24,10 +24,49 @@ const DEFAULT_OPTIONS = [
24
24
  '7d',
25
25
  '14d'
26
26
  ];
27
+ export const DEFAULT_REFRESH_INTERVAL_OPTIONS = [
28
+ {
29
+ value: {
30
+ pastDuration: '0s'
31
+ },
32
+ display: 'Off'
33
+ },
34
+ {
35
+ value: {
36
+ pastDuration: '5s'
37
+ },
38
+ display: '5s'
39
+ },
40
+ {
41
+ value: {
42
+ pastDuration: '10s'
43
+ },
44
+ display: '10s'
45
+ },
46
+ {
47
+ value: {
48
+ pastDuration: '15s'
49
+ },
50
+ display: '15s'
51
+ },
52
+ {
53
+ value: {
54
+ pastDuration: '30s'
55
+ },
56
+ display: '30s'
57
+ },
58
+ {
59
+ value: {
60
+ pastDuration: '60s'
61
+ },
62
+ display: '1m'
63
+ }
64
+ ];
27
65
  const defaultTimeRangeSettings = {
28
66
  showCustom: true,
29
67
  showZoomButtons: true,
30
68
  disableAutoRefresh: false,
69
+ autoRefreshIntervalOptions: DEFAULT_REFRESH_INTERVAL_OPTIONS,
31
70
  options: DEFAULT_OPTIONS.map((duration)=>buildRelativeTimeOption(duration))
32
71
  };
33
72
  export const TimeRangeSettingsContext = /*#__PURE__*/ createContext(defaultTimeRangeSettings);
@@ -83,6 +122,13 @@ export function useTimeRangeSettingsContext() {
83
122
  }
84
123
  return disableAutoRefresh;
85
124
  }
125
+ export function useAutoRefreshIntervalsOptions(override) {
126
+ const { autoRefreshIntervalOptions } = useTimeRangeSettings();
127
+ if (override?.length) {
128
+ return override;
129
+ }
130
+ return autoRefreshIntervalOptions;
131
+ }
86
132
  /**
87
133
  * Provider implementation that supplies the time range state at runtime.
88
134
  */ export function TimeRangeSettingsProvider(props) {
@@ -91,13 +137,15 @@ export function useTimeRangeSettingsContext() {
91
137
  showCustom: props.showCustom === undefined ? defaultTimeRangeSettings.showCustom : props.showCustom,
92
138
  showZoomButtons: props.showZoomButtons === undefined ? defaultTimeRangeSettings.showZoomButtons : props.showZoomButtons,
93
139
  disableAutoRefresh: props.disableAutoRefresh === undefined ? defaultTimeRangeSettings.disableAutoRefresh : props.disableAutoRefresh,
140
+ autoRefreshIntervalOptions: !props.autoRefreshIntervalOptions?.length ? defaultTimeRangeSettings.autoRefreshIntervalOptions : props.autoRefreshIntervalOptions,
94
141
  options: props.options === undefined ? defaultTimeRangeSettings.options : props.options
95
142
  };
96
143
  }, [
97
144
  props.showCustom,
98
145
  props.showZoomButtons,
99
146
  props.disableAutoRefresh,
100
- props.options
147
+ props.options,
148
+ props.autoRefreshIntervalOptions
101
149
  ]);
102
150
  return /*#__PURE__*/ _jsx(TimeRangeSettingsContext.Provider, {
103
151
  value: ctx,