@perses-dev/dashboards 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/cjs/components/Dashboard.js +29 -14
  2. package/dist/cjs/components/DashboardToolbar.js +148 -20
  3. package/dist/cjs/components/GridLayout/GridItemContent.js +24 -18
  4. package/dist/cjs/components/GridLayout/GridLayout.js +88 -26
  5. package/dist/cjs/components/GridLayout/GridTitle.js +69 -31
  6. package/dist/cjs/components/GridLayout/index.js +18 -19
  7. package/dist/cjs/components/Panel/Panel.js +145 -55
  8. package/dist/cjs/components/Panel/Panel.test.js +50 -41
  9. package/dist/cjs/components/Panel/PanelContent.js +40 -12
  10. package/dist/cjs/components/Panel/index.js +16 -17
  11. package/dist/cjs/components/PanelDrawer/PanelDrawer.js +82 -107
  12. package/dist/cjs/components/PanelDrawer/PanelDrawer.test.js +91 -92
  13. package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +152 -0
  14. package/dist/cjs/components/PanelDrawer/PanelSpecEditor.js +40 -0
  15. package/dist/cjs/components/PanelDrawer/PanelTypeSelect.js +38 -0
  16. package/dist/cjs/components/PanelDrawer/index.js +28 -0
  17. package/dist/cjs/components/PanelDrawer/panel-editor-model.js +140 -0
  18. package/dist/cjs/components/PanelGroupDialog/PanelGroupDialog.js +120 -31
  19. package/dist/cjs/components/PanelGroupDialog/PanelGroupDialog.test.js +90 -83
  20. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +120 -38
  21. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.test.js +42 -27
  22. package/dist/cjs/components/TimeRangeControls/index.js +16 -17
  23. package/dist/cjs/components/Variables/Variable.js +186 -35
  24. package/dist/cjs/components/Variables/VariableList.js +100 -13
  25. package/dist/cjs/components/Variables/index.js +17 -18
  26. package/dist/cjs/components/index.js +21 -21
  27. package/dist/cjs/context/DashboardAppSlice.js +43 -31
  28. package/dist/cjs/context/DashboardProvider.js +88 -58
  29. package/dist/cjs/context/DatasourceStoreProvider.js +68 -0
  30. package/dist/cjs/context/LayoutsSlice.js +40 -27
  31. package/dist/cjs/context/QueryStringProvider.js +69 -15
  32. package/dist/cjs/context/TemplateVariableProvider.js +128 -136
  33. package/dist/cjs/context/TimeRangeProvider.js +79 -30
  34. package/dist/cjs/context/index.js +22 -22
  35. package/dist/cjs/css/styles.js +43 -39
  36. package/dist/cjs/index.js +19 -20
  37. package/dist/cjs/test/dashboard-provider.js +51 -0
  38. package/dist/cjs/test/index.js +18 -18
  39. package/dist/cjs/test/plugin-registry.js +52 -25
  40. package/dist/cjs/test/render.js +25 -22
  41. package/dist/cjs/test/setup-tests.js +4 -2
  42. package/dist/cjs/test/testDashboard.js +193 -109
  43. package/dist/cjs/utils/functions.js +9 -5
  44. package/dist/cjs/views/ViewDashboard/DashboardApp.js +67 -0
  45. package/dist/cjs/views/ViewDashboard/ViewDashboard.js +83 -0
  46. package/dist/cjs/views/ViewDashboard/index.js +28 -0
  47. package/dist/cjs/views/index.js +16 -17
  48. package/dist/components/Dashboard.js +38 -1
  49. package/dist/components/Dashboard.js.map +1 -0
  50. package/dist/components/DashboardToolbar.d.ts.map +1 -1
  51. package/dist/components/DashboardToolbar.js +154 -1
  52. package/dist/components/DashboardToolbar.js.map +1 -0
  53. package/dist/components/GridLayout/GridItemContent.js +35 -1
  54. package/dist/components/GridLayout/GridItemContent.js.map +1 -0
  55. package/dist/components/GridLayout/GridLayout.js +99 -1
  56. package/dist/components/GridLayout/GridLayout.js.map +1 -0
  57. package/dist/components/GridLayout/GridTitle.js +77 -1
  58. package/dist/components/GridLayout/GridTitle.js.map +1 -0
  59. package/dist/components/GridLayout/index.js +16 -1
  60. package/dist/components/GridLayout/index.js.map +1 -0
  61. package/dist/components/Panel/Panel.d.ts.map +1 -1
  62. package/dist/components/Panel/Panel.js +170 -1
  63. package/dist/components/Panel/Panel.js.map +1 -0
  64. package/dist/components/Panel/Panel.test.js +71 -1
  65. package/dist/components/Panel/Panel.test.js.map +1 -0
  66. package/dist/components/Panel/PanelContent.d.ts +2 -4
  67. package/dist/components/Panel/PanelContent.d.ts.map +1 -1
  68. package/dist/components/Panel/PanelContent.js +40 -1
  69. package/dist/components/Panel/PanelContent.js.map +1 -0
  70. package/dist/components/Panel/index.js +15 -1
  71. package/dist/components/Panel/index.js.map +1 -0
  72. package/dist/components/PanelDrawer/PanelDrawer.d.ts +4 -2
  73. package/dist/components/PanelDrawer/PanelDrawer.d.ts.map +1 -1
  74. package/dist/components/PanelDrawer/PanelDrawer.js +95 -1
  75. package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -0
  76. package/dist/components/PanelDrawer/PanelDrawer.test.js +103 -1
  77. package/dist/components/PanelDrawer/PanelDrawer.test.js.map +1 -0
  78. package/dist/components/PanelDrawer/PanelEditorForm.d.ts +12 -0
  79. package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -0
  80. package/dist/components/PanelDrawer/PanelEditorForm.js +142 -0
  81. package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -0
  82. package/dist/components/PanelDrawer/PanelSpecEditor.d.ts +7 -0
  83. package/dist/components/PanelDrawer/PanelSpecEditor.d.ts.map +1 -0
  84. package/dist/components/PanelDrawer/PanelSpecEditor.js +34 -0
  85. package/dist/components/PanelDrawer/PanelSpecEditor.js.map +1 -0
  86. package/dist/components/PanelDrawer/PanelTypeSelect.d.ts +8 -0
  87. package/dist/components/PanelDrawer/PanelTypeSelect.d.ts.map +1 -0
  88. package/dist/components/PanelDrawer/PanelTypeSelect.js +34 -0
  89. package/dist/components/PanelDrawer/PanelTypeSelect.js.map +1 -0
  90. package/dist/components/PanelDrawer/index.d.ts +2 -0
  91. package/dist/components/PanelDrawer/index.d.ts.map +1 -0
  92. package/dist/components/PanelDrawer/index.js +15 -0
  93. package/dist/components/PanelDrawer/index.js.map +1 -0
  94. package/dist/components/PanelDrawer/panel-editor-model.d.ts +27 -0
  95. package/dist/components/PanelDrawer/panel-editor-model.d.ts.map +1 -0
  96. package/dist/components/PanelDrawer/panel-editor-model.js +133 -0
  97. package/dist/components/PanelDrawer/panel-editor-model.js.map +1 -0
  98. package/dist/components/PanelGroupDialog/PanelGroupDialog.d.ts.map +1 -1
  99. package/dist/components/PanelGroupDialog/PanelGroupDialog.js +138 -1
  100. package/dist/components/PanelGroupDialog/PanelGroupDialog.js.map +1 -0
  101. package/dist/components/PanelGroupDialog/PanelGroupDialog.test.js +95 -1
  102. package/dist/components/PanelGroupDialog/PanelGroupDialog.test.js.map +1 -0
  103. package/dist/components/TimeRangeControls/TimeRangeControls.js +137 -1
  104. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -0
  105. package/dist/components/TimeRangeControls/TimeRangeControls.test.js +59 -1
  106. package/dist/components/TimeRangeControls/TimeRangeControls.test.js.map +1 -0
  107. package/dist/components/TimeRangeControls/index.js +15 -1
  108. package/dist/components/TimeRangeControls/index.js.map +1 -0
  109. package/dist/components/Variables/Variable.d.ts.map +1 -1
  110. package/dist/components/Variables/Variable.js +202 -1
  111. package/dist/components/Variables/Variable.js.map +1 -0
  112. package/dist/components/Variables/VariableList.js +108 -1
  113. package/dist/components/Variables/VariableList.js.map +1 -0
  114. package/dist/components/Variables/index.js +16 -1
  115. package/dist/components/Variables/index.js.map +1 -0
  116. package/dist/components/index.d.ts +1 -0
  117. package/dist/components/index.d.ts.map +1 -1
  118. package/dist/components/index.js +20 -1
  119. package/dist/components/index.js.map +1 -0
  120. package/dist/context/DashboardAppSlice.js +45 -1
  121. package/dist/context/DashboardAppSlice.js.map +1 -0
  122. package/dist/context/DashboardProvider.d.ts +4 -2
  123. package/dist/context/DashboardProvider.d.ts.map +1 -1
  124. package/dist/context/DashboardProvider.js +107 -1
  125. package/dist/context/DashboardProvider.js.map +1 -0
  126. package/dist/context/DatasourceStoreProvider.d.ts +16 -0
  127. package/dist/context/DatasourceStoreProvider.d.ts.map +1 -0
  128. package/dist/context/DatasourceStoreProvider.js +64 -0
  129. package/dist/context/DatasourceStoreProvider.js.map +1 -0
  130. package/dist/context/LayoutsSlice.js +43 -1
  131. package/dist/context/LayoutsSlice.js.map +1 -0
  132. package/dist/context/QueryStringProvider.js +40 -1
  133. package/dist/context/QueryStringProvider.js.map +1 -0
  134. package/dist/context/TemplateVariableProvider.d.ts +6 -3
  135. package/dist/context/TemplateVariableProvider.d.ts.map +1 -1
  136. package/dist/context/TemplateVariableProvider.js +192 -1
  137. package/dist/context/TemplateVariableProvider.js.map +1 -0
  138. package/dist/context/TimeRangeProvider.js +72 -1
  139. package/dist/context/TimeRangeProvider.js.map +1 -0
  140. package/dist/context/index.d.ts +3 -2
  141. package/dist/context/index.d.ts.map +1 -1
  142. package/dist/context/index.js +21 -1
  143. package/dist/context/index.js.map +1 -0
  144. package/dist/css/styles.js +186 -1
  145. package/dist/css/styles.js.map +1 -0
  146. package/dist/index.js +17 -1
  147. package/dist/index.js.map +1 -0
  148. package/dist/test/dashboard-provider.d.ts +19 -0
  149. package/dist/test/dashboard-provider.d.ts.map +1 -0
  150. package/dist/test/dashboard-provider.js +40 -0
  151. package/dist/test/dashboard-provider.js.map +1 -0
  152. package/dist/test/index.d.ts +1 -0
  153. package/dist/test/index.d.ts.map +1 -1
  154. package/dist/test/index.js +17 -1
  155. package/dist/test/index.js.map +1 -0
  156. package/dist/test/plugin-registry.d.ts +2 -3
  157. package/dist/test/plugin-registry.d.ts.map +1 -1
  158. package/dist/test/plugin-registry.js +74 -1
  159. package/dist/test/plugin-registry.js.map +1 -0
  160. package/dist/test/render.d.ts +1 -2
  161. package/dist/test/render.d.ts.map +1 -1
  162. package/dist/test/render.js +34 -1
  163. package/dist/test/render.js.map +1 -0
  164. package/dist/test/setup-tests.js +18 -1
  165. package/dist/test/setup-tests.js.map +1 -0
  166. package/dist/test/testDashboard.d.ts.map +1 -1
  167. package/dist/test/testDashboard.js +274 -1
  168. package/dist/test/testDashboard.js.map +1 -0
  169. package/dist/utils/functions.js +17 -1
  170. package/dist/utils/functions.js.map +1 -0
  171. package/dist/views/ViewDashboard/DashboardApp.d.ts +7 -0
  172. package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -0
  173. package/dist/views/ViewDashboard/DashboardApp.js +56 -0
  174. package/dist/views/ViewDashboard/DashboardApp.js.map +1 -0
  175. package/dist/views/{ViewDashboard.d.ts → ViewDashboard/ViewDashboard.d.ts} +3 -1
  176. package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -0
  177. package/dist/views/ViewDashboard/ViewDashboard.js +79 -0
  178. package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -0
  179. package/dist/views/ViewDashboard/index.d.ts +2 -0
  180. package/dist/views/ViewDashboard/index.d.ts.map +1 -0
  181. package/dist/views/ViewDashboard/index.js +15 -0
  182. package/dist/views/ViewDashboard/index.js.map +1 -0
  183. package/dist/views/index.js +15 -1
  184. package/dist/views/index.js.map +1 -0
  185. package/package.json +13 -7
  186. package/dist/cjs/components/PanelDrawer/PanelOptionsEditor.js +0 -19
  187. package/dist/cjs/views/DashboardApp.js +0 -46
  188. package/dist/cjs/views/ViewDashboard.js +0 -43
  189. package/dist/components/PanelDrawer/PanelOptionsEditor.d.ts +0 -9
  190. package/dist/components/PanelDrawer/PanelOptionsEditor.d.ts.map +0 -1
  191. package/dist/components/PanelDrawer/PanelOptionsEditor.js +0 -1
  192. package/dist/views/DashboardApp.d.ts +0 -4
  193. package/dist/views/DashboardApp.d.ts.map +0 -1
  194. package/dist/views/DashboardApp.js +0 -1
  195. package/dist/views/ViewDashboard.d.ts.map +0 -1
  196. package/dist/views/ViewDashboard.js +0 -1
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useQueryString = exports.QueryStringProvider = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
1
  // Copyright 2022 The Perses Authors
