@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grafana/scenes",
3
- "version": "5.26.0--canary.912.11978949363.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": "68eed502abdf09a5def05400b503d3eb7af068e2"
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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"}