@perses-dev/dashboards 0.38.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/cjs/components/AddGroupButton/AddGroupButton.js +9 -7
  2. package/dist/cjs/components/AddGroupButton/index.js +10 -8
  3. package/dist/cjs/components/AddPanelButton/AddPanelButton.js +9 -7
  4. package/dist/cjs/components/AddPanelButton/index.js +10 -8
  5. package/dist/cjs/components/Dashboard/Dashboard.js +14 -11
  6. package/dist/cjs/components/Dashboard/index.js +10 -8
  7. package/dist/cjs/components/DashboardStickyToolbar/DashboardStickyToolbar.js +18 -16
  8. package/dist/cjs/components/DashboardStickyToolbar/index.js +10 -8
  9. package/dist/cjs/components/DashboardToolbar/DashboardToolbar.js +43 -41
  10. package/dist/cjs/components/DashboardToolbar/index.js +10 -8
  11. package/dist/cjs/components/DeletePanelDialog/DeletePanelDialog.js +12 -10
  12. package/dist/cjs/components/DeletePanelDialog/index.js +10 -8
  13. package/dist/cjs/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +17 -15
  14. package/dist/cjs/components/DeletePanelGroupDialog/index.js +10 -8
  15. package/dist/cjs/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +5 -3
  16. package/dist/cjs/components/DiscardChangesConfirmationDialog/index.js +10 -8
  17. package/dist/cjs/components/DownloadButton/DownloadButton.js +12 -10
  18. package/dist/cjs/components/DownloadButton/index.js +10 -8
  19. package/dist/cjs/components/EditButton/EditButton.js +8 -6
  20. package/dist/cjs/components/EditButton/index.js +10 -8
  21. package/dist/cjs/components/EditJsonButton/EditJsonButton.js +10 -8
  22. package/dist/cjs/components/EditJsonButton/index.js +10 -8
  23. package/dist/cjs/components/EditJsonDialog/EditJsonDialog.js +29 -23
  24. package/dist/cjs/components/EditJsonDialog/index.js +10 -8
  25. package/dist/cjs/components/EmptyDashboard/EmptyDashboard.js +18 -16
  26. package/dist/cjs/components/EmptyDashboard/index.js +10 -8
  27. package/dist/cjs/components/GridLayout/GridContainer.js +5 -3
  28. package/dist/cjs/components/GridLayout/GridItemContent.js +33 -12
  29. package/dist/cjs/components/GridLayout/GridLayout.js +19 -16
  30. package/dist/cjs/components/GridLayout/GridTitle.js +35 -33
  31. package/dist/cjs/components/GridLayout/index.js +13 -11
  32. package/dist/cjs/components/Panel/Panel.js +21 -21
  33. package/dist/cjs/components/Panel/PanelContent.js +8 -6
  34. package/dist/cjs/components/Panel/PanelHeader.js +39 -33
  35. package/dist/cjs/components/Panel/index.js +10 -8
  36. package/dist/cjs/components/PanelDrawer/PanelDrawer.js +25 -77
  37. package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +269 -141
  38. package/dist/cjs/components/PanelDrawer/PanelPreview.js +11 -9
  39. package/dist/cjs/components/PanelDrawer/index.js +10 -8
  40. package/dist/cjs/components/PanelDrawer/usePanelEditor.js +3 -1
  41. package/dist/cjs/components/PanelGroupDialog/PanelGroupDialog.js +18 -16
  42. package/dist/cjs/components/PanelGroupDialog/PanelGroupEditorForm.js +15 -11
  43. package/dist/cjs/components/PanelGroupDialog/index.js +10 -8
  44. package/dist/cjs/components/QuerySummaryTable/QuerySummaryTable.js +46 -44
  45. package/dist/cjs/components/QuerySummaryTable/index.js +10 -8
  46. package/dist/cjs/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +23 -21
  47. package/dist/cjs/components/SaveChangesConfirmationDialog/index.js +10 -8
  48. package/dist/cjs/components/SaveDashboardButton/SaveDashboardButton.js +11 -9
  49. package/dist/cjs/components/SaveDashboardButton/index.js +10 -8
  50. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +40 -16
  51. package/dist/cjs/components/TimeRangeControls/index.js +10 -8
  52. package/dist/cjs/components/ToolbarIconButton/ToolbarIconButton.js +5 -3
  53. package/dist/cjs/components/ToolbarIconButton/index.js +10 -8
  54. package/dist/cjs/components/Variables/BuiltinVariableAccordions.js +140 -0
  55. package/dist/cjs/components/Variables/EditVariablesButton.js +18 -11
  56. package/dist/cjs/components/Variables/TemplateVariable.js +127 -76
  57. package/dist/cjs/components/Variables/VariableEditor.js +356 -117
  58. package/dist/cjs/components/Variables/VariableList.js +45 -21
  59. package/dist/cjs/components/Variables/index.js +14 -11
  60. package/dist/cjs/components/index.js +31 -29
  61. package/dist/cjs/constants/grid-layout-config.js +6 -2
  62. package/dist/cjs/constants/index.js +11 -9
  63. package/dist/cjs/constants/user-interface-text.js +6 -2
  64. package/dist/cjs/context/DashboardProvider/DashboardProvider.js +40 -34
  65. package/dist/cjs/context/DashboardProvider/common.js +6 -2
  66. package/dist/cjs/context/DashboardProvider/dashboard-provider-api.js +70 -38
  67. package/dist/cjs/context/DashboardProvider/delete-panel-group-slice.js +3 -1
  68. package/dist/cjs/context/DashboardProvider/delete-panel-slice.js +5 -3
  69. package/dist/cjs/context/DashboardProvider/discard-changes-dialog-slice.js +3 -1
  70. package/dist/cjs/context/DashboardProvider/duplicate-panel-slice.js +3 -1
  71. package/dist/cjs/context/DashboardProvider/edit-json-dialog-slice.js +3 -1
  72. package/dist/cjs/context/DashboardProvider/index.js +12 -10
  73. package/dist/cjs/context/DashboardProvider/panel-editor-slice.js +13 -11
  74. package/dist/cjs/context/DashboardProvider/panel-group-editor-slice.js +8 -6
  75. package/dist/cjs/context/DashboardProvider/panel-group-slice.js +15 -7
  76. package/dist/cjs/context/DashboardProvider/panel-slice.js +3 -1
  77. package/dist/cjs/context/DashboardProvider/save-changes-dialog-slice.js +3 -1
  78. package/dist/cjs/context/DatasourceStoreProvider.js +114 -45
  79. package/dist/cjs/context/TemplateVariableProvider/TemplateVariableProvider.js +189 -51
  80. package/dist/cjs/context/TemplateVariableProvider/hydrationUtils.js +65 -13
  81. package/dist/cjs/context/TemplateVariableProvider/index.js +10 -8
  82. package/dist/cjs/context/TemplateVariableProvider/query-params.js +17 -7
  83. package/dist/cjs/context/TemplateVariableProvider/utils.js +49 -9
  84. package/dist/cjs/context/index.js +13 -11
  85. package/dist/cjs/context/useDashboard.js +8 -6
  86. package/dist/cjs/index.js +12 -10
  87. package/dist/cjs/stories/decorators/WithDashboard.js +6 -4
  88. package/dist/cjs/stories/decorators/WithDatasourceStore.js +6 -4
  89. package/dist/cjs/stories/decorators/WithTemplateVariables.js +6 -4
  90. package/dist/cjs/stories/decorators/constants.js +5 -3
  91. package/dist/cjs/stories/decorators/index.js +13 -11
  92. package/dist/cjs/test/dashboard-provider.js +8 -4
  93. package/dist/cjs/test/datasource-provider.js +16 -12
  94. package/dist/cjs/test/index.js +13 -11
  95. package/dist/cjs/test/plugin-registry.js +6 -4
  96. package/dist/cjs/test/render.js +27 -20
  97. package/dist/cjs/test/setup-tests.js +2 -2
  98. package/dist/cjs/test/testDashboard.js +13 -11
  99. package/dist/cjs/utils/index.js +11 -9
  100. package/dist/cjs/utils/panelUtils.js +9 -3
  101. package/dist/cjs/utils/time.js +5 -3
  102. package/dist/cjs/validation/index.js +30 -0
  103. package/dist/cjs/validation/panel.js +29 -0
  104. package/dist/cjs/views/ViewDashboard/DashboardApp.js +24 -15
  105. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +64 -19
  106. package/dist/cjs/views/ViewDashboard/index.js +10 -8
  107. package/dist/cjs/views/index.js +10 -8
  108. package/dist/components/AddGroupButton/AddGroupButton.js.map +1 -1
  109. package/dist/components/AddGroupButton/index.js.map +1 -1
  110. package/dist/components/AddPanelButton/AddPanelButton.js.map +1 -1
  111. package/dist/components/AddPanelButton/index.js.map +1 -1
  112. package/dist/components/Dashboard/Dashboard.d.ts +3 -1
  113. package/dist/components/Dashboard/Dashboard.d.ts.map +1 -1
  114. package/dist/components/Dashboard/Dashboard.js +3 -2
  115. package/dist/components/Dashboard/Dashboard.js.map +1 -1
  116. package/dist/components/Dashboard/index.js.map +1 -1
  117. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js.map +1 -1
  118. package/dist/components/DashboardStickyToolbar/index.js.map +1 -1
  119. package/dist/components/DashboardToolbar/DashboardToolbar.js +1 -1
  120. package/dist/components/DashboardToolbar/DashboardToolbar.js.map +1 -1
  121. package/dist/components/DashboardToolbar/index.js.map +1 -1
  122. package/dist/components/DeletePanelDialog/DeletePanelDialog.js.map +1 -1
  123. package/dist/components/DeletePanelDialog/index.js.map +1 -1
  124. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +2 -2
  125. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js.map +1 -1
  126. package/dist/components/DeletePanelGroupDialog/index.js.map +1 -1
  127. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js.map +1 -1
  128. package/dist/components/DiscardChangesConfirmationDialog/index.js.map +1 -1
  129. package/dist/components/DownloadButton/DownloadButton.js.map +1 -1
  130. package/dist/components/DownloadButton/index.js.map +1 -1
  131. package/dist/components/EditButton/EditButton.js.map +1 -1
  132. package/dist/components/EditButton/index.js.map +1 -1
  133. package/dist/components/EditJsonButton/EditJsonButton.js.map +1 -1
  134. package/dist/components/EditJsonButton/index.js.map +1 -1
  135. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts +4 -1
  136. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts.map +1 -1
  137. package/dist/components/EditJsonDialog/EditJsonDialog.js +12 -8
  138. package/dist/components/EditJsonDialog/EditJsonDialog.js.map +1 -1
  139. package/dist/components/EditJsonDialog/index.js.map +1 -1
  140. package/dist/components/EmptyDashboard/EmptyDashboard.js.map +1 -1
  141. package/dist/components/EmptyDashboard/index.js.map +1 -1
  142. package/dist/components/GridLayout/GridContainer.js.map +1 -1
  143. package/dist/components/GridLayout/GridItemContent.d.ts +2 -0
  144. package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
  145. package/dist/components/GridLayout/GridItemContent.js +27 -8
  146. package/dist/components/GridLayout/GridItemContent.js.map +1 -1
  147. package/dist/components/GridLayout/GridLayout.d.ts +2 -0
  148. package/dist/components/GridLayout/GridLayout.d.ts.map +1 -1
  149. package/dist/components/GridLayout/GridLayout.js +3 -2
  150. package/dist/components/GridLayout/GridLayout.js.map +1 -1
  151. package/dist/components/GridLayout/GridTitle.js.map +1 -1
  152. package/dist/components/GridLayout/index.js.map +1 -1
  153. package/dist/components/Panel/Panel.d.ts +20 -0
  154. package/dist/components/Panel/Panel.d.ts.map +1 -1
  155. package/dist/components/Panel/Panel.js +8 -10
  156. package/dist/components/Panel/Panel.js.map +1 -1
  157. package/dist/components/Panel/PanelContent.js.map +1 -1
  158. package/dist/components/Panel/PanelHeader.d.ts +2 -1
  159. package/dist/components/Panel/PanelHeader.d.ts.map +1 -1
  160. package/dist/components/Panel/PanelHeader.js +7 -3
  161. package/dist/components/Panel/PanelHeader.js.map +1 -1
  162. package/dist/components/Panel/index.js.map +1 -1
  163. package/dist/components/PanelDrawer/PanelDrawer.d.ts.map +1 -1
  164. package/dist/components/PanelDrawer/PanelDrawer.js +22 -76
  165. package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -1
  166. package/dist/components/PanelDrawer/PanelEditorForm.d.ts +4 -1
  167. package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -1
  168. package/dist/components/PanelDrawer/PanelEditorForm.js +223 -138
  169. package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -1
  170. package/dist/components/PanelDrawer/PanelPreview.d.ts.map +1 -1
  171. package/dist/components/PanelDrawer/PanelPreview.js +2 -2
  172. package/dist/components/PanelDrawer/PanelPreview.js.map +1 -1
  173. package/dist/components/PanelDrawer/index.js.map +1 -1
  174. package/dist/components/PanelDrawer/usePanelEditor.js.map +1 -1
  175. package/dist/components/PanelGroupDialog/PanelGroupDialog.js.map +1 -1
  176. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.js.map +1 -1
  177. package/dist/components/PanelGroupDialog/index.js.map +1 -1
  178. package/dist/components/QuerySummaryTable/QuerySummaryTable.js +4 -4
  179. package/dist/components/QuerySummaryTable/QuerySummaryTable.js.map +1 -1
  180. package/dist/components/QuerySummaryTable/index.js.map +1 -1
  181. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +4 -4
  182. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js.map +1 -1
  183. package/dist/components/SaveChangesConfirmationDialog/index.js.map +1 -1
  184. package/dist/components/SaveDashboardButton/SaveDashboardButton.js +4 -4
  185. package/dist/components/SaveDashboardButton/SaveDashboardButton.js.map +1 -1
  186. package/dist/components/SaveDashboardButton/index.js.map +1 -1
  187. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts.map +1 -1
  188. package/dist/components/TimeRangeControls/TimeRangeControls.js +19 -1
  189. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -1
  190. package/dist/components/TimeRangeControls/index.js.map +1 -1
  191. package/dist/components/ToolbarIconButton/ToolbarIconButton.js.map +1 -1
  192. package/dist/components/ToolbarIconButton/index.js.map +1 -1
  193. package/dist/components/Variables/BuiltinVariableAccordions.d.ts +8 -0
  194. package/dist/components/Variables/BuiltinVariableAccordions.d.ts.map +1 -0
  195. package/dist/components/Variables/BuiltinVariableAccordions.js +127 -0
  196. package/dist/components/Variables/BuiltinVariableAccordions.js.map +1 -0
  197. package/dist/components/Variables/EditVariablesButton.d.ts.map +1 -1
  198. package/dist/components/Variables/EditVariablesButton.js +6 -1
  199. package/dist/components/Variables/EditVariablesButton.js.map +1 -1
  200. package/dist/components/Variables/TemplateVariable.d.ts +12 -2
  201. package/dist/components/Variables/TemplateVariable.d.ts.map +1 -1
  202. package/dist/components/Variables/TemplateVariable.js +102 -61
  203. package/dist/components/Variables/TemplateVariable.js.map +1 -1
  204. package/dist/components/Variables/VariableEditor.d.ts +9 -1
  205. package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
  206. package/dist/components/Variables/VariableEditor.js +326 -97
  207. package/dist/components/Variables/VariableEditor.js.map +1 -1
  208. package/dist/components/Variables/VariableList.d.ts +5 -0
  209. package/dist/components/Variables/VariableList.d.ts.map +1 -1
  210. package/dist/components/Variables/VariableList.js +32 -18
  211. package/dist/components/Variables/VariableList.js.map +1 -1
  212. package/dist/components/Variables/index.d.ts +1 -0
  213. package/dist/components/Variables/index.d.ts.map +1 -1
  214. package/dist/components/Variables/index.js +1 -0
  215. package/dist/components/Variables/index.js.map +1 -1
  216. package/dist/components/index.js.map +1 -1
  217. package/dist/constants/grid-layout-config.js.map +1 -1
  218. package/dist/constants/index.js.map +1 -1
  219. package/dist/constants/user-interface-text.js.map +1 -1
  220. package/dist/context/DashboardProvider/DashboardProvider.js +5 -5
  221. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
  222. package/dist/context/DashboardProvider/common.js.map +1 -1
  223. package/dist/context/DashboardProvider/dashboard-provider-api.js +2 -2
  224. package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
  225. package/dist/context/DashboardProvider/delete-panel-group-slice.js.map +1 -1
  226. package/dist/context/DashboardProvider/delete-panel-slice.js +2 -2
  227. package/dist/context/DashboardProvider/delete-panel-slice.js.map +1 -1
  228. package/dist/context/DashboardProvider/discard-changes-dialog-slice.js.map +1 -1
  229. package/dist/context/DashboardProvider/duplicate-panel-slice.js.map +1 -1
  230. package/dist/context/DashboardProvider/edit-json-dialog-slice.js.map +1 -1
  231. package/dist/context/DashboardProvider/index.js.map +1 -1
  232. package/dist/context/DashboardProvider/panel-editor-slice.d.ts +2 -1
  233. package/dist/context/DashboardProvider/panel-editor-slice.d.ts.map +1 -1
  234. package/dist/context/DashboardProvider/panel-editor-slice.js +7 -7
  235. package/dist/context/DashboardProvider/panel-editor-slice.js.map +1 -1
  236. package/dist/context/DashboardProvider/panel-group-editor-slice.js +2 -2
  237. package/dist/context/DashboardProvider/panel-group-editor-slice.js.map +1 -1
  238. package/dist/context/DashboardProvider/panel-group-slice.js +3 -3
  239. package/dist/context/DashboardProvider/panel-group-slice.js.map +1 -1
  240. package/dist/context/DashboardProvider/panel-slice.js.map +1 -1
  241. package/dist/context/DashboardProvider/save-changes-dialog-slice.js.map +1 -1
  242. package/dist/context/DatasourceStoreProvider.d.ts +14 -10
  243. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
  244. package/dist/context/DatasourceStoreProvider.js +107 -40
  245. package/dist/context/DatasourceStoreProvider.js.map +1 -1
  246. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts +48 -13
  247. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts.map +1 -1
  248. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js +165 -41
  249. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js.map +1 -1
  250. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts +9 -2
  251. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts.map +1 -1
  252. package/dist/context/TemplateVariableProvider/hydrationUtils.js +67 -12
  253. package/dist/context/TemplateVariableProvider/hydrationUtils.js.map +1 -1
  254. package/dist/context/TemplateVariableProvider/index.js.map +1 -1
  255. package/dist/context/TemplateVariableProvider/query-params.js.map +1 -1
  256. package/dist/context/TemplateVariableProvider/utils.d.ts +27 -2
  257. package/dist/context/TemplateVariableProvider/utils.d.ts.map +1 -1
  258. package/dist/context/TemplateVariableProvider/utils.js +48 -6
  259. package/dist/context/TemplateVariableProvider/utils.js.map +1 -1
  260. package/dist/context/index.js.map +1 -1
  261. package/dist/context/useDashboard.js +1 -1
  262. package/dist/context/useDashboard.js.map +1 -1
  263. package/dist/index.js.map +1 -1
  264. package/dist/stories/decorators/WithDashboard.js.map +1 -1
  265. package/dist/stories/decorators/WithDatasourceStore.js.map +1 -1
  266. package/dist/stories/decorators/WithTemplateVariables.js.map +1 -1
  267. package/dist/stories/decorators/constants.js +2 -2
  268. package/dist/stories/decorators/constants.js.map +1 -1
  269. package/dist/stories/decorators/index.js.map +1 -1
  270. package/dist/test/dashboard-provider.js.map +1 -1
  271. package/dist/test/datasource-provider.d.ts.map +1 -1
  272. package/dist/test/datasource-provider.js +5 -7
  273. package/dist/test/datasource-provider.js.map +1 -1
  274. package/dist/test/index.js.map +1 -1
  275. package/dist/test/plugin-registry.js.map +1 -1
  276. package/dist/test/render.d.ts.map +1 -1
  277. package/dist/test/render.js +8 -3
  278. package/dist/test/render.js.map +1 -1
  279. package/dist/test/setup-tests.js.map +1 -1
  280. package/dist/test/testDashboard.js +10 -10
  281. package/dist/test/testDashboard.js.map +1 -1
  282. package/dist/utils/index.js.map +1 -1
  283. package/dist/utils/panelUtils.js.map +1 -1
  284. package/dist/utils/time.js.map +1 -1
  285. package/dist/validation/index.d.ts +2 -0
  286. package/dist/validation/index.d.ts.map +1 -0
  287. package/dist/validation/index.js +15 -0
  288. package/dist/validation/index.js.map +1 -0
  289. package/dist/validation/panel.d.ts +19 -0
  290. package/dist/validation/panel.d.ts.map +1 -0
  291. package/dist/validation/panel.js +21 -0
  292. package/dist/validation/panel.js.map +1 -0
  293. package/dist/views/ViewDashboard/DashboardApp.d.ts +1 -0
  294. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
  295. package/dist/views/ViewDashboard/DashboardApp.js +11 -4
  296. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
  297. package/dist/views/ViewDashboard/ViewDashboard.d.ts +3 -1
  298. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  299. package/dist/views/ViewDashboard/ViewDashboard.js +51 -8
  300. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
  301. package/dist/views/ViewDashboard/index.js.map +1 -1
  302. package/dist/views/index.js.map +1 -1
  303. package/package.json +8 -7
