Browse Source

Merge remote-tracking branch 'upstream/master' into AD/bug-fix/vc/entity-list

pull/9503/head
Artem Dzhereleiko 3 years ago
parent
commit
0f3e18bcc6
  1. 71
      application/src/main/data/json/system/widget_bundles/air_quality.json
  2. 1
      application/src/main/data/json/system/widget_bundles/alarm_widgets.json
  3. 1
      application/src/main/data/json/system/widget_bundles/analogue_gauges.json
  4. 1
      application/src/main/data/json/system/widget_bundles/cards.json
  5. 1
      application/src/main/data/json/system/widget_bundles/charts.json
  6. 1
      application/src/main/data/json/system/widget_bundles/control_widgets.json
  7. 1
      application/src/main/data/json/system/widget_bundles/count_widgets.json
  8. 1
      application/src/main/data/json/system/widget_bundles/date.json
  9. 1
      application/src/main/data/json/system/widget_bundles/digital_gauges.json
  10. 1
      application/src/main/data/json/system/widget_bundles/edge_widgets.json
  11. 1
      application/src/main/data/json/system/widget_bundles/entity_admin_widgets.json
  12. 1
      application/src/main/data/json/system/widget_bundles/entity_widgets.json
  13. 1
      application/src/main/data/json/system/widget_bundles/gateway_widgets.json
  14. 1
      application/src/main/data/json/system/widget_bundles/gpio_widgets.json
  15. 1
      application/src/main/data/json/system/widget_bundles/home_page_widgets.json
  16. 1
      application/src/main/data/json/system/widget_bundles/html_widgets.json
  17. 91
      application/src/main/data/json/system/widget_bundles/indoor_environment.json
  18. 1
      application/src/main/data/json/system/widget_bundles/input_widgets.json
  19. 23
      application/src/main/data/json/system/widget_bundles/liquid_level_tanks.json
  20. 1
      application/src/main/data/json/system/widget_bundles/maps.json
  21. 1
      application/src/main/data/json/system/widget_bundles/navigation_widgets.json
  22. 111
      application/src/main/data/json/system/widget_bundles/outdoor_environment.json
  23. 1
      application/src/main/data/json/system/widget_bundles/status_indicators.json
  24. 1
      application/src/main/data/json/system/widget_bundles/tables.json
  25. 28
      application/src/main/data/json/system/widget_types/air_quality_card.json
  26. 28
      application/src/main/data/json/system/widget_types/air_quality_card_with_background.json
  27. 31
      application/src/main/data/json/system/widget_types/air_quality_chart_card.json
  28. 31
      application/src/main/data/json/system/widget_types/air_quality_chart_card_with_background.json
  29. 32
      application/src/main/data/json/system/widget_types/air_quality_index_card.json
  30. 32
      application/src/main/data/json/system/widget_types/air_quality_index_card_with_background.json
  31. 35
      application/src/main/data/json/system/widget_types/air_quality_index_chart_card.json
  32. 35
      application/src/main/data/json/system/widget_types/air_quality_index_chart_card_with_background.json
  33. 3
      application/src/main/data/json/system/widget_types/alarm_count.json
  34. 3
      application/src/main/data/json/system/widget_types/alarms_table.json
  35. 4
      application/src/main/data/json/system/widget_types/asset_admin_table.json
  36. 40
      application/src/main/data/json/system/widget_types/co2_card.json
  37. 28
      application/src/main/data/json/system/widget_types/co2_card_with_background.json
  38. 31
      application/src/main/data/json/system/widget_types/co2_chart_card.json
  39. 31
      application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json
  40. 8
      application/src/main/data/json/system/widget_types/compass.json
  41. 4
      application/src/main/data/json/system/widget_types/device_admin_table.json
  42. 29
      application/src/main/data/json/system/widget_types/flooding_level_card.json
  43. 29
      application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json
  44. 32
      application/src/main/data/json/system/widget_types/flooding_level_chart_card.json
  45. 32
      application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json
  46. 30
      application/src/main/data/json/system/widget_types/flooding_level_progress_bar.json
  47. 30
      application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json
  48. 29
      application/src/main/data/json/system/widget_types/ground_temperature_card.json
  49. 29
      application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json
  50. 32
      application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json
  51. 32
      application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json
  52. 24
      application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json
  53. 28
      application/src/main/data/json/system/widget_types/horizontal_air_quality_card.json
  54. 28
      application/src/main/data/json/system/widget_types/horizontal_air_quality_card_with_background.json
  55. 32
      application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card.json
  56. 32
      application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card_with_background.json
  57. 24
      application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json
  58. 28
      application/src/main/data/json/system/widget_types/horizontal_co2_card.json
  59. 28
      application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json
  60. 24
      application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json
  61. 24
      application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json
  62. 24
      application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json
  63. 29
      application/src/main/data/json/system/widget_types/horizontal_flooding_level_card.json
  64. 29
      application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json
  65. 29
      application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card.json
  66. 29
      application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json
  67. 2
      application/src/main/data/json/system/widget_types/horizontal_humidity_card.json
  68. 2
      application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json
  69. 28
      application/src/main/data/json/system/widget_types/horizontal_illuminance_card.json
  70. 28
      application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json
  71. 29
      application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card.json
  72. 29
      application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json
  73. 28
      application/src/main/data/json/system/widget_types/horizontal_noise_level_card.json
  74. 28
      application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json
  75. 24
      application/src/main/data/json/system/widget_types/horizontal_oval_tank.json
  76. 30
      application/src/main/data/json/system/widget_types/horizontal_pm10_card.json
  77. 30
      application/src/main/data/json/system/widget_types/horizontal_pm10_card_with_background.json
  78. 30
      application/src/main/data/json/system/widget_types/horizontal_pm2_5_card.json
  79. 30
      application/src/main/data/json/system/widget_types/horizontal_pm2_5_card_with_background.json
  80. 2
      application/src/main/data/json/system/widget_types/horizontal_pressure_card.json
  81. 2
      application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json
  82. 29
      application/src/main/data/json/system/widget_types/horizontal_radon_level_card.json
  83. 29
      application/src/main/data/json/system/widget_types/horizontal_radon_level_card_with_background.json
  84. 2
      application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json
  85. 2
      application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json
  86. 28
      application/src/main/data/json/system/widget_types/horizontal_snow_depth_card.json
  87. 28
      application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json
  88. 29
      application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card.json
  89. 29
      application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json
  90. 2
      application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json
  91. 2
      application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json
  92. 2
      application/src/main/data/json/system/widget_types/horizontal_temperature_card.json
  93. 2
      application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json
  94. 2
      application/src/main/data/json/system/widget_types/horizontal_uv_index_card.json
  95. 2
      application/src/main/data/json/system/widget_types/horizontal_uv_index_card_with_background.json
  96. 2
      application/src/main/data/json/system/widget_types/horizontal_value_card.json
  97. 28
      application/src/main/data/json/system/widget_types/horizontal_vibration_card.json
  98. 28
      application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json
  99. 28
      application/src/main/data/json/system/widget_types/horizontal_visibility_card.json
  100. 28
      application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json

71
application/src/main/data/json/system/widget_bundles/air_quality.json

@ -0,0 +1,71 @@
{
"widgetsBundle": {
"alias": "air_quality",
"title": "Air quality",
"image": "data:image/png;base64,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",
"description": "Contains widgets displaying air quality telemetry.",
"order": 12600,
"externalId": null,
"name": "Air quality"
},
"widgetTypeFqns": [
"air_quality_card",
"air_quality_card_with_background",
"horizontal_air_quality_card",
"horizontal_air_quality_card_with_background",
"air_quality_chart_card",
"air_quality_chart_card_with_background",
"simple_air_quality_chart_card",
"simple_air_quality_chart_card_with_background",
"humidity_card",
"humidity_card_with_background",
"horizontal_humidity_card",
"horizontal_humidity_card_with_background",
"humidity_chart_card",
"humidity_chart_card_with_background",
"simple_humidity_chart_card",
"simple_humidity_chart_card_with_background",
"humidity_progress_bar",
"humidity_progress_bar_with_background",
"co2_card",
"co2_card_with_background",
"horizontal_co2_card",
"horizontal_co2_card_with_background",
"co2_chart_card",
"co2_chart_card_with_background",
"simple_co2_chart_card",
"simple_co2_chart_card_with_background",
"pm2_5_card",
"pm2_5_card_with_background",
"horizontal_pm2_5_card",
"horizontal_pm2_5_card_with_background",
"pm2_5_chart_card",
"pm2_5_chart_card_with_background",
"simple_pm2_5_chart_card",
"simple_pm2_5_chart_card_with_background",
"pm10_card",
"pm10_card_with_background",
"horizontal_pm10_card",
"horizontal_pm10_card_with_background",
"pm10_chart_card",
"pm10_chart_card_with_background",
"simple_pm10_chart_card",
"simple_pm10_chart_card_with_background",
"radon_level_card",
"radon_level_card_with_background",
"horizontal_radon_level_card",
"horizontal_radon_level_card_with_background",
"radon_level_chart_card",
"radon_level_chart_card_with_background",
"simple_radon_level_chart_card",
"simple_radon_level_chart_card_with_background",
"volatile_organic_compounds_card",
"volatile_organic_compounds_card_with_background",
"horizontal_volatile_organic_compounds_card",
"horizontal_volatile_organic_compounds_card_with_background",
"volatile_organic_compounds_chart_card",
"volatile_organic_compounds_chart_card_with_background",
"simple_volatile_organic_compounds_chart_card",
"simple_volatile_organic_compounds_chart_card_with_background"
]
}

1
application/src/main/data/json/system/widget_bundles/alarm_widgets.json

@ -4,6 +4,7 @@
"title": "Alarm widgets",
"image": "data:image/png;base64,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",
"description": "Visualization of alarms for devices, assets, and other entities.",
"order": 3000,
"externalId": null,
"name": "Alarm widgets"
},

1
application/src/main/data/json/system/widget_bundles/analogue_gauges.json

File diff suppressed because one or more lines are too long

1
application/src/main/data/json/system/widget_bundles/cards.json

File diff suppressed because one or more lines are too long

1
application/src/main/data/json/system/widget_bundles/charts.json

File diff suppressed because one or more lines are too long

1
application/src/main/data/json/system/widget_bundles/control_widgets.json

File diff suppressed because one or more lines are too long

1
application/src/main/data/json/system/widget_bundles/count_widgets.json

@ -4,6 +4,7 @@
"title": "Count widgets",
"image": "data:image/png;base64,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",
"description": "Cards to display the number of alarms or entities based on the selected filter.",
"order": 5000,
"externalId": null,
"name": "Count widgets"
},

1
application/src/main/data/json/system/widget_bundles/date.json

@ -4,6 +4,7 @@
"title": "Date",
"image": "data:image/png;base64,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",
"description": "Contains widgets to change the data range for other widgets on the dashboard.",
"order": 20000,
"externalId": null,
"name": "Date"
},

1
application/src/main/data/json/system/widget_bundles/digital_gauges.json

File diff suppressed because one or more lines are too long

1
application/src/main/data/json/system/widget_bundles/edge_widgets.json

@ -4,6 +4,7 @@
"title": "Edge widgets",
"image": "data:image/png;base64,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",
"description": "Widgets to manage ThingsBoard Edge instances and navigate through their entities.",
"order": 16000,
"externalId": null,
"name": "Edge widgets"
},

1
application/src/main/data/json/system/widget_bundles/entity_admin_widgets.json

@ -4,6 +4,7 @@
"title": "Entity admin widgets",
"image": "data:image/png;base64,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",
"description": "Templates of complex widgets that allow to list and create/update/delete devices and assets.",
"order": 13000,
"externalId": null,
"name": "Entity admin widgets"
},

1
application/src/main/data/json/system/widget_bundles/entity_widgets.json

@ -4,6 +4,7 @@
"title": "Entity widgets",
"image": "data:image/png;base64,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",
"description": "Visualize entity properties and hierarchy using table and tree widgets.",
"order": 17000,
"externalId": null,
"name": "Entity widgets"
},

1
application/src/main/data/json/system/widget_bundles/gateway_widgets.json

File diff suppressed because one or more lines are too long

1
application/src/main/data/json/system/widget_bundles/gpio_widgets.json

File diff suppressed because one or more lines are too long

1
application/src/main/data/json/system/widget_bundles/home_page_widgets.json

File diff suppressed because one or more lines are too long

1
application/src/main/data/json/system/widget_bundles/html_widgets.json

File diff suppressed because one or more lines are too long

91
application/src/main/data/json/system/widget_bundles/indoor_environment.json

@ -0,0 +1,91 @@
{
"widgetsBundle": {
"alias": "indoor_environment",
"title": "Indoor Environment",
"image": "data:image/png;base64,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",
"description": "Contains widgets displaying indoor environment telemetry.",
"order": 10000,
"externalId": null,
"name": "Indoor Environment"
},
"widgetTypeFqns": [
"indoor_temperature_card",
"indoor_temperature_card_with_background",
"indoor_horizontal_temperature_card",
"indoor_horizontal_temperature_card_with_background",
"indoor_temperature_chart_card",
"indoor_temperature_chart_card_with_background",
"indoor_simple_temperature_chart_card",
"indoor_simple_temperature_chart_card_with_background",
"indoor_temperature_progress_bar",
"indoor_temperature_progress_bar_with_background",
"indoor_humidity_card",
"indoor_humidity_card_with_background",
"indoor_horizontal_humidity_card",
"indoor_horizontal_humidity_card_with_background",
"indoor_humidity_chart_card",
"indoor_humidity_chart_card_with_background",
"indoor_simple_humidity_chart_card",
"indoor_simple_humidity_chart_card_with_background",
"indoor_humidity_progress_bar",
"indoor_humidity_progress_bar_with_background",
"indoor_co2_card",
"indoor_co2_card_with_background",
"indoor_horizontal_co2_card",
"indoor_horizontal_co2_card_with_background",
"indoor_co2_chart_card",
"indoor_co2_chart_card_with_background",
"indoor_simple_co2_chart_card",
"indoor_simple_co2_chart_card_with_background",
"indoor_illuminance_card",
"indoor_illuminance_card_with_background",
"indoor_horizontal_illuminance_card",
"indoor_horizontal_illuminance_card_with_background",
"indoor_illuminance_chart_card",
"indoor_illuminance_chart_card_with_background",
"indoor_simple_illuminance_chart_card",
"indoor_simple_illuminance_chart_card_with_background",
"indoor_illuminance_progress_bar",
"indoor_illuminance_progress_bar_with_background",
"noise_level_card",
"noise_level_card_with_background",
"horizontal_noise_level_card",
"horizontal_noise_level_card_with_background",
"noise_level_chart_card",
"noise_level_chart_card_with_background",
"simple_noise_level_chart_card",
"simple_noise_level_chart_card_with_background",
"indoor_pm2_5_card",
"indoor_pm2_5_card_with_background",
"indoor_horizontal_pm2_5_card",
"indoor_horizontal_pm2_5_card_with_background",
"indoor_pm2_5_chart_card",
"indoor_pm2_5_chart_card_with_background",
"indoor_simple_pm2_5_chart_card",
"indoor_simple_pm2_5_chart_card_with_background",
"indoor_pm10_card",
"indoor_pm10_card_with_background",
"indoor_horizontal_pm10_card",
"indoor_horizontal_pm10_card_with_background",
"indoor_pm10_chart_card",
"indoor_pm10_chart_card_with_background",
"indoor_simple_pm10_chart_card",
"indoor_simple_pm10_chart_card_with_background",
"radon_level_card",
"radon_level_card_with_background",
"horizontal_radon_level_card",
"horizontal_radon_level_card_with_background",
"radon_level_chart_card",
"radon_level_chart_card_with_background",
"simple_radon_level_chart_card",
"simple_radon_level_chart_card_with_background",
"volatile_organic_compounds_card",
"volatile_organic_compounds_card_with_background",
"horizontal_volatile_organic_compounds_card",
"horizontal_volatile_organic_compounds_card_with_background",
"volatile_organic_compounds_chart_card",
"volatile_organic_compounds_chart_card_with_background",
"simple_volatile_organic_compounds_chart_card",
"simple_volatile_organic_compounds_chart_card_with_background"
]
}

1
application/src/main/data/json/system/widget_bundles/input_widgets.json

File diff suppressed because one or more lines are too long

23
application/src/main/data/json/system/widget_bundles/liquid_level_tanks.json

@ -0,0 +1,23 @@
{
"widgetsBundle": {
"alias": "liquid_level_tanks",
"title": "Liquid level",
"image": "data:image/png;base64,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",
"description": "Visualize the level of liquid inside the tank. Supports various tank shapes.",
"order": 12000,
"externalId": null,
"name": "Liquid level"
},
"widgetTypeFqns": [
"vertical_cylinder_tank",
"rectangle_tank",
"horizontal_cylinder_tank",
"horizontal_ellipse_tank",
"horizontal_oval_tank",
"vertical_oval_tank",
"horizontal_capsule_tank",
"vertical_capsule_tank",
"horizontal_2_1_elliptical_tank",
"horizontal_dish_ends_tank"
]
}

1
application/src/main/data/json/system/widget_bundles/maps.json

File diff suppressed because one or more lines are too long

1
application/src/main/data/json/system/widget_bundles/navigation_widgets.json

File diff suppressed because one or more lines are too long

111
application/src/main/data/json/system/widget_bundles/outdoor_environment.json

