@grafana/scenes 0.0.20 → 0.0.21

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 (31) hide show
  1. package/README.md +1 -1
  2. package/dist/esm/components/EmbeddedScene.js +10 -9
  3. package/dist/esm/components/EmbeddedScene.js.map +1 -1
  4. package/dist/esm/components/SceneByFrameRepeater.js +8 -8
  5. package/dist/esm/components/SceneByFrameRepeater.js.map +1 -1
  6. package/dist/esm/components/SceneReactObject.js +34 -0
  7. package/dist/esm/components/SceneReactObject.js.map +1 -0
  8. package/dist/esm/components/SceneRefreshPicker.js +8 -9
  9. package/dist/esm/components/SceneRefreshPicker.js.map +1 -1
  10. package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
  11. package/dist/esm/components/VizPanel/VizPanelMenu.js +42 -0
  12. package/dist/esm/components/VizPanel/VizPanelMenu.js.map +1 -0
  13. package/dist/esm/components/VizPanel/VizPanelRenderer.js +11 -3
  14. package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
  15. package/dist/esm/core/SceneObjectBase.js +21 -9
  16. package/dist/esm/core/SceneObjectBase.js.map +1 -1
  17. package/dist/esm/core/types.js.map +1 -1
  18. package/dist/esm/index.js +2 -0
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/querying/SceneDataTransformer.js +10 -9
  21. package/dist/esm/querying/SceneDataTransformer.js.map +1 -1
  22. package/dist/esm/querying/SceneQueryRunner.js +34 -18
  23. package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
  24. package/dist/esm/variables/sets/SceneVariableSet.js +29 -29
  25. package/dist/esm/variables/sets/SceneVariableSet.js.map +1 -1
  26. package/dist/esm/variables/variants/query/QueryVariable.js +10 -12
  27. package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
  28. package/dist/index.d.ts +85 -30
  29. package/dist/index.js +452 -350
  30. package/dist/index.js.map +1 -1
  31. package/package.json +3 -2
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ var rxjs = require('rxjs');
8
8
  var uuid = require('uuid');
9
9
  var ui = require('@grafana/ui');
10
10
  var lodash = require('lodash');
11
+ var schema = require('@grafana/schema');
11
12
  var runtime = require('@grafana/runtime');
12
13
  var e2eSelectors = require('@grafana/e2e-selectors');
13
14
  var css = require('@emotion/css');
@@ -31,21 +32,21 @@ class SceneObjectStateChangedEvent extends data.BusEventWithPayload {
31
32
  }
32
33
  SceneObjectStateChangedEvent.type = "scene-object-state-change";
33
34
 
34
- var __defProp$h = Object.defineProperty;
35
+ var __defProp$i = Object.defineProperty;
35
36
  var __defProps$6 = Object.defineProperties;
36
37
  var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