@@ -21,25 +21,43 @@ function _export(target, all) {
21
21
  });
22
22
  }
23
23
  _export(exports, {
24
- useTemplateVariableValues: ()=>useTemplateVariableValues,
25
- useTemplateVariable: ()=>useTemplateVariable,
26
- useTemplateVariableActions: ()=>useTemplateVariableActions,
27
- useTemplateVariableDefinitions: ()=>useTemplateVariableDefinitions,
28
- useTemplateVariableStore: ()=>useTemplateVariableStore,
29
- TemplateVariableProvider: ()=>TemplateVariableProvider
24
+ useTemplateVariableStoreCtx: function() {
25
+ return useTemplateVariableStoreCtx;
26
+ },
27
+ useTemplateVariableValues: function() {
28
+ return useTemplateVariableValues;
29
+ },
30
+ useTemplateVariable: function() {
31
+ return useTemplateVariable;
32
+ },
33
+ useTemplateVariableActions: function() {
34
+ return useTemplateVariableActions;
35
+ },
36
+ useTemplateVariableDefinitions: function() {
37
+ return useTemplateVariableDefinitions;
38
+ },
39
+ useTemplateExternalVariableDefinitions: function() {
40
+ return useTemplateExternalVariableDefinitions;
41
+ },
42
+ useTemplateVariableStore: function() {
43
+ return useTemplateVariableStore;
44
+ },
45
+ TemplateVariableProvider: function() {
46
+ return TemplateVariableProvider;
47
+ }
30
48
  });