@ -2,8 +2,9 @@
"widgetsBundle": {
"alias": "outdoor_environment",
"title": "Outdoor Environment",
"image": null,
"description": null,
"image": "data:image/png;base64,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",
"description": "Contains widgets displaying outdoor environment telemetry.",
"order": 11000,
"externalId": null,
"name": "Outdoor Environment"
},
@ -77,6 +78,110 @@
"air_quality_chart_card",
"air_quality_chart_card_with_background",
"simple_air_quality_chart_card",
"simple_air_quality_chart_card_with_background"
"simple_air_quality_chart_card_with_background",
"visibility_card",
"visibility_card_with_background",
"horizontal_visibility_card",
"horizontal_visibility_card_with_background",
"visibility_chart_card",
"visibility_chart_card_with_background",
"simple_visibility_chart_card",
"simple_visibility_chart_card_with_background",
"ground_temperature_card",
"ground_temperature_card_with_background",
"horizontal_ground_temperature_card",
"horizontal_ground_temperature_card_with_background",
"ground_temperature_chart_card",
"ground_temperature_chart_card_with_background",
"simple_ground_temperature_chart_card",
"simple_ground_temperature_chart_card_with_background",
"soil_moisture_card",
"soil_moisture_card_with_background",
"horizontal_soil_moisture_card",
"horizontal_soil_moisture_card_with_background",
"soil_moisture_chart_card",
"soil_moisture_chart_card_with_background",
"simple_soil_moisture_chart_card",
"simple_soil_moisture_chart_card_with_background",
"soil_moisture_progress_bar",
"soil_moisture_progress_bar_with_background",
"noise_level_card",
"noise_level_card_with_background",
"horizontal_noise_level_card",
"horizontal_noise_level_card_with_background",
"noise_level_chart_card",
"noise_level_chart_card_with_background",
"simple_noise_level_chart_card",
"simple_noise_level_chart_card_with_background",
"vibration_card",
"vibration_card_with_background",
"horizontal_vibration_card",
"horizontal_vibration_card_with_background",
"vibration_chart_card",
"vibration_chart_card_with_background",
"simple_vibration_chart_card",
"simple_vibration_chart_card_with_background",
"leaf_wetness_card",
"leaf_wetness_card_with_background",
"horizontal_leaf_wetness_card",
"horizontal_leaf_wetness_card_with_background",
"leaf_wetness_chart_card",
"leaf_wetness_chart_card_with_background",
"simple_leaf_wetness_chart_card",
"simple_leaf_wetness_chart_card_with_background",
"leaf_wetness_progress_bar",
"leaf_wetness_progress_bar_with_background",
"snow_depth_card",
"snow_depth_card_with_background",
"horizontal_snow_depth_card",
"horizontal_snow_depth_card_with_background",
"snow_depth_chart_card",
"snow_depth_chart_card_with_background",
"simple_snow_depth_chart_card",
"simple_snow_depth_chart_card_with_background",
"co2_card",
"co2_card_with_background",
"horizontal_co2_card",
"horizontal_co2_card_with_background",
"co2_chart_card",
"co2_chart_card_with_background",
"simple_co2_chart_card",
"simple_co2_chart_card_with_background",
"flooding_level_card",
"flooding_level_card_with_background",
"horizontal_flooding_level_card",
"horizontal_flooding_level_card_with_background",
"flooding_level_chart_card",
"flooding_level_chart_card_with_background",
"simple_flooding_level_chart_card",
"simple_flooding_level_chart_card_with_background",
"flooding_level_progress_bar",
"flooding_level_progress_bar_with_background",
"illuminance_card",
"illuminance_card_with_background",
"horizontal_illuminance_card",
"horizontal_illuminance_card_with_background",
"illuminance_chart_card",
"illuminance_chart_card_with_background",
"simple_illuminance_chart_card",
"simple_illuminance_chart_card_with_background",
"illuminance_progress_bar",
"illuminance_progress_bar_with_background",
"pm2_5_card",
"pm2_5_card_with_background",
"horizontal_pm2_5_card",
"horizontal_pm2_5_card_with_background",
"pm2_5_chart_card",
"pm2_5_chart_card_with_background",
"simple_pm2_5_chart_card",
"simple_pm2_5_chart_card_with_background",
"pm10_card",
"pm10_card_with_background",
"horizontal_pm10_card",
"horizontal_pm10_card_with_background",
"pm10_chart_card",
"pm10_chart_card_with_background",
"simple_pm10_chart_card",
"simple_pm10_chart_card_with_background"
]
}

1
application/src/main/data/json/system/widget_bundles/status_indicators.json

@ -4,6 +4,7 @@
"title": "Status indicators",
"image": "data:image/png;base64,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",
"description": "Contains widgets displaying battery level and signal strength.",
"order": 9000,
"externalId": null,
"name": "Status indicators"
},

1
application/src/main/data/json/system/widget_bundles/tables.json

@ -4,6 +4,7 @@
"title": "Tables",
"image": "data:image/png;base64,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",
"description": "Contains tables to display alarms, entities, and their telemetry.",
"order": 4000,
"externalId": null,
"name": "Tables"
},

28
application/src/main/data/json/system/widget_types/air_quality_card.json

@ -1,28 +0,0 @@
{
"fqn": "air_quality_card",
"name": "Air quality card",
"deprecated": false,
"image": "data:image/png;base64,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",
"description": "Displays a latest air quality telemetry data in a box layout.",
"descriptor": {
"type": "latest",
"sizeX": 3,
"sizeY": 3,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'air', label: 'Air Quality', 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\":\"Air Quality\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\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\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"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\":\"mdi:weather-windy\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":100,\"color\":\"#FFA600\"},{\"from\":100,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":200,\"color\":\"#D81838\"},{\"from\":200,\"to\":300,\"color\":\"#8D268C\"},{\"from\":300,\"to\":null,\"color\":\"#6F113A\"}],\"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\":26,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":100,\"color\":\"#FFA600\"},{\"from\":100,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":200,\"color\":\"#D81838\"},{\"from\":200,\"to\":300,\"color\":\"#8D268C\"},{\"from\":300,\"to\":null,\"color\":\"#6F113A\"}]},\"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\":\"Air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"US AQI\",\"decimals\":1,\"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": [
"weather",
"environment",
"air"
]
}

28
application/src/main/data/json/system/widget_types/air_quality_card_with_background.json

File diff suppressed because one or more lines are too long

31
application/src/main/data/json/system/widget_types/air_quality_chart_card.json

File diff suppressed because one or more lines are too long

31
application/src/main/data/json/system/widget_types/air_quality_chart_card_with_background.json

File diff suppressed because one or more lines are too long

32
application/src/main/data/json/system/widget_types/air_quality_index_card.json

@ -0,0 +1,32 @@
{
"fqn": "air_quality_card",
"name": "Air quality index card",
"deprecated": false,
"image": "data:image/png;base64,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",
"description": "Displays the latest air quality index telemetry in a box layout.",
"descriptor": {
"type": "latest",
"sizeX": 3,
"sizeY": 3,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'air', label: 'Air Quality Index', 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\":\"Air Quality Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\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\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"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\":\"mdi:weather-windy\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":100,\"color\":\"#FFA600\"},{\"from\":100,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":200,\"color\":\"#D81838\"},{\"from\":200,\"to\":300,\"color\":\"#8D268C\"},{\"from\":300,\"to\":null,\"color\":\"#6F113A\"}],\"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\":26,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":100,\"color\":\"#FFA600\"},{\"from\":100,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":200,\"color\":\"#D81838\"},{\"from\":200,\"to\":300,\"color\":\"#8D268C\"},{\"from\":300,\"to\":null,\"color\":\"#6F113A\"}]},\"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\":\"Air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"AQI\",\"decimals\":1,\"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": [
"weather",
"environment",
"air",
"aqi",
"pollution",
"emission",
"smog"
]
}

32
application/src/main/data/json/system/widget_types/air_quality_index_card_with_background.json

File diff suppressed because one or more lines are too long

35
application/src/main/data/json/system/widget_types/air_quality_index_chart_card.json

File diff suppressed because one or more lines are too long

35
application/src/main/data/json/system/widget_types/air_quality_index_chart_card_with_background.json

File diff suppressed because one or more lines are too long

3
application/src/main/data/json/system/widget_types/alarm_count.json

@ -19,5 +19,8 @@
"basicModeDirective": "tb-alarm-count-basic-config",
"defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"count\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = Number((prevValue + Math.random() * 4 - 2).toFixed(0));\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"],\"assignedToCurrentUser\":false,\"assigneeId\":null}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"showLabel\":true,\"label\":\"Total\",\"labelFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.54)\",\"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\":20,\"iconSizeUnit\":\"px\",\"icon\":\"warning\",\"iconColor\":{\"type\":\"constant\",\"color\":\"rgba(255, 255, 255, 1)\",\"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';\"},\"showIconBackground\":true,\"iconBackgroundSize\":36,\"iconBackgroundSizeUnit\":\"px\",\"iconBackgroundColor\":{\"type\":\"range\",\"color\":\"rgba(0, 105, 92, 1)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"rgba(0, 105, 92, 1)\"},{\"from\":1,\"to\":null,\"color\":\"rgba(209, 39, 48, 1)\"}],\"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\":{\"family\":\"Roboto\",\"size\":20,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"24px\"},\"valueColor\":{\"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';\"},\"showChevron\":false,\"chevronSize\":24,\"chevronSizeUnit\":\"px\",\"chevronColor\":\"rgba(0, 0, 0, 0.38)\",\"layout\":\"column\"},\"title\":\"Alarm count\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":null,\"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\"},\"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},\"titleColor\":\"rgba(0, 0, 0, 0.54)\"}"
},
"tags": [
"alert"
],
"externalId": null
}

3
application/src/main/data/json/system/widget_types/alarms_table.json

@ -20,5 +20,8 @@
"basicModeDirective": "tb-alarms-table-basic-config",
"defaultConfig": "{\"timewindow\":{\"realtime\":{\"interval\":1000,\"timewindowMs\":86400000},\"aggregation\":{\"type\":\"NONE\",\"limit\":200}},\"showTitle\":true,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"4px\",\"settings\":{\"enableSelection\":true,\"enableSearch\":true,\"displayDetails\":true,\"allowAcknowledgment\":true,\"allowClear\":true,\"allowAssign\":true,\"displayActivity\":true,\"displayPagination\":true,\"defaultPageSize\":10,\"defaultSortOrder\":\"-createdTime\",\"enableSelectColumnDisplay\":true,\"enableStickyAction\":false,\"enableFilter\":true,\"entitiesTitle\":null,\"alarmsTitle\":\"Alarms\"},\"title\":\"Alarms table\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400,\"padding\":\"5px 10px 5px 10px\"},\"useDashboardTimewindow\":false,\"showLegend\":false,\"alarmSource\":{\"type\":\"function\",\"dataKeys\":[{\"name\":\"createdTime\",\"type\":\"alarm\",\"label\":\"Created time\",\"color\":\"#2196f3\",\"settings\":{\"useCellStyleFunction\":false,\"cellStyleFunction\":\"\",\"useCellContentFunction\":false,\"cellContentFunction\":\"\"},\"_hash\":0.021092237451093787},{\"name\":\"originator\",\"type\":\"alarm\",\"label\":\"Originator\",\"color\":\"#4caf50\",\"settings\":{\"useCellStyleFunction\":false,\"cellStyleFunction\":\"\",\"useCellContentFunction\":false,\"cellContentFunction\":\"\"},\"_hash\":0.2780007688856758},{\"name\":\"type\",\"type\":\"alarm\",\"label\":\"Type\",\"color\":\"#f44336\",\"settings\":{\"useCellStyleFunction\":false,\"cellStyleFunction\":\"\",\"useCellContentFunction\":false,\"cellContentFunction\":\"\"},\"_hash\":0.7323586880398418},{\"name\":\"severity\",\"type\":\"alarm\",\"label\":\"Severity\",\"color\":\"#ffc107\",\"settings\":{\"useCellStyleFunction\":false,\"useCellContentFunction\":false},\"_hash\":0.09927019860088193},{\"name\":\"status\",\"type\":\"alarm\",\"label\":\"Status\",\"color\":\"#607d8b\",\"settings\":{\"useCellStyleFunction\":false,\"cellStyleFunction\":\"\",\"useCellContentFunction\":false,\"cellContentFunction\":\"\"},\"_hash\":0.6588418951443418},{\"name\":\"assignee\",\"type\":\"alarm\",\"label\":\"Assignee\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.5008441077416634}],\"entityAliasId\":null,\"name\":\"alarms\"},\"alarmSearchStatus\":\"ANY\",\"alarmsPollingInterval\":5,\"showTitleIcon\":false,\"titleIcon\":\"warning\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"displayTimewindow\":true,\"actions\":{},\"alarmStatusList\":[],\"alarmSeverityList\":[],\"alarmTypeList\":[],\"searchPropagatedAlarms\":false,\"configMode\":\"basic\",\"alarmFilterConfig\":null}"
},
"tags": [
"alert"
],
"externalId": null
}

4
application/src/main/data/json/system/widget_types/asset_admin_table.json

File diff suppressed because one or more lines are too long

40
application/src/main/data/json/system/widget_types/co2_card.json

@ -0,0 +1,40 @@
{
"fqn": "co2_card",
"name": "CO2 card",
"deprecated": false,
"image": "data:image/png;base64,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",
"description": "Displays a latest CO2 level telemetry in a box layout.",
"descriptor": {
"type": "latest",
"sizeX": 3,
"sizeY": 3,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'co2', label: 'CO2 level', 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\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\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\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3FA71A\"},{\"from\":600,\"to\":1000,\"color\":\"#80C32C\"},{\"from\":1000,\"to\":1500,\"color\":\"#F36900\"},{\"from\":1500,\"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)\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3FA71A\"},{\"from\":600,\"to\":1000,\"color\":\"#80C32C\"},{\"from\":1000,\"to\":1500,\"color\":\"#F36900\"},{\"from\":1500,\"to\":null,\"color\":\"#D81838\"}]},\"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\":\"CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"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": [
"weather",
"environment",
"co2",
"carbon dioxide",
"carbon emission",
"carbon footprint",
"carbon output",
"carbon pollution",
"carbon capture",
"carbon offset",
"carbon reduction",
"carbon neutral",
"climate gas",
"fossil fuel emission",
"carbon cycle"
]
}

28
application/src/main/data/json/system/widget_types/co2_card_with_background.json

File diff suppressed because one or more lines are too long

31
application/src/main/data/json/system/widget_types/co2_chart_card.json

File diff suppressed because one or more lines are too long

31
application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json

File diff suppressed because one or more lines are too long

8
application/src/main/data/json/system/widget_types/compass.json

@ -11,11 +11,11 @@
"resources": [],
"templateHtml": "<canvas id=\"compass\"></canvas>",
"templateCss": "",
"controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueCompass(self.ctx, 'compass');\n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n",
"settingsSchema": "{}",
"controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueCompass(self.ctx, 'compass');\n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'direction', label: 'Direction', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", "settingsSchema": "{}",
"dataKeySettingsSchema": "{}\n",
"settingsDirective": "tb-analogue-compass-widget-settings",
"defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"minorTicks\":22,\"needleCircleSize\":15,\"showBorder\":true,\"borderOuterWidth\":10,\"colorPlate\":\"#222\",\"colorMajorTicks\":\"#f5f5f5\",\"colorMinorTicks\":\"#ddd\",\"colorNeedle\":\"#f08080\",\"colorNeedleCircle\":\"#e8e8e8\",\"colorBorder\":\"#ccc\",\"majorTickFont\":{\"family\":\"Roboto\",\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#ccc\"},\"animation\":true,\"animationDuration\":500,\"animationRule\":\"cycle\",\"animationTarget\":\"needle\",\"majorTicks\":[\"N\",\"NE\",\"E\",\"SE\",\"S\",\"SW\",\"W\",\"NW\"]},\"title\":\"Compass\",\"dropShadow\":true,\"enableFullscreen\":true,\"widgetStyle\":{},\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"actions\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\"}"
},
"hasBasicMode": true,
"basicModeDirective": "tb-compass-gauge-basic-config",
"defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"minorTicks\":22,\"needleCircleSize\":15,\"showBorder\":true,\"borderOuterWidth\":10,\"colorPlate\":\"#222\",\"colorMajorTicks\":\"#f5f5f5\",\"colorMinorTicks\":\"#ddd\",\"colorNeedle\":\"#f08080\",\"colorNeedleCircle\":\"#e8e8e8\",\"colorBorder\":\"#ccc\",\"majorTickFont\":{\"family\":\"Roboto\",\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#ccc\"},\"animation\":true,\"animationDuration\":500,\"animationRule\":\"cycle\",\"animationTarget\":\"needle\",\"majorTicks\":[\"N\",\"NE\",\"E\",\"SE\",\"S\",\"SW\",\"W\",\"NW\"]},\"title\":\"Compass\",\"dropShadow\":true,\"enableFullscreen\":true,\"widgetStyle\":{},\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"actions\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" },
"externalId": null
}

4
application/src/main/data/json/system/widget_types/device_admin_table.json

File diff suppressed because one or more lines are too long

29
application/src/main/data/json/system/widget_types/flooding_level_card.json

