@grafana/scenes 5.27.0--canary.912.12031759221.0 → 5.27.0--canary.968.12050773878.0

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grafana/scenes",
3
- "version": "5.27.0--canary.912.12031759221.0",
3
+ "version": "5.27.0--canary.968.12050773878.0",
4
4
  "description": "Grafana framework for building dynamic dashboards",
5
5
  "author": "Grafana Labs",
6
6
  "license": "AGPL-3.0-only",
@@ -115,5 +115,5 @@
115
115
  "prettier --write"
116
116
  ]
117
117
  },
118
- "gitHead": "43d4a593ce06865e8d7f41c2807897174421b666"
118
+ "gitHead": "6532d0de0277d276b0f34b22522724b27d6ed8be"
119
119
  }
@@ -1,98 +0,0 @@
1
- import { useStyles2, Icon, Tooltip, Button } from '@grafana/ui';
2
- import React from 'react';
3
- import { css } from '@emotion/css';
4
- import { SceneObjectBase } from '../core/SceneObjectBase.js';
5
- import { map } from 'rxjs';
6
- import { sceneGraph } from '../core/sceneGraph/index.js';
7
- import { SceneDataTransformer } from '../querying/SceneDataTransformer.js';
8
- import { VizPanel } from './VizPanel/VizPanel.js';
9
- import { SceneQueryRunner } from '../querying/SceneQueryRunner.js';
10
-
11
- const LIMIT_FRAMES_TITLE_ITEM_TRANSFORMATION_KEY = "limit_frames_title_item_transformation";
12
- class LimitFramesTitleItemScene extends SceneObjectBase {
13
- constructor(state) {
14
- super(state);
15
- this.addActivationHandler(this.onActivate.bind(this));
16
- }
17
- onActivate() {
18
- const panel = sceneGraph.getAncestor(this, VizPanel);
19
- const $transformedDataArray = sceneGraph.findAllObjects(panel, (scene) => scene.state.key === LIMIT_FRAMES_TITLE_ITEM_TRANSFORMATION_KEY);
20
- const $transformedData = $transformedDataArray[0];
21
- if ($transformedData) {
22
- const $untransformedDataProviders = sceneGraph.findAllObjects($transformedData, (scene) => scene instanceof SceneDataTransformer || scene instanceof SceneQueryRunner);
23
- const $untransformedDataProvider = $untransformedDataProviders[0];
24
- this._subs.add(
25
- $transformedData.subscribeToState((transformedDataState) => {
26
- var _a, _b, _c;
27
- if ($untransformedDataProvider && ((_a = $untransformedDataProvider.state.data) == null ? void 0 : _a.series.length) !== this.state.currentFrameCount) {
28
- this.setState({
29
- currentFrameCount: (_b = transformedDataState.data) == null ? void 0 : _b.series.length,
30
- totalFrameCount: (_c = $untransformedDataProvider.state.data) == null ? void 0 : _c.series.length
31
- });
32
- }
33
- })
34
- );
35
- }
36
- }
37
- showAllSeries() {
38
- const $data = sceneGraph.getData(this);
39
- if ($data instanceof SceneDataTransformer) {
40
- $data.setState({
41
- transformations: []
42
- });
43
- this.setState({
44
- showAllFrames: true
45
- });
46
- $data.reprocessTransformations();
47
- }
48
- }
49
- }
50
- LimitFramesTitleItemScene.Component = ({ model }) => {
51
- const { showAllFrames, currentFrameCount, frameLimit, totalFrameCount } = model.useState();
52
- const styles = useStyles2(getStyles);
53
- if (totalFrameCount === void 0 || showAllFrames || !currentFrameCount || totalFrameCount < frameLimit) {
54
- return null;
55
- }
56
- return /* @__PURE__ */ React.createElement("div", {
57
- className: styles.timeSeriesDisclaimer
58
- }, /* @__PURE__ */ React.createElement("span", {
59
- className: styles.warningMessage
60
- }, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Icon, {
61
- title: `Showing only ${model.state.frameLimit} series`,
62
- name: "exclamation-triangle",
63
- "aria-hidden": "true"
64
- }))), /* @__PURE__ */ React.createElement(Tooltip, {
65
- content: "Rendering too many series in a single panel may impact performance and make data harder to read."
66
- }, /* @__PURE__ */ React.createElement(Button, {
67
- variant: "secondary",
68
- size: "sm",
69
- onClick: () => model.showAllSeries()
70
- }, /* @__PURE__ */ React.createElement(React.Fragment, null, "Show all ", totalFrameCount))));
71
- };
72
- function limitFramesTransformation(limit) {
73
- return (source) => {
74
- return source.pipe(
75
- map((frames) => {
76
- return frames.slice(0, limit);
77
- })
78
- );
79
- };
80
- }
81
- const getStyles = (theme) => ({
82
- timeSeriesDisclaimer: css({
83
- label: "time-series-disclaimer",
84
- display: "flex",
85
- alignItems: "center",
86
- gap: theme.spacing(1)
87
- }),
88
- warningMessage: css({
89
- display: "flex",
90
- alignItems: "center",
91
- gap: theme.spacing(0.5),
92
- color: theme.colors.warning.main,
93
- fontSize: theme.typography.bodySmall.fontSize
94
- })
95
- });
96
-
97
- export { LIMIT_FRAMES_TITLE_ITEM_TRANSFORMATION_KEY, LimitFramesTitleItemScene, limitFramesTransformation };
98
- //# sourceMappingURL=LimitFramesTitleItemScene.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LimitFramesTitleItemScene.js","sources":["../../../src/components/LimitFramesTitleItemScene.tsx"],"sourcesContent":["import { Button, Icon, Tooltip, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { css } from '@emotion/css';\nimport { SceneObjectBase } from '../core/SceneObjectBase';\nimport { map, Observable } from 'rxjs';\nimport { SceneComponentProps, SceneDataProvider, SceneObjectState } from '../core/types';\nimport { sceneGraph } from '../core/sceneGraph';\nimport { SceneDataTransformer } from '../querying/SceneDataTransformer';\nimport { VizPanel } from './VizPanel/VizPanel';\nimport { SceneQueryRunner } from '../querying/SceneQueryRunner';\n\nexport interface LimitFramesTitleItemSceneState extends SceneObjectState {\n showAllFrames?: boolean;\n currentFrameCount?: number;\n totalFrameCount?: number\n frameLimit: number\n}\n\nexport const LIMIT_FRAMES_TITLE_ITEM_TRANSFORMATION_KEY = 'limit_frames_title_item_transformation'\n\n/**\n * PanelBuilder titleItems component that will limit the default number of series rendered\n *\n * Usage:\n * PanelBuilders.timeseries()\n * .setData($data)\n * .setTitleItems([new LimitFramesTitleItemScene({\n * frameLimit: 20, // limits the default number of series that are rendered in the viz\n * })])\n */\nexport class LimitFramesTitleItemScene extends SceneObjectBase<LimitFramesTitleItemSceneState> {\n public constructor(state: LimitFramesTitleItemSceneState) {\n super(state);\n this.addActivationHandler(this.onActivate.bind(this));\n }\n\n private onActivate() {\n const panel = sceneGraph.getAncestor(this, VizPanel);\n\n const $transformedDataArray = sceneGraph.findAllObjects(panel, (scene) => scene.state.key === LIMIT_FRAMES_TITLE_ITEM_TRANSFORMATION_KEY)\n const $transformedData = $transformedDataArray[0] as SceneDataTransformer | undefined;\n\n if($transformedData){\n const $untransformedDataProviders = sceneGraph.findAllObjects($transformedData, (scene) => scene instanceof SceneDataTransformer || scene instanceof SceneQueryRunner)\n const $untransformedDataProvider = $untransformedDataProviders[0] as SceneDataProvider | undefined\n\n // Subscribe to data changes and update the frame counts\n this._subs.add(\n $transformedData.subscribeToState((transformedDataState) => {\n if ($untransformedDataProvider && $untransformedDataProvider.state.data?.series.length !== this.state.currentFrameCount) {\n this.setState({\n currentFrameCount: transformedDataState.data?.series.length,\n totalFrameCount: $untransformedDataProvider.state.data?.series.length\n });\n }\n })\n );\n }\n }\n\n /**\n * Removes the default series limit and renders all series in the viz\n */\n public showAllSeries () {\n const $data = sceneGraph.getData(this);\n if($data instanceof SceneDataTransformer){\n $data.setState({\n transformations: [],\n });\n this.setState({\n showAllFrames: true,\n });\n $data.reprocessTransformations();\n }\n }\n public static Component = ({ model }: SceneComponentProps<LimitFramesTitleItemScene>) => {\n const { showAllFrames, currentFrameCount, frameLimit, totalFrameCount, } = model.useState();\n const styles = useStyles2(getStyles);\n\n if (\n totalFrameCount === undefined ||\n showAllFrames ||\n !currentFrameCount ||\n totalFrameCount < frameLimit\n ) {\n return null;\n }\n\n return (\n <div className={styles.timeSeriesDisclaimer}>\n <span className={styles.warningMessage}>\n <>\n <Icon\n title={`Showing only ${model.state.frameLimit} series`}\n name=\"exclamation-triangle\"\n aria-hidden=\"true\"\n />\n </>\n </span>\n <Tooltip content={'Rendering too many series in a single panel may impact performance and make data harder to read.'}>\n <Button variant=\"secondary\" size=\"sm\" onClick={() => model.showAllSeries()}>\n <>Show all {totalFrameCount}</>\n </Button>\n </Tooltip>\n </div>\n );\n };\n}\n\nexport function limitFramesTransformation(limit: number) {\n return (source: Observable<DataFrame[]>) => {\n return source.pipe(\n map((frames) => {\n return frames.slice(0, limit);\n })\n );\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n timeSeriesDisclaimer: css({\n label: 'time-series-disclaimer',\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n }),\n warningMessage: css({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n color: theme.colors.warning.main,\n fontSize: theme.typography.bodySmall.fontSize,\n }),\n});\n"],"names":[],"mappings":"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"}