Gauge: Delete radialbar plugin to avoid migrations (#116722)

* Gauge: Delete radialbar plugin to avoid migrations

* fix frontend unit test

* update from CI issues
This commit is contained in:
Paul Marbach 2026-01-28 16:05:57 -05:00 committed by GitHub
parent 3c2116c0fe
commit 2182f8fef2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
58 changed files with 449 additions and 1306 deletions

View file

@ -365,7 +365,6 @@
"type": "changedfiles",
"matches": [
"public/app/plugins/panel/gauge/**/*",
"public/app/plugins/panel/radialbar/**/*",
"/packages/grafana-ui/src/components/Gauge/**/*",
"/packages/grafana-ui/src/components/RadialGauge/**/*"
],

View file

@ -110,7 +110,7 @@
}
],
"title": "Plain",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -188,7 +188,7 @@
}
],
"title": "Center glow",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -266,7 +266,7 @@
}
],
"title": "Center and bar glow",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -344,7 +344,7 @@
}
],
"title": "Sparkline",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -422,7 +422,7 @@
}
],
"title": "Square butts",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -500,7 +500,7 @@
}
],
"title": "Square butts gauge",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -591,7 +591,7 @@
}
],
"title": "Bar width 0,1",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -669,7 +669,7 @@
}
],
"title": "Bar width 0,32",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -747,7 +747,7 @@
}
],
"title": "Bar width 0,57",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -825,7 +825,7 @@
}
],
"title": "Bar width 0,8",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -916,7 +916,7 @@
}
],
"title": "Plain thresholds",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -994,7 +994,7 @@
}
],
"title": "Thresholds segmented",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1072,7 +1072,7 @@
}
],
"title": "Segmented + gradient",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1150,7 +1150,7 @@
}
],
"title": "Plain thresholds",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1228,7 +1228,7 @@
}
],
"title": "Thresholds circle segmented",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1323,7 +1323,7 @@
}
],
"title": "Thresholds labels",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1405,7 +1405,7 @@
}
],
"title": "Thresholds labels only",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1487,7 +1487,7 @@
}
],
"title": "Thresholds labels + circle",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1585,7 +1585,7 @@
}
],
"title": "Auto gradient + classic palette",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1669,7 +1669,7 @@
}
],
"title": "Continuous color scheme ",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1767,7 +1767,7 @@
}
],
"title": "Active gateways",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1852,7 +1852,7 @@
}
],
"title": "Active pods",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1936,7 +1936,7 @@
}
],
"title": "Backend",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -2020,7 +2020,7 @@
}
],
"title": "Backend",
"type": "radialbar"
"type": "gauge"
}
],
"preload": false,

View file

@ -116,7 +116,7 @@
}
],
"title": "Plain",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -194,7 +194,7 @@
}
],
"title": "Center glow",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -272,7 +272,7 @@
}
],
"title": "Center and bar glow",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -350,7 +350,7 @@
}
],
"title": "Sparkline",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -428,7 +428,7 @@
}
],
"title": "Square butts",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -506,7 +506,7 @@
}
],
"title": "Square butts gauge",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -597,7 +597,7 @@
}
],
"title": "Bar width 0,1",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -675,7 +675,7 @@
}
],
"title": "Bar width 0,32",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -753,7 +753,7 @@
}
],
"title": "Bar width 0,57",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -831,7 +831,7 @@
}
],
"title": "Bar width 0,8",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -922,7 +922,7 @@
}
],
"title": "Plain thresholds",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1000,7 +1000,7 @@
}
],
"title": "Thresholds segmented",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1078,7 +1078,7 @@
}
],
"title": "Segmented + gradient",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1156,7 +1156,7 @@
}
],
"title": "Plain thresholds",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1234,7 +1234,7 @@
}
],
"title": "Thresholds circle segmented",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1329,7 +1329,7 @@
}
],
"title": "Thresholds labels",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1411,7 +1411,7 @@
}
],
"title": "Thresholds labels only",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1493,7 +1493,7 @@
}
],
"title": "Thresholds labels + circle",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1591,7 +1591,7 @@
}
],
"title": "Auto gradient + classic palette",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1675,7 +1675,7 @@
}
],
"title": "Continuous color scheme ",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1773,7 +1773,7 @@
}
],
"title": "Active gateways",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1858,7 +1858,7 @@
}
],
"title": "Active pods",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1942,7 +1942,7 @@
}
],
"title": "Backend",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -2026,7 +2026,7 @@
}
],
"title": "Backend",
"type": "radialbar"
"type": "gauge"
}
],
"preload": false,

View file

@ -69,7 +69,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -160,7 +160,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -255,7 +255,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -351,7 +351,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -447,7 +447,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -542,7 +542,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -637,7 +637,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -728,7 +728,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -819,7 +819,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -910,7 +910,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1001,7 +1001,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1092,7 +1092,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1179,7 +1179,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1270,7 +1270,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1361,7 +1361,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1452,7 +1452,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1547,7 +1547,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1634,7 +1634,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1725,7 +1725,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1820,7 +1820,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -1915,7 +1915,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -2014,7 +2014,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -2105,7 +2105,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {
@ -2196,7 +2196,7 @@
}
},
"vizConfig": {
"kind": "radialbar",
"kind": "gauge",
"spec": {
"pluginVersion": "13.0.0-pre",
"options": {

View file

@ -73,7 +73,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -167,7 +167,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -265,7 +265,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -364,7 +364,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -463,7 +463,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -561,7 +561,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -659,7 +659,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -753,7 +753,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -847,7 +847,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -941,7 +941,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1035,7 +1035,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1129,7 +1129,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1219,7 +1219,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1313,7 +1313,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1407,7 +1407,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1501,7 +1501,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1599,7 +1599,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1689,7 +1689,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1783,7 +1783,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1881,7 +1881,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -1979,7 +1979,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -2081,7 +2081,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -2175,7 +2175,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {
@ -2269,7 +2269,7 @@
},
"vizConfig": {
"kind": "VizConfig",
"group": "radialbar",
"group": "gauge",
"version": "13.0.0-pre",
"spec": {
"options": {

View file

@ -110,7 +110,7 @@
}
],
"title": "Plain",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -188,7 +188,7 @@
}
],
"title": "Center glow",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -266,7 +266,7 @@
}
],
"title": "Center and bar glow",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -344,7 +344,7 @@
}
],
"title": "Sparkline",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -422,7 +422,7 @@
}
],
"title": "Square butts",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -500,7 +500,7 @@
}
],
"title": "Square butts gauge",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -591,7 +591,7 @@
}
],
"title": "Bar width 0,1",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -669,7 +669,7 @@
}
],
"title": "Bar width 0,32",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -747,7 +747,7 @@
}
],
"title": "Bar width 0,57",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -825,7 +825,7 @@
}
],
"title": "Bar width 0,8",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -916,7 +916,7 @@
}
],
"title": "Plain thresholds",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -994,7 +994,7 @@
}
],
"title": "Thresholds segmented",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1072,7 +1072,7 @@
}
],
"title": "Segmented + gradient",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1150,7 +1150,7 @@
}
],
"title": "Plain thresholds",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1228,7 +1228,7 @@
}
],
"title": "Thresholds circle segmented",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1323,7 +1323,7 @@
}
],
"title": "Thresholds labels",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1405,7 +1405,7 @@
}
],
"title": "Thresholds labels only",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1487,7 +1487,7 @@
}
],
"title": "Thresholds labels + circle",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1583,7 +1583,7 @@
}
],
"title": "Auto gradient + classic palette",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1665,7 +1665,7 @@
}
],
"title": "Continuous color scheme ",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1777,7 +1777,7 @@
}
}
],
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1876,7 +1876,7 @@
}
}
],
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1958,7 +1958,7 @@
}
],
"title": "Backend",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -2040,7 +2040,7 @@
}
],
"title": "Backend",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -2117,7 +2117,7 @@
}
],
"title": "Numeric, no series",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -2183,7 +2183,7 @@
}
],
"title": "Non-numeric",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -2278,7 +2278,7 @@
}
],
"title": "Single link",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -2364,7 +2364,7 @@
}
],
"title": "Multiple links",
"type": "radialbar"
"type": "gauge"
}
],
"preload": false,