@ -0,0 +1,29 @@
{
"fqn": "flooding_level_card",
"name": "Flooding level card",
"deprecated": false,
"image": "data:image/png;base64,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",
"description": "Displays a latest flooding level telemetry in a box layout.",
"descriptor": {
"type": "latest",
"sizeX": 3,
"sizeY": 3,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'flooding', label: 'Flooding level', 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\":\"Flooding level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"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\":\"flood\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#234CC7\"},{\"from\":1,\"to\":3,\"color\":\"#F36900\"},{\"from\":3,\"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)\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#234CC7\"},{\"from\":1,\"to\":3,\"color\":\"#F36900\"},{\"from\":3,\"to\":null,\"color\":\"#D81838\"}]},\"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\":\"Flooding level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m\",\"decimals\":1,\"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": [
"weather",
"environment",
"flood",
"flooding"
]
}

29
application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json

File diff suppressed because one or more lines are too long

32
application/src/main/data/json/system/widget_types/flooding_level_chart_card.json

File diff suppressed because one or more lines are too long

32
application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json

File diff suppressed because one or more lines are too long

30
application/src/main/data/json/system/widget_types/flooding_level_progress_bar.json

@ -0,0 +1,30 @@
{
"fqn": "flooding_level_progress_bar",
"name": "Flooding level progress bar",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAnFBMVEXg4ODf39/g4ODg4OAAAAD////g4OD19fUjTMchISGsrKw9PT3j4+PIyMh0dHSQkJDx8fEvLy+CgoLI0vGenp7k6PhaeNVYWFjy9Pu6urqtvOqRpeM+Ys7V1dUwV8vv7+9KSkqsu+qDmt/X3vS6x+5LbdF1j9yGhoZmZmb39/efseePj4+5ubmpqamXl5dohNkxV8rCwsLj6fjk6fgljp4SAAAABXRSTlPvIL+vAC9A4IoAAARWSURBVHja7M9JEQAwCAPAUI43DvDvsjYCk3WwCHuo7dwChsn1GgbvPGAeKk/AlUgpQkYRNoqwUYSNImwUYaMIG0U+u2WvKjkMQ+HqFEeWfzGYFIaUKfL+z7eRcwMhy+xslaS4H8ygWFKsD2zI2/gVeRu/Im/jHyKrDBSO+IjlfFB8IFLwmUB/h4jjQL6KLFxfLuJ1I30V0Y6Xi+gRYENCmWD4EkT3oKjl1qjosdvjWA5Faz2LWAe2EuuXuHdOD4mkmTkz2GwWOAWEdCT3eYRbAXO3/FaQ3UlkdMxI2w9qf8EW4o0iVUT8LlJs44UCpUuIbLbs0fMhYstWpCZZeRLRPVXRqBBWCBeg0d972dsuMjMBngsKZeSSPVhwiERgYkBlBXAWGR3KZaQWKho7zOjmy27BMRndz+aNOrFcRTyDjX4RCRw0pNyQm/UM4iN3JGdgnPLA9RAJ/ytSZGOyrpVynFnpj4g021PG0YmAZgdlA5CvIlaDdBapLAAU1p+pVj8B6HhExNPVamMkxyIzo7kFWXgRsXyQdhYZKzELkPKQ78xVAvsjIhBHOttXZzLXn6DNVxGoI8NZBNpIlgSrFGx4N15xl8gVVewkTUeAv0nQpJwxuHYA5853f/220n1jxBfeLxK5EfCN94v8YYcOUgCCwgAIr/56iZWUkA3W7n87CsUGy3k13w1moqyKMj5lEPKLIYbkwhAaQ2gMoTGExhAaQ2gMoTGExhAaQ2gMoTGExhAaQ2gMoTGE5iNkqusmHppLGyivIfOYdusjZUmnPlDeQrp0GO7zxwxDNvbroMVBGAjD8Gnwuw+GIYZAownUS5f2//+3TVdddNl1m5MjzXOp0Etfpk7UwTNJt/3NwM1+6UmVnZABSNMMPujbXd0o/g8JAM+fPS0YGEijnRADtJSNwGU9Jpa2JXX2Q+jJrkM6IHrAqft/lYYEzAzpUhpiox9FrAMsqVIYsuB5JLYdu4G46w6/a/ZD5K+QZSfDhQQTO+eEDrQfcpu3VvfbxnUAZc9vQo6Qw5fyC+dIWp0jj5TsZiKcQ83z4kIH2g9hIFDm4GghcwAD5jQh5ICRJEw9g3ftNJ5bS+wAe54QXj/9mukhSxwmgc4TQhwB+CSUjfA9ZffkAfiRzhRCJNzLcik06/nwU+N939nPo4ZoU0O0qSHa1BBtaog2NUSbNwh5GKzFvlGhPCRiyzQqXItD8FOjQ3GIwVZsVCifyD1izei4R65vvLVOpoZoU0M+27t7FIZhGAzDzs/nQEihlCwejEZhjA2+/+XqExS8fXH1nkAPGjSKLYOw9QPScg1gqqlqG4eICirVukoUSeOQeAOBaiX1EmAc8ipskKxZZQbIBZznDJCer+MQ+Ry4I3g6+kCtjEMQNFcwFTRnwTgEKYEs+e/L/qwMwpZB2DIIWwZhyyBsGYQtg7BlELYMwpZB2JoI4jBF3q0TvJ4G3ptb3ATPp6Uz9mXzT8+ty/4FsaeuueShPysAAAAASUVORK5CYII=",
"description": "Displays flooding level reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.",
"descriptor": {
"type": "latest",
"sizeX": 3,
"sizeY": 2,
"resources": [],
"templateHtml": "<tb-progress-bar-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-progress-bar-widget>",
"templateCss": "",
"controllerScript": "self.onInit = function() {\n self.ctx.$scope.progressBarWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.progressBarWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '280px',\n previewHeight: '180px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'flooding', label: 'Flooding level', type: 'timeseries' }];\n }\n };\n};\n\n\nself.onDestroy = function() {\n};\n",
"settingsSchema": "",
"dataKeySettingsSchema": "",
"settingsDirective": "tb-progress-bar-widget-settings",
"hasBasicMode": true,
"basicModeDirective": "tb-progress-bar-basic-config",
"defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#234CC7\"},{\"from\":1,\"to\":3,\"color\":\"#F36900\"},{\"from\":3,\"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';\"},\"tickMin\":0,\"tickMax\":5,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#234CC7\"},{\"from\":1,\"to\":3,\"color\":\"#F36900\"},{\"from\":3,\"to\":null,\"color\":\"#D81838\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"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},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}"
},
"externalId": null,
"tags": [
"progress",
"weather",
"environment",
"flood",
"flooding"
]
}

30
application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json

File diff suppressed because one or more lines are too long

29
application/src/main/data/json/system/widget_types/ground_temperature_card.json

@ -0,0 +1,29 @@
{
"fqn": "ground_temperature_card",
"name": "Ground temperature card",
"deprecated": false,
"image": "data:image/png;base64,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",
"description": "Displays a latest ground temperature telemetry in a box layout.",
"descriptor": {
"type": "latest",
"sizeX": 3,
"sizeY": 3,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'temperature', label: 'Ground temperature', 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\":\"Ground temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\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\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"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\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#234CC7\"},{\"from\":-20,\"to\":0,\"color\":\"#305AD7\"},{\"from\":0,\"to\":10,\"color\":\"#7191EF\"},{\"from\":10,\"to\":20,\"color\":\"#FFA600\"},{\"from\":20,\"to\":30,\"color\":\"#F36900\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"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\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#234CC7\"},{\"from\":-20,\"to\":0,\"color\":\"#305AD7\"},{\"from\":0,\"to\":10,\"color\":\"#7191EF\"},{\"from\":10,\"to\":20,\"color\":\"#FFA600\"},{\"from\":20,\"to\":30,\"color\":\"#F36900\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#D81838\"}]},\"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\":\"Ground temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"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": [
"temperature",
"weather",
"environment",
"ground"
]
}

29
application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json

File diff suppressed because one or more lines are too long

32
application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json

File diff suppressed because one or more lines are too long

32
application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json

File diff suppressed because one or more lines are too long

24
application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json

File diff suppressed because one or more lines are too long

28
application/src/main/data/json/system/widget_types/horizontal_air_quality_card.json

@ -1,28 +0,0 @@
{
"fqn": "horizontal_air_quality_card",
"name": "Horizontal air quality card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAnFBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4OCg0mHP6bDv9+Xz8/Pf8MqQy0av2XuQkJDOzs73+/K/4ZWsrKzIyMj5+fnp6enV1dXb29u2trZYWFiIxznCwsKg0mC8vLzQ6a+enp643Yin1m6YzlPH5aPA4ZZKSkrn9Njn9NfY7L08PDyIxzq33YiCgoJ0dHRmZmY9PT0vLy8+mqJEAAAABnRSTlMAIEDfv1C6kOEmAAAD3ElEQVR42u3a63aTQBSG4WrrZgIzkHCGAInk2CbaVu//3twMEFBR2mXtol3f86OBbNLFC9ODNlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr+nDm6czPl4bb93s+hN3GBG9ecr4eHWj6B2Ibq5m9C7MEDIxCJkahEwNQqYGIVMzGHLIhSmpxyiJgoS0cBHQRRAkAU3il7WhkFux2grHo87DWVGSKKWIgix8LHnD4DxFi0UShkdlUDV6AvnZph7vsnfLg25u731LErtMb4k1o1P7qUbvCL/KEhZ1srKkRbA4l0SPISVZmFFm3D+cwwU/uzgvv6n74CkZphAmXdjb/LLnizkxi+f6MHagi1X9snbk3NWHjoYwux+yflBZFRJUTSEZRx0SlllQhRg8K4/GEzocsepd2pxPaTBkJ1b2rfVF2JcXCtHs8Gc42XOR342GSFs77YSkO9murGN2DpuQ+wUFD0kVckzu65Ajp2U0bs4XuWOt9vvBEE8IWT/TDVdiU48dYl+FORoiWnsy27trnInK+ypE72TfDHV8/G48Ph7LKkQdF5QFNEryWUhJPdafQmx9SS83zxG3X3JPLzGruUPeWMjpc80jb+ebQtLvVLngD9SjjG+KRuiT3FXreyyE75yzkdSx+cmVjtPLTT/ejYT87MCve5KypHG+ECt/K3JvLISXjhA7q7ckrSpGrxfZ3CJ79GskFz0OvaC5PteV2I+GkNzvOKUp9r4IWX3wnhXifZ13fO9lQ3x9xpvxEGY74tAelfO58G4dUBHDS+uV7MVmKKTd3NbHmGSZh3pz2/4Qqe2ItnWcLRwaC9maPSeqKRqgYvrJ6A93W/+2sBMWkbyEdMNcUjXdtJvzJkTy5ZeMv9CbkcdHjYc4nZxvoLasYxTFKWlRRNHMrZ6YUcT7cRBTlKb1IBou19+NfLO7mPqxP5xveCqrW+Bs+MBmGflN0FexqT7k23leXZHnLK2TsC4hSeKmYejyVkFFWqyjZeEmSeiuY3cdEbmxWq9TUq4euOGaBnjVd6OVbNfRL+fiO3rabdqkOeLU3jOvGXHSM0J2jinsLsRdqtCN3TokTlLe5ufi1C1CHTJLUw4Jl3GoOLdQNMSTXv1IQ6Se9jeHj7IcsenGoyF+nu+pFrhp4S6TsFDVHXHXabFUy9AtOGQdhy5VIVF1R+J1UA2SoqD/STqHl/mHVRrTnyVhSq/gRUKi6G9DRU8xiZApQsjUIGRqEDI1CJma2dXNO/gzO5G64TcMTOL/bv9NxG8YuPp0PTPeuuuP7+lNNQAAAAAAAAAAAAAAAAAAAAAAAAAAAACv5AfYigaXSHbHzwAAAABJRU5ErkJggg==",
"description": "Displays a latest air quality telemetry data in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'air', label: 'Air Quality', 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\":\"Air Quality\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\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\":\"mdi:weather-windy\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":100,\"color\":\"#FFA600\"},{\"from\":100,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":200,\"color\":\"#D81838\"},{\"from\":200,\"to\":300,\"color\":\"#8D268C\"},{\"from\":300,\"to\":null,\"color\":\"#6F113A\"}],\"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)\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":100,\"color\":\"#FFA600\"},{\"from\":100,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":200,\"color\":\"#D81838\"},{\"from\":200,\"to\":300,\"color\":\"#8D268C\"},{\"from\":300,\"to\":null,\"color\":\"#6F113A\"}]},\"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 air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"US AQI\",\"decimals\":1,\"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": [
"weather",
"environment",
"air"
]
}

28
application/src/main/data/json/system/widget_types/horizontal_air_quality_card_with_background.json

File diff suppressed because one or more lines are too long

32
application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card.json

@ -0,0 +1,32 @@
{
"fqn": "horizontal_air_quality_card",
"name": "Horizontal air quality index card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAmVBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4OCg0mHy8vLQ6a+srKyQkJCQy0bf8Mrv9+Xj4+POzs5YWFiv2Xv5+fn3+/KIxznb29u2trbA4ZXV1dXHx8fCwsK8vLzn5+fIyMi43Yio1m47Ozt0dHTn9NjH5aNmZmZKSkrY7L2enp6YzlOCgoJLS0vt7e2dnZ3U1NQhISGmKTEOAAAABnRSTlMAIEDfv1C6kOEmAAADrUlEQVR42u3aa3OaQBiG4bRJn7yynEEOAh7xrEna///jykKrtjZK2iZDMs/1QWGXD3sP4OjIDREREREREREREREREREREREREREREdFb+vTu3Wifb+/fO//2S9VxH+HdU/efb+4UPoDo7qaHD6HHkI5hSNcwpGsY0jUM6Zo/hmSJGB5O+FvAylErbAsHlpVbUGgU+c/REa57g5CFGDNxYhzNS4U8V0oBVlisttWGX+Up2HZeFGvlQ0/ZllK+zrYtvV8f1IpnujgRuxcOcJfZJj6OXQzBAjDFxFH4tK2WaZdPwKpAHhYhQn8/Lwu7GrXLQan2lg6xwlWIh9Xa8h9W2yK05q0yDBEDB+4sMfCbmSSHYyvOBnqFRpt7xD0NGc1VqEMs3VTAX9chxTa0dIhfzW0f/DrExje9a833Vol9NXid54hhLvCDm8gh68ATEReaI7uN26/2roZ4bm2zEw8LD435OiyLHyF7G9Y81yEP+b4JWcN/CHEIWesQuygwL9uE9CXDkWksl2chpsxkWm80V/xUjKsh8tMShkgGzS+Bp70OqXfC0lfrVemvVuutDlFrG6F1CMF8FVp5OK9qihBXeeLA83DCPAvZySJJdIEhS1RikfhayMZsxIh3mSEezqknu3r5ZcQv1dlRaEWvZyfiLC6ELGSHaZ3gHK4w90LIuUxctPK0xd/KRIxsJkn8fEhfTLhivCzES+SEg1fXl35zzTwf4ugLIxHvRSHxtH+UxXhVx3s9k+mzIaYk1VocyXTABlrShHTqK8pSpldCZtJIgGlz2EIE10JmxonNpRtXPf4+oPAX3PoTdScm4P0xxBNZeBV9FlxJvDqtfz3EOUpkgdqgiVF4TFGLIkS9QA/0EAEYW2NEadpMRE15W31xMkOcemXnIcfdTGb6RWZTRxzvQsi5jZiHkDwP0skkqLaGGKbDUTQYBnk+CUaPwSgCgrEajVKooJ4IJiO0Fk9FxKhXNvtTiPNjFW79yWY6UpniBSE7xxD3EPI1GKhJMA6akPHXtNquxsZpMJzUIb00rUImg/FEVblDhfZiL27e0YbnuY7M4va/R7IkWaJhBekwGOSTodJnJBilw4EaTIJq7HE0ngTQIZE+I+ORpSfy4RCvyXOm/+eHVTrG875OUryNfw+JokuTCm10IqSLGNI1DOkahnQNQ7qmd3P3Af5mB9Rd9cDAB/ijPaoeGLj5cuvfv3e3nz/SQzVEREREREREREREREREREREREREREREb+Q79h0E444zJWUAAAAASUVORK5CYII=",
"description": "Displays a latest air quality index telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'air', label: 'Air Quality Index', 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\":\"Air Quality Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\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\":\"mdi:weather-windy\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":100,\"color\":\"#FFA600\"},{\"from\":100,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":200,\"color\":\"#D81838\"},{\"from\":200,\"to\":300,\"color\":\"#8D268C\"},{\"from\":300,\"to\":null,\"color\":\"#6F113A\"}],\"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)\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":100,\"color\":\"#FFA600\"},{\"from\":100,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":200,\"color\":\"#D81838\"},{\"from\":200,\"to\":300,\"color\":\"#8D268C\"},{\"from\":300,\"to\":null,\"color\":\"#6F113A\"}]},\"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 air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"AQI\",\"decimals\":1,\"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": [
"weather",
"environment",
"air",
"aqi",
"pollution",
"emission",
"smog"
]
}

32
application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card_with_background.json

File diff suppressed because one or more lines are too long

24
application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json

@ -0,0 +1,24 @@
{
"fqn": "horizontal_capsule_tank",
"name": "Horizontal capsule tank",
"deprecated": false,
"image": "data:image/png;base64,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",
"description": "Widget indicates the level of liquid in Horizontal capsule tank.",
"descriptor": {
"type": "latest",
"sizeX": 4,
"sizeY": 4,
"resources": [],
"templateHtml": "<tb-liquid-level-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-liquid-level-widget>",
"templateCss": "",
"controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\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 };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}",
"settingsSchema": "{}",
"dataKeySettingsSchema": "{}\n",
"settingsDirective": "tb-liquid-level-card-widget-settings",
"hasBasicMode": true,
"basicModeDirective": "tb-liquid-level-card-basic-config",
"defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Capsule\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}"
},
"externalId": null,
"tags": null
}

28
application/src/main/data/json/system/widget_types/horizontal_co2_card.json

