@perses-dev/dashboards 0.0.0-snapshot-panel-extra-content-3-17f9c42 → 0.0.0-snapshot-scatterplot-fix-imports-95e1b59

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 (411) hide show
  1. package/dist/cjs/components/AddGroupButton/AddGroupButton.js +11 -8
  2. package/dist/cjs/components/AddGroupButton/index.js +10 -8
  3. package/dist/cjs/components/AddPanelButton/AddPanelButton.js +12 -13
  4. package/dist/cjs/components/AddPanelButton/index.js +10 -8
  5. package/dist/cjs/components/Dashboard/Dashboard.js +12 -10
  6. package/dist/cjs/components/Dashboard/index.js +10 -8
  7. package/dist/cjs/components/DashboardStickyToolbar/DashboardStickyToolbar.js +53 -22
  8. package/dist/cjs/components/DashboardStickyToolbar/index.js +10 -8
  9. package/dist/cjs/components/DashboardToolbar/DashboardToolbar.js +82 -103
  10. package/dist/cjs/components/DashboardToolbar/index.js +10 -8
  11. package/dist/cjs/components/Datasources/DatasourceEditor.js +236 -0
  12. package/dist/cjs/components/Datasources/EditDatasourcesButton.js +112 -0
  13. package/dist/cjs/components/{ToolbarIconButton → Datasources}/index.js +11 -8
  14. package/dist/cjs/components/DeletePanelDialog/DeletePanelDialog.js +16 -14
  15. package/dist/cjs/components/DeletePanelDialog/index.js +10 -8
  16. package/dist/cjs/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +18 -16
  17. package/dist/cjs/components/DeletePanelGroupDialog/index.js +10 -8
  18. package/dist/cjs/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +6 -4
  19. package/dist/cjs/components/DiscardChangesConfirmationDialog/index.js +10 -8
  20. package/dist/cjs/components/DownloadButton/DownloadButton.js +13 -12
  21. package/dist/cjs/components/DownloadButton/index.js +10 -8
  22. package/dist/cjs/components/EditButton/EditButton.js +9 -7
  23. package/dist/cjs/components/EditButton/index.js +10 -8
  24. package/dist/cjs/components/EditJsonButton/EditJsonButton.js +15 -12
  25. package/dist/cjs/components/EditJsonButton/index.js +10 -8
  26. package/dist/cjs/components/EditJsonDialog/EditJsonDialog.js +54 -25
  27. package/dist/cjs/components/EditJsonDialog/index.js +10 -8
  28. package/dist/cjs/components/EmptyDashboard/EmptyDashboard.js +21 -19
  29. package/dist/cjs/components/EmptyDashboard/index.js +10 -8
  30. package/dist/cjs/components/GridLayout/GridContainer.js +6 -4
  31. package/dist/cjs/components/GridLayout/GridItemContent.js +37 -19
  32. package/dist/cjs/components/GridLayout/GridLayout.js +21 -19
  33. package/dist/cjs/components/GridLayout/GridTitle.js +40 -39
  34. package/dist/cjs/components/GridLayout/index.js +13 -11
  35. package/dist/cjs/components/Panel/Panel.js +19 -23
  36. package/dist/cjs/components/Panel/PanelContent.js +11 -8
  37. package/dist/cjs/components/Panel/PanelHeader.js +35 -33
  38. package/dist/cjs/components/Panel/index.js +10 -8
  39. package/dist/cjs/components/PanelDrawer/PanelDrawer.js +25 -77
  40. package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +237 -144
  41. package/dist/cjs/components/PanelDrawer/PanelPreview.js +13 -12
  42. package/dist/cjs/components/PanelDrawer/index.js +11 -8
  43. package/dist/cjs/components/PanelDrawer/usePanelEditor.js +5 -3
  44. package/dist/cjs/components/PanelGroupDialog/PanelGroupDialog.js +18 -16
  45. package/dist/cjs/components/PanelGroupDialog/PanelGroupEditorForm.js +16 -12
  46. package/dist/cjs/components/PanelGroupDialog/index.js +10 -8
  47. package/dist/cjs/components/QuerySummaryTable/QuerySummaryTable.js +48 -46
  48. package/dist/cjs/components/QuerySummaryTable/index.js +10 -8
  49. package/dist/cjs/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +26 -24
  50. package/dist/cjs/components/SaveChangesConfirmationDialog/index.js +10 -8
  51. package/dist/cjs/components/SaveDashboardButton/SaveDashboardButton.js +14 -14
  52. package/dist/cjs/components/SaveDashboardButton/index.js +10 -8
  53. package/dist/cjs/components/Variables/BuiltinVariableAccordions.js +141 -0
  54. package/dist/cjs/components/Variables/EditVariablesButton.js +19 -17
  55. package/dist/cjs/components/Variables/TemplateVariable.js +261 -107
  56. package/dist/cjs/components/Variables/VariableEditor.js +282 -207
  57. package/dist/cjs/components/Variables/VariableList.js +24 -22
  58. package/dist/cjs/components/Variables/index.js +14 -11
  59. package/dist/cjs/components/index.js +30 -29
  60. package/dist/cjs/constants/grid-layout-config.js +6 -2
  61. package/dist/cjs/constants/index.js +12 -9
  62. package/dist/cjs/constants/styles.js +42 -0
  63. package/dist/cjs/constants/user-interface-text.js +8 -3
  64. package/dist/cjs/context/DashboardProvider/DashboardProvider.js +48 -35
  65. package/dist/cjs/context/DashboardProvider/common.js +6 -2
  66. package/dist/cjs/context/DashboardProvider/dashboard-provider-api.js +81 -49
  67. package/dist/cjs/context/DashboardProvider/delete-panel-group-slice.js +4 -2
  68. package/dist/cjs/context/DashboardProvider/delete-panel-slice.js +8 -6
  69. package/dist/cjs/context/DashboardProvider/discard-changes-dialog-slice.js +3 -1
  70. package/dist/cjs/context/DashboardProvider/duplicate-panel-slice.js +4 -2
  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 +17 -17
  74. package/dist/cjs/context/DashboardProvider/panel-group-editor-slice.js +8 -6
  75. package/dist/cjs/context/DashboardProvider/panel-group-slice.js +16 -8
  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 +177 -50
  79. package/dist/cjs/context/TemplateVariableProvider/TemplateVariableProvider.js +150 -39
  80. package/dist/cjs/context/TemplateVariableProvider/hydrationUtils.js +12 -10
  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 +15 -7
  84. package/dist/cjs/context/index.js +13 -11
  85. package/dist/cjs/context/useDashboard.js +30 -11
  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 +28 -21
  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 +10 -9
  100. package/dist/cjs/utils/panelUtils.js +11 -5
  101. package/dist/cjs/{components/TimeRangeControls → validation}/index.js +10 -8
  102. package/dist/cjs/{utils/time.js → validation/panel.js} +11 -9
  103. package/dist/cjs/views/ViewDashboard/DashboardApp.js +32 -18
  104. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +64 -21
  105. package/dist/cjs/views/ViewDashboard/index.js +10 -8
  106. package/dist/cjs/views/index.js +10 -8
  107. package/dist/components/AddGroupButton/AddGroupButton.d.ts +1 -2
  108. package/dist/components/AddGroupButton/AddGroupButton.d.ts.map +1 -1
  109. package/dist/components/AddGroupButton/AddGroupButton.js +3 -2
  110. package/dist/components/AddGroupButton/AddGroupButton.js.map +1 -1
  111. package/dist/components/AddGroupButton/index.js.map +1 -1
  112. package/dist/components/AddPanelButton/AddPanelButton.d.ts +1 -2
  113. package/dist/components/AddPanelButton/AddPanelButton.d.ts.map +1 -1
  114. package/dist/components/AddPanelButton/AddPanelButton.js +4 -7
  115. package/dist/components/AddPanelButton/AddPanelButton.js.map +1 -1
  116. package/dist/components/AddPanelButton/index.js.map +1 -1
  117. package/dist/components/Dashboard/Dashboard.d.ts +2 -3
  118. package/dist/components/Dashboard/Dashboard.d.ts.map +1 -1
  119. package/dist/components/Dashboard/Dashboard.js +1 -1
  120. package/dist/components/Dashboard/Dashboard.js.map +1 -1
  121. package/dist/components/Dashboard/index.js.map +1 -1
  122. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.d.ts +1 -2
  123. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.d.ts.map +1 -1
  124. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js +38 -9
  125. package/dist/components/DashboardStickyToolbar/DashboardStickyToolbar.js.map +1 -1
  126. package/dist/components/DashboardStickyToolbar/index.js.map +1 -1
  127. package/dist/components/DashboardToolbar/DashboardToolbar.d.ts +1 -1
  128. package/dist/components/DashboardToolbar/DashboardToolbar.d.ts.map +1 -1
  129. package/dist/components/DashboardToolbar/DashboardToolbar.js +63 -86
  130. package/dist/components/DashboardToolbar/DashboardToolbar.js.map +1 -1
  131. package/dist/components/DashboardToolbar/index.js.map +1 -1
  132. package/dist/components/Datasources/DatasourceEditor.d.ts +7 -0
  133. package/dist/components/Datasources/DatasourceEditor.d.ts.map +1 -0
  134. package/dist/components/Datasources/DatasourceEditor.js +223 -0
  135. package/dist/components/Datasources/DatasourceEditor.js.map +1 -0
  136. package/dist/components/Datasources/EditDatasourcesButton.d.ts +2 -0
  137. package/dist/components/Datasources/EditDatasourcesButton.d.ts.map +1 -0
  138. package/dist/components/Datasources/EditDatasourcesButton.js +99 -0
  139. package/dist/components/Datasources/EditDatasourcesButton.js.map +1 -0
  140. package/dist/components/Datasources/index.d.ts +3 -0
  141. package/dist/components/Datasources/index.d.ts.map +1 -0
  142. package/dist/components/{TimeRangeControls → Datasources}/index.js +2 -1
  143. package/dist/components/Datasources/index.js.map +1 -0
  144. package/dist/components/DeletePanelDialog/DeletePanelDialog.d.ts +1 -2
  145. package/dist/components/DeletePanelDialog/DeletePanelDialog.d.ts.map +1 -1
  146. package/dist/components/DeletePanelDialog/DeletePanelDialog.js +4 -4
  147. package/dist/components/DeletePanelDialog/DeletePanelDialog.js.map +1 -1
  148. package/dist/components/DeletePanelDialog/index.js.map +1 -1
  149. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.d.ts +1 -2
  150. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.d.ts.map +1 -1
  151. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +3 -3
  152. package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js.map +1 -1
  153. package/dist/components/DeletePanelGroupDialog/index.js.map +1 -1
  154. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.d.ts +1 -2
  155. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.d.ts.map +1 -1
  156. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +1 -1
  157. package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js.map +1 -1
  158. package/dist/components/DiscardChangesConfirmationDialog/index.js.map +1 -1
  159. package/dist/components/DownloadButton/DownloadButton.d.ts +1 -2
  160. package/dist/components/DownloadButton/DownloadButton.d.ts.map +1 -1
  161. package/dist/components/DownloadButton/DownloadButton.js +3 -4
  162. package/dist/components/DownloadButton/DownloadButton.js.map +1 -1
  163. package/dist/components/DownloadButton/index.js.map +1 -1
  164. package/dist/components/EditButton/EditButton.d.ts +1 -2
  165. package/dist/components/EditButton/EditButton.d.ts.map +1 -1
  166. package/dist/components/EditButton/EditButton.js +1 -1
  167. package/dist/components/EditButton/EditButton.js.map +1 -1
  168. package/dist/components/EditButton/index.js.map +1 -1
  169. package/dist/components/EditJsonButton/EditJsonButton.d.ts +4 -2
  170. package/dist/components/EditJsonButton/EditJsonButton.d.ts.map +1 -1
  171. package/dist/components/EditJsonButton/EditJsonButton.js +7 -6
  172. package/dist/components/EditJsonButton/EditJsonButton.js.map +1 -1
  173. package/dist/components/EditJsonButton/index.js.map +1 -1
  174. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts +5 -2
  175. package/dist/components/EditJsonDialog/EditJsonDialog.d.ts.map +1 -1
  176. package/dist/components/EditJsonDialog/EditJsonDialog.js +43 -16
  177. package/dist/components/EditJsonDialog/EditJsonDialog.js.map +1 -1
  178. package/dist/components/EditJsonDialog/index.js.map +1 -1
  179. package/dist/components/EmptyDashboard/EmptyDashboard.d.ts +1 -1
  180. package/dist/components/EmptyDashboard/EmptyDashboard.d.ts.map +1 -1
  181. package/dist/components/EmptyDashboard/EmptyDashboard.js +3 -3
  182. package/dist/components/EmptyDashboard/EmptyDashboard.js.map +1 -1
  183. package/dist/components/EmptyDashboard/index.js.map +1 -1
  184. package/dist/components/GridLayout/GridContainer.d.ts +1 -1
  185. package/dist/components/GridLayout/GridContainer.d.ts.map +1 -1
  186. package/dist/components/GridLayout/GridContainer.js +1 -1
  187. package/dist/components/GridLayout/GridContainer.js.map +1 -1
  188. package/dist/components/GridLayout/GridItemContent.d.ts +1 -2
  189. package/dist/components/GridLayout/GridItemContent.d.ts.map +1 -1
  190. package/dist/components/GridLayout/GridItemContent.js +31 -15
  191. package/dist/components/GridLayout/GridItemContent.js.map +1 -1
  192. package/dist/components/GridLayout/GridLayout.d.ts +1 -2
  193. package/dist/components/GridLayout/GridLayout.d.ts.map +1 -1
  194. package/dist/components/GridLayout/GridLayout.js +6 -6
  195. package/dist/components/GridLayout/GridLayout.js.map +1 -1
  196. package/dist/components/GridLayout/GridTitle.d.ts +1 -2
  197. package/dist/components/GridLayout/GridTitle.d.ts.map +1 -1
  198. package/dist/components/GridLayout/GridTitle.js +5 -6
  199. package/dist/components/GridLayout/GridTitle.js.map +1 -1
  200. package/dist/components/GridLayout/index.js.map +1 -1
  201. package/dist/components/Panel/Panel.d.ts +2 -2
  202. package/dist/components/Panel/Panel.d.ts.map +1 -1
  203. package/dist/components/Panel/Panel.js +7 -13
  204. package/dist/components/Panel/Panel.js.map +1 -1
  205. package/dist/components/Panel/PanelContent.d.ts +3 -3
  206. package/dist/components/Panel/PanelContent.d.ts.map +1 -1
  207. package/dist/components/Panel/PanelContent.js +4 -3
  208. package/dist/components/Panel/PanelContent.js.map +1 -1
  209. package/dist/components/Panel/PanelHeader.d.ts +2 -2
  210. package/dist/components/Panel/PanelHeader.d.ts.map +1 -1
  211. package/dist/components/Panel/PanelHeader.js +2 -2
  212. package/dist/components/Panel/PanelHeader.js.map +1 -1
  213. package/dist/components/Panel/index.js.map +1 -1
  214. package/dist/components/PanelDrawer/PanelDrawer.d.ts +1 -2
  215. package/dist/components/PanelDrawer/PanelDrawer.d.ts.map +1 -1
  216. package/dist/components/PanelDrawer/PanelDrawer.js +22 -76
  217. package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -1
  218. package/dist/components/PanelDrawer/PanelEditorForm.d.ts +5 -3
  219. package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -1
  220. package/dist/components/PanelDrawer/PanelEditorForm.js +231 -142
  221. package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -1
  222. package/dist/components/PanelDrawer/PanelPreview.d.ts +1 -2
  223. package/dist/components/PanelDrawer/PanelPreview.d.ts.map +1 -1
  224. package/dist/components/PanelDrawer/PanelPreview.js +4 -5
  225. package/dist/components/PanelDrawer/PanelPreview.js.map +1 -1
  226. package/dist/components/PanelDrawer/index.d.ts +1 -0
  227. package/dist/components/PanelDrawer/index.d.ts.map +1 -1
  228. package/dist/components/PanelDrawer/index.js +1 -0
  229. package/dist/components/PanelDrawer/index.js.map +1 -1
  230. package/dist/components/PanelDrawer/usePanelEditor.js +2 -2
  231. package/dist/components/PanelDrawer/usePanelEditor.js.map +1 -1
  232. package/dist/components/PanelGroupDialog/PanelGroupDialog.d.ts +1 -2
  233. package/dist/components/PanelGroupDialog/PanelGroupDialog.d.ts.map +1 -1
  234. package/dist/components/PanelGroupDialog/PanelGroupDialog.js.map +1 -1
  235. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.d.ts +1 -2
  236. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.d.ts.map +1 -1
  237. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.js +1 -1
  238. package/dist/components/PanelGroupDialog/PanelGroupEditorForm.js.map +1 -1
  239. package/dist/components/PanelGroupDialog/index.js.map +1 -1
  240. package/dist/components/QuerySummaryTable/QuerySummaryTable.d.ts +1 -2
  241. package/dist/components/QuerySummaryTable/QuerySummaryTable.d.ts.map +1 -1
  242. package/dist/components/QuerySummaryTable/QuerySummaryTable.js +8 -8
  243. package/dist/components/QuerySummaryTable/QuerySummaryTable.js.map +1 -1
  244. package/dist/components/QuerySummaryTable/index.js.map +1 -1
  245. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.d.ts +1 -2
  246. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.d.ts.map +1 -1
  247. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js +8 -8
  248. package/dist/components/SaveChangesConfirmationDialog/SaveChangesConfirmationDialog.js.map +1 -1
  249. package/dist/components/SaveChangesConfirmationDialog/index.js.map +1 -1
  250. package/dist/components/SaveDashboardButton/SaveDashboardButton.d.ts +1 -2
  251. package/dist/components/SaveDashboardButton/SaveDashboardButton.d.ts.map +1 -1
  252. package/dist/components/SaveDashboardButton/SaveDashboardButton.js +8 -10
  253. package/dist/components/SaveDashboardButton/SaveDashboardButton.js.map +1 -1
  254. package/dist/components/SaveDashboardButton/index.js.map +1 -1
  255. package/dist/components/Variables/BuiltinVariableAccordions.d.ts +7 -0
  256. package/dist/components/Variables/BuiltinVariableAccordions.d.ts.map +1 -0
  257. package/dist/components/Variables/BuiltinVariableAccordions.js +128 -0
  258. package/dist/components/Variables/BuiltinVariableAccordions.js.map +1 -0
  259. package/dist/components/Variables/EditVariablesButton.d.ts +1 -2
  260. package/dist/components/Variables/EditVariablesButton.d.ts.map +1 -1
  261. package/dist/components/Variables/EditVariablesButton.js +7 -7
  262. package/dist/components/Variables/EditVariablesButton.js.map +1 -1
  263. package/dist/components/Variables/TemplateVariable.d.ts +12 -4
  264. package/dist/components/Variables/TemplateVariable.d.ts.map +1 -1
  265. package/dist/components/Variables/TemplateVariable.js +244 -100
  266. package/dist/components/Variables/TemplateVariable.js.map +1 -1
  267. package/dist/components/Variables/VariableEditor.d.ts +4 -4
  268. package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
  269. package/dist/components/Variables/VariableEditor.js +232 -161
  270. package/dist/components/Variables/VariableEditor.js.map +1 -1
  271. package/dist/components/Variables/VariableList.d.ts +2 -3
  272. package/dist/components/Variables/VariableList.d.ts.map +1 -1
  273. package/dist/components/Variables/VariableList.js +11 -13
  274. package/dist/components/Variables/VariableList.js.map +1 -1
  275. package/dist/components/Variables/index.d.ts +1 -0
  276. package/dist/components/Variables/index.d.ts.map +1 -1
  277. package/dist/components/Variables/index.js +1 -0
  278. package/dist/components/Variables/index.js.map +1 -1
  279. package/dist/components/index.d.ts +1 -2
  280. package/dist/components/index.d.ts.map +1 -1
  281. package/dist/components/index.js +1 -2
  282. package/dist/components/index.js.map +1 -1
  283. package/dist/constants/grid-layout-config.js.map +1 -1
  284. package/dist/constants/index.d.ts +1 -0
  285. package/dist/constants/index.d.ts.map +1 -1
  286. package/dist/constants/index.js +1 -0
  287. package/dist/constants/index.js.map +1 -1
  288. package/dist/constants/styles.d.ts +5 -0
  289. package/dist/constants/styles.d.ts.map +1 -0
  290. package/dist/{utils/time.js → constants/styles.js} +10 -10
  291. package/dist/constants/styles.js.map +1 -0
  292. package/dist/constants/user-interface-text.d.ts +2 -1
  293. package/dist/constants/user-interface-text.d.ts.map +1 -1
  294. package/dist/constants/user-interface-text.js +2 -1
  295. package/dist/constants/user-interface-text.js.map +1 -1
  296. package/dist/context/DashboardProvider/DashboardProvider.d.ts +7 -4
  297. package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -1
  298. package/dist/context/DashboardProvider/DashboardProvider.js +16 -9
  299. package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
  300. package/dist/context/DashboardProvider/common.d.ts +3 -3
  301. package/dist/context/DashboardProvider/common.d.ts.map +1 -1
  302. package/dist/context/DashboardProvider/common.js.map +1 -1
  303. package/dist/context/DashboardProvider/dashboard-provider-api.d.ts +1 -1
  304. package/dist/context/DashboardProvider/dashboard-provider-api.js +17 -17
  305. package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
  306. package/dist/context/DashboardProvider/delete-panel-group-slice.js +1 -1
  307. package/dist/context/DashboardProvider/delete-panel-group-slice.js.map +1 -1
  308. package/dist/context/DashboardProvider/delete-panel-slice.js +5 -5
  309. package/dist/context/DashboardProvider/delete-panel-slice.js.map +1 -1
  310. package/dist/context/DashboardProvider/discard-changes-dialog-slice.js.map +1 -1
  311. package/dist/context/DashboardProvider/duplicate-panel-slice.js +1 -1
  312. package/dist/context/DashboardProvider/duplicate-panel-slice.js.map +1 -1
  313. package/dist/context/DashboardProvider/edit-json-dialog-slice.js.map +1 -1
  314. package/dist/context/DashboardProvider/index.js.map +1 -1
  315. package/dist/context/DashboardProvider/panel-editor-slice.d.ts +2 -2
  316. package/dist/context/DashboardProvider/panel-editor-slice.d.ts.map +1 -1
  317. package/dist/context/DashboardProvider/panel-editor-slice.js +11 -13
  318. package/dist/context/DashboardProvider/panel-editor-slice.js.map +1 -1
  319. package/dist/context/DashboardProvider/panel-group-editor-slice.js +2 -2
  320. package/dist/context/DashboardProvider/panel-group-editor-slice.js.map +1 -1
  321. package/dist/context/DashboardProvider/panel-group-slice.d.ts +2 -2
  322. package/dist/context/DashboardProvider/panel-group-slice.d.ts.map +1 -1
  323. package/dist/context/DashboardProvider/panel-group-slice.js +4 -4
  324. package/dist/context/DashboardProvider/panel-group-slice.js.map +1 -1
  325. package/dist/context/DashboardProvider/panel-slice.js.map +1 -1
  326. package/dist/context/DashboardProvider/save-changes-dialog-slice.js.map +1 -1
  327. package/dist/context/DatasourceStoreProvider.d.ts +17 -12
  328. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -1
  329. package/dist/context/DatasourceStoreProvider.js +172 -47
  330. package/dist/context/DatasourceStoreProvider.js.map +1 -1
  331. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts +15 -8
  332. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.d.ts.map +1 -1
  333. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js +115 -23
  334. package/dist/context/TemplateVariableProvider/TemplateVariableProvider.js.map +1 -1
  335. package/dist/context/TemplateVariableProvider/hydrationUtils.d.ts.map +1 -1
  336. package/dist/context/TemplateVariableProvider/hydrationUtils.js +7 -7
  337. package/dist/context/TemplateVariableProvider/hydrationUtils.js.map +1 -1
  338. package/dist/context/TemplateVariableProvider/index.js.map +1 -1
  339. package/dist/context/TemplateVariableProvider/query-params.js.map +1 -1
  340. package/dist/context/TemplateVariableProvider/utils.js +3 -3
  341. package/dist/context/TemplateVariableProvider/utils.js.map +1 -1
  342. package/dist/context/index.js.map +1 -1
  343. package/dist/context/useDashboard.d.ts +3 -3
  344. package/dist/context/useDashboard.d.ts.map +1 -1
  345. package/dist/context/useDashboard.js +24 -7
  346. package/dist/context/useDashboard.js.map +1 -1
  347. package/dist/index.js.map +1 -1
  348. package/dist/stories/decorators/WithDashboard.js.map +1 -1
  349. package/dist/stories/decorators/WithDatasourceStore.js.map +1 -1
  350. package/dist/stories/decorators/WithTemplateVariables.js.map +1 -1
  351. package/dist/stories/decorators/constants.js +2 -2
  352. package/dist/stories/decorators/constants.js.map +1 -1
  353. package/dist/stories/decorators/index.js.map +1 -1
  354. package/dist/test/dashboard-provider.js.map +1 -1
  355. package/dist/test/datasource-provider.d.ts.map +1 -1
  356. package/dist/test/datasource-provider.js +5 -7
  357. package/dist/test/datasource-provider.js.map +1 -1
  358. package/dist/test/index.js.map +1 -1
  359. package/dist/test/plugin-registry.js.map +1 -1
  360. package/dist/test/render.d.ts.map +1 -1
  361. package/dist/test/render.js +9 -4
  362. package/dist/test/render.js.map +1 -1
  363. package/dist/test/setup-tests.js.map +1 -1
  364. package/dist/test/testDashboard.js +10 -10
  365. package/dist/test/testDashboard.js.map +1 -1
  366. package/dist/utils/index.d.ts +0 -1
  367. package/dist/utils/index.d.ts.map +1 -1
  368. package/dist/utils/index.js +0 -1
  369. package/dist/utils/index.js.map +1 -1
  370. package/dist/utils/panelUtils.d.ts +1 -1
  371. package/dist/utils/panelUtils.d.ts.map +1 -1
  372. package/dist/utils/panelUtils.js +2 -2
  373. package/dist/utils/panelUtils.js.map +1 -1
  374. package/dist/validation/index.d.ts +2 -0
  375. package/dist/validation/index.d.ts.map +1 -0
  376. package/dist/{components/ToolbarIconButton → validation}/index.js +1 -1
  377. package/dist/validation/index.js.map +1 -0
  378. package/dist/validation/panel.d.ts +19 -0
  379. package/dist/validation/panel.d.ts.map +1 -0
  380. package/dist/validation/panel.js +21 -0
  381. package/dist/validation/panel.js.map +1 -0
  382. package/dist/views/ViewDashboard/DashboardApp.d.ts +4 -3
  383. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
  384. package/dist/views/ViewDashboard/DashboardApp.js +19 -7
  385. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
  386. package/dist/views/ViewDashboard/ViewDashboard.d.ts +2 -2
  387. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
  388. package/dist/views/ViewDashboard/ViewDashboard.js +53 -12
  389. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
  390. package/dist/views/ViewDashboard/index.js.map +1 -1
  391. package/dist/views/index.js.map +1 -1
  392. package/package.json +8 -7
  393. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +0 -183
  394. package/dist/cjs/components/ToolbarIconButton/ToolbarIconButton.js +0 -38
  395. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts +0 -14
  396. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts.map +0 -1
  397. package/dist/components/TimeRangeControls/TimeRangeControls.js +0 -165
  398. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +0 -1
  399. package/dist/components/TimeRangeControls/index.d.ts +0 -2
  400. package/dist/components/TimeRangeControls/index.d.ts.map +0 -1
  401. package/dist/components/TimeRangeControls/index.js.map +0 -1
  402. package/dist/components/ToolbarIconButton/ToolbarIconButton.d.ts +0 -6
  403. package/dist/components/ToolbarIconButton/ToolbarIconButton.d.ts.map +0 -1
  404. package/dist/components/ToolbarIconButton/ToolbarIconButton.js +0 -32
  405. package/dist/components/ToolbarIconButton/ToolbarIconButton.js.map +0 -1
  406. package/dist/components/ToolbarIconButton/index.d.ts +0 -2
  407. package/dist/components/ToolbarIconButton/index.d.ts.map +0 -1
  408. package/dist/components/ToolbarIconButton/index.js.map +0 -1
  409. package/dist/utils/time.d.ts +0 -5
  410. package/dist/utils/time.d.ts.map +0 -1
  411. package/dist/utils/time.js.map +0 -1