View file

@ -148,7 +148,7 @@ func TestCoreProvider_loadPlugins(t *testing.T) {
provider := NewCoreProvider(pluginsPathFunc(pluginsPath))
err = provider.loadPlugins(ctx)
require.NoError(t, err)
assert.Len(t, provider.loadedPlugins, 53)
assert.Len(t, provider.loadedPlugins, 52)
})
t.Run("returns error when static root path not found", func(t *testing.T) {

View file

@ -108,7 +108,7 @@
}
],
"title": "Plain",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -184,7 +184,7 @@
}
],
"title": "Center glow",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -260,7 +260,7 @@
}
],
"title": "Center and bar glow",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -336,7 +336,7 @@
}
],
"title": "Sparkline",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -412,7 +412,7 @@
}
],
"title": "Square butts",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -488,7 +488,7 @@
}
],
"title": "Square butts gauge",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -577,7 +577,7 @@
}
],
"title": "Bar width 0,1",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -653,7 +653,7 @@
}
],
"title": "Bar width 0,32",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -729,7 +729,7 @@
}
],
"title": "Bar width 0,57",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -805,7 +805,7 @@
}
],
"title": "Bar width 0,8",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -894,7 +894,7 @@
}
],
"title": "Plain thresholds",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -970,7 +970,7 @@
}
],
"title": "Thresholds segmented",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1046,7 +1046,7 @@
}
],
"title": "Segmented + gradient",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1122,7 +1122,7 @@
}
],
"title": "Plain thresholds",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1198,7 +1198,7 @@
}
],
"title": "Thresholds circle segmented",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1291,7 +1291,7 @@
}
],
"title": "Thresholds labels",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1371,7 +1371,7 @@
}
],
"title": "Thresholds labels only",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1451,7 +1451,7 @@
}
],
"title": "Thresholds labels + circle",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1545,7 +1545,7 @@
}
],
"title": "Auto gradient + classic palette",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1625,7 +1625,7 @@
}
],
"title": "Continuous color scheme ",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -1735,7 +1735,7 @@
}
],
"title": "Active gateways",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1832,7 +1832,7 @@
}
],
"title": "Active pods",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1912,7 +1912,7 @@
}
],
"title": "Backend",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -1992,7 +1992,7 @@
}
],
"title": "Backend",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -2067,7 +2067,7 @@
}
],
"title": "Numeric, no series",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -2131,7 +2131,7 @@
}
],
"title": "Non-numeric",
"type": "radialbar"
"type": "gauge"
},
{
"collapsed": false,
@ -2226,7 +2226,7 @@
}
],
"title": "Single link",
"type": "radialbar"
"type": "gauge"
},
{
"datasource": {
@ -2312,7 +2312,7 @@
}
],
"title": "Multiple links",
"type": "radialbar"
"type": "gauge"
}
],
"preload": false,

View file