@ -0,0 +1,28 @@
{
"fqn": "horizontal_co2_card",
"name": "Horizontal CO2 card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAllBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4OCQy0bQ6a/v9+Wv2XvIyMjf8Mqg0mD3+/LOzs6/4ZX09PT5+flYWFiIxznY7L3b29u3t7fV1dXCwsK8vLzx8fHn5+fn9NiQkJDH5aN0dHS43Yitra2YzlOenp6CgoJmZmY5OTnU1NS33Yio1m7t7e1KSkqn1m243YlPJUzgAAAABnRSTlMAIEDfv1C6kOEmAAADiElEQVR42u3a647aMBAFYNpuJyYX554QkkAId3ZZtu//cp1xUHoVpbS0gM4nYYaMf/jIGITIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBfenf3BuL9B+veDT985BxWSncvsd4PnhJ6AOnTYEgPYYggNwZBbg2C3BoEuTUIcmvOC7KelUR6tpShltclfaXc0P93VpDNRh/0cqu3S70tdxOiuabJhCwiS551RhcJ29hxSfhtPKK+ul6Qw4RKK9Okt7zsLkidZevNWM+tw3Z9YZBYMbvpK7evwmsF2RHLSiozotmMJEg2Wx/0fDOeb5a7y4K4SvlNrGypbL95UQGRL9WbWlwrSKZppjdrWs4lhwmynWlNu4zm/HxZEEe98Zgrl15k5WGuQvKUw5XKyQjdMByNXFNR6Pgm/rEKfW6cCuI7js9THefraWWWZRNrlx0svcuyWoKU2XZNszm3OMqFQQITJKRAybFYqYYfslpbuccZ+1zxHhEH3Js3n/Q8qRqbx/ZUELUKchrlgf3t9k76oTfpny8T2qp1PymPOIhPZuwi8Ogfg6h45Kk8JB5iZ6UC6dmOwykW0jgZxCWXnIBij66tUWwVngryZq47HKQ1b76m67XHzXTPCxIodcU0siNvsa3iU0E8IjlB3dmhPY/SOzbs00GCVU6OeWuFbhvQ9bRmNbnyfxEk5rEL4v1OkJE57Dy69MkOWrqefb84eZjDLsfehAu/2ZG4myHdM4L8KPA4k5HQTySv319I6HwSYWFWM6JW7c2XCVEs1xqpjp9axxmeimWGci8KsgiCFzLGXZiEXgsy0pTSYSQXhpQS0XQ5pbQoukYqM3/NV8qLA2Wb0+J1pyXMTeUcg/QzPKl4Fl0URPRByjIqtI64qqgqqjodV1FZ6qh+jeqUKJomdV1QEplGpGv6tZF8FwSyGJerfEGskar98k3DL1euBHnhKgj/QpDn53Gio2nUBZk+F1zztWkRVdoEGRYFB9H1VCcct0roDKEb/lC5fSXr5ZfUnSSpTjgvyDIqqmhc6iqRHYnqohonYx3xtVdeeEQSJJUdmdZLaZRVRX/OBBEmyFV+WBXTE81nXfB4H0HS9FQzob+k6X+ajOIGP3XvDYLcGgS5NQhyax4oyNMD/M1OlDzxDQMP8Ed7yjcMDD5+GFr37sP7R7qpBgAAAAAAAAAAAAAAAAAAAAAAAAAAAOAf+QwerQBC9f0WmwAAAABJRU5ErkJggg==",
"description": "Displays a latest CO2 level telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'co2', label: 'CO2 level', 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\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\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\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3FA71A\"},{\"from\":600,\"to\":1000,\"color\":\"#80C32C\"},{\"from\":1000,\"to\":1500,\"color\":\"#F36900\"},{\"from\":1500,\"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)\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3FA71A\"},{\"from\":600,\"to\":1000,\"color\":\"#80C32C\"},{\"from\":1000,\"to\":1500,\"color\":\"#F36900\"},{\"from\":1500,\"to\":null,\"color\":\"#D81838\"}]},\"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 CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"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": [
"weather",
"environment",
"co2"
]
}

28
application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json

File diff suppressed because one or more lines are too long

24
application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json

@ -0,0 +1,24 @@
{
"fqn": "horizontal_cylinder_tank",
"name": "Horizontal cylinder tank",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAABa1BMVEXg4ODf39/g4ODg4OAAAAD///96i//g4ODf4/+Rk7d2eKb9/f8hISGQkJCyvP9bXZQ/QoIkJ3Dj5O2srKzIydvx8vbj4+OTof/x8fHIyMitrsni5f90dHQ9PT33+P/m6f9NUIueoMAyNHkxNHnk5O2Ehq/t7//W1+QfHyGenp5YWFjV1dXx8fY/QoE7Ozzr6/JZWVmsrslKSkrY3f/39/mfocC6urqCgoJmZmbGzf9vcaEvLy8uLi7u8f++xv9vfu27vNJZZcmSk7icnqwuM4IpLXmst/+bqP+Kmf+Ckv/7+/zt7fNoap3N1P/z8/e6u9JfbNJpa504P5J1d4KAgIHS2P91hfbv7/Td3/FpeOTT1eO9wNfExMhJU65oapxMT4yjr//4+PvQ1PaRkp5oa5w+RpxycnRSU1i1vv9lctvS09VTX8BOWbiZmZ5pa5xpanSmrNt/hsm0tsejprlwdrdzdaR/gZBDRUsrLC5yLDHaAAAABXRSTlPvIL+vAC9A4IoAAAcFSURBVHja7NZBioMwFMZxOzMfXTRZBR4JJAeIAZEsVNBjzP3PMi91ILR0mF15tvnTmkRB/KGC3dfpozsfvc/TV3fq7AUH72KZ8WnxAll+rA5/P0qXrjvjJTo3iLAaRFoNIq23hTiqw4PI4ck9hphxH3LCXd95H5Wuw4O0wvOrkPvrSJ5wl4lHhJCxgIsuTdepNQQ3AZgiVQjvjsSbxHCzr8RBjHI8DWELcDwlZeAD0Ku8VggNa68i+hHln7Y1rEkiZFiAfANxKoIqxK+EebVa2XJ8yMUjEEIqAv0NRCsLVEgOWi+KrDKmbHutcxAJMf9AQvCcRe+XEaRGXswCIXbzv5AJaYeYYqqQZWUX/+K6sXkbeUGCICOX9pfdLyrAbsM87BAbBp8rJG2D7jNglSoctcyDnDvidImSJsB43QeAvJ90whQBmr2Lbhe761JbsMGAm2Yfywnw9CrkzxhymN4DkhIO09t+xoutQaTVINJqEGk1iLQaRFoNIq0G+WG/7lkch4EADFdTSC5mJKRGlfyFGwdj8DZXhSuTkLBVulsCW+//L885LmQ3a2XUyNmAXwiEyAQejYzxT2uB/LRSQ6yr3/3qX/gu1va68lyQXhXoDqbR2piDQEUNXHouSOOVUiuPY6vV+NVfl54L4pTaCZHn58+L8Kp41omAEjV6UkoV5Hd1jdeVZ4No+JRZIAtkgSyQB0OsceJeNxASoXJjHwexOSraSSmxUKqQU5Vy3dj/Vzc5krzt15gc23mFvX4IxIoS3WUbm5yoh+9V9Rm5GlOjOb/d9dO222eXSx2SsPNDDKGBzzn6COyo1qbRE2ub43b4yt5RPzekLtZwU1vT+Ft8p/M0bnIkZoVY6Sv4nisFRLfvTlNnkaSdEeK9hakaEtGO7Qamar2fDyJHx3RV6SCqocsAAhI5F0RQePom7pVj020gVEtiHsi6qCBcPirZsm4P4arSzAHR5OBeWANbex/ryM4AkRICRe/nZpsBsxnpIVpVcL8cgakbgN2M5BD5G7i4x/OwBS6BqSGaKuByxA6Eqy1NYoiUwEeGGQif+EgL4e8Q/mAcB+BrlU0K6V8hora0956FGUSEIinkzUFM+ALBhiPE5DAlREcO3CF7svip6oSQHoGJO+FZ1mUQOdWEkD+xf44uCMkiIflrQkjZQFx1HXBANKQp0kG0gsicDw0EYiFQ6mSQA0aTi+DJioa8rZNBxF/mza0pbSAKwE/L0A24SUgQoyQECKaW0rEZrHYKjAQEHpihQB2sYB2tWm9j7+3Pby7aJipk7c4i38Nm9wGGjz0nu4Sz+GGb4QlSxAUWqYlA/EWKFcaGFvbXBqmJIAn//iYRz4j0lp6IAAjjop9cY0Bi/U3kZTw4I1PURFh8Ee3eKIxFIjEGLEWiT5OFRPCzTHoiy4AowBOFpCWSiKzbB05iIACenkiGJxPpJ6OWyIJ9muaZ1bhyE27hsyoSj8RiNyJxVySxsr4G4lMXYR8gonkGjEthibkWYZi43ViXVwvRaJxxufP8deaSnXGI6rFhX4+eDXXL4cxqbI5XhsfMNRSSnXzTAL0iskNBdzhe1vuyPNQvZZeT2OULt3dbBFET2ZOMOUw+fPEMFnM27y0O9cNB7ndhkLvShZyDaZ6YPaenzPkwJERxi9IOYdI99Qzayg2mbirKoV74pfcUh4E5OPnq9o2Qj40nGjURFRq4IlzF+5kWb9j9uWu3vStz8S/feoJzfRfyEd4r0tvGp0qYHjt135cbxuGWiIwEaiJ8GrTwRDpdUpEW4LI0f+ru44mMRqQi+wIL6InA4gZmrne8ozKWiP+tN6g+fFARXpJUuG3vcN7AEWmEvChIoiiST4tNHJHNrn/cnA+m5X9FnstSFAFIKuOIHG2GCPm0igBNERXJWJFVIRUpIYmqSD4jNjAi64jUo8FzWcp/9DwJhwKpdUhFwhACuiJCOnhKNmukHk2ezVIWASh4SmrEqR7WIKAtkk3zAav7OfGEbFkZQl0EaKjUmnjLqu2QBlYJaoC+SJ4tGhPXkFGIkLZKv4TDzXd+wqp4Udsm9Cjz9ItqXKqsuDV2/16vECcIW51e4dk4k516h9RDTGmAXATfpHy/xwXpHktMwWlWmUKWbzfvroR1whWkZfAsnG65bDW9WroVXtuj2imZRllWM9XpFzCnhFK78U/jvN4lyvNGWRYQKzxCbXyVtavZlbDN5+91tBt+MMbBwYHh9BRZVFG6Kj7OaQUJcSyCEKYyHMfC/+K1xQ/r+vE5h1Rxdo9dYCMtizN9EGYcM3cQ5k97d0IDAAwDILBfUv+OZ4M1nAMUgGEIjSE0htAYQmMIjSE0htAYQmMIjSE0htAYQmMIjSE0htAYQmMIzaGQuDEI3qgby+a+M9Ge7P1dVM4DayA5WtbTgEwAAAAASUVORK5CYII=",
"description": "Widget indicates the level of liquid in Horizontal cylinder tank.",
"descriptor": {
"type": "latest",
"sizeX": 4,
"sizeY": 4,
"resources": [],
"templateHtml": "<tb-liquid-level-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-liquid-level-widget>",
"templateCss": "",
"controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\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 };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}",
"settingsSchema": "{}",
"dataKeySettingsSchema": "{}\n",
"settingsDirective": "tb-liquid-level-card-widget-settings",
"hasBasicMode": true,
"basicModeDirective": "tb-liquid-level-card-basic-config",
"defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Cylinder\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}"
},
"externalId": null,
"tags": null
}

24
application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json

@ -0,0 +1,24 @@
{
"fqn": "horizontal_dish_ends_tank",
"name": "Horizontal dish ends tank",
"deprecated": false,
"image": "data:image/png;base64,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",
"description": "Widget indicates the level of liquid in Horizontal dish ends tank.",
"descriptor": {
"type": "latest",
"sizeX": 4,
"sizeY": 4,
"resources": [],
"templateHtml": "<tb-liquid-level-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-liquid-level-widget>",
"templateCss": "",
"controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\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 };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}",
"settingsSchema": "{}",
"dataKeySettingsSchema": "{}\n",
"settingsDirective": "tb-liquid-level-card-widget-settings",
"hasBasicMode": true,
"basicModeDirective": "tb-liquid-level-card-basic-config",
"defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Dish Ends\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}"
},
"externalId": null,
"tags": null
}

24
application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json

@ -0,0 +1,24 @@
{
"fqn": "horizontal_ellipse_tank",
"name": "Horizontal ellipse tank",
"deprecated": false,
"image": "data:image/png;base64,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",
"description": "Widget indicates the level of liquid in Horizontal ellipse tank.",
"descriptor": {
"type": "latest",
"sizeX": 4,
"sizeY": 4,
"resources": [],
"templateHtml": "<tb-liquid-level-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-liquid-level-widget>",
"templateCss": "",
"controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\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 };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}",
"settingsSchema": "{}",
"dataKeySettingsSchema": "{}\n",
"settingsDirective": "tb-liquid-level-card-widget-settings",
"hasBasicMode": true,
"basicModeDirective": "tb-liquid-level-card-basic-config",
"defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"Static\",\"selectedShape\":\"Horizontal Ellipse\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"#FFFFFFC2\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}"
},
"externalId": null,
"tags": null
}

29
application/src/main/data/json/system/widget_types/horizontal_flooding_level_card.json

@ -0,0 +1,29 @@
{
"fqn": "horizontal_flooding_level_card",
"name": "Horizontal flooding level card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEUAAADf39/f39/g4ODg4ODf39/////k5OQjTMfg4OCRpePk6fisrKzx8fHIyMg9PT11j9zOzs7y9PuQkJD09PT5+fmtvOqsvOpYWFjI0vHV1dXb29u3t7c+Ys4wV8vCwsK8vLy6x+5aedXn5+dohNlmZmaDmt+enp5aeNUrKyt0dHSfsedMbtGdnZ0/Ys6CgoJLS0vW3fTW3fUxV8pKSkpA7yNPAAAABnRSTlMAIEDfv1C6kOEmAAADcUlEQVR42u3a53KbQBSGYUV2DivKUgQSRTR1F9lOuf9ry9kVUkjGQyyT8WDN91iGBVx4h93xD3kEAAAAAAAAAAAAAAAAAAAAAAAAAAAA8JG+fHo6Y3xjfHaTm6/cYUT06YXGeHQb0hWIbkcTugoThAwMQoYGIUODkKFByNC8FmI9egm12dOpLW1quaep0z40qEV/aX/9Q3IhRD636CzeydSekqNu1+AAx3HpwCM11CddQ503+Ihf3E29BA9m67fXM+0dIVtxtJ6fQ2zDsadGvIlpunGl8bK5I5fce9dWQx0yjV0ZGwfbjn9WPUPmguXnkqXQLg8xxVn+0IRs7iVPrx3F6R3JDQ9c/WFPn3moQ+7s5/vDLjZeprtNvxBLiOS7KZbUeBLveyKJOFvu6yZEqnVyUCHuXyH2KWQhDeclJnehZmG/B+LxthAWHYmcfgusIEhqvvRtlnSHWHkrhKgdYvCD4an1M+XBXROihjrk4G4kxTbZbrzrF+IJNQ/WYk5aIPZktabLWt1grebbY1dI0HQUa978COhPjv7Um4ZRSfd0sbXvFzJvtto38aMQwgvO896crTli9lCIuiNkK/bNSit4n9C/OPZzSp36hxTbbS6W5yeiHpKw1K2aHSHW3BKM+z3ebamv/iEUBETWacmYegEJoYadIexJzUGimV4kvfUPYXrJXBaSLAuhrWvB5gF9uK1e7EuRnP4eWvqwvizkSazVItmrtV54efPTQnpF6Px9IqT/IRFLPZfUjNJd5numVh0QJbOEyJrNeFhbpCx0DL+cjLQoomjiqxMTivh4Za8oyrLjBT7RKykXnvmo1ue8SVKHHl0WQsGsJm6prSboFJKmfialz6OSyqysokXpp6n0K8evIiJ/FVZVRqGvL/iyovez1JzYBipkzYffczXTgwtDtoUQuae/dalWu/U7ZBFKf+UfQ1ZpxmM+t8r8UuqQSZZxiKxWMuTcMqQeAis47luHr+laI/t6novCTDxRbBOzSEix/az0F6ksQ/VE/CorF+FC+nzO4Rv3SYVE6omsKltdSMuSPpgOuVi26riYyozeYBAhUdR1MaS3GETIECFkaBAyNAgZGoQMzWR0ewVvsxOFt6OxcQVvtEfGeDT6ejMxPrub8TX9Uw0AAAAAAAAAAAAAAAAAAAAAAAAAAADAB/kFV7oA4xEmmqQAAAAASUVORK5CYII=",
"description": "Displays a latest flooding level telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'flooding', label: 'Flooding level', 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\":\"Flooding level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"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\":\"flood\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#234CC7\"},{\"from\":1,\"to\":3,\"color\":\"#F36900\"},{\"from\":3,\"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)\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#234CC7\"},{\"from\":1,\"to\":3,\"color\":\"#F36900\"},{\"from\":3,\"to\":null,\"color\":\"#D81838\"}]},\"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 flooding level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m\",\"decimals\":1,\"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": [
"weather",
"environment",
"flood",
"flooding"
]
}

29
application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json

File diff suppressed because one or more lines are too long

29
application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card.json