6
2
  // Licensed under the Apache License, Version 2.0 (the "License");
7
3
  // you may not use this file except in compliance with the License.
@@ -14,22 +10,80 @@ const jsx_runtime_1 = require("react/jsx-runtime");
14
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
11
  // See the License for the specific language governing permissions and
16
12
  // limitations under the License.
17
- const react_1 = require("react");
18
- const plugin_system_1 = require("@perses-dev/plugin-system");
19
- /**
20
- * Allows apps to provide their own query string implementations
21
- */
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ function _export(target, all) {
18
+ for(var name in all)Object.defineProperty(target, name, {
19
+ enumerable: true,
20
+ get: all[name]
21
+ });
22
+ }
23
+ _export(exports, {
24
+ QueryStringProvider: ()=>QueryStringProvider,
25
+ useQueryString: ()=>useQueryString
26
+ });
27
+ const _jsxRuntime = require("react/jsx-runtime");
28
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
29
+ const _pluginSystem = require("@perses-dev/plugin-system");
30
+ function _getRequireWildcardCache(nodeInterop) {
31
+ if (typeof WeakMap !== "function") return null;
32
+ var cacheBabelInterop = new WeakMap();
33
+ var cacheNodeInterop = new WeakMap();
34
+ return (_getRequireWildcardCache = function(nodeInterop) {
35
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
36
+ })(nodeInterop);
37
+ }
38
+ function _interopRequireWildcard(obj, nodeInterop) {
39
+ if (!nodeInterop && obj && obj.__esModule) {
40
+ return obj;
41
+ }
42
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
43
+ return {
44
+ default: obj
45
+ };
46
+ }
47
+ var cache = _getRequireWildcardCache(nodeInterop);
48
+ if (cache && cache.has(obj)) {
49
+ return cache.get(obj);
50
+ }
51
+ var newObj = {};
52
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
53
+ for(var key in obj){
54
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
55
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
56
+ if (desc && (desc.get || desc.set)) {
57
+ Object.defineProperty(newObj, key, desc);
58
+ } else {
59
+ newObj[key] = obj[key];
60
+ }
61
+ }
62
+ }
63
+ newObj.default = obj;
64
+ if (cache) {
65
+ cache.set(obj, newObj);
66
+ }
67
+ return newObj;
68
+ }
22
69
  function QueryStringProvider(props) {
23
- const { queryString, setQueryString, children } = props;
24
- const ctx = (0, react_1.useMemo)(() => ({ queryString, setQueryString }), [queryString, setQueryString]);
25
- return (0, jsx_runtime_1.jsx)(plugin_system_1.QueryStringContext.Provider, { value: ctx, children: children });
70
+ const { queryString , setQueryString , children } = props;
71
+ const ctx = (0, _react.useMemo)(()=>({
72
+ queryString,
73
+ setQueryString
74
+ }), [
75
+ queryString,
76
+ setQueryString
77
+ ]);
78
+ return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginSystem.QueryStringContext.Provider, {
79
+ value: ctx,
80
+ children: children
81
+ });
26
82
  }