31
- const _jsxRuntime = require("react/jsx-runtime");
49
+ const _jsxruntime = require("react/jsx-runtime");
32
50
  const _react = require("react");
33
51
  const _zustand = require("zustand");
34
52
  const _immer = require("zustand/middleware/immer");
35
53
  const _middleware = require("zustand/middleware");
36
- const _immer1 = /*#__PURE__*/ _interopRequireDefault(require("immer"));
37
- const _pluginSystem = require("@perses-dev/plugin-system");
54
+ const _immer1 = /*#__PURE__*/ _interop_require_default(require("immer"));
55
+ const _pluginsystem = require("@perses-dev/plugin-system");
38
56
  const _core = require("@perses-dev/core");
39
57
  const _utils = require("./utils");
40
58
  const _hydrationUtils = require("./hydrationUtils");
41
- const _queryParams = require("./query-params");
42
- function _interopRequireDefault(obj) {
59
+ const _queryparams = require("./query-params");
60
+ function _interop_require_default(obj) {
43
61
  return obj && obj.__esModule ? obj : {
44
62
  default: obj
45
63
  };
@@ -54,29 +72,51 @@ function useTemplateVariableStoreCtx() {
54
72
  }
55
73
  function useTemplateVariableValues(variableNames) {
56
74
  const store = useTemplateVariableStoreCtx();
57
- const state = (0, _zustand.useStore)(store, (s)=>{
58
- const names = variableNames !== null && variableNames !== void 0 ? variableNames : Object.keys(s.variableState);
75
+ return (0, _zustand.useStore)(store, (s)=>{
59
76
  const vars = {};
77
+ // Collect values of local variables, from the variable state
78
+ const names = variableNames !== null && variableNames !== void 0 ? variableNames : s.variableDefinitions.map((value)=>value.spec.name);
60
79
  names.forEach((name)=>{
61
- const varState = s.variableState[name];
62
- if (!varState) {
80
+ const varState = s.variableState.get({
81
+ name
82
+ });
83
+ if (!varState || varState.overridden) {
63
84
  return;
64
85
  }
65
86
  vars[name] = varState;
66
87
  });
88
+ // Collect values of external variables, from the variable state
89
+ s.externalVariableDefinitions.forEach((d)=>{
90
+ const source = d.source;
91
+ d.definitions.forEach((value)=>{
92
+ const name = value.spec.name;
93
+ const varState = s.variableState.get({
94
+ name,
95
+ source
96
+ });
97
+ if (!varState || varState.overridden) {
98
+ return;
99
+ }
100
+ vars[name] = varState;
101
+ });
102
+ });
67
103
  return vars;
68
104
  }, (left, right)=>{
69
105
  return JSON.stringify(left) === JSON.stringify(right);
70
106
  });
71
- return state;
72
107
  }
73
- function useTemplateVariable(name) {
108
+ function useTemplateVariable(name, source) {
74
109
  const store = useTemplateVariableStoreCtx();
75
110
  return (0, _zustand.useStore)(store, (s)=>{
76
- const variableState = s.variableState[name];
77
- const definition = s.variableDefinitions.find((v)=>v.spec.name === name);
111
+ var _s_externalVariableDefinitions_find;
112
+ const state = s.variableState.get({
113
+ name,
114
+ source
115
+ });
116
+ const definitions = source ? (_s_externalVariableDefinitions_find = s.externalVariableDefinitions.find((v)=>v.source === source)) === null || _s_externalVariableDefinitions_find === void 0 ? void 0 : _s_externalVariableDefinitions_find.definitions : s.variableDefinitions;
117
+ const definition = (definitions || []).find((v)=>v.spec.name === name);
78
118
  return {
79
- state: variableState,
119
+ state,
80
120
  definition
81
121
  };
82
122
  });
@@ -98,13 +138,19 @@ function useTemplateVariableDefinitions() {
98
138
  const store = useTemplateVariableStoreCtx();
99
139
  return (0, _zustand.useStore)(store, (s)=>s.variableDefinitions);
100
140
  }
141
+ function useTemplateExternalVariableDefinitions() {
142
+ const store = useTemplateVariableStoreCtx();
143
+ return (0, _zustand.useStore)(store, (s)=>s.externalVariableDefinitions);
144
+ }
101
145
  function useTemplateVariableStore() {
102
146
  const store = useTemplateVariableStoreCtx();
103
147
  return (0, _zustand.useStore)(store);
104
148
  }
105
- function PluginProvider({ children }) {
149
+ function PluginProvider({ children , builtinVariables }) {
106
150
  const originalValues = useTemplateVariableValues();
107
151
  const definitions = useTemplateVariableDefinitions();
152
+ const externalDefinitions = useTemplateExternalVariableDefinitions();
153
+ const { absoluteTimeRange } = (0, _pluginsystem.useTimeRange)();
108
154
  const values = (0, _react.useMemo)(()=>{
109
155
  const contextValues = {};
110
156
  // This will loop through all the current variables values
@@ -115,14 +161,14 @@ function PluginProvider({ children }) {
115
161
  ...originalValues[name]
116
162
  };
117
163
  if (v.value === _core.DEFAULT_ALL_VALUE) {
118
- const definition = definitions.find((d)=>d.spec.name === name);
164
+ const definition = (0, _utils.findVariableDefinitionByName)(name, definitions, externalDefinitions);
119
165
  // If the variable is a list variable and has a custom all value, then use that value instead
120
- if ((definition === null || definition === void 0 ? void 0 : definition.kind) === 'ListVariable' && definition.spec.custom_all_value) {
121
- v.value = definition.spec.custom_all_value;
166
+ if ((definition === null || definition === void 0 ? void 0 : definition.kind) === 'ListVariable' && definition.spec.customAllValue) {
167
+ v.value = definition.spec.customAllValue;
122
168
  } else {
123
- var ref;
124
- var ref1;
125
- v.value = (ref1 = (ref = v.options) === null || ref === void 0 ? void 0 : ref.map((o)=>o.value)) !== null && ref1 !== void 0 ? ref1 : null;
169
+ var _v_options;
170
+ var _v_options_map;
171
+ v.value = (_v_options_map = (_v_options = v.options) === null || _v_options === void 0 ? void 0 : _v_options.map((o)=>o.value)) !== null && _v_options_map !== void 0 ? _v_options_map : null;
126
172
  }
127
173
  }
128
174
  contextValues[name] = v;
@@ -130,49 +176,133 @@ function PluginProvider({ children }) {
130
176
  return contextValues;
131
177
  }, [
132
178
  originalValues,
133
- definitions
179
+ definitions,
180
+ externalDefinitions
134
181
  ]);
135
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginSystem.TemplateVariableContext.Provider, {
182
+ const allBuiltinVariables = [
183
+ {
184
+ kind: 'BuiltinVariable',
185
+ spec: {
186
+ name: '__from',
187
+ value: ()=>absoluteTimeRange.start.valueOf().toString(),
188
+ source: 'Dashboard',
189
+ display: {
190
+ name: '__from',
191
+ description: 'Start time of the current time range in unix millisecond epoch',
192
+ hidden: true
193
+ }
194
+ }
195
+ },
196
+ {
197
+ kind: 'BuiltinVariable',
198
+ spec: {
199
+ name: '__to',
200
+ value: ()=>absoluteTimeRange.end.valueOf().toString(),
201
+ source: 'Dashboard',
202
+ display: {
203
+ name: '__to',
204
+ description: 'End time of the current time range in unix millisecond epoch',
205
+ hidden: true
206
+ }
207
+ }
208
+ },
209
+ {
210
+ kind: 'BuiltinVariable',
211
+ spec: {
212
+ name: '__range',
213
+ value: ()=>(0, _core.formatDuration)((0, _core.intervalToPrometheusDuration)(absoluteTimeRange)),
214
+ source: 'Dashboard',
215
+ display: {
216
+ name: '__range',
217
+ description: 'The range for the current dashboard in human readable format',
218
+ hidden: true
219
+ }
220
+ }
221
+ },
222
+ {
223
+ kind: 'BuiltinVariable',
224
+ spec: {
225
+ name: '__range_s',
226
+ value: ()=>((absoluteTimeRange.end.valueOf() - absoluteTimeRange.start.valueOf()) / 1000).toString(),
227
+ source: 'Dashboard',
228
+ display: {
229
+ name: '__range_s',
230
+ description: 'The range for the current dashboard in second',
231
+ hidden: true
232
+ }
233
+ }
234
+ },
235
+ {
236
+ kind: 'BuiltinVariable',
237
+ spec: {
238
+ name: '__range_ms',
239
+ value: ()=>(absoluteTimeRange.end.valueOf() - absoluteTimeRange.start.valueOf()).toString(),
240
+ source: 'Dashboard',
241
+ display: {
242
+ name: '__range_ms',
243
+ description: 'The range for the current dashboard in millisecond',
244
+ hidden: true
245
+ }
246
+ }
247
+ }
248
+ ];
249
+ builtinVariables === null || builtinVariables === void 0 ? void 0 : builtinVariables.forEach((def)=>allBuiltinVariables.push(def));
250
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_pluginsystem.BuiltinVariableContext.Provider, {
136
251
  value: {
137
- state: values
252
+ variables: allBuiltinVariables
138
253
  },
139
- children: children
254
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_pluginsystem.TemplateVariableContext.Provider, {
255
+ value: {
256
+ state: values
257
+ },
258
+ children: children
259
+ })
140
260
  });
141
261
  }
142
- function createTemplateVariableSrvStore({ initialVariableDefinitions =[] , queryParams }) {
143
- const initialParams = (0, _queryParams.getInitalValuesFromQueryParameters)(queryParams ? queryParams[0] : {});
262
+ function createTemplateVariableSrvStore({ initialVariableDefinitions =[] , externalVariableDefinitions =[] , queryParams }) {
263
+ const initialParams = (0, _queryparams.getInitalValuesFromQueryParameters)(queryParams ? queryParams[0] : {});
144
264
  const store = (0, _zustand.createStore)()((0, _middleware.devtools)((0, _immer.immer)((set, get)=>{
145
265
  return {
146
- variableState: (0, _hydrationUtils.hydrateTemplateVariableStates)(initialVariableDefinitions, initialParams),
266
+ variableState: (0, _hydrationUtils.hydrateTemplateVariableStates)(initialVariableDefinitions, initialParams, externalVariableDefinitions),
147
267
  variableDefinitions: initialVariableDefinitions,
268
+ externalVariableDefinitions: externalVariableDefinitions,
148
269
  setVariableDefinitions (definitions) {
149
270
  set((state)=>{
150
271
  state.variableDefinitions = definitions;
151
- state.variableState = (0, _hydrationUtils.hydrateTemplateVariableStates)(definitions, initialParams);
272
+ state.variableState = (0, _hydrationUtils.hydrateTemplateVariableStates)(definitions, initialParams, externalVariableDefinitions);
152
273
  }, false, '[Variables] setVariableDefinitions' // Used for action name in Redux devtools
153
274
  );
154
275
  },
155
- setVariableOptions (name, options) {
276
+ setVariableOptions (name, options, source) {
156
277
  set((state)=>{
157
- const varState = state.variableState[name];
278
+ const varState = state.variableState.get({
279
+ name,
280
+ source
281
+ });
158
282
  if (!varState) {
159
283
  return;
160
284
  }
161
285
  varState.options = options;
162
286
  }, false, '[Variables] setVariableOptions');
163
287
  },
164
- setVariableLoading (name, loading) {
288
+ setVariableLoading (name, loading, source) {
165
289
  set((state)=>{
166
- const varState = state.variableState[name];
290
+ const varState = state.variableState.get({
291
+ name,
292
+ source
293
+ });
167
294
  if (!varState) {
168
295
  return;
169
296
  }
170
297
  varState.loading = loading;
171
298
  }, false, '[Variables] setVariableLoading');
172
299
  },
173
- setVariableValue: (name, value)=>set((state)=>{
300
+ setVariableValue: (name, value, source)=>set((state)=>{
174
301
  let val = value;
175
- const varState = state.variableState[name];
302
+ const varState = state.variableState.get({
303
+ name,
304
+ source
305
+ });
176
306
  if (!varState) {
177
307
  return;
178
308
  }
@@ -187,7 +317,7 @@ function createTemplateVariableSrvStore({ initialVariableDefinitions =[] , query
187
317
  if (queryParams) {
188
318
  const setQueryParams = queryParams[1];
189
319
  setQueryParams({
190
- [(0, _queryParams.getURLQueryParamName)(name)]: val
320
+ [(0, _queryparams.getURLQueryParamName)(name)]: val
191
321
  });
192
322
  }
193
323
  varState.value = val;
@@ -197,20 +327,25 @@ function createTemplateVariableSrvStore({ initialVariableDefinitions =[] , query
197
327
  const variableState = get().variableState;
198
328
  const updatedVariables = (0, _immer1.default)(variableDefinitions, (draft)=>{
199
329
  draft.forEach((variable, index)=>{
330
+ const name = variable.spec.name;
200
331
  if (variable.kind === 'ListVariable') {
201
- const currentVariable = variableState[variable.spec.name];
332
+ const currentVariable = variableState.get({
333
+ name
334
+ });
202
335
  if ((currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== undefined) {
203
336
  draft[index] = {
204
337
  kind: 'ListVariable',
205
338
  spec: (0, _immer1.default)(variable.spec, (specDraft)=>{
206
- specDraft.default_value = currentVariable.value;
339
+ specDraft.defaultValue = currentVariable.value;
207
340
  })
208
341
  };
209
342
  }
210
343
  } else if (variable.kind === 'TextVariable') {
211
- const currentVariable1 = variableState[variable.spec.name];
212
- const currentVariableValue = typeof (currentVariable1 === null || currentVariable1 === void 0 ? void 0 : currentVariable1.value) === 'string' ? currentVariable1.value : '';
213
- if ((currentVariable1 === null || currentVariable1 === void 0 ? void 0 : currentVariable1.value) !== undefined) {
344
+ const currentVariable = variableState.get({
345
+ name
346
+ });
347
+ const currentVariableValue = typeof (currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) === 'string' ? currentVariable.value : '';
348
+ if ((currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== undefined) {
214
349
  draft[index] = {
215
350
  kind: 'TextVariable',
216
351
  spec: (0, _immer1.default)(variable.spec, (specDraft)=>{
@@ -233,15 +368,18 @@ function createTemplateVariableSrvStore({ initialVariableDefinitions =[] , query
233
368
  })));
234
369
  return store;
235
370
  }
236
- function TemplateVariableProvider({ children , initialVariableDefinitions =[] }) {
237
- const queryParams = (0, _queryParams.useVariableQueryParams)(initialVariableDefinitions);
371
+ function TemplateVariableProvider({ children , initialVariableDefinitions =[] , externalVariableDefinitions =[] , builtinVariables =[] }) {
372
+ const allVariableDefs = (0, _utils.mergeVariableDefinitions)(initialVariableDefinitions, externalVariableDefinitions);
373
+ const queryParams = (0, _queryparams.useVariableQueryParams)(allVariableDefs);
238
374
  const [store] = (0, _react.useState)(createTemplateVariableSrvStore({
239
375
  initialVariableDefinitions,
376
+ externalVariableDefinitions,
240
377
  queryParams
241
378
  }));
242
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(TemplateVariableStoreContext.Provider, {
379
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(TemplateVariableStoreContext.Provider, {
243
380
  value: store,
244
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(PluginProvider, {
381
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(PluginProvider, {
382
+ builtinVariables: builtinVariables,
245
383
  children: children
246
384
  })
247
385
  });
@@ -16,14 +16,19 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "hydrateTemplateVariableStates", {
18
18
  enumerable: true,
19
- get: ()=>hydrateTemplateVariableStates
19
+ get: function() {
20
+ return hydrateTemplateVariableStates;
21
+ }
20
22
  });
21
23
  const _core = require("@perses-dev/core");
24
+ const _pluginsystem = require("@perses-dev/plugin-system");
22
25
  // TODO: move to TemplateVariableProvider/utils.ts
23
26
  function hydrateTemplateVariableState(variable, initialValue) {
24
27
  const varState = {
25
28
  value: null,
26
- loading: false
29
+ loading: false,
30
+ overriding: false,
31
+ overridden: false
27
32
  };
28
33
  switch(variable.kind){
29
34
  case 'TextVariable':
@@ -31,15 +36,15 @@ function hydrateTemplateVariableState(variable, initialValue) {
31
36
  break;
32
37
  case 'ListVariable':
33
38
  varState.options = [];
34
- var ref;
35
- varState.value = (ref = initialValue !== null && initialValue !== void 0 ? initialValue : variable.spec.default_value) !== null && ref !== void 0 ? ref : null;
36
- // TODO: smarter fallbacks for default_value when allow_all_value is true
39
+ var _ref;
40
+ varState.value = (_ref = initialValue !== null && initialValue !== void 0 ? initialValue : variable.spec.defaultValue) !== null && _ref !== void 0 ? _ref : null;
41
+ // TODO: smarter fallbacks for defaultValue when allowAllValue is true
37
42
  if (varState.options.length > 0 && !varState.value) {
38
- var ref1;
39
- var ref2;
40
- const firstOptionValue = (ref2 = (ref1 = varState.options[0]) === null || ref1 === void 0 ? void 0 : ref1.value) !== null && ref2 !== void 0 ? ref2 : null;
43
+ var _varState_options_;
44
+ var _varState_options__value;
45
+ const firstOptionValue = (_varState_options__value = (_varState_options_ = varState.options[0]) === null || _varState_options_ === void 0 ? void 0 : _varState_options_.value) !== null && _varState_options__value !== void 0 ? _varState_options__value : null;
41
46
  if (firstOptionValue !== null) {
42
- varState.value = variable.spec.allow_multiple ? [
47
+ varState.value = variable.spec.allowMultiple ? [
43
48
  firstOptionValue
44
49
  ] : firstOptionValue;
45
50
  }
@@ -58,13 +63,60 @@ function hydrateTemplateVariableState(variable, initialValue) {
58
63
  }
59
64
  return varState;
60
65
  }
61
- function hydrateTemplateVariableStates(definitions, initialValues) {
62
- const state = {};
63
- definitions.forEach((v)=>{
66
+ function hydrateTemplateVariableStates(localDefinitions, initialValues, externalDefinitions = []) {
67
+ const state = new _pluginsystem.VariableStoreStateMap();
68
+ // Collect the names used by local definitions
69
+ let overridingNames = {};
70
+ localDefinitions.forEach((v)=>{
71
+ overridingNames[v.spec.name] = true;
72
+ }, {});
73
+ // Then populate the external variables state,
74
+ // taking care of well flagging each name as used, so the overridden state can be filled accordingly.
75
+ const overriddenNames = {};
76
+ externalDefinitions.forEach((externalDef)=>{
77
+ const source = externalDef.source;
78
+ externalDef.definitions.forEach((v)=>{
79
+ const name = v.spec.name;
80
+ const param = initialValues[name];
81
+ const initialValue = param ? param : null;
82
+ state.set({
83
+ source,
84
+ name
85
+ }, {
86
+ ...hydrateTemplateVariableState(v, initialValue),
87
+ overridden: !!overridingNames[name]
88
+ });
89
+ overridingNames[name] = true;
90
+ overriddenNames[v.spec.name] = true;
91
+ });
92
+ }, {});
93
+ // Then populate the local variables state,
94
+ // taking care the overriding state is filled according to the names used in external variables.
95
+ localDefinitions.forEach((v)=>{
64
96
  const name = v.spec.name;
65
97
  const param = initialValues[name];
66
98
  const initialValue = param ? param : null;
67
- state[name] = hydrateTemplateVariableState(v, initialValue);
99
+ state.set({
100
+ name
101
+ }, {
102
+ ...hydrateTemplateVariableState(v, initialValue),
103
+ overriding: !!overriddenNames[name]
104
+ });
105
+ });
106
+ overridingNames = {};
107
+ externalDefinitions.slice().reverse().forEach((externalDef)=>{
108
+ const source = externalDef.source;
109
+ externalDef.definitions.forEach((v)=>{
110
+ const name = v.spec.name;
111
+ const value = state.get({
112
+ source,
113
+ name
114
+ });
115
+ if (value) {
116
+ value.overriding = !!overridingNames[name];
117
+ }
118
+ overridingNames[name] = true;
119
+ });
68
120
  });
69
121
  return state;
70
122
  }
@@ -14,15 +14,17 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- _exportStar(require("./TemplateVariableProvider"), exports);
18
- function _exportStar(from, to) {
17
+ _export_star(require("./TemplateVariableProvider"), exports);
18
+ function _export_star(from, to) {
19
19
  Object.keys(from).forEach(function(k) {
20
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
21
- enumerable: true,
22
- get: function() {
23
- return from[k];
24
- }
25
- });
20
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
21
+ Object.defineProperty(to, k, {
22
+ enumerable: true,
23
+ get: function() {
24
+ return from[k];
25
+ }
26
+ });
27
+ }
26
28
  });
27
29
  return from;
28
30
  }
@@ -21,13 +21,23 @@ function _export(target, all) {
21
21
  });
22
22
  }
23
23
  _export(exports, {
24
- getURLQueryParamName: ()=>getURLQueryParamName,
25
- encodeVariableValue: ()=>encodeVariableValue,
26
- decodeVariableValue: ()=>decodeVariableValue,
27
- useVariableQueryParams: ()=>useVariableQueryParams,
28
- getInitalValuesFromQueryParameters: ()=>getInitalValuesFromQueryParameters
24
+ getURLQueryParamName: function() {
25
+ return getURLQueryParamName;
26
+ },
27
+ encodeVariableValue: function() {
28
+ return encodeVariableValue;
29
+ },
30
+ decodeVariableValue: function() {
31
+ return decodeVariableValue;
32
+ },
33
+ useVariableQueryParams: function() {
34
+ return useVariableQueryParams;
35
+ },
36
+ getInitalValuesFromQueryParameters: function() {
37
+ return getInitalValuesFromQueryParameters;
38
+ }
29
39
  });
30
- const _useQueryParams = require("use-query-params");
40
+ const _usequeryparams = require("use-query-params");
31
41
  const variableQueryParameterPrefix = 'var-';
32
42
  function getURLQueryParamName(name) {
33
43
  return `${variableQueryParameterPrefix}${name}`;
@@ -63,7 +73,7 @@ function useVariableQueryParams(defs) {
63
73
  const name = getURLQueryParamName(def.spec.name);
64
74
  config[name] = VariableValueParam;
65
75
  });
66
- return (0, _useQueryParams.useQueryParams)(config, {
76
+ return (0, _usequeryparams.useQueryParams)(config, {
67
77
  updateType: 'replaceIn'
68
78
  });
69
79
  }
@@ -14,25 +14,46 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- Object.defineProperty(exports, "checkSavedDefaultVariableStatus", {
18
- enumerable: true,
19
- get: ()=>checkSavedDefaultVariableStatus
17
+ function _export(target, all) {
18
+ for(var name in all)Object.defineProperty(target, name, {
19
+ enumerable: true,
20
+ get: all[name]
21
+ });
22
+ }
23
+ _export(exports, {
24
+ checkSavedDefaultVariableStatus: function() {
25
+ return checkSavedDefaultVariableStatus;
26
+ },
27
+ mergeVariableDefinitions: function() {
28
+ return mergeVariableDefinitions;
29
+ },
30
+ findVariableDefinitionByName: function() {
31
+ return findVariableDefinitionByName;
32
+ },
33
+ forEachVariableDefinition: function() {
34
+ return forEachVariableDefinition;
35
+ }
20
36
  });
21
37
  function checkSavedDefaultVariableStatus(definitions, varState) {
22
38
  let isSavedVariableModified = false;
23
39
  const modifiedVariableNames = [];
24
40
  for (const savedVariable of definitions){
41
+ const name = savedVariable.spec.name;
25
42
  if (savedVariable.kind === 'ListVariable') {
26
- const currentVariable = varState[savedVariable.spec.name];
27
- if ((currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== null && (currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== savedVariable.spec.default_value) {
28
- modifiedVariableNames.push(savedVariable.spec.name);
43
+ const currentVariable = varState.get({
44
+ name
45
+ });
46
+ if ((currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== null && (currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== savedVariable.spec.defaultValue) {
47
+ modifiedVariableNames.push(name);
29
48
  isSavedVariableModified = true;
30
49
  }
31
50
  } else if (savedVariable.kind === 'TextVariable') {
32
- const currentVariable1 = varState[savedVariable.spec.name];
33
- const currentVariableValue = typeof (currentVariable1 === null || currentVariable1 === void 0 ? void 0 : currentVariable1.value) === 'string' ? currentVariable1.value : '';
51
+ const currentVariable = varState.get({
52
+ name
53
+ });
54
+ const currentVariableValue = typeof (currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) === 'string' ? currentVariable.value : '';
34
55
  if (savedVariable.spec.value !== currentVariableValue) {
35
- modifiedVariableNames.push(savedVariable.spec.name);
56
+ modifiedVariableNames.push(name);
36
57
  isSavedVariableModified = true;
37
58
  }
38
59
  }
@@ -42,3 +63,22 @@ function checkSavedDefaultVariableStatus(definitions, varState) {
42
63
  modifiedVariableNames
43
64
  };
44
65
  }
66
+ function mergeVariableDefinitions(locals, externals) {
67
+ const pushed = {};
68
+ const result = [];
69
+ // Append the value only if it's not already appended
70
+ forEachVariableDefinition(locals, externals, (value, name)=>{
71
+ if (!pushed[name]) {
72
+ result.push(value);
73
+ pushed[name] = true;
74
+ }
75
+ });
76
+ return result;
77
+ }
78
+ function findVariableDefinitionByName(name, localDefinitions, externalDefinitions) {
79
+ return mergeVariableDefinitions(localDefinitions, externalDefinitions).find((d)=>d.spec.name === name);
80
+ }
81
+ function forEachVariableDefinition(locals, externals, callbackFn) {
82
+ locals.forEach((v)=>callbackFn(v, v.spec.name));
83
+ externals.forEach((ext)=>ext.definitions.forEach((v)=>callbackFn(v, v.spec.name, ext.source)));
84
+ }
@@ -14,18 +14,20 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- _exportStar(require("./DashboardProvider"), exports);
18
- _exportStar(require("./DatasourceStoreProvider"), exports);
19
- _exportStar(require("./TemplateVariableProvider"), exports);
20
- _exportStar(require("./useDashboard"), exports);
21
- function _exportStar(from, to) {
17
+ _export_star(require("./DashboardProvider"), exports);
18
+ _export_star(require("./DatasourceStoreProvider"), exports);
19
+ _export_star(require("./TemplateVariableProvider"), exports);
20
+ _export_star(require("./useDashboard"), exports);
21
+ function _export_star(from, to) {
22
22
  Object.keys(from).forEach(function(k) {
23
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
24
- enumerable: true,
25
- get: function() {
26
- return from[k];
27
- }
28
- });
23
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
24
+ Object.defineProperty(to, k, {
25
+ enumerable: true,
26
+ get: function() {
27
+ return from[k];
28
+ }
29
+ });
30
+ }
29
31
  });
30
32
  return from;
31
33
  }