diff --git a/application/src/main/data/json/system/widget_bundles/air_quality.json b/application/src/main/data/json/system/widget_bundles/air_quality.json
index 8f5338637f..ad717be026 100644
--- a/application/src/main/data/json/system/widget_bundles/air_quality.json
+++ b/application/src/main/data/json/system/widget_bundles/air_quality.json
@@ -90,6 +90,14 @@
"nitrogen_dioxide_no2_chart_card",
"nitrogen_dioxide_no2_chart_card_with_background",
"simple_nitrogen_dioxide_no2_chart_card",
- "simple_nitrogen_dioxide_no2_chart_card_with_background"
+ "simple_nitrogen_dioxide_no2_chart_card_with_background",
+ "sulfur_dioxide_so2_card",
+ "sulfur_dioxide_so2_card_with_background",
+ "horizontal_sulfur_dioxide_so2_card",
+ "horizontal_sulfur_dioxide_so2_card_with_background",
+ "sulfur_dioxide_so2_chart_card",
+ "sulfur_dioxide_so2_chart_card_with_background",
+ "simple_sulfur_dioxide_so2_chart_card",
+ "simple_sulfur_dioxide_so2_chart_card_with_background"
]
}
\ No newline at end of file
diff --git a/application/src/main/data/json/system/widget_types/horizontal_sulfur_dioxide__so2__card.json b/application/src/main/data/json/system/widget_types/horizontal_sulfur_dioxide__so2__card.json
new file mode 100644
index 0000000000..ba796b005f
--- /dev/null
+++ b/application/src/main/data/json/system/widget_types/horizontal_sulfur_dioxide__so2__card.json
@@ -0,0 +1,38 @@
+{
+ "fqn": "horizontal_sulfur_dioxide_so2_card",
+ "name": "Horizontal sulfur dioxide (SO2) card",
+ "deprecated": false,
+ "image": "data:image/png;base64,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",
+ "description": "Produced by volcanoes and industrial processes, particularly the burning of coal and oil.",
+ "descriptor": {
+ "type": "latest",
+ "sizeX": 5,
+ "sizeY": 1,
+ "resources": [],
+ "templateHtml": "\n",
+ "templateCss": "",
+ "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'sulfur', label: 'Sulfur dioxide', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n",
+ "settingsSchema": "",
+ "dataKeySettingsSchema": "",
+ "settingsDirective": "tb-value-card-widget-settings",
+ "hasBasicMode": true,
+ "basicModeDirective": "tb-value-card-basic-config",
+ "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Sulfur dioxide\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"public\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3FA71A\"},{\"from\":100,\"to\":200,\"color\":\"#80C32C\"},{\"from\":200,\"to\":350,\"color\":\"#FFA600\"},{\"from\":350,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3FA71A\"},{\"from\":100,\"to\":200,\"color\":\"#80C32C\"},{\"from\":200,\"to\":350,\"color\":\"#FFA600\"},{\"from\":350,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Sulfur dioxide\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}"
+ },
+ "externalId": null,
+ "tags": [
+ "environment",
+ "particulate",
+ "matter",
+ "air",
+ "coarse particulates",
+ "coarse particles",
+ "inhalable particles",
+ "larger particulates",
+ "dust",
+ "airborne coarse particles",
+ "nitrogen",
+ "sulfur",
+ "sulfur dioxide"
+ ]
+}
\ No newline at end of file
diff --git a/application/src/main/data/json/system/widget_types/horizontal_sulfur_dioxide__so2__card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_sulfur_dioxide__so2__card_with_background.json
new file mode 100644
index 0000000000..9f56c51697
--- /dev/null
+++ b/application/src/main/data/json/system/widget_types/horizontal_sulfur_dioxide__so2__card_with_background.json
@@ -0,0 +1,38 @@
+{
+ "fqn": "horizontal_sulfur_dioxide_so2_card_with_background",
+ "name": "Horizontal sulfur dioxide (SO2) card with background",
+ "deprecated": false,
+ "image": "data:image/png;base64,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IwnKDJWWysoJViso6HwHOd6cR5P9LjLJeD80ZfuXhNsIPKMJ9SC4dmlNQ1Jfvb+7qQWL0Caq6kdl6ujtnGzjX7j1Bmza8AIGyPye9IqDFb2VzdSCfpyaktF3565nsIasjc0b16G/3o1k6gKa0OtBsnEbdlFba6JGfuAAKlueV+VuWLcGTdEkkwnYvruOSnsZHT3EGBv51WrjaB9LMbuPzLIxiRd2kZ9I9DW5K8UgvwdkrIz166j+JRPIaaa7kzS5qHT/j27Z/fo3n3ML2cv7UoPd8l0trYWTCPxrvD6KF9csJ9u2hG1jfRRdGUb70Iv43a8fxvhoDTOnz8Qkih3/edVapcL2nVfBzsEKenrb0UXXtm/Zgzm9fRja+Ti2v7gdT/9liJzKMnq7OrCHfKHBRgdGaICTzmmYNmsf06nCSfGSdVYNc3iiE9lIqMxuGpc6Z97+LiY8F4OHldZBDF4RTclsKJcEUjTRcQNjt8vQb7LMYPJEEKnTUtdIXOjoodVwjgkk1C6R1rxtmjeApcES8ETY3cZ0pZtNbYIlwfyDJr6qFixEeBw94jZ0kP/Y3l5Vu9mwv9NW8RE6FQigY2aeNjJzKqWy1ygoRmL2NisF/WP9QltHblfngQdDUr7dM3rUPeMUjeN92XjLKR98aWJwzZP4I/mppAzQ0UZm7/gQ+rfvVK8rqCiTkOU0MWJ9jyq/0llRFg3pB8ycXcZojXuT6k0+S3uF/THqt9070FsaJz+Q3AVy2gdHSRBUtDRs0L1tnWI33fU/nR2VU7/3w9+uRURERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERETE/zr+D4U9ucWgJ2b2AAAAAElFTkSuQmCC",
+ "description": "Produced by volcanoes and industrial processes, particularly the burning of coal and oil.",
+ "descriptor": {
+ "type": "latest",
+ "sizeX": 5,
+ "sizeY": 1,
+ "resources": [],
+ "templateHtml": "\n",
+ "templateCss": "",
+ "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'sulfur', label: 'Sulfur dioxide', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n",
+ "settingsSchema": "",
+ "dataKeySettingsSchema": "",
+ "settingsDirective": "tb-value-card-widget-settings",
+ "hasBasicMode": true,
+ "basicModeDirective": "tb-value-card-basic-config",
+ "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Sulfur dioxide\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"public\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3FA71A\"},{\"from\":100,\"to\":200,\"color\":\"#80C32C\"},{\"from\":200,\"to\":350,\"color\":\"#FFA600\"},{\"from\":350,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3FA71A\"},{\"from\":100,\"to\":200,\"color\":\"#80C32C\"},{\"from\":200,\"to\":350,\"color\":\"#FFA600\"},{\"from\":350,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageUrl\":\"tb-image;/api/images/tenant/noise-level-horizontal-value-card-min_(3).png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Sulfur dioxide\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}"
+ },
+ "externalId": null,
+ "tags": [
+ "environment",
+ "particulate",
+ "matter",
+ "air",
+ "coarse particulates",
+ "coarse particles",
+ "inhalable particles",
+ "larger particulates",
+ "dust",
+ "airborne coarse particles",
+ "nitrogen",
+ "sulfur",
+ "sulfur dioxide"
+ ]
+}
\ No newline at end of file
diff --git a/application/src/main/data/json/system/widget_types/simple_sulfur_dioxide__so2__chart_card.json b/application/src/main/data/json/system/widget_types/simple_sulfur_dioxide__so2__chart_card.json
new file mode 100644
index 0000000000..a3b8506645
--- /dev/null
+++ b/application/src/main/data/json/system/widget_types/simple_sulfur_dioxide__so2__chart_card.json
@@ -0,0 +1,40 @@
+{
+ "fqn": "simple_sulfur_dioxide_so2_chart_card",
+ "name": "Simple sulfur dioxide (SO2) chart card",
+ "deprecated": false,
+ "image": "data:image/png;base64,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",
+ "description": "Produced by volcanoes and industrial processes, particularly the burning of coal and oil. Results displayed by combining the latest and aggregated values and optional simplified chart.",
+ "descriptor": {
+ "type": "timeseries",
+ "sizeX": 4.5,
+ "sizeY": 2,
+ "resources": [],
+ "templateHtml": "\n\n",
+ "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n",
+ "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'sulfur', label: 'Sulfur dioxide', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'sulfur', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n",
+ "settingsSchema": "{}",
+ "dataKeySettingsSchema": "{}",
+ "latestDataKeySettingsSchema": "{}",
+ "settingsDirective": "tb-value-chart-card-widget-settings",
+ "dataKeySettingsDirective": "",
+ "latestDataKeySettingsDirective": "",
+ "hasBasicMode": true,
+ "basicModeDirective": "tb-value-chart-card-basic-config",
+ "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Sulfur dioxide\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3FA71A\"},{\"from\":100,\"to\":200,\"color\":\"#80C32C\"},{\"from\":200,\"to\":350,\"color\":\"#FFA600\"},{\"from\":350,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Sulfur dioxide\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"public\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}"
+ },
+ "externalId": null,
+ "tags": [
+ "environment",
+ "particulate",
+ "matter",
+ "air",
+ "coarse particulates",
+ "coarse particles",
+ "inhalable particles",
+ "larger particulates",
+ "dust",
+ "airborne coarse particles",
+ "sulfur",
+ "sulfur dioxide"
+ ]
+}
\ No newline at end of file
diff --git a/application/src/main/data/json/system/widget_types/simple_sulfur_dioxide__so2__chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_sulfur_dioxide__so2__chart_card_with_background.json
new file mode 100644
index 0000000000..973a63df90
--- /dev/null
+++ b/application/src/main/data/json/system/widget_types/simple_sulfur_dioxide__so2__chart_card_with_background.json
@@ -0,0 +1,40 @@
+{
+ "fqn": "simple_sulfur_dioxide_so2_chart_card_with_background",
+ "name": "Simple sulfur dioxide (SO2) chart card with background",
+ "deprecated": false,
+ "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAMAUExURUdwTEJEO+nw8tTY2WGDnFRrd0hGPU5dZFp2iUVFOzuRHNTY2uzy89fc3tfb2tbb3dXa2dPX19jd39Xa3Ovz9Ofx9Ozz9eXw8+jv8ejy9eDr7urx8+Tu8t3n6tnc2uHs8OLt8N3k5dzi49vg4tzm6N3o7ePq7Nvl597q7t/o7Nnf4dnY0u709trj5h4fH+vw8D9AO+Ts7dbX01NsfN/h3uXt7+/199zc1+bu8djj6NbZ2NbY1d7m6NXU0eHt8t3g3fj7+/b5+tna1uDn6eLo6efu79rf4Nvm6t/q8Nva1NjW0WKHoRscHFBpefT4+dbd4dfh5vL3+Nre3FNugNTV0lZ3jOPn5trh5EhIPOHp7Ds8O+fs609FO9bf5Nfd3kRFO1RxhNve22KGnuDk4unu7WaPqFBlcubq6GuXr9jc3GiSrExMPElCOt7f2WGHkERBOn6twJG8y2SKpOPm41Z1h2aLlY+tuF+AillJPJ+9xlNTPpWzvFNNO1tSPFBhalh7kOHk3+Dm5oOirafFzkxNQkxSU0NIRm2Pmeno4ikqKn6cpkdNS7/YvqPBy1NmbmanUHKToajMoqaqqV5jYlpcQGNbPWaFkGhtbmZPPm2cs3elumGEm1NUSHKgtZq4wpnCzzY4OZPAh+3v61yAlIe0xVRYVlCcNmWMobzBwYSJh4qos42Tk3p8elhiWJ7G0nyVmn6GhEBEQHJ7e5/EllRrd67L1G12cUtZWszW2WJeRVdaTcjMzcre4pylotXm2WJtW157hsLZ3dDi5svXxm90ZXF/aHiNkLfStG5dPeTi23avY21aSMDExbO8vqXK1WdjUZmdn320bUWWKX97Z2toPsnR1HR0W4y0wrbR2Id8RX2IcHVrVISpuY6NenJmRl90d8vezI6JaoVzWZR/TnxtP1qhQYm5eoygnXR0RWdqTX1fQ5Opq3KGgYmUh7C0tTIyM1tgTJWamLLJp6KWbK6lhpefio5oStPg1Z2PTbaTVqh/T8Cmb8nCo2gALgA18kdwTLyGgHwAAAEAdFJOUwC////v77Agt+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBtgHfTAAAnTklEQVR42uyX30tb2RbHg8zQQoXCvcb8MCEZiE1SzIbSa0hAQoLciSBGRQaxF0GkFseHotIYpA/lKkmIFyFESKiD1wM1qE2vZEItASNUn03xJZiH/gcDDv4Hs9ba+/yKti/3NZ9zPOd4anV/znetvU8MhjZt2rRp06ZNmzZt2rRp06ZNmzZt2rT5/7l3/4ff9MziprK/vzw3N7ewsDA/P//27Y7g7dv5ebohLpAFBH52bm3l9dc5wb5geHgWf/k74A3xi+CVyoyOCeLp9/iIvHhx/x54/CCGOzx7J3B7GQEVtIGhg8U2sbONl+gkyyzMf72an1vYPAP+u5Pd14F/QFZ5d5fKzAw3mVAOM3qVERr5U9yeiqNQ+fGe4T4f7/Lw8DKNexh2giTgDBLD6EGhCJPt7cXFxa+LBBqBC0W0c1xrbi+sngfPz2vHKxvZLP6Cfdjo96kmeSUVlHmjS0XOZQI14CibjKh8HIHB01GIfPx43zDMxzvL/9CwLEIpoN0yXc5RIuixQPW1TSoKckLN8/OzzdWa3RoN1o5fr6xswMChNGfVUk3vx0ElHs/n8++UTF7JJ53LBImomdzyQSW5wn408AdPo+ca4pvl4WVhIzyEyLxWZA/3Pby6wgNEETw/q0WfWHuDtWazufk+G49n1zay+zwKsMpm0+nf4mk4xfPvEomEUl6/6OtM7hJhItfXCG6KwkdeYBSJQR26Fp0BRxQWb/i9zc2jq6U9maXj5tXe3lUTaioIRHtB5Oysuf4+m85ubIBJFl1m97PIfnoWRMgkTyZQYLzGdDIzcip6FbXPUUDNxrD8LQVA9ljgFrxDgJ3VmsfTe9Y8AoXd46urpeZZrbm+3qzVwCMKDQItAiLHqysboAHACYa+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",
+ "description": "Produced by volcanoes and industrial processes, particularly the burning of coal and oil. Results displayed by combining the latest and aggregated values and optional simplified chart.",
+ "descriptor": {
+ "type": "timeseries",
+ "sizeX": 4.5,
+ "sizeY": 2,
+ "resources": [],
+ "templateHtml": "\n\n",
+ "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n",
+ "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'sulfur', label: 'Sulfur dioxide', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'sulfur', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n",
+ "settingsSchema": "{}",
+ "dataKeySettingsSchema": "{}",
+ "latestDataKeySettingsSchema": "{}",
+ "settingsDirective": "tb-value-chart-card-widget-settings",
+ "dataKeySettingsDirective": "",
+ "latestDataKeySettingsDirective": "",
+ "hasBasicMode": true,
+ "basicModeDirective": "tb-value-chart-card-basic-config",
+ "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Sulfur dioxide\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3B911C\"},{\"from\":100,\"to\":200,\"color\":\"#7CC322\"},{\"from\":200,\"to\":350,\"color\":\"#F89E0D\"},{\"from\":350,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageUrl\":\"tb-image;/api/images/tenant/noise-level-simple-value-and-chart-card-min_(2).png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Sulfur dioxide\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"public\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}"
+ },
+ "externalId": null,
+ "tags": [
+ "environment",
+ "particulate",
+ "matter",
+ "air",
+ "coarse particulates",
+ "coarse particles",
+ "inhalable particles",
+ "larger particulates",
+ "dust",
+ "airborne coarse particles",
+ "sulfur",
+ "sulfur dioxide"
+ ]
+}
\ No newline at end of file
diff --git a/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__card.json b/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__card.json
new file mode 100644
index 0000000000..1d6121f108
--- /dev/null
+++ b/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__card.json
@@ -0,0 +1,37 @@
+{
+ "fqn": "sulfur_dioxide_so2_card",
+ "name": "Sulfur dioxide (SO2) card",
+ "deprecated": false,
+ "image": "data:image/png;base64,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",
+ "description": "Produced by volcanoes and industrial processes, particularly the burning of coal and oil.",
+ "descriptor": {
+ "type": "latest",
+ "sizeX": 3,
+ "sizeY": 3,
+ "resources": [],
+ "templateHtml": "\n",
+ "templateCss": "",
+ "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'sulfur', label: 'Sulfur dioxide', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n",
+ "settingsSchema": "",
+ "dataKeySettingsSchema": "",
+ "settingsDirective": "tb-value-card-widget-settings",
+ "hasBasicMode": true,
+ "basicModeDirective": "tb-value-card-basic-config",
+ "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Sulfur dioxide\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"public\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3FA71A\"},{\"from\":100,\"to\":200,\"color\":\"#80C32C\"},{\"from\":200,\"to\":350,\"color\":\"#FFA600\"},{\"from\":350,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":28,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3FA71A\"},{\"from\":100,\"to\":200,\"color\":\"#80C32C\"},{\"from\":200,\"to\":350,\"color\":\"#FFA600\"},{\"from\":350,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Sulfur dioxide\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}"
+ },
+ "externalId": null,
+ "tags": [
+ "enviroment",
+ "particulate",
+ "matter",
+ "air",
+ "coarse particulates",
+ "coarse particles",
+ "inhalable particles",
+ "larger particulates",
+ "dust",
+ "airborne coarse particles",
+ "sulfur",
+ "sulfur dioxide"
+ ]
+}
\ No newline at end of file
diff --git a/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__card_with_background.json b/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__card_with_background.json
new file mode 100644
index 0000000000..7d440e64e0
--- /dev/null
+++ b/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__card_with_background.json
@@ -0,0 +1,37 @@
+{
+ "fqn": "sulfur_dioxide_so2_card_with_background",
+ "name": "Sulfur dioxide (SO2) card with background",
+ "deprecated": false,
+ "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAL6UExURUdwTDuRHOzz9enx8jw+PGR+lFdteWB2hEJCO0RDPOjv8tPW19TY2dXY2dbc39Xa2dbe4+vy9Orx8+zy8+709tjd39zn7NXb3Ds8O+Ht8NXa29vj6NTX2tjc29TT0Nbd4d3n6vX5+vD29+Lu8t3l6OPt8dba2ubt7/L3+NbU0efu8dff5Nbb3eTs7dHR0N7q7dnf4Nvm69re3NTV0tna1t/r7tng4ufx9Nrk6uDs8Nfh5j0/PN3o7NTY2t3o7dng5N3g3tri5lBkc1NndN3j5N/p7ODo6t3f29bX0+ju79fc3ubw8+Hl5Pj7+1JqfEBCPOvx8dzb19fb2t/i4d7m6eDh3drh5Nzc1NnY09fY1e3z9N7d2eHr70RFO1p1iOXq6uPo6FRtgOXu8ejy9eLp6+Tv89vZ1Nvd2d7l5uPk3+Hm50A/OmWInVFoeUVBOufs69ni59jW0dvh4k1gceLq7WKCl0tLO+ft7uLh2VVrdmeLn6/Ez0dGO2SHmV55jGuYo97d1WKAlE+bNeXm40dJQF99j1dxhKWxuGJ/kWmOpE9QPk5hbOfp51VTPldveqSrrFhKO+3x7ufk2+He1FFKO01FO15SPGCFlkZMSU1PRa+3t0tSUGVcP2OIo2iUn1NWSFpZQJadn0BFQ5+fmYu7y3BqQ6a3v5TB0JubmEWWKZu/kmlyblthT4yYmVJYVJyjpLvDxaHK1mRlSYW1x5nE0h4fH2KlTO3t6NHj1r/UvmmpVKanoHStYqWhmTU3OG+Mla7IqqDGmRweHoaNjE1bX2NqWFhiXsbP0ltyeuvp4Hytwoi4e7LK0a+qnsrfy5K/h7PQrX60bnBdP3WYocPLzbW9vYasum9xWKu/x4OjqVppacrWy6fMoGR4fod7TJSyt2+ft7O1oWZPO8vX19Hb3mhbTo2MayosLGyAhnh6ZFmgQXWEd7bT3H6CgYFiQHx0R5qOWGmTrcLc5MbBq97s4cvi6aqqj4doUIOFW5yffJqmko2Wha+hbUdwTFXazMcAAAD+dFJOUwD///8gt7cgt+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A1cnGUAAANphJREFUeNqMme9LW1kax2NkpuBCiDFr06ZDYhppMEo3L9QYZi0qzYsR8yr0RZHOmlHoiwQCY160YpcO1FQKyr5yMGQhssiWYBoot7SlXOgNNKUtnR1GoZQuLeRCYHfywmH+gH2e55xz77lJLPt97rn35odyPn6f5zkn0WY79cXdu7eZ7hri93dw3AJduwZHV93iugNi7+Ta2FjaWLIqwZRBzc3NCn0v6d49OnXT7D3jJ2bnuG4wfXnKZjvF5p3jkmAESQfKLYp2EiGTcQNgSEtLW0CBQ7AwmrnMXDcWCYoI2FOcBWnmZg2Ora0tJNk6ZfuCmZFb5yKaHHfEcIn/uTsmTdH9BcMYzrKEOAkJJZEBGgTqZJFopGeEL/c4CAJsvXwJY2vrS9t6mhOk0+mbMNhjgAGG21LK0eUOInEwMAroKEzRO2RsmcaSZQS0ZJjDWIwArNl2CgT5ntJLBtl4CSgQtjTTTSTACwSx5Ewxy9it+ewOHgLVuEH8u7cZzS3ClFlMkA2pajKGZrtJ4pFrhDLKlC19E4VmrN9EEiZk485QorELzh+9W2fw66Yk7J0dxs5tY+5YSkbuAol2Fs6T6aCZJY/Qrdm5ewYKwOABIGLmfP543oRgD40pEgzOcp3BbgpawbPD3mcBu82TEFmuWZKMwbCQeahsBE0GUgiHRGNho+wyGpft5iaXmD2BGM+wiebWc3QWGJt/39w0Sbg1Ozui2NbFEzwtyZ32ipHUpTtzQV/DPp3pymL2YACC1IIp/7J5bOAIjL+285liL5hJaJX0Ronp9t22laYLSXt7Nnlo1eleQpzHlltPC1OOP66ZerP25g2OtZN08itteseCax+Pfavy/JznZ4j/Rwf/NjDAEcrsNMJ8dHpNRTEi0UgkMgiB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",
+ "description": "Produced by volcanoes and industrial processes, particularly the burning of coal and oil.",
+ "descriptor": {
+ "type": "latest",
+ "sizeX": 3,
+ "sizeY": 3,
+ "resources": [],
+ "templateHtml": "\n",
+ "templateCss": "",
+ "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'sulfur', label: 'Sulfur dioxide', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n",
+ "settingsSchema": "",
+ "dataKeySettingsSchema": "",
+ "settingsDirective": "tb-value-card-widget-settings",
+ "hasBasicMode": true,
+ "basicModeDirective": "tb-value-card-basic-config",
+ "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Sulfur dioxide\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"public\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3B911C\"},{\"from\":100,\"to\":200,\"color\":\"#7CC322\"},{\"from\":200,\"to\":350,\"color\":\"#F89E0D\"},{\"from\":350,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":28,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3B911C\"},{\"from\":100,\"to\":200,\"color\":\"#7CC322\"},{\"from\":200,\"to\":350,\"color\":\"#F89E0D\"},{\"from\":350,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageUrl\":\"tb-image;/api/images/tenant/noise-level-value-card-min_(2).png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Sulfur dioxide\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}"
+ },
+ "externalId": null,
+ "tags": [
+ "enviroment",
+ "particulate",
+ "matter",
+ "air",
+ "coarse particulates",
+ "coarse particles",
+ "inhalable particles",
+ "larger particulates",
+ "dust",
+ "airborne coarse particles",
+ "sulfur",
+ "sulfur dioxide"
+ ]
+}
\ No newline at end of file
diff --git a/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__chart_card.json b/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__chart_card.json
new file mode 100644
index 0000000000..f18df1c27c
--- /dev/null
+++ b/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__chart_card.json
@@ -0,0 +1,40 @@
+{
+ "fqn": "sulfur_dioxide_so2_chart_card",
+ "name": "Sulfur dioxide (SO2) chart card",
+ "deprecated": false,
+ "image": "data:image/png;base64,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",
+ "description": "Produced by volcanoes and industrial processes, particularly the burning of coal and oil. Results displayed by combining the latest and aggregated values and optional simplified chart. ",
+ "descriptor": {
+ "type": "timeseries",
+ "sizeX": 4.5,
+ "sizeY": 3.5,
+ "resources": [],
+ "templateHtml": "\n\n",
+ "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n",
+ "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'sulfur', label: 'Sulfur dioxide', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'µg/m³', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'sulfur', 'µg/m³', 0);\n }\n };\n}\n",
+ "settingsSchema": "{}",
+ "dataKeySettingsSchema": "{}",
+ "latestDataKeySettingsSchema": "{}",
+ "settingsDirective": "tb-aggregated-value-card-widget-settings",
+ "dataKeySettingsDirective": "",
+ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings",
+ "hasBasicMode": true,
+ "basicModeDirective": "tb-aggregated-value-card-basic-config",
+ "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Sulfur dioxide\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3FA71A\"},{\"from\":100,\"to\":200,\"color\":\"#80C32C\"},{\"from\":200,\"to\":350,\"color\":\"#FFA600\"},{\"from\":350,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Sulfur dioxide\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"public\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}"
+ },
+ "externalId": null,
+ "tags": [
+ "environment",
+ "particulate",
+ "matter",
+ "air",
+ "coarse particulates",
+ "coarse particles",
+ "inhalable particles",
+ "larger particulates",
+ "dust",
+ "airborne coarse particles",
+ "sulfur",
+ "sulfur dioxide"
+ ]
+}
\ No newline at end of file
diff --git a/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__chart_card_with_background.json b/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__chart_card_with_background.json
new file mode 100644
index 0000000000..9ca5e21ed7
--- /dev/null
+++ b/application/src/main/data/json/system/widget_types/sulfur_dioxide__so2__chart_card_with_background.json
@@ -0,0 +1,40 @@
+{
+ "fqn": "sulfur_dioxide_so2_chart_card_with_background",
+ "name": "Sulfur dioxide (SO2) chart card with background",
+ "deprecated": false,
+ "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAL9UExURUdwTOzz9dPW1+nx8mR+lFhseFdteUJCOzw+PGiAj+jw8tbb3+fx9Ovy9Nbc4NTY2e/19+bw8+709tzo6+Ds8Nbe49vk6erx9NXa29vl6tXZ2dvm7NXb3dfc2tPU0efu8OLt8NTY2NTX2d7q7dzl6Nbd4dzo7uTs7tTY2tbf5DuRHNve3NTT0Njd397q79bb3eTv8uDr79fZ1dXY2fb6+uPr7tnf4dbU0Nnd29jV0drj6N7h3tnj6N/l59ba2tni5uXt7+jz9ePv8uHq7Tw+PDs7O9/o7N7o6/j7+9je4Nne39fc3tjY0trg4tbX09zj5OXr69fh5uLs8NXV0u3z81Bkc+Hl5drb1Nna197f2/H39/P4+N3m6lFpet/n6kBCPNLR0ODj4eLp6+Pr7eLk4d3k5dng4tPS0OLj3eHn6NTV0t3b1E5hcdfa2erv8FRodNjg5NrX0uTp6Nvd2ejt7dvi40xLO/r8/NrY1dnh5D8/O0dGOkNEO2OCl1Nsftzb2OLf1dTX1/T5+WJ/kkVAOubn49/e1FVsd1x2iNDR0F55jF99j2GBlWaJnN/e2FBQPefq50xFO+Ph2U5hbFVvgll0h2SGmby/wLa7vB0eH+3x7jY4ObG3uMTIyGiMn1VJO2uYo0lNRq6yslhTPFBUU9zi4ldvesrMzEdKP6erq8rR0WiVn2OHoejl3JfD0V5YQGtwb09TRmZeP1ZXREpRT9HZ3Ie3yT9EQyosLENISIOIiYCuwZ2fnsTN0F1OO1xhT52kpaWmpe3u6aHK1mePqJC+zWVlTERGQHqvaVKcOM3V11xhYbnCxcLDwsPSxGKjS87T1Ozq4m+Nl2VrbK3HqG9qQ1xye6+uq7q6tm1xWVNaV3NeQnyDhXaZonZ8emZTPHpuQ4Slq46cmnx2U3GguJy+k5GUlIi2e2p4eU1cYZSNZrvNt3+FaGyCh5GxuYuATmFtYEWVKJK6h7PS24iQi6K+wJeefWypV6arjbC4oq/Kz66gco9hPwDz10dwTAeOABIAAAD/dFJOUwD///+3ILe3ICD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFd/XXcAADjWSURBVHjajJnfSxvpGseTdndh1eTkh9EGhQgx8eRicypHeyGRuAajSzm0Su1FkgpVvCjIKofC0guFtRdpU4UFbTM5M9mLkFUMXvTCWdPagRa80ghCoBeSUzilF/4BXp2r87zP+87MO5PRnu87806ME/J8/D7P+2O02b7/5ilo7amVXhDlcrlnVC+JnmnCH3JM7M4cvYloE7UCB68HTIuL06oWOG1sYGcldgd+ZBE/Dn02m4X+u29ttu+fvoCIl1VZ4uR0FqOQKmeQ/iuEYTibWwznAZDoMA8WDSwbrN/AlyR2RsDopjemybGwSBAWEWNrawtYslvf2r4hXqytLS+/Wn9FRGjWTDwviDW5FzmzWMy55l/kOAs3mTkrW5orjIipyRZLUaqFDdURxvHx4xbRdzYW/6t1JnhBcUi2rREqlnXk+oJkG8s5mnfNYu8jTk6jYSwW0mHUkKcXprE3UVCLwI+NaWpJlpB8JCjQbOtWYs4QHDzXiGXUq7VlXfA28FEh6FOVGmnAQwJkZOEqZ5MaQ1Cm6Tlt1EKzUdQPypHFzGICkN9B1Ip1/GGdNErziqKs6TW0zJunSwUjN1DCtaeaZTrL5ksDCrVIS7Jp7QrBGqCaUBZIdmWzlCULbctGMH7fxfDx0GVwhgZJMbgbdCANU6+0NVZdhOXZMytjNrmE44qG0Zh5GISqRa3iCRKAHJJ2+G8l0tEx1NGsoY4hg7jf8IoPWSrO9AS0xOTzLYWs5AS1MmkvQN1wXCLpo4pjg78vUBz+J9LhNxH4UR1f0dDXFNeloQALkSVLiOI4qTgcEIVSscj16COzxga5QlD+y1vAg5ho/FpnormcKE4ak5EkFLrls7QGWsipi4dplQlJ643u7hvIUlMdwcxeX7fK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",
+ "description": "Produced by volcanoes and industrial processes, particularly the burning of coal and oil. Results displayed by combining the latest and aggregated values and optional simplified chart. ",
+ "descriptor": {
+ "type": "timeseries",
+ "sizeX": 4.5,
+ "sizeY": 3.5,
+ "resources": [],
+ "templateHtml": "\n\n",
+ "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n",
+ "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'sulfur', label: 'Sulfur dioxide', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'µg/m³', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'sulfur', 'µg/m³', 0);\n }\n };\n}\n",
+ "settingsSchema": "{}",
+ "dataKeySettingsSchema": "{}",
+ "latestDataKeySettingsSchema": "{}",
+ "settingsDirective": "tb-aggregated-value-card-widget-settings",
+ "dataKeySettingsDirective": "",
+ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings",
+ "hasBasicMode": true,
+ "basicModeDirective": "tb-aggregated-value-card-basic-config",
+ "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Sulfur dioxide\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#3B911C\"},{\"from\":100,\"to\":200,\"color\":\"#7CC322\"},{\"from\":200,\"to\":350,\"color\":\"#F89E0D\"},{\"from\":350,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 600) {\\n\\tvalue = 600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageUrl\":\"tb-image;/api/images/tenant/noise-level-value-and-chart-card-min_(2).png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Sulfur dioxide\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"public\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}"
+ },
+ "externalId": null,
+ "tags": [
+ "environment",
+ "particulate",
+ "matter",
+ "air",
+ "coarse particulates",
+ "coarse particles",
+ "inhalable particles",
+ "larger particulates",
+ "dust",
+ "airborne coarse particles",
+ "sulfur",
+ "sulfur dioxide"
+ ]
+}
\ No newline at end of file