@ -4165,12 +4165,12 @@
"count": 1
}
},
"public/app/plugins/panel/gauge/GaugeMigrations.ts": {
"public/app/plugins/panel/gauge/v1/GaugeMigrations.ts": {
"@typescript-eslint/no-explicit-any": {
"count": 1
}
},
"public/app/plugins/panel/gauge/GaugePanel.tsx": {
"public/app/plugins/panel/gauge/v1/GaugePanel.tsx": {
"react-prefer-function-component/react-prefer-function-component": {
"count": 1
}

View file

@ -77,7 +77,7 @@ describe('v0alpha1AppMapper', () => {
it('should only map specs with type app', () => {
const result = v0alpha1AppMapper(v0alpha1Response);
expect(v0alpha1Response.items).toHaveLength(58);
expect(v0alpha1Response.items).toHaveLength(57);
expect(Object.keys(result)).toHaveLength(5);
expect(Object.keys(result)).toEqual(Object.keys(apps));
});

View file

@ -3482,63 +3482,6 @@ export const v0alpha1Response: PluginMetasResponse = cloneDeep({
},
status: {},
},
{
kind: 'Meta',
apiVersion: 'plugins.grafana.app/v0alpha1',
metadata: {
name: 'radialbar',
namespace: 'default',
},
spec: {
pluginJson: {
id: 'radialbar',
type: 'panel',
name: 'New Gauge',
info: {
keywords: [],
logos: {
small: 'public/plugins/radialbar/img/icon_gauge.svg',
large: 'public/plugins/radialbar/img/icon_gauge.svg',
},
updated: '',
version: '',
author: {
name: 'Grafana Labs',
url: 'https://grafana.com',
},
description: 'Standard gauge visualization',
links: [
{
name: 'Raise issue',
url: 'https://github.com/grafana/grafana/issues/new',
},
{
name: 'Documentation',
url: 'https://grafana.com/docs/grafana/latest/panels-visualizations/visualizations/gauge/',
},
],
},
dependencies: {
grafanaDependency: '',
grafanaVersion: '*',
},
state: 'alpha',
},
class: 'core',
module: {
path: 'core:plugin/radialbar',
loadingStrategy: 'script',
},
baseURL: 'public/plugins/radialbar',
signature: {
status: 'internal',
},
angular: {
detected: false,
},
},
status: {},
},
{
kind: 'Meta',
apiVersion: 'plugins.grafana.app/v0alpha1',

View file

@ -14,18 +14,49 @@ import * as common from '@grafana/schema';
export const pluginVersion = "12.4.0-pre";
export interface GaugePanelEffects {
barGlow?: boolean;
centerGlow?: boolean;
gradient?: boolean;
}
export const defaultGaugePanelEffects: Partial<GaugePanelEffects> = {
barGlow: false,
centerGlow: false,
gradient: true,
};
export interface Options extends common.SingleStatBaseOptions {
barShape: ('flat' | 'rounded');
barWidthFactor: number;
effects: GaugePanelEffects;
endpointMarker?: ('point' | 'glow' | 'none');
minVizHeight: number;
minVizWidth: number;
neutral?: number;
segmentCount: number;
segmentSpacing: number;
shape: ('circle' | 'gauge');
showThresholdLabels: boolean;
showThresholdMarkers: boolean;
sizing: common.BarGaugeSizing;
sparkline?: boolean;
textMode?: ('auto' | 'value_and_name' | 'value' | 'name' | 'none');
}
export const defaultOptions: Partial<Options> = {
barShape: 'flat',
barWidthFactor: 0.5,
effects: {},
endpointMarker: 'point',
minVizHeight: 75,
minVizWidth: 75,
segmentCount: 1,
segmentSpacing: 0.3,
shape: 'gauge',
showThresholdLabels: false,
showThresholdMarkers: true,
sizing: common.BarGaugeSizing.Auto,
sparkline: true,
textMode: 'auto',
};

View file

@ -278,16 +278,6 @@ func GetComposableKinds() ([]ComposableKind, error) {
CueFile: piechartCue,
})
radialbarCue, err := loadCueFileWithCommon(root, filepath.Join(root, "./public/app/plugins/panel/radialbar/panelcfg.cue"))
if err != nil {
return nil, err
}
kinds = append(kinds, ComposableKind{
Name: "radialbar",
Filename: "panelcfg.cue",
CueFile: radialbarCue,
})
statCue, err := loadCueFileWithCommon(root, filepath.Join(root, "./public/app/plugins/panel/stat/panelcfg.cue"))
if err != nil {
return nil, err

View file

@ -236,7 +236,6 @@ func verifyCorePluginCatalogue(t *testing.T, ctx context.Context, ps *pluginstor
"welcome": {},
"xychart": {},
"datagrid": {},
"radialbar": {},
}
expDataSources := map[string]struct{}{

View file

@ -71,7 +71,7 @@ jest.mock('../state/util', () => {
};
});
const SCALAR_PLUGINS = ['gauge', 'stat', 'bargauge', 'piechart', 'radialbar'];
const SCALAR_PLUGINS = ['gauge', 'stat', 'bargauge', 'piechart'];
class ScenarioContext {
data: DataFrame[] = [];

View file

@ -1,5 +1,3 @@
import { config } from '@grafana/runtime';
const cloudwatchPlugin = async () =>
await import(/* webpackChunkName: "cloudwatchPlugin" */ 'app/plugins/datasource/cloudwatch/module');
const dashboardDSPlugin = async () =>
@ -66,9 +64,6 @@ const heatmapPanel = async () =>
const nodeGraph = async () =>
await import(/* webpackChunkName: "nodeGraphPanel" */ 'app/plugins/panel/nodeGraph/module');
const radialBar = async () =>
await import(/* webpackChunkName: "radialBarPanel" */ 'app/plugins/panel/radialbar/module');
const builtInPlugins: Record<string, System.Module | (() => Promise<System.Module>)> = {
// datasources
'core:plugin/cloudwatch': cloudwatchPlugin,
@ -100,7 +95,7 @@ const builtInPlugins: Record<string, System.Module | (() => Promise<System.Modul
'core:plugin/debug': debugPanel,
'core:plugin/flamegraph': flamegraphPanel,
'core:plugin/gettingstarted': gettingStartedPanel,
'core:plugin/gauge': config.featureToggles.newGauge ? radialBar : gaugePanel,
'core:plugin/gauge': gaugePanel,
'core:plugin/piechart': pieChartPanel,
'core:plugin/bargauge': barGaugePanel,
'core:plugin/barchart': barChartPanel,
@ -109,7 +104,6 @@ const builtInPlugins: Record<string, System.Module | (() => Promise<System.Modul
'core:plugin/welcome': welcomeBanner,
'core:plugin/nodeGraph': nodeGraph,
'core:plugin/histogram': histogramPanel,
'core:plugin/radialbar': radialBar,
};
export function isBuiltinPluginPath(path: string): path is keyof typeof builtInPlugins {

View file

@ -1,92 +1,6 @@
import { PanelPlugin } from '@grafana/data';
import { t } from '@grafana/i18n';
import { BarGaugeSizing, VizOrientation } from '@grafana/schema';
import { commonOptionsBuilder } from '@grafana/ui';
import { config } from '@grafana/runtime';
import { addOrientationOption, addStandardDataReduceOptions } from '../stat/common';
import { plugin as pluginV1 } from './v1/module';
import { plugin as pluginV2 } from './v2/module';
import { gaugePanelMigrationHandler, gaugePanelChangedHandler } from './GaugeMigrations';
import { GaugePanel } from './GaugePanel';
import { Options, defaultOptions } from './panelcfg.gen';
import { gaugeSuggestionsSupplier } from './suggestions';
export const plugin = new PanelPlugin<Options>(GaugePanel)
.useFieldConfig({
useCustomConfig: (builder) => {
builder.addNumberInput({
path: 'neutral',
name: t('gauge.name-neutral', 'Neutral'),
description: t('gauge.description-neutral', 'Leave empty to use Min as neutral point'),
category: [t('gauge.category-gauge', 'Gauge')],
settings: {
placeholder: t('gauge.placeholder-neutral', 'auto'),
},
});
},
})
.setPanelOptions((builder) => {
const category = [t('gauge.category-gauge', 'Gauge')];
addStandardDataReduceOptions(builder);
addOrientationOption(builder, category);
builder
.addBooleanSwitch({
path: 'showThresholdLabels',
name: t('gauge.name-show-threshold-labels', 'Show threshold labels'),
description: t('gauge.description-show-threshold-labels', 'Render the threshold values around the gauge bar'),
category,
defaultValue: defaultOptions.showThresholdLabels,
})
.addBooleanSwitch({
path: 'showThresholdMarkers',
name: t('gauge.name-show-threshold-markers', 'Show threshold markers'),
description: t('gauge.description-show-threshold-markers', 'Renders the thresholds as an outer bar'),
category,
defaultValue: defaultOptions.showThresholdMarkers,
})
.addRadio({
path: 'sizing',
name: t('gauge.name-gauge-size', 'Gauge size'),
settings: {
options: [
{ value: BarGaugeSizing.Auto, label: t('gauge.gauge-size-options.label-auto', 'Auto') },
{ value: BarGaugeSizing.Manual, label: t('gauge.gauge-size-options.label-manual', 'Manual') },
],
},
category,
defaultValue: defaultOptions.sizing,
showIf: (options: Options) => options.orientation !== VizOrientation.Auto,
})
.addSliderInput({
path: 'minVizWidth',
name: t('gauge.name-min-width', 'Min width'),
description: t('gauge.description-min-width', 'Minimum column width (vertical orientation)'),
defaultValue: defaultOptions.minVizWidth,
settings: {
min: 0,
max: 600,
step: 1,
},
category,
showIf: (options: Options) =>
options.sizing === BarGaugeSizing.Manual && options.orientation === VizOrientation.Vertical,
})
.addSliderInput({
path: 'minVizHeight',
name: t('gauge.name-min-height', 'Min height'),
description: t('gauge.description-min-height', 'Minimum row height (horizontal orientation)'),
defaultValue: defaultOptions.minVizHeight,
category,
settings: {
min: 0,
max: 600,
step: 1,
},
showIf: (options: Options) =>
options.sizing === BarGaugeSizing.Manual && options.orientation === VizOrientation.Horizontal,
});
commonOptionsBuilder.addTextSizeOptions(builder, { withTitle: true, withValue: true });
})
.setPanelChangeHandler(gaugePanelChangedHandler)
.setSuggestionsSupplier(gaugeSuggestionsSupplier)
.setMigrationHandler(gaugePanelMigrationHandler);
export const plugin = config.featureToggles.newGauge ? pluginV2 : pluginV1;

View file

@ -25,6 +25,12 @@ composableKinds: PanelCfg: {
schemas: [{
version: [0, 0]
schema: {
GaugePanelEffects: {
barGlow?: bool | *false
centerGlow?: bool | *false
gradient?: bool | *true
} @cuetsy(kind="interface")
Options: {
common.SingleStatBaseOptions
showThresholdLabels: bool | *false
@ -32,6 +38,16 @@ composableKinds: PanelCfg: {
sizing: common.BarGaugeSizing & (*"auto" | _)
minVizWidth: uint32 | *75
minVizHeight: uint32 | *75
segmentCount: number | *1
segmentSpacing: number | *0.3
sparkline?: bool | *true
shape: "circle" | *"gauge"
barWidthFactor: number | *0.5
barShape: "flat" | "rounded" | *"flat"
endpointMarker?: "point" | "glow" | "none" | *"point"
textMode?: "auto" | "value_and_name" | "value" | "name" | "none" | *"auto"
neutral?: number
effects: GaugePanelEffects | *{}
} @cuetsy(kind="interface")
}
}]

View file

@ -12,18 +12,49 @@
import * as common from '@grafana/schema';
export interface GaugePanelEffects {
barGlow?: boolean;
centerGlow?: boolean;
gradient?: boolean;
}
export const defaultGaugePanelEffects: Partial<GaugePanelEffects> = {
barGlow: false,
centerGlow: false,
gradient: true,
};
export interface Options extends common.SingleStatBaseOptions {
barShape: ('flat' | 'rounded');
barWidthFactor: number;
effects: GaugePanelEffects;
endpointMarker?: ('point' | 'glow' | 'none');
minVizHeight: number;
minVizWidth: number;
neutral?: number;
segmentCount: number;
segmentSpacing: number;
shape: ('circle' | 'gauge');
showThresholdLabels: boolean;
showThresholdMarkers: boolean;
sizing: common.BarGaugeSizing;
sparkline?: boolean;
textMode?: ('auto' | 'value_and_name' | 'value' | 'name' | 'none');
}
export const defaultOptions: Partial<Options> = {
barShape: 'flat',
barWidthFactor: 0.5,
effects: {},
endpointMarker: 'point',
minVizHeight: 75,
minVizWidth: 75,
segmentCount: 1,
segmentSpacing: 0.3,
shape: 'gauge',
showThresholdLabels: false,
showThresholdMarkers: true,
sizing: common.BarGaugeSizing.Auto,
sparkline: true,
textMode: 'auto',
};

View file

@ -1,7 +1,7 @@
import { PanelModel } from '@grafana/data';
import { sharedSingleStatPanelChangedHandler, sharedSingleStatMigrationHandler } from '@grafana/ui';
import { Options } from './panelcfg.gen';
import { Options } from '../panelcfg.gen';
// This is called when the panel first loads
export const gaugePanelMigrationHandler = (panel: PanelModel<Options>): Partial<Options> => {

View file

@ -6,9 +6,8 @@ import { BarGaugeSizing, VizOrientation } from '@grafana/schema';
import { DataLinksContextMenu, Gauge, VizRepeater, VizRepeaterRenderValueProps } from '@grafana/ui';
import { DataLinksContextMenuApi } from '@grafana/ui/internal';
import { clearNameForSingleSeries } from '../bargauge/BarGaugePanel';
import { defaultOptions, Options } from './panelcfg.gen';
import { clearNameForSingleSeries } from '../../bargauge/BarGaugePanel';
import { defaultOptions, Options } from '../panelcfg.gen';
export class GaugePanel extends PureComponent<PanelProps<Options>> {
renderComponent = (

View file

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,92 @@
import { PanelPlugin } from '@grafana/data';
import { t } from '@grafana/i18n';
import { BarGaugeSizing, VizOrientation } from '@grafana/schema';
import { commonOptionsBuilder } from '@grafana/ui';
import { addOrientationOption, addStandardDataReduceOptions } from '../../stat/common';
import { Options, defaultOptions } from '../panelcfg.gen';
import { gaugePanelMigrationHandler, gaugePanelChangedHandler } from './GaugeMigrations';
import { GaugePanel } from './GaugePanel';
import { gaugeSuggestionsSupplier } from './suggestions';
export const plugin = new PanelPlugin<Options>(GaugePanel)
.useFieldConfig({
useCustomConfig: (builder) => {
builder.addNumberInput({
path: 'neutral',
name: t('gauge.name-neutral', 'Neutral'),
description: t('gauge.description-neutral', 'Leave empty to use Min as neutral point'),
category: [t('gauge.category-gauge', 'Gauge')],
settings: {
placeholder: t('gauge.placeholder-neutral', 'auto'),
},
});
},
})
.setPanelOptions((builder) => {
const category = [t('gauge.category-gauge', 'Gauge')];
addStandardDataReduceOptions(builder);
addOrientationOption(builder, category);
builder
.addBooleanSwitch({
path: 'showThresholdLabels',
name: t('gauge.name-show-threshold-labels', 'Show threshold labels'),
description: t('gauge.description-show-threshold-labels', 'Render the threshold values around the gauge bar'),
category,
defaultValue: defaultOptions.showThresholdLabels,
})
.addBooleanSwitch({
path: 'showThresholdMarkers',
name: t('gauge.name-show-threshold-markers', 'Show threshold markers'),
description: t('gauge.description-show-threshold-markers', 'Renders the thresholds as an outer bar'),
category,
defaultValue: defaultOptions.showThresholdMarkers,
})
.addRadio({
path: 'sizing',
name: t('gauge.name-gauge-size', 'Gauge size'),
settings: {
options: [
{ value: BarGaugeSizing.Auto, label: t('gauge.gauge-size-options.label-auto', 'Auto') },
{ value: BarGaugeSizing.Manual, label: t('gauge.gauge-size-options.label-manual', 'Manual') },
],
},
category,
defaultValue: defaultOptions.sizing,
showIf: (options: Options) => options.orientation !== VizOrientation.Auto,
})
.addSliderInput({
path: 'minVizWidth',
name: t('gauge.name-min-width', 'Min width'),
description: t('gauge.description-min-width', 'Minimum column width (vertical orientation)'),
defaultValue: defaultOptions.minVizWidth,
settings: {
min: 0,
max: 600,
step: 1,
},
category,
showIf: (options: Options) =>
options.sizing === BarGaugeSizing.Manual && options.orientation === VizOrientation.Vertical,
})
.addSliderInput({
path: 'minVizHeight',
name: t('gauge.name-min-height', 'Min height'),
description: t('gauge.description-min-height', 'Minimum row height (horizontal orientation)'),
defaultValue: defaultOptions.minVizHeight,
category,
settings: {
min: 0,
max: 600,
step: 1,
},
showIf: (options: Options) =>
options.sizing === BarGaugeSizing.Manual && options.orientation === VizOrientation.Horizontal,
});
commonOptionsBuilder.addTextSizeOptions(builder, { withTitle: true, withValue: true });
})
.setPanelChangeHandler(gaugePanelChangedHandler)
.setSuggestionsSupplier(gaugeSuggestionsSupplier)
.setMigrationHandler(gaugePanelMigrationHandler);

View file

@ -4,7 +4,7 @@ import { ThresholdsMode, FieldType, VisualizationSuggestion, VisualizationSugges
import { t } from '@grafana/i18n';
import { defaultNumericVizOptions } from 'app/features/panel/suggestions/utils';
import { Options } from './panelcfg.gen';
import { Options } from '../panelcfg.gen';
const withDefaults = (suggestion: VisualizationSuggestion<Options>): VisualizationSuggestion<Options> =>
defaultsDeep(suggestion, {

View file

@ -5,7 +5,7 @@ import { GrafanaTheme2, StandardEditorProps } from '@grafana/data';
import { t } from '@grafana/i18n';
import { Stack, Switch, Label, Tooltip, Grid, useStyles2 } from '@grafana/ui';
import { GaugePanelEffects } from './panelcfg.gen';
import { GaugePanelEffects } from '../panelcfg.gen';
function EffectsEditorInput(props: ComponentProps<typeof Switch> & { tooltip?: string }) {
const id = useId();
@ -40,17 +40,17 @@ export function EffectsEditor(props: StandardEditorProps<GaugePanelEffects>) {
return (
<Grid alignItems={'flex-start'} gap={1} minColumnWidth={16}>
<EffectsEditorInput
label={t('radialbar.config.effects.gradient', 'Gradient')}
label={t('gauge.config.effects.gradient', 'Gradient')}
value={!!props.value?.gradient}
onChange={(e) => props.onChange({ ...props.value, gradient: e.currentTarget.checked })}
/>
<EffectsEditorInput
label={t('radialbar.config.effects.bar-glow', 'Bar glow')}
label={t('gauge.config.effects.bar-glow', 'Bar glow')}
value={!!props.value?.barGlow}
onChange={(e) => props.onChange({ ...props.value, barGlow: e.currentTarget.checked })}
/>
<EffectsEditorInput
label={t('radialbar.config.effects.center-glow', 'Center glow')}
label={t('gauge.config.effects.center-glow', 'Center glow')}
value={!!props.value?.centerGlow}
onChange={(e) => props.onChange({ ...props.value, centerGlow: e.currentTarget.checked })}
/>

View file

@ -11,9 +11,9 @@ import { config, PanelDataErrorView } from '@grafana/runtime';
import { DataLinksContextMenu, Stack, VizRepeater, VizRepeaterRenderValueProps } from '@grafana/ui';
import { DataLinksContextMenuApi, RadialGauge } from '@grafana/ui/internal';
import { Options } from './panelcfg.gen';
import { Options } from '../panelcfg.gen';
export function RadialBarPanel({
export function GaugePanel({
id,
height,
width,

View file

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -2,7 +2,7 @@ import { PanelModel, PanelTypeChangedHandler } from '@grafana/data';
import { FieldColorModeId } from '@grafana/schema/dist/esm/index.gen';
import { sharedSingleStatPanelChangedHandler, sharedSingleStatMigrationHandler } from '@grafana/ui';
import { Options } from './panelcfg.gen';
import { Options } from '../panelcfg.gen';
// This is called when the panel first loads
export function gaugePanelMigrationHandler(panel: PanelModel<Options>): Partial<Options> {

View file

@ -3,15 +3,15 @@ import { t } from '@grafana/i18n';
import { BarGaugeSizing, VizOrientation } from '@grafana/schema';
import { commonOptionsBuilder } from '@grafana/ui';
import { addOrientationOption, addStandardDataReduceOptions } from '../stat/common';
import { addOrientationOption, addStandardDataReduceOptions } from '../../stat/common';
import { defaultGaugePanelEffects, defaultOptions, Options } from '../panelcfg.gen';
import { EffectsEditor } from './EffectsEditor';
import { RadialBarPanel } from './RadialBarPanel';
import { GaugePanel } from './GaugePanel';
import { gaugePanelChangedHandler, gaugePanelMigrationHandler, shouldMigrateGauge } from './migrations';
import { defaultGaugePanelEffects, defaultOptions, Options } from './panelcfg.gen';
import { radialBarSuggestionsSupplier } from './suggestions';
import { gaugeSuggestionsSupplier } from './suggestions';
export const plugin = new PanelPlugin<Options>(RadialBarPanel)
export const plugin = new PanelPlugin<Options>(GaugePanel)
.useFieldConfig({})
.setPanelOptions((builder) => {
const category = [t('gauge.category-radial-bar', 'Gauge')];
@ -22,13 +22,13 @@ export const plugin = new PanelPlugin<Options>(RadialBarPanel)
builder.addRadio({
path: 'shape',
name: t('radialbar.config.shape', 'Style'),
name: t('gauge.config.shape', 'Style'),
category,
defaultValue: defaultOptions.shape,
settings: {
options: [
{ value: 'circle', label: t('radialbar.config.shape-circle', 'Circle'), icon: 'circle' },
{ value: 'gauge', label: t('radialbar.config.shape-gauge', 'Arc'), icon: 'tachometer-empty' },
{ value: 'circle', label: t('gauge.config.shape-circle', 'Circle'), icon: 'circle' },
{ value: 'gauge', label: t('gauge.config.shape-gauge', 'Arc'), icon: 'tachometer-empty' },
],
},
});
@ -80,7 +80,7 @@ export const plugin = new PanelPlugin<Options>(RadialBarPanel)
builder.addSliderInput({
path: 'barWidthFactor',
name: t('radialbar.config.bar-width', 'Bar width'),
name: t('gauge.config.bar-width', 'Bar width'),
category,
defaultValue: defaultOptions.barWidthFactor,
settings: {
@ -92,7 +92,7 @@ export const plugin = new PanelPlugin<Options>(RadialBarPanel)
builder.addSliderInput({
path: 'segmentCount',
name: t('radialbar.config.segment-count', 'Segments'),
name: t('gauge.config.segment-count', 'Segments'),
category,
defaultValue: defaultOptions.segmentCount,
settings: {
@ -104,7 +104,7 @@ export const plugin = new PanelPlugin<Options>(RadialBarPanel)
builder.addSliderInput({
path: 'segmentSpacing',
name: t('radialbar.config.segment-spacing', 'Segment spacing'),
name: t('gauge.config.segment-spacing', 'Segment spacing'),
category,
defaultValue: defaultOptions.segmentSpacing,
showIf: (options) => options.segmentCount > 1,
@ -117,13 +117,13 @@ export const plugin = new PanelPlugin<Options>(RadialBarPanel)
builder.addRadio({
path: 'barShape',
name: t('radialbar.config.bar-shape', 'Bar Style'),
name: t('gauge.config.bar-shape', 'Bar Style'),
category,
defaultValue: defaultOptions.barShape,
settings: {
options: [
{ value: 'flat', label: t('radialbar.config.bar-shape-flat', 'Flat') },
{ value: 'rounded', label: t('radialbar.config.bar-shape-rounded', 'Rounded') },
{ value: 'flat', label: t('gauge.config.bar-shape-flat', 'Flat') },
{ value: 'rounded', label: t('gauge.config.bar-shape-rounded', 'Rounded') },
],
},
showIf: (options) => options.segmentCount === 1,
@ -131,15 +131,15 @@ export const plugin = new PanelPlugin<Options>(RadialBarPanel)
builder.addRadio({
path: 'endpointMarker',
name: t('radialbar.config.endpoint-marker', 'Endpoint marker'),
description: t('radialbar.config.endpoint-marker-description', 'Glow is only supported in dark mode'),
name: t('gauge.config.endpoint-marker', 'Endpoint marker'),
description: t('gauge.config.endpoint-marker-description', 'Glow is only supported in dark mode'),
category,
defaultValue: defaultOptions.endpointMarker,
settings: {
options: [
{ value: 'point', label: t('radialbar.config.endpoint-marker-point', 'Point') },
{ value: 'glow', label: t('radialbar.config.endpoint-marker-glow', 'Glow') },
{ value: 'none', label: t('radialbar.config.endpoint-marker-none', 'None') },
{ value: 'point', label: t('gauge.config.endpoint-marker-point', 'Point') },
{ value: 'glow', label: t('gauge.config.endpoint-marker-glow', 'Glow') },
{ value: 'none', label: t('gauge.config.endpoint-marker-none', 'None') },
],
},
showIf: (options) => options.barShape === 'rounded' && options.segmentCount === 1,
@ -147,15 +147,15 @@ export const plugin = new PanelPlugin<Options>(RadialBarPanel)
builder.addSelect({
path: 'textMode',
name: t('radialbar.config.text-mode', 'Text mode'),
name: t('gauge.config.text-mode', 'Text mode'),
category,
settings: {
options: [
{ value: 'auto', label: t('radialbar.config.text-mode-auto', 'Auto') },
{ value: 'value_and_name', label: t('radialbar.config.text-mode-value-and-name', 'Value and Name') },
{ value: 'value', label: t('radialbar.config.text-mode-value', 'Value') },
{ value: 'name', label: t('radialbar.config.text-mode-name', 'Name') },
{ value: 'none', label: t('radialbar.config.text-mode-none', 'None') },
{ value: 'auto', label: t('gauge.config.text-mode-auto', 'Auto') },
{ value: 'value_and_name', label: t('gauge.config.text-mode-value-and-name', 'Value and Name') },
{ value: 'value', label: t('gauge.config.text-mode-value', 'Value') },
{ value: 'name', label: t('gauge.config.text-mode-name', 'Name') },
{ value: 'none', label: t('gauge.config.text-mode-none', 'None') },
],
},
defaultValue: defaultOptions.textMode,
@ -163,47 +163,47 @@ export const plugin = new PanelPlugin<Options>(RadialBarPanel)
builder.addNumberInput({
path: 'neutral',
name: t('radialbar.config.neutral.title', 'Neutral value'),
description: t('radialbar.config.neutral.description', 'Leave empty to use Min as neutral point'),
name: t('gauge.config.neutral.title', 'Neutral value'),
description: t('gauge.config.neutral.description', 'Leave empty to use Min as neutral point'),
category,
settings: {
placeholder: t('radialbar.config.neutral.placeholder', 'none'),
placeholder: t('gauge.config.neutral.placeholder', 'none'),
step: 1,
},
});
builder.addBooleanSwitch({
path: 'sparkline',
name: t('radialbar.config.sparkline', 'Show sparkline'),
name: t('gauge.config.sparkline', 'Show sparkline'),
category,
defaultValue: defaultOptions.sparkline,
});
builder.addBooleanSwitch({
path: 'showThresholdMarkers',
name: t('radialbar.config.threshold-markers', 'Show thresholds'),
name: t('gauge.config.threshold-markers', 'Show thresholds'),
category,
defaultValue: defaultOptions.showThresholdMarkers,
});
builder.addBooleanSwitch({
path: 'showThresholdLabels',
name: t('radialbar.config.threshold-labels', 'Show labels'),
description: t('radialbar.config.threshold-labels-description', 'Display threshold and neutral values'),
name: t('gauge.config.threshold-labels', 'Show labels'),
description: t('gauge.config.threshold-labels-description', 'Display threshold and neutral values'),
category,
defaultValue: defaultOptions.showThresholdLabels,
});
builder.addCustomEditor({
id: 'radialbar-effects',
id: 'gauge-effects',
path: 'effects',
name: t('radialbar.config.effects.label', 'Effects'),
name: t('gauge.config.effects.label', 'Effects'),
category,
editor: EffectsEditor,
settings: {},
defaultValue: defaultGaugePanelEffects,
});
})
.setSuggestionsSupplier(radialBarSuggestionsSupplier)
.setSuggestionsSupplier(gaugeSuggestionsSupplier)
.setMigrationHandler(gaugePanelMigrationHandler, shouldMigrateGauge)
.setPanelChangeHandler(gaugePanelChangedHandler);

View file

@ -1,13 +1,13 @@
import { createDataFrame, Field, FieldType, getPanelDataSummary } from '@grafana/data';
import { radialBarSuggestionsSupplier } from './suggestions';
import { gaugeSuggestionsSupplier } from './suggestions';
describe('RadialBarPanel Suggestions', () => {
describe('GaugePanel Suggestions', () => {
it('does not suggest gauge if no data is present', () => {
expect(radialBarSuggestionsSupplier(getPanelDataSummary([]))).toBeFalsy();
expect(radialBarSuggestionsSupplier(getPanelDataSummary(undefined))).toBeFalsy();
expect(gaugeSuggestionsSupplier(getPanelDataSummary([]))).toBeFalsy();
expect(gaugeSuggestionsSupplier(getPanelDataSummary(undefined))).toBeFalsy();
expect(
radialBarSuggestionsSupplier(
gaugeSuggestionsSupplier(
getPanelDataSummary([
createDataFrame({
fields: [
@ -27,7 +27,7 @@ describe('RadialBarPanel Suggestions', () => {
{ name: 'status', type: FieldType.string },
],
});
expect(radialBarSuggestionsSupplier(getPanelDataSummary([df]))).toBeFalsy();
expect(gaugeSuggestionsSupplier(getPanelDataSummary([df]))).toBeFalsy();
});
it('does not suggest gauge if there are too many numeric fields', () => {
@ -35,12 +35,12 @@ describe('RadialBarPanel Suggestions', () => {
for (let i = 0; i < 20; i++) {
fields.push({ name: `numeric-${i}`, type: FieldType.number, values: [0, 100, 200, 300, 400, 500], config: {} });
}
expect(radialBarSuggestionsSupplier(getPanelDataSummary([createDataFrame({ fields })]))).toBeFalsy();
expect(gaugeSuggestionsSupplier(getPanelDataSummary([createDataFrame({ fields })]))).toBeFalsy();
});
it('suggests gauge for a single numeric field', () => {
expect(
radialBarSuggestionsSupplier(
gaugeSuggestionsSupplier(
getPanelDataSummary([
createDataFrame({
fields: [
@ -58,7 +58,7 @@ describe('RadialBarPanel Suggestions', () => {
it('suggests gauge for a few numeric fields, with other fields mixed in', () => {
expect(
radialBarSuggestionsSupplier(
gaugeSuggestionsSupplier(
getPanelDataSummary([
createDataFrame({
fields: [
@ -136,7 +136,7 @@ describe('RadialBarPanel Suggestions', () => {
],
},
])('$description suggests aggregated=$aggregated', ({ dataframes, aggregated }) => {
const suggestions = radialBarSuggestionsSupplier(getPanelDataSummary(dataframes));
const suggestions = gaugeSuggestionsSupplier(getPanelDataSummary(dataframes));
const expected = aggregated ? { values: false, calcs: ['lastNotNull'] } : { values: true, calcs: [] };
if (Array.isArray(suggestions)) {
for (const suggestion of suggestions) {
@ -150,7 +150,7 @@ describe('RadialBarPanel Suggestions', () => {
});
it('figures out a suitable min and max for gauges', () => {
const suggestions = radialBarSuggestionsSupplier(
const suggestions = gaugeSuggestionsSupplier(
getPanelDataSummary([
{
length: 1,

View file

@ -11,7 +11,7 @@ import { t } from '@grafana/i18n';
import { GraphFieldConfig } from '@grafana/ui';
import { defaultNumericVizOptions } from 'app/features/panel/suggestions/utils';
import { Options } from './panelcfg.gen';
import { Options } from '../panelcfg.gen';
const withDefaults = (
suggestion: VisualizationSuggestion<Options, GraphFieldConfig>
@ -32,9 +32,7 @@ const withDefaults = (
const MAX_GAUGES = 10;
export const radialBarSuggestionsSupplier: VisualizationSuggestionsSupplier<Options, GraphFieldConfig> = (
dataSummary
) => {
export const gaugeSuggestionsSupplier: VisualizationSuggestionsSupplier<Options, GraphFieldConfig> = (dataSummary) => {
if (!dataSummary.hasData || !dataSummary.hasFieldType(FieldType.number)) {
return;
}

View file

@ -1,18 +0,0 @@
* unit where name is
* dynamic font size based on text length
* text alignment factors
* segment hue gradient
* Rethink gradient / color options
* threshold & min/max labels
Gauge => new gauge migration notes
Old gauge "Show threshold markers" does nothing when color scheme != From thresholds
Decide what to do with
sizing: manual & minVizHeight & minVizWidth (do not think this panel should scroll, and minWidth is broken/does not scroll)
neutral value

View file

@ -1,56 +0,0 @@
// Copyright 2021 Grafana Labs
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package grafanaplugin
import (
"github.com/grafana/grafana/packages/grafana-schema/src/common"
)
composableKinds: PanelCfg: {
maturity: "experimental"
lineage: {
schemas: [{
version: [0, 0]
schema: {
GaugePanelEffects: {
barGlow?: bool | *false
centerGlow?: bool | *false
gradient?: bool | *true
} @cuetsy(kind="interface")
Options: {
common.SingleStatBaseOptions
showThresholdMarkers: bool | *true
showThresholdLabels: bool | *false
segmentCount: number | *1
segmentSpacing: number | *0.3
sparkline?: bool | *true
shape: "circle" | *"gauge"
barWidthFactor: number | *0.5
barShape: "flat" | "rounded" | *"flat"
endpointMarker?: "point" | "glow" | "none" | *"point"
textMode?: "auto" | "value_and_name" | "value" | "name" | "none" | *"auto"
neutral?: number
effects: GaugePanelEffects | *{}
sizing: common.BarGaugeSizing & (*"auto" | _)
minVizWidth: uint32 | *75
minVizHeight: uint32 | *75
} @cuetsy(kind="interface")
}
}]
lenses: []
}
}

View file

@ -1,60 +0,0 @@
// Code generated - EDITING IS FUTILE. DO NOT EDIT.
//
// Generated by:
// public/app/plugins/gen.go
// Using jennies:
// TSTypesJenny
// PluginTsTypesJenny
//
// Run 'make gen-cue' from repository root to regenerate.
// Generated from public/app/plugins/panel/radialbar/panelcfg.cue file.
import * as common from '@grafana/schema';
export interface GaugePanelEffects {
barGlow?: boolean;
centerGlow?: boolean;
gradient?: boolean;
}
export const defaultGaugePanelEffects: Partial<GaugePanelEffects> = {
barGlow: false,
centerGlow: false,
gradient: true,
};
export interface Options extends common.SingleStatBaseOptions {
barShape: ('flat' | 'rounded');
barWidthFactor: number;
effects: GaugePanelEffects;
endpointMarker?: ('point' | 'glow' | 'none');
minVizHeight: number;
minVizWidth: number;
neutral?: number;
segmentCount: number;
segmentSpacing: number;
shape: ('circle' | 'gauge');
showThresholdLabels: boolean;
showThresholdMarkers: boolean;
sizing: common.BarGaugeSizing;
sparkline?: boolean;
textMode?: ('auto' | 'value_and_name' | 'value' | 'name' | 'none');
}
export const defaultOptions: Partial<Options> = {
barShape: 'flat',
barWidthFactor: 0.5,
effects: {},
endpointMarker: 'point',
minVizHeight: 75,
minVizWidth: 75,
segmentCount: 1,
segmentSpacing: 0.3,
shape: 'gauge',
showThresholdLabels: false,
showThresholdMarkers: true,
sizing: common.BarGaugeSizing.Auto,
sparkline: true,
textMode: 'auto',
};

View file

@ -1,25 +0,0 @@
{
"type": "panel",
"name": "New Gauge",
"id": "radialbar",
"state": "alpha",
"suggestions": false,
"info": {
"description": "Standard gauge visualization",
"author": {
"name": "Grafana Labs",
"url": "https://grafana.com"
},
"logos": {
"small": "img/icon_gauge.svg",
"large": "img/icon_gauge.svg"
},
"links": [
{ "name": "Raise issue", "url": "https://github.com/grafana/grafana/issues/new" },
{
"name": "Documentation",
"url": "https://grafana.com/docs/grafana/latest/panels-visualizations/visualizations/gauge/"
}
]
}
}

View file

@ -12749,45 +12749,6 @@
},
"query-editor-not-exported": "Doplněk zdroje dat neexportuje žádnou komponentu editoru dotazů"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Obnovit"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "Datenquellen-Plugin exportiert keine Komponente des Abfrageeditors"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Wiederherstellen"

View file

@ -8010,6 +8010,43 @@
"gauge": {
"category-gauge": "Gauge",
"category-radial-bar": "Gauge",
"config": {
"bar-shape": "Bar Style",
"bar-shape-flat": "Flat",
"bar-shape-rounded": "Rounded",
"bar-width": "Bar width",
"effects": {
"bar-glow": "Bar glow",
"center-glow": "Center glow",
"gradient": "Gradient",
"label": "Effects"
},
"endpoint-marker": "Endpoint marker",
"endpoint-marker-description": "Glow is only supported in dark mode",
"endpoint-marker-glow": "Glow",
"endpoint-marker-none": "None",
"endpoint-marker-point": "Point",
"neutral": {
"description": "Leave empty to use Min as neutral point",
"placeholder": "none",
"title": "Neutral value"
},
"segment-count": "Segments",
"segment-spacing": "Segment spacing",
"shape": "Style",
"shape-circle": "Circle",
"shape-gauge": "Arc",
"sparkline": "Show sparkline",
"text-mode": "Text mode",
"text-mode-auto": "Auto",
"text-mode-name": "Name",
"text-mode-none": "None",
"text-mode-value": "Value",
"text-mode-value-and-name": "Value and Name",
"threshold-labels": "Show labels",
"threshold-labels-description": "Display threshold and neutral values",
"threshold-markers": "Show thresholds"
},
"description-min-height": "Minimum row height (horizontal orientation)",
"description-min-width": "Minimum column width (vertical orientation)",
"description-neutral": "Leave empty to use Min as neutral point",
@ -12675,45 +12712,6 @@
},
"query-editor-not-exported": "Data source plugin does not export any Query Editor component"
},
"radialbar": {
"config": {
"bar-shape": "Bar Style",
"bar-shape-flat": "Flat",
"bar-shape-rounded": "Rounded",
"bar-width": "Bar width",
"effects": {
"bar-glow": "Bar glow",
"center-glow": "Center glow",
"gradient": "Gradient",
"label": "Effects"
},
"endpoint-marker": "Endpoint marker",
"endpoint-marker-description": "Glow is only supported in dark mode",
"endpoint-marker-glow": "Glow",
"endpoint-marker-none": "None",
"endpoint-marker-point": "Point",
"neutral": {
"description": "Leave empty to use Min as neutral point",
"placeholder": "none",
"title": "Neutral value"
},
"segment-count": "Segments",
"segment-spacing": "Segment spacing",
"shape": "Style",
"shape-circle": "Circle",
"shape-gauge": "Arc",
"sparkline": "Show sparkline",
"text-mode": "Text mode",
"text-mode-auto": "Auto",
"text-mode-name": "Name",
"text-mode-none": "None",
"text-mode-value": "Value",
"text-mode-value-and-name": "Value and Name",
"threshold-labels": "Show labels",
"threshold-labels-description": "Display threshold and neutral values",
"threshold-markers": "Show thresholds"
}
},
"recently-deleted": {
"buttons": {
"restore": "Restore"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "El complemento de la fuente de datos no exporta ningún componente del editor de consultas"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Restaurar"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "Le plugin source de données n'exporte aucun composant de l'éditeur de requête"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Restaurer"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "Az adatforrás-bővítmény nem exportál egyetlen lekérdezésszerkesztő-komponenst sem"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Visszaállítás"

View file

@ -12590,45 +12590,6 @@
},
"query-editor-not-exported": "Plugin sumber data tidak mengekspor komponen Editor Kueri apa pun"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Pulihkan"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "Il plug-in dell'origine dati non esporta alcun componente dell'editor di query"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Ripristina"

View file

@ -12590,45 +12590,6 @@
},
"query-editor-not-exported": "データソースプラグインは、クエリエディタコンポーネントをエクスポートしません"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "復元"

View file

@ -12590,45 +12590,6 @@
},
"query-editor-not-exported": "데이터 소스 플러그인은 쿼리 편집기 구성 요소를 내보내지 않습니다."
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "복구"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "Gegevensbronplug-in exporteert geen Query Editor-component"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Herstellen"

View file

@ -12749,45 +12749,6 @@
},
"query-editor-not-exported": "Wtyczka źródła danych nie eksportuje żadnego komponentu Edytora zapytań"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Przywróć"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "O plug-in de origem de dados não exporta nenhum componente de editor de consulta"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Restaurar"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "O plugin de origem de dados não exporta nenhum componente do Editor de Consultas"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Restaurar"

View file

@ -12749,45 +12749,6 @@
},
"query-editor-not-exported": "Плагин источника данных не экспортирует компоненты редактора запросов"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Восстановить"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "Tilläggsprogram för datakälla exporterar inte någon frågeredigerarkomponent"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Återställ"

View file

@ -12643,45 +12643,6 @@
},
"query-editor-not-exported": "Veri kaynağı eklentisi herhangi bir Sorgu Düzenleyici bileşeni sunmuyor/içermiyor."
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "Geri yükle"

View file

@ -12590,45 +12590,6 @@
},
"query-editor-not-exported": "数据源插件不导出任何查询编辑器组件"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "还原"

View file

@ -12590,45 +12590,6 @@
},
"query-editor-not-exported": "資料來源外掛程式不匯出任何查詢編輯器元件"
},
"radialbar": {
"config": {
"bar-shape": "",
"bar-shape-flat": "",
"bar-shape-rounded": "",
"bar-width": "",
"effects": {
"bar-glow": "",
"center-glow": "",
"gradient": "",
"label": ""
},
"endpoint-marker": "",
"endpoint-marker-description": "",
"endpoint-marker-glow": "",
"endpoint-marker-none": "",
"endpoint-marker-point": "",
"neutral": {
"description": "",
"placeholder": "",
"title": ""
},
"segment-count": "",
"segment-spacing": "",
"shape": "",
"shape-circle": "",
"shape-gauge": "",
"sparkline": "",
"text-mode": "",
"text-mode-auto": "",
"text-mode-name": "",
"text-mode-none": "",
"text-mode-value": "",
"text-mode-value-and-name": "",
"threshold-labels": "",
"threshold-labels-description": "",
"threshold-markers": ""
}
},
"recently-deleted": {
"buttons": {
"restore": "還原"