@grafana/scenes 5.26.0--canary.912.11978949363.0 → 5.26.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +12 -0
- package/dist/esm/core/PanelBuilders/VizPanelBuilder.js +0 -32
- package/dist/esm/core/PanelBuilders/VizPanelBuilder.js.map +1 -1
- package/dist/esm/core/sceneGraph/index.js +2 -3
- package/dist/esm/core/sceneGraph/index.js.map +1 -1
- package/dist/esm/core/sceneGraph/sceneGraph.js +1 -8
- package/dist/esm/core/sceneGraph/sceneGraph.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/variables/groupby/GroupByVariable.js +11 -2
- package/dist/esm/variables/groupby/GroupByVariable.js.map +1 -1
- package/dist/index.d.ts +1 -38
- package/dist/index.js +37 -148
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/components/LimitSeriesTitleItem.js +0 -93
- package/dist/esm/components/LimitSeriesTitleItem.js.map +0 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@grafana/scenes",
|
3
|
-
"version": "5.26.0
|
3
|
+
"version": "5.26.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": "
|
118
|
+
"gitHead": "2c5ef4771de511d7d0230a083b798699bbb9e581"
|
119
119
|
}
|
@@ -1,93 +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
|
-
class TimeSeriesLimitSeriesTitleItemScene extends SceneObjectBase {
|
12
|
-
constructor(state) {
|
13
|
-
super(state);
|
14
|
-
this.addActivationHandler(this.onActivate.bind(this));
|
15
|
-
}
|
16
|
-
onActivate() {
|
17
|
-
const panel = sceneGraph.getAncestor(this, VizPanel);
|
18
|
-
const $transformedData = sceneGraph.getData(panel);
|
19
|
-
const untransformedQueryRunner = sceneGraph.findDescendent(panel, SceneQueryRunner);
|
20
|
-
this._subs.add(
|
21
|
-
$transformedData.subscribeToState((transformedDataState) => {
|
22
|
-
var _a, _b, _c;
|
23
|
-
if (untransformedQueryRunner && ((_a = untransformedQueryRunner.state.data) == null ? void 0 : _a.series.length) !== this.state.currentSeriesCount) {
|
24
|
-
this.setState({
|
25
|
-
currentSeriesCount: (_b = transformedDataState.data) == null ? void 0 : _b.series.length,
|
26
|
-
totalSeriesCount: (_c = untransformedQueryRunner.state.data) == null ? void 0 : _c.series.length
|
27
|
-
});
|
28
|
-
}
|
29
|
-
})
|
30
|
-
);
|
31
|
-
}
|
32
|
-
showAllSeries() {
|
33
|
-
const $data = sceneGraph.getData(this);
|
34
|
-
if ($data instanceof SceneDataTransformer) {
|
35
|
-
$data.setState({
|
36
|
-
transformations: []
|
37
|
-
});
|
38
|
-
this.setState({
|
39
|
-
showAllSeries: true
|
40
|
-
});
|
41
|
-
$data.reprocessTransformations();
|
42
|
-
}
|
43
|
-
}
|
44
|
-
}
|
45
|
-
TimeSeriesLimitSeriesTitleItemScene.Component = ({ model }) => {
|
46
|
-
const { showAllSeries, currentSeriesCount, seriesLimit, totalSeriesCount } = model.useState();
|
47
|
-
const styles = useStyles2(getStyles);
|
48
|
-
if (totalSeriesCount === void 0 || showAllSeries || !currentSeriesCount || totalSeriesCount < seriesLimit) {
|
49
|
-
return null;
|
50
|
-
}
|
51
|
-
return /* @__PURE__ */ React.createElement("div", {
|
52
|
-
className: styles.timeSeriesDisclaimer
|
53
|
-
}, /* @__PURE__ */ React.createElement("span", {
|
54
|
-
className: styles.warningMessage
|
55
|
-
}, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Icon, {
|
56
|
-
title: `Showing only ${model.state.seriesLimit} series`,
|
57
|
-
name: "exclamation-triangle",
|
58
|
-
"aria-hidden": "true"
|
59
|
-
}))), /* @__PURE__ */ React.createElement(Tooltip, {
|
60
|
-
content: "Rendering too many series in a single panel may impact performance and make data harder to read."
|
61
|
-
}, /* @__PURE__ */ React.createElement(Button, {
|
62
|
-
variant: "secondary",
|
63
|
-
size: "sm",
|
64
|
-
onClick: () => model.showAllSeries()
|
65
|
-
}, /* @__PURE__ */ React.createElement(React.Fragment, null, "Show all ", totalSeriesCount))));
|
66
|
-
};
|
67
|
-
function limitFramesTransformation(limit) {
|
68
|
-
return (source) => {
|
69
|
-
return source.pipe(
|
70
|
-
map((frames) => {
|
71
|
-
return frames.slice(0, limit);
|
72
|
-
})
|
73
|
-
);
|
74
|
-
};
|
75
|
-
}
|
76
|
-
const getStyles = (theme) => ({
|
77
|
-
timeSeriesDisclaimer: css({
|
78
|
-
label: "time-series-disclaimer",
|
79
|
-
display: "flex",
|
80
|
-
alignItems: "center",
|
81
|
-
gap: theme.spacing(1)
|
82
|
-
}),
|
83
|
-
warningMessage: css({
|
84
|
-
display: "flex",
|
85
|
-
alignItems: "center",
|
86
|
-
gap: theme.spacing(0.5),
|
87
|
-
color: theme.colors.warning.main,
|
88
|
-
fontSize: theme.typography.bodySmall.fontSize
|
89
|
-
})
|
90
|
-
});
|
91
|
-
|
92
|
-
export { TimeSeriesLimitSeriesTitleItemScene, limitFramesTransformation };
|
93
|
-
//# sourceMappingURL=LimitSeriesTitleItem.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"LimitSeriesTitleItem.js","sources":["../../../src/components/LimitSeriesTitleItem.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, 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 TimeSeriesLimitSeriesTitleItemSceneState extends SceneObjectState {\n showAllSeries?: boolean;\n currentSeriesCount?: number;\n totalSeriesCount?: number\n seriesLimit: number\n}\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 TimeSeriesLimitSeriesTitleItemScene({\n * seriesLimit: 20, // limits the default number of series that are rendered in the viz\n * })])\n */\nexport class TimeSeriesLimitSeriesTitleItemScene extends SceneObjectBase<TimeSeriesLimitSeriesTitleItemSceneState> {\n public constructor(state: TimeSeriesLimitSeriesTitleItemSceneState) {\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 $transformedData = sceneGraph.getData(panel);\n const untransformedQueryRunner = sceneGraph.findDescendent(panel, SceneQueryRunner)\n\n // Subscribe to data changes and update the series counts\n this._subs.add(\n $transformedData.subscribeToState((transformedDataState) => {\n if (untransformedQueryRunner && untransformedQueryRunner.state.data?.series.length !== this.state.currentSeriesCount) {\n this.setState({\n currentSeriesCount: transformedDataState.data?.series.length,\n totalSeriesCount: untransformedQueryRunner.state.data?.series.length\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 showAllSeries: true,\n });\n $data.reprocessTransformations();\n }\n }\n public static Component = ({ model }: SceneComponentProps<TimeSeriesLimitSeriesTitleItemScene>) => {\n const { showAllSeries, currentSeriesCount, seriesLimit, totalSeriesCount, } = model.useState();\n const styles = useStyles2(getStyles);\n\n if (\n totalSeriesCount === undefined ||\n showAllSeries ||\n !currentSeriesCount ||\n totalSeriesCount < seriesLimit\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.seriesLimit} 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 {totalSeriesCount}</>\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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"}
|