@ -0,0 +1,29 @@
{
"fqn": "horizontal_ground_temperature_card",
"name": "Horizontal ground temperature card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAqFBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQjTMfg4ODy8vLIyMjI0vFYWFh1j9yQkJDOzs7k6fg+Ys50dHT5+fmsrKxKSkpmZmaRpePb29vy9PvCwsK2trasvOrV1dXn5+efsedaedU9PT28vLy6x+6enp4/Ys66urowV8taeNVMbtI8PDzt7e2dnZ2CgoIhISExV8ovLy/W3fXW3fSRpuODmuBog9nW3vRsY+KEAAAABnRSTlMAIEDfv1C6kOEmAAADiUlEQVR42u3ai1LaQBiGYar232WXzflACIRzOSnVVtv7v7P+2bQijoVYHRqZ7xkIm92M7jtmBmegBQAAAAAAAAAAAAAAAAAAAAAAAAAAAHBKnz48m3FxKT669uVn7hARfXhKXLSuFJ2B6KrVprPQRkjDIKRpENI0CGkahDTNiyGDpXygp+ZuTC8I+anogAOrpwjpyeCHHNGOu9WJVkpR9RAk+MijCR9SThT8sPOkqgX7KhTpRIlybI9UX2fUnfmPo93GRoO99WMhHTnoSod2koKEcJPtjTFzHZIRJt3EIkm/csAmpSRM6C7cpKkRX0MjFomZx8nWDTc63CyM0KGehHz1nOpyJAu+8+jejnyy/GAVjMvXsZ0d1Anp7YVMVJzGrkuJUJMqRMShO6cJr4V6kcSm+EpuLCbCkDs37pyvJjFPXT63ISml23hCNQ1k0PnmyDXvpBo5ZM3W5MseUSBXs05Xyu81Qr7vhRhNLuMgkbwQYrRWv0MS4oobrTnELG4eQ0IKXa2pprXslPc379mRo3J026v2ddu5D2wnMb5paoSM9q4qTDpZcEg8MQuVpHc2RJj0jtdcwzPJn5C7NBELY+YccpMmW7VZ3CSmDClM6FJNs0G58TJkXCbRF+mT1V0u+XzMdayzqhNC+7kkqKKqJ3txIIzanav9RUWvMpArTihDbM6OnawcD1mPOeQfKJfexGe9ahRI/x1CmEP/wRf7i6uOEb01hH9IaUanN+p27dtGL5Bd+nvIrF7ISFq39P+sqw76Yfe8lD494VSLM7k+EjKWlZ+H/9FQ188nFL2Tx3eObjnwZfDszr/1beTDq0P6VYyi64ysKKKo7ZUTbYr4fBgPKcqyaoEn3pZ0L6VTGlBvKZ1uIEfPOwPnYSwD/0hIV1oBPQ0pCi/T2uNRTnmWT6N+7hWF9qbX3jQi8oZqOs1IeXbB01N6g7GsOETfAimXI3qG26Rc+XQkpBfI0mA/xOsr7Q29KmRYZDzmuWHm5dqGtLOMQ3R/qBXn5oreie/3DsweDCHfWcpVh3ZiL8u9fqFzxUm5N83yvuprj+eup0PtURkSlX+R4TQuF4o8p9OqQl4tG9LfFTqjOpoQEkWHFhXV0YiQJkJI0yCkaRDSNAhpmnbr6gw+ZidSV60LcQYftEfiotX6fNkWH93lxTl9qQYAAAAAAAAAAAAAAAAAAAAAAAAAAADgRH4BUVMBmbp0nFsAAAAASUVORK5CYII=",
"description": "Displays a latest ground temperature telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'temperature', label: 'Ground temperature', 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\":\"Ground temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\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\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#234CC7\"},{\"from\":-20,\"to\":0,\"color\":\"#305AD7\"},{\"from\":0,\"to\":10,\"color\":\"#7191EF\"},{\"from\":10,\"to\":20,\"color\":\"#FFA600\"},{\"from\":20,\"to\":30,\"color\":\"#F36900\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"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)\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#234CC7\"},{\"from\":-20,\"to\":0,\"color\":\"#305AD7\"},{\"from\":0,\"to\":10,\"color\":\"#7191EF\"},{\"from\":10,\"to\":20,\"color\":\"#FFA600\"},{\"from\":20,\"to\":30,\"color\":\"#F36900\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#D81838\"}]},\"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 temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"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": [
"temperature",
"weather",
"environment",
"ground"
]
}

29
application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json

File diff suppressed because one or more lines are too long

2
application/src/main/data/json/system/widget_types/horizontal_humidity_card.json

@ -3,7 +3,7 @@
"name": "Horizontal humidity card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAnFBMVEUAAADf39/f39/g4ODg4OD////k5OQjTMfg4ODz8/M+Ys7k6fjOzs51j9zIyMjy9PusrKz5+fm2trbb29vCwsKQkJCRpeMwV8usvOq8vLw9PT3n5+eesefW3fWRpuODm+DV1dVYWFhMbdHI0vF0dHS6x+1aedVmZmZohNnW3fTt7e2CgoJKSkpaeNUxV8ovLy8hISG6x+6enp6dnZ2UGhvnAAAABXRSTlMAIETfv0i0+14AAANBSURBVHja7dp5b9owHMZxxvrkh+OcJOSA0HCUY4WtO97/e5sdygCpg2orbVo9nz+Qa0uVvzKOUEuHiIiIiIiIiIiIiIiIiIiIiIiIiIiI6DV9evc6Vvez8971PndNhxPj3VNOt3Oj8AHEN50ePoQeQ1qGIW3DkLZhSNswpG2eDqlmIY5EDiYljmwABFEQoT2f054MuRVxNQ6mAaI7peDAaV4RAU40mATBVjlQ16oJq6zQsOZVttBH0/psyHHHacn0Z7C5C+4wdYab4Wo1xRCb1XAQDQbD/oPaRHhhx9v4AsDfjyztujP58pyQW2nMwkPI3WD1GGIOAt9NyAMiE+JMMfg5dHANWmQ+zsS1G3LnY1+WaGTfQri+6ZlfCBnLo/rkrXUaoob7kGC4wlUUsgaQi8ZM5kAoEu5CTNrSR+1eOhFX9uand2S7ejicyGC1NSFqW2Ia4SoKWTYhIYrCJoigUYnWbq1FXwgpRPwql3wt4uKUeuIH5WwVriJ0pdK1+Pt97UfhzF5g18eFENeW+/kYM3skl/3q40rGxzdV54cjGI9RufpCyBcRuV3Mxs2Vr/GGQlfWmSu3uw5XKhzovBhnmT4XMhcjtx2GjzdUid/ckfkuKsMR39f5V/MQPhOiHzvWVf7GJ7KWwm7Zvoaz045CdP0NcOszITD7X5jzsL9Cfpxe7FPqHqeUwkvypW6u7A/bVJ++6TL4zUP4XEgm4tb2nriHp1Z/F6Nwn6ARx4h7np3oIQYwikaIk2S3YCZeImku4mdLu4najKwFdhZmrvqmdV6cCwld2SuOQiYTLwkCz4xSpElaxv3Um0wCr7z3yhjwRqosEyivWfCCEv9vYXfyVQNL2cmOt7k0a+G5EOh9SYXjEK+vAm/k7UJGk8SMzdwo8dKgCekliQkJ+qNAmdxU4QWEOsRfaX3ps1ZYzERyf4w/Ii9Jvf4kSJU9Ea9M0r7qB56Zuy9HgQcbEtsTGZWRXZikKV7F+ZDLkhH+bhIkeI42hMTxuUWF52hFSBsxpG0Y0jYMaRuGtE2vc/MB/s0OqJtO12nPH3D/Wex07Vc4es5797n7kb5UQ0RERERERERERERERERERERERERERPRKfgPNbdZin3BhXgAAAABJRU5ErkJggg==",
"description": "Displays a latest humidity telemetry data in a horizontal layout.",
"description": "Displays a latest humidity telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,

2
application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json

File diff suppressed because one or more lines are too long

28
application/src/main/data/json/system/widget_types/horizontal_illuminance_card.json

@ -0,0 +1,28 @@
{
"fqn": "horizontal_illuminance_card",
"name": "Horizontal illuminance card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADg4ODf39/g4ODg4ODf39/////g4ODYGDjdNVH1xc2srKzx8fHOzs6QkJDiUmn98fM9PT364ubIyMjz8/P5+fnb29u2trZ0dHTj4+PCwsLnb4K8vLzn5+fwqLTri5vpfY/409pmZmbaJkXV1dXumqjzt8Hu7u7sjJzkYHbU1NRYWFjfQ12dnZ1LS0vgRF0vLy8hISHwqbSCgoLpfZDofY9vEfvyAAAABnRSTlMA7yC/r7BI7FImAAADHklEQVR42u3a53LaUBCGYcDJsmqoC9QLiGJip9//rWUlOWAcTMyECTLzPeD10dEf3jEyzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM42uhuO37sPI+kYrujd04ejwQedbsDqbjCmmzC8lZAxQnoGIX2DkL5BSN8cD/mp0HtzPCRmem4aapqr0Z4+ob55GWLFlswsJlGX1Jm5k4k20XUKKWwnae2CdF3uckhhd3BRVp1/c6ih1vmSnqisvCkk488WddZsPg+RG9n0ZWZXVdUt3IdtpWmPlU3fq2042douXdCahVLuVs55IZTnZK03n+OSStP6M+QrTbTQpuY208JJNdNmZOs2LcJH7fuMLsdhVsuclWalqGXB5nkhwlG4sSZxOmSbPOxD7Kkb0uVkvJE5Z4cKLoisOVu7EMtp1o7MkyEKd9QXIYvH6sthyMN224bQpHoMH+xKu2iI2YZYZPJSVp+43IU4PHdkKM7JkIyfmPSS/uqG3o0LshSunYJjkhCV2rkLoZxjKavp1ZDaLKjg30g1TbqaksVn62iIVMby+/WQXELifcjyiiHyWDe5wuujITKZHaIznlpXU3PcXiPq0RA58Yn+EmIp3PlG17ThTGYsU34OL/anl5b6jf9+c9rx6Ahv9XLDowuK+YdMhZdU86Z9MaF9iMPzJc+tkyFiyWJDe9M2Ru6rgFq+T/7YaDbG5MtxqqXkB0F3QjYukKQyx7n5+8rOFc6fhWzkqOD4byEli/gwZLEwAtc1ZBVRFESJP42MxcI1kpWR+ERG6iVJQJ7RnjDchP7ZUmFm03l6iswL2odkbZ9cPydDxDLLMucw5P5+6rlGanQh6X0ga9lLAyNy25BxEEiIm6SuJ7mRR//OcqyD1flv41XTLOgZzQgiY7pwI0+SIiMJoqk3dQ3ZW8kDN6gJ8Zu/SJpozYlFFNH/cjrkk1LQCUFKr7t3A7qCJuRsvn/qpEdv0YuQPkJI3yCkbxDSNzcUMqSbMB7c3cTH0/rHwWh4AyX6sPnqw4fxeze8Gw0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Fy/AL5F9/papj6AAAAAAElFTkSuQmCC",
"description": "Displays a latest illuminance telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'illuminance', label: 'Illuminance', 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\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\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\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#FFA600\"},{\"from\":5,\"to\":20,\"color\":\"#F36900\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"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)\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#FFA600\"},{\"from\":5,\"to\":20,\"color\":\"#F36900\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#D81838\"}]},\"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 illuminance card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"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": [
"weather",
"environment",
"illuminance"
]
}

28
application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json

File diff suppressed because one or more lines are too long

29
application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card.json

@ -0,0 +1,29 @@
{
"fqn": "horizontal_leaf_wetness_card",
"name": "Horizontal leaf wetness card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAk1BMVEUAAADf39/f39/g4ODg4ODf39/////k5ORLcN3g4ODy8vLIyMhYWFjOzs5hguHo7fv5+fm7yfK7u7v09v2Opurb29utra3CwsK2trZmZmbV1dWlt+7n5+c9PT2QkJB0dHTd5PmaruzS2/d4lOWwwPBWed+Dned4k+WCgoJKSkrt7e1ti+MsLCzH0vSenp6dnZ2DnOgFpIuiAAAABnRSTlMAIEDfv1C6kOEmAAADEklEQVR42u3aaW+iQBzHcde2f8Y5GOSUm3rbc9//q9sB7Wq3DfqAbUbz+6QYHEIyXwZsEzsCAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Em/rl6XMb5zrt3k7sF0OB5dPe6MR/ecboB3P5rQTZggxDIIsQ1CbIMQ2yDENheFxA4d+buMTjhkh4tCpDAvnJvNIS7jbp+3Ce1bwc2o2eXHbWDNtBNQJ1jm+tKQZvkYGvn8JETI9M3Z1VK8pET+Vki+c3ap9F/qeJeWtE2lU9WleKtN6MBy1tnPRrurDZtfFDJ12UF4EpJu30oeV2X3hsut9LdxGpeOdOKKSv4S129V7fP31Oc0sDXLp4bez45pWvwmcl/PhYSMfRtSCRHXzj6EpIxL8Z4KQR8hQjiZSONM1BUNbMH06fIQhRvK3eBMyCP7JmQnt5msK1Gmh5Bqy1+Il2nN07oNoUqmWWXutHcpfRqYy+g461c2D9xQsyn1h8zZ15ADTl/w4zD/2DgNja2eGVvo45V2dRjSmZA16ywOITYIGFvnLvt7LzUNTVf6XMiKGavD8/5IVgga8/LMlvRBu0u9zJveEGa4et9hTrVHfnJZQzPD5zWbn1uRJmd7c7JBM20+h2imlyyg57AvZMFY/rEgbs9jbgaf/h3g9F9M2aK7taZ04D5S7pqpbvo/tVxzZud45qyLMT9PEXU8j7yJagcm5BFRERfkRdH+gBkYNClwzcO+OF7WZhPQK3vVpqf398jSrEpnQychWaYiIZTZSyiJEt+bJSrLhPKflO8RqYL7fkRcdQeU8GlAet3ORlPn9EO4N4QCYp0w+BSiZlyoQu1Diiwy+2asiFQiupBJFJkQMSsEN7kJpyEFOvg6dPZvrWC9YqvNnI5iFSVqlomEtyui/CiZ8ZlQZuzJL4SiNsRrV6Tw4/ZAliT0w05DLhcVPQczEdElbAjxvL6DnC5hRYiNEGIbhNgGIbZBiG0mo/sb+JqdiN+Pxs4NfNHuOePR6OFu4ly7u/Et/VMNAAAAAAAAAAAAAAAAAAAAAAAAAAAAwA/5A5Ee9c9zue74AAAAAElFTkSuQmCC",
"description": "Displays a latest leaf wetness telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'leaf', label: 'Leaf wetness', 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\":\"Leaf wetness\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\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\":\"mdi:leaf\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4B70DD\"},{\"from\":10,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":90,\"color\":\"#F36900\"},{\"from\":90,\"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)\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4B70DD\"},{\"from\":10,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":90,\"color\":\"#F36900\"},{\"from\":90,\"to\":null,\"color\":\"#D81838\"}]},\"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 humidity card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"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": [
"weather",
"environment",
"leaf",
"wetness"
]
}

29
application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json

File diff suppressed because one or more lines are too long

28
application/src/main/data/json/system/widget_types/horizontal_noise_level_card.json

@ -0,0 +1,28 @@
{
"fqn": "horizontal_noise_level_card",
"name": "Horizontal noise level card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAnFBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4ODP6a/f8MqQy0bIyMhYWFig0mDOzs67u7v09PTx8fHv9+X5+fn3+/LV1dXb29vi4uLCwsK2trav2Xt0dHTn5+e43Yi/4ZWIxznQ6a+rq6tmZmaYzlNKSkrH5aPn9NiCgoKQkJDt7e3X7L2enp7Y7L2w2Xuo1m48PDytra0hISE2LSZJAAAABnRSTlMAIEDfv1C6kOEmAAADL0lEQVR42u3ai1LaQBiGYar294fshs05hCQEEo6e2/u/t+4unVSoVaiMRuZ71GXdOGNeFobMQA8AAAAAAAAAAAAAAAAAAAAAAAAAAADgI3378mzGxeX1Vze6/K47riP68vzri96VT2cguur16Sz0EdIxCOkahHQNQroGIV1zUEidUOKRcTeiVrKm59YjOspnhLgu1QWRPlMZ0CggCvQPSVcvmWlgD7knC3GW1X3czmjHkB0KZ9r96pCQSe7shtzVxWjRLIJCboon6ekFG7IoFmYcucUiOFnIA2vCnGdlZ+F+yIAtEb4dIniwE+ItNoW3pnVtQrygWd896RC9XLuJ/pL61jtVyICFs6pYEIVmNuHh3yHz2Ww5Z3F8iJQ/i3pNhVfIRDZ1s5HShugDwcatE71JJ9uRXNzqccohTXhCFE85pq343tmG2LaYOXwtJHacF0KoKYKnxqVC3jWul7jNxoQErn60BT9HtG5cE3JC5vSHbJLmvCJrMGUW8zaEmFevhQyY25A9QTvaYff2hOIwNJth7/3taITMk1nONmQemj95pINCPo/DzEPaD1lyrsftjljz+KAQ+xj7HGE1EVzthzzycufJnrOIDwnRE0GfJp5yuBcy5EEbMvy90OmQ21lMZJ/oOQ+ePdnz/ZCcq2NDfHqBf7O/4NMpzO0OCD0u+dG+mJC1tKcv2pBQ8O2xIWMbo79vUrKiiKK+Mgt9ioiorEuK0nR7QC+8J2nJ04dqaP55LPihEly1jzazbkOmef44feMF0clze4miJ5NnIUmiUimVnmWUpZkXjTOVJFJ5N8qLiFTpe15KvrIHlPTo/w0E6zON9Sw0s/YsVvq34Z9LFDGJj71otCFq7EtVqm1ImaR6rtfKVGXShvTTVIfIcSl9nZv59A5hGLcvKfHO+juvfn+oNFPjRGa+2RHlpdnYH0ul1268UioyIZHZkdL7YQ4kWUYfzIYcLS3p3xKZ0gE6ERJFrx306RCdCOkihHQNQroGIV2DkK7p967O4G12Iv9Kf2DgDN5oj/QHBnrfL0fXX93lxTl9qAYAAAAAAAAAAAAAAAAAAAAAAAAAAADgg/wCTYn9BVfiGNYAAAAASUVORK5CYII=",
"description": "Displays a latest noise level telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'noise', label: 'Noise level', 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\":\"Noise level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\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\":\"bar_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":70,\"color\":\"#FFA600\"},{\"from\":70,\"to\":90,\"color\":\"#F36900\"},{\"from\":90,\"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)\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#80C32C\"},{\"from\":50,\"to\":70,\"color\":\"#FFA600\"},{\"from\":70,\"to\":90,\"color\":\"#F36900\"},{\"from\":90,\"to\":null,\"color\":\"#D81838\"}]},\"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 noise level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"dB\",\"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": [
"weather",
"environment",
"noise"
]
}

