@grafana/scenes 0.0.19 → 0.0.20

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.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import React, { CSSProperties } from 'react';
2
2
  import { Observable, Observer, SubscriptionLike, Unsubscribable, MonoTypeOperatorFunction, Subscription } from 'rxjs';
3
- import { BusEventWithPayload, PanelData, BusEvent, BusEventType, BusEventHandler, TimeZone, TimeRange, DataTransformContext, DataFrame, ScopedVars, DataSourceRef, DataQuery, DataTransformerConfig, Registry, RegistryItem, VariableRefresh, VariableSort, FieldConfigSource, PanelPlugin, AbsoluteTimeRange, InterpolateFunction } from '@grafana/data';
3
+ import { BusEventWithPayload, PanelData, BusEvent, BusEventType, BusEventHandler, TimeZone, TimeRange, DataTransformContext, DataFrame, ScopedVars, DataSourceRef, DataQuery, DataTransformerConfig, Registry, RegistryItem, VariableRefresh, VariableSort, FieldConfigSource, PanelPlugin, AbsoluteTimeRange, InterpolateFunction, IconName as IconName$1 } from '@grafana/data';
4
4
  import { VariableType, VariableHide, VariableModel } from '@grafana/schema';
5
5
  import { IconName } from '@grafana/ui';
6
6
  import ReactGridLayout from 'react-grid-layout';
@@ -911,9 +911,6 @@ declare class SceneGridLayout extends SceneObjectBase<SceneGridLayoutState> impl
911
911
  }
912
912
  declare function SceneGridLayoutRenderer({ model }: SceneComponentProps<SceneGridLayout>): JSX.Element;
913
913
 
