From f6dd27834129950d2c680ea734f54731d28b0930 Mon Sep 17 00:00:00 2001 From: Dmitriymush Date: Thu, 7 Dec 2023 16:25:47 +0200 Subject: [PATCH] UI: added Nitrogen Dioxide Level (NO2) widgets to air quality bundle --- .../system/widget_bundles/air_quality.json | 10 ++++- ...orizontal_nitrogen_dioxide__no2__card.json | 36 +++++++++++++++++ ...en_dioxide__no2__card_with_background.json | 37 +++++++++++++++++ .../nitrogen_dioxide__no2__card.json | 37 +++++++++++++++++ ...en_dioxide__no2__card_with_background.json | 37 +++++++++++++++++ .../nitrogen_dioxide__no2__chart_card.json | 40 +++++++++++++++++++ ...xide__no2__chart_card_with_background.json | 40 +++++++++++++++++++ ...ple_nitrogen_dioxide__no2__chart_card.json | 40 +++++++++++++++++++ ...xide__no2__chart_card_with_background.json | 40 +++++++++++++++++++ 9 files changed, 316 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_nitrogen_dioxide__no2__card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_nitrogen_dioxide__no2__card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__card.json create mode 100644 application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_nitrogen_dioxide__no2__chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_nitrogen_dioxide__no2__chart_card_with_background.json 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 3d46fab972..8f5338637f 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 @@ -82,6 +82,14 @@ "ozone_o3_chart_card_with_background", "ozone_o3_chart_card_with_background2", "simple_ozone_o3_chart_card", - "simple_ozone_o3_chart_card_with_background" + "simple_ozone_o3_chart_card_with_background", + "nitrogen_dioxide_no2_card", + "nitrogen_dioxide_no2_card_with_background", + "horizontal_nitrogen_dioxide_no2_card", + "horizontal_nitrogen_dioxide_no2_card_with_background", + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_nitrogen_dioxide__no2__card.json b/application/src/main/data/json/system/widget_types/horizontal_nitrogen_dioxide__no2__card.json new file mode 100644 index 0000000000..54a3e3d0d5 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_nitrogen_dioxide__no2__card.json @@ -0,0 +1,36 @@ +{ + "fqn": "horizontal_nitrogen_dioxide_no2_card", + "name": "Horizontal nitrogen dioxide (NO2) card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "A gas produced from vehicle emissions and the burning of fossil fuels.", + "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: 'nitrogen', label: 'Nitrogen 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\":\"Nitrogen dioxide\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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\":40,\"color\":\"#3FA71A\"},{\"from\":40,\"to\":90,\"color\":\"#80C32C\"},{\"from\":90,\"to\":120,\"color\":\"#FFA600\"},{\"from\":120,\"to\":230,\"color\":\"#F36900\"},{\"from\":230,\"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\":40,\"color\":\"#3FA71A\"},{\"from\":40,\"to\":90,\"color\":\"#80C32C\"},{\"from\":90,\"to\":120,\"color\":\"#FFA600\"},{\"from\":120,\"to\":230,\"color\":\"#F36900\"},{\"from\":230,\"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\":\"Horizontal nitrogen dioxide (NO2) card\",\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_nitrogen_dioxide__no2__card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_nitrogen_dioxide__no2__card_with_background.json new file mode 100644 index 0000000000..c1870ca7b1 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_nitrogen_dioxide__no2__card_with_background.json @@ -0,0 +1,37 @@ +{ + "fqn": "horizontal_nitrogen_dioxide_no2_card_with_background", + "name": "Horizontal nitrogen dioxide (NO2) card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "A gas produced from vehicle emissions and the burning of fossil fuels.", + "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: 'nitrogen', label: 'Nitrogen 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\":\"Nitrogen dioxide\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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\":40,\"color\":\"#3B911C\"},{\"from\":40,\"to\":90,\"color\":\"#7CC322\"},{\"from\":90,\"to\":120,\"color\":\"#F89E0D\"},{\"from\":120,\"to\":230,\"color\":\"#F77410\"},{\"from\":230,\"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\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":40,\"color\":\"#3B911C\"},{\"from\":40,\"to\":90,\"color\":\"#7CC322\"},{\"from\":90,\"to\":120,\"color\":\"#F89E0D\"},{\"from\":120,\"to\":230,\"color\":\"#F77410\"},{\"from\":230,\"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-horizontal-value-card-min_(1).png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal nitrogen dioxide (NO2) card with background\",\"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", + "nitrogen dioxide" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__card.json b/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__card.json new file mode 100644 index 0000000000..daf32ec671 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__card.json @@ -0,0 +1,37 @@ +{ + "fqn": "nitrogen_dioxide_no2_card", + "name": "Nitrogen dioxide (NO2) card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "A gas produced from vehicle emissions and the burning of fossil fuels.", + "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: 'nitrogen', label: 'Nitrogen 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\":\"Nitrogen dioxide\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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\":40,\"color\":\"#3FA71A\"},{\"from\":40,\"to\":90,\"color\":\"#80C32C\"},{\"from\":90,\"to\":120,\"color\":\"#FFA600\"},{\"from\":120,\"to\":230,\"color\":\"#F36900\"},{\"from\":230,\"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\":40,\"color\":\"#3FA71A\"},{\"from\":40,\"to\":90,\"color\":\"#80C32C\"},{\"from\":90,\"to\":120,\"color\":\"#FFA600\"},{\"from\":120,\"to\":230,\"color\":\"#F36900\"},{\"from\":230,\"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\":\"Nitrogen dioxide (NO2) card\",\"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", + "nitrogen", + "nitrogen dioxide" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__card_with_background.json b/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__card_with_background.json new file mode 100644 index 0000000000..3f6bd82eb6 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__card_with_background.json @@ -0,0 +1,37 @@ +{ + "fqn": "nitrogen_dioxide_no2_card_with_background", + "name": "Nitrogen dioxide (NO2) card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAL0UExURUdwTDAxJt3m797k78PH19/n7zUyJjg6LEJAMcHL1i8qIzvz9vT19zuRHPHz9fL09u7w8+7y9fL0+Ofr7vP19+ns8ejr8fDy9Ovu8+nt8vDy9urt8uzv8+rt8e/x8+jr7/T2+PDy9evv8uXw7ePn7eXp7u3x9OTo7fX3+dLT1NDQ0uHl6fL09/Hz9tTU1tjZ2+bq79PU1dLS09fY2ff5+uPn69DR09XW2Nzb3OLl6M/Q0fb3+uHm69DS1Nvd3uPi4fj5+9na29TW2MnS3czOz9jY2Ofq7Q8WGd7d3c7P0BMaHdze4OTo7MTN2NTd59/f4Ojs7+Po7xEYG+Ln7OHh4NLb5cnR29LU1vLz9LbBzuXk4uLm7dff6uDf3tDZ49TV19rb3B4fH9bV1+bl5RYeIe3v8MLL1rjDz8fT4N3f4s7X5MfQ2s7W3svU3+3v8+Li48DK1dni6xYdHhkhJMbP2enp69na2oiNjs7X4Q0SFt/h47zG0uDk6L3I1NXX2tHV2dfX2MvU3Ovs7ePk5uDi5tzj7PLz9u7w8uvt78rMzczW4rXD0ebn6Ozw9OTo8cfKzFGdNuXo6lNTVbrE0bC+zdzi58rV4WeoUbPB0N/l7rq9wMXR39rf5E9LO4aIio6Sk5udoEpHOURDNqrMotTX2z0+NNje5a67y9Xa30hFMqCipT4+K6a2xp+wwam3x6OzxCAlI0NGSzg6Odjc4Nfk2H60bLPAzJWXl6u6yeTm6aepq0dNVSotLNTV1UJBL11fYpTAh0aXKVNQPwoNDZusvTc4J3d5fayusWZkZ8HYvl5aXVtZOVVTNW1tcDExKL3UuDU3ML/M2k1LMtDc0PP1+GJgPrCzth8oLL+7s1BWXpaouoi5efHz91xVRSspI9LY3cvbyo2NjFlUVygyN5G9g5/Gls3P0uvv9HOuYLXQrzI6QlyiQ8LEx7SwqLa5u+Hp5UpdbqelpOTs52pnRJGjtTVKXMXYxZvAkVxxhXuNn3+Ch0dwTG/djNAAAAD8dFJOUwCwr78gIL8g77fv////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAKLuU8AADX1SURBVHjajJnPS1vpGsfDvTOLWdSciJ2Mohkjmgo3ARduii5KXCuGEosowrtJpG2CgotwUx1KowUvSYbjrxpLZlFxIIsLOTg6i0Cmm4QussuuLrq53F4GZjF/wX1+vO973hPt5X5Pzi9PTvp+3u/zPO97Tn2+r77Jb6Q2WNvb+YODg/TyFWmZdLX8D1A6nYYLsILy2/ltFNyQSqU2UvPz81vPQHMg2MJ+ac5QJgOfTCaXy63l1lC53FPU/j6u+8fHmfXMutbZ+tkZ7mgLyhzTl9fWkskFFu5XUZurm5u7qNO/fO3zfbXNrUmlNEk6vUwowECb5fRymsUcB9tMQuxw4/wW6Bk3HnGIaO6MKeY0BlOw6FjyZI7X14+PZbPnJAyx0J+OAXYfSTRKUoKsKpDd09Wvfd9gU6Ax88yynTdIGAaUTrskQJBnTzaUKfMEIm1Ycv1YB5rMcQY/GcZIkvhwTcKAJ+iK9IN3Z2faE7y6j54ktScLyhMgIZbT07/6JAcsuFUk6MKywiCUZQWSB23L0GKQLXZkiVHcDVkBmxz5kUMMSZJc0EREsk8wwAvtXqeVUBhMkSRNEpeDXVn1IcI8imEouvJIghCcJ1fLEkjGlgotaQj4AQkiDaEdb4gDtJ/LSRCFgUGSpBhJqpQBEuBB6whH2nLGGMQBJGu3WTSKb14qleLtRgoa6MkTRqFcAeUP8hxfEgXvI5I5FVngAuaGTA6VH5wiLsjCBcc7R9ga5z1mfiZzxikvY4tAiETeyBSwLEiS3d1NAwS1RWGWopRPp6907YLtm2WPJ3nXkxTXLF2jiEHqeSa3/zz3HCHcHKE9teYCQZKULU9za1TIQGDKsVu+KNufUmit6TRZVdmuSCTIllqZBAIGE0UZQThvNAmhcJrkXRKIJnLg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", + "description": "A gas produced from vehicle emissions and the burning of fossil fuels.", + "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: 'nitrogen', label: 'Nitrogen 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\":\"Nitrogen dioxide\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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\":40,\"color\":\"#3B911C\"},{\"from\":40,\"to\":90,\"color\":\"#7CC322\"},{\"from\":90,\"to\":120,\"color\":\"#F89E0D\"},{\"from\":120,\"to\":230,\"color\":\"#F77410\"},{\"from\":230,\"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\":40,\"color\":\"#3B911C\"},{\"from\":40,\"to\":90,\"color\":\"#7CC322\"},{\"from\":90,\"to\":120,\"color\":\"#F89E0D\"},{\"from\":120,\"to\":230,\"color\":\"#F77410\"},{\"from\":230,\"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_(1).png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Nitrogen dioxide (NO2) card with background\",\"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", + "nitrogen dioxide" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__chart_card.json b/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__chart_card.json new file mode 100644 index 0000000000..188ba8da92 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__chart_card.json @@ -0,0 +1,40 @@ +{ + "fqn": "nitrogen_dioxide_no2_chart_card", + "name": "Nitrogen dioxide (NO2) chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "A gas produced from vehicle emissions and the burning of fossil fuels. 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: 'nitrogen', label: 'Nitrogen 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, 'nitrogen', 'µ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\":\"Nitrogen dioxide\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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\":40,\"color\":\"#3FA71A\"},{\"from\":40,\"to\":90,\"color\":\"#80C32C\"},{\"from\":90,\"to\":120,\"color\":\"#FFA600\"},{\"from\":120,\"to\":230,\"color\":\"#F36900\"},{\"from\":230,\"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() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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\":\"Nitrogen 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", + "nitrogen", + "nitrogen dioxide" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__chart_card_with_background.json b/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__chart_card_with_background.json new file mode 100644 index 0000000000..3252bc47f8 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/nitrogen_dioxide__no2__chart_card_with_background.json @@ -0,0 +1,40 @@ +{ + "fqn": "nitrogen_dioxide_no2_chart_card_with_background", + "name": "Nitrogen dioxide (NO2) chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "A gas produced from vehicle emissions and the burning of fossil fuels. 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: 'nitrogen', label: 'Nitrogen 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, 'nitrogen', 'µ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\":\"Nitrogen dioxide\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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\":40,\"color\":\"#3B911C\"},{\"from\":40,\"to\":90,\"color\":\"#7CC322\"},{\"from\":90,\"to\":120,\"color\":\"#F89E0D\"},{\"from\":120,\"to\":230,\"color\":\"#F77410\"},{\"from\":230,\"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() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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_(1).png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Nitrogen 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", + "nitrogen", + "nitrogen dioxide" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_nitrogen_dioxide__no2__chart_card.json b/application/src/main/data/json/system/widget_types/simple_nitrogen_dioxide__no2__chart_card.json new file mode 100644 index 0000000000..aac068de3a --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_nitrogen_dioxide__no2__chart_card.json @@ -0,0 +1,40 @@ +{ + "fqn": "simple_nitrogen_dioxide_no2_chart_card", + "name": "Simple nitrogen dioxide (NO2) chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "A gas produced from vehicle emissions and the burning of fossil fuels. 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: 'nitrogen', label: 'Nitrogen dioxide', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'nitrogen', 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\":\"Nitrogen dioxide\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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\":40,\"color\":\"#3FA71A\"},{\"from\":40,\"to\":90,\"color\":\"#80C32C\"},{\"from\":90,\"to\":120,\"color\":\"#FFA600\"},{\"from\":120,\"to\":230,\"color\":\"#F36900\"},{\"from\":230,\"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\":\"Nitrogen 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", + "nitrogen", + "nitrogen dioxide" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_nitrogen_dioxide__no2__chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_nitrogen_dioxide__no2__chart_card_with_background.json new file mode 100644 index 0000000000..cbad051b1f --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_nitrogen_dioxide__no2__chart_card_with_background.json @@ -0,0 +1,40 @@ +{ + "fqn": "simple_nitrogen_dioxide_no2_chart_card_with_background", + "name": "Simple nitrogen dioxide (NO2) chart card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAL0UExURUdwTNzm7t/m7sDK1L7I0jk2KklJOc3V3zAwJi4sI7PAz0NGOfP1+Ons8PL09+7y9evu8ujr7+/z9vH09+7x8zuRHOrt8evu8+3w8/Dy9PP09ujs8Obp7tPU1ubq7uXp7eHl6vHz9uLn7NXW1x4fH/Hz9+To7NfY2dHS08/Q0fT1983O0M/R0vT2+Ofr7tLT1dXX2e3x9Nrb3Ort8OLm6xAWGvDy9eXm5667y9PV2LC9zay5ybTBz9jZ29jX2B0eHuzv8+zu8fDx9NTV1t3d3RcfIhMZG9vk7aW1xdPT1dHR07bC0Km3x+fn6OTo7RQdIRUcHtrh6+Dg3+3w89DU2Nna3MrMztLX2+7v8Q0TFvT2+fb4+SosK+Li4eHi5M/S1trc3tvd4MrV4cDM2uPk5+zu78fQ2d7l7sXR3sPP3Dg5Ounq6+fo6sfT397h46m5yczP0bK/zd3f4BskJrzG0eXn6lJTVU5LO6Szw97i5kpINerr7RsiItjg6dbY27G+z73L2Ozs7c7R07bBzbG9ydTZ3hEaH+Dj5t/h4Ons77/J00RDLzlGVUA/L7fE0kRGRyIpJ+Dn77nEz83X42SlTcXO10VENjI2L1RPQD09KyAmIiApMNvg5MHM1rvI1i0wKyspIp6uvm1vcOXk48bJyrbLr+Dk6fn5+rjF1J+wwi5BUhocGtfd4qKxwdHV2tfb35GSlDk6Krq8vnl6fAsODmBdPBkkKh8uOVpYOIaIioKDhdHa5JusvGhqa9Xd5465fr7AwsTQwi05QXuwaCgxNa66xE6ZM1CcNVRRNDQ1JiQ1QK7Gpk5pfzlBR0aWKJiqu5+/lJy9kcvT2TIuJKTDmElecam2xMrXx5Wmt6OkpnOTrp2foa6wslhugjlBNoi0eSAiG1l0jEpOUEJRXj1TaLS3utff1L/RunOrYGGBm2mJpWhmQlqgQaeqrRUXElxVRo6fsWBhY1peX5e/iZGjtKCho6K6z5qdn3+fuYimwJSwxkdwTJd0Z5sAAAD8dFJOUwC/r7/v7+8gILqvsP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AOj9H5MAAClRSURBVHja7JdPaFprGsadmQuFoaaaBmvMJanhSwaEhusYch01JM0mgiKE2ymlV6b0D2l7mNYe8B4sg/VSA0OyiMTQzXDbEgmlgQkVXeUvbrIudFEIZjXgMosWQrfzvO/3fUftvbOarc9Rc84xfr6/73mf7xwdjp566qmnnnrqqaeeeuqpp5566qmnnnrqqaf/X+f+8M3KSrlcTBQi0XA4Eg5Hk+GwiZdIJFwwY0VSIVIomIlylrTSrWwWp8usommGl5bC0fDS0RKLP1ss01YuJxLFRCyRWMWWSBRIEWx0FOMH3sL+6tvV1dW3r36+Cz188ODO+vre4eFhfoE1Pz9/39ba6Npaao11//fnwPFNlgsxC9F4PJnJRJPJZDQaRTkAAVikGCvEIhGzQCVly50ovJeV57LlYtGMRKP8YegIIzCMqXBIsVjRBE0sEQOFHJ2qj2mBZ5X19pUGuXNHkuSJZf7NwhubxcZYu792P3/O8UfTxHyZ4Qhq2Nra2o7ncigmCXOUTNPEl8YKmO9YkWc+S+UDnvilGTguYiai8VycPh09Sn7k+YA/7AzBLJkYwVQlm8wBkEKMQEwbRNnyVnIsPgLIugTJLzydB8vCmwXNssbPNd75nQP1RyBMYnx7//3+/vY2SKLJTJK+iOY2QgXEUAPaDvvwhasnA5ayCZRgJrIr2XKkgJ7M5fDxj1JJQsEYS7ZskoK5BI4MkRQUmPZklXuMHHl4l0AeSUvYkfxT7i/qsM4eI83nHZlkPEm5SMa3Njbev3+/v7Wd28ZkqkcSbxYTCXaFSCL0bcUEBYJJ+RnLlmMYIh7PbWxvAIW2HPqUTAkfHenIcKMReUR6Td0boSYrYOBCxKSgEA0M4ZA8fMAcNkiXumCw78ghGfjKeHx7Y2t/n0DoTJQZ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", + "description": "A gas produced from vehicle emissions and the burning of fossil fuels. 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: 'nitrogen', label: 'Nitrogen dioxide', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'nitrogen', 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\":\"Nitrogen dioxide\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 250) {\\n\\tvalue = 250;\\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\":40,\"color\":\"#3B911C\"},{\"from\":40,\"to\":90,\"color\":\"#7CC322\"},{\"from\":90,\"to\":120,\"color\":\"#F89E0D\"},{\"from\":120,\"to\":230,\"color\":\"#F77410\"},{\"from\":230,\"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_(1).png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Nitrogen 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", + "nitrogen", + "nitrogen dioxide" + ] +} \ No newline at end of file