27
- exports.QueryStringProvider = QueryStringProvider;
28
83
  function useQueryString() {
29
- const ctx = (0, react_1.useContext)(plugin_system_1.QueryStringContext);
84
+ const ctx = (0, _react.useContext)(_pluginSystem.QueryStringContext);
30
85
  if (ctx === undefined) {
31
86
  throw new Error('No QueryStringContext found. Did you forget a Provider?');
32
87
  }
33
88
  return ctx;
34
89
  }
35
- exports.useQueryString = useQueryString;
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TemplateVariableProvider = exports.useTemplateVariableStore = exports.useTemplateVariableDefinitions = exports.useTemplateVariableActions = exports.useTemplateVariable = exports.useTemplateVariableValues = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
1
  // Copyright 2022 The Perses Authors
6
2
  // Licensed under the Apache License, Version 2.0 (the "License");
7
3
  // you may not use this file except in compliance with the License.
@@ -14,15 +10,33 @@ const jsx_runtime_1 = require("react/jsx-runtime");
14
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
11
  // See the License for the specific language governing permissions and
16
12
  // limitations under the License.
17
- const react_1 = require("react");
18
- const zustand_1 = require("zustand");
19
- const immer_1 = require("zustand/middleware/immer");
20
- const middleware_1 = require("zustand/middleware");
21
- const plugin_system_1 = require("@perses-dev/plugin-system");
22
- const core_1 = require("@perses-dev/core");
23
- const TemplateVariableStoreContext = (0, react_1.createContext)(undefined);
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ function _export(target, all) {
18
+ for(var name in all)Object.defineProperty(target, name, {
19
+ enumerable: true,
20
+ get: all[name]
21
+ });
22
+ }
23
+ _export(exports, {
24
+ useTemplateVariableValues: ()=>useTemplateVariableValues,
25
+ useTemplateVariable: ()=>useTemplateVariable,
26
+ useTemplateVariableActions: ()=>useTemplateVariableActions,
27
+ useTemplateVariableDefinitions: ()=>useTemplateVariableDefinitions,
28
+ useTemplateVariableStore: ()=>useTemplateVariableStore,
29
+ TemplateVariableProvider: ()=>TemplateVariableProvider
30
+ });
31
+ const _jsxRuntime = require("react/jsx-runtime");
32
+ const _react = require("react");
33
+ const _zustand = require("zustand");
34
+ const _immer = require("zustand/middleware/immer");
35
+ const _middleware = require("zustand/middleware");
36
+ const _pluginSystem = require("@perses-dev/plugin-system");
37
+ const TemplateVariableStoreContext = /*#__PURE__*/ (0, _react.createContext)(undefined);
24
38
  function useTemplateVariableStoreCtx() {
25
- const context = (0, react_1.useContext)(TemplateVariableStoreContext);
39
+ const context = (0, _react.useContext)(TemplateVariableStoreContext);
26
40
  if (!context) {
27
41
  throw new Error('TemplateVariableStoreContext not initialized');
28
42
  }
@@ -30,10 +44,10 @@ function useTemplateVariableStoreCtx() {
30
44
  }
31
45
  function useTemplateVariableValues(variableNames) {
32
46
  const store = useTemplateVariableStoreCtx();
33
- const state = (0, zustand_1.useStore)(store, (s) => {
47
+ const state = (0, _zustand.useStore)(store, (s)=>{
34
48
  const names = variableNames !== null && variableNames !== void 0 ? variableNames : Object.keys(s.variableState);
35
49
  const vars = {};
36
- names.forEach((name) => {
50
+ names.forEach((name)=>{
37
51
  const varState = s.variableState[name];
38
52
  if (!varState) {
39
53
  return;
@@ -41,167 +55,145 @@ function useTemplateVariableValues(variableNames) {
41
55
  vars[name] = varState;
42
56
  });
43
57
  return vars;
44
- }, (left, right) => {
58
+ }, (left, right)=>{
45
59
  return JSON.stringify(left) === JSON.stringify(right);
46
60
  });
47
61
  return state;
48
62
  }
49
- exports.useTemplateVariableValues = useTemplateVariableValues;
50
63
  function useTemplateVariable(name) {
51
64
  const store = useTemplateVariableStoreCtx();
52
- return (0, zustand_1.useStore)(store, (s) => {
65
+ return (0, _zustand.useStore)(store, (s)=>{
53
66
  const variableState = s.variableState[name];
54
- const definition = s.variableDefinitions.find((v) => v.name === name);
67
+ const definition = s.variableDefinitions.find((v)=>v.spec.name === name);
55
68
  return {
56
69
  state: variableState,
57
- definition,
70
+ definition
58
71
  };
59
72
  });
60
73
  }
61
- exports.useTemplateVariable = useTemplateVariable;
62
74
  function useTemplateVariableActions() {
63
75
  const store = useTemplateVariableStoreCtx();
64
- return (0, zustand_1.useStore)(store, (s) => {
76
+ return (0, _zustand.useStore)(store, (s)=>{
65
77
  return {
66
78
  setVariableValue: s.setVariableValue,
67
- loadTemplateVariable: s.loadTemplateVariable,
79
+ setVariableLoading: s.setVariableLoading,
80
+ setVariableOptions: s.setVariableOptions
68
81
  };
69
82
  });
70
83
  }
71
- exports.useTemplateVariableActions = useTemplateVariableActions;
72
84
  function useTemplateVariableDefinitions() {
73
85
  const store = useTemplateVariableStoreCtx();
74
- return (0, zustand_1.useStore)(store, (s) => s.variableDefinitions);
86
+ return (0, _zustand.useStore)(store, (s)=>s.variableDefinitions);
75
87
  }
76
- exports.useTemplateVariableDefinitions = useTemplateVariableDefinitions;
77
88
  function useTemplateVariableStore() {
78
89
  const store = useTemplateVariableStoreCtx();
79
- return (0, zustand_1.useStore)(store);
80
- }
81
- exports.useTemplateVariableStore = useTemplateVariableStore;
82
- function PluginProvider({ children }) {
83
- const values = useTemplateVariableValues();
84
- return (0, jsx_runtime_1.jsx)(plugin_system_1.TemplateVariableContext.Provider, { value: { state: values }, children: children });
90
+ return (0, _zustand.useStore)(store);
85
91
  }
86
- function createTemplateVariableSrvStore({ initialVariableDefinitions = [] }) {
87
- const store = (0, zustand_1.createStore)()((0, middleware_1.devtools)((0, immer_1.immer)((set, get) => ({
88
- variableState: hydrateTemplateVariableStates(initialVariableDefinitions),
89
- variableDefinitions: initialVariableDefinitions,
90
- // Actions
91
- loadTemplateVariable: async (name) => {
92
- const def = get().variableDefinitions.find((v) => v.name === name);
93
- if (!def) {
94
- // Can't find the variable definition
95
- return;
92
+ function PluginProvider({ children }) {
93
+ const originalValues = useTemplateVariableValues();
94
+ const values = (0, _react.useMemo)(()=>{
95
+ const contextValues = {};
96
+ // This will loop through all the current variables values
97
+ // and update any variables that have ALL_VALUE as their current value
98
+ // to include all options.
99
+ Object.keys(originalValues).forEach((name)=>{
100
+ const v = {
101
+ ...originalValues[name]
102
+ };
103
+ if (v.value === _pluginSystem.DEFAULT_ALL_VALUE) {
104
+ var ref;
105
+ var ref1;
106
+ v.value = (ref1 = (ref = v.options) === null || ref === void 0 ? void 0 : ref.map((o)=>o.value)) !== null && ref1 !== void 0 ? ref1 : null;
96
107
  }
97
- set((state) => {
98
- const varState = state.variableState[name];
99
- if (varState) {
100
- varState.loading = true;
101
- }
102
- });
103
- // Replace with loader
104
- const { data: values } = await loadTemplateVariables();
105
- if (def.options.allowAllValue) {
106
- values.unshift(getAllOption());
107
- }
108
- set((state) => {
109
- const varState = state.variableState[name];
110
- if (varState) {
111
- varState.options = values;
112
- varState.loading = false;
113
- }
114
- });
115
- return;
108
+ contextValues[name] = v;
109
+ });
110
+ return contextValues;
111
+ }, [
112
+ originalValues
113
+ ]);
114
+ return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginSystem.TemplateVariableContext.Provider, {
115
+ value: {
116
+ state: values
116
117
  },
117
- setVariableValue: (name, value) => set((state) => {
118
- let val = value;
119
- const varState = state.variableState[name];
120
- if (!varState) {
121
- return;
122
- }
123
- // Make sure there is only one all value
124
- if (Array.isArray(val) && val.includes(core_1.DEFAULT_ALL_VALUE)) {
125
- if (val.at(-1) === core_1.DEFAULT_ALL_VALUE) {
126
- val = [core_1.DEFAULT_ALL_VALUE];
127
- }
128
- else {
129
- val = val.filter((v) => v !== core_1.DEFAULT_ALL_VALUE);
130
- }
131
- }
132
- varState.value = val;
133
- }),
134
- }))));
135
- return store;
136
- }
137
- function TemplateVariableProvider({ children, initialVariableDefinitions = [], }) {
138
- const store = createTemplateVariableSrvStore({ initialVariableDefinitions });
139
- return ((0, jsx_runtime_1.jsx)(TemplateVariableStoreContext.Provider, { value: store, children: (0, jsx_runtime_1.jsx)(PluginProvider, { children: children }) }));
118
+ children: children
119
+ });
140
120
  }
141
- exports.TemplateVariableProvider = TemplateVariableProvider;
142
- /** Helpers */
143
- async function loadTemplateVariables() {
144
- // @TODO: Replace with plugin call
145
- // simluate sleep for 2 seconds
146
- // random time between 1 and 3 seconds
147
- const sleepTime = Math.floor(Math.random() * 10000) + 1000;
148
- await new Promise((resolve) => setTimeout(resolve, sleepTime));
149
- return {
150
- data: [
151
- 'a',
152
- 'b',
153
- 'c',
154
- 'd',
155
- 'e',
156
- 'f',
157
- 'g',
158
- 'h',
159
- 'i',
160
- 'j',
161
- 'k',
162
- 'l',
163
- 'm',
164
- 'n',
165
- 'o',
166
- 'p',
167
- 'q',
168
- 'r',
169
- 's',
170
- 't',
171
- 'u',
172
- 'v',
173
- 'w',
174
- 'x',
175
- 'y',
176
- 'z',
177
- ].map((v) => ({ label: v, value: v })),
178
- };
121
+ function createTemplateVariableSrvStore({ initialVariableDefinitions =[] }) {
122
+ const store = (0, _zustand.createStore)()((0, _middleware.devtools)((0, _immer.immer)((set)=>({
123
+ variableState: hydrateTemplateVariableStates(initialVariableDefinitions),
124
+ variableDefinitions: initialVariableDefinitions,
125
+ setVariableOptions (name, options) {
126
+ set((state)=>{
127
+ const varState = state.variableState[name];
128
+ if (!varState) {
129
+ return;
130
+ }
131
+ varState.options = options;
132
+ });
133
+ },
134
+ setVariableLoading (name, loading) {
135
+ set((state)=>{
136
+ const varState = state.variableState[name];
137
+ if (!varState) {
138
+ return;
139
+ }
140
+ varState.loading = loading;
141
+ });
142
+ },
143
+ setVariableValue: (name, value)=>set((state)=>{
144
+ let val = value;
145
+ const varState = state.variableState[name];
146
+ if (!varState) {
147
+ return;
148
+ }
149
+ // Make sure there is only one all value
150
+ if (Array.isArray(val) && val.includes(_pluginSystem.DEFAULT_ALL_VALUE)) {
151
+ if (val.at(-1) === _pluginSystem.DEFAULT_ALL_VALUE) {
152
+ val = _pluginSystem.DEFAULT_ALL_VALUE;
153
+ } else {
154
+ val = val.filter((v)=>v !== _pluginSystem.DEFAULT_ALL_VALUE);
155
+ }
156
+ }
157
+ varState.value = val;
158
+ })
159
+ }))));
160
+ return store;
179
161
  }
180
- function getAllOption() {
181
- return { label: 'All', value: core_1.DEFAULT_ALL_VALUE };
162
+ function TemplateVariableProvider({ children , initialVariableDefinitions =[] }) {
163
+ const [store] = (0, _react.useState)(createTemplateVariableSrvStore({
164
+ initialVariableDefinitions
165
+ }));
166
+ return /*#__PURE__*/ (0, _jsxRuntime.jsx)(TemplateVariableStoreContext.Provider, {
167
+ value: store,
168
+ children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(PluginProvider, {
169
+ children: children
170
+ })
171
+ });
182
172
  }
183
- function hydrateTemplateVariableState(definition) {
184
- var _a, _b;
173
+ /** Helpers */ function hydrateTemplateVariableState(definition) {
185
174
  const v = definition;
175
+ var _default_value;
186
176
  const varState = {
187
- value: null,
188
- loading: false,
177
+ value: (_default_value = v.spec.default_value) !== null && _default_value !== void 0 ? _default_value : null,
178
+ loading: false
189
179
  };
190
- switch (v.kind) {
180
+ switch(v.kind){
191
181
  case 'TextVariable':
192
- varState.value = v.options.value;
182
+ varState.value = v.spec.value;
193
183
  break;
194
184
  case 'ListVariable':
195
185
  varState.options = [];
196
- if (v.options.allowAllValue) {
197
- varState.options.unshift({ label: 'All', value: core_1.DEFAULT_ALL_VALUE });
198
- }
199
186
  if (varState.options.length > 0 && !varState.value) {
200
- const firstOptionValue = (_b = (_a = varState.options[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
187
+ var ref;
188
+ var ref1;
189
+ const firstOptionValue = (ref1 = (ref = varState.options[0]) === null || ref === void 0 ? void 0 : ref.value) !== null && ref1 !== void 0 ? ref1 : null;
201
190
  if (firstOptionValue !== null) {
202
- varState.value = v.options.allowMultiple ? [firstOptionValue] : firstOptionValue;
191
+ varState.value = v.spec.allow_multiple ? [
192
+ firstOptionValue
193
+ ] : firstOptionValue;
203
194
  }
204
195
  }
196
+ break;
205
197
  default:
206
198
  break;
207
199
  }
@@ -209,8 +201,8 @@ function hydrateTemplateVariableState(definition) {
209
201
  }
210
202
  function hydrateTemplateVariableStates(definitions) {
211
203
  const state = {};
212
- definitions.forEach((v) => {
213
- state[v.name] = hydrateTemplateVariableState(v);
204
+ definitions.forEach((v)=>{
205
+ state[v.spec.name] = hydrateTemplateVariableState(v);
214
206
  });
215
207
  return state;
216
208
  }
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TimeRangeProvider = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
1
  // Copyright 2022 The Perses Authors
6
2
  // Licensed under the Apache License, Version 2.0 (the "License");
7
3
  // you may not use this file except in compliance with the License.
@@ -14,35 +10,77 @@ const jsx_runtime_1 = require("react/jsx-runtime");
14
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
11
  // See the License for the specific language governing permissions and
16
12
  // limitations under the License.
17
- const react_1 = require("react");
18
- const date_fns_1 = require("date-fns");
19
- const core_1 = require("@perses-dev/core");
20
- const plugin_system_1 = require("@perses-dev/plugin-system");
21
- /**
22
- * Provider implementation that supplies the time range state at runtime.
23
- */
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ Object.defineProperty(exports, "TimeRangeProvider", {
18
+ enumerable: true,
19
+ get: ()=>TimeRangeProvider
20
+ });
21
+ const _jsxRuntime = require("react/jsx-runtime");
22
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
23
+ const _dateFns = require("date-fns");
24
+ const _core = require("@perses-dev/core");
25
+ const _pluginSystem = require("@perses-dev/plugin-system");
26
+ function _getRequireWildcardCache(nodeInterop) {
27
+ if (typeof WeakMap !== "function") return null;
28
+ var cacheBabelInterop = new WeakMap();
29
+ var cacheNodeInterop = new WeakMap();
30
+ return (_getRequireWildcardCache = function(nodeInterop) {
31
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
32
+ })(nodeInterop);
33
+ }
34
+ function _interopRequireWildcard(obj, nodeInterop) {
35
+ if (!nodeInterop && obj && obj.__esModule) {
36
+ return obj;
37
+ }
38
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
39
+ return {
40
+ default: obj
41
+ };
42
+ }
43
+ var cache = _getRequireWildcardCache(nodeInterop);
44
+ if (cache && cache.has(obj)) {
45
+ return cache.get(obj);
46
+ }
47
+ var newObj = {};
48
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
49
+ for(var key in obj){
50
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
51
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
52
+ if (desc && (desc.get || desc.set)) {
53
+ Object.defineProperty(newObj, key, desc);
54
+ } else {
55
+ newObj[key] = obj[key];
56
+ }
57
+ }
58
+ }
59
+ newObj.default = obj;
60
+ if (cache) {
61
+ cache.set(obj, newObj);
62
+ }
63
+ return newObj;
64
+ }
24
65
  function TimeRangeProvider(props) {
25
- const { initialTimeRange, children, onTimeRangeChange } = props;
26
- const { queryString, setQueryString } = (0, plugin_system_1.useQueryString)();
27
- const defaultTimeRange = (0, core_1.isRelativeTimeRange)(initialTimeRange)
28
- ? (0, core_1.toAbsoluteTimeRange)(initialTimeRange)
29
- : initialTimeRange;
30
- const [timeRange, setActiveTimeRange] = (0, react_1.useState)(defaultTimeRange);
31
- const setTimeRange = (0, react_1.useCallback)((value) => {
66
+ const { initialTimeRange , children , onTimeRangeChange } = props;
67
+ const { queryString , setQueryString } = (0, _pluginSystem.useQueryString)();
68
+ const defaultTimeRange = (0, _core.isRelativeTimeRange)(initialTimeRange) ? (0, _core.toAbsoluteTimeRange)(initialTimeRange) : initialTimeRange;
69
+ const [timeRange, setActiveTimeRange] = (0, _react.useState)(defaultTimeRange);
70
+ const setTimeRange = (0, _react.useCallback)((value)=>{
32
71
  if (onTimeRangeChange !== undefined) {
33
72
  // optional callback to override default behavior
34
73
  onTimeRangeChange(value);
35
74
  return;
36
75
  }
37
- if ((0, core_1.isRelativeTimeRange)(value)) {
76
+ if ((0, _core.isRelativeTimeRange)(value)) {
38
77
  if (setQueryString) {
39
78
  queryString.set('start', value.pastDuration);
40
79
  // end not required for relative time but may have been set by AbsoluteTimePicker or zoom
41
80
  queryString.delete('end');
42
81
  setQueryString(queryString);
43
- }
44
- else {
45
- setActiveTimeRange((0, core_1.toAbsoluteTimeRange)(value));
82
+ } else {
83
+ setActiveTimeRange((0, _core.toAbsoluteTimeRange)(value));
46
84
  }
47
85
  return;
48
86
  }
@@ -50,17 +88,28 @@ function TimeRangeProvider(props) {
50
88
  if (setQueryString) {
51
89
  // Absolute URL example) ?start=1663707045000&end=1663713330000
52
90
  // currently set from ViewDashboard initial queryString, AbsoluteTimePicker, or LineChart panel onDataZoom
53
- const startUnixMs = (0, date_fns_1.getUnixTime)(value.start) * 1000;
54
- const endUnixMs = (0, date_fns_1.getUnixTime)(value.end) * 1000;
91
+ const startUnixMs = (0, _dateFns.getUnixTime)(value.start) * 1000;
92
+ const endUnixMs = (0, _dateFns.getUnixTime)(value.end) * 1000;
55
93
  queryString.set('start', startUnixMs.toString());
56
94
  queryString.set('end', endUnixMs.toString());
57
95
  setQueryString(queryString);
58
- }
59
- else {
96
+ } else {
60
97
  setActiveTimeRange(value);
61
98
  }
62
- }, [queryString, setQueryString, onTimeRangeChange]);
63
- const ctx = (0, react_1.useMemo)(() => ({ timeRange, setTimeRange }), [timeRange, setTimeRange]);
64
- return (0, jsx_runtime_1.jsx)(plugin_system_1.TimeRangeContext.Provider, { value: ctx, children: children });
99
+ }, [
100
+ queryString,
101
+ setQueryString,
102
+ onTimeRangeChange
103
+ ]);
104
+ const ctx = (0, _react.useMemo)(()=>({
105
+ timeRange,
106
+ setTimeRange
107
+ }), [
108
+ timeRange,
109
+ setTimeRange
110
+ ]);
111
+ return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_pluginSystem.TimeRangeContext.Provider, {
112
+ value: ctx,
113
+ children: children
114
+ });
65
115
  }
66
- exports.TimeRangeProvider = TimeRangeProvider;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  // Copyright 2022 The Perses Authors
3
2
  // Licensed under the Apache License, Version 2.0 (the "License");
4
3
  // you may not use this file except in compliance with the License.
@@ -11,24 +10,25 @@
11
10
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
11
  // See the License for the specific language governing permissions and
13
12
  // limitations under the License.
14
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- var desc = Object.getOwnPropertyDescriptor(m, k);
17
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
- desc = { enumerable: true, get: function() { return m[k]; } };
19
- }
20
- Object.defineProperty(o, k2, desc);
21
- }) : (function(o, m, k, k2) {
22
- if (k2 === undefined) k2 = k;
23
- o[k2] = m[k];
24
- }));
25
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- __exportStar(require("./DashboardAppSlice"), exports);
30
- __exportStar(require("./LayoutsSlice"), exports);
31
- __exportStar(require("./TemplateVariableProvider"), exports);
32
- __exportStar(require("./DashboardProvider"), exports);
33
- __exportStar(require("./TimeRangeProvider"), exports);
34
- __exportStar(require("./QueryStringProvider"), exports);
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ _exportStar(require("./DashboardAppSlice"), exports);
18
+ _exportStar(require("./DashboardProvider"), exports);
19
+ _exportStar(require("./DatasourceStoreProvider"), exports);
20
+ _exportStar(require("./LayoutsSlice"), exports);
21
+ _exportStar(require("./QueryStringProvider"), exports);
22
+ _exportStar(require("./TemplateVariableProvider"), exports);
23
+ _exportStar(require("./TimeRangeProvider"), exports);
24
+ function _exportStar(from, to) {
25
+ Object.keys(from).forEach(function(k) {
26
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
27
+ enumerable: true,
28
+ get: function() {
29
+ return from[k];
30
+ }
31
+ });
32
+ });
33
+ return from;
34
+ }