@@ -16,8 +16,8 @@ import { createStore, useStore } from 'zustand';
16
16
  import { immer } from 'zustand/middleware/immer';
17
17
  import { devtools } from 'zustand/middleware';
18
18
  import produce from 'immer';
19
- import { TemplateVariableContext } from '@perses-dev/plugin-system';
20
- import { DEFAULT_ALL_VALUE as ALL_VALUE } from '@perses-dev/core';
19
+ import { TemplateVariableContext, BuiltinVariableContext, useTimeRange } from '@perses-dev/plugin-system';
20
+ import { DEFAULT_ALL_VALUE as ALL_VALUE, formatDuration, intervalToPrometheusDuration } from '@perses-dev/core';
21
21
  import { checkSavedDefaultVariableStatus, findVariableDefinitionByName, mergeVariableDefinitions } from './utils';
22
22
  import { hydrateTemplateVariableStates } from './hydrationUtils';
23
23
  import { getInitalValuesFromQueryParameters, getURLQueryParamName, useVariableQueryParams } from './query-params';
@@ -71,12 +71,12 @@ export function useTemplateVariableValues(variableNames) {
71
71
  */ export function useTemplateVariable(name, source) {
72
72
  const store = useTemplateVariableStoreCtx();
73
73
  return useStore(store, (s)=>{
74
- var ref;
74
+ var _s_externalVariableDefinitions_find;
75
75
  const state = s.variableState.get({
76
76
  name,
77
77
  source
78
78
  });
79
- const definitions = source ? (ref = s.externalVariableDefinitions.find((v)=>v.source === source)) === null || ref === void 0 ? void 0 : ref.definitions : s.variableDefinitions;
79
+ 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;
80
80
  const definition = (definitions || []).find((v)=>v.spec.name === name);
81
81
  return {
82
82
  state,
@@ -109,10 +109,11 @@ export function useTemplateVariableStore() {
109
109
  const store = useTemplateVariableStoreCtx();
110
110
  return useStore(store);
111
111
  }
112
- function PluginProvider({ children }) {
112
+ function PluginProvider({ children, builtinVariables }) {
113
113
  const originalValues = useTemplateVariableValues();
114
114
  const definitions = useTemplateVariableDefinitions();
115
115
  const externalDefinitions = useTemplateExternalVariableDefinitions();
116
+ const { absoluteTimeRange } = useTimeRange();
116
117
  const values = useMemo(()=>{
117
118
  const contextValues = {};
118
119
  // This will loop through all the current variables values
@@ -125,12 +126,12 @@ function PluginProvider({ children }) {
125
126
  if (v.value === ALL_VALUE) {
126
127
  const definition = findVariableDefinitionByName(name, definitions, externalDefinitions);
127
128
  // If the variable is a list variable and has a custom all value, then use that value instead
128
- if ((definition === null || definition === void 0 ? void 0 : definition.kind) === 'ListVariable' && definition.spec.custom_all_value) {
129
- v.value = definition.spec.custom_all_value;
129
+ if ((definition === null || definition === void 0 ? void 0 : definition.kind) === 'ListVariable' && definition.spec.customAllValue) {
130
+ v.value = definition.spec.customAllValue;
130
131
  } else {
131
- var ref;
132
- var ref1;
133
- v.value = (ref1 = (ref = v.options) === null || ref === void 0 ? void 0 : ref.map((o)=>o.value)) !== null && ref1 !== void 0 ? ref1 : null;
132
+ var _v_options;
133
+ var _v_options_map;
134
+ 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;
134
135
  }
135
136
  }
136
137
  contextValues[name] = v;
@@ -141,17 +142,95 @@ function PluginProvider({ children }) {
141
142
  definitions,
142
143
  externalDefinitions
143
144
  ]);
144
- return /*#__PURE__*/ _jsx(TemplateVariableContext.Provider, {
145
+ const allBuiltinVariables = useMemo(()=>{
146
+ const result = [
147
+ {
148
+ kind: 'BuiltinVariable',
149
+ spec: {
150
+ name: '__from',
151
+ value: ()=>absoluteTimeRange.start.valueOf().toString(),
152
+ source: 'Dashboard',
153
+ display: {
154
+ name: '__from',
155
+ description: 'Start time of the current time range in unix millisecond epoch',
156
+ hidden: true
157
+ }
158
+ }
159
+ },
160
+ {
161
+ kind: 'BuiltinVariable',
162
+ spec: {
163
+ name: '__to',
164
+ value: ()=>absoluteTimeRange.end.valueOf().toString(),
165
+ source: 'Dashboard',
166
+ display: {
167
+ name: '__to',
168
+ description: 'End time of the current time range in unix millisecond epoch',
169
+ hidden: true
170
+ }
171
+ }
172
+ },
173
+ {
174
+ kind: 'BuiltinVariable',
175
+ spec: {
176
+ name: '__range',
177
+ value: ()=>formatDuration(intervalToPrometheusDuration(absoluteTimeRange)),
178
+ source: 'Dashboard',
179
+ display: {
180
+ name: '__range',
181
+ description: 'The range for the current dashboard in human readable format',
182
+ hidden: true
183
+ }
184
+ }
185
+ },
186
+ {
187
+ kind: 'BuiltinVariable',
188
+ spec: {
189
+ name: '__range_s',
190
+ value: ()=>((absoluteTimeRange.end.valueOf() - absoluteTimeRange.start.valueOf()) / 1000).toString(),
191
+ source: 'Dashboard',
192
+ display: {
193
+ name: '__range_s',
194
+ description: 'The range for the current dashboard in second',
195
+ hidden: true
196
+ }
197
+ }
198
+ },
199
+ {
200
+ kind: 'BuiltinVariable',
201
+ spec: {
202
+ name: '__range_ms',
203
+ value: ()=>(absoluteTimeRange.end.valueOf() - absoluteTimeRange.start.valueOf()).toString(),
204
+ source: 'Dashboard',
205
+ display: {
206
+ name: '__range_ms',
207
+ description: 'The range for the current dashboard in millisecond',
208
+ hidden: true
209
+ }
210
+ }
211
+ }
212
+ ];
213
+ builtinVariables === null || builtinVariables === void 0 ? void 0 : builtinVariables.forEach((def)=>result.push(def));
214
+ return result;
215
+ }, [
216
+ absoluteTimeRange,
217
+ builtinVariables
218
+ ]);
219
+ return /*#__PURE__*/ _jsx(BuiltinVariableContext.Provider, {
145
220
  value: {
146
- state: values
221
+ variables: allBuiltinVariables
147
222
  },
148
- children: children
223
+ children: /*#__PURE__*/ _jsx(TemplateVariableContext.Provider, {
224
+ value: {
225
+ state: values
226
+ },
227
+ children: children
228
+ })
149
229
  });
150
230
  }
151
- function createTemplateVariableSrvStore({ initialVariableDefinitions =[] , externalVariableDefinitions =[] , queryParams }) {
231
+ function createTemplateVariableSrvStore({ initialVariableDefinitions = [], externalVariableDefinitions = [], queryParams }) {
152
232
  const initialParams = getInitalValuesFromQueryParameters(queryParams ? queryParams[0] : {});
153
- const store = createStore()(devtools(immer((set, get)=>{
154
- return {
233
+ const store = createStore()(devtools(immer((set, get)=>({
155
234
  variableState: hydrateTemplateVariableStates(initialVariableDefinitions, initialParams, externalVariableDefinitions),
156
235
  variableDefinitions: initialVariableDefinitions,
157
236
  externalVariableDefinitions: externalVariableDefinitions,
@@ -225,16 +304,16 @@ function createTemplateVariableSrvStore({ initialVariableDefinitions =[] , exter
225
304
  draft[index] = {
226
305
  kind: 'ListVariable',
227
306
  spec: produce(variable.spec, (specDraft)=>{
228
- specDraft.default_value = currentVariable.value;
307
+ specDraft.defaultValue = currentVariable.value;
229
308
  })
230
309
  };
231
310
  }
232
311
  } else if (variable.kind === 'TextVariable') {
233
- const currentVariable1 = variableState.get({
312
+ const currentVariable = variableState.get({
234
313
  name
235
314
  });
236
- const currentVariableValue = typeof (currentVariable1 === null || currentVariable1 === void 0 ? void 0 : currentVariable1.value) === 'string' ? currentVariable1.value : '';
237
- if ((currentVariable1 === null || currentVariable1 === void 0 ? void 0 : currentVariable1.value) !== undefined) {
315
+ const currentVariableValue = typeof (currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) === 'string' ? currentVariable.value : '';
316
+ if ((currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== undefined) {
238
317
  draft[index] = {
239
318
  kind: 'TextVariable',
240
319
  spec: produce(variable.spec, (specDraft)=>{
@@ -253,11 +332,23 @@ function createTemplateVariableSrvStore({ initialVariableDefinitions =[] , exter
253
332
  getSavedVariablesStatus: ()=>{
254
333
  return checkSavedDefaultVariableStatus(get().variableDefinitions, get().variableState);
255
334
  }
256
- };
257
- })));
335
+ }))));
258
336
  return store;
259
337
  }
260
- export function TemplateVariableProvider({ children , initialVariableDefinitions =[] , externalVariableDefinitions =[] }) {
338
+ export function TemplateVariableProvider({ children, initialVariableDefinitions = [], externalVariableDefinitions = [], builtinVariables = [] }) {
339
+ const [store] = useState(createTemplateVariableSrvStore({
340
+ initialVariableDefinitions,
341
+ externalVariableDefinitions
342
+ }));
343
+ return /*#__PURE__*/ _jsx(TemplateVariableStoreContext.Provider, {
344
+ value: store,
345
+ children: /*#__PURE__*/ _jsx(PluginProvider, {
346
+ builtinVariables: builtinVariables,
347
+ children: children
348
+ })
349
+ });
350
+ }
351
+ export function TemplateVariableProviderWithQueryParams({ children, initialVariableDefinitions = [], externalVariableDefinitions = [], builtinVariables = [] }) {
261
352
  const allVariableDefs = mergeVariableDefinitions(initialVariableDefinitions, externalVariableDefinitions);
262
353
  const queryParams = useVariableQueryParams(allVariableDefs);
263
354
  const [store] = useState(createTemplateVariableSrvStore({
@@ -268,6 +359,7 @@ export function TemplateVariableProvider({ children , initialVariableDefinitions
268
359
  return /*#__PURE__*/ _jsx(TemplateVariableStoreContext.Provider, {
269
360
  value: store,
270
361
  children: /*#__PURE__*/ _jsx(PluginProvider, {
362
+ builtinVariables: builtinVariables,
271
363
  children: children
272
364
  })
273
365
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/TemplateVariableProvider/TemplateVariableProvider.tsx"],"sourcesContent":["// Copyright 2023 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 { createContext, useContext, useMemo, useState } from 'react';\nimport { createStore, useStore } from 'zustand';\nimport { immer } from 'zustand/middleware/immer';\nimport { devtools } from 'zustand/middleware';\nimport produce from 'immer';\nimport {\n TemplateVariableContext,\n VariableStateMap,\n VariableState,\n VariableStoreStateMap,\n VariableOption,\n} from '@perses-dev/plugin-system';\nimport { DEFAULT_ALL_VALUE as ALL_VALUE, VariableName, VariableValue, VariableDefinition } from '@perses-dev/core';\nimport { checkSavedDefaultVariableStatus, findVariableDefinitionByName, mergeVariableDefinitions } from './utils';\nimport { hydrateTemplateVariableStates } from './hydrationUtils';\nimport { getInitalValuesFromQueryParameters, getURLQueryParamName, useVariableQueryParams } from './query-params';\n\ntype TemplateVariableStore = {\n variableDefinitions: VariableDefinition[];\n externalVariableDefinitions: ExternalVariableDefinition[];\n variableState: VariableStoreStateMap;\n setVariableValue: (variableName: VariableName, value: VariableValue, source?: string) => void;\n setVariableOptions: (name: VariableName, options: VariableOption[], source?: string) => void;\n setVariableLoading: (name: VariableName, loading: boolean, source?: string) => void;\n setVariableDefinitions: (definitions: VariableDefinition[]) => void;\n setVariableDefaultValues: () => VariableDefinition[];\n getSavedVariablesStatus: () => { isSavedVariableModified: boolean; modifiedVariableNames: string[] };\n};\n\nconst TemplateVariableStoreContext = createContext<ReturnType<typeof createTemplateVariableSrvStore> | undefined>(\n undefined\n);\nexport function useTemplateVariableStoreCtx() {\n const context = useContext(TemplateVariableStoreContext);\n if (!context) {\n throw new Error('TemplateVariableStoreContext not initialized');\n }\n return context;\n}\n\nexport function useTemplateVariableValues(variableNames?: string[]) {\n const store = useTemplateVariableStoreCtx();\n return useStore(\n store,\n (s) => {\n const vars: VariableStateMap = {};\n\n // Collect values of local variables, from the variable state\n const names = variableNames ?? s.variableDefinitions.map((value) => value.spec.name);\n names.forEach((name) => {\n const varState = s.variableState.get({ name });\n if (!varState || varState.overridden) {\n return;\n }\n vars[name] = varState;\n });\n\n // Collect values of external variables, from the variable state\n s.externalVariableDefinitions.forEach((d) => {\n const source = d.source;\n d.definitions.forEach((value) => {\n const name = value.spec.name;\n const varState = s.variableState.get({ name, source });\n if (!varState || varState.overridden) {\n return;\n }\n vars[name] = varState;\n });\n });\n\n return vars;\n },\n (left, right) => {\n return JSON.stringify(left) === JSON.stringify(right);\n }\n );\n}\n\n/**\n * Get the state and definition of a variable from the Template variables context.\n * @param name name of the variable\n * @param source if given, it searches in the external variables\n */\nexport function useTemplateVariable(name: string, source?: string) {\n const store = useTemplateVariableStoreCtx();\n return useStore(store, (s) => {\n const state = s.variableState.get({ name, source });\n const definitions = source\n ? s.externalVariableDefinitions.find((v) => v.source === source)?.definitions\n : s.variableDefinitions;\n const definition = (definitions || []).find((v) => v.spec.name === name);\n\n return { state, definition };\n });\n}\n\nexport function useTemplateVariableActions() {\n const store = useTemplateVariableStoreCtx();\n return useStore(store, (s) => {\n return {\n setVariableValue: s.setVariableValue,\n setVariableLoading: s.setVariableLoading,\n setVariableOptions: s.setVariableOptions,\n setVariableDefinitions: s.setVariableDefinitions,\n setVariableDefaultValues: s.setVariableDefaultValues,\n getSavedVariablesStatus: s.getSavedVariablesStatus,\n };\n });\n}\n\nexport function useTemplateVariableDefinitions() {\n const store = useTemplateVariableStoreCtx();\n return useStore(store, (s) => s.variableDefinitions);\n}\n\nexport function useTemplateExternalVariableDefinitions() {\n const store = useTemplateVariableStoreCtx();\n return useStore(store, (s) => s.externalVariableDefinitions);\n}\n\nexport function useTemplateVariableStore() {\n const store = useTemplateVariableStoreCtx();\n return useStore(store);\n}\n\nfunction PluginProvider({ children }: { children: React.ReactNode }) {\n const originalValues = useTemplateVariableValues();\n const definitions = useTemplateVariableDefinitions();\n const externalDefinitions = useTemplateExternalVariableDefinitions();\n\n const values = useMemo(() => {\n const contextValues: VariableStateMap = {};\n\n // This will loop through all the current variables values\n // and update any variables that have ALL_VALUE as their current value\n // to include all options.\n Object.keys(originalValues).forEach((name) => {\n const v = { ...originalValues[name] } as VariableState;\n\n if (v.value === ALL_VALUE) {\n const definition = findVariableDefinitionByName(name, definitions, externalDefinitions);\n // If the variable is a list variable and has a custom all value, then use that value instead\n if (definition?.kind === 'ListVariable' && definition.spec.custom_all_value) {\n v.value = definition.spec.custom_all_value;\n } else {\n v.value = v.options?.map((o: { value: string }) => o.value) ?? null;\n }\n }\n contextValues[name] = v;\n });\n return contextValues;\n }, [originalValues, definitions, externalDefinitions]);\n\n return <TemplateVariableContext.Provider value={{ state: values }}>{children}</TemplateVariableContext.Provider>;\n}\n\ninterface TemplateVariableSrvArgs {\n initialVariableDefinitions?: VariableDefinition[];\n externalVariableDefinitions?: ExternalVariableDefinition[];\n queryParams?: ReturnType<typeof useVariableQueryParams>;\n}\n\nfunction createTemplateVariableSrvStore({\n initialVariableDefinitions = [],\n externalVariableDefinitions = [],\n queryParams,\n}: TemplateVariableSrvArgs) {\n const initialParams = getInitalValuesFromQueryParameters(queryParams ? queryParams[0] : {});\n const store = createStore<TemplateVariableStore>()(\n devtools(\n immer((set, get) => ({\n variableState: hydrateTemplateVariableStates(\n initialVariableDefinitions,\n initialParams,\n externalVariableDefinitions\n ),\n variableDefinitions: initialVariableDefinitions,\n externalVariableDefinitions: externalVariableDefinitions,\n setVariableDefinitions(definitions: VariableDefinition[]) {\n set(\n (state) => {\n state.variableDefinitions = definitions;\n state.variableState = hydrateTemplateVariableStates(\n definitions,\n initialParams,\n externalVariableDefinitions\n );\n },\n false,\n '[Variables] setVariableDefinitions' // Used for action name in Redux devtools\n );\n },\n setVariableOptions(name, options, source?: string) {\n set(\n (state) => {\n const varState = state.variableState.get({ name, source });\n if (!varState) {\n return;\n }\n varState.options = options;\n },\n false,\n '[Variables] setVariableOptions'\n );\n },\n setVariableLoading(name, loading, source?: string) {\n set(\n (state) => {\n const varState = state.variableState.get({ name, source });\n if (!varState) {\n return;\n }\n varState.loading = loading;\n },\n false,\n '[Variables] setVariableLoading'\n );\n },\n setVariableValue: (name, value, source?: string) =>\n set(\n (state) => {\n let val = value;\n const varState = state.variableState.get({ name, source });\n if (!varState) {\n return;\n }\n\n // Make sure there is only one all value\n if (Array.isArray(val) && val.includes(ALL_VALUE)) {\n if (val.at(-1) === ALL_VALUE) {\n val = ALL_VALUE;\n } else {\n val = val.filter((v) => v !== ALL_VALUE);\n }\n }\n if (queryParams) {\n const setQueryParams = queryParams[1];\n setQueryParams({ [getURLQueryParamName(name)]: val });\n }\n varState.value = val;\n },\n false,\n '[Variables] setVariableValue'\n ),\n setVariableDefaultValues: () => {\n const variableDefinitions = get().variableDefinitions;\n const variableState = get().variableState;\n const updatedVariables = produce(variableDefinitions, (draft) => {\n draft.forEach((variable, index) => {\n const name = variable.spec.name;\n if (variable.kind === 'ListVariable') {\n const currentVariable = variableState.get({ name });\n if (currentVariable?.value !== undefined) {\n draft[index] = {\n kind: 'ListVariable',\n spec: produce(variable.spec, (specDraft) => {\n specDraft.default_value = currentVariable.value;\n }),\n };\n }\n } else if (variable.kind === 'TextVariable') {\n const currentVariable = variableState.get({ name });\n const currentVariableValue = typeof currentVariable?.value === 'string' ? currentVariable.value : '';\n if (currentVariable?.value !== undefined) {\n draft[index] = {\n kind: 'TextVariable',\n spec: produce(variable.spec, (specDraft) => {\n specDraft.value = currentVariableValue;\n }),\n };\n }\n }\n });\n });\n set(\n (state) => {\n state.variableDefinitions = updatedVariables;\n },\n false,\n '[Variables] setVariableDefaultValues'\n );\n return updatedVariables;\n },\n getSavedVariablesStatus: () => {\n return checkSavedDefaultVariableStatus(get().variableDefinitions, get().variableState);\n },\n }))\n )\n );\n\n return store;\n}\n\nexport type ExternalVariableDefinition = {\n source: string;\n definitions: VariableDefinition[];\n};\n\nexport interface TemplateVariableProviderProps {\n children: React.ReactNode;\n initialVariableDefinitions?: VariableDefinition[];\n /**\n * The external variables allow you to give to the provider some additional variables, not defined in the dashboard and static.\n * It means that you won´t be able to update them from the dashboard itself, but you will see them appear and will be able\n * to modify their runtime value as any other variable.\n * If one of the external variable has the same name as a local one, it will be marked as overridden.\n * You can define one list of variable definition by source and as many source as you want.\n * The order of the sources is important as first one will take precedence on the following ones, in case they have same names.\n */\n externalVariableDefinitions?: ExternalVariableDefinition[];\n}\n\nexport function TemplateVariableProvider({\n children,\n initialVariableDefinitions = [],\n externalVariableDefinitions = [],\n}: TemplateVariableProviderProps) {\n const allVariableDefs = mergeVariableDefinitions(initialVariableDefinitions, externalVariableDefinitions);\n const queryParams = useVariableQueryParams(allVariableDefs);\n const [store] = useState(\n createTemplateVariableSrvStore({ initialVariableDefinitions, externalVariableDefinitions, queryParams })\n );\n\n return (\n <TemplateVariableStoreContext.Provider value={store}>\n <PluginProvider>{children}</PluginProvider>\n </TemplateVariableStoreContext.Provider>\n );\n}\n"],"names":["createContext","useContext","useMemo","useState","createStore","useStore","immer","devtools","produce","TemplateVariableContext","DEFAULT_ALL_VALUE","ALL_VALUE","checkSavedDefaultVariableStatus","findVariableDefinitionByName","mergeVariableDefinitions","hydrateTemplateVariableStates","getInitalValuesFromQueryParameters","getURLQueryParamName","useVariableQueryParams","TemplateVariableStoreContext","undefined","useTemplateVariableStoreCtx","context","Error","useTemplateVariableValues","variableNames","store","s","vars","names","variableDefinitions","map","value","spec","name","forEach","varState","variableState","get","overridden","externalVariableDefinitions","d","source","definitions","left","right","JSON","stringify","useTemplateVariable","state","find","v","definition","useTemplateVariableActions","setVariableValue","setVariableLoading","setVariableOptions","setVariableDefinitions","setVariableDefaultValues","getSavedVariablesStatus","useTemplateVariableDefinitions","useTemplateExternalVariableDefinitions","useTemplateVariableStore","PluginProvider","children","originalValues","externalDefinitions","values","contextValues","Object","keys","kind","custom_all_value","options","o","Provider","createTemplateVariableSrvStore","initialVariableDefinitions","queryParams","initialParams","set","loading","val","Array","isArray","includes","at","filter","setQueryParams","updatedVariables","draft","variable","index","currentVariable","specDraft","default_value","currentVariableValue","TemplateVariableProvider","allVariableDefs"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/context/TemplateVariableProvider/TemplateVariableProvider.tsx"],"sourcesContent":["// Copyright 2023 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 { createContext, ReactNode, useContext, useMemo, useState } from 'react';\nimport { createStore, useStore } from 'zustand';\nimport { immer } from 'zustand/middleware/immer';\nimport { devtools } from 'zustand/middleware';\nimport produce from 'immer';\nimport {\n TemplateVariableContext,\n VariableStateMap,\n VariableState,\n VariableStoreStateMap,\n VariableOption,\n BuiltinVariableContext,\n useTimeRange,\n} from '@perses-dev/plugin-system';\nimport {\n DEFAULT_ALL_VALUE as ALL_VALUE,\n VariableName,\n VariableValue,\n VariableDefinition,\n formatDuration,\n intervalToPrometheusDuration,\n BuiltinVariableDefinition,\n} from '@perses-dev/core';\nimport { checkSavedDefaultVariableStatus, findVariableDefinitionByName, mergeVariableDefinitions } from './utils';\nimport { hydrateTemplateVariableStates } from './hydrationUtils';\nimport { getInitalValuesFromQueryParameters, getURLQueryParamName, useVariableQueryParams } from './query-params';\n\ntype TemplateVariableStore = {\n variableDefinitions: VariableDefinition[];\n externalVariableDefinitions: ExternalVariableDefinition[];\n variableState: VariableStoreStateMap;\n setVariableValue: (variableName: VariableName, value: VariableValue, source?: string) => void;\n setVariableOptions: (name: VariableName, options: VariableOption[], source?: string) => void;\n setVariableLoading: (name: VariableName, loading: boolean, source?: string) => void;\n setVariableDefinitions: (definitions: VariableDefinition[]) => void;\n setVariableDefaultValues: () => VariableDefinition[];\n getSavedVariablesStatus: () => { isSavedVariableModified: boolean; modifiedVariableNames: string[] };\n};\n\nconst TemplateVariableStoreContext = createContext<ReturnType<typeof createTemplateVariableSrvStore> | undefined>(\n undefined\n);\nexport function useTemplateVariableStoreCtx() {\n const context = useContext(TemplateVariableStoreContext);\n if (!context) {\n throw new Error('TemplateVariableStoreContext not initialized');\n }\n return context;\n}\n\nexport function useTemplateVariableValues(variableNames?: string[]) {\n const store = useTemplateVariableStoreCtx();\n return useStore(\n store,\n (s) => {\n const vars: VariableStateMap = {};\n\n // Collect values of local variables, from the variable state\n const names = variableNames ?? s.variableDefinitions.map((value) => value.spec.name);\n names.forEach((name) => {\n const varState = s.variableState.get({ name });\n if (!varState || varState.overridden) {\n return;\n }\n vars[name] = varState;\n });\n\n // Collect values of external variables, from the variable state\n s.externalVariableDefinitions.forEach((d) => {\n const source = d.source;\n d.definitions.forEach((value) => {\n const name = value.spec.name;\n const varState = s.variableState.get({ name, source });\n if (!varState || varState.overridden) {\n return;\n }\n vars[name] = varState;\n });\n });\n\n return vars;\n },\n (left, right) => {\n return JSON.stringify(left) === JSON.stringify(right);\n }\n );\n}\n\n/**\n * Get the state and definition of a variable from the Template variables context.\n * @param name name of the variable\n * @param source if given, it searches in the external variables\n */\nexport function useTemplateVariable(name: string, source?: string) {\n const store = useTemplateVariableStoreCtx();\n return useStore(store, (s) => {\n const state = s.variableState.get({ name, source });\n const definitions = source\n ? s.externalVariableDefinitions.find((v) => v.source === source)?.definitions\n : s.variableDefinitions;\n const definition = (definitions || []).find((v) => v.spec.name === name);\n\n return { state, definition };\n });\n}\n\nexport function useTemplateVariableActions() {\n const store = useTemplateVariableStoreCtx();\n return useStore(store, (s) => {\n return {\n setVariableValue: s.setVariableValue,\n setVariableLoading: s.setVariableLoading,\n setVariableOptions: s.setVariableOptions,\n setVariableDefinitions: s.setVariableDefinitions,\n setVariableDefaultValues: s.setVariableDefaultValues,\n getSavedVariablesStatus: s.getSavedVariablesStatus,\n };\n });\n}\n\nexport function useTemplateVariableDefinitions() {\n const store = useTemplateVariableStoreCtx();\n return useStore(store, (s) => s.variableDefinitions);\n}\n\nexport function useTemplateExternalVariableDefinitions() {\n const store = useTemplateVariableStoreCtx();\n return useStore(store, (s) => s.externalVariableDefinitions);\n}\n\nexport function useTemplateVariableStore() {\n const store = useTemplateVariableStoreCtx();\n return useStore(store);\n}\n\ninterface PluginProviderProps {\n children: ReactNode;\n builtinVariables?: BuiltinVariableDefinition[];\n}\n\nfunction PluginProvider({ children, builtinVariables }: PluginProviderProps) {\n const originalValues = useTemplateVariableValues();\n const definitions = useTemplateVariableDefinitions();\n const externalDefinitions = useTemplateExternalVariableDefinitions();\n const { absoluteTimeRange } = useTimeRange();\n\n const values = useMemo(() => {\n const contextValues: VariableStateMap = {};\n\n // This will loop through all the current variables values\n // and update any variables that have ALL_VALUE as their current value\n // to include all options.\n Object.keys(originalValues).forEach((name) => {\n const v = { ...originalValues[name] } as VariableState;\n\n if (v.value === ALL_VALUE) {\n const definition = findVariableDefinitionByName(name, definitions, externalDefinitions);\n // If the variable is a list variable and has a custom all value, then use that value instead\n if (definition?.kind === 'ListVariable' && definition.spec.customAllValue) {\n v.value = definition.spec.customAllValue;\n } else {\n v.value = v.options?.map((o: { value: string }) => o.value) ?? null;\n }\n }\n contextValues[name] = v;\n });\n return contextValues;\n }, [originalValues, definitions, externalDefinitions]);\n\n const allBuiltinVariables: BuiltinVariableDefinition[] = useMemo(() => {\n const result: BuiltinVariableDefinition[] = [\n {\n kind: 'BuiltinVariable',\n spec: {\n name: '__from',\n value: () => absoluteTimeRange.start.valueOf().toString(),\n source: 'Dashboard',\n display: {\n name: '__from',\n description: 'Start time of the current time range in unix millisecond epoch',\n hidden: true,\n },\n },\n },\n {\n kind: 'BuiltinVariable',\n spec: {\n name: '__to',\n value: () => absoluteTimeRange.end.valueOf().toString(),\n source: 'Dashboard',\n display: {\n name: '__to',\n description: 'End time of the current time range in unix millisecond epoch',\n hidden: true,\n },\n },\n },\n {\n kind: 'BuiltinVariable',\n spec: {\n name: '__range',\n value: () => formatDuration(intervalToPrometheusDuration(absoluteTimeRange)),\n source: 'Dashboard',\n display: {\n name: '__range',\n description: 'The range for the current dashboard in human readable format',\n hidden: true,\n },\n },\n },\n {\n kind: 'BuiltinVariable',\n spec: {\n name: '__range_s',\n value: () => ((absoluteTimeRange.end.valueOf() - absoluteTimeRange.start.valueOf()) / 1000).toString(),\n source: 'Dashboard',\n display: {\n name: '__range_s',\n description: 'The range for the current dashboard in second',\n hidden: true,\n },\n },\n },\n {\n kind: 'BuiltinVariable',\n spec: {\n name: '__range_ms',\n value: () => (absoluteTimeRange.end.valueOf() - absoluteTimeRange.start.valueOf()).toString(),\n source: 'Dashboard',\n display: {\n name: '__range_ms',\n description: 'The range for the current dashboard in millisecond',\n hidden: true,\n },\n },\n },\n ];\n builtinVariables?.forEach((def) => result.push(def));\n return result;\n }, [absoluteTimeRange, builtinVariables]);\n\n return (\n <BuiltinVariableContext.Provider value={{ variables: allBuiltinVariables }}>\n <TemplateVariableContext.Provider value={{ state: values }}>{children}</TemplateVariableContext.Provider>\n </BuiltinVariableContext.Provider>\n );\n}\n\ninterface TemplateVariableSrvArgs {\n initialVariableDefinitions?: VariableDefinition[];\n externalVariableDefinitions?: ExternalVariableDefinition[];\n queryParams?: ReturnType<typeof useVariableQueryParams>;\n}\n\nfunction createTemplateVariableSrvStore({\n initialVariableDefinitions = [],\n externalVariableDefinitions = [],\n queryParams,\n}: TemplateVariableSrvArgs) {\n const initialParams = getInitalValuesFromQueryParameters(queryParams ? queryParams[0] : {});\n const store = createStore<TemplateVariableStore>()(\n devtools(\n immer((set, get) => ({\n variableState: hydrateTemplateVariableStates(\n initialVariableDefinitions,\n initialParams,\n externalVariableDefinitions\n ),\n variableDefinitions: initialVariableDefinitions,\n externalVariableDefinitions: externalVariableDefinitions,\n setVariableDefinitions(definitions: VariableDefinition[]) {\n set(\n (state) => {\n state.variableDefinitions = definitions;\n state.variableState = hydrateTemplateVariableStates(\n definitions,\n initialParams,\n externalVariableDefinitions\n );\n },\n false,\n '[Variables] setVariableDefinitions' // Used for action name in Redux devtools\n );\n },\n setVariableOptions(name, options, source?: string) {\n set(\n (state) => {\n const varState = state.variableState.get({ name, source });\n if (!varState) {\n return;\n }\n varState.options = options;\n },\n false,\n '[Variables] setVariableOptions'\n );\n },\n setVariableLoading(name, loading, source?: string) {\n set(\n (state) => {\n const varState = state.variableState.get({ name, source });\n if (!varState) {\n return;\n }\n varState.loading = loading;\n },\n false,\n '[Variables] setVariableLoading'\n );\n },\n setVariableValue: (name, value, source?: string) =>\n set(\n (state) => {\n let val = value;\n const varState = state.variableState.get({ name, source });\n if (!varState) {\n return;\n }\n\n // Make sure there is only one all value\n if (Array.isArray(val) && val.includes(ALL_VALUE)) {\n if (val.at(-1) === ALL_VALUE) {\n val = ALL_VALUE;\n } else {\n val = val.filter((v) => v !== ALL_VALUE);\n }\n }\n if (queryParams) {\n const setQueryParams = queryParams[1];\n setQueryParams({ [getURLQueryParamName(name)]: val });\n }\n varState.value = val;\n },\n false,\n '[Variables] setVariableValue'\n ),\n setVariableDefaultValues: () => {\n const variableDefinitions = get().variableDefinitions;\n const variableState = get().variableState;\n const updatedVariables = produce(variableDefinitions, (draft) => {\n draft.forEach((variable, index) => {\n const name = variable.spec.name;\n if (variable.kind === 'ListVariable') {\n const currentVariable = variableState.get({ name });\n if (currentVariable?.value !== undefined) {\n draft[index] = {\n kind: 'ListVariable',\n spec: produce(variable.spec, (specDraft) => {\n specDraft.defaultValue = currentVariable.value;\n }),\n };\n }\n } else if (variable.kind === 'TextVariable') {\n const currentVariable = variableState.get({ name });\n const currentVariableValue = typeof currentVariable?.value === 'string' ? currentVariable.value : '';\n if (currentVariable?.value !== undefined) {\n draft[index] = {\n kind: 'TextVariable',\n spec: produce(variable.spec, (specDraft) => {\n specDraft.value = currentVariableValue;\n }),\n };\n }\n }\n });\n });\n set(\n (state) => {\n state.variableDefinitions = updatedVariables;\n },\n false,\n '[Variables] setVariableDefaultValues'\n );\n return updatedVariables;\n },\n getSavedVariablesStatus: () => {\n return checkSavedDefaultVariableStatus(get().variableDefinitions, get().variableState);\n },\n }))\n )\n );\n\n return store;\n}\n\nexport type ExternalVariableDefinition = {\n source: string;\n tooltip?: {\n title?: string;\n description?: string;\n };\n editLink?: string;\n definitions: VariableDefinition[];\n};\n\nexport interface TemplateVariableProviderProps {\n children: ReactNode;\n initialVariableDefinitions?: VariableDefinition[];\n /**\n * The external variables allow you to give to the provider some additional variables, not defined in the dashboard and static.\n * It means that you won´t be able to update them from the dashboard itself, but you will see them appear and will be able\n * to modify their runtime value as any other variable.\n * If one of the external variable has the same name as a local one, it will be marked as overridden.\n * You can define one list of variable definition by source and as many source as you want.\n * The order of the sources is important as first one will take precedence on the following ones, in case they have same names.\n */\n externalVariableDefinitions?: ExternalVariableDefinition[];\n builtinVariables?: BuiltinVariableDefinition[];\n}\n\nexport function TemplateVariableProvider({\n children,\n initialVariableDefinitions = [],\n externalVariableDefinitions = [],\n builtinVariables = [],\n}: TemplateVariableProviderProps) {\n const [store] = useState(createTemplateVariableSrvStore({ initialVariableDefinitions, externalVariableDefinitions }));\n\n return (\n <TemplateVariableStoreContext.Provider value={store}>\n <PluginProvider builtinVariables={builtinVariables}>{children}</PluginProvider>\n </TemplateVariableStoreContext.Provider>\n );\n}\n\nexport function TemplateVariableProviderWithQueryParams({\n children,\n initialVariableDefinitions = [],\n externalVariableDefinitions = [],\n builtinVariables = [],\n}: TemplateVariableProviderProps) {\n const allVariableDefs = mergeVariableDefinitions(initialVariableDefinitions, externalVariableDefinitions);\n const queryParams = useVariableQueryParams(allVariableDefs);\n const [store] = useState(\n createTemplateVariableSrvStore({ initialVariableDefinitions, externalVariableDefinitions, queryParams })\n );\n\n return (\n <TemplateVariableStoreContext.Provider value={store}>\n <PluginProvider builtinVariables={builtinVariables}>{children}</PluginProvider>\n </TemplateVariableStoreContext.Provider>\n );\n}\n"],"names":["createContext","useContext","useMemo","useState","createStore","useStore","immer","devtools","produce","TemplateVariableContext","BuiltinVariableContext","useTimeRange","DEFAULT_ALL_VALUE","ALL_VALUE","formatDuration","intervalToPrometheusDuration","checkSavedDefaultVariableStatus","findVariableDefinitionByName","mergeVariableDefinitions","hydrateTemplateVariableStates","getInitalValuesFromQueryParameters","getURLQueryParamName","useVariableQueryParams","TemplateVariableStoreContext","undefined","useTemplateVariableStoreCtx","context","Error","useTemplateVariableValues","variableNames","store","s","vars","names","variableDefinitions","map","value","spec","name","forEach","varState","variableState","get","overridden","externalVariableDefinitions","d","source","definitions","left","right","JSON","stringify","useTemplateVariable","state","find","v","definition","useTemplateVariableActions","setVariableValue","setVariableLoading","setVariableOptions","setVariableDefinitions","setVariableDefaultValues","getSavedVariablesStatus","useTemplateVariableDefinitions","useTemplateExternalVariableDefinitions","useTemplateVariableStore","PluginProvider","children","builtinVariables","originalValues","externalDefinitions","absoluteTimeRange","values","contextValues","Object","keys","kind","customAllValue","options","o","allBuiltinVariables","result","start","valueOf","toString","display","description","hidden","end","def","push","Provider","variables","createTemplateVariableSrvStore","initialVariableDefinitions","queryParams","initialParams","set","loading","val","Array","isArray","includes","at","filter","setQueryParams","updatedVariables","draft","variable","index","currentVariable","specDraft","defaultValue","currentVariableValue","TemplateVariableProvider","TemplateVariableProviderWithQueryParams","allVariableDefs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hydrationUtils.d.ts","sourceRoot":"","sources":["../../../src/context/TemplateVariableProvider/hydrationUtils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAqB,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAiB,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAyCpE;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,kBAAkB,EAAE,EACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,mBAAmB,GAAE,0BAA0B,EAAO,GACrD,qBAAqB,CA8DvB"}
1
+ {"version":3,"file":"hydrationUtils.d.ts","sourceRoot":"","sources":["../../../src/context/TemplateVariableProvider/hydrationUtils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAqB,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAiB,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAyCpE;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,kBAAkB,EAAE,EACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,mBAAmB,GAAE,0BAA0B,EAAO,GACrD,qBAAqB,CAoEvB"}
@@ -26,15 +26,15 @@ function hydrateTemplateVariableState(variable, initialValue) {
26
26
  break;
27
27
  case 'ListVariable':
28
28
  varState.options = [];
29
- var ref;
30
- varState.value = (ref = initialValue !== null && initialValue !== void 0 ? initialValue : variable.spec.default_value) !== null && ref !== void 0 ? ref : null;
31
- // TODO: smarter fallbacks for default_value when allow_all_value is true
29
+ var _ref;
30
+ varState.value = (_ref = initialValue !== null && initialValue !== void 0 ? initialValue : variable.spec.defaultValue) !== null && _ref !== void 0 ? _ref : null;
31
+ // TODO: smarter fallbacks for defaultValue when allowAllValue is true
32
32
  if (varState.options.length > 0 && !varState.value) {
33
- var ref1;
34
- var ref2;
35
- const firstOptionValue = (ref2 = (ref1 = varState.options[0]) === null || ref1 === void 0 ? void 0 : ref1.value) !== null && ref2 !== void 0 ? ref2 : null;
33
+ var _varState_options_;
34
+ var _varState_options__value;
35
+ 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;
36
36
  if (firstOptionValue !== null) {
37
- varState.value = variable.spec.allow_multiple ? [
37
+ varState.value = variable.spec.allowMultiple ? [
38
38
  firstOptionValue
39
39
  ] : firstOptionValue;
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/TemplateVariableProvider/hydrationUtils.ts"],"sourcesContent":["// Copyright 2023 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 { DEFAULT_ALL_VALUE, VariableValue, VariableDefinition } from '@perses-dev/core';\nimport { VariableStoreStateMap, VariableState } from '@perses-dev/plugin-system';\nimport { ExternalVariableDefinition } from '@perses-dev/dashboards';\n\n// TODO: move to TemplateVariableProvider/utils.ts\nfunction hydrateTemplateVariableState(variable: VariableDefinition, initialValue?: VariableValue): VariableState {\n const varState: VariableState = {\n value: null,\n loading: false,\n overriding: false,\n overridden: false,\n };\n switch (variable.kind) {\n case 'TextVariable':\n varState.value = initialValue ?? variable.spec.value;\n break;\n case 'ListVariable':\n varState.options = [];\n varState.value = initialValue ?? variable.spec.default_value ?? null;\n // TODO: smarter fallbacks for default_value when allow_all_value is true\n if (varState.options.length > 0 && !varState.value) {\n const firstOptionValue = varState.options[0]?.value ?? null;\n if (firstOptionValue !== null) {\n varState.value = variable.spec.allow_multiple ? [firstOptionValue] : firstOptionValue;\n }\n }\n\n // \"all\" variable handling assumes the value is not in an array. This is\n // handled properly during internal variable interactions, but it is possible\n // to end up in a buggy state if the variables are initialized with an \"all\"\n // value inside an array. When hydrating variables, normalize this to minimize\n // bugs.\n if (Array.isArray(varState.value) && varState.value.length === 1 && varState.value[0] === DEFAULT_ALL_VALUE) {\n varState.value = DEFAULT_ALL_VALUE;\n }\n\n break;\n default:\n break;\n }\n return varState;\n}\n\n/**\n * Build the local variable states according to the given definitions\n * @param localDefinitions local variable definitions. Dynamic part.\n * @param externalDefinitions external variables definitions. Static part.\n * @param initialValues values coming from query parameters\n */\nexport function hydrateTemplateVariableStates(\n localDefinitions: VariableDefinition[],\n initialValues: Record<string, VariableValue>,\n externalDefinitions: ExternalVariableDefinition[] = []\n): VariableStoreStateMap {\n const state: VariableStoreStateMap = new VariableStoreStateMap();\n\n // Collect the names used by local definitions\n let overridingNames: Record<string, boolean> = {};\n localDefinitions.forEach((v) => {\n overridingNames[v.spec.name] = true;\n }, {} as Record<string, boolean>);\n\n // Then populate the external variables state,\n // taking care of well flagging each name as used, so the overridden state can be filled accordingly.\n const overriddenNames: Record<string, boolean> = {};\n externalDefinitions.forEach((externalDef) => {\n const source = externalDef.source;\n externalDef.definitions.forEach((v) => {\n const name = v.spec.name;\n const param = initialValues[name];\n const initialValue = param ? param : null;\n state.set(\n { source, name },\n {\n ...hydrateTemplateVariableState(v, initialValue),\n overridden: !!overridingNames[name],\n }\n );\n\n overridingNames[name] = true;\n overriddenNames[v.spec.name] = true;\n });\n }, {} as Record<string, boolean>);\n\n // Then populate the local variables state,\n // taking care the overriding state is filled according to the names used in external variables.\n localDefinitions.forEach((v) => {\n const name = v.spec.name;\n const param = initialValues[name];\n const initialValue = param ? param : null;\n state.set(\n { name },\n {\n ...hydrateTemplateVariableState(v, initialValue),\n overriding: !!overriddenNames[name],\n }\n );\n });\n\n overridingNames = {};\n externalDefinitions\n .slice()\n .reverse()\n .forEach((externalDef) => {\n const source = externalDef.source;\n externalDef.definitions.forEach((v) => {\n const name = v.spec.name;\n const value = state.get({ source, name });\n if (value) {\n value.overriding = !!overridingNames[name];\n }\n overridingNames[name] = true;\n });\n });\n return state;\n}\n"],"names":["DEFAULT_ALL_VALUE","VariableStoreStateMap","hydrateTemplateVariableState","variable","initialValue","varState","value","loading","overriding","overridden","kind","spec","options","default_value","length","firstOptionValue","allow_multiple","Array","isArray","hydrateTemplateVariableStates","localDefinitions","initialValues","externalDefinitions","state","overridingNames","forEach","v","name","overriddenNames","externalDef","source","definitions","param","set","slice","reverse","get"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/context/TemplateVariableProvider/hydrationUtils.ts"],"sourcesContent":["// Copyright 2023 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 { DEFAULT_ALL_VALUE, VariableValue, VariableDefinition } from '@perses-dev/core';\nimport { VariableStoreStateMap, VariableState } from '@perses-dev/plugin-system';\nimport { ExternalVariableDefinition } from '@perses-dev/dashboards';\n\n// TODO: move to TemplateVariableProvider/utils.ts\nfunction hydrateTemplateVariableState(variable: VariableDefinition, initialValue?: VariableValue): VariableState {\n const varState: VariableState = {\n value: null,\n loading: false,\n overriding: false,\n overridden: false,\n };\n switch (variable.kind) {\n case 'TextVariable':\n varState.value = initialValue ?? variable.spec.value;\n break;\n case 'ListVariable':\n varState.options = [];\n varState.value = initialValue ?? variable.spec.defaultValue ?? null;\n // TODO: smarter fallbacks for defaultValue when allowAllValue is true\n if (varState.options.length > 0 && !varState.value) {\n const firstOptionValue = varState.options[0]?.value ?? null;\n if (firstOptionValue !== null) {\n varState.value = variable.spec.allowMultiple ? [firstOptionValue] : firstOptionValue;\n }\n }\n\n // \"all\" variable handling assumes the value is not in an array. This is\n // handled properly during internal variable interactions, but it is possible\n // to end up in a buggy state if the variables are initialized with an \"all\"\n // value inside an array. When hydrating variables, normalize this to minimize\n // bugs.\n if (Array.isArray(varState.value) && varState.value.length === 1 && varState.value[0] === DEFAULT_ALL_VALUE) {\n varState.value = DEFAULT_ALL_VALUE;\n }\n\n break;\n default:\n break;\n }\n return varState;\n}\n\n/**\n * Build the local variable states according to the given definitions\n * @param localDefinitions local variable definitions. Dynamic part.\n * @param externalDefinitions external variables definitions. Static part.\n * @param initialValues values coming from query parameters\n */\nexport function hydrateTemplateVariableStates(\n localDefinitions: VariableDefinition[],\n initialValues: Record<string, VariableValue>,\n externalDefinitions: ExternalVariableDefinition[] = []\n): VariableStoreStateMap {\n const state: VariableStoreStateMap = new VariableStoreStateMap();\n\n // Collect the names used by local definitions\n let overridingNames: Record<string, boolean> = {};\n localDefinitions.forEach(\n (v) => {\n overridingNames[v.spec.name] = true;\n },\n {} as Record<string, boolean>\n );\n\n // Then populate the external variables state,\n // taking care of well flagging each name as used, so the overridden state can be filled accordingly.\n const overriddenNames: Record<string, boolean> = {};\n externalDefinitions.forEach(\n (externalDef) => {\n const source = externalDef.source;\n externalDef.definitions.forEach((v) => {\n const name = v.spec.name;\n const param = initialValues[name];\n const initialValue = param ? param : null;\n state.set(\n { source, name },\n {\n ...hydrateTemplateVariableState(v, initialValue),\n overridden: !!overridingNames[name],\n }\n );\n\n overridingNames[name] = true;\n overriddenNames[v.spec.name] = true;\n });\n },\n {} as Record<string, boolean>\n );\n\n // Then populate the local variables state,\n // taking care the overriding state is filled according to the names used in external variables.\n localDefinitions.forEach((v) => {\n const name = v.spec.name;\n const param = initialValues[name];\n const initialValue = param ? param : null;\n state.set(\n { name },\n {\n ...hydrateTemplateVariableState(v, initialValue),\n overriding: !!overriddenNames[name],\n }\n );\n });\n\n overridingNames = {};\n externalDefinitions\n .slice()\n .reverse()\n .forEach((externalDef) => {\n const source = externalDef.source;\n externalDef.definitions.forEach((v) => {\n const name = v.spec.name;\n const value = state.get({ source, name });\n if (value) {\n value.overriding = !!overridingNames[name];\n }\n overridingNames[name] = true;\n });\n });\n return state;\n}\n"],"names":["DEFAULT_ALL_VALUE","VariableStoreStateMap","hydrateTemplateVariableState","variable","initialValue","varState","value","loading","overriding","overridden","kind","spec","options","defaultValue","length","firstOptionValue","allowMultiple","Array","isArray","hydrateTemplateVariableStates","localDefinitions","initialValues","externalDefinitions","state","overridingNames","forEach","v","name","overriddenNames","externalDef","source","definitions","param","set","slice","reverse","get"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/TemplateVariableProvider/index.ts"],"sourcesContent":["// Copyright 2023 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 './TemplateVariableProvider';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"sources":["../../../src/context/TemplateVariableProvider/index.ts"],"sourcesContent":["// Copyright 2023 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 './TemplateVariableProvider';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,6BAA6B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/TemplateVariableProvider/query-params.ts"],"sourcesContent":["// Copyright 2023 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 { VariableValue, VariableDefinition } from '@perses-dev/core';\nimport { QueryParamConfig, useQueryParams } from 'use-query-params';\n\nconst variableQueryParameterPrefix = 'var-';\n\nexport function getURLQueryParamName(name: string) {\n return `${variableQueryParameterPrefix}${name}`;\n}\n\nexport function encodeVariableValue(value: VariableValue) {\n if (Array.isArray(value)) {\n return value.join(',');\n }\n return value;\n}\n\nexport function decodeVariableValue(value: string): VariableValue {\n if (!value) {\n return null;\n }\n const values = value.split(',');\n if (values.length === 1) {\n return values[0] as string;\n }\n return values;\n}\n\nconst VariableValueParam: QueryParamConfig<VariableValue> = {\n encode: encodeVariableValue,\n decode: (v) => {\n if (typeof v === 'string') {\n return decodeVariableValue(v);\n }\n return '';\n },\n};\n\nexport function useVariableQueryParams(defs: VariableDefinition[]) {\n const config: Record<string, typeof VariableValueParam> = {};\n defs.forEach((def) => {\n const name = getURLQueryParamName(def.spec.name);\n config[name] = VariableValueParam;\n });\n return useQueryParams(config, { updateType: 'replaceIn' });\n}\n\nexport function getInitalValuesFromQueryParameters(\n queryParamValues: Record<string, VariableValue>\n): Record<string, VariableValue> {\n const values: Record<string, VariableValue> = {};\n Object.keys(queryParamValues).forEach((key) => {\n const value = queryParamValues[key];\n if (!value) {\n return;\n }\n const name = key.replace(variableQueryParameterPrefix, '');\n values[name] = value;\n });\n return values;\n}\n"],"names":["useQueryParams","variableQueryParameterPrefix","getURLQueryParamName","name","encodeVariableValue","value","Array","isArray","join","decodeVariableValue","values","split","length","VariableValueParam","encode","decode","v","useVariableQueryParams","defs","config","forEach","def","spec","updateType","getInitalValuesFromQueryParameters","queryParamValues","Object","keys","key","replace"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,SAA2BA,cAAc,QAAQ,kBAAkB,CAAC;AAEpE,MAAMC,4BAA4B,GAAG,MAAM,AAAC;AAE5C,OAAO,SAASC,oBAAoB,CAACC,IAAY,EAAE;IACjD,OAAO,CAAC,EAAEF,4BAA4B,CAAC,EAAEE,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,OAAO,SAASC,mBAAmB,CAACC,KAAoB,EAAE;IACxD,IAAIC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;QACxB,OAAOA,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAOH,KAAK,CAAC;AACf,CAAC;AAED,OAAO,SAASI,mBAAmB,CAACJ,KAAa,EAAiB;IAChE,IAAI,CAACA,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAMK,MAAM,GAAGL,KAAK,CAACM,KAAK,CAAC,GAAG,CAAC,AAAC;IAChC,IAAID,MAAM,CAACE,MAAM,KAAK,CAAC,EAAE;QACvB,OAAOF,MAAM,CAAC,CAAC,CAAC,CAAW;IAC7B,CAAC;IACD,OAAOA,MAAM,CAAC;AAChB,CAAC;AAED,MAAMG,kBAAkB,GAAoC;IAC1DC,MAAM,EAAEV,mBAAmB;IAC3BW,MAAM,EAAE,CAACC,CAAC,GAAK;QACb,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;YACzB,OAAOP,mBAAmB,CAACO,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,AAAC;AAEF,OAAO,SAASC,sBAAsB,CAACC,IAA0B,EAAE;IACjE,MAAMC,MAAM,GAA8C,EAAE,AAAC;IAC7DD,IAAI,CAACE,OAAO,CAAC,CAACC,GAAG,GAAK;QACpB,MAAMlB,IAAI,GAAGD,oBAAoB,CAACmB,GAAG,CAACC,IAAI,CAACnB,IAAI,CAAC,AAAC;QACjDgB,MAAM,CAAChB,IAAI,CAAC,GAAGU,kBAAkB,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,OAAOb,cAAc,CAACmB,MAAM,EAAE;QAAEI,UAAU,EAAE,WAAW;KAAE,CAAC,CAAC;AAC7D,CAAC;AAED,OAAO,SAASC,kCAAkC,CAChDC,gBAA+C,EAChB;IAC/B,MAAMf,MAAM,GAAkC,EAAE,AAAC;IACjDgB,MAAM,CAACC,IAAI,CAACF,gBAAgB,CAAC,CAACL,OAAO,CAAC,CAACQ,GAAG,GAAK;QAC7C,MAAMvB,KAAK,GAAGoB,gBAAgB,CAACG,GAAG,CAAC,AAAC;QACpC,IAAI,CAACvB,KAAK,EAAE;YACV,OAAO;QACT,CAAC;QACD,MAAMF,IAAI,GAAGyB,GAAG,CAACC,OAAO,CAAC5B,4BAA4B,EAAE,EAAE,CAAC,AAAC;QAC3DS,MAAM,CAACP,IAAI,CAAC,GAAGE,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,OAAOK,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"sources":["../../../src/context/TemplateVariableProvider/query-params.ts"],"sourcesContent":["// Copyright 2023 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 { VariableValue, VariableDefinition } from '@perses-dev/core';\nimport { QueryParamConfig, useQueryParams } from 'use-query-params';\n\nconst variableQueryParameterPrefix = 'var-';\n\nexport function getURLQueryParamName(name: string) {\n return `${variableQueryParameterPrefix}${name}`;\n}\n\nexport function encodeVariableValue(value: VariableValue) {\n if (Array.isArray(value)) {\n return value.join(',');\n }\n return value;\n}\n\nexport function decodeVariableValue(value: string): VariableValue {\n if (!value) {\n return null;\n }\n const values = value.split(',');\n if (values.length === 1) {\n return values[0] as string;\n }\n return values;\n}\n\nconst VariableValueParam: QueryParamConfig<VariableValue> = {\n encode: encodeVariableValue,\n decode: (v) => {\n if (typeof v === 'string') {\n return decodeVariableValue(v);\n }\n return '';\n },\n};\n\nexport function useVariableQueryParams(defs: VariableDefinition[]) {\n const config: Record<string, typeof VariableValueParam> = {};\n defs.forEach((def) => {\n const name = getURLQueryParamName(def.spec.name);\n config[name] = VariableValueParam;\n });\n return useQueryParams(config, { updateType: 'replaceIn' });\n}\n\nexport function getInitalValuesFromQueryParameters(\n queryParamValues: Record<string, VariableValue>\n): Record<string, VariableValue> {\n const values: Record<string, VariableValue> = {};\n Object.keys(queryParamValues).forEach((key) => {\n const value = queryParamValues[key];\n if (!value) {\n return;\n }\n const name = key.replace(variableQueryParameterPrefix, '');\n values[name] = value;\n });\n return values;\n}\n"],"names":["useQueryParams","variableQueryParameterPrefix","getURLQueryParamName","name","encodeVariableValue","value","Array","isArray","join","decodeVariableValue","values","split","length","VariableValueParam","encode","decode","v","useVariableQueryParams","defs","config","forEach","def","spec","updateType","getInitalValuesFromQueryParameters","queryParamValues","Object","keys","key","replace"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,SAA2BA,cAAc,QAAQ,mBAAmB;AAEpE,MAAMC,+BAA+B;AAErC,OAAO,SAASC,qBAAqBC,IAAY;IAC/C,OAAO,CAAC,EAAEF,6BAA6B,EAAEE,KAAK,CAAC;AACjD;AAEA,OAAO,SAASC,oBAAoBC,KAAoB;IACtD,IAAIC,MAAMC,OAAO,CAACF,QAAQ;QACxB,OAAOA,MAAMG,IAAI,CAAC;IACpB;IACA,OAAOH;AACT;AAEA,OAAO,SAASI,oBAAoBJ,KAAa;IAC/C,IAAI,CAACA,OAAO;QACV,OAAO;IACT;IACA,MAAMK,SAASL,MAAMM,KAAK,CAAC;IAC3B,IAAID,OAAOE,MAAM,KAAK,GAAG;QACvB,OAAOF,MAAM,CAAC,EAAE;IAClB;IACA,OAAOA;AACT;AAEA,MAAMG,qBAAsD;IAC1DC,QAAQV;IACRW,QAAQ,CAACC;QACP,IAAI,OAAOA,MAAM,UAAU;YACzB,OAAOP,oBAAoBO;QAC7B;QACA,OAAO;IACT;AACF;AAEA,OAAO,SAASC,uBAAuBC,IAA0B;IAC/D,MAAMC,SAAoD,CAAC;IAC3DD,KAAKE,OAAO,CAAC,CAACC;QACZ,MAAMlB,OAAOD,qBAAqBmB,IAAIC,IAAI,CAACnB,IAAI;QAC/CgB,MAAM,CAAChB,KAAK,GAAGU;IACjB;IACA,OAAOb,eAAemB,QAAQ;QAAEI,YAAY;IAAY;AAC1D;AAEA,OAAO,SAASC,mCACdC,gBAA+C;IAE/C,MAAMf,SAAwC,CAAC;IAC/CgB,OAAOC,IAAI,CAACF,kBAAkBL,OAAO,CAAC,CAACQ;QACrC,MAAMvB,QAAQoB,gBAAgB,CAACG,IAAI;QACnC,IAAI,CAACvB,OAAO;YACV;QACF;QACA,MAAMF,OAAOyB,IAAIC,OAAO,CAAC5B,8BAA8B;QACvDS,MAAM,CAACP,KAAK,GAAGE;IACjB;IACA,OAAOK;AACT"}
@@ -21,15 +21,15 @@
21
21
  const currentVariable = varState.get({
22
22
  name
23
23
  });
24
- if ((currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== null && (currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== savedVariable.spec.default_value) {
24
+ if ((currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== null && (currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) !== savedVariable.spec.defaultValue) {
25
25
  modifiedVariableNames.push(name);
26
26
  isSavedVariableModified = true;
27
27
  }
28
28
  } else if (savedVariable.kind === 'TextVariable') {
29
- const currentVariable1 = varState.get({
29
+ const currentVariable = varState.get({
30
30
  name
31
31
  });
32
- const currentVariableValue = typeof (currentVariable1 === null || currentVariable1 === void 0 ? void 0 : currentVariable1.value) === 'string' ? currentVariable1.value : '';
32
+ const currentVariableValue = typeof (currentVariable === null || currentVariable === void 0 ? void 0 : currentVariable.value) === 'string' ? currentVariable.value : '';
33
33
  if (savedVariable.spec.value !== currentVariableValue) {
34
34
  modifiedVariableNames.push(name);
35
35
  isSavedVariableModified = true;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/TemplateVariableProvider/utils.ts"],"sourcesContent":["// Copyright 2023 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 { VariableDefinition } from '@perses-dev/core';\nimport { VariableStoreStateMap } from '@perses-dev/plugin-system';\nimport { ExternalVariableDefinition } from '@perses-dev/dashboards';\n\n/*\n * Check whether saved variable definitions are out of date with current default list values in Zustand store\n */\nexport function checkSavedDefaultVariableStatus(definitions: VariableDefinition[], varState: VariableStoreStateMap) {\n let isSavedVariableModified = false;\n const modifiedVariableNames: string[] = [];\n for (const savedVariable of definitions) {\n const name = savedVariable.spec.name;\n if (savedVariable.kind === 'ListVariable') {\n const currentVariable = varState.get({ name });\n if (currentVariable?.value !== null && currentVariable?.value !== savedVariable.spec.default_value) {\n modifiedVariableNames.push(name);\n isSavedVariableModified = true;\n }\n } else if (savedVariable.kind === 'TextVariable') {\n const currentVariable = varState.get({ name });\n const currentVariableValue = typeof currentVariable?.value === 'string' ? currentVariable.value : '';\n if (savedVariable.spec.value !== currentVariableValue) {\n modifiedVariableNames.push(name);\n isSavedVariableModified = true;\n }\n }\n }\n return { isSavedVariableModified, modifiedVariableNames };\n}\n\n/**\n * Merge the different kind of variable definition into a list without any duplicates (same name).\n * Respects the order of priority explained in {@link forEachVariableDefinition}\n * @param locals\n * @param externals\n */\nexport function mergeVariableDefinitions(\n locals: VariableDefinition[],\n externals: ExternalVariableDefinition[]\n): VariableDefinition[] {\n const pushed: Record<string, boolean> = {};\n const result: VariableDefinition[] = [];\n\n // Append the value only if it's not already appended\n forEachVariableDefinition(locals, externals, (value: VariableDefinition, name: string) => {\n if (!pushed[name]) {\n result.push(value);\n pushed[name] = true;\n }\n });\n return result;\n}\n\n/**\n * Find a definition by its name.\n * Respects the order of priority explained in {@link forEachVariableDefinition}\n * @param name\n * @param localDefinitions\n * @param externalDefinitions\n */\nexport function findVariableDefinitionByName(\n name: string,\n localDefinitions: VariableDefinition[],\n externalDefinitions: ExternalVariableDefinition[]\n): VariableDefinition | undefined {\n return mergeVariableDefinitions(localDefinitions, externalDefinitions).find((d) => d.spec.name === name);\n}\n\n/**\n * Loop on local and external variable definitions, respecting the order of priority:\n * - local var defs override external var defs of same name\n * - each external var defs override the external var defs coming after.\n * @param locals\n * @param externals\n * @param callbackFn\n */\nexport function forEachVariableDefinition(\n locals: VariableDefinition[],\n externals: ExternalVariableDefinition[],\n callbackFn: (varDef: VariableDefinition, name: string, source?: string) => void\n) {\n locals.forEach((v) => callbackFn(v, v.spec.name));\n externals.forEach((ext) => ext.definitions.forEach((v) => callbackFn(v, v.spec.name, ext.source)));\n}\n"],"names":["checkSavedDefaultVariableStatus","definitions","varState","isSavedVariableModified","modifiedVariableNames","savedVariable","name","spec","kind","currentVariable","get","value","default_value","push","currentVariableValue","mergeVariableDefinitions","locals","externals","pushed","result","forEachVariableDefinition","findVariableDefinitionByName","localDefinitions","externalDefinitions","find","d","callbackFn","forEach","v","ext","source"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/context/TemplateVariableProvider/utils.ts"],"sourcesContent":["// Copyright 2023 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 { VariableDefinition } from '@perses-dev/core';\nimport { VariableStoreStateMap } from '@perses-dev/plugin-system';\nimport { ExternalVariableDefinition } from '@perses-dev/dashboards';\n\n/*\n * Check whether saved variable definitions are out of date with current default list values in Zustand store\n */\nexport function checkSavedDefaultVariableStatus(definitions: VariableDefinition[], varState: VariableStoreStateMap) {\n let isSavedVariableModified = false;\n const modifiedVariableNames: string[] = [];\n for (const savedVariable of definitions) {\n const name = savedVariable.spec.name;\n if (savedVariable.kind === 'ListVariable') {\n const currentVariable = varState.get({ name });\n if (currentVariable?.value !== null && currentVariable?.value !== savedVariable.spec.defaultValue) {\n modifiedVariableNames.push(name);\n isSavedVariableModified = true;\n }\n } else if (savedVariable.kind === 'TextVariable') {\n const currentVariable = varState.get({ name });\n const currentVariableValue = typeof currentVariable?.value === 'string' ? currentVariable.value : '';\n if (savedVariable.spec.value !== currentVariableValue) {\n modifiedVariableNames.push(name);\n isSavedVariableModified = true;\n }\n }\n }\n return { isSavedVariableModified, modifiedVariableNames };\n}\n\n/**\n * Merge the different kind of variable definition into a list without any duplicates (same name).\n * Respects the order of priority explained in {@link forEachVariableDefinition}\n * @param locals\n * @param externals\n */\nexport function mergeVariableDefinitions(\n locals: VariableDefinition[],\n externals: ExternalVariableDefinition[]\n): VariableDefinition[] {\n const pushed: Record<string, boolean> = {};\n const result: VariableDefinition[] = [];\n\n // Append the value only if it's not already appended\n forEachVariableDefinition(locals, externals, (value: VariableDefinition, name: string) => {\n if (!pushed[name]) {\n result.push(value);\n pushed[name] = true;\n }\n });\n return result;\n}\n\n/**\n * Find a definition by its name.\n * Respects the order of priority explained in {@link forEachVariableDefinition}\n * @param name\n * @param localDefinitions\n * @param externalDefinitions\n */\nexport function findVariableDefinitionByName(\n name: string,\n localDefinitions: VariableDefinition[],\n externalDefinitions: ExternalVariableDefinition[]\n): VariableDefinition | undefined {\n return mergeVariableDefinitions(localDefinitions, externalDefinitions).find((d) => d.spec.name === name);\n}\n\n/**\n * Loop on local and external variable definitions, respecting the order of priority:\n * - local var defs override external var defs of same name\n * - each external var defs override the external var defs coming after.\n * @param locals\n * @param externals\n * @param callbackFn\n */\nexport function forEachVariableDefinition(\n locals: VariableDefinition[],\n externals: ExternalVariableDefinition[],\n callbackFn: (varDef: VariableDefinition, name: string, source?: string) => void\n) {\n locals.forEach((v) => callbackFn(v, v.spec.name));\n externals.forEach((ext) => ext.definitions.forEach((v) => callbackFn(v, v.spec.name, ext.source)));\n}\n"],"names":["checkSavedDefaultVariableStatus","definitions","varState","isSavedVariableModified","modifiedVariableNames","savedVariable","name","spec","kind","currentVariable","get","value","defaultValue","push","currentVariableValue","mergeVariableDefinitions","locals","externals","pushed","result","forEachVariableDefinition","findVariableDefinitionByName","localDefinitions","externalDefinitions","find","d","callbackFn","forEach","v","ext","source"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAMjC;;CAEC,GACD,OAAO,SAASA,gCAAgCC,WAAiC,EAAEC,QAA+B;IAChH,IAAIC,0BAA0B;IAC9B,MAAMC,wBAAkC,EAAE;IAC1C,KAAK,MAAMC,iBAAiBJ,YAAa;QACvC,MAAMK,OAAOD,cAAcE,IAAI,CAACD,IAAI;QACpC,IAAID,cAAcG,IAAI,KAAK,gBAAgB;YACzC,MAAMC,kBAAkBP,SAASQ,GAAG,CAAC;gBAAEJ;YAAK;YAC5C,IAAIG,CAAAA,4BAAAA,sCAAAA,gBAAiBE,KAAK,MAAK,QAAQF,CAAAA,4BAAAA,sCAAAA,gBAAiBE,KAAK,MAAKN,cAAcE,IAAI,CAACK,YAAY,EAAE;gBACjGR,sBAAsBS,IAAI,CAACP;gBAC3BH,0BAA0B;YAC5B;QACF,OAAO,IAAIE,cAAcG,IAAI,KAAK,gBAAgB;YAChD,MAAMC,kBAAkBP,SAASQ,GAAG,CAAC;gBAAEJ;YAAK;YAC5C,MAAMQ,uBAAuB,QAAOL,4BAAAA,sCAAAA,gBAAiBE,KAAK,MAAK,WAAWF,gBAAgBE,KAAK,GAAG;YAClG,IAAIN,cAAcE,IAAI,CAACI,KAAK,KAAKG,sBAAsB;gBACrDV,sBAAsBS,IAAI,CAACP;gBAC3BH,0BAA0B;YAC5B;QACF;IACF;IACA,OAAO;QAAEA;QAAyBC;IAAsB;AAC1D;AAEA;;;;;CAKC,GACD,OAAO,SAASW,yBACdC,MAA4B,EAC5BC,SAAuC;IAEvC,MAAMC,SAAkC,CAAC;IACzC,MAAMC,SAA+B,EAAE;IAEvC,qDAAqD;IACrDC,0BAA0BJ,QAAQC,WAAW,CAACN,OAA2BL;QACvE,IAAI,CAACY,MAAM,CAACZ,KAAK,EAAE;YACjBa,OAAON,IAAI,CAACF;YACZO,MAAM,CAACZ,KAAK,GAAG;QACjB;IACF;IACA,OAAOa;AACT;AAEA;;;;;;CAMC,GACD,OAAO,SAASE,6BACdf,IAAY,EACZgB,gBAAsC,EACtCC,mBAAiD;IAEjD,OAAOR,yBAAyBO,kBAAkBC,qBAAqBC,IAAI,CAAC,CAACC,IAAMA,EAAElB,IAAI,CAACD,IAAI,KAAKA;AACrG;AAEA;;;;;;;CAOC,GACD,OAAO,SAASc,0BACdJ,MAA4B,EAC5BC,SAAuC,EACvCS,UAA+E;IAE/EV,OAAOW,OAAO,CAAC,CAACC,IAAMF,WAAWE,GAAGA,EAAErB,IAAI,CAACD,IAAI;IAC/CW,UAAUU,OAAO,CAAC,CAACE,MAAQA,IAAI5B,WAAW,CAAC0B,OAAO,CAAC,CAACC,IAAMF,WAAWE,GAAGA,EAAErB,IAAI,CAACD,IAAI,EAAEuB,IAAIC,MAAM;AACjG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/context/index.ts"],"sourcesContent":["// Copyright 2023 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 './DashboardProvider';\nexport * from './DatasourceStoreProvider';\nexport * from './TemplateVariableProvider';\nexport * from './useDashboard';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"sources":["../../src/context/index.ts"],"sourcesContent":["// Copyright 2023 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 './DashboardProvider';\nexport * from './DatasourceStoreProvider';\nexport * from './TemplateVariableProvider';\nexport * from './useDashboard';\n"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,sBAAsB;AACpC,cAAc,4BAA4B;AAC1C,cAAc,6BAA6B;AAC3C,cAAc,iBAAiB"}
@@ -1,6 +1,6 @@
1
- import { DashboardResource } from '@perses-dev/core';
1
+ import { DashboardResource, EphemeralDashboardResource } from '@perses-dev/core';
2
2
  export declare function useDashboard(): {
3
- dashboard: DashboardResource;
4
- setDashboard: (dashboardResource: DashboardResource) => void;
3
+ dashboard: DashboardResource | EphemeralDashboardResource;
4
+ setDashboard: (dashboardResource: DashboardResource | EphemeralDashboardResource) => void;
5
5
  };
6
6
  //# sourceMappingURL=useDashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../src/context/useDashboard.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAkB,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AAIrF,wBAAgB,YAAY;;sCAuCe,iBAAiB;EAS3D"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../src/context/useDashboard.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAkB,iBAAiB,EAAE,0BAA0B,EAAkB,MAAM,kBAAkB,CAAC;AAIjH,wBAAgB,YAAY;;sCA0Ee,iBAAiB,GAAG,0BAA0B;EASxF"}