@grafana/scenes 5.33.1--canary.996.12371059735.0 → 6.0.0--canary.979.12373078054.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var React = require('react');
6
5
  var reactRouterDom = require('react-router-dom');
7
6
  var data = require('@grafana/data');
8
7
  var runtime = require('@grafana/runtime');
8
+ var React = require('react');
9
9
  var rxjs = require('rxjs');
10
10
  var uuid = require('uuid');
11
11
  var lodash = require('lodash');
@@ -72,8 +72,24 @@ function getUrlWithAppState(path, searchObject, preserveParams) {
72
72
  }
73
73
  return data.urlUtil.renderUrl(data.locationUtil.assureBaseUrl(path), paramsCopy);
74
74
  }
75
- function renderSceneComponentWithRouteProps(sceneObject, routeProps) {
76
- return React__default["default"].createElement(sceneObject.Component, { model: sceneObject, routeProps });
75
+ function useSceneRouteMatch(path) {
76
+ const params = reactRouterDom.useParams();
77
+ const location = reactRouterDom.useLocation();
78
+ const isExact = reactRouterDom.matchPath(
79
+ {
80
+ path,
81
+ caseSensitive: false,
82
+ end: true
83
+ },
84
+ location.pathname
85
+ );
86
+ const match = {
87
+ params,
88
+ isExact: isExact !== null,
89
+ path: location.pathname,
90
+ url: location.pathname
91
+ };
92
+ return match;
77
93
  }
78
94
 
79
95
  var __defProp$P = Object.defineProperty;
@@ -2481,7 +2497,7 @@ function patchGetAdhocFilters(filterVar) {
2481
2497
  function findActiveAdHocFilterVariableByUid(dsUid) {
2482
2498
  var _a;
2483
2499
  for (const filter of allActiveFilterSets.values()) {
2484
- if (interpolate(filter, (_a = filter.state.datasource) == null ? void 0 : _a.uid) === dsUid) {
2500
+ if (((_a = filter.state.datasource) == null ? void 0 : _a.uid) === dsUid) {
2485
2501
  return filter;
2486
2502
  }
2487
2503
  }
@@ -2527,7 +2543,7 @@ const allActiveGroupByVariables = /* @__PURE__ */ new Set();
2527
2543
  function findActiveGroupByVariablesByUid(dsUid) {
2528
2544
  var _a;
2529
2545
  for (const groupByVariable of allActiveGroupByVariables.values()) {
2530
- if (interpolate(groupByVariable, (_a = groupByVariable.state.datasource) == null ? void 0 : _a.uid) === dsUid) {
2546
+ if (((_a = groupByVariable.state.datasource) == null ? void 0 : _a.uid) === dsUid) {
2531
2547
  return groupByVariable;
2532
2548
  }
2533
2549
  }
@@ -5570,7 +5586,7 @@ class SceneQueryRunner extends SceneObjectBase {
5570
5586
  try {
5571
5587
  const datasource = (_c = this.state.datasource) != null ? _c : findFirstDatasource(queries);
5572
5588
  const ds = await getDataSource(datasource, this._scopedVars);
5573
- this.findAndSubscribeToAdHocFilters(ds.uid);
5589
+ this.findAndSubscribeToAdHocFilters(datasource == null ? void 0 : datasource.uid);
5574
5590
  const runRequest = runtime.getRunRequest();
5575
5591
  const { primary, secondaries, processors } = this.prepareRequests(timeRange, ds);
5576
5592
  writeSceneLog("SceneQueryRunner", "Starting runRequest", this.state.key);
@@ -5699,13 +5715,13 @@ class SceneQueryRunner extends SceneObjectBase {
5699
5715
  });
5700
5716
  return Array.from(found.values());
5701
5717
  }
5702
- findAndSubscribeToAdHocFilters(interpolatedUid) {
5703
- const filtersVar = findActiveAdHocFilterVariableByUid(interpolatedUid);
5718
+ findAndSubscribeToAdHocFilters(uid) {
5719
+ const filtersVar = findActiveAdHocFilterVariableByUid(uid);
5704
5720
  if (this._adhocFiltersVar !== filtersVar) {
5705
5721
  this._adhocFiltersVar = filtersVar;
5706
5722
  this._updateExplicitVariableDependencies();
5707
5723
  }
5708
- const groupByVar = findActiveGroupByVariablesByUid(interpolatedUid);
5724
+ const groupByVar = findActiveGroupByVariablesByUid(uid);
5709
5725
  if (this._groupByVar !== groupByVar) {
5710
5726
  this._groupByVar = groupByVar;
5711
5727
  this._updateExplicitVariableDependencies();
@@ -5799,16 +5815,13 @@ function escapeLokiRegexp(value) {
5799
5815
  return value.replace(RE2_METACHARACTERS, "\\$&");
5800
5816
  }
5801
5817
  function getQueriesForVariables(sourceObject) {
5802
- var _a;
5803
5818
  const runners = sceneGraph.findAllObjects(
5804
5819
  sourceObject.getRoot(),
5805
5820
  (o) => o instanceof SceneQueryRunner
5806
5821
  );
5807
- const interpolatedDsUuid = sceneGraph.interpolate(sourceObject, (_a = sourceObject.state.datasource) == null ? void 0 : _a.uid);
5808
5822
  const applicableRunners = filterOutInactiveRunnerDuplicates(runners).filter((r) => {
5809
- var _a2;
5810
- const interpolatedQueryDsUuid = sceneGraph.interpolate(sourceObject, (_a2 = r.state.datasource) == null ? void 0 : _a2.uid);
5811
- return interpolatedQueryDsUuid === interpolatedDsUuid;
5823
+ var _a, _b;
5824
+ return ((_a = r.state.datasource) == null ? void 0 : _a.uid) === ((_b = sourceObject.state.datasource) == null ? void 0 : _b.uid);
5812
5825
  });
5813
5826
  if (applicableRunners.length === 0) {
5814
5827
  return [];
@@ -12441,11 +12454,12 @@ SceneApp.Component = ({ model }) => {
12441
12454
  const { pages } = model.useState();
12442
12455
  return /* @__PURE__ */ React__default["default"].createElement(SceneAppContext.Provider, {
12443
12456
  value: model
12444
- }, /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Switch, null, pages.map((page) => /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
12457
+ }, /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Routes, null, pages.map((page) => /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
12445
12458
  key: page.state.url,
12446
- exact: false,
12447
- path: page.state.url,
12448
- render: (props) => renderSceneComponentWithRouteProps(page, props)
12459
+ path: page.state.routePath,
12460
+ element: /* @__PURE__ */ React__default["default"].createElement(page.Component, {
12461
+ model: page
12462
+ })
12449
12463
  }))));
12450
12464
  };
12451
12465
  const SceneAppContext = React.createContext(null);
@@ -12698,11 +12712,12 @@ function getStyles(theme) {
12698
12712
  };
12699
12713
  }
12700
12714
 
12701
- function SceneAppPageView({ page, routeProps }) {
12715
+ function SceneAppPageView({ page }) {
12716
+ const routeMatch = useSceneRouteMatch(page.state.url);
12702
12717
  const containerPage = getParentPageIfTab(page);
12703
12718
  const containerState = containerPage.useState();
12704
12719
  const params = useAppQueryParams();
12705
- const scene = page.getScene(routeProps.match);
12720
+ const scene = page.getScene(routeMatch);
12706
12721
  const appContext = React.useContext(SceneAppContext);
12707
12722
  const isInitialized = containerState.initializedScene === scene;
12708
12723
  const { layout } = page.state;
@@ -12787,8 +12802,12 @@ function getParentBreadcrumbs(parent, params, searchObject) {
12787
12802
  }
12788
12803
  return void 0;
12789
12804
  }
12790
- function SceneAppDrilldownViewRender({ drilldown, parent, routeProps }) {
12791
- return renderSceneComponentWithRouteProps(parent.getDrilldownPage(drilldown, routeProps.match), routeProps);
12805
+ function SceneAppDrilldownViewRender({ drilldown, parent }) {
12806
+ const routeMatch = useSceneRouteMatch(drilldown.routePath);
12807
+ const page = parent.getDrilldownPage(drilldown, routeMatch);
12808
+ return /* @__PURE__ */ React__default["default"].createElement(page.Component, {
12809
+ model: page
12810
+ });
12792
12811
  }
12793
12812
 
12794
12813
  class SceneAppPage extends SceneObjectBase {
@@ -12836,42 +12855,40 @@ class SceneAppPage extends SceneObjectBase {
12836
12855
  }
12837
12856
  }
12838
12857
  SceneAppPage.Component = SceneAppPageRenderer;
12839
- function SceneAppPageRenderer({ model, routeProps }) {
12840
- var _a, _b;
12858
+ function SceneAppPageRenderer({ model }) {
12841
12859
  const { tabs, drilldowns } = model.useState();
12842
12860
  const routes = [];
12861
+ routes.push(getFallbackRoute(model));
12843
12862
  if (tabs && tabs.length > 0) {
12844
12863
  for (let tabIndex = 0; tabIndex < tabs.length; tabIndex++) {
12845
12864
  const tab = tabs[tabIndex];
12846
12865
  if (tabIndex === 0) {
12847
- routes.push(
12848
- /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
12849
- exact: true,
12850
- key: model.state.url,
12851
- path: (_a = model.state.routePath) != null ? _a : model.state.url,
12852
- render: (props) => renderSceneComponentWithRouteProps(tab, props)
12866
+ routes.push(/* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
12867
+ key: model.state.routePath,
12868
+ path: "",
12869
+ element: /* @__PURE__ */ React__default["default"].createElement(tab.Component, {
12870
+ model: tab
12853
12871
  })
12854
- );
12872
+ }));
12855
12873
  }
12856
12874
  routes.push(
12857
12875
  /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
12858
- exact: true,
12859
12876
  key: tab.state.url,
12860
- path: (_b = tab.state.routePath) != null ? _b : tab.state.url,
12861
- render: (props) => renderSceneComponentWithRouteProps(tab, props)
12877
+ path: tab.state.routePath,
12878
+ element: /* @__PURE__ */ React__default["default"].createElement(tab.Component, {
12879
+ model: tab
12880
+ })
12862
12881
  })
12863
12882
  );
12864
12883
  if (tab.state.drilldowns) {
12865
12884
  for (const drilldown of tab.state.drilldowns) {
12866
12885
  routes.push(
12867
12886
  /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
12868
- exact: false,
12869
12887
  key: drilldown.routePath,
12870
12888
  path: drilldown.routePath,
12871
- render: (props) => /* @__PURE__ */ React__default["default"].createElement(SceneAppDrilldownViewRender, {
12889
+ element: /* @__PURE__ */ React__default["default"].createElement(SceneAppDrilldownViewRender, {
12872
12890
  drilldown,
12873
- parent: tab,
12874
- routeProps: props
12891
+ parent: tab
12875
12892
  })
12876
12893
  })
12877
12894
  );
@@ -12884,51 +12901,39 @@ function SceneAppPageRenderer({ model, routeProps }) {
12884
12901
  routes.push(
12885
12902
  /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
12886
12903
  key: drilldown.routePath,
12887
- exact: false,
12888
12904
  path: drilldown.routePath,
12889
- render: (props) => /* @__PURE__ */ React__default["default"].createElement(SceneAppDrilldownViewRender, {
12905
+ Component: () => /* @__PURE__ */ React__default["default"].createElement(SceneAppDrilldownViewRender, {
12890
12906
  drilldown,
12891
- parent: model,
12892
- routeProps: props
12907
+ parent: model
12893
12908
  })
12894
12909
  })
12895
12910
  );
12896
12911
  }
12897
12912
  }
12898
- if (!tabs && isCurrentPageRouteMatch(model, routeProps.match)) {
12899
- return /* @__PURE__ */ React__default["default"].createElement(SceneAppPageView, {
12900
- page: model,
12901
- routeProps
12902
- });
12913
+ if (!tabs) {
12914
+ routes.push(/* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
12915
+ key: "home route",
12916
+ path: "/",
12917
+ element: /* @__PURE__ */ React__default["default"].createElement(SceneAppPageView, {
12918
+ page: model
12919
+ })
12920
+ }));
12903
12921
  }
12904
- routes.push(getFallbackRoute(model, routeProps));
12905
- return /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Switch, null, routes);
12922
+ return /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Routes, null, routes);
12906
12923
  }
12907
- function getFallbackRoute(page, routeProps) {
12924
+ function getFallbackRoute(page) {
12908
12925
  return /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
12909
12926
  key: "fallback route",
12910
- render: (props) => {
12927
+ path: "*",
12928
+ Component: () => {
12911
12929
  var _a, _b, _c;
12912
12930
  const fallbackPage = (_c = (_b = (_a = page.state).getFallbackPage) == null ? void 0 : _b.call(_a)) != null ? _c : getDefaultFallbackPage();
12913
12931
  return /* @__PURE__ */ React__default["default"].createElement(SceneAppPageView, {
12914
- page: fallbackPage,
12915
- routeProps
12932
+ page: fallbackPage
12916
12933
  });
12917
12934
  }
12918
12935
  });
12919
12936
  }
12920
- function isCurrentPageRouteMatch(page, match) {
12921
- if (!match.isExact) {
12922
- return false;
12923
- }
12924
- if (match.url === page.state.url) {
12925
- return true;
12926
- }
12927
- if (page.parent instanceof SceneAppPage && page.parent.state.tabs[0] === page && page.parent.state.url === match.url) {
12928
- return true;
12929
- }
12930
- return false;
12931
- }
12932
12937
  function getDefaultFallbackPage() {
12933
12938
  return new SceneAppPage({
12934
12939
  url: "",