37
- var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
38
- var __hasOwnProp$h = Object.prototype.hasOwnProperty;
39
- var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
40
- var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
41
- var __spreadValues$h = (a, b) => {
38
+ var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
39
+ var __hasOwnProp$i = Object.prototype.hasOwnProperty;
40
+ var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
41
+ var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
42
+ var __spreadValues$i = (a, b) => {
42
43
  for (var prop in b || (b = {}))
43
- if (__hasOwnProp$h.call(b, prop))
44
- __defNormalProp$h(a, prop, b[prop]);
45
- if (__getOwnPropSymbols$h)
46
- for (var prop of __getOwnPropSymbols$h(b)) {
47
- if (__propIsEnum$h.call(b, prop))
48
- __defNormalProp$h(a, prop, b[prop]);
44
+ if (__hasOwnProp$i.call(b, prop))
45
+ __defNormalProp$i(a, prop, b[prop]);
46
+ if (__getOwnPropSymbols$i)
47
+ for (var prop of __getOwnPropSymbols$i(b)) {
48
+ if (__propIsEnum$i.call(b, prop))
49
+ __defNormalProp$i(a, prop, b[prop]);
49
50
  }
50
51
  return a;
51
52
  };
@@ -53,11 +54,11 @@ var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
53
54
  var __objRest = (source, exclude) => {
54
55
  var target = {};
55
56
  for (var prop in source)
56
- if (__hasOwnProp$h.call(source, prop) && exclude.indexOf(prop) < 0)
57
+ if (__hasOwnProp$i.call(source, prop) && exclude.indexOf(prop) < 0)
57
58
  target[prop] = source[prop];
58
- if (source != null && __getOwnPropSymbols$h)
59
- for (var prop of __getOwnPropSymbols$h(source)) {
60
- if (exclude.indexOf(prop) < 0 && __propIsEnum$h.call(source, prop))
59
+ if (source != null && __getOwnPropSymbols$i)
60
+ for (var prop of __getOwnPropSymbols$i(source)) {
61
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$i.call(source, prop))
61
62
  target[prop] = source[prop];
62
63
  }
63
64
  return target;
@@ -72,7 +73,7 @@ function SceneComponentWrapperWithoutMemo(_a) {
72
73
  ]);
73
74
  var _a2;
74
75
  const Component = (_a2 = model.constructor["Component"]) != null ? _a2 : EmptyRenderer;
75
- const inner = /* @__PURE__ */ React__default["default"].createElement(Component, __spreadProps$6(__spreadValues$h({}, otherProps), {
76
+ const inner = /* @__PURE__ */ React__default["default"].createElement(Component, __spreadProps$6(__spreadValues$i({}, otherProps), {
76
77
  model,
77
78
  isEditing
78
79
  }));
@@ -111,19 +112,19 @@ function getSceneEditor$1(sceneObject) {
111
112
  throw new Error("No editor found in scene tree");
112
113
  }
113
114
 
114
- var __defProp$g = Object.defineProperty;
115
- var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
116
- var __hasOwnProp$g = Object.prototype.hasOwnProperty;
117
- var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
118
- var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
119
- var __spreadValues$g = (a, b) => {
115
+ var __defProp$h = Object.defineProperty;
116
+ var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
117
+ var __hasOwnProp$h = Object.prototype.hasOwnProperty;
118
+ var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
119
+ var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
120
+ var __spreadValues$h = (a, b) => {
120
121
  for (var prop in b || (b = {}))
121
- if (__hasOwnProp$g.call(b, prop))
122
- __defNormalProp$g(a, prop, b[prop]);
123
- if (__getOwnPropSymbols$g)
124
- for (var prop of __getOwnPropSymbols$g(b)) {
125
- if (__propIsEnum$g.call(b, prop))
126
- __defNormalProp$g(a, prop, b[prop]);
122
+ if (__hasOwnProp$h.call(b, prop))
123
+ __defNormalProp$h(a, prop, b[prop]);
124
+ if (__getOwnPropSymbols$h)
125
+ for (var prop of __getOwnPropSymbols$h(b)) {
126
+ if (__propIsEnum$h.call(b, prop))
127
+ __defNormalProp$h(a, prop, b[prop]);
127
128
  }
128
129
  return a;
129
130
  };
@@ -142,7 +143,7 @@ function forEachSceneObjectInState(state, callback) {
142
143
  }
143
144
  }
144
145
  function cloneSceneObject(sceneObject, withState) {
145
- const clonedState = __spreadValues$g({}, sceneObject.state);
146
+ const clonedState = __spreadValues$h({}, sceneObject.state);
146
147
  for (const key in clonedState) {
147
148
  const propValue = clonedState[key];
148
149
  if (propValue instanceof SceneObjectBase) {
@@ -164,33 +165,33 @@ function cloneSceneObject(sceneObject, withState) {
164
165
  return new sceneObject.constructor(clonedState);
165
166
  }
166
167
 
167
- var __defProp$f = Object.defineProperty;
168
- var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
169
- var __hasOwnProp$f = Object.prototype.hasOwnProperty;
170
- var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
171
- var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
172
- var __spreadValues$f = (a, b) => {
168
+ var __defProp$g = Object.defineProperty;
169
+ var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
170
+ var __hasOwnProp$g = Object.prototype.hasOwnProperty;
171
+ var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
172
+ var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
173
+ var __spreadValues$g = (a, b) => {
173
174
  for (var prop in b || (b = {}))
174
- if (__hasOwnProp$f.call(b, prop))
175
- __defNormalProp$f(a, prop, b[prop]);
176
- if (__getOwnPropSymbols$f)
177
- for (var prop of __getOwnPropSymbols$f(b)) {
178
- if (__propIsEnum$f.call(b, prop))
179
- __defNormalProp$f(a, prop, b[prop]);
175
+ if (__hasOwnProp$g.call(b, prop))
176
+ __defNormalProp$g(a, prop, b[prop]);
177
+ if (__getOwnPropSymbols$g)
178
+ for (var prop of __getOwnPropSymbols$g(b)) {
179
+ if (__propIsEnum$g.call(b, prop))
180
+ __defNormalProp$g(a, prop, b[prop]);
180
181
  }
181
182
  return a;
182
183
  };
183
184
  class SceneObjectBase {
184
185
  constructor(state) {
185
186
  this._isActive = false;
186
- this._subject = new rxjs.Subject();
187
187
  this._events = new data.EventBusSrv();
188
+ this._activationHandlers = [];
189
+ this._deactivationHandlers = [];
188
190
  this._subs = new rxjs.Subscription();
189
191
  if (!state.key) {
190
192
  state.key = uuid.v4();
191
193
  }
192
194
  this._state = Object.freeze(state);
193
- this._subject.next(state);
194
195
  this.setParent();
195
196
  }
196
197
  get state() {
@@ -218,18 +219,21 @@ class SceneObjectBase {
218
219
  setParent() {
219
220
  forEachSceneObjectInState(this._state, (child) => child._parent = this);
220
221
  }
221
- subscribeToState(observerOrNext) {
222
- return this._subject.subscribe(observerOrNext);
222
+ subscribeToState(handler) {
223
+ return this._events.subscribe(SceneObjectStateChangedEvent, (event) => {
224
+ if (event.payload.changedObject === this) {
225
+ handler(event.payload.newState, event.payload.prevState);
226
+ }
227
+ });
223
228
  }
224
229
  subscribeToEvent(eventType, handler) {
225
230
  return this._events.subscribe(eventType, handler);
226
231
  }
227
232
  setState(update) {
228
233
  const prevState = this._state;
229
- const newState = __spreadValues$f(__spreadValues$f({}, this._state), update);
234
+ const newState = __spreadValues$g(__spreadValues$g({}, this._state), update);
230
235
  this._state = Object.freeze(newState);
231
236
  this.setParent();
232
- this._subject.next(newState);
233
237
  this.publishEvent(
234
238
  new SceneObjectStateChangedEvent({
235
239
  prevState,
@@ -261,6 +265,12 @@ class SceneObjectBase {
261
265
  if ($data && !$data.isActive) {
262
266
  $data.activate();
263
267
  }
268
+ this._activationHandlers.forEach((handler) => {
269
+ const result = handler();
270
+ if (result) {
271
+ this._deactivationHandlers.push(result);
272
+ }
273
+ });
264
274
  }
265
275
  deactivate() {
266
276
  this._isActive = false;
@@ -274,11 +284,11 @@ class SceneObjectBase {
274
284
  if ($variables && $variables.isActive) {
275
285
  $variables.deactivate();
276
286
  }
287
+ this._deactivationHandlers.forEach((handler) => handler());
288
+ this._deactivationHandlers = [];
277
289
  this._events.removeAllListeners();
278
290
  this._subs.unsubscribe();
279
291
  this._subs = new rxjs.Subscription();
280
- this._subject.complete();
281
- this._subject = new rxjs.Subject();
282
292
  }
283
293
  useState() {
284
294
  return useSceneObjectState(this);
@@ -289,11 +299,14 @@ class SceneObjectBase {
289
299
  clone(withState) {
290
300
  return cloneSceneObject(this, withState);
291
301
  }
302
+ addActivationHandler(handler) {
303
+ this._activationHandlers.push(handler);
304
+ }
292
305
  }
293
306
  function useSceneObjectState(model) {
294
307
  const forceUpdate = ui.useForceUpdate();
295
308
  React.useEffect(() => {
296
- const s = model.subscribeToState({ next: forceUpdate });
309
+ const s = model.subscribeToState(forceUpdate);
297
310
  return () => s.unsubscribe();
298
311
  }, [model, forceUpdate]);
299
312
  return model.state;
@@ -318,19 +331,19 @@ class SceneObjectUrlSyncConfig {
318
331
  }
319
332
  }
320
333
 
321
- var __defProp$e = Object.defineProperty;
322
- var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
323
- var __hasOwnProp$e = Object.prototype.hasOwnProperty;
324
- var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
325
- var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
326
- var __spreadValues$e = (a, b) => {
334
+ var __defProp$f = Object.defineProperty;
335
+ var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
336
+ var __hasOwnProp$f = Object.prototype.hasOwnProperty;
337
+ var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
338
+ var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
339
+ var __spreadValues$f = (a, b) => {
327
340
  for (var prop in b || (b = {}))
328
- if (__hasOwnProp$e.call(b, prop))
329
- __defNormalProp$e(a, prop, b[prop]);
330
- if (__getOwnPropSymbols$e)
331
- for (var prop of __getOwnPropSymbols$e(b)) {
332
- if (__propIsEnum$e.call(b, prop))
333
- __defNormalProp$e(a, prop, b[prop]);
341
+ if (__hasOwnProp$f.call(b, prop))
342
+ __defNormalProp$f(a, prop, b[prop]);
343
+ if (__getOwnPropSymbols$f)
344
+ for (var prop of __getOwnPropSymbols$f(b)) {
345
+ if (__propIsEnum$f.call(b, prop))
346
+ __defNormalProp$f(a, prop, b[prop]);
334
347
  }
335
348
  return a;
336
349
  };
@@ -341,7 +354,7 @@ class SceneTimeRange extends SceneObjectBase {
341
354
  const to = (_b = state.to) != null ? _b : "now";
342
355
  const timeZone = (_c = state.timeZone) != null ? _c : data.getTimeZone();
343
356
  const value = evaluateTimeRange(from, to, timeZone);
344
- super(__spreadValues$e({ from, to, timeZone, value }, state));
357
+ super(__spreadValues$f({ from, to, timeZone, value }, state));
345
358
  this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: ["from", "to"] });
346
359
  this.onTimeRangeChange = (timeRange) => {
347
360
  const update = {};
@@ -1088,34 +1101,32 @@ class VariableValueRecorder {
1088
1101
 
1089
1102
  let counter = 100;
1090
1103
  function getNextRequestId() {
1091
- return "QS" + counter++;
1104
+ return "SQR" + counter++;
1092
1105
  }
1093
1106
  class SceneQueryRunner extends SceneObjectBase {
1094
- constructor() {
1095
- super(...arguments);
1107
+ constructor(initialState) {
1108
+ super(initialState);
1096
1109
  this._variableValueRecorder = new VariableValueRecorder();
1097
1110
  this._variableDependency = new VariableDependencyConfig(this, {
1098
1111
  statePaths: ["queries", "datasource"],
1099
1112
  onVariableUpdatesCompleted: (variables, dependencyChanged) => this.onVariableUpdatesCompleted(variables, dependencyChanged)
1100
1113
  });
1114
+ this._onActivate = () => {
1115
+ const timeRange = sceneGraph.getTimeRange(this);
1116
+ this._subs.add(
1117
+ timeRange.subscribeToState((timeRange2) => {
1118
+ this.runWithTimeRange(timeRange2.value);
1119
+ })
1120
+ );
1121
+ if (this.shouldRunQueriesOnActivate()) {
1122
+ this.runQueries();
1123
+ }
1124
+ };
1101
1125
  this.onDataReceived = (data$1) => {
1102
1126
  const preProcessedData = data.preProcessPanelData(data$1, this.state.data);
1103
1127
  this.setState({ data: preProcessedData });
1104
1128
  };
1105
- }
1106
- activate() {
1107
- super.activate();
1108
- const timeRange = sceneGraph.getTimeRange(this);
1109
- this._subs.add(
1110
- timeRange.subscribeToState({
1111
- next: (timeRange2) => {
1112
- this.runWithTimeRange(timeRange2.value);
1113
- }
1114
- })
1115
- );
1116
- if (this.shouldRunQueriesOnActivate()) {
1117
- this.runQueries();
1118
- }
1129
+ this.addActivationHandler(this._onActivate);
1119
1130
  }
1120
1131
  onVariableUpdatesCompleted(_variablesThatHaveChanged, dependencyChanged) {
1121
1132
  if (this.state.isWaitingForVariables && this.shouldRunQueriesOnActivate()) {
@@ -1175,6 +1186,7 @@ class SceneQueryRunner extends SceneObjectBase {
1175
1186
  return (_b = (_a = this.state.maxDataPoints) != null ? _a : this._containerWidth) != null ? _b : 500;
1176
1187
  }
1177
1188
  async runWithTimeRange(timeRange) {
1189
+ var _a;
1178
1190
  if (sceneGraph.hasVariableDependencyInLoadingState(this)) {
1179
1191
  writeSceneLog("SceneQueryRunner", "Variable dependency is in loading state, skipping query execution");
1180
1192
  this.setState({ isWaitingForVariables: true });
@@ -1183,10 +1195,17 @@ class SceneQueryRunner extends SceneObjectBase {
1183
1195
  if (this.state.isWaitingForVariables) {
1184
1196
  this.setState({ isWaitingForVariables: false });
1185
1197
  }
1186
- const { datasource, minInterval, queries } = this.state;
1198
+ const { minInterval, queries } = this.state;
1187
1199
  const sceneObjectScopedVar = {
1188
1200
  __sceneObject: { text: "__sceneObject", value: this }
1189
1201
  };
1202
+ if (!(queries == null ? void 0 : queries.length)) {
1203
+ this.onDataReceived({
1204
+ state: schema.LoadingState.Done,
1205
+ series: [],
1206
+ timeRange
1207
+ });
1208
+ }
1190
1209
  const request = {
1191
1210
  app: data.CoreApp.Dashboard,
1192
1211
  requestId: getNextRequestId(),
@@ -1202,6 +1221,7 @@ class SceneQueryRunner extends SceneObjectBase {
1202
1221
  startTime: Date.now()
1203
1222
  };
1204
1223
  try {
1224
+ const datasource = (_a = this.state.datasource) != null ? _a : findFirstDatasource(request.targets);
1205
1225
  const ds = await getDataSource(datasource, request.scopedVars);
1206
1226
  request.targets = request.targets.map((query) => {
1207
1227
  if (!query.datasource) {
@@ -1225,29 +1245,37 @@ class SceneQueryRunner extends SceneObjectBase {
1225
1245
  }
1226
1246
  }
1227
1247
  }
1248
+ function findFirstDatasource(targets) {
1249
+ for (const t of targets) {
1250
+ if (t.datasource != null) {
1251
+ return t.datasource;
1252
+ }
1253
+ }
1254
+ return void 0;
1255
+ }
1228
1256
 
1229
- var __defProp$d = Object.defineProperty;
1257
+ var __defProp$e = Object.defineProperty;
1230
1258
  var __defProps$5 = Object.defineProperties;
1231
1259
  var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
1232
- var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
1233
- var __hasOwnProp$d = Object.prototype.hasOwnProperty;
1234
- var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
1235
- var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1236
- var __spreadValues$d = (a, b) => {
1260
+ var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
1261
+ var __hasOwnProp$e = Object.prototype.hasOwnProperty;
1262
+ var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
1263
+ var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1264
+ var __spreadValues$e = (a, b) => {
1237
1265
  for (var prop in b || (b = {}))
1238
- if (__hasOwnProp$d.call(b, prop))
1239
- __defNormalProp$d(a, prop, b[prop]);
1240
- if (__getOwnPropSymbols$d)
1241
- for (var prop of __getOwnPropSymbols$d(b)) {
1242
- if (__propIsEnum$d.call(b, prop))
1243
- __defNormalProp$d(a, prop, b[prop]);
1266
+ if (__hasOwnProp$e.call(b, prop))
1267
+ __defNormalProp$e(a, prop, b[prop]);
1268
+ if (__getOwnPropSymbols$e)
1269
+ for (var prop of __getOwnPropSymbols$e(b)) {
1270
+ if (__propIsEnum$e.call(b, prop))
1271
+ __defNormalProp$e(a, prop, b[prop]);
1244
1272
  }
1245
1273
  return a;
1246
1274
  };
1247
1275
  var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
1248
1276
  class SceneDataTransformer extends SceneObjectBase {
1249
- constructor() {
1250
- super(...arguments);
1277
+ constructor(state) {
1278
+ super(state);
1251
1279
  this._variableDependency = new VariableDependencyConfig(
1252
1280
  this,
1253
1281
  {
@@ -1255,18 +1283,19 @@ class SceneDataTransformer extends SceneObjectBase {
1255
1283
  onReferencedVariableValueChanged: () => this.reprocessTransformations()
1256
1284
  }
1257
1285
  );
1286
+ this.addActivationHandler(() => this.activationHandler());
1258
1287
  }
1259
- activate() {
1260
- super.activate();
1288
+ activationHandler() {
1261
1289
  const sourceData = this.getSourceData();
1262
- this._subs.add(
1263
- sourceData.subscribeToState({
1264
- next: (state) => this.transform(state.data)
1265
- })
1266
- );
1290
+ this._subs.add(sourceData.subscribeToState((state) => this.transform(state.data)));
1267
1291
  if (sourceData.state.data) {
1268
1292
  this.transform(sourceData.state.data);
1269
1293
  }
1294
+ return () => {
1295
+ if (this._transformSub) {
1296
+ this._transformSub.unsubscribe();
1297
+ }
1298
+ };
1270
1299
  }
1271
1300
  getSourceData() {
1272
1301
  if (this.state.$data) {
@@ -1300,7 +1329,7 @@ class SceneDataTransformer extends SceneObjectBase {
1300
1329
  return sceneGraph.interpolate(this, value, (_a = data$1.request) == null ? void 0 : _a.scopedVars);
1301
1330
  }
1302
1331
  };
1303
- this._transformSub = data.transformDataFrame(transformations, data$1.series, ctx).pipe(rxjs.map((series) => __spreadProps$5(__spreadValues$d({}, data$1), { series }))).subscribe((data2) => this.setState({ data: data2 }));
1332
+ this._transformSub = data.transformDataFrame(transformations, data$1.series, ctx).pipe(rxjs.map((series) => __spreadProps$5(__spreadValues$e({}, data$1), { series }))).subscribe((data2) => this.setState({ data: data2 }));
1304
1333
  }
1305
1334
  }
1306
1335
 
@@ -1381,29 +1410,43 @@ const getStyles$2 = (theme) => ({
1381
1410
  });
1382
1411
 
1383
1412
  class SceneVariableSet extends SceneObjectBase {
1384
- constructor() {
1385
- super(...arguments);
1413
+ constructor(state) {
1414
+ super(state);
1386
1415
  this._variablesThatHaveChanged = /* @__PURE__ */ new Set();
1387
1416
  this._variablesToUpdate = /* @__PURE__ */ new Set();
1388
1417
  this._updating = /* @__PURE__ */ new Map();
1389
1418
  this._variableValueRecorder = new VariableValueRecorder();
1419
+ this._onActivate = () => {
1420
+ this._subs.add(
1421
+ this.subscribeToEvent(SceneVariableValueChangedEvent, (event) => this.handleVariableValueChanged(event.payload))
1422
+ );
1423
+ this.checkForVariablesThatChangedWhileInactive();
1424
+ for (const variable of this.state.variables) {
1425
+ if (this.variableNeedsUpdate(variable)) {
1426
+ this._variablesToUpdate.add(variable);
1427
+ }
1428
+ }
1429
+ this.updateNextBatch();
1430
+ return this._onDeactivate;
1431
+ };
1432
+ this._onDeactivate = () => {
1433
+ var _a;
1434
+ for (const update of this._updating.values()) {
1435
+ (_a = update.subscription) == null ? void 0 : _a.unsubscribe();
1436
+ }
1437
+ for (const variable of this.state.variables) {
1438
+ if (!this._variablesToUpdate.has(variable) && !this._updating.has(variable)) {
1439
+ this._variableValueRecorder.recordCurrentValue(variable);
1440
+ }
1441
+ }
1442
+ this._variablesToUpdate.clear();
1443
+ this._updating.clear();
1444
+ };
1445
+ this.addActivationHandler(this._onActivate);
1390
1446
  }
1391
1447
  getByName(name) {
1392
1448
  return this.state.variables.find((x) => x.state.name === name);
1393
1449
  }
1394
- activate() {
1395
- super.activate();
1396
- this._subs.add(
1397
- this.subscribeToEvent(SceneVariableValueChangedEvent, (event) => this.handleVariableValueChanged(event.payload))
1398
- );
1399
- this.checkForVariablesThatChangedWhileInactive();
1400
- for (const variable of this.state.variables) {
1401
- if (this.variableNeedsUpdate(variable)) {
1402
- this._variablesToUpdate.add(variable);
1403
- }
1404
- }
1405
- this.updateNextBatch();
1406
- }
1407
1450
  checkForVariablesThatChangedWhileInactive() {
1408
1451
  if (!this._variableValueRecorder.hasValues()) {
1409
1452
  return;
@@ -1425,20 +1468,6 @@ class SceneVariableSet extends SceneObjectBase {
1425
1468
  }
1426
1469
  return true;
1427
1470
  }
1428
- deactivate() {
1429
- var _a;
1430
- super.deactivate();
1431
- for (const update of this._updating.values()) {
1432
- (_a = update.subscription) == null ? void 0 : _a.unsubscribe();
1433
- }
1434
- for (const variable of this.state.variables) {
1435
- if (!this._variablesToUpdate.has(variable) && !this._updating.has(variable)) {
1436
- this._variableValueRecorder.recordCurrentValue(variable);
1437
- }
1438
- }
1439
- this._variablesToUpdate.clear();
1440
- this._updating.clear();
1441
- }
1442
1471
  updateNextBatch() {
1443
1472
  if (this._variablesToUpdate.size === 0) {
1444
1473
  this.notifyDependentSceneObjects();
@@ -1543,25 +1572,25 @@ function writeVariableTraceLog(variable, message, err) {
1543
1572
  writeSceneLog("SceneVariableSet", `Variable[${variable.state.name}]: ${message}`, err);
1544
1573
  }
1545
1574
 
1546
- var __defProp$c = Object.defineProperty;
1547
- var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
1548
- var __hasOwnProp$c = Object.prototype.hasOwnProperty;
1549
- var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
1550
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1551
- var __spreadValues$c = (a, b) => {
1575
+ var __defProp$d = Object.defineProperty;
1576
+ var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
1577
+ var __hasOwnProp$d = Object.prototype.hasOwnProperty;
1578
+ var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
1579
+ var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1580
+ var __spreadValues$d = (a, b) => {
1552
1581
  for (var prop in b || (b = {}))
1553
- if (__hasOwnProp$c.call(b, prop))
1554
- __defNormalProp$c(a, prop, b[prop]);
1555
- if (__getOwnPropSymbols$c)
1556
- for (var prop of __getOwnPropSymbols$c(b)) {
1557
- if (__propIsEnum$c.call(b, prop))
1558
- __defNormalProp$c(a, prop, b[prop]);
1582
+ if (__hasOwnProp$d.call(b, prop))
1583
+ __defNormalProp$d(a, prop, b[prop]);
1584
+ if (__getOwnPropSymbols$d)
1585
+ for (var prop of __getOwnPropSymbols$d(b)) {
1586
+ if (__propIsEnum$d.call(b, prop))
1587
+ __defNormalProp$d(a, prop, b[prop]);
1559
1588
  }
1560
1589
  return a;
1561
1590
  };
1562
1591
  class ConstantVariable extends SceneObjectBase {
1563
1592
  constructor(initialState) {
1564
- super(__spreadValues$c({
1593
+ super(__spreadValues$d({
1565
1594
  type: "constant",
1566
1595
  value: "",
1567
1596
  name: ""
@@ -1799,25 +1828,25 @@ class MultiValueUrlSyncHandler {
1799
1828
  }
1800
1829
  }
1801
1830
 
1802
- var __defProp$b = Object.defineProperty;
1803
- var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
1804
- var __hasOwnProp$b = Object.prototype.hasOwnProperty;
1805
- var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
1806
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1807
- var __spreadValues$b = (a, b) => {
1831
+ var __defProp$c = Object.defineProperty;
1832
+ var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
1833
+ var __hasOwnProp$c = Object.prototype.hasOwnProperty;
1834
+ var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
1835
+ var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1836
+ var __spreadValues$c = (a, b) => {
1808
1837
  for (var prop in b || (b = {}))
1809
- if (__hasOwnProp$b.call(b, prop))
1810
- __defNormalProp$b(a, prop, b[prop]);
1811
- if (__getOwnPropSymbols$b)
1812
- for (var prop of __getOwnPropSymbols$b(b)) {
1813
- if (__propIsEnum$b.call(b, prop))
1814
- __defNormalProp$b(a, prop, b[prop]);
1838
+ if (__hasOwnProp$c.call(b, prop))
1839
+ __defNormalProp$c(a, prop, b[prop]);
1840
+ if (__getOwnPropSymbols$c)
1841
+ for (var prop of __getOwnPropSymbols$c(b)) {
1842
+ if (__propIsEnum$c.call(b, prop))
1843
+ __defNormalProp$c(a, prop, b[prop]);
1815
1844
  }
1816
1845
  return a;
1817
1846
  };
1818
1847
  class CustomVariable extends MultiValueVariable {
1819
1848
  constructor(initialState) {
1820
- super(__spreadValues$b({
1849
+ super(__spreadValues$c({
1821
1850
  type: "custom",
1822
1851
  query: "",
1823
1852
  value: "",
@@ -1850,25 +1879,25 @@ CustomVariable.Component = ({ model }) => {
1850
1879
  return renderSelectForVariable(model);
1851
1880
  };
1852
1881
 
1853
- var __defProp$a = Object.defineProperty;
1854
- var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
1855
- var __hasOwnProp$a = Object.prototype.hasOwnProperty;
1856
- var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
1857
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1858
- var __spreadValues$a = (a, b) => {
1882
+ var __defProp$b = Object.defineProperty;
1883
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
1884
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
1885
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
1886
+ var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1887
+ var __spreadValues$b = (a, b) => {
1859
1888
  for (var prop in b || (b = {}))
1860
- if (__hasOwnProp$a.call(b, prop))
1861
- __defNormalProp$a(a, prop, b[prop]);
1862
- if (__getOwnPropSymbols$a)
1863
- for (var prop of __getOwnPropSymbols$a(b)) {
1864
- if (__propIsEnum$a.call(b, prop))
1865
- __defNormalProp$a(a, prop, b[prop]);
1889
+ if (__hasOwnProp$b.call(b, prop))
1890
+ __defNormalProp$b(a, prop, b[prop]);
1891
+ if (__getOwnPropSymbols$b)
1892
+ for (var prop of __getOwnPropSymbols$b(b)) {
1893
+ if (__propIsEnum$b.call(b, prop))
1894
+ __defNormalProp$b(a, prop, b[prop]);
1866
1895
  }
1867
1896
  return a;
1868
1897
  };
1869
1898
  class DataSourceVariable extends MultiValueVariable {
1870
1899
  constructor(initialState) {
1871
- super(__spreadValues$a({
1900
+ super(__spreadValues$b({
1872
1901
  type: "datasource",
1873
1902
  value: "",
1874
1903
  text: "",
@@ -1956,21 +1985,21 @@ const hasCustomVariableSupport = (datasource) => {
1956
1985
  return "query" in variableSupport && "editor" in variableSupport && Boolean(variableSupport.query) && Boolean(variableSupport.editor);
1957
1986
  };
1958
1987
 
1959
- var __defProp$9 = Object.defineProperty;
1988
+ var __defProp$a = Object.defineProperty;
1960
1989
  var __defProps$4 = Object.defineProperties;
1961
1990
  var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
1962
- var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
1963
- var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
1964
- var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
1965
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1966
- var __spreadValues$9 = (a, b) => {
1991
+ var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
1992
+ var __hasOwnProp$a = Object.prototype.hasOwnProperty;
1993
+ var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
1994
+ var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1995
+ var __spreadValues$a = (a, b) => {
1967
1996
  for (var prop in b || (b = {}))
1968
- if (__hasOwnProp$9.call(b, prop))
1969
- __defNormalProp$9(a, prop, b[prop]);
1970
- if (__getOwnPropSymbols$9)
1971
- for (var prop of __getOwnPropSymbols$9(b)) {
1972
- if (__propIsEnum$9.call(b, prop))
1973
- __defNormalProp$9(a, prop, b[prop]);
1997
+ if (__hasOwnProp$a.call(b, prop))
1998
+ __defNormalProp$a(a, prop, b[prop]);
1999
+ if (__getOwnPropSymbols$a)
2000
+ for (var prop of __getOwnPropSymbols$a(b)) {
2001
+ if (__propIsEnum$a.call(b, prop))
2002
+ __defNormalProp$a(a, prop, b[prop]);
1974
2003
  }
1975
2004
  return a;
1976
2005
  };
@@ -2011,7 +2040,7 @@ class LegacyQueryRunner {
2011
2040
  return getEmptyMetricFindValueObservable();
2012
2041
  }
2013
2042
  return rxjs.from(
2014
- this.datasource.metricFindQuery(variable.state.query, __spreadProps$4(__spreadValues$9({}, request), {
2043
+ this.datasource.metricFindQuery(variable.state.query, __spreadProps$4(__spreadValues$a({}, request), {
2015
2044
  variable: {
2016
2045
  name: variable.state.name,
2017
2046
  type: variable.state.type
@@ -2242,25 +2271,25 @@ function areMetricFindValues(data$1) {
2242
2271
  return false;
2243
2272
  }
2244
2273
 
2245
- var __defProp$8 = Object.defineProperty;
2246
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
2247
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
2248
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
2249
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2250
- var __spreadValues$8 = (a, b) => {
2274
+ var __defProp$9 = Object.defineProperty;
2275
+ var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
2276
+ var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
2277
+ var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
2278
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2279
+ var __spreadValues$9 = (a, b) => {
2251
2280
  for (var prop in b || (b = {}))
2252
- if (__hasOwnProp$8.call(b, prop))
2253
- __defNormalProp$8(a, prop, b[prop]);
2254
- if (__getOwnPropSymbols$8)
2255
- for (var prop of __getOwnPropSymbols$8(b)) {
2256
- if (__propIsEnum$8.call(b, prop))
2257
- __defNormalProp$8(a, prop, b[prop]);
2281
+ if (__hasOwnProp$9.call(b, prop))
2282
+ __defNormalProp$9(a, prop, b[prop]);
2283
+ if (__getOwnPropSymbols$9)
2284
+ for (var prop of __getOwnPropSymbols$9(b)) {
2285
+ if (__propIsEnum$9.call(b, prop))
2286
+ __defNormalProp$9(a, prop, b[prop]);
2258
2287
  }
2259
2288
  return a;
2260
2289
  };
2261
2290
  class QueryVariable extends MultiValueVariable {
2262
2291
  constructor(initialState) {
2263
- super(__spreadValues$8({
2292
+ super(__spreadValues$9({
2264
2293
  type: "query",
2265
2294
  name: "",
2266
2295
  value: "",
@@ -2275,19 +2304,17 @@ class QueryVariable extends MultiValueVariable {
2275
2304
  this._variableDependency = new VariableDependencyConfig(this, {
2276
2305
  statePaths: ["regex", "query", "datasource"]
2277
2306
  });
2278
- }
2279
- activate() {
2280
- super.activate();
2281
- const timeRange = sceneGraph.getTimeRange(this);
2282
- if (this.state.refresh === data.VariableRefresh.onTimeRangeChanged) {
2283
- this._subs.add(
2284
- timeRange.subscribeToState({
2285
- next: () => {
2307
+ this._onActivate = () => {
2308
+ const timeRange = sceneGraph.getTimeRange(this);
2309
+ if (this.state.refresh === data.VariableRefresh.onTimeRangeChanged) {
2310
+ this._subs.add(
2311
+ timeRange.subscribeToState(() => {
2286
2312
  this.updateSubscription = this.validateAndUpdate().subscribe();
2287
- }
2288
- })
2289
- );
2290
- }
2313
+ })
2314
+ );
2315
+ }
2316
+ };
2317
+ this.addActivationHandler(this._onActivate);
2291
2318
  }
2292
2319
  deactivate() {
2293
2320
  super.deactivate();
@@ -2412,25 +2439,25 @@ function queryMetricTree(query) {
2412
2439
  return queryTree(children, query.split("."), 0);
2413
2440
  }
2414
2441
 
2415
- var __defProp$7 = Object.defineProperty;
2416
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
2417
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
2418
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
2419
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2420
- var __spreadValues$7 = (a, b) => {
2442
+ var __defProp$8 = Object.defineProperty;
2443
+ var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
2444
+ var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
2445
+ var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
2446
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2447
+ var __spreadValues$8 = (a, b) => {
2421
2448
  for (var prop in b || (b = {}))
2422
- if (__hasOwnProp$7.call(b, prop))
2423
- __defNormalProp$7(a, prop, b[prop]);
2424
- if (__getOwnPropSymbols$7)
2425
- for (var prop of __getOwnPropSymbols$7(b)) {
2426
- if (__propIsEnum$7.call(b, prop))
2427
- __defNormalProp$7(a, prop, b[prop]);
2449
+ if (__hasOwnProp$8.call(b, prop))
2450
+ __defNormalProp$8(a, prop, b[prop]);
2451
+ if (__getOwnPropSymbols$8)
2452
+ for (var prop of __getOwnPropSymbols$8(b)) {
2453
+ if (__propIsEnum$8.call(b, prop))
2454
+ __defNormalProp$8(a, prop, b[prop]);
2428
2455
  }
2429
2456
  return a;
2430
2457
  };
2431
2458
  class TestVariable extends MultiValueVariable {
2432
2459
  constructor(initialState) {
2433
- super(__spreadValues$7({
2460
+ super(__spreadValues$8({
2434
2461
  type: "custom",
2435
2462
  name: "Test",
2436
2463
  value: "Value",
@@ -2509,25 +2536,25 @@ function VariableValueInput({ model }) {
2509
2536
  });
2510
2537
  }
2511
2538
 
2512
- var __defProp$6 = Object.defineProperty;
2513
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
2514
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
2515
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
2516
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2517
- var __spreadValues$6 = (a, b) => {
2539
+ var __defProp$7 = Object.defineProperty;
2540
+ var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
2541
+ var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
2542
+ var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
2543
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2544
+ var __spreadValues$7 = (a, b) => {
2518
2545
  for (var prop in b || (b = {}))
2519
- if (__hasOwnProp$6.call(b, prop))
2520
- __defNormalProp$6(a, prop, b[prop]);
2521
- if (__getOwnPropSymbols$6)
2522
- for (var prop of __getOwnPropSymbols$6(b)) {
2523
- if (__propIsEnum$6.call(b, prop))
2524
- __defNormalProp$6(a, prop, b[prop]);
2546
+ if (__hasOwnProp$7.call(b, prop))
2547
+ __defNormalProp$7(a, prop, b[prop]);
2548
+ if (__getOwnPropSymbols$7)
2549
+ for (var prop of __getOwnPropSymbols$7(b)) {
2550
+ if (__propIsEnum$7.call(b, prop))
2551
+ __defNormalProp$7(a, prop, b[prop]);
2525
2552
  }
2526
2553
  return a;
2527
2554
  };
2528
2555
  class TextBoxVariable extends SceneObjectBase {
2529
2556
  constructor(initialState) {
2530
- super(__spreadValues$6({
2557
+ super(__spreadValues$7({
2531
2558
  type: "textbox",
2532
2559
  value: "",
2533
2560
  name: ""
@@ -2689,19 +2716,20 @@ function isUrlValueEqual(currentUrlValue, newUrlValue) {
2689
2716
  }
2690
2717
 
2691
2718
  class EmbeddedScene extends SceneObjectBase {
2719
+ constructor(state) {
2720
+ super(state);
2721
+ this.addActivationHandler(() => {
2722
+ return () => {
2723
+ if (this.urlSyncManager) {
2724
+ this.urlSyncManager.cleanUp();
2725
+ }
2726
+ };
2727
+ });
2728
+ }
2692
2729
  initUrlSync() {
2693
2730
  this.urlSyncManager = new UrlSyncManager(this);
2694
2731
  this.urlSyncManager.initSync();
2695
2732
  }
2696
- activate() {
2697
- super.activate();
2698
- }
2699
- deactivate() {
2700
- super.deactivate();
2701
- if (this.urlSyncManager) {
2702
- this.urlSyncManager.cleanUp();
2703
- }
2704
- }
2705
2733
  }
2706
2734
  EmbeddedScene.Component = EmbeddedSceneRenderer;
2707
2735
  function EmbeddedSceneRenderer({ model }) {
@@ -2756,17 +2784,18 @@ function VizPanelRenderer({ model }) {
2756
2784
  $data,
2757
2785
  placement,
2758
2786
  displayMode,
2759
- hoverHeader
2787
+ hoverHeader,
2788
+ menu
2760
2789
  } = model.useState();
2761
2790
  const [ref, { width, height }] = reactUse.useMeasure();
2762
2791
  const plugin = model.getPlugin();
2763
- const { data: data$1 } = sceneGraph.getData(model).useState();
2764
2792
  const parentLayout = sceneGraph.getLayout(model);
2765
2793
  const isDraggable = parentLayout.isDraggable() && ((_a = placement == null ? void 0 : placement.isDraggable) != null ? _a : true);
2766
2794
  const dragClass = isDraggable && parentLayout.getDragClass ? parentLayout.getDragClass() : "";
2767
2795
  const dragClassCancel = isDraggable && parentLayout.getDragClassCancel ? parentLayout.getDragClassCancel() : "";
2768
2796
  const titleInterpolated = model.interpolate(title, void 0, "text");
2769
2797
  const timeZone = sceneGraph.getTimeRange(model).state.timeZone;
2798
+ const { data: data$1 } = sceneGraph.getData(model).useState();
2770
2799
  const dataWithOverrides = data.useFieldOverrides(plugin, fieldConfig, data$1, timeZone, theme, model.interpolate);
2771
2800
  if (pluginLoadError) {
2772
2801
  return /* @__PURE__ */ React__default["default"].createElement("div", null, "Failed to load plugin: ", pluginLoadError);
@@ -2787,6 +2816,12 @@ function VizPanelRenderer({ model }) {
2787
2816
  model: model.state.$timeRange
2788
2817
  }));
2789
2818
  }
2819
+ let panelMenu;
2820
+ if (menu) {
2821
+ panelMenu = /* @__PURE__ */ React__default["default"].createElement(menu.Component, {
2822
+ model: menu
2823
+ });
2824
+ }
2790
2825
  return /* @__PURE__ */ React__default["default"].createElement("div", {
2791
2826
  ref,
2792
2827
  style: { position: "absolute", width: "100%", height: "100%" }
@@ -2801,7 +2836,8 @@ function VizPanelRenderer({ model }) {
2801
2836
  hoverHeader,
2802
2837
  titleItems,
2803
2838
  dragClass,
2804
- dragClassCancel
2839
+ dragClassCancel,
2840
+ menu: panelMenu
2805
2841
  }, (innerWidth, innerHeight) => /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, !dataWithOverrides && /* @__PURE__ */ React__default["default"].createElement("div", null, "No data..."), dataWithOverrides && /* @__PURE__ */ React__default["default"].createElement(ui.ErrorBoundaryAlert, {
2806
2842
  dependencies: [plugin, data$1]
2807
2843
  }, /* @__PURE__ */ React__default["default"].createElement(data.PluginContextProvider, {
@@ -2827,25 +2863,25 @@ function VizPanelRenderer({ model }) {
2827
2863
  }
2828
2864
  VizPanelRenderer.displayName = "ScenePanelRenderer";
2829
2865
 
2830
- var __defProp$5 = Object.defineProperty;
2831
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
2832
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
2833
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
2834
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2835
- var __spreadValues$5 = (a, b) => {
2866
+ var __defProp$6 = Object.defineProperty;
2867
+ var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
2868
+ var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
2869
+ var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
2870
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2871
+ var __spreadValues$6 = (a, b) => {
2836
2872
  for (var prop in b || (b = {}))
2837
- if (__hasOwnProp$5.call(b, prop))
2838
- __defNormalProp$5(a, prop, b[prop]);
2839
- if (__getOwnPropSymbols$5)
2840
- for (var prop of __getOwnPropSymbols$5(b)) {
2841
- if (__propIsEnum$5.call(b, prop))
2842
- __defNormalProp$5(a, prop, b[prop]);
2873
+ if (__hasOwnProp$6.call(b, prop))
2874
+ __defNormalProp$6(a, prop, b[prop]);
2875
+ if (__getOwnPropSymbols$6)
2876
+ for (var prop of __getOwnPropSymbols$6(b)) {
2877
+ if (__propIsEnum$6.call(b, prop))
2878
+ __defNormalProp$6(a, prop, b[prop]);
2843
2879
  }
2844
2880
  return a;
2845
2881
  };
2846
2882
  class VizPanel extends SceneObjectBase {
2847
2883
  constructor(state) {
2848
- super(__spreadValues$5({
2884
+ super(__spreadValues$6({
2849
2885
  options: {},
2850
2886
  fieldConfig: { defaults: {}, overrides: [] },
2851
2887
  title: "Title",
@@ -2918,21 +2954,57 @@ class VizPanel extends SceneObjectBase {
2918
2954
  }
2919
2955
  VizPanel.Component = VizPanelRenderer;
2920
2956
 
2921
- var __defProp$4 = Object.defineProperty;
2957
+ class VizPanelMenu extends SceneObjectBase {
2958
+ addItem(item) {
2959
+ this.setState({
2960
+ items: this.state.items ? [...this.state.items, item] : [item]
2961
+ });
2962
+ }
2963
+ setItems(items) {
2964
+ this.setState({
2965
+ items
2966
+ });
2967
+ }
2968
+ }
2969
+ VizPanelMenu.Component = VizPanelMenuRenderer;
2970
+ function VizPanelMenuRenderer({ model }) {
2971
+ const { items } = model.useState();
2972
+ const renderItems = (items2) => {
2973
+ return items2.map(
2974
+ (item) => item.type === "divider" ? /* @__PURE__ */ React__default["default"].createElement(ui.Menu.Divider, {
2975
+ key: item.text
2976
+ }) : /* @__PURE__ */ React__default["default"].createElement(ui.Menu.Item, {
2977
+ key: item.text,
2978
+ label: item.text,
2979
+ icon: item.iconClassName,
2980
+ childItems: item.subMenu ? renderItems(item.subMenu) : void 0,
2981
+ url: item.href,
2982
+ onClick: item.onClick,
2983
+ shortcut: item.shortcut
2984
+ })
2985
+ );
2986
+ };
2987
+ if (!items) {
2988
+ return null;
2989
+ }
2990
+ return /* @__PURE__ */ React__default["default"].createElement(ui.Menu, null, renderItems(items));
2991
+ }
2992
+
2993
+ var __defProp$5 = Object.defineProperty;
2922
2994
  var __defProps$3 = Object.defineProperties;
2923
2995
  var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
2924
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
2925
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2926
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2927
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2928
- var __spreadValues$4 = (a, b) => {
2996
+ var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
2997
+ var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
2998
+ var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
2999
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3000
+ var __spreadValues$5 = (a, b) => {
2929
3001
  for (var prop in b || (b = {}))
2930
- if (__hasOwnProp$4.call(b, prop))
2931
- __defNormalProp$4(a, prop, b[prop]);
2932
- if (__getOwnPropSymbols$4)
2933
- for (var prop of __getOwnPropSymbols$4(b)) {
2934
- if (__propIsEnum$4.call(b, prop))
2935
- __defNormalProp$4(a, prop, b[prop]);
3002
+ if (__hasOwnProp$5.call(b, prop))
3003
+ __defNormalProp$5(a, prop, b[prop]);
3004
+ if (__getOwnPropSymbols$5)
3005
+ for (var prop of __getOwnPropSymbols$5(b)) {
3006
+ if (__propIsEnum$5.call(b, prop))
3007
+ __defNormalProp$5(a, prop, b[prop]);
2936
3008
  }
2937
3009
  return a;
2938
3010
  };
@@ -2943,7 +3015,7 @@ class NestedScene extends SceneObjectBase {
2943
3015
  this.onToggle = () => {
2944
3016
  this.setState({
2945
3017
  isCollapsed: !this.state.isCollapsed,
2946
- placement: __spreadProps$3(__spreadValues$4({}, this.state.placement), {
3018
+ placement: __spreadProps$3(__spreadValues$5({}, this.state.placement), {
2947
3019
  ySizing: this.state.isCollapsed ? "fill" : "content"
2948
3020
  })
2949
3021
  });
@@ -3113,21 +3185,21 @@ function SceneTimePickerRenderer({ model }) {
3113
3185
  });
3114
3186
  }
3115
3187
 
3116
- var __defProp$3 = Object.defineProperty;
3188
+ var __defProp$4 = Object.defineProperty;
3117
3189
  var __defProps$2 = Object.defineProperties;
3118
3190
  var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
3119
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
3120
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
3121
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
3122
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3123
- var __spreadValues$3 = (a, b) => {
3191
+ var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
3192
+ var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
3193
+ var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
3194
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3195
+ var __spreadValues$4 = (a, b) => {
3124
3196
  for (var prop in b || (b = {}))
3125
- if (__hasOwnProp$3.call(b, prop))
3126
- __defNormalProp$3(a, prop, b[prop]);
3127
- if (__getOwnPropSymbols$3)
3128
- for (var prop of __getOwnPropSymbols$3(b)) {
3129
- if (__propIsEnum$3.call(b, prop))
3130
- __defNormalProp$3(a, prop, b[prop]);
3197
+ if (__hasOwnProp$4.call(b, prop))
3198
+ __defNormalProp$4(a, prop, b[prop]);
3199
+ if (__getOwnPropSymbols$4)
3200
+ for (var prop of __getOwnPropSymbols$4(b)) {
3201
+ if (__propIsEnum$4.call(b, prop))
3202
+ __defNormalProp$4(a, prop, b[prop]);
3131
3203
  }
3132
3204
  return a;
3133
3205
  };
@@ -3136,7 +3208,7 @@ const DEFAULT_INTERVALS = ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "
3136
3208
  class SceneRefreshPicker extends SceneObjectBase {
3137
3209
  constructor(state) {
3138
3210
  var _a;
3139
- super(__spreadProps$2(__spreadValues$3({
3211
+ super(__spreadProps$2(__spreadValues$4({
3140
3212
  refresh: ""
3141
3213
  }, state), {
3142
3214
  intervals: (_a = state.intervals) != null ? _a : DEFAULT_INTERVALS
@@ -3171,15 +3243,14 @@ class SceneRefreshPicker extends SceneObjectBase {
3171
3243
  timeRange.onRefresh();
3172
3244
  }, intervalMs);
3173
3245
  };
3174
- }
3175
- activate() {
3176
- super.activate();
3177
- this.setupIntervalTimer();
3178
- }
3179
- deactivate() {
3180
- if (this._intervalTimer) {
3181
- clearInterval(this._intervalTimer);
3182
- }
3246
+ this.addActivationHandler(() => {
3247
+ this.setupIntervalTimer();
3248
+ return () => {
3249
+ if (this._intervalTimer) {
3250
+ clearInterval(this._intervalTimer);
3251
+ }
3252
+ };
3253
+ });
3183
3254
  }
3184
3255
  getUrlState() {
3185
3256
  return {
@@ -3208,18 +3279,18 @@ function SceneRefreshPickerRenderer({ model }) {
3208
3279
  }
3209
3280
 
3210
3281
  class SceneByFrameRepeater extends SceneObjectBase {
3211
- activate() {
3212
- super.activate();
3213
- this._subs.add(
3214
- sceneGraph.getData(this).subscribeToState({
3215
- next: (data$1) => {
3282
+ constructor(state) {
3283
+ super(state);
3284
+ this.addActivationHandler(() => {
3285
+ this._subs.add(
3286
+ sceneGraph.getData(this).subscribeToState((data$1) => {
3216
3287
  var _a;
3217
3288
  if (((_a = data$1.data) == null ? void 0 : _a.state) === data.LoadingState.Done) {
3218
3289
  this.performRepeat(data$1.data);
3219
3290
  }
3220
- }
3221
- })
3222
- );
3291
+ })
3292
+ );
3293
+ });
3223
3294
  }
3224
3295
  performRepeat(data) {
3225
3296
  const newChildren = [];
@@ -3361,31 +3432,31 @@ function SceneDragHandle({ className, dragClass }) {
3361
3432
  }));
3362
3433
  }
3363
3434
 
3364
- var __defProp$2 = Object.defineProperty;
3435
+ var __defProp$3 = Object.defineProperty;
3365
3436
  var __defProps$1 = Object.defineProperties;
3366
3437
  var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
3367
- var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
3368
- var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
3369
- var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
3370
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3371
- var __spreadValues$2 = (a, b) => {
3438
+ var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
3439
+ var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
3440
+ var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
3441
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3442
+ var __spreadValues$3 = (a, b) => {
3372
3443
  for (var prop in b || (b = {}))
3373
- if (__hasOwnProp$2.call(b, prop))
3374
- __defNormalProp$2(a, prop, b[prop]);
3375
- if (__getOwnPropSymbols$2)
3376
- for (var prop of __getOwnPropSymbols$2(b)) {
3377
- if (__propIsEnum$2.call(b, prop))
3378
- __defNormalProp$2(a, prop, b[prop]);
3444
+ if (__hasOwnProp$3.call(b, prop))
3445
+ __defNormalProp$3(a, prop, b[prop]);
3446
+ if (__getOwnPropSymbols$3)
3447
+ for (var prop of __getOwnPropSymbols$3(b)) {
3448
+ if (__propIsEnum$3.call(b, prop))
3449
+ __defNormalProp$3(a, prop, b[prop]);
3379
3450
  }
3380
3451
  return a;
3381
3452
  };
3382
3453
  var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
3383
3454
  class SceneGridRow extends SceneObjectBase {
3384
3455
  constructor(state) {
3385
- super(__spreadProps$1(__spreadValues$2({
3456
+ super(__spreadProps$1(__spreadValues$3({
3386
3457
  isCollapsible: true
3387
3458
  }, state), {
3388
- placement: __spreadProps$1(__spreadValues$2({
3459
+ placement: __spreadProps$1(__spreadValues$3({
3389
3460
  isResizable: false,
3390
3461
  isDraggable: true
3391
3462
  }, state.placement), {
@@ -3478,28 +3549,28 @@ const getSceneGridRowStyles = (theme) => {
3478
3549
  };
3479
3550
  };
3480
3551
 
3481
- var __defProp$1 = Object.defineProperty;
3552
+ var __defProp$2 = Object.defineProperty;
3482
3553
  var __defProps = Object.defineProperties;
3483
3554
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
3484
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
3485
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
3486
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
3487
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3488
- var __spreadValues$1 = (a, b) => {
3555
+ var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
3556
+ var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
3557
+ var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
3558
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3559
+ var __spreadValues$2 = (a, b) => {
3489
3560
  for (var prop in b || (b = {}))
3490
- if (__hasOwnProp$1.call(b, prop))
3491
- __defNormalProp$1(a, prop, b[prop]);
3492
- if (__getOwnPropSymbols$1)
3493
- for (var prop of __getOwnPropSymbols$1(b)) {
3494
- if (__propIsEnum$1.call(b, prop))
3495
- __defNormalProp$1(a, prop, b[prop]);
3561
+ if (__hasOwnProp$2.call(b, prop))
3562
+ __defNormalProp$2(a, prop, b[prop]);
3563
+ if (__getOwnPropSymbols$2)
3564
+ for (var prop of __getOwnPropSymbols$2(b)) {
3565
+ if (__propIsEnum$2.call(b, prop))
3566
+ __defNormalProp$2(a, prop, b[prop]);
3496
3567
  }
3497
3568
  return a;
3498
3569
  };
3499
3570
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3500
3571
  class SceneGridLayout extends SceneObjectBase {
3501
3572
  constructor(state) {
3502
- super(__spreadProps(__spreadValues$1({}, state), {
3573
+ super(__spreadProps(__spreadValues$2({}, state), {
3503
3574
  isDraggable: true,
3504
3575
  placement: state.placement,
3505
3576
  children: sortChildrenByPosition(state.children)
@@ -3520,7 +3591,7 @@ class SceneGridLayout extends SceneObjectBase {
3520
3591
  };
3521
3592
  if (!isItemSizeEqual(child.state.placement, nextSize)) {
3522
3593
  child.setState({
3523
- placement: __spreadValues$1(__spreadValues$1({}, child.state.placement), nextSize)
3594
+ placement: __spreadValues$2(__spreadValues$2({}, child.state.placement), nextSize)
3524
3595
  });
3525
3596
  }
3526
3597
  }
@@ -3529,7 +3600,7 @@ class SceneGridLayout extends SceneObjectBase {
3529
3600
  this.onResizeStop = (_, o, n) => {
3530
3601
  const child = this.getSceneLayoutChild(n.i);
3531
3602
  child.setState({
3532
- placement: __spreadProps(__spreadValues$1({}, child.state.placement), {
3603
+ placement: __spreadProps(__spreadValues$2({}, child.state.placement), {
3533
3604
  width: n.w,
3534
3605
  height: n.h
3535
3606
  })
@@ -3544,7 +3615,7 @@ class SceneGridLayout extends SceneObjectBase {
3544
3615
  const childSize = child.state.placement;
3545
3616
  if ((childSize == null ? void 0 : childSize.x) !== gridItem.x || (childSize == null ? void 0 : childSize.y) !== gridItem.y) {
3546
3617
  child.setState({
3547
- placement: __spreadProps(__spreadValues$1({}, child.state.placement), {
3618
+ placement: __spreadProps(__spreadValues$2({}, child.state.placement), {
3548
3619
  x: gridItem.x,
3549
3620
  y: gridItem.y
3550
3621
  })
@@ -3590,7 +3661,7 @@ class SceneGridLayout extends SceneObjectBase {
3590
3661
  const yDiff = firstPanelYPos - (rowY + 1);
3591
3662
  let yMax = rowY;
3592
3663
  for (const panel of rowChildren) {
3593
- const newSize = __spreadValues$1({}, panel.state.placement);
3664
+ const newSize = __spreadValues$2({}, panel.state.placement);
3594
3665
  newSize.y = (_d = newSize.y) != null ? _d : rowY;
3595
3666
  newSize.y -= yDiff;
3596
3667
  if (newSize.y > ((_e = panel.state.placement) == null ? void 0 : _e.y)) {
@@ -3632,7 +3703,7 @@ class SceneGridLayout extends SceneObjectBase {
3632
3703
  pushChildDown(child, amount) {
3633
3704
  var _a;
3634
3705
  child.setState({
3635
- placement: __spreadProps(__spreadValues$1({}, child.state.placement), {
3706
+ placement: __spreadProps(__spreadValues$2({}, child.state.placement), {
3636
3707
  y: ((_a = child.state.placement) == null ? void 0 : _a.y) + amount
3637
3708
  })
3638
3709
  });
@@ -3700,7 +3771,7 @@ class SceneGridLayout extends SceneObjectBase {
3700
3771
  cells = sortGridLayout(cells);
3701
3772
  if (width < 768) {
3702
3773
  this._skipOnLayoutChange = true;
3703
- return cells.map((cell) => __spreadProps(__spreadValues$1({}, cell), { w: 24 }));
3774
+ return cells.map((cell) => __spreadProps(__spreadValues$2({}, cell), { w: 24 }));
3704
3775
  }
3705
3776
  this._skipOnLayoutChange = false;
3706
3777
  return cells;
@@ -3783,19 +3854,19 @@ SceneApp.Component = ({ model }) => {
3783
3854
  })));
3784
3855
  };
3785
3856
 
3786
- var __defProp = Object.defineProperty;
3787
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3788
- var __hasOwnProp = Object.prototype.hasOwnProperty;
3789
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
3790
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3791
- var __spreadValues = (a, b) => {
3857
+ var __defProp$1 = Object.defineProperty;
3858
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
3859
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
3860
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
3861
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3862
+ var __spreadValues$1 = (a, b) => {
3792
3863
  for (var prop in b || (b = {}))
3793
- if (__hasOwnProp.call(b, prop))
3794
- __defNormalProp(a, prop, b[prop]);
3795
- if (__getOwnPropSymbols)
3796
- for (var prop of __getOwnPropSymbols(b)) {
3797
- if (__propIsEnum.call(b, prop))
3798
- __defNormalProp(a, prop, b[prop]);
3864
+ if (__hasOwnProp$1.call(b, prop))
3865
+ __defNormalProp$1(a, prop, b[prop]);
3866
+ if (__getOwnPropSymbols$1)
3867
+ for (var prop of __getOwnPropSymbols$1(b)) {
3868
+ if (__propIsEnum$1.call(b, prop))
3869
+ __defNormalProp$1(a, prop, b[prop]);
3799
3870
  }
3800
3871
  return a;
3801
3872
  };
@@ -3804,7 +3875,7 @@ function useAppQueryParams() {
3804
3875
  return runtime.locationSearchToObject(location.search || "");
3805
3876
  }
3806
3877
  function getLinkUrlWithAppUrlState(path, params, preserveParams) {
3807
- const paramsCopy = __spreadValues({}, params);
3878
+ const paramsCopy = __spreadValues$1({}, params);
3808
3879
  if (preserveParams) {
3809
3880
  for (const key of Object.keys(paramsCopy)) {
3810
3881
  if (!preserveParams.includes(key)) {
@@ -3958,6 +4029,35 @@ function getParentBreadcrumbs(parent, params) {
3958
4029
  return void 0;
3959
4030
  }
3960
4031
 
4032
+ var __defProp = Object.defineProperty;
4033
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4034
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4035
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
4036
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4037
+ var __spreadValues = (a, b) => {
4038
+ for (var prop in b || (b = {}))
4039
+ if (__hasOwnProp.call(b, prop))
4040
+ __defNormalProp(a, prop, b[prop]);
4041
+ if (__getOwnPropSymbols)
4042
+ for (var prop of __getOwnPropSymbols(b)) {
4043
+ if (__propIsEnum.call(b, prop))
4044
+ __defNormalProp(a, prop, b[prop]);
4045
+ }
4046
+ return a;
4047
+ };
4048
+ class SceneReactObject extends SceneObjectBase {
4049
+ }
4050
+ SceneReactObject.Component = ({ model }) => {
4051
+ const { component: Component, props, reactNode } = model.useState();
4052
+ if (Component) {
4053
+ return /* @__PURE__ */ React__default["default"].createElement(Component, __spreadValues({}, props));
4054
+ }
4055
+ if (reactNode) {
4056
+ return reactNode;
4057
+ }
4058
+ return null;
4059
+ };
4060
+
3961
4061
  exports.ConstantVariable = ConstantVariable;
3962
4062
  exports.CustomVariable = CustomVariable;
3963
4063
  exports.DataSourceVariable = DataSourceVariable;
@@ -3979,6 +4079,7 @@ exports.SceneObjectBase = SceneObjectBase;
3979
4079
  exports.SceneObjectStateChangedEvent = SceneObjectStateChangedEvent;
3980
4080
  exports.SceneObjectUrlSyncConfig = SceneObjectUrlSyncConfig;
3981
4081
  exports.SceneQueryRunner = SceneQueryRunner;
4082
+ exports.SceneReactObject = SceneReactObject;
3982
4083
  exports.SceneRefreshPicker = SceneRefreshPicker;
3983
4084
  exports.SceneTimePicker = SceneTimePicker;
3984
4085
  exports.SceneTimeRange = SceneTimeRange;
@@ -3992,6 +4093,7 @@ exports.UrlSyncManager = UrlSyncManager;
3992
4093
  exports.VariableDependencyConfig = VariableDependencyConfig;
3993
4094
  exports.VariableValueSelectors = VariableValueSelectors;
3994
4095
  exports.VizPanel = VizPanel;
4096
+ exports.VizPanelMenu = VizPanelMenu;
3995
4097
  exports.formatRegistry = formatRegistry;
3996
4098
  exports.isSceneObject = isSceneObject;
3997
4099
  exports.sceneGraph = sceneGraph;