28
application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json

File diff suppressed because one or more lines are too long

24
application/src/main/data/json/system/widget_types/horizontal_oval_tank.json

@ -0,0 +1,24 @@
{
"fqn": "horizontal_oval_tank",
"name": "Horizontal oval tank",
"deprecated": false,
"image": "data:image/png;base64,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",
"description": "Widget indicates the level of liquid in Horizontal oval tank.",
"descriptor": {
"type": "latest",
"sizeX": 4,
"sizeY": 4,
"resources": [],
"templateHtml": "<tb-liquid-level-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-liquid-level-widget>",
"templateCss": "",
"controllerScript": "self.onInit = function() {\n self.ctx.$scope.liquidLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.liquidLevelWidget.update();\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 };\n};\n\nself.onDestroy = function() {\n}\n\nself.actionSources = function() { \n return { \n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false \n } \n };\n}",
"settingsSchema": "{}",
"dataKeySettingsSchema": "{}\n",
"settingsDirective": "tb-liquid-level-card-widget-settings",
"hasBasicMode": true,
"basicModeDirective": "tb-liquid-level-card-basic-config",
"defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"return Math.floor(Math.random() * 101);\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"tankSelectionType\":\"static\",\"selectedShape\":\"Horizontal Oval\",\"shapeAttributeName\":\"tankShape\",\"tankColor\":{\"type\":\"range\",\"color\":\"#242770\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E73535DE\"},{\"from\":20,\"to\":null,\"color\":\"#242770\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E73535DE';\\n }\\n}\\nreturn '#242770';\"},\"datasourceUnits\":\"%\",\"layout\":\"percentage\",\"volumeSource\":\"static\",\"volumeConstant\":500,\"volumeAttributeName\":\"volume\",\"volumeUnits\":\"L\",\"volumeFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"volumeColor\":\"rgba(0, 0, 0, 0.18)\",\"units\":\"%\",\"widgetUnitsSource\":\"static\",\"widgetUnitsAttributeName\":\"units\",\"liquidColor\":{\"type\":\"range\",\"color\":\"#7A8BFF\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#E27C7CDE\"},{\"from\":20,\"to\":null,\"color\":\"#7A8BFF\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"valueColor\":{\"type\":\"range\",\"color\":\"#000000DE\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FF0000DE\"},{\"from\":20,\"to\":null,\"color\":\"rgba(0,0,0,0.87)\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FF0000DE';\\n }\\n}\\nreturn '#000000DE';\"},\"showBackgroundOverlay\":true,\"backgroundOverlayColor\":{\"type\":\"range\",\"color\":\"rgba(255, 255, 255, 0.76)\",\"rangeList\":[{\"from\":null,\"to\":20,\"color\":\"#FFEFEFDE\"},{\"from\":20,\"to\":null,\"color\":\"#FFFFFFC2\"}],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#FFEFEFDE';\\n }\\n}\\nreturn '#FFFFFFC2';\"},\"showTooltip\":true,\"showTooltipLevel\":true,\"tooltipUnits\":\"%\",\"tooltipLevelDecimals\":0,\"tooltipLevelFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipLevelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.76)\",\"rangeList\":[],\"colorFunction\":\"var percent = value;\\nif (typeof percent !== undefined) {\\n if (percent < 20) {\\n return '#E27C7CDE';\\n }\\n}\\nreturn '#7A8BFF';\"},\"showTooltipDate\":true,\"tooltipDateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":13,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"100%\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":3,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Liquid level\",\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"configMode\":\"basic\",\"titleFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"1.5\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"showTitleIcon\":false,\"titleIcon\":\"water_drop\",\"iconColor\":\"#5469FF\",\"decimals\":0,\"enableDataExport\":false,\"enableFullscreen\":false,\"borderRadius\":\"0px\",\"actions\":{},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"margin\":\"0px\",\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"pageSize\":1024,\"noDataDisplayMessage\":\"\"}"
},
"externalId": null,
"tags": null
}

30
application/src/main/data/json/system/widget_types/horizontal_pm10_card.json

@ -0,0 +1,30 @@
{
"fqn": "horizontal_pm10_card",
"name": "Horizontal PM10 card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAllBMVEUAAADf39/f39/g4ODg4ODf39/////k5OT/pgDg4OD/9N//vED/sSD/+u//3p//0oDOzs7z8/P/6L//x2D5+fnIyMj/6b//qxD/46/b29u2trbCwsL/2JBYWFjV1dW8vLzn5+erq6uQkJD/tzD/78//zW//zXD/x187Ozuenp7t7e1mZmb/wlBKSkp0dHT9/f2tra2CgoIEnlQuAAAABnRSTlMAIEDfv1C6kOEmAAADg0lEQVR42u3aiXLaMBSFYdqkh4ssb9jGNjY2OyFLl/d/uUqihTYt0IHSIfR8kzCynMnojwyBgQ4RERERERERERERERERERERERERERHRv/TuzetY7++6b13v7oPp6KZ48+Lu+859jBuQ3nd6uAWfejcSAoZcG4ZcG4ZcG4Zcm/8rZDKddjFpgWYNZI2d6OLK7AvpB4XCd6N19tCMHoCPL/gymqJ9al5wnn4dFv52hCNU4OMV3y7weEgiIrrYhmR4Go6esq6NmUwxXePlvC1JxNBzMwrdSOGglcYrhWidz4+GLMXK1feQl9EIo+nHyeRbyASjs0IC0YN5KBpQdrQUDwflyS8hIZSER0NyccLdjtibp4d4E7Je4yE+a0PcbueisJQl4Ofiw1EK5lC5o36hYEe2u28n3QxU0Ie18LQ6FqJkI/k5ZP0Rm5D45ekLzmeX74lNmskclhLtrrbEDGd2AZutejazA5nZmdBeitrm1Svp/+mO1Ngnxpl8pZaygAnpw92+DlnJLKi1eG42sSGyKBYmoi60hKjNRkpyKMQPkwC1WFrhUuy6xMP+ECWigML9TGD3a+CGWgJ7/Gy+dS7FoZCZ2wm3gXNcjgoXWsL9IW7d3269mR3uugM7VHXg40DIXAwNqMEcF+bnovaGBLsQJcEvIcf/ISoxZriwwv413R09keC3d/ZCttsQijohBCsR+7trrzhy144fX0/E+FMztwPa3Nby7Na//TP6dgmJ265vS9YeTglBEA4AXyTH1tDFmK/HEk6aIu1FdqKH1ByPJ2OkZbk5kR5/UKslT0LPLt/XkoRawm2IDhfucX9pR7l4piA4JWR3/eqfQpomKrMsMqMKVVm16bCKmiaL2seoTYFoHLdtiThyJ6KsxWGBFtPi27Xb0WJ3YeeSezYESzNeiWf2xz85ZPc0bRcSDeMsGkebkHFTmrGZG5dRlbmQXlmakGw4zmKTW8U4QikfG/52ZK8x/8d5+0Crk7/3NP5zVFbRsMmq2O5I1JbVMB5mkZl7bMdZBBuS2h0Zt5/tiaaqcBK1uw7qZ4W+luCiL6zKMfZrshLG2SFirXDRkDQ9dDLGyfyw3kWFyWLAl7pvF0OuDUOuDUOujQn5hFvQ69zfwNvsQHxvPjBwA2+0p+YDA50Pd73uW3f3/pY+VENERERERERERERERERERERERERERET0j3wFxKH86witj0MAAAAASUVORK5CYII=",
"description": "Displays a latest fine and coarse particulate matter (PM10) telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'pm10', label: 'PM10', 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\":\"PM10\",\"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 > 500) {\\n\\tvalue = 500;\\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\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#80C32C\"},{\"from\":20,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"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)\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#80C32C\"},{\"from\":20,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":150,\"color\":\"#F36900\"},{\"from\":150,\"to\":null,\"color\":\"#D81838\"}]},\"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 temperature 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",
"pm10"
]
}

30
application/src/main/data/json/system/widget_types/horizontal_pm10_card_with_background.json

File diff suppressed because one or more lines are too long

30
application/src/main/data/json/system/widget_types/horizontal_pm2_5_card.json

@ -0,0 +1,30 @@
{
"fqn": "horizontal_pm2_5_card",
"name": "Horizontal PM2.5 card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAkFBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4ODv9+XQ6bCQy0bz8/POzs7f8Mqv2XuQykb3+/LIyMj5+fm3t7fA4ZWg0mDb29vH5aOIxznCwsK8vLxYWFjn9Njn5+fV1dXY7L2tra243YiYzlM9PT2QkJCn1m5LS0t0dHTt7e2enp5mZmaCgoKdnZ0vLy8j+senAAAABnRSTlMAIEDfv1C6kOEmAAADWUlEQVR42u3aa1PaQBiGYar2yctmc2gSciaEk4Da9v//u+6uiFMcEVt0kHmuDzG8Ycbcs4TDwICIiIiIiIiIiIiIiIiIiIiIiIiIiIjoM3378lzG1bX31Q2vv5sOL8OXF3hXg5sAFyC7GQxxEYYMOTMMOTcMOTcMOTcMOTdHhcxubz3MWqC/h3c7243OyWshkT9VeDK+T5f9+DewWWOdbu7taJQGOImkyn2Fw5SfYE/i++qIkFhE9HQXkuJhNH5IvfESHjZ2SZY/ZziJXAzd4aC5qP20utYSvRkyF6tWTyHr8Rjj281stgTSNYyR99DiBJRI1OWicZBeYU+Uq0Tmb4bU4uS7FXGbh2WwRL8OAAT3uL3HCfiycv9Pbbvs30QlMLppZ28bkfiAStwEiR/Bygut3gpR8ij+O+TXBkss1+Of7QY/H9beaUIKF5LAEXGzGEgKewLyA0Zc23Na2ElemY0r8GOpjl2RCq871aWupVJzibEfEov2ff0YomMbIvE0F6mr6ULmJiNBvToUkuSxD5vtwj9eJ8YieREiooCpC/ElsiE1gIVUdrpAJFqLfyhk4VYif/up5GQrssq15PshkU3YblcaJsTtFuJvp6o6/PTbiWHvF3X4DJV7VGmJXoQsnkKUxC9DnEMhyq00Ps3KPT5i8fdC1POK+NK9M8SJReydq2L6xoUd3O0PArxfLHO3ItOnkG67SrVE22uk0HhviOPnEZCI1NgZPcYEuCvhZBmyYWgHQ2QAJrMJsrJ8PGAGxydFInFeiN5dIzqf1zYkFz03ez9MQfX+kJ2kFv1XSN+HZZqGZq9BUzZtNmrCvk/D9i5sMyCcBG1bIgjdgTBtcaypFpFCPYeYWzYEc5F6ZU65EvUfIbu3abuQcBSk4SR8DJn0pdk3s0kZNqkLGZalCUlHkzQwuU2Ao7kX8l0IVPI8j6SALk74Nj4sm3DUp01gVyRsy2YUjNLQzO7aSRrChmR2RSbtzB7omwbvtQvZihYdOi3Vh36wKid4XZ+WMP43xBerwIeGZNmhgwH+XZ7jiariecSPul8XQ84NQ84NQ87NBYXcXMDX7EBwM7jyLuCL9sy7Ggy+Xw+9r+766pJ+VENERERERERERERERERERERERERERET0Sf4AN2T4354zjDoAAAAASUVORK5CYII=",
"description": "Displays a latest fine particulate matter (PM2.5) telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'pm2.5', label: 'PM2.5', 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\":\"PM2.5\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\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\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#80C32C\"},{\"from\":10,\"to\":35,\"color\":\"#FFA600\"},{\"from\":35,\"to\":75,\"color\":\"#F36900\"},{\"from\":75,\"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)\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#80C32C\"},{\"from\":10,\"to\":35,\"color\":\"#FFA600\"},{\"from\":35,\"to\":75,\"color\":\"#F36900\"},{\"from\":75,\"to\":null,\"color\":\"#D81838\"}]},\"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 temperature 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",
"pm2.5",
"particulate",
"matter",
"air"
]
}

30
application/src/main/data/json/system/widget_types/horizontal_pm2_5_card_with_background.json

File diff suppressed because one or more lines are too long

2
application/src/main/data/json/system/widget_types/horizontal_pressure_card.json

@ -3,7 +3,7 @@
"name": "Horizontal pressure card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADf39/f39/g4ODg4ODf39/////k5OTYGDjg4ODri5v64ub1xc3nboLdNVHwqLT98fPOzs5YWFjz8/O3t7faJkXx8fH5+fnb29vCwsK8vLziUmnV1dXHx8fkYHbn5+f409rIyMjzt8HpfY9mZmarq6t0dHTiUmrfQ13umqiQkJCCgoJKSko6Ojrt7e3tmajsi5z39/faJkTgRF3pfY4hISGGGYADAAAABnRSTlMAIEDfv1C6kOEmAAADqUlEQVR42u3ai1LaQBiGYar2z89uzgdIYgKEcBJBrW3v/9a6WUCgUiTMlAnM90hCTHCyr7Aggy0AAAAAAAAAAAAAAAAAAAAAAAAAAACAS/p29XTG3b1x7dr331WH8YOuXmDctR4CugE/HlptuglthDQMQpoGIU2DkKY5HOJKujaHQyy+upJDIc6bxaagrfF8blDDHQqxOVJfQ/rgj/NlZnQ6VOUYHb2otVoZ1eUs5vrqVXycaOCYq31CmLQmWGx+wFGGgzoh0mZmQVt+TqPQX+TPI7/zPFlk88kyn+SGb/xeGP7o+YyKMmKqvLFiS50xZbY2Z2fb/TvEYs2Wp4RsSwTt8Be+T35mLMejsT9JO3O16BCf5qPxkmpyZ6yQItk2ByVPq46ILaca5CNbcjBj8Tmk5zivM5VYY7LLJ9rl59XKMJZ52MlzP83y0XgS6pDnSZ5TTdIWziqk5FJ1RazGZrNDml2NdMj2R4g7HEodopMidlaPQnk8RIodw/0Q0g+t0cKYj/xwvBxVIcZiNKH65CrkUc/EGQ/UyC2S27GZPN2E9Gzmd3MToq/klJW3oyEm77DoL529Zbvv/BBzvS65F20mgCvNn+xsQlg4PZ5+hDzyE/W4NJ2I5bEQ19whqZ7zQ9TClrB5uh68Gu0m5JcaFHMVYpnm0OJIkhAuqRrnjHvkAiFCz5aBfvq1ondzd7KvQrSouoX7Wlo2O3XniHKBkGrL2gzO5NnnkJ7jOLrviaPZowqp+6yl/KcQPXA92fUDRa2HrjMkhflziKAVl1luo794HXmjHQEdELz8vSOoHfLKvWrbrram+rzS5Xc1ygHb/w6R/K6jnVNe2fdKQh2jLi8xad0uddtetaNNXfV9f9ynbhyvDqgdwYkhrq2nuFhv/WSrGqAtyojF4RCtuu2UvwxxV39rOXshWebFReGprYSSOEm7YeJlWeGlL16qRu71gzSNKfD0Aa9ITwvRv7Oo1Fs9Zi5ddXpVwdETHQkZ2MxTi8ujIYoQFps9dz/EC4PC63urkH4Wq221rx97SaFD2nGsQoqwXwQqNwnoRK50P21JSV+Q8qz3I2MvTrwwK5IgVCFeGidhEBae2veS9gsVp0K61T3ST8fVgSxJ6AyXf4cY9+nfsiKmy9MhtXW7xw4GdIpGhDQRQpoGIU2DkKZBSNO0Ww838DE7UfDQujNu4IP2H8Zdq/X9vm1cu/u7W/qnGgAAAAAAAAAAAAAAAAAAAAAAAAAAAIAL+QMW1wDljmkjjQAAAABJRU5ErkJggg==",
"description": "Displays a latest pressure telemetry data in a horizontal layout.",
"description": "Displays a latest pressure telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,

2
application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json

File diff suppressed because one or more lines are too long

29
application/src/main/data/json/system/widget_types/horizontal_radon_level_card.json