914
- interface SceneAppState extends SceneObjectStatePlain {
915
- pages: SceneAppPage[];
916
- }
917
914
  interface SceneRouteMatch<Params extends {
918
915
  [K in keyof Params]?: string;
919
916
  } = {}> {
@@ -922,24 +919,45 @@ interface SceneRouteMatch<Params extends {
922
919
  path: string;
923
920
  url: string;
924
921
  }
925
- /**
926
- * Responsible for top level pages routing
927
- */
928
- declare class SceneApp extends SceneObjectBase<SceneAppState> {
929
- static Component: ({ model }: SceneComponentProps<SceneApp>) => JSX.Element;
922
+ interface SceneAppState extends SceneObjectStatePlain {
923
+ pages: SceneAppPageLike[];
924
+ }
925
+ interface SceneAppRoute {
926
+ path: string;
927
+ page?: SceneAppPageLike;
928
+ drilldown?: SceneAppDrilldownView;
930
929
  }
931
930
  interface SceneAppPageState extends SceneObjectStatePlain {
931
+ /** Page title */
932
932
  title: string;
933
+ /** Page subTitle */
933
934
  subTitle?: string;
935
+ /** For an image before title */
936
+ titleImg?: string;
937
+ /** For an icon before title */
938
+ titleIcon?: IconName$1;
934
939
  url: string;
935
940
  routePath?: string;
936
941
  hideFromBreadcrumbs?: boolean;
937
- tabs?: SceneAppPage[];
942
+ tabs?: SceneAppPageLike[];
938
943
  getScene: (routeMatch: SceneRouteMatch) => EmbeddedScene;
939
944
  drilldowns?: SceneAppDrilldownView[];
940
- getParentPage?: () => SceneAppPage;
945
+ getParentPage?: () => SceneAppPageLike;
941
946
  preserveUrlKeys?: string[];
942
947
  }
948
+ type SceneAppPageLike = SceneObject<SceneAppPageState>;
949
+ interface SceneAppDrilldownView {
950
+ routePath: string;
951
+ getPage: (routeMatch: SceneRouteMatch<any>, parent: SceneAppPageLike) => SceneAppPageLike;
952
+ }
953
+
954
+ /**
955
+ * Responsible for top level pages routing
956
+ */
957
+ declare class SceneApp extends SceneObjectBase<SceneAppState> {
958
+ static Component: ({ model }: SceneComponentProps<SceneApp>) => JSX.Element;
959
+ }
960
+
943
961
  /**
944
962
  * Responsible for page's drilldown & tabs routing
945
963
  */
@@ -947,9 +965,5 @@ declare class SceneAppPage extends SceneObjectBase<SceneAppPageState> {
947
965
  static Component: typeof SceneAppPageRenderer;
948
966
  }
949
967
  declare function SceneAppPageRenderer({ model }: SceneComponentProps<SceneAppPage>): JSX.Element;
950
- interface SceneAppDrilldownView {
951
- routePath: string;
952
- getPage: (routeMatch: SceneRouteMatch<any>, parent: SceneAppPage) => SceneAppPage;
953
- }
954
968
 
955
- export { ConstantVariable, CustomFormatterFn, CustomTransformOperator, CustomVariable, DataSourceVariable, DeepPartial, EmbeddedScene, EmbeddedSceneState, FormatRegistryID, FormatVariable, NestedScene, QueryRunnerState, QueryVariable, SceneApp, SceneAppPage, SceneByFrameRepeater, SceneCanvasText, SceneComponent, SceneComponentProps, SceneControlsSpacer, SceneDataNode, SceneDataProvider, SceneDataState, SceneDataTransformer, SceneEditor, SceneEditorState, SceneFlexLayout, SceneGridLayout, SceneGridRow, SceneLayout, SceneLayoutChild, SceneLayoutChildOptions, SceneLayoutChildState, SceneLayoutState, SceneObject, SceneObjectBase, SceneObjectRef, SceneObjectState, SceneObjectStateChangedEvent, SceneObjectStateChangedPayload, SceneObjectStatePlain, SceneObjectUrlSyncConfig, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryRunner, SceneRefreshPicker, SceneRouteMatch, SceneTimePicker, SceneTimeRange, SceneTimeRangeLike, SceneTimeRangeState, SceneToolbarButton, SceneToolbarInput, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSet, SceneVariableSetState, SceneVariableState, SceneVariableValueChangedEvent, SceneVariables, TestVariable, TextBoxVariable, UrlSyncManager, ValidateAndUpdateResult, VariableDependencyConfig, VariableValue, VariableValueCustom, VariableValueOption, VariableValueSelectors, VariableValueSingle, VizPanel, VizPanelState, formatRegistry, isSceneObject, sceneGraph };
969
+ export { ConstantVariable, CustomFormatterFn, CustomTransformOperator, CustomVariable, DataSourceVariable, DeepPartial, EmbeddedScene, EmbeddedSceneState, FormatRegistryID, FormatVariable, NestedScene, QueryRunnerState, QueryVariable, SceneApp, SceneAppDrilldownView, SceneAppPage, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneByFrameRepeater, SceneCanvasText, SceneComponent, SceneComponentProps, SceneControlsSpacer, SceneDataNode, SceneDataProvider, SceneDataState, SceneDataTransformer, SceneEditor, SceneEditorState, SceneFlexLayout, SceneGridLayout, SceneGridRow, SceneLayout, SceneLayoutChild, SceneLayoutChildOptions, SceneLayoutChildState, SceneLayoutState, SceneObject, SceneObjectBase, SceneObjectRef, SceneObjectState, SceneObjectStateChangedEvent, SceneObjectStateChangedPayload, SceneObjectStatePlain, SceneObjectUrlSyncConfig, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryRunner, SceneRefreshPicker, SceneRouteMatch, SceneTimePicker, SceneTimeRange, SceneTimeRangeLike, SceneTimeRangeState, SceneToolbarButton, SceneToolbarInput, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSet, SceneVariableSetState, SceneVariableState, SceneVariableValueChangedEvent, SceneVariables, TestVariable, TextBoxVariable, UrlSyncManager, ValidateAndUpdateResult, VariableDependencyConfig, VariableValue, VariableValueCustom, VariableValueOption, VariableValueSelectors, VariableValueSingle, VizPanel, VizPanelState, formatRegistry, isSceneObject, sceneGraph };
package/dist/index.js CHANGED
@@ -3269,7 +3269,8 @@ function FlexLayoutRenderer({ model, isEditing }) {
3269
3269
  display: "flex",
3270
3270
  gap: "8px",
3271
3271
  flexWrap: wrap,
3272
- alignContent: "baseline"
3272
+ alignContent: "baseline",
3273
+ minHeight: 0
3273
3274
  };
3274
3275
  return /* @__PURE__ */ React__default["default"].createElement("div", {
3275
3276
  style
@@ -3766,6 +3767,22 @@ function sortGridLayout(layout) {
3766
3767
  return [...layout].sort((a, b) => a.y - b.y || a.x - b.x);
3767
3768
  }
3768
3769
 
3770
+ class SceneApp extends SceneObjectBase {
3771
+ }
3772
+ SceneApp.Component = ({ model }) => {
3773
+ const { pages } = model.useState();
3774
+ return /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Switch, null, pages.map((page) => /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
3775
+ key: page.state.url,
3776
+ exact: false,
3777
+ path: page.state.url,
3778
+ render: () => {
3779
+ return page && /* @__PURE__ */ React__default["default"].createElement(page.Component, {
3780
+ model: page
3781
+ });
3782
+ }
3783
+ })));
3784
+ };
3785
+
3769
3786
  var __defProp = Object.defineProperty;
3770
3787
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3771
3788
  var __hasOwnProp = Object.prototype.hasOwnProperty;
@@ -3799,21 +3816,6 @@ function getLinkUrlWithAppUrlState(path, params, preserveParams) {
3799
3816
  }
3800
3817
 
3801
3818
  const sceneCache = /* @__PURE__ */ new Map();
3802
- class SceneApp extends SceneObjectBase {
3803
- }
3804
- SceneApp.Component = ({ model }) => {
3805
- const { pages } = model.useState();
3806
- return /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Switch, null, pages.map((page) => /* @__PURE__ */ React__default["default"].createElement(reactRouterDom.Route, {
3807
- key: page.state.url,
3808
- exact: false,
3809
- path: page.state.url,
3810
- render: () => {
3811
- return page && /* @__PURE__ */ React__default["default"].createElement(page.Component, {
3812
- model: page
3813
- });
3814
- }
3815
- })));
3816
- };
3817
3819
  class SceneAppPage extends SceneObjectBase {
3818
3820
  }
3819
3821
  SceneAppPage.Component = SceneAppPageRenderer;
@@ -3912,6 +3914,8 @@ function ScenePageRenderer({ page, tabs, activeTab }) {
3912
3914
  const pageNav = {
3913
3915
  text: page.state.title,
3914
3916
  subTitle: page.state.subTitle,
3917
+ img: page.state.titleImg,
3918
+ icon: page.state.titleIcon,
3915
3919
  url: getLinkUrlWithAppUrlState(page.state.url, params, page.state.preserveUrlKeys),
3916
3920
  hideFromBreadcrumbs: page.state.hideFromBreadcrumbs,
3917
3921
  parentItem: getParentBreadcrumbs(page.state.getParentPage ? page.state.getParentPage() : page.parent, params)