From 5c1cd98ddad4a01339a0129159b5abb01b3b9eb9 Mon Sep 17 00:00:00 2001
From: Mikhail Volkov <47795110+mikhail-vl@users.noreply.github.com>
Date: Sun, 8 Sep 2024 15:35:50 -0400
Subject: [PATCH] Add Demo server (#113)
---
README.md | 2 +-
demo.volkovlabs.io/calendar.json | 546 ++++++++++++++++
demo.volkovlabs.io/charts.json | 375 +++++++++++
demo.volkovlabs.io/home.json | 647 +++++++++++++++++++
demo.volkovlabs.io/news.json | 728 ++++++++++++++++++++++
docker-compose.yml | 5 +
provisioning/dashboards/business.json | 10 +-
provisioning/datasources/datasources.yaml | 113 ++++
8 files changed, 2420 insertions(+), 6 deletions(-)
create mode 100644 demo.volkovlabs.io/calendar.json
create mode 100644 demo.volkovlabs.io/charts.json
create mode 100644 demo.volkovlabs.io/home.json
create mode 100644 demo.volkovlabs.io/news.json
create mode 100644 provisioning/datasources/datasources.yaml
diff --git a/README.md b/README.md
index a623930..942ed46 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
![App](https://raw.githubusercontent.com/volkovlabs/business-app/main/img/app.png)
-![Grafana](https://img.shields.io/badge/Grafana-11.1-orange)
+![Grafana](https://img.shields.io/badge/Grafana-11.2-orange)
[![YouTube](https://img.shields.io/badge/YouTube-Channel-red)](https://youtube.com/@volkovlabs)
![CI](https://github.com/volkovlabs/business-app/workflows/CI/badge.svg)
![E2E](https://github.com/volkovlabs/business-app/workflows/E2E/badge.svg)
diff --git a/demo.volkovlabs.io/calendar.json b/demo.volkovlabs.io/calendar.json
new file mode 100644
index 0000000..101aa0e
--- /dev/null
+++ b/demo.volkovlabs.io/calendar.json
@@ -0,0 +1,546 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": {
+ "type": "grafana",
+ "uid": "-- Grafana --"
+ },
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "fiscalYearStartMonth": 0,
+ "graphTooltip": 0,
+ "links": [
+ {
+ "asDropdown": false,
+ "icon": "external link",
+ "includeVars": false,
+ "keepTime": false,
+ "tags": ["business"],
+ "targetBlank": false,
+ "title": "Business Suite",
+ "tooltip": "",
+ "type": "dashboards",
+ "url": ""
+ }
+ ],
+ "panels": [
+ {
+ "datasource": {
+ "name": "Business Input",
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 14,
+ "x": 0,
+ "y": 0
+ },
+ "id": 5,
+ "options": {
+ "afterRender": "",
+ "content": "```json\n{{{json @root}}}\n```",
+ "contentPartials": [],
+ "defaultContent": "# Business Calendar\n\nThe Business Calendar panel is a Grafana plugin that displays events in a stylish calendar format. The data can come from various data sources.\n\n## Requirements\n\n- The Business Calendar Panel 3.X requires **Grafana 10** or **Grafana 11**.\n- Calendar Panel 2.X requires **Grafana 9.2** or **Grafana 10**.\n- Calendar Panel 1.X requires **Grafana 8.5** or **Grafana 9**.\n\n## Getting Started\n\nYou can install the Business Calendar Panel plugin from the [Grafana Plugins catalog](https://grafana.com/grafana/plugins/marcusolsson-calendar-panel/) or use the Grafana command line tool.\n\nFor the latter, please use the following command:\n\n```bash\ngrafana-cli plugins install marcusolsson-calendar-panel\n```\n\n## Highlights\n\n- Intuitive multi-language toolbar that allows you to:\n - Switch between the **Day**, **Week**, **Month**, **Work Week**, **Year**, and **Agenda** views.\n - Switch back to today's events.\n - Display events from the previous and subsequent time ranges.\n- Fetch and combine event data from any data sources.\n- Event filter by a time range.\n- Event coloring based on the Grafana Thresholds.\n- Enables the opening of a data link instead of a sidebar when clicking on an event.\n- Enables the display of annotations across all dashboards for the specified period.\n- Supports Internationalization: Spanish, French, German, and Chinese.",
+ "editor": {
+ "format": "auto",
+ "language": "markdown"
+ },
+ "editors": ["default"],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "data",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "refId": "A"
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 10,
+ "x": 14,
+ "y": 0
+ },
+ "id": 6,
+ "options": {
+ "afterRender": "import('https://esm.sh/youtube-player').then(({ default: YouTubePlayer }) => {\n const videoList = [\"CvLqyY2fQfo\", \"6WGmm5y4fs4\", \"iPJ122x0oos\"];\n const randomVideoId = videoList[Math.floor(Math.random() * videoList.length)];\n\n YouTubePlayer('player', { videoId: randomVideoId });\n})",
+ "content": "
",
+ "contentPartials": [],
+ "defaultContent": "The query didn't return any results.",
+ "editor": {
+ "format": "auto",
+ "language": "html"
+ },
+ "editors": ["afterRender"],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "everyRow",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "frame": {
+ "fields": [
+ {
+ "config": {},
+ "name": "URL",
+ "type": "string",
+ "values": ["https://www.youtube.com/watch?v=CvLqyY2fQfo"]
+ }
+ ],
+ "meta": {},
+ "name": "YouTube"
+ },
+ "refId": "A"
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 10
+ },
+ "id": 7,
+ "panels": [],
+ "title": "Examples",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-json-datasource",
+ "uid": "fdtmkexmvk8owc"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "links": [
+ {
+ "title": "Grafana Catalog",
+ "url": "${__data.fields.URL}"
+ }
+ ],
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 14,
+ "w": 12,
+ "x": 0,
+ "y": 11
+ },
+ "id": 2,
+ "options": {
+ "annotations": false,
+ "annotationsLimit": 100,
+ "annotationsType": "",
+ "colors": "event",
+ "dateFormat": "inherit",
+ "defaultView": "month",
+ "descriptionField": ["Description"],
+ "displayFields": ["description", "labels", "links", "location", "text", "time"],
+ "labelFields": ["Slug", "Signature"],
+ "locationField": "Version",
+ "locationLabel": "Version:",
+ "preformattedDescription": false,
+ "quickLinks": false,
+ "scrollToTime": {
+ "hours": 0,
+ "minutes": 0
+ },
+ "showEventTooltip": true,
+ "showMonthTime": false,
+ "textField": "Name",
+ "timeField": "Updated At",
+ "timeRangeType": "default",
+ "views": ["day", "week", "month", "agenda", "work_week", "year"]
+ },
+ "pluginVersion": "3.6.0",
+ "targets": [
+ {
+ "cacheDurationSeconds": 300,
+ "datasource": {
+ "type": "marcusolsson-json-datasource",
+ "uid": "fdtmkexmvk8owc"
+ },
+ "fields": [
+ {
+ "jsonPath": "$.items[*].name",
+ "name": "Name"
+ },
+ {
+ "jsonPath": "$.items[*].slug",
+ "language": "jsonpath",
+ "name": "Slug"
+ },
+ {
+ "jsonPath": "$.items[*].typeName",
+ "language": "jsonpath",
+ "name": "Type"
+ },
+ {
+ "jsonPath": "$.items[*].version",
+ "language": "jsonpath",
+ "name": "Version"
+ },
+ {
+ "jsonPath": "$.items[*].downloads",
+ "language": "jsonpath",
+ "name": "Downloads"
+ },
+ {
+ "jsonPath": "$.items[*].description",
+ "language": "jsonpath",
+ "name": "Description"
+ },
+ {
+ "jsonPath": "$.items[*].signatureType",
+ "language": "jsonpath",
+ "name": "Signature"
+ },
+ {
+ "jsonPath": "$.items[*].orgName",
+ "language": "jsonpath",
+ "name": "Organization"
+ },
+ {
+ "jsonPath": "$.items[*].createdAt",
+ "language": "jsonpath",
+ "name": "Created At"
+ },
+ {
+ "jsonPath": "$.items[*].updatedAt",
+ "language": "jsonpath",
+ "name": "Updated At"
+ },
+ {
+ "jsonPath": "$.items[*].url",
+ "language": "jsonpath",
+ "name": "URL"
+ }
+ ],
+ "method": "GET",
+ "queryParams": "",
+ "refId": "A",
+ "urlPath": "/"
+ }
+ ],
+ "title": "Grafana Plugins (JSON data source)",
+ "type": "marcusolsson-calendar-panel"
+ },
+ {
+ "datasource": {
+ "type": "yesoreyeram-infinity-datasource",
+ "uid": "edtmni4c13i80c"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "links": [
+ {
+ "title": "Grafana Catalog",
+ "url": "${__data.fields.url}"
+ }
+ ],
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 28,
+ "w": 12,
+ "x": 12,
+ "y": 11
+ },
+ "id": 4,
+ "options": {
+ "annotations": false,
+ "annotationsLimit": 100,
+ "annotationsType": "",
+ "colors": "event",
+ "dateFormat": "inherit",
+ "defaultView": "work_week",
+ "descriptionField": ["description"],
+ "displayFields": ["description", "labels", "links", "location", "text", "time"],
+ "labelFields": ["orgSlug", "signatureType"],
+ "locationField": "version",
+ "locationLabel": "Version:",
+ "preformattedDescription": true,
+ "quickLinks": true,
+ "scrollToTime": {
+ "hours": 8,
+ "minutes": 0
+ },
+ "showEventTooltip": true,
+ "showMonthTime": true,
+ "textField": "name",
+ "textSize": 12,
+ "timeField": "updatedAt",
+ "timeRangeType": "default",
+ "views": ["day", "week", "work_week", "month", "year", "agenda"]
+ },
+ "pluginVersion": "3.6.0",
+ "targets": [
+ {
+ "columns": [],
+ "datasource": {
+ "type": "yesoreyeram-infinity-datasource",
+ "uid": "edtmni4c13i80c"
+ },
+ "filters": [],
+ "format": "table",
+ "global_query_id": "",
+ "refId": "A",
+ "root_selector": "",
+ "source": "url",
+ "type": "json",
+ "url": "https://grafana.com/api/plugins",
+ "url_options": {
+ "data": "",
+ "method": "GET"
+ }
+ }
+ ],
+ "title": "Grafana Plugins (Infinity data source)",
+ "type": "marcusolsson-calendar-panel"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-json-datasource",
+ "uid": "fdtmm8zot2h34e"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "#EAB839",
+ "value": 2
+ },
+ {
+ "color": "red",
+ "value": 5
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 14,
+ "w": 12,
+ "x": 0,
+ "y": 25
+ },
+ "id": 3,
+ "options": {
+ "annotations": true,
+ "annotationsLimit": 100,
+ "annotationsType": "",
+ "colorField": "Open Issues",
+ "colors": "thresholds",
+ "dateFormat": "es",
+ "defaultView": "agenda",
+ "descriptionField": ["Description"],
+ "displayFields": ["description", "labels", "links", "location", "text", "time"],
+ "endTimeRange": "2025-01-01T04:59:59.000Z",
+ "labelFields": ["0", "1", "2", "3", "4"],
+ "locationField": "Description",
+ "locationLabel": "",
+ "preformattedDescription": false,
+ "quickLinks": false,
+ "scrollToTime": {
+ "hours": 0,
+ "minutes": 0
+ },
+ "showEventTooltip": false,
+ "showMonthTime": true,
+ "startTimeRange": "2024-08-15T04:00:00.000Z",
+ "textField": "Full Name",
+ "textSize": 12,
+ "timeField": "Updated At",
+ "timeRangeType": "default",
+ "views": ["week", "month", "agenda"]
+ },
+ "pluginVersion": "3.6.0",
+ "targets": [
+ {
+ "cacheDurationSeconds": 300,
+ "datasource": {
+ "type": "marcusolsson-json-datasource",
+ "uid": "fdtmm8zot2h34e"
+ },
+ "fields": [
+ {
+ "jsonPath": "$.[*].full_name",
+ "language": "jsonpath",
+ "name": "Full Name"
+ },
+ {
+ "jsonPath": "$.[*].description",
+ "language": "jsonpath",
+ "name": "Description"
+ },
+ {
+ "jsonPath": "$.[*].updated_at",
+ "language": "jsonpath",
+ "name": "Updated At"
+ },
+ {
+ "jsonPath": "$.[*].stargazers_count",
+ "language": "jsonpath",
+ "name": "Stargazer"
+ },
+ {
+ "jsonPath": "$.[*].forks_count",
+ "language": "jsonpath",
+ "name": "Forks"
+ },
+ {
+ "jsonPath": "$.[*].topics",
+ "language": "jsonpath",
+ "name": "Topics"
+ },
+ {
+ "jsonPath": "$.[*].open_issues",
+ "language": "jsonpath",
+ "name": "Open Issues"
+ }
+ ],
+ "method": "GET",
+ "queryParams": "",
+ "refId": "A",
+ "urlPath": "/"
+ }
+ ],
+ "title": "GitHub Repository (JSON data source)",
+ "transformations": [
+ {
+ "id": "extractFields",
+ "options": {
+ "keepTime": false,
+ "replace": false,
+ "source": "Topics"
+ }
+ }
+ ],
+ "type": "marcusolsson-calendar-panel"
+ }
+ ],
+ "refresh": "",
+ "schemaVersion": 39,
+ "tags": ["business"],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-6h",
+ "to": "now"
+ },
+ "timepicker": {},
+ "timezone": "browser",
+ "title": "Business Calendar",
+ "uid": "cdtmkqipv7mdcc",
+ "version": 4,
+ "weekStart": ""
+}
diff --git a/demo.volkovlabs.io/charts.json b/demo.volkovlabs.io/charts.json
new file mode 100644
index 0000000..ca6e34a
--- /dev/null
+++ b/demo.volkovlabs.io/charts.json
@@ -0,0 +1,375 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": {
+ "type": "grafana",
+ "uid": "-- Grafana --"
+ },
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "fiscalYearStartMonth": 0,
+ "graphTooltip": 0,
+ "links": [
+ {
+ "asDropdown": false,
+ "icon": "external link",
+ "includeVars": false,
+ "keepTime": false,
+ "tags": ["business"],
+ "targetBlank": false,
+ "title": "Business Suite",
+ "tooltip": "",
+ "type": "dashboards",
+ "url": ""
+ }
+ ],
+ "panels": [
+ {
+ "datasource": {
+ "name": "Business Input",
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 14,
+ "x": 0,
+ "y": 0
+ },
+ "id": 5,
+ "options": {
+ "afterRender": "",
+ "content": "```json\n{{{json @root}}}\n```",
+ "contentPartials": [],
+ "defaultContent": "# Business Charts\n\nThe Business Charts Panel plugin is a visualization extension for Grafana powered by the Apache ECharts library.\n\n## Requirements\n\n- Business Charts panel 6.X requires **Grafana 10** or **Grafana 11**.\n- Apache ECharts panel 5.X requires **Grafana 9** or **Grafana 10**.\n- Apache ECharts panel 3.X and 4.X require **Grafana 8.5** or **Grafana 9**.\n\n## Getting Started\n\nYou can install the Business Charts Panel from the [Grafana Plugins catalog](https://grafana.com/grafana/plugins/volkovlabs-echarts-panel/) or using the Grafana command line tool.\n\nFor the latter, please use the following command.\n\n```bash\ngrafana-cli plugins install volkovlabs-echarts-panel\n```\n\n## Highlights\n\n- Provides [Monaco Code Editor](https://microsoft.github.io/monaco-editor/) for:\n - Working with Grafana data frames (JavaScript).\n - Updating chart configurations in the JSON format.\n - Customizing theme configurations.\n- Supports Code Editor suggestions for parameters and variables.\n- Supports SVG and Canvas renderers.\n- Supports variables and [locationService](https://grafana.com/docs/grafana/latest/developers/plugins/create-a-grafana-plugin/extend-a-plugin/add-support-for-variables/#set-a-variable-from-your-plugin) to make charts interactive.\n- Includes USA and World GeoJSON maps. Additional maps can be loaded dynamically.\n- Supports Baidu, Gaode, and Google Maps using API with required provision of the access key.\n- Includes [ECharts-GL](https://github.com/ecomfe/echarts-gl) proving 3D plots, globe visualization, and WebGL acceleration.\n- Includes [ecStat](https://github.com/ecomfe/echarts-stat), a statistical and data mining tool.\n- Includes [Liquid Fill Chart](https://github.com/ecomfe/echarts-liquidfill) to represent data in percentage.\n- Supports real-time data updates using streaming data sources and Grafana Live.\n- Supports light and dark themes adjusted to the Grafana theme.\n- Based on [Apache ECharts 5.5.0](https://github.com/apache/echarts/releases/tag/5.5.0).\n- Provides 100+ ready-to-use examples at [echarts.volkovlabs.io](https://echarts.volkovlabs.io).\n- Supports the [Wordcloud extension](https://github.com/ecomfe/echarts-wordcloud)",
+ "editor": {
+ "format": "auto",
+ "language": "markdown"
+ },
+ "editors": ["default"],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "data",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "refId": "A"
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 10,
+ "x": 14,
+ "y": 0
+ },
+ "id": 6,
+ "options": {
+ "afterRender": "import('https://esm.sh/youtube-player').then(({ default: YouTubePlayer }) => {\n const videoList = [\"adOjUxrfysc\", \"S3PiL1p1v5U\", \"qfDrAW8-Mh8\"];\n const randomVideoId = videoList[Math.floor(Math.random() * videoList.length)];\n\n YouTubePlayer('player', { videoId: randomVideoId });\n})",
+ "content": "",
+ "contentPartials": [],
+ "defaultContent": "The query didn't return any results.",
+ "editor": {
+ "format": "auto",
+ "language": "html"
+ },
+ "editors": ["afterRender"],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "everyRow",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "frame": {
+ "fields": [
+ {
+ "config": {},
+ "name": "URL",
+ "type": "string",
+ "values": ["https://www.youtube.com/watch?v=CvLqyY2fQfo"]
+ }
+ ],
+ "meta": {},
+ "name": "YouTube"
+ },
+ "refId": "A"
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 10
+ },
+ "id": 7,
+ "panels": [],
+ "title": "Examples",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "description": "",
+ "gridPos": {
+ "h": 10,
+ "w": 8,
+ "x": 0,
+ "y": 11
+ },
+ "id": 8,
+ "options": {
+ "baidu": {
+ "callback": "bmapReady",
+ "key": ""
+ },
+ "editor": {
+ "format": "auto",
+ "height": 669
+ },
+ "editorMode": "visual",
+ "followTheme": true,
+ "gaode": {
+ "key": "",
+ "plugin": "AMap.Scale,AMap.ToolBar"
+ },
+ "getOption": "",
+ "google": {
+ "callback": "gmapReady",
+ "key": ""
+ },
+ "map": "none",
+ "renderer": "canvas",
+ "themeEditor": {
+ "config": "{}",
+ "height": 400,
+ "name": "default"
+ },
+ "visualEditor": {
+ "code": "return {\n dataset: context.editor.dataset,\n series: context.editor.series,\n xAxis: {\n type: 'category',\n },\n yAxis: {\n type: 'value',\n min: 0,\n }\n}\n",
+ "codeHeight": 600,
+ "dataset": [
+ {
+ "name": "Name",
+ "source": "A"
+ },
+ {
+ "name": "Amount",
+ "source": "A"
+ }
+ ],
+ "series": [
+ {
+ "id": "Data",
+ "name": "Data",
+ "type": "bar",
+ "uid": "3df4c04d-2da3-409e-89e7-ac6df19d0461"
+ }
+ ]
+ }
+ },
+ "pluginVersion": "6.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "frame": {
+ "fields": [
+ {
+ "config": {},
+ "name": "Name",
+ "type": "string",
+ "values": ["Shirts", "Cardigans", "Chiffons", "Pants", "Heels", "Socks"]
+ },
+ {
+ "config": {},
+ "name": "Amount",
+ "type": "string",
+ "values": ["5", "20", "36", "10", "10", "20"]
+ }
+ ],
+ "meta": {},
+ "name": "sales"
+ },
+ "refId": "A"
+ }
+ ],
+ "title": "Bar",
+ "type": "volkovlabs-echarts-panel"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "description": "",
+ "gridPos": {
+ "h": 10,
+ "w": 8,
+ "x": 8,
+ "y": 11
+ },
+ "id": 9,
+ "options": {
+ "baidu": {
+ "callback": "bmapReady",
+ "key": ""
+ },
+ "editor": {
+ "format": "auto",
+ "height": 600
+ },
+ "editorMode": "visual",
+ "gaode": {
+ "key": "",
+ "plugin": "AMap.Scale,AMap.ToolBar"
+ },
+ "getOption": "return {\n tooltip: {\n trigger: 'item',\n showDelay: 0,\n transitionDuration: 0.2\n },\n visualMap: {\n left: 'left',\n min: Math.min(...population.map(o => o.value)),\n max: Math.max(...population.map(o => o.value)),\n inRange: {\n color: [\n '#313695',\n '#4575b4',\n '#74add1',\n '#abd9e9',\n '#e0f3f8',\n '#ffffbf',\n '#fee090',\n '#fdae61',\n '#f46d43',\n '#d73027',\n '#a50026'\n ]\n },\n text: ['High', 'Low'],\n calculable: true\n },\n series: [\n {\n name: 'Population',\n type: 'map',\n roam: true,\n map: 'world',\n emphasis: {\n label: {\n show: true\n }\n },\n data: population\n }\n ]\n};\n",
+ "google": {
+ "callback": "gmapReady",
+ "key": ""
+ },
+ "map": "json",
+ "renderer": "svg",
+ "themeEditor": {
+ "config": "{}",
+ "height": 400,
+ "name": "default"
+ },
+ "visualEditor": {
+ "code": "return {\n dataset: context.editor.dataset,\n tooltip: {\n trigger: 'item',\n showDelay: 0,\n transitionDuration: 0.2\n },\n visualMap: {\n left: 'left',\n min: Math.min(...context.editor.dataset.source.map(o => o[1]).slice(1)),\n max: Math.max(...context.editor.dataset.source.map(o => o[1]).slice(1)),\n inRange: {\n color: [\n '#313695',\n '#4575b4',\n '#74add1',\n '#abd9e9',\n '#e0f3f8',\n '#ffffbf',\n '#fee090',\n '#fdae61',\n '#f46d43',\n '#d73027',\n '#a50026'\n ]\n },\n text: ['High', 'Low'],\n calculable: true\n },\n series: [\n {\n name: 'Population',\n type: 'map',\n roam: true,\n map: 'world',\n emphasis: {\n label: {\n show: true\n }\n },\n }\n ]\n};\n",
+ "codeHeight": 600,
+ "dataset": [
+ {
+ "name": "Name",
+ "source": "A"
+ },
+ {
+ "name": "Value",
+ "source": "A"
+ }
+ ],
+ "series": []
+ }
+ },
+ "pluginVersion": "6.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "frame": {
+ "fields": [
+ {
+ "config": {},
+ "name": "Name",
+ "type": "string",
+ "values": [""]
+ },
+ {
+ "config": {},
+ "name": "Value",
+ "type": "number",
+ "values": [null]
+ }
+ ],
+ "meta": {
+ "custom": {
+ "customCode": "const population = [\n {\n \"Rank\": 1,\n \"name\": \"China\",\n \"value\": \"1448471.4000\",\n \"pop2021\": \"1444216.1070\",\n \"GrowthRate\": \"1.0029\",\n \"area\": 9706961,\n \"Density\": \"149.2199\"\n },\n {\n \"Rank\": 2,\n \"name\": \"India\",\n \"value\": \"1406631.7760\",\n \"pop2021\": \"1393409.0380\",\n \"GrowthRate\": \"1.0095\",\n \"area\": 3287590,\n \"Density\": \"427.8611\"\n },\n {\n \"Rank\": 3,\n \"name\": \"United States\",\n \"value\": \"334805.2690\",\n \"pop2021\": \"332915.0730\",\n \"GrowthRate\": \"1.0057\",\n \"area\": 9372610,\n \"Density\": \"35.7217\"\n },\n {\n \"Rank\": 4,\n \"name\": \"Indonesia\",\n \"value\": \"279134.5050\",\n \"pop2021\": \"276361.7830\",\n \"GrowthRate\": \"1.0100\",\n \"area\": 1904569,\n \"Density\": \"146.5605\"\n },\n {\n \"Rank\": 5,\n \"name\": \"Pakistan\",\n \"value\": \"229488.9940\",\n \"pop2021\": \"225199.9370\",\n \"GrowthRate\": \"1.0190\",\n \"area\": 881912,\n \"Density\": \"260.2176\"\n },\n {\n \"Rank\": 6,\n \"name\": \"Nigeria\",\n \"value\": \"216746.9340\",\n \"pop2021\": \"211400.7080\",\n \"GrowthRate\": \"1.0253\",\n \"area\": 923768,\n \"Density\": \"234.6335\"\n },\n {\n \"Rank\": 7,\n \"name\": \"Brazil\",\n \"value\": \"215353.5930\",\n \"pop2021\": \"213993.4370\",\n \"GrowthRate\": \"1.0064\",\n \"area\": 8515767,\n \"Density\": \"25.2888\"\n },\n {\n \"Rank\": 8,\n \"name\": \"Bangladesh\",\n \"value\": \"167885.6890\",\n \"pop2021\": \"166303.4980\",\n \"GrowthRate\": \"1.0095\",\n \"area\": 147570,\n \"Density\": \"1137.6682\"\n },\n {\n \"Rank\": 9,\n \"name\": \"Russia\",\n \"value\": \"145805.9470\",\n \"pop2021\": \"145912.0250\",\n \"GrowthRate\": \"0.9993\",\n \"area\": 17098242,\n \"Density\": \"8.5275\"\n },\n {\n \"Rank\": 10,\n \"name\": \"Mexico\",\n \"value\": \"131562.7720\",\n \"pop2021\": \"130262.2160\",\n \"GrowthRate\": \"1.0100\",\n \"area\": 1964375,\n \"Density\": \"66.9744\"\n },\n {\n \"Rank\": 11,\n \"name\": \"Japan\",\n \"value\": \"125584.8380\",\n \"pop2021\": \"126050.8040\",\n \"GrowthRate\": \"0.9963\",\n \"area\": 377930,\n \"Density\": \"332.2966\"\n },\n {\n \"Rank\": 12,\n \"name\": \"Ethiopia\",\n \"value\": \"120812.6980\",\n \"pop2021\": \"117876.2270\",\n \"GrowthRate\": \"1.0249\",\n \"area\": 1104300,\n \"Density\": \"109.4021\"\n },\n {\n \"Rank\": 13,\n \"name\": \"Philippines\",\n \"value\": \"112508.9940\",\n \"pop2021\": \"111046.9130\",\n \"GrowthRate\": \"1.0132\",\n \"area\": 342353,\n \"Density\": \"328.6345\"\n },\n {\n \"Rank\": 14,\n \"name\": \"Egypt\",\n \"value\": \"106156.6920\",\n \"pop2021\": \"104258.3270\",\n \"GrowthRate\": \"1.0182\",\n \"area\": 1002450,\n \"Density\": \"105.8972\"\n },\n {\n \"Rank\": 15,\n \"name\": \"Vietnam\",\n \"value\": \"98953.5410\",\n \"pop2021\": \"98168.8330\",\n \"GrowthRate\": \"1.0080\",\n \"area\": 331212,\n \"Density\": \"298.7619\"\n },\n {\n \"Rank\": 16,\n \"name\": \"DR Congo\",\n \"value\": \"95240.7920\",\n \"pop2021\": \"92377.9930\",\n \"GrowthRate\": \"1.0310\",\n \"area\": 2344858,\n \"Density\": \"40.6169\"\n },\n {\n \"Rank\": 17,\n \"name\": \"Iran\",\n \"value\": \"86022.8370\",\n \"pop2021\": \"85028.7590\",\n \"GrowthRate\": \"1.0117\",\n \"area\": 1648195,\n \"Density\": \"52.1921\"\n },\n {\n \"Rank\": 18,\n \"name\": \"Turkey\",\n \"value\": \"85561.9760\",\n \"pop2021\": \"85042.7380\",\n \"GrowthRate\": \"1.0061\",\n \"area\": 783562,\n \"Density\": \"109.1962\"\n },\n {\n \"Rank\": 19,\n \"name\": \"Germany\",\n \"value\": \"83883.5960\",\n \"pop2021\": \"83900.4730\",\n \"GrowthRate\": \"0.9998\",\n \"area\": 357114,\n \"Density\": \"234.8930\"\n },\n {\n \"Rank\": 20,\n \"name\": \"Thailand\",\n \"value\": \"70078.2030\",\n \"pop2021\": \"69950.8500\",\n \"GrowthRate\": \"1.0018\",\n \"area\": 513120,\n \"Density\": \"136.5727\"\n },\n {\n \"Rank\": 21,\n \"name\": \"United Kingdom\",\n \"value\": \"68497.9070\",\n \"pop2021\": \"68207.1160\",\n \"GrowthRate\": \"1.0043\",\n \"area\": 242900,\n \"Density\": \"282.0004\"\n },\n {\n \"Rank\": 22,\n \"name\": \"France\",\n \"value\": \"65584.5180\",\n \"pop2021\": \"65426.1790\",\n \"GrowthRate\": \"1.0024\",\n \"area\": 551695,\n \"Density\": \"118.8782\"\n },\n {\n \"Rank\": 23,\n \"name\": \"Tanzania\",\n \"value\": \"63298.5500\",\n \"pop2021\": \"61498.4370\",\n \"GrowthRate\": \"1.0293\",\n \"area\": 945087,\n \"Density\": \"66.9764\"\n },\n {\n \"Rank\": 24,\n \"name\": \"South Africa\",\n \"value\": \"60756.1350\",\n \"pop2021\": \"60041.9940\",\n \"GrowthRate\": \"1.0119\",\n \"area\": 1221037,\n \"Density\": \"49.7578\"\n },\n {\n \"Rank\": 25,\n \"name\": \"Italy\",\n \"value\": \"60262.7700\",\n \"pop2021\": \"60367.4770\",\n \"GrowthRate\": \"0.9983\",\n \"area\": 301336,\n \"Density\": \"199.9853\"\n },\n {\n \"Rank\": 26,\n \"name\": \"England\",\n \"value\": \"57367.8110\",\n \"GrowthRate\": \"1.0072\",\n \"area\": 130279,\n \"Density\": \"440.3458\"\n },\n {\n \"Rank\": 27,\n \"name\": \"Kenya\",\n \"value\": \"56215.2210\",\n \"pop2021\": \"54985.6980\",\n \"GrowthRate\": \"1.0224\",\n \"area\": 580367,\n \"Density\": \"96.8615\"\n },\n {\n \"Rank\": 28,\n \"name\": \"Myanmar\",\n \"value\": \"55227.1430\",\n \"pop2021\": \"54806.0120\",\n \"GrowthRate\": \"1.0077\",\n \"area\": 676578,\n \"Density\": \"81.6272\"\n },\n {\n \"Rank\": 29,\n \"name\": \"Colombia\",\n \"value\": \"51512.7620\",\n \"pop2021\": \"51265.8440\",\n \"GrowthRate\": \"1.0048\",\n \"area\": 1141748,\n \"Density\": \"45.1175\"\n },\n {\n \"Rank\": 30,\n \"name\": \"South Korea\",\n \"value\": \"51329.8990\",\n \"pop2021\": \"51305.1860\",\n \"GrowthRate\": \"1.0005\",\n \"area\": 100210,\n \"Density\": \"512.2233\"\n },\n {\n \"Rank\": 31,\n \"name\": \"Uganda\",\n \"value\": \"48432.8630\",\n \"pop2021\": \"47123.5310\",\n \"GrowthRate\": \"1.0278\",\n \"area\": 241550,\n \"Density\": \"200.5086\"\n },\n {\n \"Rank\": 32,\n \"name\": \"Spain\",\n \"value\": \"46719.1420\",\n \"pop2021\": \"46745.2160\",\n \"GrowthRate\": \"0.9994\",\n \"area\": 505992,\n \"Density\": \"92.3318\"\n },\n {\n \"Rank\": 33,\n \"name\": \"Argentina\",\n \"value\": \"46010.2340\",\n \"pop2021\": \"45605.8260\",\n \"GrowthRate\": \"1.0089\",\n \"area\": 2780400,\n \"Density\": \"16.5481\"\n },\n {\n \"Rank\": 34,\n \"name\": \"Sudan\",\n \"value\": \"45992.0200\",\n \"pop2021\": \"44909.3530\",\n \"GrowthRate\": \"1.0241\",\n \"area\": 1886068,\n \"Density\": \"24.3851\"\n },\n {\n \"Rank\": 35,\n \"name\": \"Algeria\",\n \"value\": \"45350.1480\",\n \"pop2021\": \"44616.6240\",\n \"GrowthRate\": \"1.0164\",\n \"area\": 2381741,\n \"Density\": \"19.0408\"\n },\n {\n \"Rank\": 36,\n \"name\": \"Ukraine\",\n \"value\": \"43192.1220\",\n \"pop2021\": \"43466.8190\",\n \"GrowthRate\": \"0.9937\",\n \"area\": 603500,\n \"Density\": \"71.5694\"\n },\n {\n \"Rank\": 37,\n \"name\": \"Iraq\",\n \"value\": \"42164.9650\",\n \"pop2021\": \"41179.3500\",\n \"GrowthRate\": \"1.0239\",\n \"area\": 438317,\n \"Density\": \"96.1974\"\n },\n {\n \"Rank\": 38,\n \"name\": \"Afghanistan\",\n \"value\": \"40754.3880\",\n \"pop2021\": \"39835.4280\",\n \"GrowthRate\": \"1.0231\",\n \"area\": 652230,\n \"Density\": \"62.4847\"\n },\n {\n \"Rank\": 39,\n \"name\": \"Canada\",\n \"value\": \"38388.4190\",\n \"pop2021\": \"38067.9030\",\n \"GrowthRate\": \"1.0084\",\n \"area\": 9984670,\n \"Density\": \"3.8447\"\n },\n {\n \"Rank\": 40,\n \"name\": \"Morocco\",\n \"value\": \"37772.7560\",\n \"pop2021\": \"37344.7950\",\n \"GrowthRate\": \"1.0115\",\n \"area\": 446550,\n \"Density\": \"84.5880\"\n },\n {\n \"Rank\": 41,\n \"name\": \"Poland\",\n \"value\": \"37739.7850\",\n \"pop2021\": \"37797.0050\",\n \"GrowthRate\": \"0.9985\",\n \"area\": 312679,\n \"Density\": \"120.6982\"\n },\n {\n \"Rank\": 42,\n \"name\": \"Saudi Arabia\",\n \"value\": \"35844.9090\",\n \"pop2021\": \"35340.6830\",\n \"GrowthRate\": \"1.0143\",\n \"area\": 2149690,\n \"Density\": \"16.6745\"\n },\n {\n \"Rank\": 43,\n \"name\": \"Angola\",\n \"value\": \"35027.3430\",\n \"pop2021\": \"33933.6100\",\n \"GrowthRate\": \"1.0322\",\n \"area\": 1246700,\n \"Density\": \"28.0960\"\n },\n {\n \"Rank\": 44,\n \"name\": \"Uzbekistan\",\n \"value\": \"34382.0840\",\n \"pop2021\": \"33935.7630\",\n \"GrowthRate\": \"1.0132\",\n \"area\": 447400,\n \"Density\": \"76.8486\"\n },\n {\n \"Rank\": 45,\n \"name\": \"Peru\",\n \"value\": \"33684.2080\",\n \"pop2021\": \"33359.4180\",\n \"GrowthRate\": \"1.0097\",\n \"area\": 1285216,\n \"Density\": \"26.2090\"\n },\n {\n \"Rank\": 46,\n \"name\": \"Malaysia\",\n \"value\": \"33181.0720\",\n \"pop2021\": \"32776.1940\",\n \"GrowthRate\": \"1.0124\",\n \"area\": 330803,\n \"Density\": \"100.3046\"\n },\n {\n \"Rank\": 47,\n \"name\": \"Mozambique\",\n \"value\": \"33089.4610\",\n \"pop2021\": \"32163.0470\",\n \"GrowthRate\": \"1.0288\",\n \"area\": 801590,\n \"Density\": \"41.2798\"\n },\n {\n \"Rank\": 48,\n \"name\": \"Ghana\",\n \"value\": \"32395.4500\",\n \"pop2021\": \"31732.1290\",\n \"GrowthRate\": \"1.0209\",\n \"area\": 238533,\n \"Density\": \"135.8112\"\n },\n {\n \"Rank\": 49,\n \"name\": \"Yemen\",\n \"value\": \"31154.8670\",\n \"pop2021\": \"30490.6400\",\n \"GrowthRate\": \"1.0218\",\n \"area\": 527968,\n \"Density\": \"59.0090\"\n },\n {\n \"Rank\": 50,\n \"name\": \"Nepal\",\n \"value\": \"30225.5820\",\n \"pop2021\": \"29674.9200\",\n \"GrowthRate\": \"1.0186\",\n \"area\": 147181,\n \"Density\": \"205.3633\"\n },\n {\n \"Rank\": 51,\n \"name\": \"Venezuela\",\n \"value\": \"29266.9910\",\n \"pop2021\": \"28704.9540\",\n \"GrowthRate\": \"1.0196\",\n \"area\": 916445,\n \"Density\": \"31.9353\"\n },\n {\n \"Rank\": 52,\n \"name\": \"Madagascar\",\n \"value\": \"29178.0770\",\n \"pop2021\": \"28427.3280\",\n \"GrowthRate\": \"1.0264\",\n \"area\": 587041,\n \"Density\": \"49.7036\"\n },\n {\n \"Rank\": 53,\n \"name\": \"Cameroon\",\n \"value\": \"27911.5480\",\n \"pop2021\": \"27224.2650\",\n \"GrowthRate\": \"1.0252\",\n \"area\": 475442,\n \"Density\": \"58.7065\"\n },\n {\n \"Rank\": 54,\n \"name\": \"Ivory Coast\",\n \"value\": \"27742.2980\",\n \"pop2021\": \"27053.6290\",\n \"GrowthRate\": \"1.0255\",\n \"area\": 322463,\n \"Density\": \"86.0325\"\n },\n {\n \"Rank\": 55,\n \"name\": \"Niger\",\n \"value\": \"26083.6600\",\n \"pop2021\": \"25130.8170\",\n \"GrowthRate\": \"1.0379\",\n \"area\": 1267000,\n \"Density\": \"20.5869\"\n },\n {\n \"Rank\": 56,\n \"name\": \"Australia\",\n \"value\": \"26068.7920\",\n \"pop2021\": \"25788.2150\",\n \"GrowthRate\": \"1.0109\",\n \"area\": 7692024,\n \"Density\": \"3.3891\"\n },\n {\n \"Rank\": 57,\n \"name\": \"North Korea\",\n \"value\": \"25990.6790\",\n \"pop2021\": \"25887.0410\",\n \"GrowthRate\": \"1.0040\",\n \"area\": 120538,\n \"Density\": \"215.6223\"\n },\n {\n \"Rank\": 58,\n \"name\": \"Taiwan\",\n \"value\": \"23888.5950\",\n \"pop2021\": \"23855.0100\",\n \"GrowthRate\": \"1.0014\",\n \"area\": 36193,\n \"Density\": \"660.0336\"\n },\n {\n \"Rank\": 59,\n \"name\": \"Burkina Faso\",\n \"value\": \"22102.8380\",\n \"pop2021\": \"21497.0960\",\n \"GrowthRate\": \"1.0282\",\n \"area\": 272967,\n \"Density\": \"80.9726\"\n },\n {\n \"Rank\": 60,\n \"name\": \"Sri Lanka\",\n \"value\": \"21575.8420\",\n \"pop2021\": \"21497.3100\",\n \"GrowthRate\": \"1.0037\",\n \"area\": 65610,\n \"Density\": \"328.8499\"\n },\n {\n \"Rank\": 61,\n \"name\": \"Mali\",\n \"value\": \"21473.7640\",\n \"pop2021\": \"20855.7350\",\n \"GrowthRate\": \"1.0296\",\n \"area\": 1240192,\n \"Density\": \"17.3149\"\n },\n {\n \"Rank\": 62,\n \"name\": \"Malawi\",\n \"value\": \"20180.8390\",\n \"pop2021\": \"19647.6840\",\n \"GrowthRate\": \"1.0271\",\n \"area\": 118484,\n \"Density\": \"170.3254\"\n },\n {\n \"Rank\": 63,\n \"name\": \"Zambia\",\n \"value\": \"19470.2340\",\n \"pop2021\": \"18920.6510\",\n \"GrowthRate\": \"1.0290\",\n \"area\": 752612,\n \"Density\": \"25.8702\"\n },\n {\n \"Rank\": 64,\n \"name\": \"Syria\",\n \"value\": \"19364.8090\",\n \"pop2021\": \"18275.7020\",\n \"GrowthRate\": \"1.0596\",\n \"area\": 185180,\n \"Density\": \"104.5729\"\n },\n {\n \"Rank\": 65,\n \"name\": \"Chile\",\n \"value\": \"19250.1950\",\n \"pop2021\": \"19212.3610\",\n \"GrowthRate\": \"1.0020\",\n \"area\": 756102,\n \"Density\": \"25.4598\"\n },\n {\n \"Rank\": 66,\n \"name\": \"Kazakhstan\",\n \"value\": \"19205.0430\",\n \"pop2021\": \"18994.9620\",\n \"GrowthRate\": \"1.0111\",\n \"area\": 2724900,\n \"Density\": \"7.0480\"\n },\n {\n \"Rank\": 67,\n \"name\": \"Romania\",\n \"value\": \"19031.3350\",\n \"pop2021\": \"19127.7740\",\n \"GrowthRate\": \"0.9950\",\n \"area\": 238391,\n \"Density\": \"79.8324\"\n },\n {\n \"Rank\": 68,\n \"name\": \"Guatemala\",\n \"value\": \"18584.0390\",\n \"pop2021\": \"18249.8600\",\n \"GrowthRate\": \"1.0183\",\n \"area\": 108889,\n \"Density\": \"170.6696\"\n },\n {\n \"Rank\": 69,\n \"name\": \"Ecuador\",\n \"value\": \"18113.3610\",\n \"pop2021\": \"17888.4750\",\n \"GrowthRate\": \"1.0126\",\n \"area\": 276841,\n \"Density\": \"65.4288\"\n },\n {\n \"Rank\": 70,\n \"name\": \"Senegal\",\n \"value\": \"17653.6710\",\n \"pop2021\": \"17196.3010\",\n \"GrowthRate\": \"1.0266\",\n \"area\": 196722,\n \"Density\": \"89.7392\"\n },\n {\n \"Rank\": 71,\n \"name\": \"Chad\",\n \"value\": \"17413.5800\",\n \"pop2021\": \"16914.9850\",\n \"GrowthRate\": \"1.0295\",\n \"area\": 1284000,\n \"Density\": \"13.5620\"\n },\n {\n \"Rank\": 72,\n \"name\": \"Netherlands\",\n \"value\": \"17211.4470\",\n \"pop2021\": \"17173.0990\",\n \"GrowthRate\": \"1.0022\",\n \"area\": 41850,\n \"Density\": \"411.2652\"\n },\n {\n \"Rank\": 73,\n \"name\": \"Cambodia\",\n \"value\": \"17168.6390\",\n \"pop2021\": \"16946.4380\",\n \"GrowthRate\": \"1.0131\",\n \"area\": 181035,\n \"Density\": \"94.8360\"\n },\n {\n \"Rank\": 74,\n \"name\": \"Somalia\",\n \"value\": \"16841.7950\",\n \"pop2021\": \"16359.5040\",\n \"GrowthRate\": \"1.0295\",\n \"area\": 637657,\n \"Density\": \"26.4120\"\n },\n {\n \"Rank\": 75,\n \"name\": \"Zimbabwe\",\n \"value\": \"15331.4280\",\n \"pop2021\": \"15092.1710\",\n \"GrowthRate\": \"1.0159\",\n \"area\": 390757,\n \"Density\": \"39.2352\"\n },\n {\n \"Rank\": 76,\n \"name\": \"Guinea\",\n \"value\": \"13865.6910\",\n \"pop2021\": \"13497.2440\",\n \"GrowthRate\": \"1.0273\",\n \"area\": 245857,\n \"Density\": \"56.3974\"\n },\n {\n \"Rank\": 77,\n \"name\": \"Rwanda\",\n \"value\": \"13600.4640\",\n \"pop2021\": \"13276.5130\",\n \"GrowthRate\": \"1.0244\",\n \"area\": 26338,\n \"Density\": \"516.3818\"\n },\n {\n \"Rank\": 78,\n \"name\": \"Benin\",\n \"value\": \"12784.7260\",\n \"pop2021\": \"12451.0400\",\n \"GrowthRate\": \"1.0268\",\n \"area\": 112622,\n \"Density\": \"113.5189\"\n },\n {\n \"Rank\": 79,\n \"name\": \"Burundi\",\n \"value\": \"12624.8400\",\n \"pop2021\": \"12255.4330\",\n \"GrowthRate\": \"1.0301\",\n \"area\": 27834,\n \"Density\": \"453.5762\"\n },\n {\n \"Rank\": 80,\n \"name\": \"Tunisia\",\n \"value\": \"12046.6560\",\n \"pop2021\": \"11935.7660\",\n \"GrowthRate\": \"1.0093\",\n \"area\": 163610,\n \"Density\": \"73.6303\"\n },\n {\n \"Rank\": 81,\n \"name\": \"Bolivia\",\n \"value\": \"11992.6560\",\n \"pop2021\": \"11832.9400\",\n \"GrowthRate\": \"1.0135\",\n \"area\": 1098581,\n \"Density\": \"10.9165\"\n },\n {\n \"Rank\": 82,\n \"name\": \"Haiti\",\n \"value\": \"11680.2830\",\n \"pop2021\": \"11541.6850\",\n \"GrowthRate\": \"1.0120\",\n \"area\": 27750,\n \"Density\": \"420.9111\"\n },\n {\n \"Rank\": 83,\n \"name\": \"Belgium\",\n \"value\": \"11668.2780\",\n \"pop2021\": \"11632.3260\",\n \"GrowthRate\": \"1.0031\",\n \"area\": 30528,\n \"Density\": \"382.2156\"\n },\n {\n \"Rank\": 84,\n \"name\": \"South Sudan\",\n \"value\": \"11618.5110\",\n \"pop2021\": \"11381.3780\",\n \"GrowthRate\": \"1.0208\",\n \"area\": 619745,\n \"Density\": \"18.7472\"\n },\n {\n \"Rank\": 85,\n \"name\": \"Cuba\",\n \"value\": \"11305.6520\",\n \"pop2021\": \"11317.5050\",\n \"GrowthRate\": \"0.9990\",\n \"area\": 109884,\n \"Density\": \"102.8872\"\n },\n {\n \"Rank\": 86,\n \"name\": \"Dominican Republic\",\n \"value\": \"11056.3700\",\n \"pop2021\": \"10953.7030\",\n \"GrowthRate\": \"1.0094\",\n \"area\": 48671,\n \"Density\": \"227.1655\"\n },\n {\n \"Rank\": 87,\n \"name\": \"Czech Republic\",\n \"value\": \"10736.7840\",\n \"pop2021\": \"10724.5550\",\n \"GrowthRate\": \"1.0011\",\n \"area\": 78865,\n \"Density\": \"136.1413\"\n },\n {\n \"Rank\": 88,\n \"name\": \"Greece\",\n \"value\": \"10316.6370\",\n \"pop2021\": \"10370.7440\",\n \"GrowthRate\": \"0.9948\",\n \"area\": 131990,\n \"Density\": \"78.1623\"\n },\n {\n \"Rank\": 89,\n \"name\": \"Jordan\",\n \"value\": \"10300.8690\",\n \"pop2021\": \"10269.0210\",\n \"GrowthRate\": \"1.0031\",\n \"area\": 89342,\n \"Density\": \"115.2970\"\n },\n {\n \"Rank\": 90,\n \"name\": \"Azerbaijan\",\n \"value\": \"10300.2050\",\n \"pop2021\": \"10223.3420\",\n \"GrowthRate\": \"1.0075\",\n \"area\": 86600,\n \"Density\": \"118.9400\"\n },\n {\n \"Rank\": 91,\n \"name\": \"Honduras\",\n \"value\": \"10221.2470\",\n \"pop2021\": \"10062.9910\",\n \"GrowthRate\": \"1.0157\",\n \"area\": 112492,\n \"Density\": \"90.8620\"\n },\n {\n \"Rank\": 92,\n \"name\": \"Sweden\",\n \"value\": \"10218.9710\",\n \"pop2021\": \"10160.1690\",\n \"GrowthRate\": \"1.0058\",\n \"area\": 450295,\n \"Density\": \"22.6939\"\n },\n {\n \"Rank\": 93,\n \"name\": \"Portugal\",\n \"value\": \"10140.5700\",\n \"pop2021\": \"10167.9250\",\n \"GrowthRate\": \"0.9973\",\n \"area\": 92090,\n \"Density\": \"110.1159\"\n },\n {\n \"Rank\": 94,\n \"name\": \"United Arab Emirates\",\n \"value\": \"10081.7850\",\n \"pop2021\": \"9991.0890\",\n \"GrowthRate\": \"1.0091\",\n \"area\": 83600,\n \"Density\": \"120.5955\"\n },\n {\n \"Rank\": 95,\n \"name\": \"Tajikistan\",\n \"value\": \"9957.4640\",\n \"pop2021\": \"9749.6270\",\n \"GrowthRate\": \"1.0213\",\n \"area\": 143100,\n \"Density\": \"69.5840\"\n },\n {\n \"Rank\": 96,\n \"name\": \"Hungary\",\n \"value\": \"9606.2590\",\n \"pop2021\": \"9634.1640\",\n \"GrowthRate\": \"0.9971\",\n \"area\": 93028,\n \"Density\": \"103.2620\"\n },\n {\n \"Rank\": 97,\n \"name\": \"Belarus\",\n \"value\": \"9432.8000\",\n \"pop2021\": \"9442.8620\",\n \"GrowthRate\": \"0.9989\",\n \"area\": 207600,\n \"Density\": \"45.4374\"\n },\n {\n \"Rank\": 98,\n \"name\": \"Papua New Guinea\",\n \"value\": \"9292.1690\",\n \"pop2021\": \"9119.0100\",\n \"GrowthRate\": \"1.0190\",\n \"area\": 462840,\n \"Density\": \"20.0764\"\n },\n {\n \"Rank\": 99,\n \"name\": \"Austria\",\n \"value\": \"9066.7100\",\n \"pop2021\": \"9043.0700\",\n \"GrowthRate\": \"1.0026\",\n \"area\": 83871,\n \"Density\": \"108.1030\"\n },\n {\n \"Rank\": 100,\n \"name\": \"Israel\",\n \"value\": \"8922.8920\",\n \"pop2021\": \"8789.7740\",\n \"GrowthRate\": \"1.0151\",\n \"area\": 20770,\n \"Density\": \"429.6048\"\n },\n {\n \"Rank\": 101,\n \"name\": \"Switzerland\",\n \"value\": \"8773.6370\",\n \"pop2021\": \"8715.4940\",\n \"GrowthRate\": \"1.0067\",\n \"area\": 41284,\n \"Density\": \"212.5191\"\n },\n {\n \"Rank\": 102,\n \"name\": \"Togo\",\n \"value\": \"8680.8370\",\n \"pop2021\": \"8478.2500\",\n \"GrowthRate\": \"1.0239\",\n \"area\": 56785,\n \"Density\": \"152.8720\"\n },\n {\n \"Rank\": 103,\n \"name\": \"Serbia\",\n \"value\": \"8653.0160\",\n \"pop2021\": \"8697.5500\",\n \"GrowthRate\": \"0.9949\",\n \"area\": 88361,\n \"Density\": \"97.9280\"\n },\n {\n \"Rank\": 104,\n \"name\": \"Sierra Leone\",\n \"value\": \"8306.4360\",\n \"pop2021\": \"8141.3430\",\n \"GrowthRate\": \"1.0203\",\n \"area\": 71740,\n \"Density\": \"115.7853\"\n },\n {\n \"Rank\": 105,\n \"name\": \"Hong Kong\",\n \"value\": \"7604.2990\",\n \"pop2021\": \"7552.8100\",\n \"GrowthRate\": \"1.0068\",\n \"area\": 1104,\n \"Density\": \"6887.9520\"\n },\n {\n \"Rank\": 106,\n \"name\": \"Laos\",\n \"value\": \"7481.0230\",\n \"pop2021\": \"7379.3580\",\n \"GrowthRate\": \"1.0138\",\n \"area\": 236800,\n \"Density\": \"31.5922\"\n },\n {\n \"Rank\": 107,\n \"name\": \"Paraguay\",\n \"value\": \"7305.8430\",\n \"pop2021\": \"7219.6380\",\n \"GrowthRate\": \"1.0119\",\n \"area\": 406752,\n \"Density\": \"17.9614\"\n },\n {\n \"Rank\": 108,\n \"name\": \"Libya\",\n \"value\": \"7040.7450\",\n \"pop2021\": \"6958.5320\",\n \"GrowthRate\": \"1.0118\",\n \"area\": 1759540,\n \"Density\": \"4.0015\"\n },\n {\n \"Rank\": 109,\n \"name\": \"Bulgaria\",\n \"value\": \"6844.5970\",\n \"pop2021\": \"6896.6630\",\n \"GrowthRate\": \"0.9925\",\n \"area\": 110879,\n \"Density\": \"61.7303\"\n },\n {\n \"Rank\": 110,\n \"name\": \"Nicaragua\",\n \"value\": \"6779.1000\",\n \"pop2021\": \"6702.3850\",\n \"GrowthRate\": \"1.0114\",\n \"area\": 130373,\n \"Density\": \"51.9977\"\n },\n {\n \"Rank\": 111,\n \"name\": \"Kyrgyzstan\",\n \"value\": \"6728.2710\",\n \"pop2021\": \"6628.3560\",\n \"GrowthRate\": \"1.0151\",\n \"area\": 199951,\n \"Density\": \"33.6496\"\n },\n {\n \"Rank\": 112,\n \"name\": \"Lebanon\",\n \"value\": \"6684.8490\",\n \"pop2021\": \"6769.1460\",\n \"GrowthRate\": \"0.9875\",\n \"area\": 10452,\n \"Density\": \"639.5761\"\n },\n {\n \"Rank\": 113,\n \"name\": \"El Salvador\",\n \"value\": \"6550.3890\",\n \"pop2021\": \"6518.4990\",\n \"GrowthRate\": \"1.0049\",\n \"area\": 21041,\n \"Density\": \"311.3155\"\n },\n {\n \"Rank\": 114,\n \"name\": \"Turkmenistan\",\n \"value\": \"6201.9430\",\n \"pop2021\": \"6117.9240\",\n \"GrowthRate\": \"1.0137\",\n \"area\": 488100,\n \"Density\": \"12.7063\"\n },\n {\n \"Rank\": 115,\n \"name\": \"Singapore\",\n \"value\": \"5943.5460\",\n \"pop2021\": \"5896.6860\",\n \"GrowthRate\": \"1.0079\",\n \"area\": 710,\n \"Density\": \"8371.1915\"\n },\n {\n \"Rank\": 116,\n \"name\": \"Denmark\",\n \"value\": \"5834.9500\",\n \"pop2021\": \"5813.2980\",\n \"GrowthRate\": \"1.0037\",\n \"area\": 43094,\n \"Density\": \"135.4005\"\n },\n {\n \"Rank\": 117,\n \"name\": \"Republic of the Congo\",\n \"value\": \"5797.8050\",\n \"pop2021\": \"5657.0130\",\n \"GrowthRate\": \"1.0249\",\n \"area\": 342000,\n \"Density\": \"16.9526\"\n },\n {\n \"Rank\": 118,\n \"name\": \"Finland\",\n \"value\": \"5554.9600\",\n \"pop2021\": \"5548.3600\",\n \"GrowthRate\": \"1.0012\",\n \"area\": 338424,\n \"Density\": \"16.4142\"\n },\n {\n \"Rank\": 119,\n \"name\": \"Norway\",\n \"value\": \"5511.3700\",\n \"pop2021\": \"5465.6300\",\n \"GrowthRate\": \"1.0084\",\n \"area\": 323802,\n \"Density\": \"17.0208\"\n },\n {\n \"Rank\": 120,\n \"name\": \"Scotland\",\n \"value\": \"5504.6507\",\n \"GrowthRate\": \"1.0035\",\n \"area\": 77933,\n \"Density\": \"70.6331\"\n },\n {\n \"Rank\": 121,\n \"name\": \"Slovakia\",\n \"value\": \"5460.1930\",\n \"pop2021\": \"5460.7210\",\n \"GrowthRate\": \"0.9999\",\n \"area\": 49037,\n \"Density\": \"111.3484\"\n },\n {\n \"Rank\": 122,\n \"name\": \"Palestine\",\n \"value\": \"5345.5410\",\n \"pop2021\": \"5222.7480\",\n \"GrowthRate\": \"1.0235\",\n \"area\": 6220,\n \"Density\": \"859.4117\"\n },\n {\n \"Rank\": 123,\n \"name\": \"Oman\",\n \"value\": \"5323.9930\",\n \"pop2021\": \"5223.3750\",\n \"GrowthRate\": \"1.0193\",\n \"area\": 309500,\n \"Density\": \"17.2019\"\n },\n {\n \"Rank\": 124,\n \"name\": \"Liberia\",\n \"value\": \"5305.1170\",\n \"pop2021\": \"5180.2030\",\n \"GrowthRate\": \"1.0241\",\n \"area\": 111369,\n \"Density\": \"47.6355\"\n },\n {\n \"Rank\": 125,\n \"name\": \"Costa Rica\",\n \"value\": \"5182.3540\",\n \"pop2021\": \"5139.0520\",\n \"GrowthRate\": \"1.0084\",\n \"area\": 51100,\n \"Density\": \"101.4159\"\n },\n {\n \"Rank\": 126,\n \"name\": \"Ireland\",\n \"value\": \"5020.1990\",\n \"pop2021\": \"4982.9070\",\n \"GrowthRate\": \"1.0075\",\n \"area\": 70273,\n \"Density\": \"71.4385\"\n },\n {\n \"Rank\": 127,\n \"name\": \"Central African Republic\",\n \"value\": \"5016.6780\",\n \"pop2021\": \"4919.9810\",\n \"GrowthRate\": \"1.0197\",\n \"area\": 622984,\n \"Density\": \"8.0527\"\n },\n {\n \"Rank\": 128,\n \"name\": \"Mauritania\",\n \"value\": \"4901.9810\",\n \"pop2021\": \"4775.1190\",\n \"GrowthRate\": \"1.0266\",\n \"area\": 1030700,\n \"Density\": \"4.7560\"\n },\n {\n \"Rank\": 129,\n \"name\": \"New Zealand\",\n \"value\": \"4898.2030\",\n \"pop2021\": \"4860.6430\",\n \"GrowthRate\": \"1.0077\",\n \"area\": 270467,\n \"Density\": \"18.1102\"\n },\n {\n \"Rank\": 130,\n \"name\": \"Panama\",\n \"value\": \"4446.9640\",\n \"pop2021\": \"4381.5790\",\n \"GrowthRate\": \"1.0149\",\n \"area\": 75417,\n \"Density\": \"58.9650\"\n },\n {\n \"Rank\": 131,\n \"name\": \"Kuwait\",\n \"value\": \"4380.3260\",\n \"pop2021\": \"4328.5500\",\n \"GrowthRate\": \"1.0120\",\n \"area\": 17818,\n \"Density\": \"245.8371\"\n },\n {\n \"Rank\": 132,\n \"name\": \"Croatia\",\n \"value\": \"4059.2860\",\n \"pop2021\": \"4081.6510\",\n \"GrowthRate\": \"0.9945\",\n \"area\": 56594,\n \"Density\": \"71.7264\"\n },\n {\n \"Rank\": 133,\n \"name\": \"Moldova\",\n \"value\": \"4013.1710\",\n \"pop2021\": \"4024.0190\",\n \"GrowthRate\": \"0.9973\",\n \"area\": 33846,\n \"Density\": \"118.5715\"\n },\n {\n \"Rank\": 134,\n \"name\": \"Georgia\",\n \"value\": \"3968.7380\",\n \"pop2021\": \"3979.7650\",\n \"GrowthRate\": \"0.9972\",\n \"area\": 69700,\n \"Density\": \"56.9403\"\n },\n {\n \"Rank\": 135,\n \"name\": \"Eritrea\",\n \"value\": \"3662.2440\",\n \"pop2021\": \"3601.4670\",\n \"GrowthRate\": \"1.0169\",\n \"area\": 117600,\n \"Density\": \"31.1415\"\n },\n {\n \"Rank\": 136,\n \"name\": \"Uruguay\",\n \"value\": \"3496.0160\",\n \"pop2021\": \"3485.1510\",\n \"GrowthRate\": \"1.0031\",\n \"area\": 181034,\n \"Density\": \"19.3114\"\n },\n {\n \"Rank\": 137,\n \"name\": \"Mongolia\",\n \"value\": \"3378.0780\",\n \"pop2021\": \"3329.2890\",\n \"GrowthRate\": \"1.0147\",\n \"area\": 1564110,\n \"Density\": \"2.1597\"\n },\n {\n \"Rank\": 138,\n \"name\": \"Bosnia and Herzegovina\",\n \"value\": \"3249.3170\",\n \"pop2021\": \"3263.4660\",\n \"GrowthRate\": \"0.9957\",\n \"area\": 51209,\n \"Density\": \"63.4521\"\n },\n {\n \"Rank\": 139,\n \"name\": \"Wales\",\n \"value\": \"3193.6653\",\n \"GrowthRate\": \"1.0038\",\n \"area\": 20779,\n \"Density\": \"153.6968\"\n },\n {\n \"Rank\": 140,\n \"name\": \"Jamaica\",\n \"value\": \"2985.0940\",\n \"pop2021\": \"2973.4630\",\n \"GrowthRate\": \"1.0039\",\n \"area\": 10991,\n \"Density\": \"271.5944\"\n },\n {\n \"Rank\": 141,\n \"name\": \"Qatar\",\n \"value\": \"2979.9150\",\n \"pop2021\": \"2930.5280\",\n \"GrowthRate\": \"1.0169\",\n \"area\": 11586,\n \"Density\": \"257.1996\"\n },\n {\n \"Rank\": 142,\n \"name\": \"Armenia\",\n \"value\": \"2971.9660\",\n \"pop2021\": \"2968.1270\",\n \"GrowthRate\": \"1.0013\",\n \"area\": 29743,\n \"Density\": \"99.9215\"\n },\n {\n \"Rank\": 143,\n \"name\": \"Albania\",\n \"value\": \"2866.3740\",\n \"pop2021\": \"2872.9330\",\n \"GrowthRate\": \"0.9977\",\n \"area\": 28748,\n \"Density\": \"99.7069\"\n },\n {\n \"Rank\": 144,\n \"name\": \"Puerto Rico\",\n \"value\": \"2829.8120\",\n \"pop2021\": \"2828.2550\",\n \"GrowthRate\": \"1.0006\",\n \"area\": 8870,\n \"Density\": \"319.0318\"\n },\n {\n \"Rank\": 145,\n \"name\": \"Lithuania\",\n \"value\": \"2661.7080\",\n \"pop2021\": \"2689.8620\",\n \"GrowthRate\": \"0.9895\",\n \"area\": 65300,\n \"Density\": \"40.7612\"\n },\n {\n \"Rank\": 146,\n \"name\": \"Namibia\",\n \"value\": \"2633.8740\",\n \"pop2021\": \"2587.3440\",\n \"GrowthRate\": \"1.0180\",\n \"area\": 825615,\n \"Density\": \"3.1902\"\n },\n {\n \"Rank\": 147,\n \"name\": \"Gambia\",\n \"value\": \"2558.4820\",\n \"pop2021\": \"2486.9450\",\n \"GrowthRate\": \"1.0288\",\n \"area\": 10689,\n \"Density\": \"239.3565\"\n },\n {\n \"Rank\": 148,\n \"name\": \"Botswana\",\n \"value\": \"2441.1620\",\n \"pop2021\": \"2397.2410\",\n \"GrowthRate\": \"1.0183\",\n \"area\": 582000,\n \"Density\": \"4.1944\"\n },\n {\n \"Rank\": 149,\n \"name\": \"Gabon\",\n \"value\": \"2331.5330\",\n \"pop2021\": \"2278.8250\",\n \"GrowthRate\": \"1.0231\",\n \"area\": 267668,\n \"Density\": \"8.7105\"\n },\n {\n \"Rank\": 150,\n \"name\": \"Lesotho\",\n \"value\": \"2175.6990\",\n \"pop2021\": \"2159.0790\",\n \"GrowthRate\": \"1.0077\",\n \"area\": 30355,\n \"Density\": \"71.6751\"\n },\n {\n \"Rank\": 151,\n \"name\": \"North Macedonia\",\n \"value\": \"2081.3040\",\n \"pop2021\": \"2082.6580\",\n \"GrowthRate\": \"0.9993\",\n \"area\": 25713,\n \"Density\": \"80.9436\"\n },\n {\n \"Rank\": 152,\n \"name\": \"Slovenia\",\n \"value\": \"2078.0340\",\n \"pop2021\": \"2078.7240\",\n \"GrowthRate\": \"0.9997\",\n \"area\": 20273,\n \"Density\": \"102.5025\"\n },\n {\n \"Rank\": 153,\n \"name\": \"Guinea-Bissau\",\n \"value\": \"2063.3670\",\n \"pop2021\": \"2015.4940\",\n \"GrowthRate\": \"1.0238\",\n \"area\": 36125,\n \"Density\": \"57.1174\"\n },\n {\n \"Rank\": 154,\n \"name\": \"Latvia\",\n \"value\": \"1848.8370\",\n \"pop2021\": \"1866.9420\",\n \"GrowthRate\": \"0.9903\",\n \"area\": 64559,\n \"Density\": \"28.6379\"\n },\n {\n \"Rank\": 155,\n \"name\": \"Kosovo\",\n \"value\": \"1802.2502\",\n \"GrowthRate\": \"1.0011\",\n \"area\": 10887,\n \"Density\": \"165.5415\"\n },\n {\n \"Rank\": 156,\n \"name\": \"Bahrain\",\n \"value\": \"1783.9830\",\n \"pop2021\": \"1748.2960\",\n \"GrowthRate\": \"1.0204\",\n \"area\": 765,\n \"Density\": \"2332.0039\"\n },\n {\n \"Rank\": 157,\n \"name\": \"Equatorial Guinea\",\n \"value\": \"1496.6620\",\n \"pop2021\": \"1449.8960\",\n \"GrowthRate\": \"1.0323\",\n \"area\": 28051,\n \"Density\": \"53.3550\"\n },\n {\n \"Rank\": 158,\n \"name\": \"Trinidad and Tobago\",\n \"value\": \"1406.5850\",\n \"pop2021\": \"1403.3750\",\n \"GrowthRate\": \"1.0023\",\n \"area\": 5130,\n \"Density\": \"274.1881\"\n },\n {\n \"Rank\": 159,\n \"name\": \"Timor-Leste\",\n \"value\": \"1369.4290\",\n \"pop2021\": \"1343.8730\",\n \"GrowthRate\": \"1.0190\",\n \"area\": 14874,\n \"Density\": \"92.0686\"\n },\n {\n \"Rank\": 160,\n \"name\": \"Estonia\",\n \"value\": \"1321.9100\",\n \"pop2021\": \"1325.1850\",\n \"GrowthRate\": \"0.9975\",\n \"area\": 45227,\n \"Density\": \"29.2283\"\n },\n {\n \"Rank\": 161,\n \"name\": \"Mauritius\",\n \"value\": \"1274.7270\",\n \"pop2021\": \"1273.4330\",\n \"GrowthRate\": \"1.0010\",\n \"area\": 2040,\n \"Density\": \"624.8662\"\n },\n {\n \"Rank\": 162,\n \"name\": \"Cyprus\",\n \"value\": \"1223.3870\",\n \"pop2021\": \"1215.5840\",\n \"GrowthRate\": \"1.0064\",\n \"area\": 9251,\n \"Density\": \"132.2438\"\n },\n {\n \"Rank\": 163,\n \"name\": \"Eswatini\",\n \"value\": \"1184.8170\",\n \"pop2021\": \"1172.3620\",\n \"GrowthRate\": \"1.0106\",\n \"area\": 17364,\n \"Density\": \"68.2341\"\n },\n {\n \"Rank\": 164,\n \"name\": \"Djibouti\",\n \"value\": \"1016.0970\",\n \"pop2021\": \"1002.1870\",\n \"GrowthRate\": \"1.0139\",\n \"area\": 23200,\n \"Density\": \"43.7973\"\n },\n {\n \"Rank\": 165,\n \"name\": \"Fiji\",\n \"value\": \"909.4660\",\n \"pop2021\": \"902.9060\",\n \"GrowthRate\": \"1.0073\",\n \"area\": 18272,\n \"Density\": \"49.7738\"\n },\n {\n \"Rank\": 166,\n \"name\": \"Reunion\",\n \"value\": \"908.0610\",\n \"pop2021\": \"901.6860\",\n \"GrowthRate\": \"1.0071\",\n \"area\": 2511,\n \"Density\": \"361.6332\"\n },\n {\n \"Rank\": 167,\n \"name\": \"Comoros\",\n \"value\": \"907.4190\",\n \"pop2021\": \"888.4510\",\n \"GrowthRate\": \"1.0213\",\n \"area\": 1862,\n \"Density\": \"487.3357\"\n },\n {\n \"Rank\": 168,\n \"name\": \"Guyana\",\n \"value\": \"794.0450\",\n \"pop2021\": \"790.3260\",\n \"GrowthRate\": \"1.0047\",\n \"area\": 214969,\n \"Density\": \"3.6938\"\n },\n {\n \"Rank\": 169,\n \"name\": \"Bhutan\",\n \"value\": \"787.9410\",\n \"pop2021\": \"779.8980\",\n \"GrowthRate\": \"1.0103\",\n \"area\": 38394,\n \"Density\": \"20.5225\"\n },\n {\n \"Rank\": 170,\n \"name\": \"Solomon Islands\",\n \"value\": \"721.1590\",\n \"pop2021\": \"703.9960\",\n \"GrowthRate\": \"1.0244\",\n \"area\": 28896,\n \"Density\": \"24.9571\"\n },\n {\n \"Rank\": 171,\n \"name\": \"Luxembourg\",\n \"value\": \"642.3710\",\n \"pop2021\": \"634.8140\",\n \"GrowthRate\": \"1.0119\",\n \"area\": 2586,\n \"Density\": \"248.4033\"\n },\n {\n \"Rank\": 172,\n \"name\": \"Montenegro\",\n \"value\": \"627.9500\",\n \"pop2021\": \"628.0530\",\n \"GrowthRate\": \"0.9998\",\n \"area\": 13812,\n \"Density\": \"45.4641\"\n },\n {\n \"Rank\": 173,\n \"name\": \"Western Sahara\",\n \"value\": \"626.1610\",\n \"pop2021\": \"611.8750\",\n \"GrowthRate\": \"1.0233\",\n \"area\": 266000,\n \"Density\": \"2.3540\"\n },\n {\n \"Rank\": 174,\n \"name\": \"Suriname\",\n \"value\": \"596.8310\",\n \"pop2021\": \"591.8000\",\n \"GrowthRate\": \"1.0085\",\n \"area\": 163820,\n \"Density\": \"3.6432\"\n },\n {\n \"Rank\": 175,\n \"name\": \"Cape Verde\",\n \"value\": \"567.6780\",\n \"pop2021\": \"561.8980\",\n \"GrowthRate\": \"1.0103\",\n \"area\": 4033,\n \"Density\": \"140.7582\"\n },\n {\n \"Rank\": 176,\n \"name\": \"Maldives\",\n \"value\": \"540.9850\",\n \"pop2021\": \"543.6170\",\n \"GrowthRate\": \"0.9952\",\n \"area\": 300,\n \"Density\": \"1803.2833\"\n },\n {\n \"Rank\": 177,\n \"name\": \"Brunei\",\n \"value\": \"445.4310\",\n \"pop2021\": \"441.5320\",\n \"GrowthRate\": \"1.0088\",\n \"area\": 5765,\n \"Density\": \"77.2647\"\n },\n {\n \"Rank\": 178,\n \"name\": \"Malta\",\n \"value\": \"444.0330\",\n \"pop2021\": \"442.7840\",\n \"GrowthRate\": \"1.0028\",\n \"area\": 316,\n \"Density\": \"1405.1677\"\n },\n {\n \"Rank\": 179,\n \"name\": \"Belize\",\n \"value\": \"412.1900\",\n \"pop2021\": \"404.9140\",\n \"GrowthRate\": \"1.0180\",\n \"area\": 22966,\n \"Density\": \"17.9478\"\n },\n {\n \"Rank\": 180,\n \"name\": \"Bahamas\",\n \"value\": \"400.5160\",\n \"pop2021\": \"396.9130\",\n \"GrowthRate\": \"1.0091\",\n \"area\": 13943,\n \"Density\": \"28.7252\"\n },\n {\n \"Rank\": 181,\n \"name\": \"Guadeloupe\",\n \"value\": \"399.7940\",\n \"pop2021\": \"400.0200\",\n \"GrowthRate\": \"0.9994\",\n \"area\": 1628,\n \"Density\": \"245.5737\"\n },\n {\n \"Rank\": 182,\n \"name\": \"Martinique\",\n \"value\": \"374.0870\",\n \"pop2021\": \"374.7450\",\n \"GrowthRate\": \"0.9982\",\n \"area\": 1128,\n \"Density\": \"331.6374\"\n },\n {\n \"Rank\": 183,\n \"name\": \"Iceland\",\n \"value\": \"345.3930\",\n \"pop2021\": \"343.3530\",\n \"GrowthRate\": \"1.0059\",\n \"area\": 103000,\n \"Density\": \"3.3533\"\n },\n {\n \"Rank\": 184,\n \"name\": \"Vanuatu\",\n \"value\": \"321.8320\",\n \"pop2021\": \"314.4640\",\n \"GrowthRate\": \"1.0234\",\n \"area\": 12189,\n \"Density\": \"26.4035\"\n },\n {\n \"Rank\": 185,\n \"name\": \"French Guiana\",\n \"value\": \"314.1690\",\n \"pop2021\": \"306.4480\",\n \"GrowthRate\": \"1.0252\",\n \"area\": 83534,\n \"Density\": \"3.7610\"\n },\n {\n \"Rank\": 186,\n \"name\": \"Barbados\",\n \"value\": \"288.0230\",\n \"pop2021\": \"287.7110\",\n \"GrowthRate\": \"1.0011\",\n \"area\": 430,\n \"Density\": \"669.8209\"\n },\n {\n \"Rank\": 187,\n \"name\": \"Mayotte\",\n \"value\": \"286.2590\",\n \"pop2021\": \"279.5150\",\n \"GrowthRate\": \"1.0241\",\n \"area\": 374,\n \"Density\": \"765.3984\"\n },\n {\n \"Rank\": 188,\n \"name\": \"Sao Tome and Principe\",\n \"value\": \"227.6790\",\n \"pop2021\": \"223.3680\",\n \"GrowthRate\": \"1.0193\",\n \"area\": 964,\n \"Density\": \"236.1815\"\n },\n {\n \"Rank\": 189,\n \"name\": \"Samoa\",\n \"value\": \"202.2390\",\n \"pop2021\": \"200.1490\",\n \"GrowthRate\": \"1.0104\",\n \"area\": 2842,\n \"Density\": \"71.1608\"\n },\n {\n \"Rank\": 190,\n \"name\": \"Saint Lucia\",\n \"value\": \"185.1130\",\n \"pop2021\": \"184.4000\",\n \"GrowthRate\": \"1.0039\",\n \"area\": 616,\n \"Density\": \"300.5081\"\n },\n {\n \"Rank\": 191,\n \"name\": \"Kiribati\",\n \"value\": \"123.4190\",\n \"pop2021\": \"121.3920\",\n \"GrowthRate\": \"1.0167\",\n \"area\": 811,\n \"Density\": \"152.1813\"\n },\n {\n \"Rank\": 192,\n \"name\": \"Micronesia\",\n \"value\": \"117.4890\",\n \"pop2021\": \"116.2540\",\n \"GrowthRate\": \"1.0106\",\n \"area\": 702,\n \"Density\": \"167.3632\"\n },\n {\n \"Rank\": 193,\n \"name\": \"Grenada\",\n \"value\": \"113.4750\",\n \"pop2021\": \"113.0210\",\n \"GrowthRate\": \"1.0040\",\n \"area\": 344,\n \"Density\": \"329.8692\"\n },\n {\n \"Rank\": 194,\n \"name\": \"Saint Vincent and the Grenadines\",\n \"value\": \"111.5510\",\n \"pop2021\": \"111.2630\",\n \"GrowthRate\": \"1.0026\",\n \"area\": 389,\n \"Density\": \"286.7635\"\n },\n {\n \"Rank\": 195,\n \"name\": \"Tonga\",\n \"value\": \"107.7490\",\n \"pop2021\": \"106.7600\",\n \"GrowthRate\": \"1.0093\",\n \"area\": 747,\n \"Density\": \"144.2423\"\n },\n {\n \"Rank\": 196,\n \"name\": \"Antigua and Barbuda\",\n \"value\": \"99.5090\",\n \"pop2021\": \"98.7310\",\n \"GrowthRate\": \"1.0079\",\n \"area\": 442,\n \"Density\": \"225.1335\"\n },\n {\n \"Rank\": 197,\n \"name\": \"Seychelles\",\n \"value\": \"99.4260\",\n \"pop2021\": \"98.9080\",\n \"GrowthRate\": \"1.0052\",\n \"area\": 452,\n \"Density\": \"219.9690\"\n },\n {\n \"Rank\": 198,\n \"name\": \"Andorra\",\n \"value\": \"77.4630\",\n \"pop2021\": \"77.3550\",\n \"GrowthRate\": \"1.0014\",\n \"area\": 468,\n \"Density\": \"165.5192\"\n },\n {\n \"Rank\": 199,\n \"name\": \"Dominica\",\n \"value\": \"72.3440\",\n \"pop2021\": \"72.1670\",\n \"GrowthRate\": \"1.0025\",\n \"area\": 751,\n \"Density\": \"96.3302\"\n },\n {\n \"Rank\": 200,\n \"name\": \"Marshall Islands\",\n \"value\": \"60.0570\",\n \"pop2021\": \"59.6100\",\n \"GrowthRate\": \"1.0075\",\n \"area\": 181,\n \"Density\": \"331.8066\"\n },\n {\n \"Rank\": 201,\n \"name\": \"Greenland\",\n \"value\": \"56.9730\",\n \"pop2021\": \"56.8770\",\n \"GrowthRate\": \"1.0017\",\n \"area\": 2166086,\n \"Density\": \"0.0263\"\n },\n {\n \"Rank\": 202,\n \"name\": \"Saint Kitts and Nevis\",\n \"value\": \"53.8710\",\n \"pop2021\": \"53.5440\",\n \"GrowthRate\": \"1.0061\",\n \"area\": 261,\n \"Density\": \"206.4023\"\n },\n {\n \"Rank\": 203,\n \"name\": \"Monaco\",\n \"value\": \"39.7830\",\n \"pop2021\": \"39.5110\",\n \"GrowthRate\": \"1.0069\",\n \"area\": 2,\n \"Density\": \"19891.5000\"\n },\n {\n \"Rank\": 204,\n \"name\": \"Liechtenstein\",\n \"value\": \"38.3870\",\n \"pop2021\": \"38.2500\",\n \"GrowthRate\": \"1.0036\",\n \"area\": 160,\n \"Density\": \"239.9187\"\n },\n {\n \"Rank\": 205,\n \"name\": \"San Marino\",\n \"value\": \"34.0850\",\n \"pop2021\": \"34.0170\",\n \"GrowthRate\": \"1.0020\",\n \"area\": 61,\n \"Density\": \"558.7705\"\n },\n {\n \"Rank\": 206,\n \"name\": \"Palau\",\n \"value\": \"18.2330\",\n \"pop2021\": \"18.1690\",\n \"GrowthRate\": \"1.0035\",\n \"area\": 459,\n \"Density\": \"39.7233\"\n },\n {\n \"Rank\": 207,\n \"name\": \"Tuvalu\",\n \"value\": \"12.0660\",\n \"pop2021\": \"11.9310\",\n \"GrowthRate\": \"1.0113\",\n \"area\": 26,\n \"Density\": \"464.0769\"\n },\n {\n \"Rank\": 208,\n \"name\": \"Nauru\",\n \"value\": \"10.9030\",\n \"pop2021\": \"10.8760\",\n \"GrowthRate\": \"1.0025\",\n \"area\": 21,\n \"Density\": \"519.1905\"\n },\n {\n \"Rank\": 209,\n \"name\": \"Vatican City\",\n \"value\": \"0.7990\",\n \"pop2021\": \"0.8000\",\n \"GrowthRate\": \"0.9988\",\n \"area\": 1,\n \"Density\": 799\n }\n]\n\nconst result = {\n ...frame,\n fields: frame.fields.map((field) => {\n if (field.name === 'Value') {\n return ({\n ...field,\n values: population.map(p => p.value)\n })\n }\n return ({\n ...field,\n values: population.map(p => p.name)\n })\n }\n )\n}\n\nreturn Promise.resolve(result);",
+ "valuesEditor": "custom"
+ }
+ }
+ },
+ "refId": "A"
+ }
+ ],
+ "title": "Geo/Map",
+ "type": "volkovlabs-echarts-panel"
+ }
+ ],
+ "refresh": "",
+ "schemaVersion": 39,
+ "tags": ["business"],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-6h",
+ "to": "now"
+ },
+ "timepicker": {},
+ "timezone": "browser",
+ "title": "Business Charts",
+ "uid": "edtmwjirtfny8d",
+ "version": 2,
+ "weekStart": ""
+}
diff --git a/demo.volkovlabs.io/home.json b/demo.volkovlabs.io/home.json
new file mode 100644
index 0000000..0eb2fcf
--- /dev/null
+++ b/demo.volkovlabs.io/home.json
@@ -0,0 +1,647 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": {
+ "type": "grafana",
+ "uid": "-- Grafana --"
+ },
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "fiscalYearStartMonth": 0,
+ "graphTooltip": 0,
+ "links": [],
+ "panels": [
+ {
+ "datasource": {
+ "default": true,
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 14,
+ "x": 0,
+ "y": 0
+ },
+ "id": 5,
+ "options": {
+ "afterRender": "",
+ "content": "",
+ "contentPartials": [],
+ "defaultContent": "# Business Suite\n\nThe Business Suite is a collection of open source plugins created and actively maintained by Volkov Labs.\n\nThe collection aims to solve the most frequent business tasks by providing an intuitive interface with detailed written [documentation](https://volkovlabs.io/plugins/), examples, and video tutorials.\n\n- Designed specifically for users focused on the business side of the process.\n- Provides solutions for wide spectrum of business requirements.\n- Open source.\n\n##\n## Support\nVolkov Labs actively supports and maintains all these plugins by doing the following:\n\n- Ensure the latest plugin versions are always compatible with the latest Grafana release.\n- Helping the community with GitHub requests.\n- Answer questions posted in our YouTube videos.\n- Keeping the plugin documentation up to date.\n- Post blogs with detailed instructions for the most sought-after use cases.\n- Sharing functional solutions with code snippets.",
+ "editor": {
+ "format": "auto",
+ "language": "markdown"
+ },
+ "editors": ["default"],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "data",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "frame": {
+ "fields": [],
+ "meta": {},
+ "name": ""
+ },
+ "refId": "A"
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 10,
+ "x": 14,
+ "y": 0
+ },
+ "id": 6,
+ "options": {
+ "afterRender": "import('https://esm.sh/youtube-player').then(({ default: YouTubePlayer }) => {\n const videoList = [\"K1NHBV5e6VE\", \"Go6tdEh96JQ\", \"dk8ht8G67JY\"];\n const randomVideoId = videoList[Math.floor(Math.random() * videoList.length)];\n\n YouTubePlayer('player', { videoId: randomVideoId });\n})",
+ "content": "",
+ "contentPartials": [],
+ "defaultContent": "The query didn't return any results.",
+ "editor": {
+ "format": "auto",
+ "language": "html"
+ },
+ "editors": ["afterRender"],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "everyRow",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "frame": {
+ "fields": [
+ {
+ "config": {},
+ "name": "URL",
+ "type": "string",
+ "values": ["https://www.youtube.com/watch?v=CvLqyY2fQfo"]
+ }
+ ],
+ "meta": {},
+ "name": "YouTube"
+ },
+ "refId": "A"
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "custom": {
+ "thresholdsStyle": {
+ "mode": "color",
+ "thresholds": []
+ }
+ },
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 24,
+ "x": 0,
+ "y": 10
+ },
+ "id": 4,
+ "options": {
+ "alwaysVisibleFilter": false,
+ "autoScroll": false,
+ "collapsedByDefault": false,
+ "customValue": false,
+ "dashboardVariable": "dashboard",
+ "displayMode": "button",
+ "emptyValue": false,
+ "favorites": {
+ "addQuery": {},
+ "datasource": "",
+ "deleteQuery": {},
+ "enabled": false,
+ "getQuery": {},
+ "storage": "browser"
+ },
+ "filter": false,
+ "groupSelection": false,
+ "header": true,
+ "padding": 10,
+ "persistent": false,
+ "saveSelectedGroup": false,
+ "saveSelectedGroupKey": "",
+ "showGroupTotal": false,
+ "showLabel": false,
+ "showName": false,
+ "showResetButton": false,
+ "showTotal": false,
+ "statusSort": false,
+ "sticky": false,
+ "tabsInOrder": true,
+ "variable": "plugin"
+ },
+ "pluginVersion": "3.4.0",
+ "type": "volkovlabs-variable-panel"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-json-datasource",
+ "uid": "fdtmkexmvk8owc"
+ },
+ "description": "Display events and set time range.",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "links": [
+ {
+ "title": "Grafana Catalog",
+ "url": "${__data.fields.url}"
+ }
+ ],
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 1000
+ },
+ {
+ "color": "#EAB839",
+ "value": 5000
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 14,
+ "w": 12,
+ "x": 0,
+ "y": 12
+ },
+ "id": 1,
+ "links": [
+ {
+ "title": "Business Calendar",
+ "url": "/d/cdtmkqipv7mdcc/business-calendar"
+ }
+ ],
+ "options": {
+ "annotations": false,
+ "annotationsLimit": 100,
+ "annotationsType": "",
+ "colors": "event",
+ "dateFormat": "inherit",
+ "defaultView": "month",
+ "displayFields": ["description", "labels", "links", "location", "text", "time"],
+ "labelFields": ["Slug", "Signature"],
+ "locationField": "Version",
+ "locationLabel": "Version:",
+ "preformattedDescription": false,
+ "quickLinks": false,
+ "scrollToTime": {
+ "hours": 0,
+ "minutes": 0
+ },
+ "showEventTooltip": true,
+ "showMonthTime": false,
+ "textField": "Name",
+ "timeField": "Updated At",
+ "timeRangeType": "default",
+ "views": ["day", "week", "work_week", "month", "year", "agenda"]
+ },
+ "pluginVersion": "3.6.0",
+ "targets": [
+ {
+ "cacheDurationSeconds": 300,
+ "datasource": {
+ "type": "marcusolsson-json-datasource",
+ "uid": "fdtmkexmvk8owc"
+ },
+ "fields": [
+ {
+ "jsonPath": "$.items[*].name",
+ "name": "Name"
+ },
+ {
+ "jsonPath": "$.items[*].slug",
+ "language": "jsonpath",
+ "name": "Slug"
+ },
+ {
+ "jsonPath": "$.items[*].typeName",
+ "language": "jsonpath",
+ "name": "Type"
+ },
+ {
+ "jsonPath": "$.items[*].version",
+ "language": "jsonpath",
+ "name": "Version"
+ },
+ {
+ "jsonPath": "$.items[*].downloads",
+ "language": "jsonpath",
+ "name": "Downloads"
+ },
+ {
+ "jsonPath": "$.items[*].description",
+ "language": "jsonpath",
+ "name": "Description"
+ },
+ {
+ "jsonPath": "$.items[*].signatureType",
+ "language": "jsonpath",
+ "name": "Signature"
+ },
+ {
+ "jsonPath": "$.items[*].orgName",
+ "language": "jsonpath",
+ "name": "Organization"
+ },
+ {
+ "jsonPath": "$.items[*].createdAt",
+ "language": "jsonpath",
+ "name": "Created At"
+ },
+ {
+ "jsonPath": "$.items[*].updatedAt",
+ "language": "jsonpath",
+ "name": "Updated At"
+ },
+ {
+ "jsonPath": "$.items[*].url",
+ "language": "jsonpath",
+ "name": "URL"
+ }
+ ],
+ "method": "GET",
+ "queryParams": "",
+ "refId": "A",
+ "urlPath": "/"
+ }
+ ],
+ "title": "Business Calendar",
+ "type": "marcusolsson-calendar-panel"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "description": "Powerful visualizations powered by Apache ECharts.",
+ "gridPos": {
+ "h": 14,
+ "w": 12,
+ "x": 12,
+ "y": 12
+ },
+ "id": 2,
+ "links": [
+ {
+ "title": "Business Charts",
+ "url": "/d/edtmwjirtfny8d/business-charts"
+ }
+ ],
+ "options": {
+ "baidu": {
+ "callback": "bmapReady",
+ "key": ""
+ },
+ "editor": {
+ "format": "auto",
+ "height": 600
+ },
+ "editorMode": "visual",
+ "gaode": {
+ "key": "",
+ "plugin": "AMap.Scale,AMap.ToolBar"
+ },
+ "getOption": "",
+ "google": {
+ "callback": "gmapReady",
+ "key": ""
+ },
+ "map": "json",
+ "renderer": "canvas",
+ "themeEditor": {
+ "config": "{}",
+ "height": 400,
+ "name": "default"
+ },
+ "visualEditor": {
+ "code": "return {\n dataset: {\n source: context.editor.dataset.source,\n },\n tooltip: {\n trigger: 'item'\n },\n series: [\n {\n name: 'Business Suite',\n type: 'pie',\n radius: ['20%', '75%'],\n center: ['50%', '50%'],\n roseType: 'area',\n itemStyle: {\n borderRadius: 8\n },\n }\n ]\n}\n",
+ "codeHeight": 600,
+ "dataset": [
+ {
+ "name": "Value",
+ "source": "A"
+ },
+ {
+ "name": "Name",
+ "source": "A"
+ }
+ ],
+ "series": []
+ }
+ },
+ "pluginVersion": "6.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "frame": {
+ "fields": [
+ {
+ "config": {},
+ "name": "Value",
+ "type": "number",
+ "values": []
+ },
+ {
+ "config": {},
+ "name": "Name",
+ "type": "string",
+ "values": []
+ }
+ ],
+ "meta": {
+ "custom": {
+ "customCode": "const names = ['Business Calendar', 'Business Charts', 'Business Forms', 'Business Input',\n 'Business Media', 'Business News', 'Business Satellite', 'Business Table', 'Business Text',\n 'Business Variable'];\nconst values = [40, 38, 36, 32, 30, 28, 22, 18, 12, 8];\n\nconst result = {\n ...frame,\n fields: frame.fields.map((field) => {\n if (field.name === 'Name') {\n return ({\n ...field,\n values: names\n })\n }\n\n return ({\n ...field,\n values\n })\n }\n )\n}\n\nreturn Promise.resolve(result);",
+ "valuesEditor": "custom"
+ }
+ },
+ "name": "Pie"
+ },
+ "refId": "A"
+ }
+ ],
+ "title": "Business Charts",
+ "type": "volkovlabs-echarts-panel"
+ },
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "rZAdZdf82"
+ },
+ "description": "Visualize RSS/Atom feeds.",
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 14,
+ "w": 12,
+ "x": 0,
+ "y": 26
+ },
+ "id": 3,
+ "links": [
+ {
+ "title": "Business News",
+ "url": "/d/ddtpy13k0obggc/business-news"
+ }
+ ],
+ "options": {
+ "afterRender": "",
+ "content": "\n\n\n{{{media:group:media:description}}} | \n\n | \n
\n\n{{date updated 'MMM, DD YYYY'}} by {{author}} | \n
",
+ "contentPartials": [],
+ "defaultContent": "The query didn't return any results.",
+ "editor": {
+ "format": "auto",
+ "language": "markdown"
+ },
+ "editors": [],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "everyRow",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "rZAdZdf82"
+ },
+ "dateField": "",
+ "feedType": "items",
+ "params": {
+ "channel_id": "UCQadniwbukI6ZmTN2oTTb-g"
+ },
+ "refId": "A"
+ }
+ ],
+ "title": "Business News",
+ "transformations": [
+ {
+ "id": "convertFieldType",
+ "options": {
+ "conversions": [],
+ "fields": {}
+ }
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ }
+ ],
+ "refresh": "",
+ "schemaVersion": 39,
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "current": {
+ "selected": false,
+ "text": "Business Suite",
+ "value": "business-suite"
+ },
+ "hide": 2,
+ "includeAll": false,
+ "label": "Plugin",
+ "multi": false,
+ "name": "plugin",
+ "options": [
+ {
+ "selected": true,
+ "text": "Business Suite",
+ "value": "business-suite"
+ },
+ {
+ "selected": false,
+ "text": "Business Calendar",
+ "value": "business-calendar"
+ },
+ {
+ "selected": false,
+ "text": "Business Charts",
+ "value": "business-charts"
+ },
+ {
+ "selected": false,
+ "text": "Business News",
+ "value": "business-news"
+ }
+ ],
+ "query": "Business Suite : business-suite, Business Calendar : business-calendar, Business Charts : business-charts, Business News : business-news",
+ "skipUrlSync": false,
+ "type": "custom"
+ },
+ {
+ "current": {
+ "selected": false,
+ "text": "fdtmkjc238a2oe",
+ "value": "fdtmkjc238a2oe"
+ },
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "definition": "",
+ "hide": 2,
+ "includeAll": false,
+ "label": "Dashboard",
+ "multi": false,
+ "name": "dashboard",
+ "options": [],
+ "query": {
+ "frame": {
+ "fields": [
+ {
+ "config": {},
+ "name": "Id",
+ "type": "string",
+ "values": []
+ }
+ ],
+ "meta": {
+ "custom": {
+ "customCode": "let id = 'fdtmkjc238a2oe';\n\nswitch (`${plugin}`) {\n case 'business-calendar':\n id = 'cdtmkqipv7mdcc';\n break;\n case 'business-charts':\n id = 'edtmwjirtfny8d';\n break;\n case 'business-news':\n id = 'ddtpy13k0obggc';\n break;\n};\n\nconst result = {\n ...frame,\n fields: frame.fields.map((field) => ({\n ...field,\n values: [id]\n }))\n}\n\nreturn Promise.resolve(result);",
+ "valuesEditor": "custom"
+ }
+ },
+ "name": "Dashboard"
+ }
+ },
+ "refresh": 1,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "type": "query"
+ }
+ ]
+ },
+ "time": {
+ "from": "now-7d",
+ "to": "now"
+ },
+ "timepicker": {},
+ "timezone": "browser",
+ "title": "Business Suite",
+ "uid": "fdtmkjc238a2oe",
+ "version": 8,
+ "weekStart": ""
+}
diff --git a/demo.volkovlabs.io/news.json b/demo.volkovlabs.io/news.json
new file mode 100644
index 0000000..852ccd8
--- /dev/null
+++ b/demo.volkovlabs.io/news.json
@@ -0,0 +1,728 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": {
+ "type": "grafana",
+ "uid": "-- Grafana --"
+ },
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "fiscalYearStartMonth": 0,
+ "graphTooltip": 0,
+ "links": [
+ {
+ "asDropdown": false,
+ "icon": "external link",
+ "includeVars": false,
+ "keepTime": false,
+ "tags": ["business"],
+ "targetBlank": false,
+ "title": "Business Suite",
+ "tooltip": "",
+ "type": "dashboards",
+ "url": ""
+ }
+ ],
+ "panels": [
+ {
+ "datasource": {
+ "type": "yesoreyeram-infinity-datasource",
+ "uid": "edtmni4c13i80c"
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 14,
+ "x": 0,
+ "y": 0
+ },
+ "id": 5,
+ "options": {
+ "code": {
+ "language": "plaintext",
+ "showLineNumbers": false,
+ "showMiniMap": false
+ },
+ "content": "# Business News\n\nThe Business News data source is a plugin for Grafana that retrieves RSS/Atom feeds and allows visualizing them using Business Text and other panels.\n\n## Requirements\n\n- Business News Data Source 4.X requires **Grafana 10** or **Grafana 11**.\n- RSS/Atom Data Source 3.X requires **Grafana 9** or **Grafana 10**.\n- RSS/Atom Data Source 2.X requires **Grafana 8.5** or **Grafana 9**.\n- RSS/Atom Data Source 1.X requires **Grafana 8**.\n\n## Getting Started\n\nThe Business News data source can be installed from the [Grafana Catalog](https://grafana.com/grafana/plugins/volkovlabs-rss-datasource/) or utilizing the Grafana command line tool.\n\nFor the latter, please use the following command.\n\n```bash\ngrafana-cli plugins install volkovlabs-rss-datasource\n```\n\n## Highlights\n\n- Supports RSS 2.0, RSS 1.0 and Atom.\n- Works with Dynamic Text visualization panel.\n- Returns Channel (Feed) data, Items (Entries) or both as separate data frames.\n- Extract and parse as additional fields:\n - Image from Meta.\n - H4 and Image from the Encoded content.\n - Media:Group for YouTube.\n- Filter items/entries based on the selected Time Range.\n- Allows specifying Query parameters with dashboard variables.",
+ "mode": "markdown"
+ },
+ "pluginVersion": "11.2.0",
+ "type": "text"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 10,
+ "x": 14,
+ "y": 0
+ },
+ "id": 6,
+ "options": {
+ "afterRender": "import('https://esm.sh/youtube-player').then(({ default: YouTubePlayer }) => {\n const videoList = [\"RAxqS2hpWkg\"];\n const randomVideoId = videoList[Math.floor(Math.random() * videoList.length)];\n\n YouTubePlayer('player', { videoId: randomVideoId });\n})",
+ "content": "",
+ "contentPartials": [],
+ "defaultContent": "The query didn't return any results.",
+ "editor": {
+ "format": "auto",
+ "language": "html"
+ },
+ "editors": ["afterRender"],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "everyRow",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "frame": {
+ "fields": [
+ {
+ "config": {},
+ "name": "URL",
+ "type": "string",
+ "values": ["https://www.youtube.com/watch?v=CvLqyY2fQfo"]
+ }
+ ],
+ "meta": {},
+ "name": "YouTube"
+ },
+ "refId": "A"
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 10
+ },
+ "id": 7,
+ "panels": [],
+ "title": "Examples",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "custom": {
+ "thresholdsStyle": {
+ "mode": "color",
+ "thresholds": []
+ }
+ },
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 0,
+ "y": 11
+ },
+ "id": 9,
+ "options": {
+ "alwaysVisibleFilter": false,
+ "autoScroll": false,
+ "collapsedByDefault": false,
+ "customValue": false,
+ "displayMode": "button",
+ "emptyValue": false,
+ "favorites": {
+ "addQuery": {},
+ "datasource": "",
+ "deleteQuery": {},
+ "enabled": false,
+ "getQuery": {},
+ "storage": "browser"
+ },
+ "filter": false,
+ "groupSelection": false,
+ "header": true,
+ "padding": 10,
+ "persistent": false,
+ "saveSelectedGroup": false,
+ "saveSelectedGroupKey": "",
+ "showGroupTotal": false,
+ "showLabel": true,
+ "showName": false,
+ "showResetButton": false,
+ "showTotal": false,
+ "statusSort": false,
+ "sticky": false,
+ "tabsInOrder": true,
+ "variable": "channel"
+ },
+ "pluginVersion": "3.4.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "marcusolsson-static-datasource",
+ "uid": "4ytGZmF4k"
+ },
+ "refId": "A"
+ }
+ ],
+ "type": "volkovlabs-variable-panel"
+ },
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "edtq06kf808owe"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 12,
+ "w": 12,
+ "x": 12,
+ "y": 11
+ },
+ "id": 10,
+ "options": {
+ "afterRender": "",
+ "content": "\n \n | \n {{date pubDate 'MMM DD'}}\n {{description}}\n | \n
\n
",
+ "contentPartials": [],
+ "defaultContent": "The query didn't return any results.",
+ "editor": {
+ "format": "auto",
+ "language": "html"
+ },
+ "editors": [],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "everyRow",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "edtq06kf808owe"
+ },
+ "feedType": "items",
+ "refId": "A"
+ }
+ ],
+ "title": "Grafana Blog",
+ "transformations": [
+ {
+ "id": "convertFieldType",
+ "options": {
+ "conversions": [
+ {
+ "dateFormat": "ddd, DD MMM YYYY HH:mm:ss ZZ",
+ "destinationType": "time",
+ "targetField": "pubDate"
+ }
+ ],
+ "fields": {}
+ }
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "rZAdZdf82"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 0,
+ "y": 13
+ },
+ "id": 8,
+ "options": {
+ "afterRender": "",
+ "content": "\n \n \n \n {{date updated 'MMM, DD YYYY'}} by {{author}} \n {{{media:group:media:description}}} \n | \n \n \n | \n
\n
",
+ "contentPartials": [],
+ "defaultContent": "The query didn't return any results.",
+ "editor": {
+ "format": "auto",
+ "language": "html"
+ },
+ "editors": [],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "everyRow",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "rZAdZdf82"
+ },
+ "dateField": "updated",
+ "feedType": "items",
+ "params": {
+ "channel_id": "$channel"
+ },
+ "refId": "A"
+ }
+ ],
+ "title": "Volkov Labs YouTube",
+ "transformations": [
+ {
+ "id": "convertFieldType",
+ "options": {
+ "conversions": [
+ {
+ "dateFormat": "YYYY-MM-DD",
+ "destinationType": "time",
+ "targetField": "updated"
+ }
+ ],
+ "fields": {}
+ }
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "bdtq0slbq6tc0b"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 0,
+ "y": 23
+ },
+ "id": 11,
+ "options": {
+ "afterRender": "",
+ "content": "\n{{date dc:date 'MMM, DD YYYY'}} by {{{dc:creator}}}
\n{{{description}}}\n
",
+ "contentPartials": [],
+ "defaultContent": "The query didn't return any results.",
+ "editor": {
+ "format": "auto",
+ "language": "html"
+ },
+ "editors": [],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "everyRow",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "bdtq0slbq6tc0b"
+ },
+ "feedType": "items",
+ "refId": "A"
+ }
+ ],
+ "title": "National Vulnerability Database",
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "fdtq1w197sk5cc"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 11,
+ "w": 12,
+ "x": 12,
+ "y": 23
+ },
+ "id": 13,
+ "options": {
+ "afterRender": "",
+ "content": "\n{{date pubDate 'MMM DD'}}\n{{{description}}}",
+ "contentPartials": [],
+ "defaultContent": "The query didn't return any results.",
+ "editor": {
+ "format": "auto",
+ "language": "html"
+ },
+ "editors": [],
+ "externalStyles": [],
+ "helpers": "",
+ "renderMode": "everyRow",
+ "styles": "",
+ "wrap": true
+ },
+ "pluginVersion": "5.3.0",
+ "targets": [
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "fdtq1w197sk5cc"
+ },
+ "feedType": "items",
+ "refId": "A"
+ }
+ ],
+ "title": "Bitcoin News",
+ "transformations": [
+ {
+ "id": "convertFieldType",
+ "options": {
+ "conversions": [
+ {
+ "dateFormat": "ddd, DD MMM YYYY HH:mm:ss ZZ",
+ "destinationType": "time",
+ "targetField": "pubDate"
+ }
+ ],
+ "fields": {}
+ }
+ }
+ ],
+ "type": "marcusolsson-dynamictext-panel"
+ },
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "adtq1gclr3caoa"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "custom": {
+ "align": "auto",
+ "cellOptions": {
+ "type": "auto"
+ },
+ "inspect": false
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "pubDate"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 139
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "availability"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 168
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "tag"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 278
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Title"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 457
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 11,
+ "w": 24,
+ "x": 0,
+ "y": 34
+ },
+ "id": 12,
+ "options": {
+ "cellHeight": "sm",
+ "footer": {
+ "countRows": false,
+ "fields": "",
+ "reducer": ["sum"],
+ "show": false
+ },
+ "showHeader": true,
+ "sortBy": []
+ },
+ "pluginVersion": "11.1.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "volkovlabs-rss-datasource",
+ "uid": "adtq1gclr3caoa"
+ },
+ "feedType": "items",
+ "refId": "A"
+ }
+ ],
+ "title": "Grafana Cloud What's New",
+ "transformations": [
+ {
+ "id": "organize",
+ "options": {
+ "excludeByName": {
+ "content": true,
+ "description": false,
+ "documentationURL": true,
+ "guid": true,
+ "link": true,
+ "offering": true,
+ "selfManagedEdition": true
+ },
+ "includeByName": {},
+ "indexByName": {
+ "availability": 6,
+ "content": 4,
+ "description": 5,
+ "documentationURL": 7,
+ "guid": 3,
+ "link": 2,
+ "offering": 8,
+ "pubDate": 0,
+ "selfManagedEdition": 10,
+ "tag": 9,
+ "title": 1
+ },
+ "renameByName": {
+ "title": "Title"
+ }
+ }
+ },
+ {
+ "id": "convertFieldType",
+ "options": {
+ "conversions": [
+ {
+ "dateFormat": "ddd, DD MMM YYYY HH:mm:ss ZZ",
+ "destinationType": "time",
+ "targetField": "pubDate"
+ }
+ ],
+ "fields": {}
+ }
+ },
+ {
+ "id": "formatTime",
+ "options": {
+ "outputFormat": "YYYY-MM-DD",
+ "timeField": "pubDate",
+ "timezone": "browser",
+ "useTimezone": true
+ }
+ }
+ ],
+ "type": "table"
+ }
+ ],
+ "refresh": "",
+ "schemaVersion": 39,
+ "tags": ["business"],
+ "templating": {
+ "list": [
+ {
+ "current": {
+ "selected": false,
+ "text": "Volkov Labs",
+ "value": "UCQadniwbukI6ZmTN2oTTb-g"
+ },
+ "hide": 2,
+ "includeAll": false,
+ "label": "Channel",
+ "multi": false,
+ "name": "channel",
+ "options": [
+ {
+ "selected": true,
+ "text": "Volkov Labs",
+ "value": "UCQadniwbukI6ZmTN2oTTb-g"
+ },
+ {
+ "selected": false,
+ "text": "Grafana",
+ "value": "UCYCwgQAMm9sTJv0rgwQLCxw"
+ },
+ {
+ "selected": false,
+ "text": "Weather Channel",
+ "value": "UCGTUbwceCMibvpbd2NaIP7A"
+ }
+ ],
+ "query": "Volkov Labs : UCQadniwbukI6ZmTN2oTTb-g, Grafana : UCYCwgQAMm9sTJv0rgwQLCxw, Weather Channel : UCGTUbwceCMibvpbd2NaIP7A",
+ "queryValue": "",
+ "skipUrlSync": false,
+ "type": "custom"
+ }
+ ]
+ },
+ "time": {
+ "from": "now-1y",
+ "to": "now"
+ },
+ "timepicker": {},
+ "timezone": "browser",
+ "title": "Business News",
+ "uid": "ddtpy13k0obggc",
+ "version": 3,
+ "weekStart": ""
+}
diff --git a/docker-compose.yml b/docker-compose.yml
index 553ec15..79fc9cf 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -9,6 +9,11 @@ services:
- 3000:3000/tcp
environment:
- GF_DEFAULT_APP_MODE=development
+ - GF_INSTALL_PLUGINS=marcusolsson-static-datasource,marcusolsson-json-datasource,
+ volkovlabs-rss-datasource,yesoreyeram-infinity-datasource,volkovlabs-grapi-datasource,
+ volkovlabs-variable-panel,marcusolsson-calendar-panel,volkovlabs-echarts-panel,
+ marcusolsson-dynamictext-panel
volumes:
- ./dist:/var/lib/grafana/plugins/business-app
- ./provisioning:/etc/grafana/provisioning
+ - ./demo.volkovlabs.io:/etc/grafana/provisioning/dashboards/demo
diff --git a/provisioning/dashboards/business.json b/provisioning/dashboards/business.json
index 14b3bd5..52d4e30 100644
--- a/provisioning/dashboards/business.json
+++ b/provisioning/dashboards/business.json
@@ -50,8 +50,7 @@
"value": 80
}
]
- },
- "unitScale": true
+ }
},
"overrides": []
},
@@ -63,6 +62,7 @@
},
"id": 1,
"options": {
+ "infinitePan": false,
"inlineEditing": false,
"panZoom": false,
"root": {
@@ -88,6 +88,7 @@
},
"elements": [],
"name": "Element 1720372446038",
+ "oneClickMode": "off",
"placement": {
"height": 100,
"left": 0,
@@ -98,8 +99,7 @@
},
"showAdvancedTypes": false
},
- "pluginVersion": "10.3.1",
- "title": "Business App",
+ "pluginVersion": "11.2.0",
"type": "canvas"
}
],
@@ -116,7 +116,7 @@
},
"timepicker": {},
"timezone": "",
- "title": "Business Suite",
+ "title": "Business App",
"uid": "O4tc_E6Gz",
"version": 1,
"weekStart": ""
diff --git a/provisioning/datasources/datasources.yaml b/provisioning/datasources/datasources.yaml
new file mode 100644
index 0000000..97716a3
--- /dev/null
+++ b/provisioning/datasources/datasources.yaml
@@ -0,0 +1,113 @@
+apiVersion: 1
+
+datasources:
+ - name: Business Input
+ type: marcusolsson-static-datasource
+ uid: 4ytGZmF4k
+ access: proxy
+ isDefault: true
+ orgId: 1
+ version: 1
+ editable: false
+ jsonData:
+ codeEditorEnabled: true
+ - name: Large File
+ type: marcusolsson-json-datasource
+ url: https://raw.githubusercontent.com/json-iterator/test-data/master/large-file.json
+ access: proxy
+ uid: X6tfeT2nz
+ isDefault: false
+ orgId: 1
+ version: 1
+ editable: false
+ - name: GitHub Repositories
+ type: marcusolsson-json-datasource
+ url: https://api.github.com/users/volkovlabs/repos
+ access: proxy
+ uid: fdtmm8zot2h34e
+ isDefault: false
+ orgId: 1
+ version: 1
+ editable: false
+ - name: Grafana Plugins
+ type: marcusolsson-json-datasource
+ url: https://grafana.com/api/plugins
+ access: proxy
+ uid: fdtmkexmvk8owc
+ isDefault: false
+ orgId: 1
+ version: 1
+ editable: false
+ - name: Bitcoin
+ type: volkovlabs-rss-datasource
+ access: proxy
+ orgId: 1
+ uid: fdtq1w197sk5cc
+ version: 1
+ editable: false
+ jsonData:
+ feed: https://news.bitcoin.com/feed/
+ - name: YouTube Channel
+ type: volkovlabs-rss-datasource
+ access: proxy
+ orgId: 1
+ uid: rZAdZdf82
+ version: 1
+ editable: false
+ jsonData:
+ feed: https://www.youtube.com/feeds/videos.xml
+ - name: Grafana Cloud
+ type: volkovlabs-rss-datasource
+ access: proxy
+ isDefault: false
+ uid: adtq1gclr3caoa
+ orgId: 1
+ version: 1
+ editable: false
+ jsonData:
+ feed: https://grafana.com/docs/grafana-cloud/whats-new/index.xml
+ - name: Grafana News
+ type: volkovlabs-rss-datasource
+ access: proxy
+ uid: edtq06kf808owe
+ orgId: 1
+ version: 1
+ editable: false
+ jsonData:
+ feed: https://grafana.com/blog/news.xml
+ - name: National Vulnerability Database
+ type: volkovlabs-rss-datasource
+ access: proxy
+ orgId: 1
+ uid: bdtq0slbq6tc0b
+ version: 1
+ editable: true
+ jsonData:
+ feed: https://www.nist.gov/news-events/news/rss.xml
+ - name: Volkov Labs
+ type: volkovlabs-rss-datasource
+ access: proxy
+ orgId: 1
+ uid: rZAdZdf73
+ version: 1
+ editable: false
+ jsonData:
+ feed: https://volkovlabs.io/blog/rss.xml
+ - name: Infinity
+ type: yesoreyeram-infinity-datasource
+ access: proxy
+ isDefault: false
+ orgId: 1
+ uid: edtmni4c13i80c
+ version: 1
+ editable: false
+ - name: Business Satellite
+ type: volkovlabs-grapi-datasource
+ access: proxy
+ uid: edtxkxc37xce8d
+ orgId: 1
+ version: 1
+ editable: false
+ jsonData:
+ url: http://localhost:3000
+ requestMode: local