@ -0,0 +1,29 @@
{
"fqn": "horizontal_radon_level_card",
"name": "Horizontal radon level card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAApVBMVEUAAADf39/f39/g4ODg4OD////k5OSAwyzg4ODv9+Xf8Mqv2XuQy0bP6bDOzs5YWFj3+/Lx8fH09PT5+fnA4ZWg0mDHx8eYzlOIxznb29u2trbQ6a/CwsJ0dHTV1dU8PDy43Yjn5+fIyMjn9NjX7L28vLytra1mZmbH5aPY7L1KSkqenp6CgoKo1m6Qykbt7e3U1NSQkJDH5aKdnZ2n1m4vLy+qqqrWFLAGAAAABXRSTlMAIETfv0i0+14AAAPtSURBVHja7dqLVtpAEAZgSzsZkmyuBEi4BAhXsdba2/s/WmeWUiJW5dDSA5z/O4rJBOP87G6EAzcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9O7i3ejGu+dS9d835AcTosuXuo0bj6kdAVaH26adBWaCHJmEOTcIMi5QZBzgyDn5g9B3JiUt6ssHh8d2kiWtJN8pLq7ko5wsiArzmwcNu62FN11Rgk5ibRejogklOyRbES6kySU2P1hhw7lrbLg9+n7/ZisuC9uPXpm9rzm9W9fDzJm7pIIeJck6tAo+Thcl4v1cETRMEqGUfSoQWRn7Uip/LiU4sFBMhZmun3k2CPLZcvc0lNx7tOeMXe5+1qQjIWe1+gZY7Ki9fdH6txFi6h0Rp0lfb0bduxoRJ3RQqujZLRYLg4OErDxphkbUq6pB5Eh8TmP9+/v0Z4skFbdF4PoWcU9kccq247I1yGty4+LZccZlbUgEqHTSxbRneTrOAcHafNMbvNNI9J3LQiJLgc6DDLHYpdU25BsSuVWEnq3UxJT32SvjEjAIveI3C6L7m5qOdFyveiMZGoNl2tnG4R0SiXfHfm5PHxqzfquDRLbv5iZvSA2Z5AzmzZ7tjzWvPdamWlfmRYzY+KXg9yzCCgYu3HOon7XRL+3G/Vq/efhAu7aKWCoHsR13TEbuzme+WyPBOzagVtpivYsY9n3A1rx9OUgXdv9jPmb/KaY0qm4xp7cl1uzv9g9Xau+bcfT26694xed8LkdsUC+u7l58x+iJ8HptGJjJ8hU+zVPFvvK18vlvfStLXtaDWyQQDc/bTdnctF+M4hOLTqpuCs5hMTp93Mee/U14vNYH/VtkDG7z4NYbwaJ9euktFfb+S/tehCdVv5uREybjg1ijE7OnZT+IH3YL6R0qLGsQRV7yvBq+vTyO6aVzaZteBwcGyRjUb+29bRN/XooyGq1qNUMtdCkluxPfkyoVRSbA1J4I9KK+d4Xtp+na8T35SqbuxTn7GdtliM+x0cGcdkaPwlSlmFRVaFsDWhQDOat3iAsyyqcP4Rz6TycpPN5QWloD4TV/I2JteE/C6Lyb7ompkYmnB4xPh0ZxPDGtB7kc9hLq3ASboJMPheyLbVJEQ4qG6RZFBKk6k2qVOIOUvprrqtrZMazo5/G+13mvF1/Gh8Wg7BXVoNURyScF4Ne2qtCqT3MJ1VIGqSlIzKZL/RAORjQv6BBTvrCqpjQyz5XupAuI0ir9drBlP6ZIHPxUvdSIci5QZBzgyDn5oqCfLiCt9mJ0g83DecK3mhvOQ39CEfTuXTvG9f0oRoAAAAAAAAAAAAAAAAAAAAAAAAAAACA/+QnXMPkgka4f5kAAAAASUVORK5CYII=",
"description": "Displays a latest radon level telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'radon', label: 'Radon level', 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\":\"Radon level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\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\":\"mdi:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#80C32C\"},{\"from\":100,\"to\":200,\"color\":\"#FFA600\"},{\"from\":200,\"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)\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#80C32C\"},{\"from\":100,\"to\":200,\"color\":\"#FFA600\"},{\"from\":200,\"to\":null,\"color\":\"#D81838\"}]},\"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 temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"Bq/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",
"indoor",
"air",
"radon"
]
}

29
application/src/main/data/json/system/widget_types/horizontal_radon_level_card_with_background.json

File diff suppressed because one or more lines are too long

2
application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json

@ -3,7 +3,7 @@
"name": "Horizontal rainfall card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAqFBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQjTMfg4OB1j9yRpePk6fjOzs7I0vGtvOry9Pvk6Pj09PT5+flYWFjIyMg+Ys7b29vV1dUwV8vCwsK2trbw8PC6x+6fseetra3n5+eDmuBohNi8vLyQkJCsvOo9PT1aeNVMbtE/Ys7W3fXW3vRohNkxV8q6urp0dHRmZmaenp6CgoJKSkovLy+su+pLS0shISHWoRcHAAAABnRSTlMAIEDfv1C6kOEmAAADUUlEQVR42u3aDW+aQBzHcWe7P3/BA+QZBETQ4aytfdr2/t/ZDgStjS7baBtqfp+m5Q5Mel8P0xg7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPhIXz69OmN4pXx2o6uvskOx6dOzlOHg2qILYF8PRnQRRgjpGYT0DUL6BiF9g5C+ORWilyF7Gh3MFguFKnfB7vBUT7f0qFBfnAjROFTVkj2TWs6D+y0mJaYgiGOFYueO5IG+kdMxRJffptFY789qWvIGITrPq4RlWB5CXPoWP26fgsVs4dw77vO94mydriH6PGR5GHNDo9p4xZJndgxZ5uGKailP9iFPzwtyH5zZQn7t1n+3+NUtxKzXWw30Wtj+ug2rk/WK591CNA7LdltDbbLfkYct/QweDyF3W6VjyPi7ZsiQls55E8i3RJSw10wnppkkciE3yU0z1eupof8pROeNSa0Vc27uby3Fuf95CAmc++e4U4g0fhGSs96s3EjqhZRUU1negHyrl8zVJhm88eQoVeWPlXk+ZM6TF1WGyjkdxESnZ91D5NCjl1RetoNQMzZy1UYayla5iVoiKzxj6XF6PkRlOpLf0juSIUcLP0j3XSpr9QMn1fAHGfVTy3xTPenz8yFpVTkOE/JS2uQy5CjsHUJOb8g6DCevQpqhwaocfa+6NFbPh5hyv2SNrssD568f+34h6tGzOw55Td1CaJwn1f2k8Y0uN1srTXo/h5Cx17w229mSuoS0wpxK7+h1b9EJVvz6hPW/Ict2TZNdh0ZvESK3wpSPKVe0N93FWBT7VLNtskeiOjEiW86zWUa27+8uyBPWv4W0G5KyWk1u1YreeUcSM5F7m6yPQoJA+K4r5CiiyI8KexqJIHBFEYvCJhKZVRQ+WaK+INziX0KWXFITMifixo+OIYc/J8chYmq5IhO7kCzw5Viey3wRuXXIyPdliDvNXEvmRhb9D/ON34+kczoyE34kpoEbWdWOiMKPptbUFfJcXGSuoCrErnYkK2bVhSCKqIOPe2PlZ3Re4Pr0N/oQYtt/umjR3+hFSB8hpG8Q0jcI6RuE9M1ocH0BH7MTWdeDoXIBH7TbynAw+Ho1Uj67q+El/VMNAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAf5Damp/4Ir985nAAAAAElFTkSuQmCC",
"description": "Displays a latest rainfall telemetry data in a horizontal layout.",
"description": "Displays a latest rainfall telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,

2
application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json

File diff suppressed because one or more lines are too long

28
application/src/main/data/json/system/widget_types/horizontal_snow_depth_card.json

@ -0,0 +1,28 @@
{
"fqn": "horizontal_snow_depth_card",
"name": "Horizontal snow depth card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAxlBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQwWtfg4OCXrOsjTMfl6/qxwfDx8fFKb9zOzs5+mObz8/O7u7tYWFjy9f3k6fjj4+PIyMisrKw+Ys48PDz5+fnL1vXb29vV1dVaedXCwsKQkJA9ZNkwV8u2trZkg+Hn5+eKoul2j9zY4Pe+zPPW3fWCgoKkt+51j9x0dHSRpuMvLy9wjuRXed9mZmbt7e1KSkr39/dMbdGenp7I0vG6x+2fsebJyclLS0udnZ0hISFSqBZZAAAABnRSTlMAIEDfv1C6kOEmAAADuklEQVR42u3aeXOaQBjHcdukT1ZuOQKogIBXtRrrEdv0fv9vqvuANU7GsZVOMsT5fSZRZP1jv1k2OqMNAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJf05tVrsLdXN6+df/VOdtx8olfPvnnbuLbpAny6bjTpIjQRUjMIqRuE1A1C6gYhdXMkxCO6U4luac94yHw6YvZ41qcgpAqeMeS2/ZFDPvS/0R/uQ/CDDMMgeVP8kE987Pp/HhmdJOTYSqa6RlI0V6Ye7UWKMq0ewt6rH+/UD/327WNI5vu0XHQSZ+s+OLPANbZE/naz9DO3E2TbzcJZzkJ341IVuhA6ESlCMjUqaevioVc55PaWS/pq0fGVSkbYyahDi9BNqGO4M9eZEclf1++Es0UW0pI6fshPqUAzi5BI5NFkLIZUWomWNlmLceWQz+2iRC3vvlBhQXKiHLKRIeRuwk5AFHLI0gn8/wwZC5NDFNEi8oQgiQ9yvuaESTvedKrxneZ5ER9N9Oh0SHlJ9dSi4yOVsh/ugjgkcN2Mspnxi5dp6y79n52Nk7mubFpUDJmI8ZBD5mJ8GKJPeZvsF2ieCyHGRa4pj/SVvFmfDClL7tSDDmY8PWBGeZOF5X01pqkVIV6e69qYJ/uoxQNlbT6fmkLhjaRwhanLtOmJkLter622e32191nt93q9D/R3TkDVKUInDuHJSkM6MN9fWSt+hiYfKmJVrJvGl6RyImQoQ2RBm0PUIuR5abwzOIT3fEsxDyc3yXONSrmY8JO1cieREMWfQKlwaT0XOXNdX4vWlFrFHsmFt2/k2e/wErBTIac3+zPTxI5JQxHRbnEYr5D+2Hs85Ox/vzYdYd8/PWHT2SK2FuMJrYp5mZyjlR3K4a5XuHr9JOTsF8RBGWPTfUyFbpe6TYtPNKlLRKNwRN04LgfkifOShuULotwjQ2HyHm9xUd5i0W67lBvoSci5b1E4JEms+Pt3Sx6llMap0x2kVpIElnNvOV0ia2Q7Tky2VQxYgXN2COkm/9fSdq8oYkenQiQH8zmdFeIdvGk8DBnYgTWyypBREstjeW4UW2lQhDTjWIYEziiwZW5q0/k0zSPmHR+s+jbeo73QilNrkASpzStiOXE6sAeBJc/dy4lbxCFdXpGRE/JAkqb00jjkbPHoxGASxPQv6hDS7Z4atOlf1CKkjhBSNwipG4TUDULqptm4voCP2Ynsa/mFgQv4oP2T/MJA492Vf/PaXb29pC/VAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyQ32C4FBab7K0VAAAAAElFTkSuQmCC",
"description": "Displays a latest snow depth telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'snow', label: 'Snow depth', 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\":\"Snow depth\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\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\":\"ac_unit\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#7191EF\"},{\"from\":1,\"to\":10,\"color\":\"#4B70DD\"},{\"from\":10,\"to\":30,\"color\":\"#305AD7\"},{\"from\":30,\"to\":60,\"color\":\"#234CC7\"},{\"from\":60,\"to\":90,\"color\":\"#F36900\"},{\"from\":90,\"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)\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#7191EF\"},{\"from\":1,\"to\":10,\"color\":\"#4B70DD\"},{\"from\":10,\"to\":30,\"color\":\"#305AD7\"},{\"from\":30,\"to\":60,\"color\":\"#234CC7\"},{\"from\":60,\"to\":90,\"color\":\"#F36900\"},{\"from\":90,\"to\":null,\"color\":\"#D81838\"}]},\"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 snow depth card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"cm\",\"decimals\":1,\"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": [
"weather",
"environment",
"snow"
]
}

28
application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json

File diff suppressed because one or more lines are too long

29
application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card.json

@ -0,0 +1,29 @@
{
"fqn": "horizontal_soil_moisture_card",
"name": "Horizontal soil moisture card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQjTMfg4ODy8vLk6fg+Ys7IyMjOzs5YWFjj4+Py9Pv5+fmRpeN1j9zV1dWsrKyQkJDb29u7u7uDmuDCwsK2trZaedUwV8t0dHTn5+eesefW3fVKSkrI0vFMbtE8PDyRpuNmZmasvOqCgoK6x+6rq6uenp7t7e2tvOoxV8rW3fRohNkhISGwsLAvLy8aKS4pAAAABnRSTlMAIEDfv1C6kOEmAAADj0lEQVR42u3aCW/aMBjGcbZ2b42P3CEXCYSrQKHXtu//1faaQQPTFCYNlbR6fhVSaquS/3UcoZYeAAAAAAAAAAAAAAAAAAAAAAAAAAAAwHv68uH1rK83dx+dd/ONO+4C+vDk3dferaRPILjt9elT6COkYxDSNQjpGoR0DUK65u8h9dynI3KbeGRlxgyIvEQSJTFZI0lMXv/92l9D7oXQihru1kyJuCWOBwmR+Z7xa0CSRzZ2XC63JPnLk/ZFl6OeZmTN6vCBDvw6VGdCmo7TEjfxPHJHrpcMdiFLl0buwJsu17Sg0dqNF27MQ8ZdbNZL17tYRilEaVdeHi9IaT0XL+0hTQc7urvkZpHwSgfrfcjIlW4yWGc09RY03cZyNPB2IUZ+H4y2l+rQonya8EUu5rNJZJus8NknHfHs7EzIROzldDAiWpgpbZN9iJtNN6NdiFyQMdOYQ6a0tCE/jfHoMiIR0s6rXbMvxD5EE5UR5frcjmhx8JacTN0RrZdT7xAif3p2E9zE3lp8M214a5YLDqHEXcZ0EUpoUqr59hBSC6V0roQ6E7ISIqorUb0KcdQs969T8nhONmMXsRLlnNfwQsxX6m1/fDuqdERnQrQtj6oJze2WXFHIJz18Fc/2qD6d3OmTCdVanQl54R+5f5hP6L752euIhP2ll6K2Sw9zzRdvVLWahKFqC5kJVtkOFtGVNGc9FPlh7c9+MxepquSHcEuI2ne81tWVd6QW+T7k6YmYFrPm+Kj8mUfylhDi9T/wfnC1vWg5wPLxzwFJlzQT2ieaixVVNkFVb88pX4cU7R7CbSGhEDq350Q3T63h4bn0mNJOEFDQd+xAnwIiGm/GFKTp7wkekJe5t3RY2kXUvKJQNzf6gx17VnxQ2kJ8LQ5WRyFx7KTGOHxVUJEWWTAsnDg2TvboZAGRM5ZZlpJ0dhOOyej/+TmvobTbwBWiCv2TyZLn/LYQUoeSmo5DnKE0ztj5HTKOU77msXHqFGYX0k9TDjHDsZGcW0i6AF8dlqrs1Smlzr3X8ldzIapoQm9+OGnhDGNTSLsjTpYWQzk0Do89ZmPjkA0J7I6Msx92Ii4KehftIeel45bJ2KT0DzoREgRtk5L+RSdCugghXYOQrkFI1yCka/q920/wb3YiecsfGLj+H27/W8AfGOh9u/HuPrqbr5/pQzUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+QX7yoAidBTT3IAAAAASUVORK5CYII=",
"description": "Displays a latest soil moisture telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'soilMoisture', label: 'Soil Moisture', 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\":\"Soil Moisture\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\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\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#F36900\"},{\"from\":40,\"to\":60,\"color\":\"#4B70DD\"},{\"from\":60,\"to\":100,\"color\":\"#234CC7\"}],\"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)\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#F36900\"},{\"from\":40,\"to\":60,\"color\":\"#4B70DD\"},{\"from\":60,\"to\":100,\"color\":\"#234CC7\"}]},\"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 soil moisture card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"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": [
"weather",
"environment",
"soil",
"moisture"
]
}

29
application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json

File diff suppressed because one or more lines are too long

2
application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json

@ -3,7 +3,7 @@
"name": "Horizontal solar radiation card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAk1BMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4OCQy0bf8Mrz8/Pv9+XQ6bCQkJD3+/LOzs6srKxYWFjIyMig0mGIxzm43Yj5+fmYzlPb29vV1dXCwsK2tra/4ZVKSkrY7L08PDzn5+fn9NjH5aO8vLyw2Xuenp6CgoJ0dHS6urqo1m5mZmbt7e2rq6svLy8hISGYzLGRAAAABnRSTlMAIEDfv1C6kOEmAAAEBElEQVR42u3aiW7aQBSFYZqk18N4X/AKGLNDSNL3f7reO9i1ukAbpCInOp/SaDLjkvnrcamUjgAAAAAAAAAAAAAAAAAAAAAAAAAAAADu6cuHNxIPj9ZHN378yh1WTh+eYz2Mnhz6BPKn0Zg+hTFCBgYhQ4OQoUHI0CBkaP4Q4gYk7H7G2fkWiehIHcv3IxJm+lidJ+mY0P1cD1mruclR2qVWvEtq2SXx3h2Hw3iY1Mnel5E0RVUlC07jyMDiKf7qCptaQTuy1/NFN+V5xBZeYD6vzGbki0532cK9GpIpVRDzVF8S+5ZF8SHmHR/j0876VnNITMnJqg8Hag5xxAv1aff69ur7Vn3a09uhSS5WZKn6MdIk5orpdrOpks1rJWWFMqVb/duxSVOt3Ssh5iVt80L9SzuvjV/FFO39yNrtYysmDnmLG8uJ/IYX/IgX/ENMDfn+/ki19U1u3h8FhWLEVql8CxOktL16VhkZW7XmRSVfBkrJFoJ0S7/ICv5d3uUQVyv2LK8t5mQciBo+XDvf55ZjG8LbtqKD1Vi1CdnvojYkoti5HOLquXcOsSc80uete7LptDvbW3MgCr6kOx02Bfzo2nKaXM/u/syv3BFPsdTmywvFCjL8Oj7Q/lTz0do1cd2FHOOkObxRfKojXqjjmhputWI+WhdDhGtC2ltBPw6Qbje2km/7rAoVcFNGbKLl0olsaT3vTspcra88I8+KeeRlbpAqFtCZI7/a0a/6hf6T+NeQLkFLjkhVQGmxVgvezsJcn5kjki0yjvAWWk5Kltp0JaQwu1/I6doqtqKb3R4yUfZKZbL9wix4/FnuSPdXgMe7W6tU6+xyiDD1E+rdOyRT6zWPUx20J6+gPsTmEB6uPGb/LUSOFvXuGyKz22cV8JFYqGdzufd7SOd6SCAfvf8eMlGL9tEw+EakE9mvVmtzg9xbQ7Ru34jYxafXefl1wrk1ZC5P84rH/ZM65572GdUTui2kf5/tzGSb8vFSkpHnlI9DmRhTTkTL1yXlZXle4AnnfSFBqrZz3b+/Zd17cmqu8W4McZWR/RRSVWGZJCGPpjQtp5t8Ng2rKgk3L+GGdx4unc2mJCc0C2GyeVcIrbRS6Zo6HhewzGx4mwY3hmh1tvopJJw5SbgMzyHLquQxzy3LcJqYkHFZckgyWyYO504deh/XvfRU6u3N/4zf8hlNJ5zeicJyGs6qZOrIHQk35XTmzJKQ5142yyQkCcnljiw3kSxU0yndm4S8W7mky6qkpH8xhJA8v7bo0L8YRMgQIWRoEDI0CBkahAzNePT0CX7MTuQ8jR6sT/CD9tx6GI2+Po6tj+7x4TP9pxoAAAAAAAAAAAAAAAAAAAAAAAAAAACAO/kOdioE5akwBJsAAAAASUVORK5CYII=",
"description": "Displays a latest solar radiation telemetry data in a horizontal layout.",
"description": "Displays a latest solar radiation telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,

