mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Geomap: Update to panelcfg (#63169)
* Geomap: Update to panelcfg * Generate geomappanelcfg docs --------- Co-authored-by: Tania B <yalyna.ts@gmail.com>
This commit is contained in:
parent
4570131fe5
commit
d660e3acb9
@ -0,0 +1,92 @@
|
|||||||
|
---
|
||||||
|
keywords:
|
||||||
|
- grafana
|
||||||
|
- schema
|
||||||
|
title: GeomapPanelCfg kind
|
||||||
|
---
|
||||||
|
> Both documentation generation and kinds schemas are in active development and subject to change without prior notice.
|
||||||
|
|
||||||
|
## GeomapPanelCfg
|
||||||
|
|
||||||
|
#### Maturity: [experimental](../../../maturity/#experimental)
|
||||||
|
#### Version: 0.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Property | Type | Required | Description |
|
||||||
|
|-------------------|----------------------------|----------|-----------------------------------------------|
|
||||||
|
| `ControlsOptions` | [object](#controlsoptions) | **Yes** | |
|
||||||
|
| `MapCenterID` | string | **Yes** | Possible values are: `zero`, `coords`, `fit`. |
|
||||||
|
| `MapViewConfig` | [object](#mapviewconfig) | **Yes** | |
|
||||||
|
| `PanelOptions` | [object](#paneloptions) | **Yes** | |
|
||||||
|
| `TooltipMode` | string | **Yes** | Possible values are: `none`, `details`. |
|
||||||
|
| `TooltipOptions` | [object](#tooltipoptions) | **Yes** | |
|
||||||
|
|
||||||
|
### ControlsOptions
|
||||||
|
|
||||||
|
| Property | Type | Required | Description |
|
||||||
|
|-------------------|---------|----------|--------------------------|
|
||||||
|
| `mouseWheelZoom` | boolean | No | let the mouse wheel zoom |
|
||||||
|
| `showAttribution` | boolean | No | Lower right |
|
||||||
|
| `showDebug` | boolean | No | Show debug |
|
||||||
|
| `showMeasure` | boolean | No | Show measure |
|
||||||
|
| `showScale` | boolean | No | Scale options |
|
||||||
|
| `showZoom` | boolean | No | Zoom (upper left) |
|
||||||
|
|
||||||
|
### MapViewConfig
|
||||||
|
|
||||||
|
| Property | Type | Required | Description |
|
||||||
|
|-------------|---------|----------|------------------|
|
||||||
|
| `id` | string | **Yes** | Default: `zero`. |
|
||||||
|
| `allLayers` | boolean | No | Default: `true`. |
|
||||||
|
| `lastOnly` | boolean | No | |
|
||||||
|
| `lat` | integer | No | Default: `0`. |
|
||||||
|
| `layer` | string | No | |
|
||||||
|
| `lon` | integer | No | Default: `0`. |
|
||||||
|
| `maxZoom` | integer | No | |
|
||||||
|
| `minZoom` | integer | No | |
|
||||||
|
| `padding` | integer | No | |
|
||||||
|
| `shared` | boolean | No | |
|
||||||
|
| `zoom` | integer | No | Default: `1`. |
|
||||||
|
|
||||||
|
### PanelOptions
|
||||||
|
|
||||||
|
| Property | Type | Required | Description |
|
||||||
|
|------------|---------------------------------------|----------|-------------|
|
||||||
|
| `basemap` | [MapLayerOptions](#maplayeroptions) | **Yes** | |
|
||||||
|
| `controls` | [ControlsOptions](#controlsoptions) | **Yes** | |
|
||||||
|
| `layers` | [MapLayerOptions](#maplayeroptions)[] | **Yes** | |
|
||||||
|
| `tooltip` | [TooltipOptions](#tooltipoptions) | **Yes** | |
|
||||||
|
| `view` | [MapViewConfig](#mapviewconfig) | **Yes** | |
|
||||||
|
|
||||||
|
### MapLayerOptions
|
||||||
|
|
||||||
|
| Property | Type | Required | Description |
|
||||||
|
|--------------|---------------------------------------------|----------|----------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
| `name` | string | **Yes** | configured unique display name |
|
||||||
|
| `type` | string | **Yes** | |
|
||||||
|
| `config` | | No | Custom options depending on the type |
|
||||||
|
| `filterData` | | No | Defines a frame MatcherConfig that may filter data for the given layer |
|
||||||
|
| `location` | [FrameGeometrySource](#framegeometrysource) | No | |
|
||||||
|
| `opacity` | integer | No | Common properties:<br/>https://openlayers.org/en/latest/apidoc/module-ol_layer_Base-BaseLayer.html<br/>Layer opacity (0-1) |
|
||||||
|
| `tooltip` | boolean | No | Check tooltip (defaults to true) |
|
||||||
|
|
||||||
|
### FrameGeometrySource
|
||||||
|
|
||||||
|
| Property | Type | Required | Description |
|
||||||
|
|-------------|--------|----------|-------------------------------------------------------------|
|
||||||
|
| `mode` | string | **Yes** | Possible values are: `auto`, `geohash`, `coords`, `lookup`. |
|
||||||
|
| `gazetteer` | string | No | Path to Gazetteer |
|
||||||
|
| `geohash` | string | No | Field mappings |
|
||||||
|
| `latitude` | string | No | |
|
||||||
|
| `longitude` | string | No | |
|
||||||
|
| `lookup` | string | No | |
|
||||||
|
| `wkt` | string | No | |
|
||||||
|
|
||||||
|
### TooltipOptions
|
||||||
|
|
||||||
|
| Property | Type | Required | Description |
|
||||||
|
|----------|--------|----------|-----------------------------------------|
|
||||||
|
| `mode` | string | **Yes** | Possible values are: `none`, `details`. |
|
||||||
|
|
||||||
|
|
@ -548,7 +548,9 @@
|
|||||||
},
|
},
|
||||||
"geomappanelcfg": {
|
"geomappanelcfg": {
|
||||||
"category": "composable",
|
"category": "composable",
|
||||||
"codeowners": [],
|
"codeowners": [
|
||||||
|
"grafana/grafana-edge-squad"
|
||||||
|
],
|
||||||
"currentVersion": [
|
"currentVersion": [
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
@ -556,13 +558,13 @@
|
|||||||
"grafanaMaturityCount": 0,
|
"grafanaMaturityCount": 0,
|
||||||
"lineageIsGroup": true,
|
"lineageIsGroup": true,
|
||||||
"links": {
|
"links": {
|
||||||
"docs": "n/a",
|
"docs": "https://grafana.com/docs/grafana/next/developers/kinds/composable/geomappanelcfg/schema-reference",
|
||||||
"go": "n/a",
|
"go": "n/a",
|
||||||
"schema": "n/a",
|
"schema": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/geomap/panelcfg.cue",
|
||||||
"ts": "n/a"
|
"ts": "https://github.com/grafana/grafana/tree/main/public/app/plugins/panel/geomap/panelcfg.gen.ts"
|
||||||
},
|
},
|
||||||
"machineName": "geomappanelcfg",
|
"machineName": "geomappanelcfg",
|
||||||
"maturity": "planned",
|
"maturity": "experimental",
|
||||||
"name": "GeomapPanelCfg",
|
"name": "GeomapPanelCfg",
|
||||||
"pluralMachineName": "geomappanelcfgs",
|
"pluralMachineName": "geomappanelcfgs",
|
||||||
"pluralName": "GeomapPanelCfgs",
|
"pluralName": "GeomapPanelCfgs",
|
||||||
@ -1989,6 +1991,7 @@
|
|||||||
"debugpanelcfg",
|
"debugpanelcfg",
|
||||||
"elasticsearchdataquery",
|
"elasticsearchdataquery",
|
||||||
"gaugepanelcfg",
|
"gaugepanelcfg",
|
||||||
|
"geomappanelcfg",
|
||||||
"histogrampanelcfg",
|
"histogrampanelcfg",
|
||||||
"librarypanel",
|
"librarypanel",
|
||||||
"lokidataquery",
|
"lokidataquery",
|
||||||
@ -2005,7 +2008,7 @@
|
|||||||
"textpanelcfg",
|
"textpanelcfg",
|
||||||
"xychartpanelcfg"
|
"xychartpanelcfg"
|
||||||
],
|
],
|
||||||
"count": 23
|
"count": 24
|
||||||
},
|
},
|
||||||
"mature": {
|
"mature": {
|
||||||
"name": "mature",
|
"name": "mature",
|
||||||
@ -2041,7 +2044,6 @@
|
|||||||
"elasticsearchdatasourcecfg",
|
"elasticsearchdatasourcecfg",
|
||||||
"flamegraphpanelcfg",
|
"flamegraphpanelcfg",
|
||||||
"folder",
|
"folder",
|
||||||
"geomappanelcfg",
|
|
||||||
"gettingstartedpanelcfg",
|
"gettingstartedpanelcfg",
|
||||||
"googlecloudmonitoringdataquery",
|
"googlecloudmonitoringdataquery",
|
||||||
"googlecloudmonitoringdatasourcecfg",
|
"googlecloudmonitoringdatasourcecfg",
|
||||||
@ -2078,7 +2080,7 @@
|
|||||||
"zipkindataquery",
|
"zipkindataquery",
|
||||||
"zipkindatasourcecfg"
|
"zipkindatasourcecfg"
|
||||||
],
|
],
|
||||||
"count": 48
|
"count": 47
|
||||||
},
|
},
|
||||||
"stable": {
|
"stable": {
|
||||||
"name": "stable",
|
"name": "stable",
|
||||||
|
@ -1,76 +0,0 @@
|
|||||||
// Copyright 2023 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/thema"
|
|
||||||
ui "github.com/grafana/grafana/packages/grafana-schema/src/common"
|
|
||||||
)
|
|
||||||
|
|
||||||
Panel: thema.#Lineage & {
|
|
||||||
name: "geomap"
|
|
||||||
seqs: [
|
|
||||||
{
|
|
||||||
schemas: [
|
|
||||||
{
|
|
||||||
PanelOptions: {
|
|
||||||
view: MapViewConfig
|
|
||||||
controls: ControlsOptions
|
|
||||||
basemap: ui.MapLayerOptions
|
|
||||||
layers: [...ui.MapLayerOptions]
|
|
||||||
tooltip: TooltipOptions
|
|
||||||
} @cuetsy(kind="interface")
|
|
||||||
|
|
||||||
MapViewConfig: {
|
|
||||||
id: string | *"zero"
|
|
||||||
lat?: int64 | *0
|
|
||||||
lon?: int64 | *0
|
|
||||||
zoom?: int64 | *1
|
|
||||||
minZoom?: int64
|
|
||||||
maxZoom?: int64
|
|
||||||
padding?: int64
|
|
||||||
allLayers?: bool | *true
|
|
||||||
lastOnly?: bool
|
|
||||||
layer?: string
|
|
||||||
shared?: bool
|
|
||||||
} @cuetsy(kind="interface")
|
|
||||||
|
|
||||||
ControlsOptions: {
|
|
||||||
// Zoom (upper left)
|
|
||||||
showZoom?: bool
|
|
||||||
// let the mouse wheel zoom
|
|
||||||
mouseWheelZoom?: bool
|
|
||||||
// Lower right
|
|
||||||
showAttribution?: bool
|
|
||||||
// Scale options
|
|
||||||
showScale?: bool
|
|
||||||
// Show debug
|
|
||||||
showDebug?: bool
|
|
||||||
// Show measure
|
|
||||||
showMeasure?: bool
|
|
||||||
} @cuetsy(kind="interface")
|
|
||||||
|
|
||||||
TooltipOptions: {
|
|
||||||
mode: TooltipMode
|
|
||||||
} @cuetsy(kind="interface")
|
|
||||||
|
|
||||||
TooltipMode: "none" | "details" @cuetsy(kind="enum",memberNames="None|Details")
|
|
||||||
|
|
||||||
MapCenterID: "zero" | "coords" | "fit" @cuetsy(kind="enum",members="Zero|Coordinates|Fit")
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
78
public/app/plugins/panel/geomap/panelcfg.cue
Normal file
78
public/app/plugins/panel/geomap/panelcfg.cue
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
// Copyright 2023 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 (
|
||||||
|
ui "github.com/grafana/grafana/packages/grafana-schema/src/common"
|
||||||
|
)
|
||||||
|
|
||||||
|
composableKinds: PanelCfg: {
|
||||||
|
maturity: "experimental"
|
||||||
|
|
||||||
|
lineage: {
|
||||||
|
seqs: [
|
||||||
|
{
|
||||||
|
schemas: [
|
||||||
|
{
|
||||||
|
PanelOptions: {
|
||||||
|
view: MapViewConfig
|
||||||
|
controls: ControlsOptions
|
||||||
|
basemap: ui.MapLayerOptions
|
||||||
|
layers: [...ui.MapLayerOptions]
|
||||||
|
tooltip: TooltipOptions
|
||||||
|
} @cuetsy(kind="interface")
|
||||||
|
|
||||||
|
MapViewConfig: {
|
||||||
|
id: string | *"zero"
|
||||||
|
lat?: int64 | *0
|
||||||
|
lon?: int64 | *0
|
||||||
|
zoom?: int64 | *1
|
||||||
|
minZoom?: int64
|
||||||
|
maxZoom?: int64
|
||||||
|
padding?: int64
|
||||||
|
allLayers?: bool | *true
|
||||||
|
lastOnly?: bool
|
||||||
|
layer?: string
|
||||||
|
shared?: bool
|
||||||
|
} @cuetsy(kind="interface")
|
||||||
|
|
||||||
|
ControlsOptions: {
|
||||||
|
// Zoom (upper left)
|
||||||
|
showZoom?: bool
|
||||||
|
// let the mouse wheel zoom
|
||||||
|
mouseWheelZoom?: bool
|
||||||
|
// Lower right
|
||||||
|
showAttribution?: bool
|
||||||
|
// Scale options
|
||||||
|
showScale?: bool
|
||||||
|
// Show debug
|
||||||
|
showDebug?: bool
|
||||||
|
// Show measure
|
||||||
|
showMeasure?: bool
|
||||||
|
} @cuetsy(kind="interface")
|
||||||
|
|
||||||
|
TooltipOptions: {
|
||||||
|
mode: TooltipMode
|
||||||
|
} @cuetsy(kind="interface")
|
||||||
|
|
||||||
|
TooltipMode: "none" | "details" @cuetsy(kind="enum",memberNames="None|Details")
|
||||||
|
|
||||||
|
MapCenterID: "zero" | "coords" | "fit" @cuetsy(kind="enum",members="Zero|Coordinates|Fit")
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
import * as ui from '@grafana/schema';
|
import * as ui from '@grafana/schema';
|
||||||
|
|
||||||
export const PanelModelVersion = Object.freeze([0, 0]);
|
export const PanelCfgModelVersion = Object.freeze([0, 0]);
|
||||||
|
|
||||||
export interface PanelOptions {
|
export interface PanelOptions {
|
||||||
basemap: ui.MapLayerOptions;
|
basemap: ui.MapLayerOptions;
|
@ -7,7 +7,7 @@ import { Subject } from 'rxjs';
|
|||||||
import { MapLayerHandler, MapLayerOptions } from '@grafana/data';
|
import { MapLayerHandler, MapLayerOptions } from '@grafana/data';
|
||||||
import { LayerElement } from 'app/core/components/Layers/types';
|
import { LayerElement } from 'app/core/components/Layers/types';
|
||||||
|
|
||||||
import { ControlsOptions as ControlsOptionsBase } from './models.gen';
|
import { ControlsOptions as ControlsOptionsBase } from './panelcfg.gen';
|
||||||
import { StyleConfig } from './style/types';
|
import { StyleConfig } from './style/types';
|
||||||
|
|
||||||
export interface ControlsOptions extends ControlsOptionsBase {
|
export interface ControlsOptions extends ControlsOptionsBase {
|
||||||
@ -61,4 +61,4 @@ export interface MapLayerState<TConfig = unknown> extends LayerElement {
|
|||||||
mouseEvents: Subject<FeatureLike | undefined>;
|
mouseEvents: Subject<FeatureLike | undefined>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export { PanelOptions, MapViewConfig, TooltipOptions, TooltipMode, defaultMapViewConfig } from './models.gen';
|
export { PanelOptions, MapViewConfig, TooltipOptions, TooltipMode, defaultMapViewConfig } from './panelcfg.gen';
|
||||||
|
Loading…
Reference in New Issue
Block a user