2
application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json

File diff suppressed because one or more lines are too long

2
application/src/main/data/json/system/widget_types/horizontal_temperature_card.json

@ -3,7 +3,7 @@
"name": "Horizontal temperature card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAsVBMVEUAAADf39/u7u7x8fHr6+vl5eXf39/f39/r6+vq6ur////z8/MjTMc+Ys7IyMjj4+Pk6fitvOqRpePPz8/x8fGtra2QkJDCwsLy9Pv5+fnI0vHV1dW2trZYWFg9PT3n5+cwV8vt7e1aeNXW3fV1j9zb29tog9laedW8vLxmZma6x+5MbtGCgoIvLy88PDyfsOeDmt+enp50dHRKSkrU1NSRpuNMbtIhISHd3d0xV8qdnZ2QKY5sAAAACnRSTlMAIN/vz6AQML+/B+y1FwAAA4lJREFUeNrt2glzmkAYxnHTptfLsssNCgoqGPCsR8/v/8H6LjTVaqsZ66TGeX4ZDbDMZP+yDpPRFgAAAAAAAAAAAAAAAAAAAAAAAAAAAMBzenv3wr1tae8+GC+dd3/Xat29phvw+q71hm7Cm9Y93YRXrVd0ExBybRBybRBybRBybW47ZGiKPKL/IurY9pAalm13dofs8a8te2zRrr+EmOZIOLTVZT4d4cV0GXYm2Mgi9lEwk6salpmJSZ3BA81Jp0Is4TjZgLaU31UexYqUkiqWPG/eJk8SxbHnSUX+WilFkmJ+5vGzdYQYOLkQD7z9SYiPjim+RdTIzcgS+ppM+KSPI26MnhASmQPaIbtE3elaBvNpb9VdynUwl/F82qVeFfe+z+V0LgOfvvCunK6qJZ3roU5whLCITL0oooyfG6MRUWYT2ULYepJ65HTIMNsPUbOgmgYB9cgPeDdYrqpg5vV4bNrz+UATomgWrCo6lxCL+u+Ljr44Q72+OK1hi9FDVgfmxHjEfELI4jCkp5S3DVktp0uleM+bedVvIXp5ncuyomaBWTQWgthiO117MOK0SPD60obOU64IHS6tYF3Jx5BZtVZqXa10yLya+d7cl71qpkO+97pL+je5GNQrqLkO5sHbqENbJ0LMBzGgfd5Ol7dzwGse3va8f8PvcusyIUPBPtPfqYAuzBSsQ0yvKYcuEzIR2oKe0cBkHWLDjDuOhAyfHmKL2reIHvXpj/oG7Wi3+ZHSP7JM7tgJcfaXRvT4Eo/z/ETISDTG9ChpZs3T3Gx4tvqH2/puyr/aZTP92NcnuFQPGf12nXlOR/5zq3nlR2L0x3uNHvl8IiQXjc5uSOom7cRVUhKFRmj4sfwqwzRWYT8xEtclfdjw9YarSqOUxUaW7XM6JtsFntc59uHd/1NzxewTIQvRiHZDvrqJUci0KJqQhEI3LVJ3UxJXuXEd0ncNHbJJiiItSnLTM+7sIjO1vH7Tmw+ZMGmfowdMwcknQqKJ0BzahoSyKH0jCeM0JCpC3/C5IyzT0k0oMUpX1SHtRHIIH2uXYRGHCZ0T0hjwjm3qDYv2NQOZQ6dCKMozMbHpmOOTbBdS0QVYw+hvA9x3GHKGPh1l9Ol53fp/iC8RQq4NQq4NQq4NQq7N/e18PH0zXxho3d17xkv3/t0tfakGAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Jn8AJ01hSMevW95AAAAAElFTkSuQmCC",
"description": "Displays a latest temperature telemetry data in a horizontal layout.",
"description": "Displays a latest temperature telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,

2
application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json

File diff suppressed because one or more lines are too long

2
application/src/main/data/json/system/widget_types/horizontal_uv_index_card.json

@ -3,7 +3,7 @@
"name": "Horizontal UV Index card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAArlBMVEUAAADg4ODf39/g4ODg4ODg4ODf39/g4ODg4ODf39/////39/eAwyzg4ODCwsKQkJD6+vrn5+fz8/O2trbt7e3b29vV1dXOzs50dHSQy0bx8fHP6K88PDzv9+XHx8e7u7v3+/Lj4+PU1NTH5aPA4Zatra1YWFjY7L2enp7IyMiqqqqCgoKYzlMhISHf8Mqv2Xun1m5mZmZKSkqIxzmo1m6g0mDn9Ne43YgvLy/H5aK3Tah+AAAACnRSTlMAvxDv36eQgG8gyT+wCQAAAqtJREFUeNrt2OtuokAAhmFqtYevODDAgFIExPOhtrXHvf8b20HcqNntYv9QNN9jgs44MXkRBTWIiIiIiIiIiIiIiIiIiIiIiIiIiIiI6Nsa162LU3fTMIzbpufcnTqv2TBaIc6Ad2Vc2jgHl0YbZ6HNkJphSN0wpG7OPiRdDnBSvgrpmY84EIZAP+xDb4vRVhyjFo4O6VjoP4QPIeIoH42wZVmo3uppUh7S6w4BpB+T/PFycBCC8RSLzibEt6xFiGlHzyc6a+r3F6jG6uPFNO/LQ9LublXXHB6GJGNE8SYkjpLONIn8Z8uP/HESrztTVGJimseFoPc2QToZDnrA0y8choSfcYQiZAxLyzfROLLQ+UQ17t8GaWnI7vAytSH2LBbwI30XWXsh0+diE6K/XseoTHnIriM3wE5f7/c5ED/090LC/M0In8dRv2PFa5SoPmRoFl5S7AnxD2GxKVF9SLrsdld4M7fe8dTt1vDMeGzIq7m1OtmQvw6tejo2JN1+2IeoqW98/da648iQ3usE0CfEd+B116Js/OEdvEB7f0rmo8xDiUpCegeXKANsCQeQgWNnypl6gIR02vkwUE4mnblnZx7gBAJ2JuRmKbJMzyoUqg9Jl0Noj5NN1H6I7WezQPnO3AZcuFK0hfJnKpOurW9eYgOOgJ6VgK/0c0Eg5EyiRMWX8TrEcX3hBa49RxESwBWOUjN/roejIChCEjuQsPXSQMoggVIoUXVIIjxXCF/ona8ANxhJVyiZJGqWzO2k7QuBTYgvRnnITMi5G+jlDkr88E9dGzLAfzlqplDu5/98sL2y15b4Wo1C6oUhdcOQumFI3bSNS5wD+9K48nAGvJbRaHp3p87xmreG0bi5OHWt64ZBRERERERERERERERERERERERERERERN/1G1Juby0y7njrAAAAAElFTkSuQmCC",
"description": "Displays a latest UV index telemetry data in a horizontal layout.",
"description": "Displays a latest UV index telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,

2
application/src/main/data/json/system/widget_types/horizontal_uv_index_card_with_background.json

File diff suppressed because one or more lines are too long

2
application/src/main/data/json/system/widget_types/horizontal_value_card.json

File diff suppressed because one or more lines are too long

28
application/src/main/data/json/system/widget_types/horizontal_vibration_card.json

@ -0,0 +1,28 @@
{
"fqn": "horizontal_vibration_card",
"name": "Horizontal vibration card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEUAAADf39/f39/g4ODg4OD////k5OTYGDjg4OD64ubwqLTdNVH1xc3nboLIyMjiUmnOzs7aJkXx8fHsi5v09PT98fL5+fm3t7f41Nrb29vCwsLzt8GQkJDV1dW8vLxYWFjn5+fumqjpfY90dHTgQ1398fPiUmqsrKw8PDyenp5KSkqCgoLkYHYvLy9mZmZLS0shISGwsLCdnZ3pfZDpfY64MVbEAAAABXRSTlMAIETfv0i0+14AAAO7SURBVHja7doNb6IwHMfxnbc/tS30eBZQQHyYD9vu+f2/tmsL7LadOpZcFrb8PomsApp+04kmegUAAAAAAAAAAAAAAAAAAAAAAAAAAADwlj69ezZj8tl576afJ7rDSendi53J1XVMH0B6fTWlD2GKkJFByNggZGwQMjYIGZsTIZnb4tQJD0RK/XQOJT1wqFI0Jv+GNKwjqXcfUq1UuJ45FIbmRuE+LEvSY3L0vaHc7k8TzZ+MOnNhuHTO3KXHJ7svhHgeWZxRb3Fw9rRW62N9UPfH6vj1sLvfLRbOt69rul/v1bCKVcDIiJgm+cMooU7AjBs6gzOPHmwCyZpLIfxxCE/IUvVubUJUuFc1OYfbmva0WNzO6JvznRY7etl2w7T2eaWbrcx8XTO6Y6v+FCaFNqczBMuol0lBG3kphPFHIV8Eteq6NCGz8KhDbg+zLmRHdTgwhMtItCErM/NtwBLymDDTD/rJPVmMhFMydxOdO+dkfZH2LOEm/QKdDUmy5yGJS8ZiTybkW73QIT/39ZGOC/2vVX+9pYEhGm9DvrC53m5Ypm/m2SXrJurqQk4dXekFTC+ZWcmofXijNzesu5/JTXI2RNw8DxGSHgu77ZNNZ3iI2267BKlHlmCbgAXRQ0jQzHXF3Txi9rzGbD224iLQj8iCFdHrQi76nyERk7/1KkR9SGMWKbCrJ8x5N/1yCs/d6sWSko8zhHhip96HCHthsOfqYaY3NnalU2grjGSkIVbA+MkQr93fSL0W0UtviDx7HsKz/x6iZ9i+2LuXfcCS/i0uuRAi76iViaBPf/XlN6YT4vD5jnhQSMPuuhlG7Jeel50r7xbJHjgV4tr8rdzYC3hE1uA3xCQha9bGxBTmZKUppVPf7JhSSkTL3ZLSPG8P6B3xhZCtZF4kWaRHgR2JbmpzFtgDJ0M8PbDDO9H0i/b6jyg6pCz9XClfjwoq8qJKZ4VflsqvQr9KifxlXFU5xb494KvqfAhxyVh78czMqLGvYbMV5m5EJ0MCj4ytx/Q5goaERKwjn4T4s1j5S78NWZa5Hut9y9wvlA2Z5rkOUbOlinVuEdMFCU/6uG7E/949STD34bF86Md4t5NQ74efF/6sVEVsVsSv8mIWz5Sv94XVUvlkQlKzIsvqhzlQFgW9qS7k1fIlnVeqnIYYQ0iaXjoY0xCjCBkjhIwNQsYGIWODkLGZXl1/gK/ZieLrq4nzAb5oT52J+QnH1HnvPk8+0o9qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN7IH7CH4Te59eAaAAAAAElFTkSuQmCC",
"description": "Displays a latest vibration telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'vibration', label: 'Vibration', 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\":\"Vibration\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\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\":\"vibration\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#FFA600\"},{\"from\":1,\"to\":10,\"color\":\"#F36900\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":null,\"color\":\"#6F113A\"}],\"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)\",\"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';\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#FFA600\"},{\"from\":1,\"to\":10,\"color\":\"#F36900\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":null,\"color\":\"#6F113A\"}]},\"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 noise level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m/s²\",\"decimals\":1,\"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": [
"weather",
"environment",
"vibration"
]
}

28
application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json

File diff suppressed because one or more lines are too long

28
application/src/main/data/json/system/widget_types/horizontal_visibility_card.json

@ -0,0 +1,28 @@
{
"fqn": "horizontal_visibility_card",
"name": "Horizontal visibility card",
"deprecated": false,
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4OCg0mHf8Mrz8/PP6bCQy0bv9+XOzs75+fn3+/K3t7erq6vCwsLA4Za8vLyQkJDa2trV1dXHx8ew2Xvn5+fn9NjIyMi43YhYWFg8PDx0dHTY7L2YzlPH5aOIxzmenp6Ixzrt7e2CgoKn1m5mZmYhISHb29u43Ymo1m6tra3H5aJKSkovLy/b7uh5AAAABnRSTlMAIEDfv1C6kOEmAAADOUlEQVR42u3aCU/bMBjG8a6wN27jxM7dXE3Tm2uw6/t/tb02ZWEbdFWpqoCenxCx7EjwT0xboAMAAAAAAAAAAAAAAAAAAAAAAAAAAACAc/r07tmM4YXz3o0uPnOHE9C7J53h4FLSBxBcDkb0IYwQ0jMI6RuE9A1C+gYhfXNIiNwSleXWIZaVccaHG1rQVsoevUw7JIR+SmrLUpIjqSgmMRfFNKdY3nALOXRK7jr11NNoSTueGB8R4la+EJuxp+jJZOvMaVFOFvNyEk/au5a+0JzbfrTRggcnlArmT3+P1PEhaix2fI92yjZe2JBMcgjfDWlDHDPklNPxhO9OU+ETKTOaifHRIdMNF6xDmt5yyox22rbgkKK8i23Izy7k5kdEpzMWZjddCUUz88XDKxE+C1EqDBV/a0vFS567N0SZDkUun1s9K5nMiUO2d23EIXftDT2GxHOnnNMJLT1lQ8Jd0kpMu5AHsQpdsTI7Jk3tvtsT4vMJ3+nBnBUK9me27A5PI95zp+aJFXGIS/bz75DUXmG+uMuZ2TRLX6Svh3iCuVPBZrQS4r9bUy4cOjHli+kLIbaDQ8b2Rnlm7vb1kLUNUV2IT+cWmiv9b8hGmDwbYqft8PWQ0DcbkCrB+TbHozMLV6bj3xA2OziETa+E2ChaeiFVtuncKjHbHb0/ftg3yyvhHhbSlfic4Y6fPWhJeoG8/ntC0ps9PG38tfhqn0y655Gl8MODQ5haiZ3Nd9qJbAx/XOdkBQEFI20mRhQQUR3XFOT54wJPHJu0FuJrxTyzyavUF2kXQrfcdngIc6sVV4zXIT0LKQqdN43mUUJJnmRBlOiiaHR2rbOASNcyy3KS2i7oJjt2Yz2q7IOX2MyoCzFt6/0he3QhOpKNrvVjSF3c85jn6lwnjQ0Z5TmHNFHdSM5NJL1ZqMJTv/r9pu8THRVNIs0d0VmeRDJqNM9dZ3WjyYQE5o7U2TezUCQJHeH8v1jlNb2uaO7pEH0ICYJ9i5IO0YuQPkJI3yCkbxDSNwjpm9Hg8gP8m51IXg6GTo/+gnuswBkOBp8vRs57dzH8SG+qAQAAAAAAAAAAAAAAAAAAAAAAAAAAADiTXxBy+4qYs+NTAAAAAElFTkSuQmCC",
"description": "Displays a latest visibility telemetry in a horizontal layout.",
"descriptor": {
"type": "latest",
"sizeX": 5,
"sizeY": 1,
"resources": [],
"templateHtml": "<tb-value-card-widget \n [ctx]=\"ctx\"\n [widgetTitlePanel]=\"widgetTitlePanel\">\n</tb-value-card-widget>",
"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: 'visibility', label: 'Visibility', 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\":\"Visibility\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\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\":\"visibility\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#D81838\"},{\"from\":1,\"to\":4,\"color\":\"#FFA600\"},{\"from\":4,\"to\":null,\"color\":\"#80C32C\"}],\"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)\",\"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';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#D81838\"},{\"from\":1,\"to\":4,\"color\":\"#FFA600\"},{\"from\":4,\"to\":null,\"color\":\"#80C32C\"}]},\"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 visibility card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"km\",\"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": [
"weather",
"environment",
"visibility"
]
}

28
application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json

File diff suppressed because one or more lines are too long

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save